From 7d1a164bf7d63da0f595cfa7d798ebb3ddf00bd0 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 8 May 2025 14:57:49 +0300 Subject: [PATCH 001/181] Make veinminer follow diagonals --- .../java/com/hbm/handler/ToolAbility.java | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index 2a03e79a4..4ec1f4035 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -60,22 +60,35 @@ public abstract class ToolAbility { if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) return false; - List indices = Arrays.asList(new Integer[] {0, 1, 2, 3, 4, 5}); - Collections.shuffle(indices); - pos.clear(); - - for(Integer i : indices) { - switch(i) { - case 0: breakExtra(world, x + 1, y, z, x, y, z, player, tool, 0); break; - case 1: breakExtra(world, x - 1, y, z, x, y, z, player, tool, 0); break; - case 2: breakExtra(world, x, y + 1, z, x, y, z, player, tool, 0); break; - case 3: breakExtra(world, x, y - 1, z, x, y, z, player, tool, 0); break; - case 4: breakExtra(world, x, y, z + 1, x, y, z, player, tool, 0); break; - case 5: breakExtra(world, x, y, z - 1, x, y, z, player, tool, 0); break; + + recurse(world, x, y, z, x, y, z, player, tool, 0); + + return false; + } + + private static final List offsets = new ArrayList<>(3*3*3-1); + + static { + for (int dx = -1; dx <= 1; dx++) { + for (int dy = -1; dy <= 1; dy++) { + for (int dz = -1; dz <= 1; dz++) { + if (dx != 0 || dy != 0 || dz != 0) { + offsets.add(new ThreeInts(dx, dy, dz)); + } + } } } - return false; + } + + private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemAbility tool, int depth) { + + List shuffledOffsets = new ArrayList<>(offsets); + Collections.shuffle(shuffledOffsets); + + for(ThreeInts offset : shuffledOffsets) { + breakExtra(world, x + offset.x, y + offset.y, z + offset.z, refX, refY, refZ, player, tool, depth); + } } private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemAbility tool, int depth) { @@ -112,20 +125,8 @@ public abstract class ToolAbility { return; tool.breakExtraBlock(world, x, y, z, player, refX, refY, refZ); - - List indices = Arrays.asList(new Integer[] {0, 1, 2, 3, 4, 5}); - Collections.shuffle(indices); - - for(Integer i : indices) { - switch(i) { - case 0: breakExtra(world, x + 1, y, z, refX, refY, refZ, player, tool, depth); break; - case 1: breakExtra(world, x - 1, y, z, refX, refY, refZ, player, tool, depth); break; - case 2: breakExtra(world, x, y + 1, z, refX, refY, refZ, player, tool, depth); break; - case 3: breakExtra(world, x, y - 1, z, refX, refY, refZ, player, tool, depth); break; - case 4: breakExtra(world, x, y, z + 1, refX, refY, refZ, player, tool, depth); break; - case 5: breakExtra(world, x, y, z - 1, refX, refY, refZ, player, tool, depth); break; - } - } + + recurse(world, x, y, z, refX, refY, refZ, player, tool, depth); } private boolean isSameBlock(Block b1, Block b2) { From 0d141f56b1b225f83081e3a8296f0ab0010f9d1f Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 8 May 2025 15:09:31 +0300 Subject: [PATCH 002/181] Fix import --- src/main/java/com/hbm/handler/ToolAbility.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index 4ec1f4035..1ce02283b 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -1,6 +1,7 @@ package com.hbm.handler; import java.util.Arrays; +import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; From 71998aca4100d0b222e244e1ea2033afec3e35db Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 8 May 2025 16:58:05 +0200 Subject: [PATCH 003/181] bobms --- .../weapon/sedna/factory/GunFactory.java | 4 +- .../sedna/factory/GunFactoryClient.java | 2 + .../weapon/sedna/factory/LegoClient.java | 29 +++++++++++++ .../weapon/sedna/factory/XFactoryTool.java | 43 ++++++++++++++++++- .../weapon/sedna/ItemRenderChargeThrower.java | 23 ++++++++-- .../weapon/sedna/ItemRenderMinigunDual.java | 1 - 6 files changed, 93 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java index 002a35c66..f12233377 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -100,7 +100,7 @@ public class GunFactory { G10, G10_SHRAPNEL, G10_DU, G10_SLUG, R762_HE, BMG50_HE, G10_EXPLOSIVE, P45_SP, P45_FMJ, P45_JHP, P45_AP, P45_DU, - CT_HOOK, + CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, //ONLY ADD NEW ENTRIES AT THE BOTTOM TO AVOID SHIFTING! ; @@ -127,7 +127,7 @@ public class GunFactory { TAU_URANIUM, COIL_TUNGSTEN, COIL_FERROURANIUM, NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, - CT_HOOK, + CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, }; public Enum[] getOrder() { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index 46d0cc495..e568369a9 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -220,6 +220,8 @@ public class GunFactoryClient { p35800.setRendererBeam(LegoClient.RENDER_CRACKLE); ct_hook.setRenderer(LegoClient.RENDER_CT_HOOK); + ct_mortar.setRenderer(LegoClient.RENDER_CT_MORTAR); + ct_mortar_charge.setRenderer(LegoClient.RENDER_CT_MORTAR_CHARGE); setRendererBulk(LegoClient.RENDER_GRENADE, shell_normal, shell_explosive, shell_ap, shell_du, shell_w9); //TODO: change the sabots diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index bedc1285a..f3d2e68a5 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -576,4 +576,33 @@ public class LegoClient { tessellator.addVertexWithUV(a - jX, b, c - jZ, wrap, 1); tessellator.addVertexWithUV(a + jX, b, c + jZ, wrap, 0); } + + public static BiConsumer RENDER_CT_MORTAR = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(180, 0, 0, 1); + GL11.glTranslatef(0, 0, -6F); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + }; + + public static BiConsumer RENDER_CT_MORTAR_CHARGE = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(180, 0, 0, 1); + GL11.glTranslatef(0, 0, -6F); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + ResourceManager.charge_thrower.renderPart("Oomph"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index a21c6e555..58e7729f9 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -4,7 +4,17 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.util.function.Consumer; +import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityBulletBaseMK4; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie; +import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.items.weapon.sedna.Crosshair; @@ -16,6 +26,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; @@ -30,6 +41,8 @@ import net.minecraft.util.MovingObjectPosition; public class XFactoryTool { public static BulletConfig ct_hook; + public static BulletConfig ct_mortar; + public static BulletConfig ct_mortar_charge; public static Consumer LAMBDA_SET_HOOK = (entity) -> { EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; @@ -49,17 +62,43 @@ public class XFactoryTool { bullet.getStuck(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } }; + + public static BiConsumer LAMBDA_MORTAR = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5, bullet.getThrower()); + vnt.setBlockAllocator(new BlockAllocatorBulkie(60, 8)); + vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); + }; + + public static BiConsumer LAMBDA_MORTAR_CHARGE = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15, bullet.getThrower()); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1))); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + ExplosionCreator.composeEffectSmall(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord); + vnt.explode(); + }; public static void init() { - ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(1200).setVel(2F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) + ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(2F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) .setOnUpdate(LAMBDA_SET_HOOK).setOnImpact(LAMBDA_HOOK); + ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact(LAMBDA_MORTAR); + ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setLife(200).setVel(2F).setGrav(0.035D) + .setOnImpact(LAMBDA_MORTAR_CHARGE); ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig() .dura(3_000).draw(20).inspect(31).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX) .rec(new Receiver(0) .dmg(5F).delay(4).dry(40).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(55).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 1).addConfigs(ct_hook)) + .mag(new MagazineFullReload(0, 1).addConfigs(ct_hook, ct_mortar, ct_mortar_charge)) .offset(1, -0.0625 * 2.5, -0.25D) .setupStandardFire().recoil(LAMBDA_RECOIL_CT)) .setupStandardConfiguration() diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java index 5d6ad1bb9..1d46d93b2 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java @@ -58,14 +58,20 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase { if(isScoped(stack) && !usingScope) ResourceManager.charge_thrower.renderPart("Scope"); if(mag.getAmount(stack, null) > 0) { - + if(mag.getType(stack, null) == XFactoryTool.ct_hook) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_hook_tex); ResourceManager.charge_thrower.renderPart("Hook"); } - //Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); - //ResourceManager.charge_thrower.renderPart("Mortar"); - //ResourceManager.charge_thrower.renderPart("Oomph"); + if(mag.getType(stack, null) == XFactoryTool.ct_mortar) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + } + if(mag.getType(stack, null) == XFactoryTool.ct_mortar_charge) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + ResourceManager.charge_thrower.renderPart("Oomph"); + } //Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_rocket_tex); //ResourceManager.charge_thrower.renderPart("Rocket"); } @@ -117,6 +123,15 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_hook_tex); ResourceManager.charge_thrower.renderPart("Hook"); } + if(mag.getType(stack, null) == XFactoryTool.ct_mortar) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + } + if(mag.getType(stack, null) == XFactoryTool.ct_mortar_charge) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_mortar_tex); + ResourceManager.charge_thrower.renderPart("Mortar"); + ResourceManager.charge_thrower.renderPart("Oomph"); + } } GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigunDual.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigunDual.java index bd65653b9..8cb34f24f 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigunDual.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigunDual.java @@ -138,7 +138,6 @@ public class ItemRenderMinigunDual extends ItemRenderWeaponBase { GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.minigun_dual_tex); ResourceManager.minigun.renderPart(index == 0 ? "GunDual" : "Gun"); - ResourceManager.minigun.renderPart("Grip"); ResourceManager.minigun.renderPart("Barrels"); GL11.glShadeModel(GL11.GL_FLAT); } From 21088af66f2b68585016377bb682ce5617049b92 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 8 May 2025 23:10:21 +0200 Subject: [PATCH 004/181] i cast: delete everything in that general direction --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../com/hbm/blocks/bomb/BlockCrashedBomb.java | 11 +- .../weapon/sedna/factory/XFactoryTool.java | 7 +- src/main/java/com/hbm/lib/HbmWorldGen.java | 4 +- .../java/com/hbm/main/ResourceManager.java | 6 + .../render/tileentity/RenderCrashedBomb.java | 23 +- .../bomb/TileEntityCrashedBomb.java | 10 +- src/main/java/com/hbm/world/feature/Dud.java | 3 +- .../hbm/models/bombs/dud_conventional.obj | 940 +++++++++++ .../assets/hbm/models/bombs/dud_nuke.obj | 799 ++++++++++ .../assets/hbm/models/bombs/dud_salted.obj | 1411 +++++++++++++++++ .../models/bombs/dud_conventional.png | Bin 0 -> 29044 bytes .../hbm/textures/models/bombs/dud_nuke.png | Bin 0 -> 22951 bytes .../hbm/textures/models/bombs/dud_salted.png | Bin 0 -> 31296 bytes .../models/weapons/charge_thrower.png | Bin 2308 -> 3034 bytes .../models/weapons/charge_thrower_hook.png | Bin 528 -> 594 bytes .../models/weapons/charge_thrower_mortar.png | Bin 821 -> 1351 bytes .../models/weapons/fatman_balefire.png | Bin 0 -> 900 bytes 18 files changed, 3191 insertions(+), 27 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/bombs/dud_conventional.obj create mode 100644 src/main/resources/assets/hbm/models/bombs/dud_nuke.obj create mode 100644 src/main/resources/assets/hbm/models/bombs/dud_salted.obj create mode 100644 src/main/resources/assets/hbm/textures/models/bombs/dud_conventional.png create mode 100644 src/main/resources/assets/hbm/textures/models/bombs/dud_nuke.png create mode 100644 src/main/resources/assets/hbm/textures/models/bombs/dud_salted.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/fatman_balefire.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ae42a0c1e..d1c604bed 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1749,7 +1749,7 @@ public class ModBlocks { vitrified_barrel = new YellowBarrel(Material.iron).setBlockName("vitrified_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_vitrified"); lox_barrel = new RedBarrel(Material.iron, false).setBlockName("lox_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_lox"); taint_barrel = new RedBarrel(Material.iron, false).setBlockName("taint_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":barrel_taint"); - crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":crashed_balefire"); + crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); fireworks = new BlockFireworks(Material.iron).setBlockName("fireworks").setCreativeTab(MainRegistry.nukeTab).setResistance(5.0F); charge_dynamite = new BlockChargeDynamite().setBlockName("charge_dynamite").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); charge_miner = new BlockChargeMiner().setBlockName("charge_miner").setCreativeTab(MainRegistry.nukeTab).setResistance(1.0F); @@ -2892,7 +2892,7 @@ public class ModBlocks { //Generic Bombs GameRegistry.registerBlock(bomb_multi, bomb_multi.getUnlocalizedName()); - GameRegistry.registerBlock(crashed_balefire, crashed_balefire.getUnlocalizedName()); + register(crashed_balefire); GameRegistry.registerBlock(fireworks, fireworks.getUnlocalizedName()); GameRegistry.registerBlock(dynamite, dynamite.getUnlocalizedName()); GameRegistry.registerBlock(tnt, tnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java index d1aae78d7..191b36173 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java @@ -1,5 +1,6 @@ package com.hbm.blocks.bomb; +import com.hbm.blocks.BlockEnumMulti; import com.hbm.config.BombConfig; import com.hbm.entity.logic.EntityBalefire; import com.hbm.handler.threading.PacketThreading; @@ -9,7 +10,7 @@ import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.bomb.TileEntityCrashedBomb; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.block.BlockContainer; +import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -18,10 +19,14 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class BlockCrashedBomb extends BlockContainer implements IBomb { +public class BlockCrashedBomb extends BlockEnumMulti implements ITileEntityProvider, IBomb { + + public static enum EnumDudType { + BALEFIRE, CONVENTIONAL, NUKE, SALTED + } public BlockCrashedBomb(Material mat) { - super(mat); + super(mat, EnumDudType.class, false, false); } @Override diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index 58e7729f9..917c06aee 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -9,7 +9,6 @@ import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; -import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie; import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; @@ -87,11 +86,11 @@ public class XFactoryTool { public static void init() { - ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(2F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) + ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(3F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) .setOnUpdate(LAMBDA_SET_HOOK).setOnImpact(LAMBDA_HOOK); - ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setLife(200).setVel(2F).setGrav(0.035D) + ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setLife(200).setVel(3F).setGrav(0.035D) .setOnImpact(LAMBDA_MORTAR); - ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setLife(200).setVel(2F).setGrav(0.035D) + ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setLife(200).setVel(3F).setGrav(0.035D) .setOnImpact(LAMBDA_MORTAR_CHARGE); ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig() diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 5a9f416a1..6bdbc7b8b 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -299,8 +299,8 @@ public class HbmWorldGen implements IWorldGenerator { } if(WorldConfig.dudStructure > 0 && rand.nextInt(WorldConfig.dudStructure) == 0) { - int x = i + rand.nextInt(16); - int z = j + rand.nextInt(16); + int x = i + 8 + rand.nextInt(16); + int z = j + 8 + rand.nextInt(16); int y = world.getHeightValue(x, z); new Dud().generate(world, rand, x, y, z); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 78bd4c289..7fbac54ce 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -279,6 +279,9 @@ public class ResourceManager { public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj")); public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO(); public static final IModelCustom dud_balefire = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_balefire.obj")).asVBO(); + public static final IModelCustom dud_conventional = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_conventional.obj")).asVBO(); + public static final IModelCustom dud_nuke = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_nuke.obj")).asVBO(); + public static final IModelCustom dud_salted = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_salted.obj")).asVBO(); //Satellites public static final IModelCustom sat_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_base.obj")); @@ -731,6 +734,9 @@ public class ResourceManager { public static final ResourceLocation n45_chain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_chain.png"); public static final ResourceLocation fstbmb_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/fstbmb.png"); public static final ResourceLocation dud_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_balefire.png"); + public static final ResourceLocation dud_conventional_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_conventional.png"); + public static final ResourceLocation dud_nuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_nuke.png"); + public static final ResourceLocation dud_salted_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_salted.png"); //Satellites public static final ResourceLocation sat_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_base.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderCrashedBomb.java b/src/main/java/com/hbm/render/tileentity/RenderCrashedBomb.java index 849016d81..2da5145d4 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCrashedBomb.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCrashedBomb.java @@ -5,12 +5,15 @@ import java.util.Random; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockCrashedBomb.EnumDudType; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.client.IItemRenderer; @@ -35,10 +38,13 @@ public class RenderCrashedBomb extends TileEntitySpecialRenderer implements IIte GL11.glRotated(pitch, 1, 0, 0); GL11.glRotated(roll, 0, 0, 1); GL11.glTranslated(0, 0, -offset); - + + EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, tile.getBlockMetadata()); GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.dud_balefire_tex); - ResourceManager.dud_balefire.renderAll(); + if(type == EnumDudType.BALEFIRE) { bindTexture(ResourceManager.dud_balefire_tex); ResourceManager.dud_balefire.renderAll(); } + if(type == EnumDudType.CONVENTIONAL) { bindTexture(ResourceManager.dud_conventional_tex); ResourceManager.dud_conventional.renderAll(); } + if(type == EnumDudType.NUKE) { GL11.glTranslated(0, 0, 1.25); bindTexture(ResourceManager.dud_nuke_tex); ResourceManager.dud_nuke.renderAll(); } + if(type == EnumDudType.SALTED) { GL11.glTranslated(0, 0, 0.5); bindTexture(ResourceManager.dud_salted_tex); ResourceManager.dud_salted.renderAll(); } GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); @@ -55,14 +61,17 @@ public class RenderCrashedBomb extends TileEntitySpecialRenderer implements IIte public void renderInventory() { GL11.glTranslated(0, 3, 0); - GL11.glScaled(2.75, 2.75, 2.75); + GL11.glScaled(2.125, 2.125, 2.125); GL11.glRotated(90, 0, 0, 1); } - public void renderCommon() { + public void renderCommonWithStack(ItemStack item) { + EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, item.getItemDamage()); GL11.glRotated(90, 0, 1, 0); GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.dud_balefire_tex); - ResourceManager.dud_balefire.renderAll(); + if(type == EnumDudType.BALEFIRE) { bindTexture(ResourceManager.dud_balefire_tex); ResourceManager.dud_balefire.renderAll(); } + if(type == EnumDudType.CONVENTIONAL) { GL11.glTranslated(0, 0, -0.5); bindTexture(ResourceManager.dud_conventional_tex); ResourceManager.dud_conventional.renderAll(); } + if(type == EnumDudType.NUKE) { GL11.glTranslated(0, 0, 1.25); bindTexture(ResourceManager.dud_nuke_tex); ResourceManager.dud_nuke.renderAll(); } + if(type == EnumDudType.SALTED) { GL11.glTranslated(0, 0, 0.5); bindTexture(ResourceManager.dud_salted_tex); ResourceManager.dud_salted.renderAll(); } GL11.glShadeModel(GL11.GL_FLAT); }}; } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java index 2a917cee6..cf70bb5f8 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java @@ -8,15 +8,9 @@ import net.minecraft.util.AxisAlignedBB; public class TileEntityCrashedBomb extends TileEntity { @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } + public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - + public double getMaxRenderDistanceSquared() { return 65536.0D; } } diff --git a/src/main/java/com/hbm/world/feature/Dud.java b/src/main/java/com/hbm/world/feature/Dud.java index 85572aa4a..41e24a200 100644 --- a/src/main/java/com/hbm/world/feature/Dud.java +++ b/src/main/java/com/hbm/world/feature/Dud.java @@ -3,6 +3,7 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockCrashedBomb.EnumDudType; import com.hbm.config.GeneralConfig; import net.minecraft.block.Block; @@ -60,7 +61,7 @@ public class Dud extends WorldGenerator { if(!LocationIsValidSpawn(world, x, y, z)) return false; - world.setBlock(x, y, z, ModBlocks.crashed_balefire, rand.nextInt(4) + 2, 3); + world.setBlock(x, y, z, ModBlocks.crashed_balefire, rand.nextInt(EnumDudType.values().length), 3); if(GeneralConfig.enableDebugMode) System.out.print("[Debug] Successfully spawned dud at " + x + " " + y + " " + z + "\n"); diff --git a/src/main/resources/assets/hbm/models/bombs/dud_conventional.obj b/src/main/resources/assets/hbm/models/bombs/dud_conventional.obj new file mode 100644 index 000000000..bf8619226 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/dud_conventional.obj @@ -0,0 +1,940 @@ +# Blender v2.79 (sub 7) OBJ File: 'dud1.blend' +# www.blender.org +mtllib dud_conventional.mtl +o Cube.003_Cube.005 +v 0.392370 -0.392370 -1.500000 +v 0.392370 -0.392370 2.499999 +v 0.267370 -0.392370 -1.500000 +v 0.267370 -0.392370 2.499999 +v 0.392370 -0.267370 -1.500000 +v 0.392370 -0.267370 2.499999 +v 0.267370 -0.267370 -1.500000 +v 0.267370 -0.267370 2.499999 +v -0.392369 -0.392370 -1.500000 +v -0.392370 -0.392369 2.499999 +v -0.392369 -0.267370 -1.500000 +v -0.392370 -0.267369 2.499999 +v -0.267369 -0.392370 -1.500000 +v -0.267370 -0.392369 2.499999 +v -0.267369 -0.267370 -1.500000 +v -0.267370 -0.267369 2.499999 +v -0.392370 0.392369 -1.500000 +v -0.392370 0.392370 2.499999 +v -0.267370 0.392369 -1.500000 +v -0.267370 0.392370 2.499999 +v -0.392370 0.267369 -1.500000 +v -0.392370 0.267370 2.499999 +v -0.267370 0.267369 -1.500000 +v -0.267370 0.267370 2.499999 +v 0.392369 0.392369 -1.499999 +v 0.392370 0.392370 2.499998 +v 0.392369 0.267369 -1.499999 +v 0.392370 0.267370 2.499999 +v 0.267369 0.392370 -1.499999 +v 0.267370 0.392370 2.499999 +v 0.267369 0.267370 -1.499999 +v 0.267370 0.267370 2.499999 +v 0.220971 -0.088388 -3.500000 +v 0.220971 -0.088388 -3.437500 +v 0.265165 -0.132582 -3.500000 +v 0.265165 -0.132582 -3.437500 +v 0.088388 -0.220971 -3.500000 +v 0.088388 -0.220971 -3.437500 +v 0.132583 -0.265165 -3.500000 +v 0.132583 -0.265165 -3.437500 +v 0.353553 -0.132582 -3.437500 +v 0.353553 -0.132582 -3.500000 +v 0.132583 -0.353553 -3.500000 +v 0.132583 -0.353553 -3.437500 +v 0.707107 -0.486136 -3.437500 +v 0.707107 -0.486136 -3.500000 +v 0.486136 -0.707107 -3.500000 +v 0.486136 -0.707107 -3.437500 +v -0.088388 -0.220971 -3.500000 +v -0.088388 -0.220971 -3.437500 +v -0.132582 -0.265166 -3.500000 +v -0.132582 -0.265166 -3.437500 +v -0.220970 -0.088389 -3.500000 +v -0.220970 -0.088389 -3.437500 +v -0.265165 -0.132583 -3.500000 +v -0.265165 -0.132583 -3.437500 +v -0.132582 -0.353554 -3.437500 +v -0.132582 -0.353554 -3.500000 +v -0.353553 -0.132583 -3.500000 +v -0.353553 -0.132583 -3.437500 +v -0.486135 -0.707107 -3.437500 +v -0.486135 -0.707107 -3.500000 +v -0.707106 -0.486136 -3.500000 +v -0.707106 -0.486136 -3.437500 +v -0.220971 0.088387 -3.500000 +v -0.220971 0.088387 -3.437500 +v -0.265165 0.132582 -3.500000 +v -0.265165 0.132582 -3.437500 +v -0.088388 0.220970 -3.500000 +v -0.088388 0.220970 -3.437500 +v -0.132582 0.265164 -3.500000 +v -0.132582 0.265164 -3.437500 +v -0.353553 0.132582 -3.437500 +v -0.353553 0.132582 -3.500000 +v -0.132583 0.353552 -3.500000 +v -0.132582 0.353552 -3.437500 +v -0.707107 0.486135 -3.437501 +v -0.707107 0.486135 -3.500001 +v -0.486136 0.707106 -3.500001 +v -0.486136 0.707106 -3.437501 +v 0.088388 0.220970 -3.500000 +v 0.088388 0.220970 -3.437500 +v 0.132582 0.265164 -3.500000 +v 0.132582 0.265164 -3.437500 +v 0.220970 0.088388 -3.500000 +v 0.220970 0.088388 -3.437500 +v 0.265164 0.132582 -3.500000 +v 0.265164 0.132582 -3.437500 +v 0.132582 0.353553 -3.437501 +v 0.132582 0.353553 -3.500000 +v 0.353553 0.132582 -3.500000 +v 0.353553 0.132582 -3.437500 +v 0.486135 0.707106 -3.437501 +v 0.486135 0.707106 -3.500001 +v 0.707106 0.486135 -3.500001 +v 0.707106 0.486135 -3.437501 +v 0.420463 -0.062500 -1.424884 +v 0.420463 0.062500 -1.424884 +v 0.420463 0.000000 -1.500000 +v 0.920463 -0.062500 -1.674884 +v 0.920463 0.000000 -1.750000 +v 0.920463 0.062500 -1.674884 +v 0.420463 -0.062500 0.424884 +v 0.420463 -0.000000 0.500000 +v 0.420463 0.062500 0.424884 +v 0.920463 -0.062500 0.174884 +v 0.920463 0.062500 0.174884 +v 0.920463 -0.000000 0.250000 +v -0.420463 -0.062500 -1.424884 +v -0.420463 0.062500 -1.424884 +v -0.420463 0.000000 -1.500000 +v -0.920463 -0.062500 -1.674884 +v -0.920463 0.000000 -1.750000 +v -0.920463 0.062500 -1.674884 +v -0.420463 -0.062500 0.424884 +v -0.420463 -0.000000 0.500000 +v -0.420463 0.062500 0.424884 +v -0.920463 -0.062500 0.174884 +v -0.920463 0.062500 0.174884 +v -0.920463 -0.000000 0.250000 +v -0.186935 -0.031250 3.781250 +v -0.186935 -0.031250 4.156250 +v -0.186935 0.031250 3.781250 +v -0.186935 0.031250 4.156250 +v -0.124435 -0.031250 3.781250 +v -0.124435 -0.031250 4.156250 +v -0.124435 0.031250 3.781250 +v -0.124435 0.031250 4.156250 +v 0.186935 -0.031250 3.781250 +v 0.186935 -0.031250 4.156250 +v 0.186935 0.031250 3.781250 +v 0.186935 0.031250 4.156250 +v 0.124435 -0.031250 3.781250 +v 0.124435 -0.031250 4.156250 +v 0.124435 0.031250 3.781250 +v 0.124435 0.031250 4.156250 +v -0.000000 0.482963 -2.000000 +v -0.000000 0.482962 3.000000 +v 0.241481 0.418258 -2.000000 +v 0.241481 0.418258 3.000000 +v 0.418258 0.241481 -2.000000 +v 0.418258 0.241481 3.000000 +v 0.482963 0.000000 -2.000000 +v 0.482963 -0.000000 3.000000 +v 0.418258 -0.241481 -2.000000 +v 0.418258 -0.241482 3.000000 +v 0.241481 -0.418258 -2.000000 +v 0.241481 -0.418258 3.000000 +v 0.000000 -0.482963 -2.000000 +v 0.000000 -0.482963 3.000000 +v -0.241481 -0.418258 -2.000000 +v -0.241481 -0.418258 3.000000 +v -0.418258 -0.241481 -2.000000 +v -0.418258 -0.241482 3.000000 +v -0.482963 -0.000000 -2.000000 +v -0.482963 -0.000000 3.000000 +v -0.418258 0.241481 -2.000000 +v -0.418258 0.241481 3.000000 +v -0.241482 0.418258 -2.000000 +v -0.241482 0.418258 3.000000 +v 0.000000 0.241481 -3.000000 +v 0.120741 0.209129 -3.000000 +v 0.209129 0.120741 -3.000000 +v 0.241481 0.000000 -3.000000 +v 0.209129 -0.120741 -3.000000 +v 0.120741 -0.209129 -3.000000 +v 0.000000 -0.241481 -3.000000 +v -0.120741 -0.209129 -3.000000 +v -0.209129 -0.120741 -3.000000 +v -0.241481 -0.000000 -3.000000 +v -0.209129 0.120741 -3.000000 +v -0.120741 0.209129 -3.000000 +v 0.000000 0.241481 -3.500000 +v 0.120741 0.209129 -3.500000 +v 0.209129 0.120741 -3.500000 +v 0.241481 0.000000 -3.500000 +v 0.209129 -0.120741 -3.500000 +v 0.120741 -0.209129 -3.500000 +v 0.000000 -0.241481 -3.500000 +v -0.120741 -0.209129 -3.500000 +v -0.209129 -0.120741 -3.500000 +v -0.241481 -0.000000 -3.500000 +v -0.209129 0.120741 -3.500000 +v -0.120741 0.209129 -3.500000 +v 0.120741 0.209129 3.750000 +v -0.000000 0.241481 3.750000 +v 0.209129 0.120740 3.750000 +v 0.241481 -0.000000 3.750000 +v 0.209129 -0.120741 3.750000 +v 0.120741 -0.209129 3.750000 +v 0.000000 -0.241481 3.750000 +v -0.120741 -0.209129 3.750000 +v -0.209129 -0.120741 3.750000 +v -0.241481 -0.000000 3.750000 +v -0.209129 0.120740 3.750000 +v -0.120741 0.209129 3.750000 +v 0.000000 -0.000000 4.000000 +vt 0.382857 0.042857 +vt 0.017143 0.071429 +vt 0.017143 0.042857 +vt 0.382857 0.014286 +vt 0.017143 0.014286 +vt 0.005714 0.014286 +vt 0.005714 0.042857 +vt 0.394286 0.042857 +vt 0.394286 0.014286 +vt 0.382857 0.114286 +vt 0.017143 0.142857 +vt 0.017143 0.114286 +vt 0.382857 0.085714 +vt 0.017143 0.085714 +vt 0.005714 0.085714 +vt 0.005714 0.114286 +vt 0.394286 0.114286 +vt 0.394286 0.085714 +vt 0.382857 0.185714 +vt 0.017143 0.214286 +vt 0.017143 0.185714 +vt 0.382857 0.157143 +vt 0.017143 0.157143 +vt 0.005714 0.157143 +vt 0.005714 0.185714 +vt 0.394286 0.185714 +vt 0.394286 0.157143 +vt 0.382857 0.257143 +vt 0.017143 0.285714 +vt 0.017143 0.257143 +vt 0.017143 0.228571 +vt 0.005714 0.228571 +vt 0.005714 0.257143 +vt 0.394286 0.257143 +vt 0.382857 0.228571 +vt 0.394286 0.228571 +vt 0.691429 0.128571 +vt 0.685714 0.142857 +vt 0.685714 0.128571 +vt 0.657143 0.142857 +vt 0.651429 0.157143 +vt 0.651429 0.142857 +vt 0.657143 0.128571 +vt 0.662857 0.142857 +vt 0.680000 0.128571 +vt 0.680000 0.142857 +vt 0.645714 0.142857 +vt 0.628571 0.128571 +vt 0.645714 0.128571 +vt 0.657143 0.157143 +vt 0.651429 0.271429 +vt 0.622857 0.157143 +vt 0.628571 0.142857 +vt 0.691429 0.142857 +vt 0.685714 0.157143 +vt 0.685714 0.285714 +vt 0.657143 0.271429 +vt 0.685714 0.271429 +vt 0.622857 0.271429 +vt 0.691429 0.157143 +vt 0.617143 0.128571 +vt 0.611429 0.142857 +vt 0.611429 0.128571 +vt 0.582857 0.142857 +vt 0.577143 0.157143 +vt 0.577143 0.142857 +vt 0.582857 0.128571 +vt 0.588571 0.142857 +vt 0.605714 0.128571 +vt 0.605714 0.142857 +vt 0.571429 0.142857 +vt 0.554286 0.128571 +vt 0.571429 0.128571 +vt 0.582857 0.157143 +vt 0.577143 0.271429 +vt 0.548571 0.157143 +vt 0.554286 0.142857 +vt 0.617143 0.142857 +vt 0.611429 0.157143 +vt 0.611429 0.285714 +vt 0.582857 0.271429 +vt 0.611429 0.271429 +vt 0.548571 0.271429 +vt 0.617143 0.157143 +vt 0.542857 0.128571 +vt 0.537143 0.142857 +vt 0.537143 0.128571 +vt 0.502857 0.142857 +vt 0.508571 0.157143 +vt 0.502857 0.157143 +vt 0.508571 0.142857 +vt 0.502857 0.128571 +vt 0.508571 0.128571 +vt 0.514286 0.142857 +vt 0.531429 0.128571 +vt 0.531429 0.142857 +vt 0.480000 0.142857 +vt 0.497143 0.128571 +vt 0.497143 0.142857 +vt 0.502857 0.271429 +vt 0.474286 0.157143 +vt 0.542857 0.142857 +vt 0.537143 0.157143 +vt 0.537143 0.285714 +vt 0.508571 0.271429 +vt 0.537143 0.271429 +vt 0.474286 0.271429 +vt 0.542857 0.271429 +vt 0.468571 0.128571 +vt 0.462857 0.142857 +vt 0.462857 0.128571 +vt 0.434286 0.142857 +vt 0.428571 0.157143 +vt 0.428571 0.142857 +vt 0.434286 0.128571 +vt 0.440000 0.142857 +vt 0.457143 0.128571 +vt 0.457143 0.142857 +vt 0.422857 0.142857 +vt 0.405714 0.128571 +vt 0.422857 0.128571 +vt 0.434286 0.157143 +vt 0.428571 0.271429 +vt 0.400000 0.157143 +vt 0.405714 0.142857 +vt 0.468571 0.157143 +vt 0.462857 0.157143 +vt 0.462857 0.285714 +vt 0.434286 0.271429 +vt 0.462857 0.271429 +vt 0.400000 0.271429 +vt 0.468571 0.271429 +vt 0.862857 0.968548 +vt 0.862857 0.545738 +vt 0.874286 0.545738 +vt 0.805714 0.557143 +vt 0.760000 0.928571 +vt 0.760000 0.500000 +vt 0.857143 0.928571 +vt 0.811429 0.557143 +vt 0.857143 0.500000 +vt 0.805714 0.471429 +vt 0.760000 0.485714 +vt 0.760000 0.471429 +vt 0.760000 0.457143 +vt 0.805714 0.457143 +vt 0.857143 0.471429 +vt 0.811429 0.485714 +vt 0.811429 0.471429 +vt 0.811429 0.457143 +vt 0.857143 0.457143 +vt 0.880000 0.545738 +vt 0.891429 0.968548 +vt 0.880000 0.968548 +vt 0.948571 0.557143 +vt 0.994286 0.928571 +vt 0.948571 0.985714 +vt 0.942857 0.557143 +vt 0.897143 0.928571 +vt 0.897143 0.500000 +vt 0.994286 0.485714 +vt 0.948571 0.471429 +vt 0.994286 0.471429 +vt 0.994286 0.457143 +vt 0.942857 0.485714 +vt 0.897143 0.471429 +vt 0.942857 0.471429 +vt 0.942857 0.457143 +vt 0.714286 0.757143 +vt 0.748571 0.771429 +vt 0.748571 0.757143 +vt 0.714286 0.771429 +vt 0.748571 0.785714 +vt 0.714286 0.728571 +vt 0.748571 0.742857 +vt 0.748571 0.728571 +vt 0.714286 0.742857 +vt 0.708571 0.757143 +vt 0.708571 0.771429 +vt 0.748571 0.814286 +vt 0.714286 0.828571 +vt 0.748571 0.828571 +vt 0.748571 0.800000 +vt 0.714286 0.814286 +vt 0.748571 0.842857 +vt 0.714286 0.857143 +vt 0.748571 0.857143 +vt 0.714286 0.842857 +vt 0.708571 0.828571 +vt 0.708571 0.814286 +vt 0.382857 0.071429 +vt 0.382857 0.142857 +vt 0.382857 0.214286 +vt 0.382857 0.285714 +vt 0.651429 0.128571 +vt 0.662857 0.128571 +vt 0.657143 0.285714 +vt 0.691429 0.271429 +vt 0.577143 0.128571 +vt 0.588571 0.128571 +vt 0.582857 0.285714 +vt 0.617143 0.271429 +vt 0.514286 0.128571 +vt 0.480000 0.128571 +vt 0.542857 0.157143 +vt 0.508571 0.285714 +vt 0.468571 0.142857 +vt 0.428571 0.128571 +vt 0.440000 0.128571 +vt 0.434286 0.285714 +vt 0.868571 0.528571 +vt 0.874286 0.968548 +vt 0.868571 0.985714 +vt 0.805714 0.985714 +vt 0.811429 0.985714 +vt 0.805714 0.485714 +vt 0.857143 0.485714 +vt 0.885714 0.528571 +vt 0.891429 0.545738 +vt 0.885714 0.985714 +vt 0.994286 0.500000 +vt 0.942857 0.985714 +vt 0.948571 0.485714 +vt 0.948571 0.457143 +vt 0.897143 0.485714 +vt 0.897143 0.457143 +vt 0.714286 0.785714 +vt 0.714286 0.800000 +vt 0.102857 0.471429 +vt 0.560000 0.414286 +vt 0.560000 0.471429 +vt 0.102857 0.414286 +vt 0.560000 0.357143 +vt 0.102857 0.357143 +vt 0.560000 0.300000 +vt 0.102857 0.985714 +vt 0.560000 0.928571 +vt 0.560000 0.985714 +vt 0.102857 0.928571 +vt 0.560000 0.871429 +vt 0.102857 0.871429 +vt 0.560000 0.814286 +vt 0.102857 0.814286 +vt 0.560000 0.757143 +vt 0.102857 0.757143 +vt 0.560000 0.700000 +vt 0.102857 0.700000 +vt 0.560000 0.642857 +vt 0.102857 0.642857 +vt 0.560000 0.585714 +vt 0.034286 0.942857 +vt 0.102857 0.585714 +vt 0.560000 0.528571 +vt 0.102857 0.528571 +vt 0.651429 0.400000 +vt 0.657143 0.642857 +vt 0.702857 0.671429 +vt 0.657143 0.671429 +vt 0.651429 0.628571 +vt 0.651429 0.685714 +vt 0.651429 0.742857 +vt 0.651429 0.800000 +vt 0.651429 0.857143 +vt 0.651429 0.914286 +vt 0.651429 0.971429 +vt 0.651429 0.514286 +vt 0.651429 0.457143 +vt 0.651429 0.342857 +vt 0.651429 0.571429 +vt 0.753847 0.928913 +vt 0.720484 0.976662 +vt 0.720625 0.880554 +vt 0.657143 0.785714 +vt 0.702857 0.814286 +vt 0.657143 0.814286 +vt 0.657143 0.871429 +vt 0.702857 0.900000 +vt 0.657143 0.900000 +vt 0.657143 0.957143 +vt 0.702857 0.985714 +vt 0.657143 0.985714 +vt 0.657143 0.757143 +vt 0.702857 0.785714 +vt 0.657143 0.700000 +vt 0.702857 0.728571 +vt 0.657143 0.728571 +vt 0.657143 0.842857 +vt 0.702857 0.871429 +vt 0.657143 0.928571 +vt 0.702857 0.957143 +vt 0.702857 0.757143 +vt 0.702857 0.700000 +vt 0.702857 0.842857 +vt 0.702857 0.928571 +vt 0.034286 0.828571 +vt 0.034286 0.857143 +vt 0.005714 0.842857 +vt 0.034286 0.485714 +vt 0.034286 0.428571 +vt 0.034286 0.314286 +vt 0.102857 0.300000 +vt 0.034286 0.542857 +vt 0.034286 0.371429 +vt 0.034286 0.600000 +vt 0.034286 0.685714 +vt 0.034286 0.657143 +vt 0.034286 0.714286 +vt 0.034286 0.771429 +vt 0.034286 0.885714 +vt 0.034286 0.342857 +vt 0.005714 0.328571 +vt 0.034286 0.628571 +vt 0.005714 0.614286 +vt 0.034286 0.800000 +vt 0.005714 0.785714 +vt 0.034286 0.971429 +vt 0.005714 0.957143 +vt 0.034286 0.571429 +vt 0.005714 0.557143 +vt 0.034286 0.457143 +vt 0.005714 0.442857 +vt 0.034286 0.742857 +vt 0.005714 0.728571 +vt 0.034286 0.914286 +vt 0.005714 0.900000 +vt 0.034286 0.514286 +vt 0.005714 0.500000 +vt 0.034286 0.400000 +vt 0.005714 0.385714 +vt 0.005714 0.671429 +vt 0.651429 0.371429 +vt 0.702857 0.642857 +vt 0.651429 0.600000 +vt 0.651429 0.657143 +vt 0.651429 0.714286 +vt 0.651429 0.771429 +vt 0.651429 0.828571 +vt 0.651429 0.885714 +vt 0.651429 0.942857 +vt 0.651429 0.485714 +vt 0.651429 0.428571 +vt 0.651429 0.314286 +vt 0.651429 0.542857 +vt 0.731734 0.873222 +vt 0.742820 0.880758 +vt 0.750915 0.901142 +vt 0.750833 0.956630 +vt 0.742679 0.976865 +vt 0.731571 0.984197 +vt 0.712390 0.956277 +vt 0.709457 0.928506 +vt 0.712471 0.900789 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.0000 0.0000 1.0000 +vn -1.0000 0.0000 -0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3046 0.7322 -0.6092 +vn -0.3046 -0.7322 -0.6092 +vn 0.3046 0.7322 0.6092 +vn 0.3046 -0.7322 0.6092 +vn 0.3046 0.7322 -0.6092 +vn 0.3046 -0.7322 -0.6092 +vn -0.3046 0.7322 0.6092 +vn -0.3046 -0.7322 0.6092 +vn 0.0000 0.9885 0.1513 +vn 0.4966 0.8602 -0.1160 +vn 0.0000 0.9932 -0.1160 +vn 0.4942 0.8560 0.1513 +vn 0.8602 0.4966 -0.1160 +vn 0.8560 0.4942 0.1513 +vn 0.9932 0.0000 -0.1160 +vn 0.9885 0.0000 0.1513 +vn 0.8602 -0.4966 -0.1160 +vn 0.8560 -0.4942 0.1513 +vn 0.4966 -0.8602 -0.1160 +vn 0.4942 -0.8560 0.1513 +vn 0.0000 -0.9932 -0.1160 +vn 0.0000 -0.9885 0.1513 +vn -0.4966 -0.8602 -0.1160 +vn -0.4942 -0.8560 0.1513 +vn -0.8602 -0.4966 -0.1160 +vn -0.8560 -0.4942 0.1513 +vn -0.9932 0.0000 -0.1160 +vn -0.9885 0.0000 0.1513 +vn -0.8602 0.4966 -0.1160 +vn 0.7509 -0.4335 0.4981 +vn -0.8560 0.4942 0.1513 +vn -0.4966 0.8602 -0.1160 +vn -0.4942 0.8560 0.1513 +vn 0.4964 0.8597 -0.1205 +vn 0.9927 0.0000 -0.1205 +vn 0.6557 0.3786 -0.6532 +vn 0.8597 0.4964 -0.1205 +vn -0.9927 0.0000 -0.1205 +vn -0.8597 -0.4964 -0.1205 +vn -0.4963 -0.8597 -0.1205 +vn 0.0000 -0.9927 -0.1205 +vn 0.4964 -0.8597 -0.1205 +vn 0.8597 -0.4964 -0.1205 +vn -0.4964 0.8597 -0.1205 +vn 0.0000 0.9927 -0.1205 +vn -0.8597 0.4964 -0.1205 +vn 0.7571 0.0000 -0.6532 +vn -0.3786 -0.6557 -0.6532 +vn -0.3786 0.6557 -0.6532 +vn -0.7571 0.0000 -0.6532 +vn 0.0000 -0.7571 -0.6532 +vn -0.6557 0.3786 -0.6532 +vn 0.0000 0.7571 -0.6532 +vn 0.6557 -0.3786 -0.6532 +vn 0.3786 0.6557 -0.6532 +vn -0.6557 -0.3786 -0.6532 +vn 0.3786 -0.6557 -0.6532 +vn 0.0000 -0.8671 0.4981 +vn 0.4335 -0.7509 0.4981 +vn 0.0000 0.8671 0.4981 +vn 0.4335 0.7509 0.4981 +vn 0.8671 0.0000 0.4981 +vn -0.4335 0.7509 0.4981 +vn 0.7509 0.4335 0.4981 +vn -0.7509 0.4335 0.4981 +vn -0.7509 -0.4335 0.4981 +vn -0.8671 0.0000 0.4981 +vn -0.4335 -0.7509 0.4981 +usemtl None +s off +f 2/1/1 3/2/1 1/3/1 +f 6/4/2 1/3/2 5/5/2 +f 7/6/3 1/3/3 3/7/3 +f 4/8/4 6/4/4 8/9/4 +f 10/10/5 11/11/5 9/12/5 +f 14/13/1 9/12/1 13/14/1 +f 15/15/3 9/12/3 11/16/3 +f 12/17/4 14/13/4 16/18/4 +f 18/19/6 19/20/6 17/21/6 +f 22/22/5 17/21/5 21/23/5 +f 23/24/3 17/21/3 19/25/3 +f 20/26/4 22/22/4 24/27/4 +f 26/28/2 27/29/2 25/30/2 +f 29/31/6 26/28/6 25/30/6 +f 31/32/3 25/30/3 27/33/3 +f 28/34/4 30/35/4 32/36/4 +f 34/37/7 35/38/7 33/39/7 +f 39/40/5 44/41/5 40/42/5 +f 40/42/8 37/43/8 39/40/8 +f 39/44/3 33/45/3 35/46/3 +f 40/47/4 34/48/4 38/49/4 +f 43/50/8 48/51/8 44/41/8 +f 35/46/3 43/50/3 39/44/3 +f 40/47/4 41/52/4 36/53/4 +f 36/54/6 42/55/6 35/38/6 +f 45/56/9 47/57/9 46/58/9 +f 42/55/3 47/57/3 43/50/3 +f 44/41/4 45/59/4 41/52/4 +f 41/60/7 46/58/7 42/55/7 +f 50/61/9 51/62/9 49/63/9 +f 55/64/6 60/65/6 56/66/6 +f 56/66/10 53/67/10 55/64/10 +f 55/68/3 49/69/3 51/70/3 +f 56/71/4 50/72/4 54/73/4 +f 59/74/10 64/75/10 60/65/10 +f 51/70/3 59/74/3 55/68/3 +f 56/71/4 57/76/4 52/77/4 +f 52/78/2 58/79/2 51/62/2 +f 61/80/8 63/81/8 62/82/8 +f 59/74/3 62/82/3 63/81/3 +f 60/65/4 61/83/4 57/76/4 +f 57/84/9 62/82/9 58/79/9 +f 66/85/8 67/86/8 65/87/8 +f 72/88/2 75/89/2 76/90/2 +f 71/91/7 70/92/7 69/93/7 +f 71/94/3 65/95/3 67/96/3 +f 68/97/4 70/98/4 72/99/4 +f 75/89/7 80/100/7 76/90/7 +f 67/96/3 75/89/3 71/94/3 +f 72/99/4 73/101/4 68/97/4 +f 68/102/1 74/103/1 67/86/1 +f 77/104/10 79/105/10 78/106/10 +f 74/103/3 79/105/3 75/89/3 +f 76/90/4 77/107/4 73/101/4 +f 74/103/8 77/108/8 78/106/8 +f 82/109/10 83/110/10 81/111/10 +f 87/112/1 92/113/1 88/114/1 +f 88/114/9 85/115/9 87/112/9 +f 87/116/3 81/117/3 83/118/3 +f 88/119/4 82/120/4 86/121/4 +f 91/122/9 96/123/9 92/113/9 +f 83/118/3 91/122/3 87/116/3 +f 88/119/4 89/124/4 84/125/4 +f 83/110/5 89/126/5 90/127/5 +f 93/128/7 95/129/7 94/130/7 +f 90/127/3 95/129/3 91/122/3 +f 92/113/4 93/131/4 89/124/4 +f 90/127/10 93/132/10 94/130/10 +f 106/133/2 100/134/2 102/135/2 +f 98/136/6 107/137/6 102/138/6 +f 106/139/1 97/140/1 100/141/1 +f 99/142/11 102/143/11 101/144/11 +f 99/142/12 100/145/12 97/146/12 +f 108/147/13 105/148/13 104/149/13 +f 108/147/14 103/150/14 106/151/14 +f 114/152/5 118/153/5 119/154/5 +f 110/155/6 119/156/6 117/157/6 +f 109/158/1 118/159/1 112/160/1 +f 114/161/15 111/162/15 113/163/15 +f 111/162/16 112/164/16 113/163/16 +f 117/165/17 120/166/17 116/167/17 +f 120/166/18 115/168/18 116/167/18 +f 122/169/5 123/170/5 121/171/5 +f 124/172/6 127/173/6 123/170/6 +f 128/174/2 125/175/2 127/176/2 +f 126/177/1 121/171/1 125/175/1 +f 124/172/4 126/178/4 128/179/4 +f 131/180/2 130/181/2 129/182/2 +f 135/183/6 132/184/6 131/180/6 +f 133/185/5 136/186/5 135/187/5 +f 129/182/1 134/188/1 133/185/1 +f 134/189/4 132/184/4 136/190/4 +f 2/1/1 4/191/1 3/2/1 +f 6/4/2 2/1/2 1/3/2 +f 7/6/3 5/5/3 1/3/3 +f 4/8/4 2/1/4 6/4/4 +f 10/10/5 12/192/5 11/11/5 +f 14/13/1 10/10/1 9/12/1 +f 15/15/3 13/14/3 9/12/3 +f 12/17/4 10/10/4 14/13/4 +f 18/19/6 20/193/6 19/20/6 +f 22/22/5 18/19/5 17/21/5 +f 23/24/3 21/23/3 17/21/3 +f 20/26/4 18/19/4 22/22/4 +f 26/28/2 28/194/2 27/29/2 +f 29/31/6 30/35/6 26/28/6 +f 31/32/3 29/31/3 25/30/3 +f 28/34/4 26/28/4 30/35/4 +f 34/37/7 36/54/7 35/38/7 +f 39/40/5 43/50/5 44/41/5 +f 40/42/8 38/195/8 37/43/8 +f 39/44/3 37/196/3 33/45/3 +f 40/47/4 36/53/4 34/48/4 +f 43/50/8 47/57/8 48/51/8 +f 35/46/3 42/55/3 43/50/3 +f 40/47/4 44/41/4 41/52/4 +f 36/54/6 41/60/6 42/55/6 +f 45/56/9 48/197/9 47/57/9 +f 42/55/3 46/58/3 47/57/3 +f 44/41/4 48/51/4 45/59/4 +f 41/60/7 45/198/7 46/58/7 +f 50/61/9 52/78/9 51/62/9 +f 55/64/6 59/74/6 60/65/6 +f 56/66/10 54/199/10 53/67/10 +f 55/68/3 53/200/3 49/69/3 +f 56/71/4 52/77/4 50/72/4 +f 59/74/10 63/81/10 64/75/10 +f 51/70/3 58/79/3 59/74/3 +f 56/71/4 60/65/4 57/76/4 +f 52/78/2 57/84/2 58/79/2 +f 61/80/8 64/201/8 63/81/8 +f 59/74/3 58/79/3 62/82/3 +f 60/65/4 64/75/4 61/83/4 +f 57/84/9 61/202/9 62/82/9 +f 66/85/8 68/102/8 67/86/8 +f 72/88/2 71/91/2 75/89/2 +f 71/91/7 72/88/7 70/92/7 +f 71/94/3 69/203/3 65/95/3 +f 68/97/4 66/204/4 70/98/4 +f 75/89/7 79/105/7 80/100/7 +f 67/96/3 74/103/3 75/89/3 +f 72/99/4 76/90/4 73/101/4 +f 68/102/1 73/205/1 74/103/1 +f 77/104/10 80/206/10 79/105/10 +f 74/103/3 78/106/3 79/105/3 +f 76/90/4 80/100/4 77/107/4 +f 74/103/8 73/205/8 77/108/8 +f 82/109/10 84/207/10 83/110/10 +f 87/112/1 91/122/1 92/113/1 +f 88/114/9 86/208/9 85/115/9 +f 87/116/3 85/209/3 81/117/3 +f 88/119/4 84/125/4 82/120/4 +f 91/122/9 95/129/9 96/123/9 +f 83/118/3 90/127/3 91/122/3 +f 88/119/4 92/113/4 89/124/4 +f 83/110/5 84/207/5 89/126/5 +f 93/128/7 96/210/7 95/129/7 +f 90/127/3 94/130/3 95/129/3 +f 92/113/4 96/123/4 93/131/4 +f 90/127/10 89/126/10 93/132/10 +f 100/134/2 101/211/2 102/135/2 +f 102/135/2 107/212/2 106/133/2 +f 107/212/2 108/213/2 106/133/2 +f 98/136/6 105/214/6 107/137/6 +f 106/139/1 103/215/1 97/140/1 +f 99/142/11 98/216/11 102/143/11 +f 99/142/12 101/144/12 100/145/12 +f 108/147/13 107/217/13 105/148/13 +f 108/147/14 104/149/14 103/150/14 +f 114/152/5 113/218/5 112/219/5 +f 112/219/5 118/153/5 114/152/5 +f 118/153/5 120/220/5 119/154/5 +f 110/155/6 114/221/6 119/156/6 +f 109/158/1 115/222/1 118/159/1 +f 114/161/15 110/223/15 111/162/15 +f 111/162/16 109/224/16 112/164/16 +f 117/165/17 119/225/17 120/166/17 +f 120/166/18 118/226/18 115/168/18 +f 122/169/5 124/172/5 123/170/5 +f 124/172/6 128/227/6 127/173/6 +f 128/174/2 126/177/2 125/175/2 +f 126/177/1 122/169/1 121/171/1 +f 124/172/4 122/169/4 126/178/4 +f 131/180/2 132/184/2 130/181/2 +f 135/183/6 136/228/6 132/184/6 +f 133/185/5 134/188/5 136/186/5 +f 129/182/1 130/181/1 134/188/1 +f 134/189/4 130/181/4 132/184/4 +s 1 +f 138/229/19 139/230/20 137/231/21 +f 140/232/22 141/233/23 139/230/20 +f 142/234/24 143/235/25 141/233/23 +f 144/236/26 145/237/27 143/238/25 +f 146/239/28 147/240/29 145/237/27 +f 148/241/30 149/242/31 147/240/29 +f 150/243/32 151/244/33 149/242/31 +f 152/245/34 153/246/35 151/244/33 +f 154/247/36 155/248/37 153/246/35 +f 156/249/38 157/250/39 155/248/37 +f 144/236/26 189/251/40 146/239/28 +f 158/252/41 159/253/42 157/250/39 +f 160/254/43 137/231/21 159/253/42 +f 141/233/23 162/255/44 139/230/20 +f 164/256/45 175/257/46 163/258/47 +f 157/250/39 170/259/48 155/248/37 +f 155/248/37 169/260/49 153/246/35 +f 153/246/35 168/261/50 151/244/33 +f 151/244/33 167/262/51 149/242/31 +f 149/242/31 166/263/52 147/240/29 +f 147/240/29 165/264/53 145/237/27 +f 145/237/27 164/265/45 143/238/25 +f 137/231/21 172/266/54 159/253/42 +f 139/230/20 161/267/55 137/231/21 +f 143/235/25 163/268/47 141/233/23 +f 159/253/42 171/269/56 157/250/39 +f 176/270/57 180/271/58 184/272/59 +f 171/273/56 182/274/60 170/275/48 +f 168/276/50 179/277/61 167/278/51 +f 165/279/53 176/280/57 164/281/45 +f 172/282/54 183/283/62 171/273/56 +f 162/284/44 173/285/63 161/286/55 +f 169/287/49 180/288/58 168/276/50 +f 166/289/52 177/290/64 165/279/53 +f 161/286/55 184/291/59 172/282/54 +f 163/258/47 174/292/65 162/284/44 +f 170/275/48 181/293/66 169/287/49 +f 167/278/51 178/294/67 166/289/52 +f 191/295/68 190/296/69 197/297/4 +f 160/254/43 186/298/70 138/229/19 +f 138/229/19 185/299/71 140/232/22 +f 142/234/24 188/300/72 144/301/26 +f 158/252/41 196/302/73 160/254/43 +f 140/232/22 187/303/74 142/234/24 +f 156/249/38 195/304/75 158/252/41 +f 156/249/38 193/305/76 194/306/77 +f 152/245/34 193/307/76 154/247/36 +f 150/243/32 192/308/78 152/245/34 +f 148/241/30 191/295/68 150/243/32 +f 146/239/28 190/309/69 148/241/30 +f 188/300/72 187/310/74 197/311/4 +f 195/304/75 194/312/77 197/313/4 +f 192/308/78 191/314/68 197/315/4 +f 189/251/40 188/316/72 197/317/4 +f 196/302/73 195/318/75 197/319/4 +f 185/299/71 186/320/70 197/321/4 +f 193/307/76 192/322/78 197/323/4 +f 190/309/69 189/324/40 197/325/4 +f 186/298/70 196/326/73 197/327/4 +f 187/303/74 185/328/71 197/329/4 +f 194/306/77 193/305/76 197/330/4 +f 138/229/19 140/232/22 139/230/20 +f 140/232/22 142/234/24 141/233/23 +f 142/234/24 144/301/26 143/235/25 +f 144/236/26 146/239/28 145/237/27 +f 146/239/28 148/241/30 147/240/29 +f 148/241/30 150/243/32 149/242/31 +f 150/243/32 152/245/34 151/244/33 +f 152/245/34 154/247/36 153/246/35 +f 154/247/36 156/249/38 155/248/37 +f 156/249/38 158/252/41 157/250/39 +f 144/236/26 188/316/72 189/251/40 +f 158/252/41 160/254/43 159/253/42 +f 160/254/43 138/229/19 137/231/21 +f 141/233/23 163/331/47 162/255/44 +f 164/256/45 176/332/57 175/257/46 +f 157/250/39 171/333/56 170/259/48 +f 155/248/37 170/334/48 169/260/49 +f 153/246/35 169/335/49 168/261/50 +f 151/244/33 168/336/50 167/262/51 +f 149/242/31 167/337/51 166/263/52 +f 147/240/29 166/338/52 165/264/53 +f 145/237/27 165/339/53 164/265/45 +f 137/231/21 161/340/55 172/266/54 +f 139/230/20 162/341/44 161/267/55 +f 143/235/25 164/342/45 163/268/47 +f 159/253/42 172/343/54 171/269/56 +f 184/272/59 173/344/63 176/270/57 +f 173/344/63 174/345/65 176/270/57 +f 174/345/65 175/346/46 176/270/57 +f 176/270/57 177/347/64 178/348/67 +f 178/348/67 179/349/61 176/270/57 +f 179/349/61 180/271/58 176/270/57 +f 180/271/58 181/350/66 182/351/60 +f 182/351/60 183/352/62 184/272/59 +f 180/271/58 182/351/60 184/272/59 +f 171/273/56 183/283/62 182/274/60 +f 168/276/50 180/288/58 179/277/61 +f 165/279/53 177/290/64 176/280/57 +f 172/282/54 184/291/59 183/283/62 +f 162/284/44 174/292/65 173/285/63 +f 169/287/49 181/293/66 180/288/58 +f 166/289/52 178/294/67 177/290/64 +f 161/286/55 173/285/63 184/291/59 +f 163/258/47 175/257/46 174/292/65 +f 170/275/48 182/274/60 181/293/66 +f 167/278/51 179/277/61 178/294/67 +f 160/254/43 196/326/73 186/298/70 +f 138/229/19 186/320/70 185/299/71 +f 142/234/24 187/310/74 188/300/72 +f 158/252/41 195/318/75 196/302/73 +f 140/232/22 185/328/71 187/303/74 +f 156/249/38 194/312/77 195/304/75 +f 156/249/38 154/247/36 193/305/76 +f 152/245/34 192/322/78 193/307/76 +f 150/243/32 191/314/68 192/308/78 +f 148/241/30 190/296/69 191/295/68 +f 146/239/28 189/324/40 190/309/69 diff --git a/src/main/resources/assets/hbm/models/bombs/dud_nuke.obj b/src/main/resources/assets/hbm/models/bombs/dud_nuke.obj new file mode 100644 index 000000000..7d9c18355 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/dud_nuke.obj @@ -0,0 +1,799 @@ +# Blender v2.79 (sub 7) OBJ File: 'flat fuck.blend' +# www.blender.org +mtllib flat_fuck.mtl +o Cube.001_Cube.002 +v 0.218750 -0.031250 -3.812500 +v 0.218750 0.031250 -3.812500 +v 0.218750 -0.031250 -4.187500 +v 0.218750 0.031250 -4.187500 +v 0.406250 -0.031250 -4.000000 +v 0.343750 -0.031250 -3.812500 +v 0.343750 0.031250 -3.812500 +v 0.406250 0.031250 -4.000000 +v 0.343750 -0.031250 -4.187500 +v 0.406250 -0.031250 -4.125000 +v 0.406250 0.031250 -4.125000 +v 0.343750 0.031250 -4.187500 +v -0.218750 -0.031250 -3.812500 +v -0.218750 0.031250 -3.812500 +v -0.218750 -0.031250 -4.187500 +v -0.218750 0.031250 -4.187500 +v -0.406250 -0.031250 -4.000000 +v -0.343750 -0.031250 -3.812500 +v -0.343750 0.031250 -3.812500 +v -0.406250 0.031250 -4.000000 +v -0.343750 -0.031250 -4.187500 +v -0.406250 -0.031250 -4.125000 +v -0.406250 0.031250 -4.125000 +v -0.343750 0.031250 -4.187500 +v -0.031250 0.572454 -0.406250 +v -0.031250 0.697454 -0.406250 +v -0.031250 0.572454 -0.593750 +v -0.031250 0.697454 -0.593750 +v 0.031250 0.572454 -0.406250 +v 0.031250 0.697454 -0.406250 +v 0.031250 0.572454 -0.593750 +v 0.031250 0.697454 -0.593750 +v -0.031250 0.759954 -0.468750 +v 0.031250 0.759954 -0.468750 +v -0.511384 0.259164 -0.406250 +v -0.619638 0.321664 -0.406250 +v -0.511385 0.259164 -0.593750 +v -0.619638 0.321664 -0.593750 +v -0.480135 0.313290 -0.406250 +v -0.588388 0.375790 -0.406250 +v -0.480135 0.313290 -0.593750 +v -0.588388 0.375790 -0.593750 +v -0.673764 0.352914 -0.468750 +v -0.642514 0.407040 -0.468750 +v -0.480134 -0.313290 -0.406250 +v -0.588388 -0.375790 -0.406250 +v -0.480134 -0.313290 -0.593750 +v -0.588388 -0.375790 -0.593750 +v -0.511384 -0.259164 -0.406250 +v -0.619638 -0.321664 -0.406250 +v -0.511384 -0.259164 -0.593750 +v -0.619638 -0.321664 -0.593750 +v -0.642514 -0.407040 -0.468750 +v -0.673764 -0.352914 -0.468750 +v 0.031250 -0.572454 -0.406250 +v 0.031250 -0.697454 -0.406250 +v 0.031250 -0.572454 -0.593750 +v 0.031250 -0.697454 -0.593750 +v -0.031250 -0.572454 -0.406250 +v -0.031250 -0.697454 -0.406250 +v -0.031250 -0.572454 -0.593750 +v -0.031250 -0.697454 -0.593750 +v 0.031250 -0.759954 -0.468750 +v -0.031250 -0.759954 -0.468750 +v 0.511385 -0.259163 -0.406250 +v 0.619638 -0.321663 -0.406250 +v 0.511385 -0.259163 -0.593750 +v 0.619638 -0.321663 -0.593750 +v 0.480135 -0.313290 -0.406250 +v 0.588388 -0.375790 -0.406250 +v 0.480135 -0.313290 -0.593750 +v 0.588388 -0.375790 -0.593750 +v 0.673764 -0.352913 -0.468750 +v 0.642515 -0.407040 -0.468750 +v 0.480134 0.313290 -0.406250 +v 0.588388 0.375790 -0.406250 +v 0.480134 0.313290 -0.593750 +v 0.588388 0.375790 -0.593750 +v 0.511384 0.259164 -0.406250 +v 0.619638 0.321664 -0.406250 +v 0.511384 0.259164 -0.593750 +v 0.619638 0.321664 -0.593750 +v 0.642514 0.407040 -0.468750 +v 0.673764 0.352914 -0.468750 +v -0.176777 0.132583 -3.625000 +v -0.176777 0.132583 -4.375000 +v -0.132583 0.176777 -3.625000 +v -0.132583 0.176777 -4.375000 +v -0.574524 0.530330 -3.625000 +v -0.618719 0.574524 -3.687500 +v -0.618719 0.574524 -4.312500 +v -0.574524 0.530330 -4.375000 +v -0.574524 0.618718 -3.687500 +v -0.530330 0.574524 -3.625000 +v -0.530330 0.574524 -4.375000 +v -0.574524 0.618718 -4.312500 +v -0.132583 -0.176777 -3.625000 +v -0.132583 -0.176777 -4.375000 +v -0.176777 -0.132583 -3.625000 +v -0.176777 -0.132583 -4.375000 +v -0.530330 -0.574524 -3.625000 +v -0.574525 -0.618719 -3.687500 +v -0.574525 -0.618719 -4.312500 +v -0.530331 -0.574524 -4.375000 +v -0.618719 -0.574524 -3.687500 +v -0.574525 -0.530330 -3.625000 +v -0.574525 -0.530330 -4.375000 +v -0.618719 -0.574524 -4.312500 +v 0.176776 -0.132583 -3.624999 +v 0.176776 -0.132583 -4.374999 +v 0.132582 -0.176777 -3.624999 +v 0.132582 -0.176777 -4.374999 +v 0.574524 -0.530331 -3.624999 +v 0.618718 -0.574525 -3.687499 +v 0.618718 -0.574525 -4.312499 +v 0.574524 -0.530331 -4.374999 +v 0.574524 -0.618719 -3.687499 +v 0.530330 -0.574525 -3.624999 +v 0.530330 -0.574525 -4.374999 +v 0.574524 -0.618719 -4.312499 +v 0.132583 0.176776 -3.624999 +v 0.132583 0.176776 -4.374999 +v 0.176777 0.132582 -3.624999 +v 0.176777 0.132582 -4.374999 +v 0.530330 0.574524 -3.624999 +v 0.574524 0.618718 -3.687499 +v 0.574524 0.618718 -4.312499 +v 0.530330 0.574524 -4.374999 +v 0.618719 0.574524 -3.687499 +v 0.574524 0.530330 -3.624999 +v 0.574524 0.530330 -4.374999 +v 0.618719 0.574524 -4.312499 +v 0.000000 0.603704 -1.500000 +v 0.000000 0.603704 1.500000 +v 0.301852 0.522823 -1.500000 +v 0.301852 0.522823 1.500000 +v 0.522823 0.301852 -1.500000 +v 0.522823 0.301852 1.500000 +v 0.603704 0.000000 -1.500000 +v 0.603704 -0.000000 1.500000 +v 0.522823 -0.301852 -1.500000 +v 0.522823 -0.301852 1.500000 +v 0.301852 -0.522823 -1.500000 +v 0.301852 -0.522823 1.500000 +v 0.000000 -0.603704 -1.500000 +v 0.000000 -0.603704 1.500000 +v -0.301852 -0.522823 -1.500000 +v -0.301852 -0.522823 1.500000 +v -0.522823 -0.301852 -1.500000 +v -0.522823 -0.301852 1.500000 +v -0.603704 -0.000000 -1.500000 +v -0.603704 -0.000000 1.500000 +v -0.522823 0.301852 -1.500000 +v -0.522823 0.301852 1.500000 +v -0.301852 0.522823 -1.500000 +v -0.301852 0.522823 1.500000 +v -0.000000 0.241482 -4.500000 +v 0.120741 0.209129 -4.500000 +v 0.209129 0.120741 -4.500000 +v 0.241481 0.000000 -4.500000 +v 0.209129 -0.120741 -4.500000 +v 0.120741 -0.209129 -4.500000 +v 0.000000 -0.241481 -4.500000 +v -0.120741 -0.209129 -4.500000 +v -0.209129 -0.120741 -4.500000 +v -0.241481 0.000000 -4.500000 +v -0.209129 0.120741 -4.500000 +v -0.120741 0.209129 -4.500000 +vt 0.731034 0.370968 +vt 0.724138 0.338710 +vt 0.724138 0.370968 +vt 0.731034 0.338710 +vt 0.751724 0.387097 +vt 0.765517 0.387097 +vt 0.751724 0.403226 +vt 0.765517 0.403226 +vt 0.772414 0.338710 +vt 0.779310 0.370968 +vt 0.779310 0.338710 +vt 0.779310 0.387097 +vt 0.772414 0.370968 +vt 0.772414 0.387097 +vt 0.731034 0.419355 +vt 0.703448 0.387097 +vt 0.731034 0.435484 +vt 0.724138 0.467742 +vt 0.731034 0.467742 +vt 0.682759 0.435484 +vt 0.682759 0.467742 +vt 0.703448 0.483871 +vt 0.703448 0.500000 +vt 0.689655 0.483871 +vt 0.689655 0.500000 +vt 0.675862 0.467742 +vt 0.675862 0.435484 +vt 0.675862 0.483871 +vt 0.682759 0.483871 +vt 0.724138 0.516129 +vt 0.751724 0.483871 +vt 0.765517 0.483871 +vt 0.772414 0.467742 +vt 0.724138 0.209677 +vt 0.703448 0.177419 +vt 0.724138 0.177419 +vt 0.703448 0.209677 +vt 0.696552 0.177419 +vt 0.696552 0.209677 +vt 0.675862 0.177419 +vt 0.731034 0.209677 +vt 0.731034 0.177419 +vt 0.717241 0.225806 +vt 0.724138 0.225806 +vt 0.696552 0.241935 +vt 0.675862 0.209677 +vt 0.682759 0.225806 +vt 0.786207 0.290323 +vt 0.765517 0.258065 +vt 0.786207 0.258065 +vt 0.758621 0.290323 +vt 0.758621 0.258065 +vt 0.737931 0.258065 +vt 0.793103 0.258065 +vt 0.765517 0.290323 +vt 0.779310 0.306452 +vt 0.793103 0.290323 +vt 0.786207 0.306452 +vt 0.758621 0.322581 +vt 0.737931 0.290323 +vt 0.744828 0.306452 +vt 0.786207 0.209677 +vt 0.765517 0.177419 +vt 0.786207 0.177419 +vt 0.758621 0.209677 +vt 0.758621 0.177419 +vt 0.737931 0.209677 +vt 0.737931 0.177419 +vt 0.793103 0.209677 +vt 0.793103 0.177419 +vt 0.765517 0.209677 +vt 0.779310 0.225806 +vt 0.786207 0.225806 +vt 0.765517 0.241935 +vt 0.758621 0.241935 +vt 0.744828 0.225806 +vt 0.724138 0.129032 +vt 0.703448 0.096774 +vt 0.724138 0.096774 +vt 0.703448 0.129032 +vt 0.696552 0.096774 +vt 0.675862 0.129032 +vt 0.675862 0.096774 +vt 0.731034 0.129032 +vt 0.731034 0.096774 +vt 0.717241 0.145161 +vt 0.731034 0.145161 +vt 0.724138 0.145161 +vt 0.696552 0.161290 +vt 0.696552 0.129032 +vt 0.682759 0.145161 +vt 0.786207 0.129032 +vt 0.765517 0.096774 +vt 0.786207 0.096774 +vt 0.765517 0.129032 +vt 0.758621 0.096774 +vt 0.758621 0.129032 +vt 0.737931 0.096774 +vt 0.793103 0.129032 +vt 0.793103 0.096774 +vt 0.779310 0.145161 +vt 0.793103 0.145161 +vt 0.786207 0.145161 +vt 0.758621 0.161290 +vt 0.737931 0.129032 +vt 0.744828 0.145161 +vt 0.724138 0.258065 +vt 0.703448 0.290323 +vt 0.703448 0.258065 +vt 0.696552 0.258065 +vt 0.675862 0.290323 +vt 0.675862 0.258065 +vt 0.731034 0.290323 +vt 0.731034 0.258065 +vt 0.724138 0.290323 +vt 0.717241 0.306452 +vt 0.731034 0.306452 +vt 0.724138 0.306452 +vt 0.696552 0.322581 +vt 0.696552 0.290323 +vt 0.682759 0.306452 +vt 0.917241 0.774194 +vt 0.986207 0.790323 +vt 0.917241 0.790323 +vt 0.827586 0.774194 +vt 0.820690 0.758065 +vt 0.820690 0.612903 +vt 0.910345 0.758065 +vt 0.910345 0.612903 +vt 0.903448 0.612903 +vt 0.910345 0.774194 +vt 0.903448 0.758065 +vt 0.813793 0.774194 +vt 0.820690 0.774194 +vt 0.813793 0.758065 +vt 0.813793 0.612903 +vt 0.917241 0.580645 +vt 0.986207 0.596774 +vt 0.917241 0.596774 +vt 0.827586 0.580645 +vt 0.820690 0.564516 +vt 0.820690 0.419355 +vt 0.910345 0.564516 +vt 0.910345 0.419355 +vt 0.903448 0.419355 +vt 0.910345 0.580645 +vt 0.903448 0.564516 +vt 0.813793 0.580645 +vt 0.820690 0.580645 +vt 0.813793 0.419355 +vt 0.917241 0.387097 +vt 0.986207 0.403226 +vt 0.917241 0.403226 +vt 0.827586 0.387097 +vt 0.820690 0.370968 +vt 0.820690 0.225806 +vt 0.910345 0.370968 +vt 0.910345 0.225806 +vt 0.903448 0.370968 +vt 0.903448 0.225806 +vt 0.903448 0.387097 +vt 0.910345 0.387097 +vt 0.820690 0.387097 +vt 0.813793 0.370968 +vt 0.813793 0.225806 +vt 0.917241 0.983871 +vt 0.986207 0.967742 +vt 0.986207 0.983871 +vt 0.827586 0.967742 +vt 0.820690 0.951613 +vt 0.820690 0.806452 +vt 0.917241 0.967742 +vt 0.910345 0.951613 +vt 0.910345 0.806452 +vt 0.903448 0.951613 +vt 0.903448 0.806452 +vt 0.903448 0.967742 +vt 0.910345 0.967742 +vt 0.820690 0.967742 +vt 0.813793 0.951613 +vt 0.813793 0.806452 +vt 0.687135 0.905981 +vt 0.742256 0.683307 +vt 0.797152 0.906284 +vt 0.729378 0.596377 +vt 0.716764 0.648801 +vt 0.677939 0.597702 +vt 0.724138 0.419355 +vt 0.682759 0.338710 +vt 0.682759 0.370968 +vt 0.689655 0.387097 +vt 0.724138 0.435484 +vt 0.731034 0.516129 +vt 0.772414 0.435484 +vt 0.731034 0.225806 +vt 0.703448 0.241935 +vt 0.793103 0.306452 +vt 0.765517 0.322581 +vt 0.793103 0.225806 +vt 0.703448 0.161290 +vt 0.765517 0.161290 +vt 0.703448 0.322581 +vt 0.986207 0.774194 +vt 0.896552 0.774194 +vt 0.993103 0.612903 +vt 0.993103 0.758065 +vt 0.903448 0.774194 +vt 0.986207 0.580645 +vt 0.896552 0.580645 +vt 0.993103 0.419355 +vt 0.993103 0.564516 +vt 0.903448 0.580645 +vt 0.813793 0.564516 +vt 0.986207 0.387097 +vt 0.896552 0.387097 +vt 0.993103 0.225806 +vt 0.993103 0.370968 +vt 0.813793 0.387097 +vt 0.896552 0.967742 +vt 0.993103 0.806452 +vt 0.993103 0.951613 +vt 0.813793 0.967742 +vt 0.773875 0.960593 +vt 0.742106 0.980407 +vt 0.710357 0.960418 +vt 0.678663 0.831683 +vt 0.687210 0.757431 +vt 0.710486 0.703122 +vt 0.774005 0.703296 +vt 0.797226 0.757733 +vt 0.805699 0.832032 +vt 0.703942 0.657191 +vt 0.691044 0.649463 +vt 0.681527 0.627689 +vt 0.681243 0.567538 +vt 0.690554 0.545279 +vt 0.703375 0.536889 +vt 0.716273 0.544617 +vt 0.725791 0.566391 +vt 0.726074 0.626541 +vt 0.006897 0.500000 +vt 0.337931 0.419355 +vt 0.337931 0.500000 +vt 0.006897 0.338710 +vt 0.337931 0.338710 +vt 0.337931 0.258065 +vt 0.006897 0.258065 +vt 0.337931 0.177419 +vt 0.006897 0.177419 +vt 0.337931 0.096774 +vt 0.006897 0.096774 +vt 0.337931 0.016129 +vt 0.006897 0.983871 +vt 0.337931 0.903226 +vt 0.337931 0.983871 +vt 0.006897 0.903226 +vt 0.337931 0.822581 +vt 0.006897 0.822581 +vt 0.337931 0.741935 +vt 0.006897 0.741935 +vt 0.337931 0.661290 +vt 0.006897 0.661290 +vt 0.337931 0.580645 +vt 0.006897 0.580645 +vt 0.668966 0.967742 +vt 0.668966 0.048387 +vt 0.668966 0.080645 +vt 0.668966 0.161290 +vt 0.668966 0.241935 +vt 0.668966 0.564516 +vt 0.668966 0.451613 +vt 0.668966 0.483871 +vt 0.668966 0.322581 +vt 0.668966 0.612903 +vt 0.668966 0.645161 +vt 0.668966 0.403226 +vt 0.668966 0.693548 +vt 0.668966 0.725806 +vt 0.668966 0.806452 +vt 0.668966 0.887097 +vt 0.006897 0.419355 +vt 0.006897 0.016129 +vt 0.668966 0.935484 +vt 0.668966 0.129032 +vt 0.668966 0.209677 +vt 0.668966 0.532258 +vt 0.668966 0.290323 +vt 0.668966 0.370968 +vt 0.668966 0.774194 +vt 0.668966 0.854839 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.9487 0.0000 0.3162 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.9487 0.0000 0.3162 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.8944 -0.4472 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.6124 0.3536 0.7071 +vn -0.7746 0.4472 -0.4472 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.6124 -0.3536 0.7071 +vn -0.7746 -0.4472 -0.4472 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.8944 -0.4472 +vn 0.6124 -0.3536 0.7071 +vn 0.7746 -0.4472 -0.4472 +vn 0.6124 0.3536 0.7071 +vn 0.7746 0.4472 -0.4472 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.5000 0.5000 -0.7071 +vn -0.5000 0.5000 0.7071 +vn 0.7071 -0.7071 0.0000 +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.5000 0.5000 -0.7071 +vn 0.5000 0.5000 0.7071 +vn 0.0000 0.7571 0.6532 +vn 0.4991 0.8645 -0.0595 +vn 0.0000 0.9982 -0.0595 +vn 0.6557 0.3786 0.6532 +vn 0.8645 0.4991 -0.0595 +vn 0.9982 0.0000 -0.0595 +vn 0.7571 0.0000 0.6532 +vn 0.8645 -0.4991 -0.0595 +vn 0.6557 -0.3786 0.6532 +vn 0.4991 -0.8645 -0.0595 +vn 0.3786 -0.6557 0.6532 +vn 0.0000 -0.9982 -0.0595 +vn 0.0000 -0.7571 0.6532 +vn -0.4991 -0.8645 -0.0595 +vn -0.3786 -0.6557 0.6532 +vn -0.8645 -0.4991 -0.0595 +vn -0.6557 -0.3786 0.6532 +vn -0.9982 0.0000 -0.0595 +vn -0.7571 0.0000 0.6532 +vn -0.8645 0.4991 -0.0595 +vn -0.6557 0.3786 0.6532 +vn -0.4991 0.8645 -0.0595 +vn -0.3786 0.6557 0.6532 +vn 0.0000 -0.7169 -0.6972 +vn 0.3584 -0.6208 -0.6972 +vn 0.6208 -0.3584 -0.6972 +vn 0.7169 0.0000 -0.6972 +vn -0.3584 0.6208 -0.6972 +vn 0.3584 0.6208 -0.6972 +vn 0.0000 0.7169 -0.6972 +vn 0.6208 0.3584 -0.6972 +vn -0.6208 0.3584 -0.6972 +vn -0.7169 0.0000 -0.6972 +vn -0.6208 -0.3584 -0.6972 +vn -0.3584 -0.6208 -0.6972 +vn 0.3786 0.6557 0.6532 +usemtl None +s off +f 7/1/1 1/2/1 6/3/1 +f 2/4/2 7/1/2 8/5/2 +f 11/6/3 5/7/3 10/8/3 +f 4/9/4 9/10/4 3/11/4 +f 10/12/5 12/13/5 11/14/5 +f 6/3/6 8/15/6 7/1/6 +f 5/16/7 6/3/7 1/2/7 +f 13/17/1 19/18/1 18/19/1 +f 16/20/2 24/21/2 20/22/2 +f 17/23/8 23/24/8 22/25/8 +f 21/26/4 16/20/4 15/27/4 +f 24/21/9 22/28/9 23/29/9 +f 20/30/10 18/19/10 19/18/10 +f 17/31/7 22/32/7 21/33/7 +f 26/34/8 27/35/8 25/36/8 +f 28/37/4 31/38/4 27/35/4 +f 32/39/3 29/40/3 31/38/3 +f 30/41/1 25/36/1 29/42/1 +f 28/37/8 26/34/8 33/43/8 +f 30/41/11 33/44/11 26/34/11 +f 28/37/12 34/45/12 32/39/12 +f 30/46/3 32/39/3 34/47/3 +f 36/48/13 37/49/13 35/50/13 +f 37/49/4 42/51/4 41/52/4 +f 42/51/14 39/53/14 41/52/14 +f 39/54/1 36/48/1 35/50/1 +f 38/55/13 36/48/13 43/56/13 +f 40/57/15 43/58/15 36/48/15 +f 38/55/16 44/59/16 42/51/16 +f 40/60/14 42/51/14 44/61/14 +f 46/62/17 47/63/17 45/64/17 +f 47/63/4 52/65/4 51/66/4 +f 51/66/18 50/67/18 49/68/18 +f 50/69/1 45/64/1 49/70/1 +f 48/71/17 46/62/17 53/72/17 +f 50/69/19 53/73/19 46/62/19 +f 52/65/20 53/74/20 54/75/20 +f 50/67/18 52/65/18 54/76/18 +f 56/77/3 57/78/3 55/79/3 +f 58/80/4 61/81/4 57/78/4 +f 61/81/8 60/82/8 59/83/8 +f 60/84/1 55/79/1 59/85/1 +f 58/80/3 56/77/3 63/86/3 +f 56/77/21 64/87/21 63/88/21 +f 58/80/22 64/89/22 62/90/22 +f 60/82/8 62/90/8 64/91/8 +f 66/92/14 67/93/14 65/94/14 +f 68/95/4 71/96/4 67/93/4 +f 72/97/13 69/98/13 71/96/13 +f 70/99/1 65/94/1 69/100/1 +f 68/95/14 66/92/14 73/101/14 +f 66/92/23 74/102/23 73/103/23 +f 68/95/24 74/104/24 72/97/24 +f 70/105/13 72/97/13 74/106/13 +f 75/107/18 78/108/18 77/109/18 +f 78/108/4 81/110/4 77/109/4 +f 81/110/17 80/111/17 79/112/17 +f 80/113/1 75/107/1 79/114/1 +f 78/108/18 76/115/18 83/116/18 +f 76/115/25 84/117/25 83/118/25 +f 78/108/26 84/119/26 82/120/26 +f 80/111/17 82/120/17 84/121/17 +f 91/122/27 93/123/27 96/124/27 +f 93/125/28 94/126/28 87/127/28 +f 91/122/29 92/128/29 86/129/29 +f 92/128/4 88/130/4 86/129/4 +f 91/131/30 95/132/30 92/128/30 +f 90/133/31 94/126/31 93/134/31 +f 87/127/1 89/135/1 85/136/1 +f 103/137/29 105/138/29 108/139/29 +f 105/140/27 106/141/27 99/142/27 +f 103/137/32 104/143/32 98/144/32 +f 104/143/4 100/145/4 98/144/4 +f 103/146/33 107/147/33 104/143/33 +f 102/148/34 106/141/34 105/149/34 +f 106/141/1 97/150/1 99/142/1 +f 115/151/32 117/152/32 120/153/32 +f 117/154/29 118/155/29 111/156/29 +f 115/151/28 116/157/28 110/158/28 +f 110/158/4 119/159/4 112/160/4 +f 120/161/35 116/157/35 115/162/35 +f 117/163/36 113/164/36 118/155/36 +f 111/156/1 113/164/1 109/165/1 +f 132/166/28 126/167/28 129/168/28 +f 129/169/32 130/170/32 123/171/32 +f 127/172/27 128/173/27 122/174/27 +f 122/174/4 131/175/4 124/176/4 +f 132/177/37 128/173/37 127/178/37 +f 129/179/38 125/180/38 130/170/38 +f 130/170/1 121/181/1 123/171/1 +f 154/182/1 146/183/1 138/184/1 +f 166/185/4 168/186/4 160/187/4 +f 7/1/1 2/4/1 1/2/1 +f 8/5/2 11/6/2 12/13/2 +f 12/13/2 4/9/2 8/5/2 +f 4/9/2 2/4/2 8/5/2 +f 11/6/3 8/5/3 5/7/3 +f 4/9/4 12/13/4 9/10/4 +f 10/12/5 9/10/5 12/13/5 +f 6/3/6 5/188/6 8/15/6 +f 1/2/7 3/189/7 5/16/7 +f 3/189/7 9/190/7 5/16/7 +f 9/190/7 10/191/7 5/16/7 +f 13/17/1 14/192/1 19/18/1 +f 24/21/2 23/24/2 20/22/2 +f 20/22/2 19/18/2 14/192/2 +f 14/192/2 16/20/2 20/22/2 +f 17/23/8 20/22/8 23/24/8 +f 21/26/4 24/21/4 16/20/4 +f 24/21/9 21/26/9 22/28/9 +f 20/30/10 17/193/10 18/19/10 +f 21/33/7 15/194/7 17/31/7 +f 15/194/7 13/17/7 17/31/7 +f 13/17/7 18/19/7 17/31/7 +f 26/34/8 28/37/8 27/35/8 +f 28/37/4 32/39/4 31/38/4 +f 32/39/3 30/46/3 29/40/3 +f 30/41/1 26/34/1 25/36/1 +f 30/41/11 34/195/11 33/44/11 +f 28/37/12 33/196/12 34/45/12 +f 36/48/13 38/55/13 37/49/13 +f 37/49/4 38/55/4 42/51/4 +f 42/51/14 40/60/14 39/53/14 +f 39/54/1 40/57/1 36/48/1 +f 40/57/15 44/197/15 43/58/15 +f 38/55/16 43/198/16 44/59/16 +f 46/62/17 48/71/17 47/63/17 +f 47/63/4 48/71/4 52/65/4 +f 51/66/18 52/65/18 50/67/18 +f 50/69/1 46/62/1 45/64/1 +f 50/69/19 54/199/19 53/73/19 +f 52/65/20 48/71/20 53/74/20 +f 56/77/3 58/80/3 57/78/3 +f 58/80/4 62/90/4 61/81/4 +f 61/81/8 62/90/8 60/82/8 +f 60/84/1 56/77/1 55/79/1 +f 56/77/21 60/84/21 64/87/21 +f 58/80/22 63/200/22 64/89/22 +f 66/92/14 68/95/14 67/93/14 +f 68/95/4 72/97/4 71/96/4 +f 72/97/13 70/105/13 69/98/13 +f 70/99/1 66/92/1 65/94/1 +f 66/92/23 70/99/23 74/102/23 +f 68/95/24 73/201/24 74/104/24 +f 75/107/18 76/115/18 78/108/18 +f 78/108/4 82/120/4 81/110/4 +f 81/110/17 82/120/17 80/111/17 +f 80/113/1 76/115/1 75/107/1 +f 76/115/25 80/113/25 84/117/25 +f 78/108/26 83/202/26 84/119/26 +f 91/122/27 90/203/27 93/123/27 +f 87/127/28 88/130/28 96/204/28 +f 88/130/28 95/132/28 96/204/28 +f 96/204/28 93/125/28 87/127/28 +f 86/129/29 85/205/29 90/203/29 +f 85/205/29 89/206/29 90/203/29 +f 90/203/29 91/122/29 86/129/29 +f 92/128/4 95/132/4 88/130/4 +f 91/131/30 96/207/30 95/132/30 +f 90/133/31 89/135/31 94/126/31 +f 87/127/1 94/126/1 89/135/1 +f 103/137/29 102/208/29 105/138/29 +f 99/142/27 100/145/27 108/209/27 +f 100/145/27 107/147/27 108/209/27 +f 108/209/27 105/140/27 99/142/27 +f 98/144/32 97/210/32 102/208/32 +f 97/210/32 101/211/32 102/208/32 +f 102/208/32 103/137/32 98/144/32 +f 104/143/4 107/147/4 100/145/4 +f 103/146/33 108/212/33 107/147/33 +f 102/148/34 101/213/34 106/141/34 +f 106/141/1 101/213/1 97/150/1 +f 115/151/32 114/214/32 117/152/32 +f 111/156/29 112/160/29 120/215/29 +f 112/160/29 119/159/29 120/215/29 +f 120/215/29 117/154/29 111/156/29 +f 110/158/28 109/216/28 114/214/28 +f 109/216/28 113/217/28 114/214/28 +f 114/214/28 115/151/28 110/158/28 +f 110/158/4 116/157/4 119/159/4 +f 120/161/35 119/159/35 116/157/35 +f 117/163/36 114/218/36 113/164/36 +f 111/156/1 118/155/1 113/164/1 +f 132/166/28 127/172/28 126/167/28 +f 123/171/32 124/176/32 132/219/32 +f 124/176/32 131/175/32 132/219/32 +f 132/219/32 129/169/32 123/171/32 +f 122/174/27 121/220/27 126/167/27 +f 121/220/27 125/221/27 126/167/27 +f 126/167/27 127/172/27 122/174/27 +f 122/174/4 128/173/4 131/175/4 +f 132/177/37 131/175/37 128/173/37 +f 129/179/38 126/222/38 125/180/38 +f 130/170/1 125/180/1 121/181/1 +f 138/184/1 136/223/1 134/224/1 +f 134/224/1 156/225/1 154/182/1 +f 154/182/1 152/226/1 146/183/1 +f 152/226/1 150/227/1 146/183/1 +f 150/227/1 148/228/1 146/183/1 +f 146/183/1 144/229/1 142/230/1 +f 142/230/1 140/231/1 138/184/1 +f 138/184/1 134/224/1 154/182/1 +f 146/183/1 142/230/1 138/184/1 +f 168/186/4 157/232/4 158/233/4 +f 158/233/4 159/234/4 160/187/4 +f 160/187/4 161/235/4 162/236/4 +f 162/236/4 163/237/4 160/187/4 +f 163/237/4 164/238/4 160/187/4 +f 164/238/4 165/239/4 166/185/4 +f 166/185/4 167/240/4 168/186/4 +f 168/186/4 158/233/4 160/187/4 +f 164/238/4 166/185/4 160/187/4 +s 1 +f 134/241/39 135/242/40 133/243/41 +f 135/242/40 138/244/42 137/245/43 +f 138/244/42 139/246/44 137/245/43 +f 140/247/45 141/248/46 139/246/44 +f 142/249/47 143/250/48 141/248/46 +f 144/251/49 145/252/50 143/250/48 +f 146/253/51 147/254/52 145/255/50 +f 148/256/53 149/257/54 147/254/52 +f 150/258/55 151/259/56 149/257/54 +f 152/260/57 153/261/58 151/259/56 +f 154/262/59 155/263/60 153/261/58 +f 156/264/61 133/243/41 155/263/60 +f 147/254/52 163/265/62 145/255/50 +f 143/250/48 163/266/62 162/267/63 +f 143/250/48 161/268/64 141/248/46 +f 141/248/46 160/269/65 139/246/44 +f 133/243/41 168/270/66 155/263/60 +f 133/243/41 158/271/67 157/272/68 +f 139/246/44 159/273/69 137/245/43 +f 153/261/58 168/274/66 167/275/70 +f 137/245/43 158/276/67 135/242/40 +f 151/259/56 167/277/70 166/278/71 +f 151/259/56 165/279/72 149/257/54 +f 149/257/54 164/280/73 147/254/52 +f 134/241/39 136/281/74 135/242/40 +f 135/242/40 136/281/74 138/244/42 +f 138/244/42 140/247/45 139/246/44 +f 140/247/45 142/249/47 141/248/46 +f 142/249/47 144/251/49 143/250/48 +f 144/251/49 146/282/51 145/252/50 +f 146/253/51 148/256/53 147/254/52 +f 148/256/53 150/258/55 149/257/54 +f 150/258/55 152/260/57 151/259/56 +f 152/260/57 154/262/59 153/261/58 +f 154/262/59 156/264/61 155/263/60 +f 156/264/61 134/241/39 133/243/41 +f 147/254/52 164/283/73 163/265/62 +f 143/250/48 145/252/50 163/266/62 +f 143/250/48 162/284/63 161/268/64 +f 141/248/46 161/285/64 160/269/65 +f 133/243/41 157/286/68 168/270/66 +f 133/243/41 135/242/40 158/271/67 +f 139/246/44 160/287/65 159/273/69 +f 153/261/58 155/263/60 168/274/66 +f 137/245/43 159/288/69 158/276/67 +f 151/259/56 153/261/58 167/277/70 +f 151/259/56 166/289/71 165/279/72 +f 149/257/54 165/290/72 164/280/73 diff --git a/src/main/resources/assets/hbm/models/bombs/dud_salted.obj b/src/main/resources/assets/hbm/models/bombs/dud_salted.obj new file mode 100644 index 000000000..de9bcb0f1 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/dud_salted.obj @@ -0,0 +1,1411 @@ +# Blender v2.79 (sub 7) OBJ File: 'salted boy.blend' +# www.blender.org +mtllib salted boy.mtl +o Cylinder.002 +v -0.000000 -0.724444 -2.500000 +v -0.000000 -0.724445 1.750000 +v -0.362223 -0.627387 -2.500000 +v -0.362223 -0.627388 1.750000 +v -0.627388 -0.362221 -2.500000 +v -0.627388 -0.362222 1.750000 +v -0.724445 0.000001 -2.500000 +v -0.724445 0.000000 1.750000 +v -0.627388 0.362224 -2.500000 +v -0.627388 0.362223 1.750000 +v -0.362222 0.627389 -2.500000 +v -0.362222 0.627388 1.750000 +v -0.000000 0.724446 -2.500000 +v -0.000000 0.724445 1.750000 +v 0.362222 0.627389 -2.500000 +v 0.362222 0.627388 1.750000 +v 0.627388 0.362224 -2.500000 +v 0.627388 0.362223 1.750000 +v 0.724445 0.000001 -2.500000 +v 0.724445 0.000000 1.750000 +v 0.627388 -0.362221 -2.500000 +v 0.627388 -0.362222 1.750000 +v 0.362223 -0.627387 -2.500000 +v 0.362223 -0.627387 1.750000 +v -0.241482 -0.418258 2.000000 +v -0.000000 -0.482963 2.000000 +v -0.418258 -0.241482 2.000000 +v -0.482963 0.000000 2.000000 +v -0.418258 0.241482 2.000000 +v -0.241482 0.418259 2.000000 +v -0.000000 0.482963 2.000000 +v 0.241482 0.418259 2.000000 +v 0.418258 0.241482 2.000000 +v 0.482963 0.000000 2.000000 +v 0.418259 -0.241481 2.000000 +v 0.241482 -0.418258 2.000000 +v 0.574524 -0.530329 -2.624999 +v 0.839690 -0.795494 -2.624999 +v 0.640816 -0.464038 -3.374999 +v 0.905981 -0.729203 -3.374999 +v 0.530330 -0.574524 -2.624999 +v 0.795496 -0.839688 -2.624999 +v 0.464039 -0.640815 -3.374999 +v 0.729204 -0.905980 -3.374999 +v 0.662913 -0.441941 -2.687499 +v 0.751301 -0.530329 -2.687499 +v 0.662913 -0.441941 -2.749999 +v 0.751301 -0.530329 -2.749999 +v 0.441942 -0.662912 -2.687499 +v 0.530330 -0.751300 -2.687499 +v 0.441942 -0.662912 -2.749999 +v 0.530330 -0.751300 -2.749999 +v 0.662913 -0.441941 -2.812499 +v 0.751301 -0.530329 -2.812499 +v 0.662913 -0.441941 -2.874999 +v 0.751301 -0.530329 -2.874999 +v 0.441942 -0.662912 -2.812499 +v 0.530330 -0.751300 -2.812499 +v 0.441942 -0.662912 -2.874999 +v 0.530330 -0.751300 -2.874999 +v -0.530330 -0.574523 -2.624998 +v -0.795495 -0.839689 -2.624998 +v -0.464039 -0.640814 -3.374998 +v -0.729204 -0.905980 -3.374999 +v -0.574525 -0.530329 -2.624998 +v -0.839690 -0.795494 -2.624998 +v -0.640816 -0.464038 -3.374998 +v -0.905981 -0.729203 -3.374998 +v -0.441942 -0.662912 -2.687498 +v -0.530330 -0.751300 -2.687498 +v -0.441942 -0.662912 -2.749998 +v -0.530330 -0.751300 -2.749998 +v -0.662913 -0.441941 -2.687498 +v -0.751301 -0.530329 -2.687498 +v -0.662913 -0.441941 -2.749998 +v -0.751301 -0.530329 -2.749998 +v -0.441942 -0.662912 -2.812498 +v -0.530330 -0.751300 -2.812498 +v -0.441942 -0.662912 -2.874998 +v -0.530330 -0.751300 -2.874998 +v -0.662913 -0.441941 -2.812498 +v -0.751301 -0.530329 -2.812498 +v -0.662913 -0.441941 -2.874998 +v -0.751301 -0.530329 -2.874998 +v -0.574524 0.530331 -2.624998 +v -0.839690 0.795496 -2.624998 +v -0.640816 0.464040 -3.374998 +v -0.905981 0.729206 -3.374998 +v -0.530330 0.574526 -2.624998 +v -0.795495 0.839691 -2.624998 +v -0.464039 0.640817 -3.374998 +v -0.729204 0.905982 -3.374997 +v -0.662913 0.441943 -2.687498 +v -0.751301 0.530331 -2.687498 +v -0.662913 0.441943 -2.749998 +v -0.751301 0.530331 -2.749998 +v -0.441942 0.662914 -2.687498 +v -0.530330 0.751302 -2.687498 +v -0.441942 0.662914 -2.749998 +v -0.530330 0.751302 -2.749998 +v -0.662913 0.441943 -2.812498 +v -0.751301 0.530331 -2.812498 +v -0.662913 0.441943 -2.874998 +v -0.751301 0.530332 -2.874998 +v -0.441942 0.662914 -2.812498 +v -0.530330 0.751302 -2.812498 +v -0.441942 0.662914 -2.874998 +v -0.530330 0.751302 -2.874998 +v 0.530330 0.574525 -2.624997 +v 0.795496 0.839691 -2.624997 +v 0.464039 0.640817 -3.374997 +v 0.729204 0.905982 -3.374997 +v 0.574525 0.530331 -2.624997 +v 0.839690 0.795496 -2.624997 +v 0.640816 0.464040 -3.374997 +v 0.905981 0.729205 -3.374997 +v 0.441942 0.662914 -2.687497 +v 0.530330 0.751302 -2.687497 +v 0.441942 0.662914 -2.749997 +v 0.530330 0.751302 -2.749997 +v 0.662913 0.441943 -2.687497 +v 0.751301 0.530331 -2.687497 +v 0.662913 0.441943 -2.749997 +v 0.751301 0.530331 -2.749997 +v 0.441942 0.662914 -2.812497 +v 0.530330 0.751302 -2.812497 +v 0.441942 0.662914 -2.874997 +v 0.530331 0.751302 -2.874997 +v 0.662913 0.441943 -2.812497 +v 0.751301 0.530331 -2.812497 +v 0.662913 0.441943 -2.874997 +v 0.751301 0.530331 -2.874997 +v 0.031250 -0.639213 1.937500 +v -0.031250 -0.639213 1.937500 +v 0.031250 -0.639213 1.812500 +v -0.031250 -0.639213 1.812500 +v 0.031250 -0.576713 1.937500 +v -0.031250 -0.576713 1.937500 +v 0.031250 -0.576713 1.812500 +v -0.031250 -0.576713 1.812500 +v -0.537950 -0.346670 1.937500 +v -0.569200 -0.292543 1.937500 +v -0.537950 -0.346670 1.812500 +v -0.569200 -0.292543 1.812500 +v -0.483823 -0.315420 1.937500 +v -0.515073 -0.261294 1.937500 +v -0.483823 -0.315420 1.812500 +v -0.515073 -0.261293 1.812500 +v -0.569200 0.292543 1.937500 +v -0.537950 0.346670 1.937500 +v -0.569200 0.292543 1.812500 +v -0.537950 0.346670 1.812500 +v -0.515073 0.261293 1.937500 +v -0.483824 0.315420 1.937500 +v -0.515073 0.261293 1.812500 +v -0.483824 0.315420 1.812500 +v -0.031250 0.639213 1.937500 +v 0.031250 0.639213 1.937500 +v -0.031250 0.639213 1.812500 +v 0.031250 0.639213 1.812500 +v -0.031250 0.576713 1.937500 +v 0.031250 0.576714 1.937500 +v -0.031250 0.576713 1.812500 +v 0.031250 0.576714 1.812500 +v 0.537950 0.346670 1.937500 +v 0.569200 0.292544 1.937500 +v 0.537950 0.346670 1.812500 +v 0.569200 0.292544 1.812500 +v 0.483823 0.315420 1.937500 +v 0.515073 0.261294 1.937500 +v 0.483823 0.315420 1.812500 +v 0.515073 0.261294 1.812500 +v 0.569200 -0.292543 1.937500 +v 0.537950 -0.346670 1.937500 +v 0.569200 -0.292543 1.812500 +v 0.537950 -0.346670 1.812500 +v 0.515073 -0.261293 1.937500 +v 0.483824 -0.315420 1.937500 +v 0.515073 -0.261293 1.812500 +v 0.483824 -0.315420 1.812500 +v -0.000000 -0.715776 -1.000000 +v -0.357888 -0.619880 -1.000000 +v -0.619880 -0.357887 -1.000000 +v -0.715776 0.000001 -1.000000 +v -0.619880 0.357889 -1.000000 +v -0.357888 0.619881 -1.000000 +v -0.000000 0.715777 -1.000000 +v 0.357888 0.619881 -1.000000 +v 0.619880 0.357889 -1.000000 +v 0.715776 0.000001 -1.000000 +v 0.619881 -0.357887 -1.000000 +v 0.357888 -0.619879 -1.000000 +v -0.000000 -0.715776 -1.125000 +v -0.357888 -0.619880 -1.125000 +v -0.619880 -0.357887 -1.125000 +v -0.715776 0.000001 -1.125000 +v -0.619880 0.357889 -1.125000 +v -0.357888 0.619881 -1.125000 +v -0.000000 0.715777 -1.125000 +v 0.357888 0.619881 -1.125000 +v 0.619880 0.357889 -1.125000 +v 0.715776 0.000001 -1.125000 +v 0.619881 -0.357887 -1.125000 +v 0.357888 -0.619879 -1.125000 +v -0.000000 -0.715776 1.000000 +v -0.357888 -0.619880 1.000000 +v -0.619880 -0.357888 1.000000 +v -0.715776 0.000000 1.000000 +v -0.619880 0.357889 1.000000 +v -0.357888 0.619881 1.000000 +v -0.000000 0.715776 1.000000 +v 0.357888 0.619881 1.000000 +v 0.619880 0.357889 1.000000 +v 0.715776 0.000001 1.000000 +v 0.619881 -0.357888 1.000000 +v 0.357888 -0.619880 1.000000 +v -0.000000 -0.715776 0.875000 +v -0.357888 -0.619880 0.875000 +v -0.619880 -0.357888 0.875000 +v -0.715776 0.000000 0.875000 +v -0.619880 0.357889 0.875000 +v -0.357888 0.619881 0.875000 +v -0.000000 0.715777 0.875000 +v 0.357888 0.619881 0.875000 +v 0.619880 0.357889 0.875000 +v 0.715776 0.000001 0.875000 +v 0.619881 -0.357887 0.875000 +v 0.357888 -0.619880 0.875000 +v -0.000000 -0.715775 -2.500000 +v -0.357888 -0.619879 -2.500000 +v -0.619880 -0.357887 -2.500000 +v -0.715776 0.000001 -2.500000 +v -0.619880 0.357889 -2.500000 +v -0.357888 0.619882 -2.500000 +v -0.000000 0.715777 -2.500000 +v 0.357888 0.619882 -2.500000 +v 0.619880 0.357889 -2.500000 +v 0.715776 0.000001 -2.500000 +v 0.619881 -0.357887 -2.500000 +v 0.357888 -0.619879 -2.500000 +v -0.000000 -0.715775 -3.500000 +v -0.357888 -0.619879 -3.500000 +v -0.619880 -0.357887 -3.500000 +v -0.715776 0.000001 -3.500000 +v -0.619880 0.357890 -3.500000 +v -0.357888 0.619882 -3.500000 +v -0.000000 0.715777 -3.500000 +v 0.357888 0.619882 -3.500000 +v 0.619880 0.357890 -3.500000 +v 0.715776 0.000002 -3.500000 +v 0.619881 -0.357887 -3.500000 +v 0.357888 -0.619879 -3.500000 +v -0.000000 -0.845185 -3.500000 +v -0.422593 -0.731951 -3.500000 +v -0.731952 -0.422592 -3.500000 +v -0.845186 0.000001 -3.500000 +v -0.731952 0.422594 -3.500000 +v -0.422593 0.731954 -3.500000 +v 0.000000 0.845187 -3.500000 +v 0.422593 0.731954 -3.500000 +v 0.731952 0.422594 -3.500000 +v 0.845186 0.000002 -3.500000 +v 0.731953 -0.422591 -3.500000 +v 0.422593 -0.731951 -3.500000 +v -0.000000 -0.715775 -3.000000 +v -0.357888 -0.619879 -3.000000 +v -0.619880 -0.357887 -3.000000 +v -0.715776 0.000001 -3.000000 +v -0.619880 0.357889 -3.000000 +v -0.357888 0.619882 -3.000000 +v 0.000000 0.715777 -3.000000 +v 0.357888 0.619882 -3.000000 +v 0.619880 0.357889 -3.000000 +v 0.715776 0.000001 -3.000000 +v 0.619881 -0.357887 -3.000000 +v 0.357889 -0.619879 -3.000000 +v -0.000000 -0.845185 -1.000000 +v -0.422593 -0.731952 -1.000000 +v -0.731952 -0.422592 -1.000000 +v -0.845186 0.000001 -1.000000 +v -0.731952 0.422594 -1.000000 +v -0.422593 0.731953 -1.000000 +v -0.000000 0.845186 -1.000000 +v 0.422593 0.731953 -1.000000 +v 0.731952 0.422594 -1.000000 +v 0.845186 0.000001 -1.000000 +v 0.731953 -0.422592 -1.000000 +v 0.422593 -0.731951 -1.000000 +v -0.000000 -0.845185 -1.125000 +v -0.422593 -0.731952 -1.125000 +v -0.731952 -0.422592 -1.125000 +v -0.845186 0.000001 -1.125000 +v -0.731952 0.422594 -1.125000 +v -0.422593 0.731953 -1.125000 +v 0.000000 0.845186 -1.125000 +v 0.422593 0.731953 -1.125000 +v 0.731952 0.422594 -1.125000 +v 0.845186 0.000001 -1.125000 +v 0.731953 -0.422592 -1.125000 +v 0.422593 -0.731951 -1.125000 +v -0.000000 -0.845186 1.000000 +v -0.422593 -0.731952 1.000000 +v -0.731952 -0.422593 1.000000 +v -0.845186 0.000000 1.000000 +v -0.731952 0.422593 1.000000 +v -0.422593 0.731953 1.000000 +v -0.000000 0.845186 1.000000 +v 0.422593 0.731953 1.000000 +v 0.731952 0.422593 1.000000 +v 0.845186 0.000001 1.000000 +v 0.731953 -0.422592 1.000000 +v 0.422593 -0.731952 1.000000 +v -0.000000 -0.845186 0.875000 +v -0.422593 -0.731952 0.875000 +v -0.731952 -0.422592 0.875000 +v -0.845186 0.000000 0.875000 +v -0.731952 0.422593 0.875000 +v -0.422593 0.731953 0.875000 +v 0.000000 0.845186 0.875000 +v 0.422593 0.731953 0.875000 +v 0.731952 0.422593 0.875000 +v 0.845186 0.000001 0.875000 +v 0.731953 -0.422592 0.875000 +v 0.422593 -0.731952 0.875000 +v -0.000000 -0.845185 -2.500000 +v -0.422593 -0.731951 -2.500000 +v -0.731952 -0.422592 -2.500000 +v -0.845186 0.000001 -2.500000 +v -0.731952 0.422594 -2.500000 +v -0.422593 0.731954 -2.500000 +v -0.000000 0.845187 -2.500000 +v 0.422593 0.731953 -2.500000 +v 0.731952 0.422594 -2.500000 +v 0.845186 0.000001 -2.500000 +v 0.731953 -0.422591 -2.500000 +v 0.422593 -0.731951 -2.500000 +vt 0.909091 0.720930 +vt 0.973262 0.790698 +vt 0.909091 0.790698 +vt 0.994652 0.604651 +vt 0.973262 0.674419 +vt 0.973262 0.604651 +vt 0.909091 0.604651 +vt 0.903743 0.720930 +vt 0.903743 0.790698 +vt 0.973262 0.720930 +vt 0.909091 0.691860 +vt 0.898396 0.686046 +vt 0.893048 0.662791 +vt 0.898396 0.662791 +vt 0.866310 0.686046 +vt 0.866310 0.662791 +vt 0.860963 0.697674 +vt 0.866310 0.720930 +vt 0.860963 0.720930 +vt 0.893048 0.697674 +vt 0.893048 0.720930 +vt 0.893048 0.686046 +vt 0.866310 0.697674 +vt 0.898396 0.755814 +vt 0.893048 0.732558 +vt 0.898396 0.732558 +vt 0.893048 0.755814 +vt 0.866310 0.732558 +vt 0.860963 0.790698 +vt 0.866310 0.767442 +vt 0.866310 0.790698 +vt 0.893048 0.790698 +vt 0.866310 0.755814 +vt 0.909091 0.523256 +vt 0.973262 0.593023 +vt 0.909091 0.593023 +vt 0.994652 0.476744 +vt 0.973262 0.406977 +vt 0.994652 0.406977 +vt 0.909091 0.476744 +vt 0.909091 0.406977 +vt 0.903743 0.523256 +vt 0.903743 0.593023 +vt 0.973262 0.523256 +vt 0.909091 0.494186 +vt 0.973262 0.476744 +vt 0.898396 0.488372 +vt 0.893048 0.465116 +vt 0.898396 0.465116 +vt 0.893048 0.488372 +vt 0.866310 0.465116 +vt 0.860963 0.523256 +vt 0.866310 0.500000 +vt 0.866310 0.523256 +vt 0.893048 0.523256 +vt 0.866310 0.488372 +vt 0.898396 0.558140 +vt 0.893048 0.534884 +vt 0.898396 0.534884 +vt 0.893048 0.558140 +vt 0.866310 0.534884 +vt 0.860963 0.593023 +vt 0.866310 0.569767 +vt 0.866310 0.593023 +vt 0.893048 0.569767 +vt 0.893048 0.593023 +vt 0.866310 0.558140 +vt 0.909091 0.325581 +vt 0.973262 0.395349 +vt 0.909091 0.395349 +vt 0.994652 0.279070 +vt 0.973262 0.209302 +vt 0.994652 0.209302 +vt 0.973262 0.279070 +vt 0.909091 0.209302 +vt 0.903743 0.325581 +vt 0.903743 0.395349 +vt 0.973262 0.325581 +vt 0.909091 0.296512 +vt 0.898396 0.290698 +vt 0.893048 0.267442 +vt 0.898396 0.267442 +vt 0.893048 0.290698 +vt 0.866310 0.267442 +vt 0.860963 0.302326 +vt 0.866310 0.325581 +vt 0.860963 0.325581 +vt 0.866310 0.302326 +vt 0.893048 0.325581 +vt 0.866310 0.290698 +vt 0.898396 0.360465 +vt 0.893048 0.337209 +vt 0.898396 0.337209 +vt 0.893048 0.360465 +vt 0.866310 0.337209 +vt 0.860963 0.372093 +vt 0.866310 0.395349 +vt 0.860963 0.395349 +vt 0.893048 0.372093 +vt 0.893048 0.395349 +vt 0.866310 0.372093 +vt 0.866310 0.360465 +vt 0.909091 0.918605 +vt 0.973262 0.988372 +vt 0.909091 0.988372 +vt 0.994652 0.802326 +vt 0.973262 0.872093 +vt 0.973262 0.802326 +vt 0.909091 0.802326 +vt 0.903743 0.918605 +vt 0.903743 0.988372 +vt 0.973262 0.918605 +vt 0.909091 0.889535 +vt 0.898396 0.883721 +vt 0.893048 0.860465 +vt 0.898396 0.860465 +vt 0.893048 0.883721 +vt 0.866310 0.860465 +vt 0.860963 0.895349 +vt 0.866310 0.918605 +vt 0.860963 0.918605 +vt 0.866310 0.895349 +vt 0.893048 0.918605 +vt 0.866310 0.883721 +vt 0.898396 0.953488 +vt 0.893048 0.930233 +vt 0.898396 0.930233 +vt 0.893048 0.953488 +vt 0.866310 0.930233 +vt 0.860963 0.988372 +vt 0.866310 0.965116 +vt 0.866310 0.988372 +vt 0.893048 0.965116 +vt 0.893048 0.988372 +vt 0.866310 0.953488 +vt 0.834225 0.639535 +vt 0.839572 0.616279 +vt 0.839572 0.639535 +vt 0.850267 0.616279 +vt 0.844920 0.639535 +vt 0.844920 0.616279 +vt 0.834225 0.651163 +vt 0.839572 0.651163 +vt 0.834225 0.616279 +vt 0.828877 0.639535 +vt 0.828877 0.616279 +vt 0.834225 0.593023 +vt 0.839572 0.569767 +vt 0.839572 0.593023 +vt 0.850267 0.569767 +vt 0.844920 0.593023 +vt 0.844920 0.569767 +vt 0.834225 0.604651 +vt 0.839572 0.604651 +vt 0.834225 0.569767 +vt 0.828877 0.593023 +vt 0.828877 0.569767 +vt 0.834225 0.546512 +vt 0.839572 0.523256 +vt 0.839572 0.546512 +vt 0.850267 0.523256 +vt 0.844920 0.546512 +vt 0.844920 0.523256 +vt 0.834225 0.558140 +vt 0.839572 0.558140 +vt 0.834225 0.523256 +vt 0.828877 0.546512 +vt 0.828877 0.523256 +vt 0.834225 0.500000 +vt 0.839572 0.476744 +vt 0.839572 0.500000 +vt 0.850267 0.476744 +vt 0.844920 0.500000 +vt 0.844920 0.476744 +vt 0.834225 0.511628 +vt 0.839572 0.511628 +vt 0.828877 0.476744 +vt 0.828877 0.500000 +vt 0.834225 0.453488 +vt 0.839572 0.430233 +vt 0.839572 0.453488 +vt 0.850267 0.430233 +vt 0.844920 0.453488 +vt 0.844920 0.430233 +vt 0.834225 0.465116 +vt 0.839572 0.465116 +vt 0.834225 0.430233 +vt 0.828877 0.453488 +vt 0.828877 0.430233 +vt 0.834225 0.686047 +vt 0.839572 0.662791 +vt 0.839572 0.686047 +vt 0.850267 0.662791 +vt 0.844920 0.686047 +vt 0.844920 0.662791 +vt 0.834225 0.697674 +vt 0.839572 0.697674 +vt 0.828877 0.662791 +vt 0.828877 0.686047 +vt 0.679144 0.982558 +vt 0.668449 0.906977 +vt 0.679144 0.912791 +vt 0.679144 0.901163 +vt 0.668449 0.825581 +vt 0.679144 0.831395 +vt 0.679144 0.750000 +vt 0.668449 0.744186 +vt 0.679144 0.738372 +vt 0.668449 0.662791 +vt 0.679144 0.668605 +vt 0.679144 0.656977 +vt 0.668449 0.581395 +vt 0.679144 0.587209 +vt 0.679144 0.575581 +vt 0.668449 0.500000 +vt 0.679144 0.505814 +vt 0.679144 0.424419 +vt 0.668449 0.418605 +vt 0.679144 0.412791 +vt 0.668449 0.337209 +vt 0.679144 0.343023 +vt 0.679144 0.331395 +vt 0.668449 0.255814 +vt 0.679144 0.261628 +vt 0.679144 0.180233 +vt 0.668449 0.174419 +vt 0.679144 0.168605 +vt 0.668449 0.093023 +vt 0.679144 0.098837 +vt 0.679144 0.087209 +vt 0.668449 0.011628 +vt 0.679144 0.017442 +vt 0.854372 0.855140 +vt 0.763956 0.968649 +vt 0.763956 0.741632 +vt 0.534759 0.982558 +vt 0.545455 0.906977 +vt 0.545455 0.988372 +vt 0.534759 0.831395 +vt 0.534759 0.901163 +vt 0.534759 0.750000 +vt 0.545455 0.825581 +vt 0.534759 0.819767 +vt 0.534759 0.668605 +vt 0.545455 0.744186 +vt 0.534759 0.738372 +vt 0.534759 0.587209 +vt 0.545455 0.662791 +vt 0.534759 0.656977 +vt 0.534759 0.575581 +vt 0.545455 0.500000 +vt 0.545455 0.581395 +vt 0.534759 0.424419 +vt 0.534759 0.494186 +vt 0.534759 0.343023 +vt 0.545455 0.418605 +vt 0.534759 0.412791 +vt 0.534759 0.261628 +vt 0.545455 0.337209 +vt 0.534759 0.331395 +vt 0.534759 0.250000 +vt 0.545455 0.174419 +vt 0.545455 0.255814 +vt 0.534759 0.168605 +vt 0.545455 0.093023 +vt 0.534759 0.017442 +vt 0.534759 0.087209 +vt 0.566845 0.982558 +vt 0.556150 0.906977 +vt 0.566845 0.912791 +vt 0.566845 0.901163 +vt 0.556150 0.825581 +vt 0.566845 0.831395 +vt 0.566845 0.819767 +vt 0.556150 0.744186 +vt 0.566845 0.750000 +vt 0.566845 0.738372 +vt 0.556150 0.662791 +vt 0.566845 0.668605 +vt 0.566845 0.587209 +vt 0.556150 0.581395 +vt 0.566845 0.575581 +vt 0.556150 0.500000 +vt 0.566845 0.505814 +vt 0.566845 0.424419 +vt 0.556150 0.418605 +vt 0.566845 0.412791 +vt 0.556150 0.337209 +vt 0.566845 0.343023 +vt 0.566845 0.331395 +vt 0.556150 0.255814 +vt 0.566845 0.261628 +vt 0.566845 0.250000 +vt 0.556150 0.174419 +vt 0.566845 0.180233 +vt 0.566845 0.168605 +vt 0.556150 0.093023 +vt 0.566845 0.098837 +vt 0.566845 0.017442 +vt 0.556150 0.011628 +vt 0.497326 0.982558 +vt 0.508021 0.906977 +vt 0.508021 0.988372 +vt 0.497326 0.831395 +vt 0.497326 0.901163 +vt 0.497326 0.750000 +vt 0.508021 0.825581 +vt 0.497326 0.819767 +vt 0.497326 0.738372 +vt 0.508021 0.662791 +vt 0.508021 0.744186 +vt 0.497326 0.587209 +vt 0.497326 0.656977 +vt 0.497326 0.575581 +vt 0.508021 0.500000 +vt 0.508021 0.581395 +vt 0.497326 0.424419 +vt 0.497326 0.494186 +vt 0.497326 0.343023 +vt 0.508021 0.418605 +vt 0.497326 0.412791 +vt 0.497326 0.331395 +vt 0.508021 0.255814 +vt 0.508021 0.337209 +vt 0.497326 0.180233 +vt 0.497326 0.250000 +vt 0.497326 0.168605 +vt 0.508021 0.093023 +vt 0.508021 0.174419 +vt 0.497326 0.087209 +vt 0.508021 0.011628 +vt 0.529412 0.982558 +vt 0.518717 0.906977 +vt 0.529412 0.912791 +vt 0.529412 0.901163 +vt 0.518717 0.825581 +vt 0.529412 0.831395 +vt 0.529412 0.819767 +vt 0.518717 0.744186 +vt 0.529412 0.750000 +vt 0.529412 0.738372 +vt 0.518717 0.662791 +vt 0.529412 0.668605 +vt 0.529412 0.587209 +vt 0.518717 0.581395 +vt 0.529412 0.575581 +vt 0.518717 0.500000 +vt 0.529412 0.505814 +vt 0.529412 0.494186 +vt 0.518717 0.418605 +vt 0.529412 0.424419 +vt 0.529412 0.412791 +vt 0.518717 0.337209 +vt 0.529412 0.343023 +vt 0.529412 0.331395 +vt 0.518717 0.255814 +vt 0.529412 0.261628 +vt 0.529412 0.250000 +vt 0.518717 0.174419 +vt 0.529412 0.180233 +vt 0.529412 0.168605 +vt 0.518717 0.093023 +vt 0.529412 0.098837 +vt 0.529412 0.017442 +vt 0.518717 0.011628 +vt 0.572192 0.982558 +vt 0.582888 0.906977 +vt 0.582888 0.988372 +vt 0.572192 0.831395 +vt 0.572192 0.901163 +vt 0.572192 0.750000 +vt 0.582888 0.825581 +vt 0.572192 0.819767 +vt 0.572192 0.668605 +vt 0.582888 0.744186 +vt 0.572192 0.738372 +vt 0.572192 0.587209 +vt 0.582888 0.662791 +vt 0.572192 0.656977 +vt 0.572192 0.575581 +vt 0.582888 0.500000 +vt 0.582888 0.581395 +vt 0.572192 0.424419 +vt 0.572192 0.494186 +vt 0.572192 0.343023 +vt 0.582888 0.418605 +vt 0.572192 0.412791 +vt 0.572192 0.261628 +vt 0.582888 0.337209 +vt 0.572192 0.331395 +vt 0.572192 0.250000 +vt 0.582888 0.174419 +vt 0.582888 0.255814 +vt 0.572192 0.168605 +vt 0.582888 0.093023 +vt 0.572192 0.087209 +vt 0.582888 0.011628 +vt 0.994652 0.674419 +vt 0.909091 0.674419 +vt 0.909091 0.703488 +vt 0.860963 0.767442 +vt 0.893048 0.767442 +vt 0.909091 0.505814 +vt 0.860963 0.500000 +vt 0.893048 0.500000 +vt 0.860963 0.569767 +vt 0.909091 0.279070 +vt 0.909091 0.308140 +vt 0.893048 0.302326 +vt 0.994652 0.872093 +vt 0.909091 0.872093 +vt 0.909091 0.901163 +vt 0.893048 0.895349 +vt 0.860963 0.965116 +vt 0.850267 0.639535 +vt 0.850267 0.593023 +vt 0.850267 0.546512 +vt 0.834225 0.476744 +vt 0.850267 0.500000 +vt 0.850267 0.453488 +vt 0.834225 0.662791 +vt 0.850267 0.686047 +vt 0.668449 0.988372 +vt 0.679144 0.819767 +vt 0.679144 0.494186 +vt 0.679144 0.250000 +vt 0.794095 0.724072 +vt 0.824233 0.741632 +vt 0.846296 0.789606 +vt 0.846296 0.920674 +vt 0.824233 0.968649 +vt 0.794095 0.986208 +vt 0.741893 0.920674 +vt 0.733817 0.855140 +vt 0.741893 0.789606 +vt 0.534759 0.912791 +vt 0.534759 0.505814 +vt 0.534759 0.180233 +vt 0.534759 0.098837 +vt 0.545455 0.011628 +vt 0.556150 0.988372 +vt 0.566845 0.656977 +vt 0.566845 0.494186 +vt 0.566845 0.087209 +vt 0.497326 0.912791 +vt 0.497326 0.668605 +vt 0.497326 0.505814 +vt 0.497326 0.261628 +vt 0.497326 0.098837 +vt 0.497326 0.017442 +vt 0.518717 0.988372 +vt 0.529412 0.656977 +vt 0.529412 0.087209 +vt 0.572192 0.912791 +vt 0.572192 0.505814 +vt 0.572192 0.180233 +vt 0.572192 0.098837 +vt 0.572192 0.017442 +vt 0.037433 0.988372 +vt 0.401070 0.918605 +vt 0.401070 0.988372 +vt 0.037433 0.918605 +vt 0.401070 0.848837 +vt 0.037433 0.848837 +vt 0.401070 0.779070 +vt 0.037433 0.779070 +vt 0.401070 0.709302 +vt 0.037433 0.639535 +vt 0.401070 0.639535 +vt 0.401070 0.569767 +vt 0.037433 0.500000 +vt 0.401070 0.500000 +vt 0.401070 0.430233 +vt 0.037433 0.430233 +vt 0.401070 0.360465 +vt 0.037433 0.360465 +vt 0.401070 0.290698 +vt 0.005348 0.581395 +vt 0.037433 0.569767 +vt 0.037433 0.290698 +vt 0.401070 0.220930 +vt 0.037433 0.220930 +vt 0.401070 0.151163 +vt 0.037433 0.709302 +vt 0.005348 0.651163 +vt 0.005348 0.720930 +vt 0.037433 0.151163 +vt 0.005348 0.209302 +vt 0.005348 0.162791 +vt 0.005348 0.930233 +vt 0.005348 0.790698 +vt 0.005348 0.279070 +vt 0.005348 0.232558 +vt 0.005348 0.860465 +vt 0.005348 0.302326 +vt 0.005348 0.372093 +vt 0.005348 0.441860 +vt 0.005348 0.511628 +vt 0.449231 0.987503 +vt 0.412805 0.941775 +vt 0.412805 0.850318 +vt 0.684492 0.639535 +vt 0.727273 0.709302 +vt 0.684492 0.709302 +vt 0.684492 0.220930 +vt 0.727273 0.151163 +vt 0.727273 0.220930 +vt 0.684492 0.848837 +vt 0.727273 0.918605 +vt 0.684492 0.918605 +vt 0.684492 0.360465 +vt 0.727273 0.430233 +vt 0.684492 0.430233 +vt 0.684492 0.569767 +vt 0.727273 0.639535 +vt 0.684492 0.779070 +vt 0.727273 0.848837 +vt 0.684492 0.290698 +vt 0.727273 0.360465 +vt 0.684492 0.500000 +vt 0.727273 0.569767 +vt 0.727273 0.779070 +vt 0.727273 0.290698 +vt 0.727273 0.988372 +vt 0.684492 0.988372 +vt 0.727273 0.500000 +vt 0.005348 0.627907 +vt 0.005348 0.697674 +vt 0.005348 0.767442 +vt 0.005348 0.976744 +vt 0.005348 0.837209 +vt 0.005348 0.906977 +vt 0.005348 0.348837 +vt 0.005348 0.418605 +vt 0.005348 0.488372 +vt 0.005348 0.558140 +vt 0.428200 0.816843 +vt 0.449230 0.804590 +vt 0.470261 0.816843 +vt 0.485656 0.850318 +vt 0.491291 0.896047 +vt 0.485656 0.941775 +vt 0.470261 0.975250 +vt 0.428200 0.975250 +vt 0.407170 0.896046 +vt 0.684492 0.151163 +vn 0.7016 0.7016 0.1240 +vn 0.0000 0.0000 -1.0000 +vn -0.7016 -0.7016 0.1240 +vn 0.0000 0.0000 1.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.7016 -0.7016 0.1240 +vn -0.7016 0.7016 0.1240 +vn -0.7071 0.7071 0.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.8660 -0.5000 -0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.3596 0.6229 0.6947 +vn 0.0000 0.7193 0.6947 +vn -0.6229 0.3596 0.6947 +vn -0.7193 0.0000 0.6947 +vn 0.0000 -0.7193 0.6947 +vn 0.3596 -0.6229 0.6947 +vn -0.3596 -0.6229 0.6947 +vn -0.6229 -0.3596 0.6947 +vn 0.6229 -0.3596 0.6947 +vn 0.7193 0.0000 0.6947 +vn 0.6229 0.3596 0.6947 +vn 0.3596 0.6229 0.6947 +usemtl None +s off +f 38/1/1 39/2/1 37/3/1 +f 39/4/2 44/5/2 43/6/2 +f 44/5/3 41/7/3 43/6/3 +f 42/8/4 37/3/4 41/9/4 +f 40/10/5 42/11/5 44/5/5 +f 46/12/6 47/13/6 45/14/6 +f 47/13/2 52/15/2 51/16/2 +f 52/17/7 49/18/7 51/19/7 +f 49/18/4 46/20/4 45/21/4 +f 48/22/5 50/23/5 52/15/5 +f 54/24/6 55/25/6 53/26/6 +f 56/27/2 59/28/2 55/25/2 +f 59/29/7 58/30/7 57/31/7 +f 58/30/4 53/32/4 57/31/4 +f 56/27/5 58/30/5 60/33/5 +f 62/34/8 63/35/8 61/36/8 +f 64/37/2 67/38/2 63/39/2 +f 67/38/9 66/40/9 65/41/9 +f 66/42/4 61/36/4 65/43/4 +f 64/44/7 66/45/7 68/46/7 +f 70/47/5 71/48/5 69/49/5 +f 72/50/2 75/51/2 71/48/2 +f 75/52/10 74/53/10 73/54/10 +f 74/53/4 69/55/4 73/54/4 +f 72/50/7 74/53/7 76/56/7 +f 78/57/5 79/58/5 77/59/5 +f 80/60/2 83/61/2 79/58/2 +f 83/62/10 82/63/10 81/64/10 +f 81/64/4 78/65/4 77/66/4 +f 80/60/7 82/63/7 84/67/7 +f 86/68/3 87/69/3 85/70/3 +f 88/71/2 91/72/2 87/73/2 +f 92/74/1 89/75/1 91/72/1 +f 90/76/4 85/70/4 89/77/4 +f 88/78/10 90/79/10 92/74/10 +f 94/80/7 95/81/7 93/82/7 +f 96/83/2 99/84/2 95/81/2 +f 100/85/6 97/86/6 99/87/6 +f 98/88/4 93/89/4 97/86/4 +f 96/83/10 98/88/10 100/90/10 +f 102/91/7 103/92/7 101/93/7 +f 104/94/2 107/95/2 103/92/2 +f 108/96/6 105/97/6 107/98/6 +f 105/97/4 102/99/4 101/100/4 +f 104/94/10 106/101/10 108/102/10 +f 110/103/9 111/104/9 109/105/9 +f 111/106/2 116/107/2 115/108/2 +f 116/107/8 113/109/8 115/108/8 +f 114/110/4 109/105/4 113/111/4 +f 112/112/6 114/113/6 116/107/6 +f 118/114/10 119/115/10 117/116/10 +f 120/117/2 123/118/2 119/115/2 +f 124/119/5 121/120/5 123/121/5 +f 122/122/4 117/123/4 121/120/4 +f 120/117/6 122/122/6 124/124/6 +f 126/125/10 127/126/10 125/127/10 +f 128/128/2 131/129/2 127/126/2 +f 131/130/5 130/131/5 129/132/5 +f 129/132/4 126/133/4 125/134/4 +f 128/128/6 130/131/6 132/135/6 +f 134/136/11 135/137/11 133/138/11 +f 140/139/12 137/140/12 139/141/12 +f 138/142/4 133/138/4 137/143/4 +f 139/141/13 133/138/13 135/137/13 +f 136/144/14 138/145/14 140/146/14 +f 142/147/15 143/148/15 141/149/15 +f 148/150/16 145/151/16 147/152/16 +f 146/153/4 141/149/4 145/154/4 +f 147/152/17 141/149/17 143/148/17 +f 144/155/18 146/156/18 148/157/18 +f 150/158/19 151/159/19 149/160/19 +f 156/161/20 153/162/20 155/163/20 +f 154/164/4 149/160/4 153/165/4 +f 155/163/21 149/160/21 151/159/21 +f 152/166/22 154/167/22 156/168/22 +f 158/169/12 159/170/12 157/171/12 +f 164/172/11 161/173/11 163/174/11 +f 162/175/4 157/171/4 161/176/4 +f 159/170/14 161/173/14 157/171/14 +f 164/177/13 158/169/13 162/178/13 +f 166/179/16 167/180/16 165/181/16 +f 172/182/15 169/183/15 171/184/15 +f 170/185/4 165/181/4 169/186/4 +f 171/184/18 165/181/18 167/180/18 +f 168/187/17 170/188/17 172/189/17 +f 174/190/20 175/191/20 173/192/20 +f 180/193/19 177/194/19 179/195/19 +f 178/196/4 173/192/4 177/197/4 +f 179/195/22 173/192/22 175/191/22 +f 180/198/21 174/190/21 178/199/21 +f 241/200/2 254/201/2 242/202/2 +f 242/203/2 255/204/2 243/205/2 +f 244/206/2 255/204/2 256/207/2 +f 244/208/2 257/209/2 245/210/2 +f 245/211/2 258/212/2 246/213/2 +f 246/214/2 259/215/2 247/216/2 +f 248/217/2 259/215/2 260/218/2 +f 248/219/2 261/220/2 249/221/2 +f 249/222/2 262/223/2 250/224/2 +f 251/225/2 262/223/2 263/226/2 +f 251/227/2 264/228/2 252/229/2 +f 252/230/2 253/231/2 241/232/2 +f 268/233/2 272/234/2 276/235/2 +f 181/236/4 278/237/4 277/238/4 +f 183/239/4 278/237/4 182/240/4 +f 184/241/4 279/242/4 183/243/4 +f 185/244/4 280/245/4 184/246/4 +f 186/247/4 281/248/4 185/249/4 +f 186/250/4 283/251/4 282/252/4 +f 188/253/4 283/251/4 187/254/4 +f 189/255/4 284/256/4 188/257/4 +f 190/258/4 285/259/4 189/260/4 +f 190/261/4 287/262/4 286/263/4 +f 191/264/4 288/265/4 287/262/4 +f 181/266/4 288/265/4 192/267/4 +f 193/268/2 290/269/2 194/270/2 +f 194/271/2 291/272/2 195/273/2 +f 195/274/2 292/275/2 196/276/2 +f 196/277/2 293/278/2 197/279/2 +f 198/280/2 293/278/2 294/281/2 +f 198/282/2 295/283/2 199/284/2 +f 200/285/2 295/283/2 296/286/2 +f 200/287/2 297/288/2 201/289/2 +f 201/290/2 298/291/2 202/292/2 +f 202/293/2 299/294/2 203/295/2 +f 203/296/2 300/297/2 204/298/2 +f 193/299/2 300/297/2 289/300/2 +f 205/301/4 302/302/4 301/303/4 +f 207/304/4 302/302/4 206/305/4 +f 208/306/4 303/307/4 207/308/4 +f 208/309/4 305/310/4 304/311/4 +f 210/312/4 305/310/4 209/313/4 +f 210/314/4 307/315/4 306/316/4 +f 212/317/4 307/315/4 211/318/4 +f 213/319/4 308/320/4 212/321/4 +f 213/322/4 310/323/4 309/324/4 +f 215/325/4 310/323/4 214/326/4 +f 215/327/4 312/328/4 311/329/4 +f 216/330/4 301/331/4 312/328/4 +f 217/332/2 314/333/2 218/334/2 +f 218/335/2 315/336/2 219/337/2 +f 219/338/2 316/339/2 220/340/2 +f 220/341/2 317/342/2 221/343/2 +f 222/344/2 317/342/2 318/345/2 +f 222/346/2 319/347/2 223/348/2 +f 223/349/2 320/350/2 224/351/2 +f 224/352/2 321/353/2 225/354/2 +f 225/355/2 322/356/2 226/357/2 +f 226/358/2 323/359/2 227/360/2 +f 227/361/2 324/362/2 228/363/2 +f 217/364/2 324/362/2 313/365/2 +f 229/366/4 326/367/4 325/368/4 +f 231/369/4 326/367/4 230/370/4 +f 232/371/4 327/372/4 231/373/4 +f 233/374/4 328/375/4 232/376/4 +f 234/377/4 329/378/4 233/379/4 +f 234/380/4 331/381/4 330/382/4 +f 236/383/4 331/381/4 235/384/4 +f 237/385/4 332/386/4 236/387/4 +f 238/388/4 333/389/4 237/390/4 +f 238/391/4 335/392/4 334/393/4 +f 239/394/4 336/395/4 335/392/4 +f 240/396/4 325/397/4 336/395/4 +f 38/1/1 40/10/1 39/2/1 +f 39/4/2 40/398/2 44/5/2 +f 44/5/3 42/399/3 41/7/3 +f 42/8/4 38/1/4 37/3/4 +f 40/10/5 38/400/5 42/11/5 +f 46/12/6 48/22/6 47/13/6 +f 47/13/2 48/22/2 52/15/2 +f 52/17/7 50/23/7 49/18/7 +f 49/18/4 50/23/4 46/20/4 +f 48/22/5 46/20/5 50/23/5 +f 54/24/6 56/27/6 55/25/6 +f 56/27/2 60/33/2 59/28/2 +f 59/29/7 60/401/7 58/30/7 +f 58/30/4 54/402/4 53/32/4 +f 56/27/5 54/402/5 58/30/5 +f 62/34/8 64/44/8 63/35/8 +f 64/37/2 68/46/2 67/38/2 +f 67/38/9 68/46/9 66/40/9 +f 66/42/4 62/34/4 61/36/4 +f 64/44/7 62/403/7 66/45/7 +f 70/47/5 72/50/5 71/48/5 +f 72/50/2 76/56/2 75/51/2 +f 75/52/10 76/404/10 74/53/10 +f 74/53/4 70/405/4 69/55/4 +f 72/50/7 70/405/7 74/53/7 +f 78/57/5 80/60/5 79/58/5 +f 80/60/2 84/67/2 83/61/2 +f 83/62/10 84/406/10 82/63/10 +f 81/64/4 82/63/4 78/65/4 +f 80/60/7 78/65/7 82/63/7 +f 86/68/3 88/78/3 87/69/3 +f 88/71/2 92/74/2 91/72/2 +f 92/74/1 90/407/1 89/75/1 +f 90/76/4 86/68/4 85/70/4 +f 88/78/10 86/408/10 90/79/10 +f 94/80/7 96/83/7 95/81/7 +f 96/83/2 100/90/2 99/84/2 +f 100/85/6 98/88/6 97/86/6 +f 98/88/4 94/409/4 93/89/4 +f 96/83/10 94/409/10 98/88/10 +f 102/91/7 104/94/7 103/92/7 +f 104/94/2 108/102/2 107/95/2 +f 108/96/6 106/101/6 105/97/6 +f 105/97/4 106/101/4 102/99/4 +f 104/94/10 102/99/10 106/101/10 +f 110/103/9 112/112/9 111/104/9 +f 111/106/2 112/410/2 116/107/2 +f 116/107/8 114/411/8 113/109/8 +f 114/110/4 110/103/4 109/105/4 +f 112/112/6 110/412/6 114/113/6 +f 118/114/10 120/117/10 119/115/10 +f 120/117/2 124/124/2 123/118/2 +f 124/119/5 122/122/5 121/120/5 +f 122/122/4 118/413/4 117/123/4 +f 120/117/6 118/413/6 122/122/6 +f 126/125/10 128/128/10 127/126/10 +f 128/128/2 132/135/2 131/129/2 +f 131/130/5 132/414/5 130/131/5 +f 129/132/4 130/131/4 126/133/4 +f 128/128/6 126/133/6 130/131/6 +f 134/136/11 136/144/11 135/137/11 +f 140/139/12 138/415/12 137/140/12 +f 138/142/4 134/136/4 133/138/4 +f 139/141/13 137/140/13 133/138/13 +f 136/144/14 134/136/14 138/145/14 +f 142/147/15 144/155/15 143/148/15 +f 148/150/16 146/416/16 145/151/16 +f 146/153/4 142/147/4 141/149/4 +f 147/152/17 145/151/17 141/149/17 +f 144/155/18 142/147/18 146/156/18 +f 150/158/19 152/166/19 151/159/19 +f 156/161/20 154/417/20 153/162/20 +f 154/164/4 150/158/4 149/160/4 +f 155/163/21 153/162/21 149/160/21 +f 152/166/22 150/158/22 154/167/22 +f 158/169/12 160/418/12 159/170/12 +f 164/172/11 162/419/11 161/173/11 +f 162/175/4 158/169/4 157/171/4 +f 159/170/14 163/174/14 161/173/14 +f 164/177/13 160/418/13 158/169/13 +f 166/179/16 168/187/16 167/180/16 +f 172/182/15 170/420/15 169/183/15 +f 170/185/4 166/179/4 165/181/4 +f 171/184/18 169/183/18 165/181/18 +f 168/187/17 166/179/17 170/188/17 +f 174/190/20 176/421/20 175/191/20 +f 180/193/19 178/422/19 177/194/19 +f 178/196/4 174/190/4 173/192/4 +f 179/195/22 177/194/22 173/192/22 +f 180/198/21 176/421/21 174/190/21 +f 241/200/2 253/423/2 254/201/2 +f 242/203/2 254/201/2 255/204/2 +f 244/206/2 243/424/2 255/204/2 +f 244/208/2 256/207/2 257/209/2 +f 245/211/2 257/209/2 258/212/2 +f 246/214/2 258/212/2 259/215/2 +f 248/217/2 247/425/2 259/215/2 +f 248/219/2 260/218/2 261/220/2 +f 249/222/2 261/220/2 262/223/2 +f 251/225/2 250/426/2 262/223/2 +f 251/227/2 263/226/2 264/228/2 +f 252/230/2 264/228/2 253/231/2 +f 276/235/2 265/427/2 266/428/2 +f 266/428/2 267/429/2 268/233/2 +f 268/233/2 269/430/2 272/234/2 +f 269/430/2 270/431/2 272/234/2 +f 270/431/2 271/432/2 272/234/2 +f 272/234/2 273/433/2 276/235/2 +f 273/433/2 274/434/2 276/235/2 +f 274/434/2 275/435/2 276/235/2 +f 276/235/2 266/428/2 268/233/2 +f 181/236/4 182/436/4 278/237/4 +f 183/239/4 279/242/4 278/237/4 +f 184/241/4 280/245/4 279/242/4 +f 185/244/4 281/248/4 280/245/4 +f 186/247/4 282/252/4 281/248/4 +f 186/250/4 187/437/4 283/251/4 +f 188/253/4 284/256/4 283/251/4 +f 189/255/4 285/259/4 284/256/4 +f 190/258/4 286/263/4 285/259/4 +f 190/261/4 191/438/4 287/262/4 +f 191/264/4 192/439/4 288/265/4 +f 181/266/4 277/440/4 288/265/4 +f 193/268/2 289/441/2 290/269/2 +f 194/271/2 290/269/2 291/272/2 +f 195/274/2 291/272/2 292/275/2 +f 196/277/2 292/275/2 293/278/2 +f 198/280/2 197/442/2 293/278/2 +f 198/282/2 294/281/2 295/283/2 +f 200/285/2 199/443/2 295/283/2 +f 200/287/2 296/286/2 297/288/2 +f 201/290/2 297/288/2 298/291/2 +f 202/293/2 298/291/2 299/294/2 +f 203/296/2 299/294/2 300/297/2 +f 193/299/2 204/444/2 300/297/2 +f 205/301/4 206/445/4 302/302/4 +f 207/304/4 303/307/4 302/302/4 +f 208/306/4 304/311/4 303/307/4 +f 208/309/4 209/446/4 305/310/4 +f 210/312/4 306/316/4 305/310/4 +f 210/314/4 211/447/4 307/315/4 +f 212/317/4 308/320/4 307/315/4 +f 213/319/4 309/324/4 308/320/4 +f 213/322/4 214/448/4 310/323/4 +f 215/325/4 311/329/4 310/323/4 +f 215/327/4 216/449/4 312/328/4 +f 216/330/4 205/450/4 301/331/4 +f 217/332/2 313/451/2 314/333/2 +f 218/335/2 314/333/2 315/336/2 +f 219/338/2 315/336/2 316/339/2 +f 220/341/2 316/339/2 317/342/2 +f 222/344/2 221/452/2 317/342/2 +f 222/346/2 318/345/2 319/347/2 +f 223/349/2 319/347/2 320/350/2 +f 224/352/2 320/350/2 321/353/2 +f 225/355/2 321/353/2 322/356/2 +f 226/358/2 322/356/2 323/359/2 +f 227/361/2 323/359/2 324/362/2 +f 217/364/2 228/453/2 324/362/2 +f 229/366/4 230/454/4 326/367/4 +f 231/369/4 327/372/4 326/367/4 +f 232/371/4 328/375/4 327/372/4 +f 233/374/4 329/378/4 328/375/4 +f 234/377/4 330/382/4 329/378/4 +f 234/380/4 235/455/4 331/381/4 +f 236/383/4 332/386/4 331/381/4 +f 237/385/4 333/389/4 332/386/4 +f 238/388/4 334/393/4 333/389/4 +f 238/391/4 239/456/4 335/392/4 +f 239/394/4 240/457/4 336/395/4 +f 240/396/4 229/458/4 325/397/4 +s 1 +f 2/459/11 3/460/21 1/461/11 +f 4/462/21 5/463/15 3/460/21 +f 6/464/15 7/465/14 5/463/15 +f 8/466/14 9/467/19 7/465/14 +f 9/467/19 12/468/18 11/469/18 +f 12/468/18 13/470/12 11/469/18 +f 13/470/12 16/471/22 15/472/22 +f 16/471/22 17/473/16 15/472/22 +f 18/474/16 19/475/13 17/473/16 +f 20/476/13 21/477/20 19/475/13 +f 12/468/23 31/478/24 14/479/24 +f 22/480/20 23/481/17 21/477/20 +f 24/482/17 1/483/11 23/481/17 +f 10/484/25 30/485/23 12/468/23 +f 8/466/26 29/486/25 10/484/25 +f 2/487/27 36/488/28 26/489/27 +f 2/459/27 25/490/29 4/462/29 +f 6/464/30 28/491/26 8/466/26 +f 24/482/28 35/492/31 36/493/28 +f 4/462/29 27/494/30 6/464/30 +f 20/476/32 35/495/31 22/480/31 +f 18/474/33 34/496/32 20/476/32 +f 16/471/34 33/497/33 18/474/33 +f 14/479/24 32/498/34 16/471/34 +f 31/499/4 29/500/4 27/501/4 +f 286/263/13 297/288/16 285/259/16 +f 283/251/12 294/281/18 282/252/18 +f 279/242/15 292/275/14 291/272/15 +f 287/262/20 298/291/13 286/263/13 +f 284/256/22 295/283/12 283/251/12 +f 280/245/14 293/278/19 292/275/14 +f 288/265/17 299/294/20 287/262/20 +f 277/238/11 290/269/21 289/441/11 +f 285/259/16 296/286/22 284/256/22 +f 281/248/19 294/281/18 293/278/19 +f 288/265/17 289/300/11 300/297/17 +f 278/237/21 291/272/15 290/269/21 +f 310/323/13 321/353/16 309/324/16 +f 307/315/12 318/345/18 306/316/18 +f 303/307/15 316/339/14 315/336/15 +f 311/329/20 322/356/13 310/323/13 +f 308/320/22 319/347/12 307/315/12 +f 304/311/14 317/342/19 316/339/14 +f 312/328/17 323/359/20 311/329/20 +f 301/303/11 314/333/21 313/451/11 +f 309/324/16 320/350/22 308/320/22 +f 306/316/18 317/342/19 305/310/19 +f 301/331/11 324/362/17 312/328/17 +f 302/302/21 315/336/15 314/333/21 +f 246/502/17 269/503/20 245/504/20 +f 334/393/13 261/220/16 333/389/16 +f 331/381/12 258/212/18 330/382/18 +f 328/375/14 255/204/15 327/372/15 +f 335/392/20 262/223/13 334/393/13 +f 332/386/22 259/215/12 331/381/12 +f 329/378/19 256/207/14 328/375/14 +f 336/395/17 263/226/20 335/392/20 +f 326/367/21 253/423/11 325/368/11 +f 333/389/16 260/218/22 332/386/22 +f 330/382/18 257/209/19 329/378/19 +f 336/395/17 253/231/11 264/228/17 +f 326/367/21 255/204/15 254/201/21 +f 252/505/18 265/506/12 276/507/18 +f 243/508/16 266/509/22 242/510/22 +f 250/511/14 273/512/15 249/513/15 +f 247/514/11 270/515/17 246/502/17 +f 244/516/13 267/517/16 243/508/16 +f 251/518/19 274/519/14 250/511/14 +f 248/520/21 271/521/11 247/514/11 +f 244/516/13 269/503/20 268/522/13 +f 251/518/19 276/507/18 275/523/19 +f 242/510/22 265/524/12 241/525/12 +f 249/513/15 272/526/21 248/520/21 +f 2/459/11 4/462/21 3/460/21 +f 4/462/21 6/464/15 5/463/15 +f 6/464/15 8/466/14 7/465/14 +f 8/466/14 10/484/19 9/467/19 +f 9/467/19 10/484/19 12/468/18 +f 12/468/18 14/479/12 13/470/12 +f 13/470/12 14/479/12 16/471/22 +f 16/471/22 18/474/16 17/473/16 +f 18/474/16 20/476/13 19/475/13 +f 20/476/13 22/480/20 21/477/20 +f 12/468/23 30/527/23 31/478/24 +f 22/480/20 24/482/17 23/481/17 +f 24/482/17 2/487/11 1/483/11 +f 10/484/25 29/528/25 30/485/23 +f 8/466/26 28/529/26 29/486/25 +f 2/487/27 24/482/28 36/488/28 +f 2/459/27 26/530/27 25/490/29 +f 6/464/30 27/531/30 28/491/26 +f 24/482/28 22/480/31 35/492/31 +f 4/462/29 25/532/29 27/494/30 +f 20/476/32 34/533/32 35/495/31 +f 18/474/33 33/534/33 34/496/32 +f 16/471/34 32/535/34 33/497/33 +f 14/479/24 31/536/24 32/498/34 +f 27/501/4 25/537/4 26/538/4 +f 26/538/4 36/539/4 27/501/4 +f 36/539/4 35/540/4 27/501/4 +f 35/540/4 34/541/4 33/542/4 +f 33/542/4 32/543/4 31/499/4 +f 31/499/4 30/544/4 29/500/4 +f 29/500/4 28/545/4 27/501/4 +f 35/540/4 33/542/4 27/501/4 +f 33/542/4 31/499/4 27/501/4 +f 286/263/13 298/291/13 297/288/16 +f 283/251/12 295/283/12 294/281/18 +f 279/242/15 280/245/14 292/275/14 +f 287/262/20 299/294/20 298/291/13 +f 284/256/22 296/286/22 295/283/12 +f 280/245/14 281/248/19 293/278/19 +f 288/265/17 300/297/17 299/294/20 +f 277/238/11 278/237/21 290/269/21 +f 285/259/16 297/288/16 296/286/22 +f 281/248/19 282/252/18 294/281/18 +f 288/265/17 277/440/11 289/300/11 +f 278/237/21 279/242/15 291/272/15 +f 310/323/13 322/356/13 321/353/16 +f 307/315/12 319/347/12 318/345/18 +f 303/307/15 304/311/14 316/339/14 +f 311/329/20 323/359/20 322/356/13 +f 308/320/22 320/350/22 319/347/12 +f 304/311/14 305/310/19 317/342/19 +f 312/328/17 324/362/17 323/359/20 +f 301/303/11 302/302/21 314/333/21 +f 309/324/16 321/353/16 320/350/22 +f 306/316/18 318/345/18 317/342/19 +f 301/331/11 313/365/11 324/362/17 +f 302/302/21 303/307/15 315/336/15 +f 246/502/17 270/515/17 269/503/20 +f 334/393/13 262/223/13 261/220/16 +f 331/381/12 259/215/12 258/212/18 +f 328/375/14 256/207/14 255/204/15 +f 335/392/20 263/226/20 262/223/13 +f 332/386/22 260/218/22 259/215/12 +f 329/378/19 257/209/19 256/207/14 +f 336/395/17 264/228/17 263/226/20 +f 326/367/21 254/201/21 253/423/11 +f 333/389/16 261/220/16 260/218/22 +f 330/382/18 258/212/18 257/209/19 +f 336/395/17 325/397/11 253/231/11 +f 326/367/21 327/372/15 255/204/15 +f 252/505/18 241/546/12 265/506/12 +f 243/508/16 267/517/16 266/509/22 +f 250/511/14 274/519/14 273/512/15 +f 247/514/11 271/521/11 270/515/17 +f 244/516/13 268/522/13 267/517/16 +f 251/518/19 275/523/19 274/519/14 +f 248/520/21 272/526/21 271/521/11 +f 244/516/13 245/504/20 269/503/20 +f 251/518/19 252/505/18 276/507/18 +f 242/510/22 266/509/22 265/524/12 +f 249/513/15 273/512/15 272/526/21 diff --git a/src/main/resources/assets/hbm/textures/models/bombs/dud_conventional.png b/src/main/resources/assets/hbm/textures/models/bombs/dud_conventional.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2ac97f536c8501234debcd1dda51551400660e GIT binary patch literal 29044 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 Hu0mjfX5ZAr delta 2281 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 BhI9Y` diff --git a/src/main/resources/assets/hbm/textures/models/weapons/charge_thrower_hook.png b/src/main/resources/assets/hbm/textures/models/weapons/charge_thrower_hook.png index 6d0cfa335c418c3525d94870053d900fc5bb27c1..4b5bf505cce96411665990976cb56a4b9307efd1 100644 GIT binary patch delta 554 zcmV+_0@eMH1kwbMGk*dJNkl%@F5QW>62Vw7}I0{GcDDGXe=O$(o3_)AK zc}b1oeVeKIqpYu9)1a1vD6H$cY2TIb-ix(%xcmPn@_`=EdoLjb^ssNwEs@@P@!p?) z-lIejk+J2+xxDy(nx?KLiinKsx^7WO6tOJJ;fH4lOuy?{qJKzbXNmPZ3` zHoa05S(C;{c0K@>$!(^NfJ&kcu(1W_fjCY3#>QKVt{b0w;Gi6Rv{n^ac^mKJy(2AvB#&phyrD34$U)aAyO8i3Fi0lIJ4ZU?M?KBnXNGL6IOR5(L+gAecxH z6bYi~X8fM8)>dDa4%xFBn9wQ~2MPK`|(=GL}l2 z*KX?I@(0A&@`M1Q!$g7@Tb`mqbeKpGoFhT7v_Y`6K~N-!(ONt7yhTK@?=v--y*(@U sE(b}uP$P=0<1j~3+&xa44Q00T38g~ns8FpyK>z>%07*qoM6N<$g7FmruK)l5 delta 487 zcmVKNQdM d?b?W$&o6qVu8ru|i~axr002ovPDHLkV1ob5=du6* diff --git a/src/main/resources/assets/hbm/textures/models/weapons/charge_thrower_mortar.png b/src/main/resources/assets/hbm/textures/models/weapons/charge_thrower_mortar.png index 8c65186e8502283fe966e14c1702fd3c9b5ea813..bb4768a913c56dca9210742b53509672a7a02d57 100644 GIT binary patch delta 1317 zcmV+=1={+x2FD7JGk*mBNklkh21iPq7m_o4Z1Gr1!6mC+a zOKA`!5b^*n7Pbty$OD)_0t+eg2rjI*5CRpKq!B8%NRiHQ3hj~ajPCroGxy9yGv5yw zFPf28_WpeCnLBr8o-AK2KggrS^^J&#Y&UBu^ZLb3L_}`i&VNhy>FQy(m)ZQP_VYaK z_97xOn_t!bnfE{6KS}oq(bUtSKLEy!fWZ_2gDCFh#&%ih#is z0fQ+522%tKrU)2J5ipn{U@%3%V2Xgj6aj;&Plo;geOWFK*B&_Ma<4n*B+Ihn>sglN zw(GXlYQ>uV7JsNyU==55{dH%@{VxvzX#0Z?1*`aH`TI1vCvR5-ERj&Ss%HKDZMvw@t(+|GZd!$` zX=U=a>3h0_x()#|5_3w)IoIhFRNG4A@1JUTE@B=mfnxP)6BZpZfBor=h*bAczLdjU z)lqL-1b+;s2-q1*S-o_4OkKqYSVt*_N7Z(itn#qi=YI8#CV#|2jk{GdUxo^HrkXs* zDHJ6C8Bn2Z`rcHcE12a&urNMUu#S%Z>mN_|6t4`Aq5a$UcRz|q|K|-Y)K;*?^^JV@ z#XAuZ`Qi7cqdxPG^d{5fFTQ;2J1+CDXV0?S?|=TYDz}@pJnZ)J+2^0iH!r{b@b_Q; z^!I^lY&UCJT$i6#^8XILs?$Oit2&|r_RGtEMPzsK`qV4iY<_i^26(@h*~L}vW-3it z438SZ;%j}HOa<$co?C3%k6B&{H*_Bt6|k~OHG4d;)PC*u?fm%Y<*N6MiB>VW6mcsj zB7dhVCVZh##a6GnVKRo*qDRvTRt(zMY2UNBI}A%YBQH{2r8HO~!&jWtY6G_2tmSrd zC{eSBDX^)|m-&5<9~?hy#clq3yL`X4ESGGXRIn*ktq={0|AP+&s3EIQD>29e7%y_olC4b zuh_@WB&r7!Ijv}Zcy!;z^^LrK@$R^7sugS~esEG<@Y_~Y1*-~Ie*2+v>BKA*Y&b*z zyEhJ4UARO}tDT~PO;@9UH3?T}zqx{!S(fGQh2flwx>rT3qsZbp$$#Qe zq`rq93`R$h)1C*zN6|--AzGn|`;M`4by-k22C*mRO;@xYrYm-XT+M?2homc7Py027 z%Bf3Q!M2;V{PyQpB666?*RL^M$yc=ceVBed#$F7~a8(gZC0)@96j8xo%4|g|AVLL$ zvFKApx`=S9Ywo8$lOKx;22)&k8-I!CMaH3m!4v_5DFOyl1PrDK7))^#8HstYI8-p0 zB49AZ5Q!+uW%Fl-JLd>ktf|lB$J`c_fT6R{lYIT>UlK61R`wuO|1|=JR{U`J!=`?% z+c=6uCv`m;0fQ+5hGat3j2;ZFXqZ9|n4rn;fO)V?M4BBziV!fg;D@X3KOP)C7^0L_ bt}_1tT`xt>rv+%%00000NkvXXu0mjfjYorF literal 821 zcmeAS@N?(olHy`uVBq!ia0vp^Gk`dOgAGVNWZoSLq*#ibJVQ8upoSx*gMoqRji-xa zNX4ADcQ5ANHV|n|T=_vKZh`Ke=83$QIJ@3Gn60|WaROtMiSd_(%qH3;9ZwFLJrF3= z`1NVRrg#7MN;JB*cKGXQb_E{$npYv|w-qR^>$m;KR zf7%`PHPg5Q%o@tKRvB?JYES*$aCML98pCG^6BadzM%Cw9A6YW5e#>0v%D{sPt_MJ9 ztJn3t&o;@Q(R$DR+PZkv^Jl3UyZF9me|fujag$?L0}`5Av++*o&zQ3HD+CNSE@jtf z|C^9h{P*WJC)Vf<#ff=4XZRfu%i$|e<+#x_H*7;(qH;pg&g#A1^CxfQW7E_E37(ES ztSZVAlsJ#y?9T6B$?eyV&wXzbH@(hodYHlcI)kXj_>qgx@=ANw0B8<%;GZZ&XV}E_O`L)oq zp9zQK)9Y)_9!~0L5phmg7!4HOC&wi(3RD_0gDY+7EqlxJ!oD*at{w_ak%U;@`?C1@ z^G)(^?*IRrz4dRx)N2RLYX3*4l;7z-vPQtbqfj)mWAzE6L?)o-`r>)&Qb1j;D-*UB z=x=&c0d(69ezUFi?bq*YKN!t3v2{n6&S3#gP^20-FA2^1|HSs<)ZJS*{g?CuJAkeC z%Odqyb(MtHMe(l77*FZie6HEhx##WlS3kJR^)k*JR5&USsqt&?i7OwU7p|KGj5pC` zO_58#{fT|@`&{TZ1IE>@t50ltEUBajjLffGPJ5Tm*I1Qa4a^4&p00i_>zopr0Oogi ALjV8( diff --git a/src/main/resources/assets/hbm/textures/models/weapons/fatman_balefire.png b/src/main/resources/assets/hbm/textures/models/weapons/fatman_balefire.png new file mode 100644 index 0000000000000000000000000000000000000000..21e850d08abd255661a213f0376cf9feca5750b3 GIT binary patch literal 900 zcmeAS@N?(olHy`uVBq!ia0vp^6+j%y!3HFo!W6846icy_X9x!n)NrJ9FfcG%d%8G= zRLprh*D(9GgUIpuU7BwNcBlqlo8_=z!NLons`DKqxm)X)c>jw0Vwt-uZ2rP4+2)gl z^jjyDX>Dm<&@xSEhhF8mpEZ+oe*0P3|F551V`a}?SNHy&r48Vjf;n7miRL|fBbgWT|Y9riKnl_+}+E* z_S=!yQ}sB+_*mSJ=w4j=en#irn~jMZtuya0IN8-vKmXj~Rk`gGNrYjLwTDp)v8 z+O3{D%VqaGft9DUF1p;h=iyw?G9xK=N1nh_*LC_G9jCHVWtx;*H}BxwEMji^*_Gws z#Y2&Aw642+H+pM&gYA2>I}r0vSf{tsU%a=rV9A`wvzH5A zE{49(6)N~woYLB8e9QE>X`iV@keKT}n{(YU`fEOmAFG`AxT{&OD#fY%A}}m~&V>Z5 zfQ}5RFHnWmPwl^3k?~m3kqzNbpo&Q*zR~kn%{l*k?cBKQzjs@F`4Rj6{?yK(tlSOj zUaxK1nY7d4PxY_5gTLw&0~P^;M{v=UTRUczG{(nvaztzGzgOm|;Kb(c8GGH@)3ot{ zhr#Bl-X`Anmc}@5D6qQzAohD_$9~D&nY+DrmT`T%deF4-$Kj*y;5SNf19k?`!#`K{*zz+tQNP|%bv5qY{lT|>gTe~ HDWM4f<9VMc literal 0 HcmV?d00001 From 17de40d7b2549d429f7a3196fda2b00506b2f159 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 9 May 2025 14:52:10 +0200 Subject: [PATCH 005/181] kill all zebras --- changelog | 1 + .../standard/BlockMutatorBalefire.java | 23 +++++ .../weapon/sedna/factory/GunFactory.java | 3 +- .../sedna/factory/GunFactoryClient.java | 1 + .../weapon/sedna/factory/LegoClient.java | 13 +++ .../sedna/factory/XFactoryCatapult.java | 33 ++++++- .../java/com/hbm/main/ResourceManager.java | 1 + .../item/weapon/sedna/ItemRenderFatMan.java | 74 +++++++++++++- .../hbm/render/util/RenderMiscEffects.java | 93 +++++++++--------- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../textures/items/ammo_standard.ct_hook.png | Bin 191 -> 239 bytes .../items/ammo_standard.ct_mortar.png | Bin 195 -> 314 bytes .../items/ammo_standard.ct_mortar_charge.png | Bin 0 -> 465 bytes .../items/ammo_standard.ct_rocket.png | Bin 178 -> 175 bytes .../items/ammo_standard.nuke_balefire.png | Bin 0 -> 562 bytes .../assets/hbm/textures/items/biomass_alt.png | Bin 525 -> 0 bytes .../assets/hbm/textures/items/gun_bf_ammo.png | Bin 549 -> 0 bytes .../hbm/textures/items/gun_cryolator_ammo.png | Bin 249 -> 0 bytes .../textures/models/weapons/benelli_tex.png | Bin 1499 -> 0 bytes .../models/weapons/fatman_balefire.png | Bin 900 -> 873 bytes .../hbm/textures/models/weapons/pch.png | Bin 333 -> 0 bytes 22 files changed, 194 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.ct_mortar_charge.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_balefire.png delete mode 100755 src/main/resources/assets/hbm/textures/items/biomass_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_bf_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_cryolator_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png delete mode 100644 src/main/resources/assets/hbm/textures/models/weapons/pch.png diff --git a/changelog b/changelog index 6c02bce7b..d62a70591 100644 --- a/changelog +++ b/changelog @@ -12,6 +12,7 @@ * This means that reading the fill state of multiple batteries over the same channel should result the combined fill state of all batteries * Halved base spread of the .22 SMG * Certain secret guns now have a proper way of being obtained +* Demolition mini nukes now create fire again ## Fixed * Fixed RoR controller having the wrong recipe \ No newline at end of file diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java new file mode 100644 index 000000000..4560852e0 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBalefire.java @@ -0,0 +1,23 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BlockMutatorBalefire implements IBlockMutator { + + @Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { } + + @Override + public void mutatePost(ExplosionVNT explosion, int x, int y, int z) { + + Block block = explosion.world.getBlock(x, y, z); + Block block1 = explosion.world.getBlock(x, y - 1, z); + if(block.getMaterial() == Material.air && block1.func_149730_j() && explosion.world.rand.nextInt(3) == 0) { + explosion.world.setBlock(x, y, z, ModBlocks.balefire); + } + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java index f12233377..98b4f09e8 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -101,6 +101,7 @@ public class GunFactory { R762_HE, BMG50_HE, G10_EXPLOSIVE, P45_SP, P45_FMJ, P45_JHP, P45_AP, P45_DU, CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, + NUKE_BALEFIRE, //ONLY ADD NEW ENTRIES AT THE BOTTOM TO AVOID SHIFTING! ; @@ -126,7 +127,7 @@ public class GunFactory { CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_IR, TAU_URANIUM, COIL_TUNGSTEN, COIL_FERROURANIUM, - NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, + NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE, NUKE_BALEFIRE, CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, }; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index e568369a9..4576cf7a0 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -203,6 +203,7 @@ public class GunFactoryClient { setRendererBulk(LegoClient.RENDER_NUKE, nuke_standard, nuke_demo, nuke_high); nuke_tots.setRenderer(LegoClient.RENDER_GRENADE); nuke_hive.setRenderer(LegoClient.RENDER_HIVE); + nuke_balefire.setRenderer(LegoClient.RENDER_NUKE_BALEFIRE); setRendererBulkBeam(LegoClient.RENDER_LIGHTNING, energy_tesla, energy_tesla_overcharge, energy_tesla_ir); setRendererBulkBeam(LegoClient.RENDER_LIGHTNING_SUB, energy_tesla_ir_sub); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index f3d2e68a5..ac476aa60 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -12,6 +12,7 @@ import com.hbm.items.weapon.sedna.hud.HUDComponentDurabilityBar; import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; +import com.hbm.render.item.weapon.sedna.ItemRenderFatMan; import com.hbm.render.tileentity.RenderArcFurnace; import com.hbm.render.util.BeamPronter; import com.hbm.render.util.BeamPronter.EnumBeamType; @@ -435,6 +436,18 @@ public class LegoClient { GL11.glPopMatrix(); }; + public static BiConsumer RENDER_NUKE_BALEFIRE = (bullet, interp) -> { + + GL11.glPushMatrix(); + GL11.glScalef(0.125F, 0.125F, 0.125F); + GL11.glRotated(-90, 0, 1, 0); + GL11.glTranslatef(0, -1, 1F); + GL11.glShadeModel(GL11.GL_SMOOTH); + ItemRenderFatMan.renderBalefire(interp); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + }; + public static BiConsumer RENDER_HIVE = (bullet, interp) -> { GL11.glPushMatrix(); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java index 0617d33b7..42d957506 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryCatapult.java @@ -8,6 +8,8 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorBalefire; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; @@ -44,6 +46,7 @@ public class XFactoryCatapult { public static BulletConfig nuke_high; public static BulletConfig nuke_tots; public static BulletConfig nuke_hive; + public static BulletConfig nuke_balefire; public static BiConsumer LAMBDA_NUKE_STANDARD = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; @@ -64,9 +67,9 @@ public class XFactoryCatapult { if(bullet.isDead) return; bullet.setDead(); - ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15); vnt.setBlockAllocator(new BlockAllocatorStandard(64)); - vnt.setBlockProcessor(new BlockProcessorStandard()); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorFire())); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.explode(); @@ -83,6 +86,27 @@ public class XFactoryCatapult { spawnMush(bullet, mop); }; + public static BiConsumer LAMBDA_NUKE_BALEFIRE = (bullet, mop) -> { + if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; + if(bullet.isDead) return; + bullet.setDead(); + + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10); + vnt.setBlockAllocator(new BlockAllocatorStandard(64)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBalefire())); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, bullet.damage).withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 1.5F); + + bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + data.setBoolean("balefire", true); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord), new TargetPoint(bullet.dimension, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 250)); + }; + public static void incrementRad(World world, double posX, double posY, double posZ, float mult) { for(int i = -2; i <= 2; i++) { for(int j = -2; j <= 2; j++) { if(Math.abs(i) + Math.abs(j) < 4) { @@ -136,12 +160,13 @@ public class XFactoryCatapult { nuke_high = new BulletConfig().setItem(EnumAmmo.NUKE_HIGH).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_HIGH); nuke_tots = new BulletConfig().setItem(EnumAmmo.NUKE_TOTS).setProjectiles(8).setLife(300).setVel(3F).setGrav(0.025F).setSpread(0.1F).setDamage(0.35F).setOnImpact(LAMBDA_NUKE_TINYTOT); nuke_hive = new BulletConfig().setItem(EnumAmmo.NUKE_HIVE).setProjectiles(12).setLife(300).setVel(1F).setGrav(0.025F).setSpread(0.15F).setDamage(0.25F).setOnImpact(LAMBDA_NUKE_HIVE); + nuke_balefire = new BulletConfig().setItem(EnumAmmo.NUKE_BALEFIRE).setDamage(2.5F).setLife(300).setVel(3F).setGrav(0.025F).setOnImpact(LAMBDA_NUKE_BALEFIRE); ModItems.gun_fatman = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(300).draw(20).inspect(30).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) + .dura(300).draw(20).inspect(30).reloadChangeType(true).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false) .rec(new Receiver(0) .dmg(100F).spreadHipfire(0F).delay(10).reload(57).jam(40).sound("hbm:weapon.fire.fatman", 1.0F, 1.0F) - .mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive)) + .mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive, nuke_balefire)) .offset(1, -0.0625 * 1.5, -0.1875D).offsetScoped(1, -0.0625 * 1.5, -0.125D) .setupStandardFire().recoil(LAMBDA_RECOIL_FATMAN)) .setupStandardConfiguration() diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 7fbac54ce..07de3e21c 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1011,6 +1011,7 @@ public class ResourceManager { public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png"); public static final ResourceLocation fatman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman.png"); public static final ResourceLocation fatman_mininuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman_mininuke.png"); + public static final ResourceLocation fatman_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/fatman_balefire.png"); public static final ResourceLocation lasrifle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle.png"); public static final ResourceLocation lasrifle_mods_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lasrifle_mods.png"); public static final ResourceLocation hangman_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hangman.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java index 100cb62e9..67ad4ba90 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderFatMan.java @@ -3,8 +3,10 @@ package com.hbm.render.item.weapon.sedna; import org.lwjgl.opengl.GL11; import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.factory.XFactoryCatapult; import com.hbm.main.ResourceManager; import com.hbm.render.anim.HbmAnimations; +import com.hbm.render.util.RenderMiscEffects; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -34,7 +36,7 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { @Override public void renderFirstPerson(ItemStack stack) { - + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_tex); double scale = 0.5D; @@ -81,10 +83,9 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { GL11.glPopMatrix(); if(isLoaded || nuke[0] != 0 || nuke[1] != 0 || nuke[2] != 0) { - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); GL11.glPushMatrix(); GL11.glTranslated(nuke[0], nuke[1], nuke[2]); - ResourceManager.fatman.renderPart("MiniNuke"); + renderNuke(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getType(stack, null)); GL11.glPopMatrix(); } @@ -132,8 +133,71 @@ public class ItemRenderFatMan extends ItemRenderWeaponBase { ResourceManager.fatman.renderPart("Lid"); if(!isLoaded) GL11.glTranslated(0, 0, 3); ResourceManager.fatman.renderPart("Piston"); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); - if(isLoaded) ResourceManager.fatman.renderPart("MiniNuke"); + if(isLoaded) renderNuke(gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getType(stack, null)); GL11.glShadeModel(GL11.GL_FLAT); } + + public void renderNuke(Object type) { + if(type == XFactoryCatapult.nuke_balefire) { + renderBalefire(interp); + } else { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.fatman_mininuke_tex); + ResourceManager.fatman.renderPart("MiniNuke"); + } + } + + public static void renderBalefire(float interp) { + + Minecraft mc = Minecraft.getMinecraft(); + mc.renderEngine.bindTexture(ResourceManager.fatman_balefire_tex); + ResourceManager.fatman.renderPart("MiniNuke"); + mc.renderEngine.bindTexture(RenderMiscEffects.glintBF); + mc.entityRenderer.disableLightmap(interp); + + float scale = 2F; + float r = 0F; + float g = 0.8F; + float b = 0.15F; + float speed = -6; + float glintColor = 0.76F; + int layers = 3; + + GL11.glPushMatrix(); + float offset = mc.thePlayer.ticksExisted + interp; + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + GL11.glDepthMask(false); + + for(int k = 0; k < layers; ++k) { + + GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + + float movement = offset * (0.001F + (float) k * 0.003F) * speed; + + GL11.glScalef(scale, scale, scale); + GL11.glRotatef(30.0F - k * 60.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0F, movement, 0F); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + ResourceManager.fatman.renderPart("MiniNuke"); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glDepthMask(true); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + + mc.entityRenderer.enableLightmap(interp); + } } diff --git a/src/main/java/com/hbm/render/util/RenderMiscEffects.java b/src/main/java/com/hbm/render/util/RenderMiscEffects.java index 037b7e45e..7e944e084 100644 --- a/src/main/java/com/hbm/render/util/RenderMiscEffects.java +++ b/src/main/java/com/hbm/render/util/RenderMiscEffects.java @@ -10,60 +10,61 @@ import net.minecraft.world.World; import net.minecraftforge.client.model.IModelCustom; public class RenderMiscEffects { - + public static ResourceLocation glint = new ResourceLocation(RefStrings.MODID + ":textures/misc/glint.png"); - + public static ResourceLocation glintBF = new ResourceLocation(RefStrings.MODID + ":textures/misc/glintBF.png"); + public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part, float colorMod, float r, float g, float b, float speed, float scale) { - GL11.glPushMatrix(); - float offset = Minecraft.getMinecraft().thePlayer.ticksExisted + interpol; - GL11.glEnable(GL11.GL_BLEND); - float color = colorMod; - GL11.glColor4f(color, color, color, 1.0F); - GL11.glDepthFunc(GL11.GL_EQUAL); - GL11.glDepthMask(false); + GL11.glPushMatrix(); + float offset = Minecraft.getMinecraft().thePlayer.ticksExisted + interpol; + GL11.glEnable(GL11.GL_BLEND); + float color = colorMod; + GL11.glColor4f(color, color, color, 1.0F); + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDepthMask(false); - for (int k = 0; k < 2; ++k) { - - GL11.glDisable(GL11.GL_LIGHTING); - - float glintColor = 0.76F; - - GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F); - GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glLoadIdentity(); - - float movement = offset * (0.001F + (float)k * 0.003F) * speed; - - GL11.glScalef(scale, scale, scale); - GL11.glRotatef(30.0F - (float)k * 60.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.0F, movement, 0.0F); - - GL11.glMatrixMode(GL11.GL_MODELVIEW); - - if("all".equals(part)) - model.renderAll(); - else - model.renderPart(part); - } + for(int k = 0; k < 2; ++k) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glDepthMask(true); - GL11.glLoadIdentity(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glPopMatrix(); - } + GL11.glDisable(GL11.GL_LIGHTING); + + float glintColor = 0.76F; + + GL11.glColor4f(r * glintColor, g * glintColor, b * glintColor, 1.0F); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + + float movement = offset * (0.001F + (float) k * 0.003F) * speed; + + GL11.glScalef(scale, scale, scale); + GL11.glRotatef(30.0F - (float) k * 60.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.0F, movement, 0.0F); + + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + if("all".equals(part)) + model.renderAll(); + else + model.renderPart(part); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glDepthMask(true); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glPopMatrix(); + } public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part, float r, float g, float b, float speed, float scale) { renderClassicGlint(world, interpol, model, part, 0.5F, r, g, b, speed, scale); - } + } public static void renderClassicGlint(World world, float interpol, IModelCustom model, String part) { - renderClassicGlint(world, interpol, model, part, 0.5F, 0.25F, 0.8F, 20.0F, 1F/3F); - } + renderClassicGlint(world, interpol, model, part, 0.5F, 0.25F, 0.8F, 20.0F, 1F / 3F); + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5643c75cb..5c4eb045f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1072,6 +1072,9 @@ item.ammo_standard.capacitor_ir.name=Capacitor (niedrige Wellenlänge) item.ammo_standard.capacitor_overcharge.name=Kondensator (Überladung) item.ammo_standard.coil_ferrouranium.name=Ferrourankugel item.ammo_standard.coil_tungsten.name=Wolframkugel +item.ammo_standard.ct_hook.name=Enterhaken +item.ammo_standard.ct_mortar.name=Sprengladung +item.ammo_standard.ct_mortar_charge.name=Geballte Ladung item.ammo_standard.flame_balefire.name=Flammenwerferbrennstoff, Balefire item.ammo_standard.flame_diesel.name=Flammenwerferbrennstoff, Diesel item.ammo_standard.flame_gas.name=Flammenwerferbrennstoff, Gas @@ -2071,6 +2074,7 @@ item.gun_b92.name=§9B92 Energiepistole§r item.gun_b92_ammo.name=§9B92-Energiezelle§r item.gun_bolter.name=Boltergewehr item.gun_carbine.name=Karabiner +item.gun_charge_thrower.name=Ladungswerfer item.gun_chemthrower.name=Chemowerfer item.gun_coilgun.name=Gaußpistole item.gun_cryocannon.name=Kyro-Kanone diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 725b7c61a..8128b5cfb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1797,6 +1797,9 @@ item.ammo_standard.capacitor_ir.name=Capacitor (Low Wavelength) item.ammo_standard.capacitor_overcharge.name=Capacitor (Overcharge) item.ammo_standard.coil_ferrouranium.name=Coilgun Ferrouranium Ball item.ammo_standard.coil_tungsten.name=Coilgun Tungsten Ball +item.ammo_standard.ct_hook.name=Grappling Hook +item.ammo_standard.ct_mortar.name=Demolition Charge +item.ammo_standard.ct_mortar_charge.name=Heavy Demolition Charge item.ammo_standard.flame_balefire.name=Flamer Fuel, Balefire item.ammo_standard.flame_diesel.name=Flamer Fuel, Diesel item.ammo_standard.flame_gas.name=Flamer Fuel, Gas @@ -2882,6 +2885,7 @@ item.gun_b92.name=§9B92 Energy Pistol§r item.gun_b92_ammo.name=§9B92 Energy Cell§r item.gun_bolter.name=Bolter item.gun_carbine.name=Carbine +item.gun_charge_thrower.name=Charge Thrower item.gun_chemthrower.name=Chemthrower item.gun_coilgun.name=Coilgun item.gun_congolake.name=Congo Lake diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_hook.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_hook.png index 3cd514abeaeff534a9dedaf49557269ff2554ddc..de59811d7857106f973fa8a773e1b90291646f04 100644 GIT binary patch delta 195 zcmV;!06hP{0q+5jG=HW^L_t(Ijm43%6~iD5M9-N-y=!_#(I^__MsZI~uTA78_&JV^ zahhDm6aOO#;NO{g#ZpQDK&=(3+Pw<^Fta$qEhOWc=tzcvvyhBY!N*)A!`%S@B7%9I zky5&!y}|plnFYxxrF6S_T@}o1a(C2Pu`J8w!<(SBzK@8&%sk-kP}TdL?7#6Kikx$t xNyZlRmWT*M1SB_ZSa2nIBj)5#-K(iO?q)fJ+rG z(OTkBn$um002ovPDHLkV1oAi BJUjpZ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_mortar.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_mortar.png index f123c98ed5fe0f8d52c58a008a4ec4a8996d6569..148c63268cc23dfd8a9ebd7642be98efe45d57b6 100644 GIT binary patch delta 271 zcmV+q0r39A0lET^G=K3)L_t(IjjfR}Y63wNhQHk-1PoU4iUl!6PN49bG#1`K7|0nc zasmr4F<_a_VjByEP6xW*y06VkU zC5X>B8V~)@L;Laf@B>Bv@=m;i#k};7yJpM!eGRQ+Cs!jJAd7jKJrACIzy7RH)o6?; zHH`E1@r{TeB3OI>O{n;sx#(%naM;EaWN<9mi~a;1c*Uy2Ao3vT_WND_JR0g VzZXKwpa1{>00>D%PDHLkV1hH6e>4C9 delta 151 zcmV;I0BHZZ0>c52G=F+YL_t(Ijir*y6~G_}1TmFuX_U5|nUi^_;bX#4*>O-sOabTs zx*SxqVY@-H?d=Z0JGBD2qHtxL>unLhW0gU+5da9u$s{!xO(dHQTa$Ezb>?9LAj;2o zu$qjps=5~GGug1JZvCat5O>-eUA0-AudsX=1Bh(W*$Q@&Y0eMI zNJiK$eF5-sS7Ug5gx&Rm)l%Rtxf}EHv+T@6-qCAvh9Yc5z0(K0e`> ze7074%-Vj*M>0Y&Ukt$^L6EEV@EL-SHusrYn8sW4tYEvwvKnE#YSSO@GsD`$Cz26( z24^A-z|Hj)-kN7N=}2WA{rdQ1uKiMbGjM;rkK>(V82kZ&5NsmEdWS+^6~Kj!J!@=o z)I7d9y+SD!ieUkyvW{uSdWWbF)G6kR*6iYp>0g{&A|i+gp65l5Nh<4TrIc=z!OzbC zD5bQBXr+{P-RLomr0JlceoLaOv{53WgE(FP5%|7u0UF>NR%WJs9}o5z00000NkvXX Hu0mjfCq&D( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_rocket.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.ct_rocket.png index 4c6ca590ae6120a14351682ed4dfa9d7180d5f91..a68e433f676844d9ef191826bf293ad3b5b463dd 100644 GIT binary patch delta 130 zcmV-|0Db?m0j~j&G<#-AL_t(Ijm^=)5x^h_1i;hED2>vtGxN(Z2_TqH_^HS0An=OV delta 133 zcmV;00DAwg0kQ#*G=6DGL_t(Ijjhqa4Zt7>1<;R^F&d+>nZ1<6w1Pm(i39&d0r;bs zd5XyFWXBBv06GX+vxY^4_TvH2MP5TyWIM1TstQ$gq2T~zVOwwsc!s0v9RGOQNovy( nlD@ZxqyY~p0ntm^$mhBM-AX$QShirh00000NkvXXu0mjfisU*H diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_balefire.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.nuke_balefire.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4f3649019d06e027ace5fdd3afc84306c641a6 GIT binary patch literal 562 zcmV-20?qx2P)`)QG!9~zfLH!#Xf+!u-iXwKfiN?glwuz0&OB0g!u2ZXl`~yAH<=%5H zhkGt;dnoOi@dp!9HfuDj4T>d`S9iX*@S@SEY}U^I2dC%v%0OQSXD4^!p%;gAQ?g;s z{X)#D&BDEm5{tzoolXOgNF)pJ9yi_}Pa8ow}6yVXlx$u95wd!Q=1~pFB+XLSsuDiA2PCa&AOU zO^wpeeiRgJZ0b~KD0K|2pRw^Ooju*G+A9pYLR2@Z==v^vJ|DSU4psALc>PY+WD$!x zRVh-EG$tmi-;ACX=C1DByg4{ex0iFUriU&2Rb0>*O+;-bpAB z9#5U0zw(PH!Mc35C8xG07*qoM6N<$f;;{J AUH||9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/biomass_alt.png b/src/main/resources/assets/hbm/textures/items/biomass_alt.png deleted file mode 100755 index 3e0eee5eb63ef896f9d3eec141c7807bcd4f7ca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)PTLF#MZz`bLc~EelO?55f`S(jh?f)k z0|f87^42@`PK>Ul=t6IziwYbeD`aHo$Y7g}o%Lg58`EQ_v$u<6xH|JrpS$<{em@V- z1MdsxA=fN|2*PS6od&8;Y{F;~xLqoRWYKcR-UwD^5RNVf9w*!}6`UckN?~a*xg-gD zGmN+SxvzM6pU)wsAvmBy1Ti)**D6_7c&po)92sOU_K8%sNJr;I{9QJ7VkPb$su&&_MSHeR_1ABP9^S*uX83ND@dpD$wQt1VW$R$z z@1cJ|5xsqVywpAtC|tmI$;Ic540|m)qy1rCzld_g;B^Pshz)mQ6OTP0R@bPh`Oa4iAT2&EY&dO9g?!DBDTzsAvlK-nbZS932#U8w#I1rL zh!h7Got(r?Hy1&77jeqqq7I4E6cH99YzfY^}GV*-h-QO7BI*ucExxP!TKRPd~jTN#}VJ=+She;Am+Oz{` z`d_#QQkWi!ViLRt+qQpyaP{GWJhgZd%dByb!w8aibgAwv^WyUg`>ia6RGQ6xg{O}{ zu>E`*Aq3@eSy7MQ&dCEu0}7@^iHjtdMI*{kc35|}_*!XD{keguB`8|6%%7VFpx5i+ zIF8iKaD;RwONK)zCj*I|H<@A(*Nm|U{RnVCg2Md!)0 zS3rCm;<($hcS^E1Xp@?ZvUKePLbV9#aUz6>X$4N-xI!dk5XgY=`yz&6>^-DoxAIa` nC7v%)RgImI$J;%I^dI0CxDmE=yipnl00000NkvXXu0mjfyT$U; diff --git a/src/main/resources/assets/hbm/textures/items/gun_cryolator_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_cryolator_ammo.png deleted file mode 100644 index 11a1af457af0d5518c1552da72659b1eb12502e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfwY1Q6G=C`*Q{_<^bln`_;m-PP+;St2@Qu71ok>@zZp_4*qz1v@*Dfj z1Cak4=wllNldy`G;b5b0tZ3mtbc{!N13kflHa*N z@$iJg9o*+SS46yT$k)7Eb4O}Jze*%u66(f|Me diff --git a/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png b/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png deleted file mode 100644 index 2381fab496721827d1231c85015bf1e0710656fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1499 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 CXNcwi delta 861 zcmaFK*1|r)q~6-o#WAE}&fB?$*|!};j?eGXd@Ha+HTc>rhXo53UI-QfE#o+yB3R zj{^k`_XrE_t^4T|U;o?l`u+Ng)7RTiI@W3H(b4fqDL(V|>P?4!G(7g~ZuUk63#UoD)pKXL?4BpE@|4y^ms|HdoC{iJB*pH?6L{*nPQRn$ zR931?lXC0k9h{p*%xyorvK+j4DDsWgb(il(Z%uEoeQ$OLV*Uy1^mf+!i}%(RESVE| z_EKcz+7s3JbMsfR2<%bU>AG{%#nAV;LIwYdQ(7C1ZWbFMo^f6Zs{ zW0mtBcQxx(r8t#e1cnCCy^ydK(2+s)2CA_7sr`2=G9D{BvVlBW5Ai8b$s`ls==rPW zoPWM{Zrt_XyDh%_h<$&5YG+VZ?uK=**Ea1;+UfA8`d8h-Uv-KBi+}+nxM<3)9kWUr z<6}EHqP6zlEAv!vVsrP5y>9Jk+W5f3VDnUO6YqOVW1Ke>SY3Y*`@OSczhv&r-QGLP zxV~LIXxjMW@KJYh*?K`cw4Ut{GsSyg7ri;0=Lw#`|#GR*5@j#;$j{M4Ch zO3y1|uV;Upa8NL*?3vCM-r~NySFPWxHGWKRTsB?j^p?3BpIO>H(+!)oY?iU4q>P~6 z&K~W_vB`hp`ljwsdwcosmD>LEGjFPuOaDlBnQUtGY}U)-ollB-g=9GwhE***#`ErX zhQ|wce?HxP`T>iS6|ac8a>&hm`O_q$W(_zURP3EC^6T7`BR`Ip$b2#0$ky+3`@c=r f?ERX+VE@T4e^!gz>t)Yb1|aZs^>bP0l+XkK{CJ$? diff --git a/src/main/resources/assets/hbm/textures/models/weapons/pch.png b/src/main/resources/assets/hbm/textures/models/weapons/pch.png deleted file mode 100644 index 97b11c5afac2cc8b1f66e55612d6c15ea8c1e816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333 zcmV-T0kZyyP)rv}t1rtU-g^K5GXns^yR{ZtYaHuu1H4N3xpNNAIWRMb=mADVpp*h|!N9A8 zM$C+76V_S~eG4Qah)DcBFwZl*_we5TS^}*#lv4Zbfj=-%RTY4rC1{%F0m3;406R!@ z1I!F&-Wvxa$L7acbOUu=pPrKEB) Date: Thu, 8 May 2025 19:31:55 +0200 Subject: [PATCH 006/181] Fixed id mismatch in steam turbine OpenComputers integration --- .../java/com/hbm/handler/CompatHandler.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java index 62fc432c0..46ce74fc0 100644 --- a/src/main/java/com/hbm/handler/CompatHandler.java +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -38,16 +38,15 @@ public class CompatHandler { * @return Object[] array containing an int with the "compression level" */ public static Object[] steamTypeToInt(FluidType type) { - switch(type.getID()) { - case(4): // Fluids.HOTSTEAM - return new Object[] {1}; - case(5): // Fluids.SUPERHOTSTEAM - return new Object[] {2}; - case(6): // Fluids.ULTRAHOTSTEAM - return new Object[] {3}; - default: - return new Object[] {0}; - } + final int typeId = type.getID(); + if(typeId == Fluids.HOTSTEAM.getID()) { + return new Object[]{1}; + } else if(typeId == Fluids.SUPERHOTSTEAM.getID()) { + return new Object[]{2}; + } else if(typeId == Fluids.ULTRAHOTSTEAM.getID()) { + return new Object[]{3}; + } + return new Object[] {0}; } /** From be2edd87d8539e21cc740f751feb87a925f4a637 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 8 May 2025 22:29:32 +0200 Subject: [PATCH 007/181] Fixed wrong tank type. getInfo returns input tank type and setType also works with input tank type --- .../tileentity/machine/TileEntityChungus.java | 4 +- .../TileEntityMachineLargeTurbine.java | 38 +++++++++---------- .../machine/TileEntityMachineTurbine.java | 2 +- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 9aa33070d..db9394516 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -139,7 +139,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr if(operational) turnTimer = 25; networkPackNT(150); - + } else { this.lastRotor = this.rotor; @@ -306,7 +306,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { - return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } @Callback(direct = true, limit = 4) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 060710858..dc238dce9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -49,7 +49,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public long power; public FluidTank[] tanks; protected double[] info = new double[3]; - + private boolean shouldTurn; public float rotor; public float lastRotor; @@ -57,7 +57,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme private AudioWrapper audio; private float audioDesync; - + //Configurable Values public static long maxPower = 100000000; public static int inputTankSize = 512_000; @@ -67,7 +67,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public TileEntityMachineLargeTurbine() { super(7); - + tanks = new FluidTank[2]; tanks[0] = new FluidTank(Fluids.STEAM, inputTankSize); tanks[1] = new FluidTank(Fluids.SPENTSTEAM, outputTankSize); @@ -107,11 +107,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + this.info = new double[3]; - + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); this.tryProvide(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -144,7 +144,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } if(!valid) tanks[1].setTankType(Fluids.NONE); if(power > maxPower) power = maxPower; - + tanks[1].unloadTank(5, 6, slots); this.networkPackNT(50); @@ -152,12 +152,12 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } else { this.lastRotor = this.rotor; this.rotor += this.fanAcceleration; - + if(this.rotor >= 360) { this.rotor -= 360; this.lastRotor -= 360; } - + if(shouldTurn) { // Fan accelerates with a random offset to ensure the audio doesn't perfectly align, makes for a more pleasant hum this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.075F + audioDesync)); @@ -172,7 +172,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme audio.updatePitch(0.25F + 0.75F * turbineSpeed); } else { this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration -= 0.1F)); - + if(audio != null) { if(this.fanAcceleration > 0) { float turbineSpeed = this.fanAcceleration / 15F; @@ -186,7 +186,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } } } - + protected DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -214,11 +214,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks[0].deserialize(buf); tanks[1].deserialize(buf); } - + public long getPowerScaled(int i) { return (power * i) / maxPower; } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -226,7 +226,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks[1].readFromNBT(nbt, "steam"); power = nbt.getLong("power"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -249,12 +249,12 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public long getMaxPower() { return this.maxPower; } - + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { @@ -281,11 +281,11 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme public String getComponentName() { return "ntm_turbine"; } - + @Override public void onChunkUnload() { super.onChunkUnload(); - + if(audio != null) { audio.stopSound(); audio = null; @@ -311,7 +311,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { - return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } @Callback(direct = true, limit = 4) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 88f1c3694..0b89eb6d9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -364,7 +364,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { - return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } @Callback(direct = true, limit = 4) From 15fb0c1ad7e9c7ca441b457e11429a526ea11518 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 8 May 2025 22:43:49 +0200 Subject: [PATCH 008/181] Improved steam turbine OpenComputers integration + documented --- .../tileentity/machine/TileEntityChungus.java | 19 ++++++++++++++----- .../TileEntityMachineLargeTurbine.java | 17 ++++++++++++----- .../machine/TileEntityMachineTurbine.java | 16 +++++++++++----- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index db9394516..16121b0cb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -297,29 +297,35 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr } } - @Callback(direct = true) + @Callback(direct = true, doc = "function():table -- Gets current tanks state. The format is the following: , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the current input tank fluid type. 0 stands for steam, 1 for dense steam, 2 for super dense steam and 3 for ultra dense steam.") @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 4, doc = "function(type:number) -- Sets the input tank fluid type. Refer getType() for the accepted values information.") @Optional.Method(modid = "OpenComputers") public Object[] setType(Context context, Arguments args) { tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); return new Object[] {}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.") + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: , , , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power}; } @Override @@ -329,6 +335,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr "getFluid", "getType", "setType", + "getPower", "getInfo" }; } @@ -343,6 +350,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr return getType(context, args); case ("setType"): return setType(context, args); + case ("getPower"): + return getPower(context, args); case ("getInfo"): return getInfo(context, args); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index dc238dce9..a4655c162 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -302,29 +302,35 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } } - @Callback(direct = true) + @Callback(direct = true, doc = "function():table -- Gets current tanks state. The format is the following: , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the current input tank fluid type. 0 stands for steam, 1 for dense steam, 2 for super dense steam and 3 for ultra dense steam.") @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 4, doc = "function(type:number) -- Sets the input tank fluid type. Refer getType() for the accepted values information.") @Optional.Method(modid = "OpenComputers") public Object[] setType(Context context, Arguments args) { tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); return new Object[] {}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.") + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: , , , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power}; } @Override @@ -334,6 +340,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme "getFluid", "getType", "setType", + "getPower", "getInfo" }; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 0b89eb6d9..3180fbefa 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -355,29 +355,35 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS return "ntm_turbine"; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():table -- Gets current tanks state. The format is the following: , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the current input tank fluid type. 0 stands for steam, 1 for dense steam, 2 for super dense steam and 3 for ultra dense steam.") @Optional.Method(modid = "OpenComputers") public Object[] getType(Context context, Arguments args) { return CompatHandler.steamTypeToInt(tanks[0].getTankType()); } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 4, doc = "function(type:number) -- Sets the input tank fluid type. Refer getType() for the accepted values information.") @Optional.Method(modid = "OpenComputers") public Object[] setType(Context context, Arguments args) { tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); return new Object[] {true}; } - @Callback(direct = true) + @Callback(direct = true, doc = "function():number -- Gets the power buffer of the turbine.") + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true, doc = "function():table -- Gets information about this turbine. The format is the following: , , , , , ") @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())[0], power}; } @Override From 805ee3a9980e89c2d06f9d1ae6d7ade641f3a2f9 Mon Sep 17 00:00:00 2001 From: Night Heron Date: Fri, 9 May 2025 23:30:40 +0800 Subject: [PATCH 009/181] cumming --- src/main/resources/assets/hbm/lang/zh_CN.lang | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 51e23d9ab..5d8f62943 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -6048,3 +6048,15 @@ container.ammoBag=å¼¹è¯è¢‹ item.ammo_bag.name=å¼¹è¯è¢‹ item.ammo_bag_infinite.name=æ— é™å¼¹è¯è¢‹ item.gun_g3_zebra.name=斑马步枪 +container.rttyController=æ— çº¿çº¢çŸ³ä¿¡å·æŽ§åˆ¶å™¨ +container.rttyReader=æ— çº¿çº¢çŸ³ä¿¡å·æŽ§åˆ¶å™¨ +tile.radio_torch_controller.name=æ— çº¿çº¢çŸ³ä¿¡å·æŽ§åˆ¶å™¨ +tile.radio_torch_controller.desc=å¯ä»¥æŽ¥æ”¶ä¿¡å·å¹¶å°†ä¿¡å·ä¼ é€åˆ°ä¸Žå…¶è¿žæŽ¥çš„æœºå™¨ +tile.radio_torch_reader.name=æ— çº¿çº¢çŸ³ä¿¡å·æŽ§åˆ¶å™¨ +tile.radio_torch_reader.desc=从被连接的å—è¯»å–æ•°å€¼å¹¶ä»¥æŒ‡å®šçš„频率å‘é€ +item.ammo_standard.ct_hook.name=抓钩 +item.ammo_standard.ct_mortar.name=炸è¯åŒ… +item.ammo_standard.ct_mortar_charge.name=é‡åž‹ç‚¸è¯åŒ… +item.gun_charge_thrower.name=ç‚¸è¯æŠ•æŽ·å™¨ +tile.sandbags.name=沙袋 +tile.wood_barrier.name=æœ¨åˆ¶å›´æ  From f3a9c0f787740bb4e13245480cc07a4757431861 Mon Sep 17 00:00:00 2001 From: LegendaryDoge30 Date: Sat, 10 May 2025 00:12:33 +0200 Subject: [PATCH 010/181] puter --- src/main/java/com/hbm/blocks/ModBlocks.java | 16 +- .../assets/hbm/models/blocks/puter.obj | 1070 +++++------------ .../hbm/textures/blocks/deco_computer.png | Bin 1832 -> 671 bytes 3 files changed, 294 insertions(+), 792 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index d1c604bed..41cbe0f7f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -335,7 +335,7 @@ public class ModBlocks { public static Block brick_compound; public static Block brick_asbestos; public static Block brick_fire; - + public static Block lightstone; public static Block concrete_slab; @@ -824,7 +824,7 @@ public class ModBlocks { public static Block drone_dock; public static Block drone_crate_provider; public static Block drone_crate_requester; - + public static Block pneumatic_tube; public static Block fan; @@ -1479,7 +1479,7 @@ public class ModBlocks { gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond"); asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); - + sandbags = new BlockSandbags(Material.ground).setBlockName("sandbags").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":sandbags"); wood_barrier = new BlockBarrier(Material.wood).setStepSound(Block.soundTypeWood).setBlockName("wood_barrier").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":wood_barrier"); @@ -1549,7 +1549,7 @@ public class ModBlocks { brick_double_slab = new BlockMultiSlab(brick_slab, Material.rock, reinforced_stone, reinforced_brick, brick_obsidian, brick_light, brick_compound, brick_asbestos, brick_fire).setBlockName("brick_double_slab").setCreativeTab(MainRegistry.blockTab); stones_slab = new BlockMultiSlabMeta(null, Material.rock, new Block[] { lightstone, lightstone }, LightstoneType.TILE.ordinal(), LightstoneType.BRICKS.ordinal()).setBlockName("stones_slab").setCreativeTab(MainRegistry.blockTab); stones_double_slab = new BlockMultiSlabMeta(stones_slab, Material.rock, new Block[] { lightstone, lightstone }, LightstoneType.TILE.ordinal(), LightstoneType.BRICKS.ordinal()).setBlockName("stones_double_slab").setCreativeTab(MainRegistry.blockTab); - + concrete_smooth_stairs = new BlockGenericStairs(concrete_smooth, 0).setBlockName("concrete_smooth_stairs").setCreativeTab(MainRegistry.blockTab); concrete_stairs = new BlockGenericStairs(concrete, 0).setBlockName("concrete_stairs").setCreativeTab(MainRegistry.blockTab); concrete_asbestos_stairs = new BlockGenericStairs(concrete_asbestos, 0).setBlockName("concrete_asbestos_stairs").setCreativeTab(MainRegistry.blockTab); @@ -1604,7 +1604,7 @@ public class ModBlocks { brick_red = new BlockRedBrick(Material.rock).setBlockName("brick_red").setResistance(10_000); - deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.160749F, 0F, 0F, .839251F, .867849F, .622184F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer"); + deco_computer = new BlockDecoModel(Material.iron, DecoComputerEnum.class, true, false).setBlockBoundsTo(.125F, 0F, 0F, .875F, .875F, .625F).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer"); deco_crt = new BlockDecoCRT(Material.iron).setBlockName("deco_crt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); deco_toaster = new BlockDecoToaster(Material.iron).setBlockName("deco_toaster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); filing_cabinet = new BlockDecoContainer(Material.iron, DecoCabinetEnum.class, true, false, TileEntityFileCabinet.class).setBlockBoundsTo(.1875F, 0F, 0F, .8125F, 1F, .75F).setBlockName("filing_cabinet").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -1955,7 +1955,7 @@ public class ModBlocks { drone_dock = new DroneDock().setBlockName("drone_dock").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_dock"); drone_crate_provider = new DroneDock().setBlockName("drone_crate_provider").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_provider"); drone_crate_requester = new DroneDock().setBlockName("drone_crate_requester").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_requester"); - + pneumatic_tube = new PneumoTube().setBlockName("pneumatic_tube").setStepSound(ModSoundTypes.pipe).setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_tube"); chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); @@ -2698,14 +2698,14 @@ public class ModBlocks { GameRegistry.registerBlock(brick_light, ItemBlockBlastInfo.class, brick_light.getUnlocalizedName()); GameRegistry.registerBlock(brick_asbestos, brick_asbestos.getUnlocalizedName()); GameRegistry.registerBlock(brick_fire, ItemBlockBlastInfo.class, brick_fire.getUnlocalizedName()); - + //Lightstone and its stair/slab variants register(lightstone); register(lightstone_tile_stairs); register(lightstone_bricks_stairs); register(stones_slab, ItemModSlab.class); register(stones_double_slab, ItemModSlab.class); - + GameRegistry.registerBlock(concrete_slab, ItemModSlab.class, concrete_slab.getUnlocalizedName()); GameRegistry.registerBlock(concrete_double_slab, ItemModSlab.class, concrete_double_slab.getUnlocalizedName()); GameRegistry.registerBlock(concrete_brick_slab, ItemModSlab.class, concrete_brick_slab.getUnlocalizedName()); diff --git a/src/main/resources/assets/hbm/models/blocks/puter.obj b/src/main/resources/assets/hbm/models/blocks/puter.obj index c8d5fc5a2..1b7c78f85 100644 --- a/src/main/resources/assets/hbm/models/blocks/puter.obj +++ b/src/main/resources/assets/hbm/models/blocks/puter.obj @@ -1,786 +1,288 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender 4.0.2 # www.blender.org -o Cube.002 -v -0.182506 -0.356313 -0.499021 -v -0.202175 -0.376577 -0.479353 -v -0.202175 -0.356313 -0.479353 -v 0.202175 -0.376577 -0.479353 -v 0.182506 -0.356313 -0.499021 -v 0.202175 -0.356313 -0.479353 -v 0.182506 -0.356313 0.025979 -v -0.182506 -0.376577 0.025979 -v 0.182506 -0.376577 0.025979 -v 0.168634 -0.353125 -0.007583 -v 0.168634 -0.353125 -0.465459 -v -0.168634 -0.353125 -0.007583 -v 0.202175 -0.356313 0.006310 -v -0.202175 -0.356313 0.006310 -v -0.202175 -0.376577 0.006310 -v -0.182475 -0.376637 -0.499021 -v 0.182509 -0.376637 -0.499021 -v 0.202175 -0.376577 0.006310 -v -0.168634 -0.353125 -0.465459 -v -0.182506 -0.356313 0.025979 -v 0.236819 -0.376637 0.112318 -v -0.236819 -0.391892 0.112318 -v 0.236819 -0.391892 0.112318 -v 0.262500 -0.500000 -0.434422 -v 0.262500 -0.500000 -0.000000 -v -0.262500 -0.500000 -0.434422 -v 0.243379 -0.500000 0.123162 -v 0.269772 -0.391892 0.010843 -v 0.243379 -0.391892 0.123162 -v 0.262500 -0.391892 -0.000000 -v -0.236819 -0.376637 0.112318 -v -0.262500 -0.391892 -0.000000 -v -0.262500 -0.500000 -0.000000 -v -0.269772 -0.391892 0.010843 -v 0.242168 -0.500000 -0.499021 -v -0.242168 -0.500000 -0.499021 -v -0.262500 -0.376637 -0.434422 -v -0.242168 -0.376637 -0.499021 -v 0.242168 -0.376637 -0.499021 -v 0.262500 -0.376637 -0.434422 -v 0.236819 -0.500000 0.112318 -v 0.269772 -0.500000 0.010843 -v -0.243379 -0.500000 0.123162 -v -0.236819 -0.500000 0.112318 -v 0.262500 -0.376637 -0.000000 -v -0.243379 -0.391892 0.123162 -v -0.269772 -0.500000 0.010843 -v -0.262500 -0.376637 -0.000000 -vt 0.737500 0.775000 -vt 0.750000 0.787500 -vt 0.737500 0.787500 -vt 0.975000 0.787500 -vt 0.962500 0.775000 -vt 0.975000 0.775000 -vt 0.962500 0.725000 -vt 0.750000 0.712500 -vt 0.962500 0.712500 -vt 0.962500 0.062500 -vt 0.962500 0.350000 -vt 0.750000 0.062500 -vt 0.975000 0.725000 -vt 0.937500 0.400000 -vt 0.925000 0.712500 -vt 0.925000 0.400000 -vt 0.737500 0.787500 -vt 0.962500 0.787500 -vt 0.962500 0.712500 -vt 0.975000 0.400000 -vt 0.975000 0.712500 -vt 0.950000 0.700000 -vt 0.950000 0.412500 -vt 0.750000 0.750000 -vt 0.962500 0.750000 -vt 0.950000 0.412500 -vt 0.962500 0.400000 -vt 0.750000 0.775000 -vt 0.962500 0.750000 -vt 0.750000 0.725000 -vt 0.737500 0.712500 -vt 0.650000 0.075000 -vt 0.362500 0.062500 -vt 0.650000 0.062500 -vt 0.575000 0.475000 -vt 0.700000 0.475000 -vt 0.575000 0.662500 -vt 0.350000 0.162500 -vt 0.412500 0.225000 -vt 0.350000 0.225000 -vt 0.425000 0.225000 -vt 0.425000 0.162500 -vt 0.687500 0.162500 -vt 0.350000 0.150000 -vt 0.425000 0.137500 -vt 0.350000 0.137500 -vt 0.425000 0.075000 -vt 0.412500 0.137500 -vt 0.725000 0.000000 -vt 0.937500 0.000000 -vt 0.975000 0.062500 -vt 0.725000 0.075000 -vt 0.687500 0.150000 -vt 0.725000 0.150000 -vt 0.725000 0.237500 -vt 0.687500 0.237500 -vt 0.750000 0.487500 -vt 0.712500 0.475000 -vt 0.762500 0.487500 -vt 0.537500 0.150000 -vt 0.350000 0.162500 -vt 0.350000 0.150000 -vt 0.762500 0.650000 -vt 0.750000 0.650000 -vt 0.350000 0.225000 -vt 0.425000 0.237500 -vt 0.350000 0.237500 -vt 0.587500 0.162500 -vt 0.537500 0.162500 -vt 0.350000 0.137500 -vt 0.412500 0.075000 -vt 0.350000 0.075000 -vt 0.412500 0.162500 -vt 0.687500 0.075000 -vt 0.587500 0.162500 -vt 0.637500 0.150000 -vt 0.637500 0.162500 -vt 0.712500 0.662500 -vt 0.700000 0.662500 -vt 0.350000 0.062500 -vt 0.662500 0.000000 -vt 0.662500 0.062500 -vt 0.912500 0.412500 -vt 0.862500 0.687500 -vt 0.862500 0.375000 -vt 0.750000 0.775000 -vt 0.750000 0.350000 -vt 0.975000 0.712500 -vt 0.937500 0.712500 -vt 0.737500 0.725000 -vt 0.750000 0.750000 -vt 0.737500 0.775000 -vt 0.950000 0.700000 -vt 0.362500 0.075000 -vt 0.537500 0.650000 -vt 0.537500 0.487500 -vt 0.425000 0.150000 -vt 0.975000 0.000000 -vt 0.662500 0.062500 -vt 0.662500 0.000000 -vt 0.725000 0.162500 -vt 0.587500 0.150000 -vt 0.587500 0.150000 -vt 0.350000 0.000000 -vt 0.862500 0.687500 -vt 0.875000 0.700000 -vt 0.825000 0.700000 -vt 0.812500 0.650000 -vt 0.812500 0.350000 -vt 0.862500 0.375000 -vt 0.925000 0.350000 -vt 0.925000 0.400000 -vt 0.812500 0.350000 -vt 0.812500 0.650000 -vt 0.762500 0.375000 -vt 0.800000 0.700000 -vt 0.762500 0.687500 -vt 0.750000 0.700000 -vt 0.925000 0.712500 -vt 0.925000 0.662500 -vt 0.912500 0.650000 -vn -0.7071 0.0000 -0.7071 -vn 0.7071 0.0000 -0.7071 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.7071 -0.0000 0.7071 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn -0.0946 0.9955 0.0000 -vn 0.0000 0.9955 0.0946 -vn 0.0946 0.9955 0.0000 -vn 0.0000 0.9955 -0.0946 -vn -0.7071 -0.0000 0.7071 -vn 0.0000 -1.0000 -0.0000 -vn 0.9735 0.0000 0.2288 -vn -0.9748 0.0000 0.2229 -vn -0.8305 0.0000 -0.5570 -vn -0.9539 0.0000 -0.3002 -vn 0.9539 0.0000 -0.3002 -vn 0.9748 0.0000 0.2229 -vn -0.9735 0.0000 0.2288 -vn 0.8305 0.0000 -0.5570 -vn 0.0000 1.0000 0.0007 -vn -0.7065 -0.0011 -0.7077 -vn 0.7071 0.0001 -0.7071 -vn -0.0669 0.9955 0.0669 -vn -0.0669 0.9955 -0.0669 -vn 0.0669 0.9955 -0.0669 -vn 0.0669 0.9955 0.0669 -vn 0.0000 1.0000 -0.0031 -vn -0.0013 1.0000 -0.0004 -vn -0.0010 1.0000 0.0000 -vn 0.0010 1.0000 0.0002 -vn 0.0010 1.0000 0.0000 -vn 0.0013 1.0000 -0.0004 -vn -0.0010 1.0000 0.0002 -vn -0.0004 1.0000 0.0004 -vn 0.0004 1.0000 0.0004 -s off -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 8/8/3 9/9/3 -f 10/10/4 11/11/4 12/12/4 -f 9/9/5 13/13/5 7/7/5 -f 14/14/6 2/15/6 15/16/6 -f 16/17/7 5/5/7 17/18/7 -f 6/19/8 18/20/8 4/21/8 -f 19/22/9 14/14/9 12/23/9 -f 12/24/10 7/7/10 10/25/10 -f 6/19/11 10/26/11 13/27/11 -f 1/28/12 11/29/12 5/5/12 -f 20/30/13 15/31/13 8/8/13 -f 21/32/3 22/33/3 23/34/3 -f 24/35/14 25/36/14 26/37/14 -f 27/38/15 28/39/15 29/40/15 -f 30/41/8 25/42/8 24/43/8 -f 31/44/16 32/45/16 22/46/16 -f 33/47/17 34/48/17 32/45/17 -f 16/49/7 17/50/7 35/51/7 -f 36/52/18 37/53/18 38/54/18 -f 24/43/19 39/55/19 40/56/19 -f 41/57/14 42/58/14 27/59/14 -f 22/60/4 29/61/4 23/62/4 -f 41/57/14 43/63/14 44/64/14 -f 23/65/20 45/66/20 21/67/20 -f 22/60/4 34/68/4 46/69/4 -f 46/70/21 47/71/21 43/72/21 -f 30/41/22 42/73/22 25/42/22 -f 26/74/6 32/45/6 37/53/6 -f 23/75/4 28/76/4 30/77/4 -f 44/64/14 47/78/14 33/79/14 -f 46/80/3 27/81/3 29/82/3 -f 9/83/23 31/84/23 21/85/23 -f 1/1/24 16/86/24 2/2/24 -f 4/4/25 17/18/25 5/5/25 -f 7/7/3 20/30/3 8/8/3 -f 19/87/4 12/12/4 11/11/4 -f 9/9/5 18/88/5 13/13/5 -f 14/14/6 3/89/6 2/15/6 -f 16/17/7 1/1/7 5/5/7 -f 6/19/8 13/27/8 18/20/8 -f 12/24/26 14/90/26 20/30/26 -f 19/91/27 1/28/27 3/92/27 -f 11/29/28 6/6/28 5/5/28 -f 10/25/29 7/7/29 13/13/29 -f 19/22/9 3/89/9 14/14/9 -f 12/24/10 20/30/10 7/7/10 -f 6/19/11 11/93/11 10/26/11 -f 1/28/12 19/91/12 11/29/12 -f 20/30/13 14/90/13 15/31/13 -f 21/32/3 31/94/3 22/33/3 -f 25/36/14 41/57/14 44/64/14 -f 44/64/14 33/79/14 25/36/14 -f 33/79/14 26/37/14 25/36/14 -f 26/37/14 36/95/14 35/96/14 -f 35/96/14 24/35/14 26/37/14 -f 27/38/15 42/73/15 28/39/15 -f 24/43/8 40/56/8 30/41/8 -f 40/56/8 45/66/8 30/41/8 -f 31/44/16 48/97/16 32/45/16 -f 33/47/17 47/71/17 34/48/17 -f 17/50/7 39/98/7 35/51/7 -f 35/51/7 36/99/7 16/49/7 -f 36/99/7 38/100/7 16/49/7 -f 36/52/18 26/74/18 37/53/18 -f 24/43/19 35/101/19 39/55/19 -f 41/57/14 25/36/14 42/58/14 -f 22/60/4 46/69/4 29/61/4 -f 41/57/14 27/59/14 43/63/14 -f 23/65/20 30/41/20 45/66/20 -f 22/60/4 32/102/4 34/68/4 -f 46/70/21 34/48/21 47/71/21 -f 30/41/22 28/39/22 42/73/22 -f 33/47/6 32/45/6 26/74/6 -f 32/45/6 48/97/6 37/53/6 -f 23/75/4 29/103/4 28/76/4 -f 44/64/14 43/63/14 47/78/14 -f 46/80/3 43/104/3 27/81/3 -f 2/105/30 16/106/30 38/107/30 -f 38/107/31 37/108/31 2/105/31 -f 37/108/32 48/109/32 15/110/32 -f 21/85/33 45/111/33 18/112/33 -f 45/113/34 40/114/34 18/115/34 -f 40/114/35 39/116/35 4/117/35 -f 39/116/30 17/118/30 4/117/30 -f 37/108/32 15/110/32 2/105/32 -f 48/119/36 31/84/36 15/120/36 -f 40/114/34 4/117/34 18/115/34 -f 8/121/37 15/120/37 31/84/37 -f 21/85/38 18/112/38 9/83/38 -f 9/83/23 8/121/23 31/84/23 -o Cube.001 -v 0.065019 -0.337090 -0.339524 -v 0.077958 -0.358688 -0.229123 -v 0.077958 -0.358688 -0.352438 -v -0.065019 -0.247914 -0.242045 -v -0.065019 -0.337090 -0.339524 -v -0.065019 -0.337090 -0.242037 -v -0.065019 -0.247914 -0.339516 -v -0.074076 -0.234429 -0.233013 -v -0.074076 -0.234429 -0.348548 -v 0.048744 -0.337090 -0.225761 -v -0.061658 -0.358688 -0.212822 -v 0.061658 -0.358688 -0.212822 -v -0.048744 -0.337090 -0.355799 -v 0.061658 -0.358688 -0.368738 -v -0.061658 -0.358688 -0.368738 -v -0.048736 -0.247914 -0.355799 -v 0.048744 -0.337090 -0.355799 -v 0.065019 -0.247914 -0.339516 -v 0.065019 -0.337090 -0.242037 -v 0.048736 -0.247914 -0.225761 -v -0.048744 -0.337090 -0.225761 -v -0.077958 -0.358688 -0.352438 -v 0.057767 -0.234429 -0.364857 -v 0.048736 -0.247914 -0.355799 -v 0.065019 -0.247914 -0.242045 -v 0.074076 -0.234429 -0.348548 -v 0.074076 -0.234429 -0.233013 -v -0.057767 -0.234429 -0.216704 -v -0.048736 -0.247914 -0.225761 -v -0.057767 -0.234429 -0.364857 -v 0.057767 -0.234429 -0.216704 -v -0.077958 -0.358688 -0.229123 -v -0.228515 -0.193409 -0.478319 -v -0.262500 -0.200363 -0.133796 -v -0.262500 -0.159424 -0.478319 -v -0.228515 0.290571 -0.478319 -v -0.262500 0.256505 -0.133796 -v -0.228434 0.290571 -0.133796 -v 0.262500 -0.234429 0.025979 -v 0.228515 -0.193409 -0.478319 -v 0.262500 -0.200363 -0.133796 -v 0.228434 -0.234429 -0.133796 -v 0.262500 -0.159424 -0.478319 -v 0.262500 0.256505 -0.133796 -v -0.262500 -0.234429 0.025979 -v -0.305185 -0.311180 -0.084290 -v -0.228434 -0.234429 -0.133796 -v 0.305185 0.367322 -0.084290 -v 0.228434 0.290571 -0.133796 -v 0.305271 0.367322 0.092896 -v 0.262500 0.290571 0.092896 -v 0.305271 -0.311180 0.092896 -v 0.305185 -0.311180 -0.084290 -v 0.339251 -0.277114 -0.084290 -v -0.305271 0.367322 0.092896 -v -0.305185 0.367322 -0.084290 -v -0.339251 0.333256 -0.084290 -v 0.262500 -0.234429 0.092896 -v -0.339251 0.333342 0.092896 -v -0.339251 -0.277200 0.092896 -v -0.262500 -0.234429 0.092896 -v 0.339251 -0.277200 0.092896 -v 0.339251 0.333342 0.092896 -v -0.339251 -0.277114 -0.084290 -v -0.305271 -0.311180 0.092896 -v 0.339251 0.333256 -0.084290 -v 0.228515 0.290571 -0.478319 -v 0.262500 0.256586 -0.478319 -v -0.241798 0.248016 -0.499021 -v -0.219945 0.269868 -0.499021 -v 0.241798 -0.150854 -0.499021 -v 0.219945 -0.172706 -0.499021 -v 0.241798 0.248016 -0.499021 -v -0.241798 -0.150854 -0.499021 -v -0.262500 0.256586 -0.478319 -v -0.219945 -0.172706 -0.499021 -v -0.262500 0.290571 0.025979 -v -0.262500 0.290571 0.092896 -v 0.262500 0.290571 0.025979 -v 0.219945 0.269868 -0.499021 -vt 0.325000 0.725000 -vt 0.375000 0.737500 -vt 0.325000 0.737500 -vt 0.450000 0.675000 -vt 0.500000 0.725000 -vt 0.450000 0.725000 -vt 0.500000 0.675000 -vt 0.450000 0.662500 -vt 0.500000 0.662500 -vt 0.387500 0.725000 -vt 0.437500 0.737500 -vt 0.387500 0.737500 -vt 0.512500 0.725000 -vt 0.562500 0.737500 -vt 0.512500 0.737500 -vt 0.512500 0.675000 -vt 0.562500 0.725000 -vt 0.325000 0.675000 -vt 0.375000 0.725000 -vt 0.387500 0.675000 -vt 0.437500 0.725000 -vt 0.325000 0.787500 -vt 0.375000 0.800000 -vt 0.387500 0.750000 -vt 0.562500 0.662500 -vt 0.562500 0.675000 -vt 0.375000 0.675000 -vt 0.325000 0.662500 -vt 0.375000 0.662500 -vt 0.437500 0.662500 -vt 0.437500 0.675000 -vt 0.512500 0.737500 -vt 0.575000 0.737500 -vt 0.575000 0.725000 -vt 0.512500 0.662500 -vt 0.575000 0.675000 -vt 0.575000 0.662500 -vt 0.387500 0.662500 -vt 0.450000 0.737500 -vt 0.375000 0.737500 -vt 0.337500 0.737500 -vt 0.325000 0.750000 -vt 0.337500 0.800000 -vt 0.387500 0.787500 -vt 0.387500 0.262500 -vt 0.375000 0.375000 -vt 0.375000 0.262500 -vt 0.187500 0.262500 -vt 0.200000 0.375000 -vt 0.187500 0.375000 -vt 0.062500 0.737500 -vt 0.262500 0.537500 -vt 0.262500 0.737500 -vt 0.562500 0.262500 -vt 0.575000 0.375000 -vt 0.562500 0.375000 -vt 0.600000 0.262500 -vt 0.750000 0.375000 -vt 0.387500 0.412500 -vt 0.387500 0.375000 -vt 0.012500 0.412500 -vt 0.012500 0.375000 -vt 0.012500 0.800000 -vt -0.000000 0.787500 -vt 0.037500 0.762500 -vt 0.562500 0.475000 -vt 0.562500 0.412500 -vt 0.575000 0.412500 -vt 0.187500 0.475000 -vt 0.187500 0.412500 -vt 0.200000 0.412500 -vt 0.750000 0.475000 -vt 0.575000 0.475000 -vt 0.200000 0.475000 -vt 0.375000 0.412500 -vt 0.375000 0.475000 -vt -0.000000 0.487500 -vt 0.012500 0.475000 -vt 0.037500 0.512500 -vt 0.287500 0.762500 -vt 0.325000 0.787500 -vt 0.312500 0.800000 -vt 0.287500 0.512500 -vt 0.312500 0.475000 -vt 0.325000 0.487500 -vt 0.012500 0.475000 -vt -0.000000 0.412500 -vt 0.350000 0.262500 -vt 0.450000 0.312500 -vt 0.450000 0.337500 -vt 0.500000 0.337500 -vt 0.487500 0.350000 -vt 0.012500 0.262500 -vt -0.000000 0.375000 -vt 0.387500 0.475000 -vt -0.000000 0.262500 -vt 0.200000 0.250000 -vt 0.187500 0.250000 -vt 0.575000 0.250000 -vt 0.562500 0.250000 -vt -0.000000 0.250000 -vt 0.375000 0.250000 -vt 0.200000 0.262500 -vt 0.350000 0.250000 -vt 0.750000 0.250000 -vt 0.750000 0.262500 -vt 0.337500 0.475000 -vt 0.325000 0.487500 -vt 0.325000 0.650000 -vt 0.500000 0.312500 -vt 0.487500 0.300000 -vt 0.462500 0.300000 -vt 0.462500 0.350000 -vt 0.062500 0.762500 -vt 0.575000 0.262500 -vt 0.750000 0.412500 -vt 0.287500 0.737500 -vt 0.062500 0.512500 -vt 0.062500 0.537500 -vt 0.037500 0.537500 -vt 0.037500 0.737500 -vt -0.000000 0.475000 -vt 0.012500 0.250000 -vt 0.387500 0.250000 -vt 0.600000 0.250000 -vt 0.337500 0.662500 -vt 0.525000 0.662500 -vt 0.537500 0.650000 -vt 0.537500 0.487500 -vt 0.525000 0.475000 -vt 0.262500 0.762500 -vt 0.287500 0.537500 -vt 0.262500 0.512500 -vn 0.8578 0.5139 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.8301 -0.5576 0.0000 -vn 0.0000 0.5139 0.8578 -vn 0.0000 0.5139 -0.8578 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 +mtllib puter.mtl +o Cube.003 +v -0.312500 -0.125000 0.062500 +v -0.312500 0.312500 0.062500 +v 0.312500 -0.125000 0.062500 +v -0.375000 -0.187500 0.062500 +v -0.312500 -0.125000 0.000000 +v -0.312500 0.312500 0.000000 +v 0.312500 -0.125000 -0.000000 +v -0.250000 -0.062500 0.062500 +v -0.250000 0.250000 0.062500 +v 0.250000 -0.062500 0.062500 +v 0.250000 0.250000 0.062500 +v 0.312500 0.312500 -0.000000 +v 0.312500 0.312500 0.062500 +v 0.375000 0.375000 0.062500 +v 0.375000 0.375000 -0.312500 +v 0.375000 -0.187500 0.062500 +v -0.375000 0.375000 0.062500 +v -0.375000 0.375000 -0.312500 +v -0.375000 -0.187500 -0.312500 +v -0.312500 0.312500 -0.312500 +v -0.312500 -0.187500 -0.312500 +v 0.312500 0.312500 -0.312500 +v -0.312500 0.250000 -0.500000 +v -0.312500 -0.187500 -0.500000 +v 0.312500 0.250000 -0.500000 +v 0.312500 -0.187500 -0.500000 +v 0.312500 -0.187500 -0.312500 +v 0.375000 -0.187500 -0.312500 +v -0.375000 -0.500000 0.500000 +v -0.375000 -0.500000 0.187500 +v -0.375000 -0.437500 0.500000 +v 0.375000 -0.500000 0.500000 +v 0.375000 -0.500000 0.187500 +v 0.375000 -0.437500 0.500000 +v 0.375000 -0.375000 0.187500 +v -0.375000 -0.375000 0.187500 +v -0.375000 -0.500000 0.125000 +v -0.375000 -0.500000 -0.500000 +v -0.375000 -0.312500 0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 -0.500000 -0.500000 +v 0.375000 -0.312500 0.125000 +v 0.375000 -0.312500 -0.500000 +v -0.375000 -0.312500 -0.500000 +v -0.000000 -0.250000 -0.312500 +v 0.108253 -0.250000 -0.250000 +v -0.000000 -0.187500 -0.312500 +v -0.108253 -0.250000 -0.250000 +v -0.108253 -0.250000 -0.125000 +v -0.108253 -0.187500 -0.250000 +v -0.108253 -0.187500 -0.125000 +v -0.000000 -0.187500 -0.062500 +v 0.108253 -0.187500 -0.125000 +v -0.000000 -0.250000 -0.062500 +v 0.108253 -0.250000 -0.125000 +v 0.108253 -0.187500 -0.250000 +v -0.312500 -0.312500 0.062500 +v -0.312500 -0.312500 -0.437500 +v -0.250000 -0.250000 0.000000 +v 0.312500 -0.312500 0.062500 +v 0.312500 -0.312500 -0.437500 +v 0.250000 -0.250000 -0.000000 +v 0.250000 -0.250000 -0.375000 +v -0.250000 -0.250000 -0.375000 +vn -0.0000 -0.0000 1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.3002 0.3002 0.9054 +vn -0.4082 -0.4082 0.8165 +vn -0.3002 -0.3002 0.9054 +vn 0.4082 -0.4082 0.8165 +vn 0.3002 -0.3002 0.9054 +vn 0.4082 0.4082 0.8165 +vn 0.3002 0.3002 0.9054 +vn -0.4082 0.4082 0.8165 +vn -1.0000 -0.0000 -0.0000 vn -0.0000 -1.0000 -0.0000 -vn 0.0000 -0.5576 -0.8301 -vn 0.8301 -0.5576 0.0000 -vn 0.0000 -0.5576 0.8301 -vn -0.5130 -0.6882 0.5130 -vn -0.5397 0.6461 -0.5397 -vn 0.5397 0.6461 -0.5397 -vn 0.5397 0.6461 0.5397 -vn -0.7071 0.0001 0.7071 -vn -0.5130 -0.6882 -0.5130 -vn 0.5130 -0.6882 -0.5130 -vn 0.5131 -0.6882 0.5130 -vn -0.7071 0.0001 -0.7071 -vn 0.7071 0.0001 -0.7071 -vn 0.7071 0.0001 0.7071 -vn -0.5397 0.6461 0.5397 -vn -0.8578 0.5139 0.0000 -vn 0.5130 -0.6882 0.5130 -vn -0.7046 -0.7046 -0.0837 -vn -0.7071 0.7071 0.0002 -vn 0.7046 -0.7046 -0.0837 -vn 0.0000 -0.5420 -0.8404 -vn 0.0000 0.5420 -0.8404 -vn 0.5420 0.0000 -0.8404 -vn 0.0000 1.0000 0.0000 -vn -0.5420 0.0000 -0.8404 -vn 0.7071 0.7071 -0.0003 -vn -0.7071 0.7071 -0.0003 -vn 0.2934 -0.2934 -0.9098 -vn 0.2934 0.2934 -0.9098 -vn -0.2934 -0.2934 -0.9098 -vn -0.2934 0.2934 -0.9098 -vn -0.7071 -0.7071 -0.0003 -vn 0.7071 -0.7071 -0.0003 -vn 0.7071 0.7071 0.0002 -vn -0.5000 0.5000 -0.7071 -vn 0.5000 -0.5000 -0.7071 -vn 0.5000 0.5000 -0.7070 -vn -0.5000 -0.5000 -0.7070 -vn 0.0000 -0.7071 -0.7071 -vn -0.7071 0.0000 -0.7071 -vn 0.0000 0.7071 -0.7071 -vn 0.7071 0.0000 -0.7071 -vn 0.1414 -0.9798 -0.1414 -vn 0.0000 -0.9404 -0.3400 -vn -0.1414 -0.9798 -0.1414 -vn -0.1623 -0.9798 -0.1166 -vn -0.5000 0.5000 -0.7070 -vn 0.5000 -0.5000 -0.7070 -vn 0.5000 0.5000 -0.7071 -vn -0.5000 -0.5000 -0.7071 -vn 0.1623 -0.9798 -0.1166 -s off -f 49/122/39 50/123/39 51/124/39 -f 52/125/40 53/126/40 54/127/40 -f 55/128/41 56/129/41 57/130/41 -f 58/131/42 59/132/42 60/133/42 -f 61/134/43 62/135/43 63/136/43 -f 64/137/44 65/138/44 61/134/44 -f 66/139/45 67/140/45 49/122/45 -f 68/141/46 69/142/46 58/131/46 -f 70/143/47 62/144/47 50/145/47 -f 64/137/48 71/146/48 72/147/48 -f 73/148/49 74/149/49 75/150/49 -f 68/141/50 76/151/50 77/152/50 -f 56/129/51 77/152/51 76/151/51 -f 61/134/52 70/153/52 53/126/52 -f 51/154/53 65/138/53 49/155/53 -f 60/133/54 67/140/54 58/131/54 -f 77/152/55 54/127/55 69/142/55 -f 55/128/56 78/156/56 64/137/56 -f 66/157/57 71/146/57 74/158/57 -f 73/148/58 79/159/58 68/141/58 -f 61/134/59 55/128/59 64/137/59 -f 49/155/60 72/147/60 66/157/60 -f 58/131/61 73/148/61 68/141/61 -f 59/132/62 54/127/62 80/160/62 -f 54/127/63 70/153/63 80/160/63 -f 49/122/39 67/140/39 50/123/39 -f 52/125/40 55/128/40 53/126/40 -f 55/128/41 52/125/41 56/129/41 -f 58/131/42 69/142/42 59/132/42 -f 61/134/43 65/138/43 62/135/43 -f 64/137/44 72/147/44 65/138/44 -f 66/139/45 73/148/45 67/140/45 -f 68/141/46 77/152/46 69/142/46 -f 50/145/47 60/161/47 59/162/47 -f 59/162/47 80/163/47 70/143/47 -f 70/143/47 63/164/47 62/144/47 -f 62/144/47 51/165/47 50/145/47 -f 50/145/47 59/162/47 70/143/47 -f 64/137/48 78/156/48 71/146/48 -f 73/148/49 66/139/49 74/149/49 -f 68/141/50 79/159/50 76/151/50 -f 56/129/51 52/125/51 77/152/51 -f 61/134/52 63/136/52 70/153/52 -f 51/154/53 62/135/53 65/138/53 -f 60/133/54 50/123/54 67/140/54 -f 77/152/55 52/125/55 54/127/55 -f 55/128/56 57/130/56 78/156/56 -f 66/157/57 72/147/57 71/146/57 -f 73/148/64 75/150/64 79/159/64 -f 61/134/59 53/126/59 55/128/59 -f 49/155/60 65/138/60 72/147/60 -f 58/131/61 67/140/61 73/148/61 -f 59/132/62 69/142/62 54/127/62 -f 54/127/63 53/126/63 70/153/63 -f 81/166/65 82/167/65 83/168/65 -f 84/169/66 85/170/66 86/171/66 -f 125/172/46 87/173/46 127/174/46 -f 88/175/67 89/176/67 90/177/67 -f 91/178/45 92/179/45 89/176/45 -f 90/177/68 94/180/68 95/181/68 -f 86/171/69 96/182/69 97/183/69 -f 111/184/46 98/185/46 99/186/46 -f 100/187/47 94/180/47 101/188/47 -f 92/179/70 102/189/70 89/176/70 -f 103/190/71 96/182/71 104/191/71 -f 82/167/72 105/192/72 85/170/72 -f 102/189/45 111/193/45 110/194/45 -f 107/195/40 112/196/40 108/197/40 -f 103/198/46 107/199/46 126/200/46 -f 106/201/46 100/202/46 110/203/46 -f 109/204/46 108/205/46 113/206/46 -f 98/207/73 114/208/73 96/182/73 -f 104/191/74 107/195/74 103/190/74 -f 85/170/40 83/209/40 82/167/40 -f 95/181/47 57/210/47 56/211/47 -f 75/212/47 90/177/47 79/213/47 -f 101/188/75 89/176/75 102/189/75 -f 84/169/71 97/183/71 115/214/71 -f 97/183/76 114/208/76 92/215/76 -f 112/196/77 95/181/77 94/180/77 -f 86/171/78 105/192/78 104/191/78 -f 113/216/79 112/196/79 94/180/79 -f 101/188/80 110/194/80 100/187/80 -f 97/183/81 116/217/81 115/214/81 -f 117/218/82 84/169/82 118/219/82 -f 119/220/83 88/175/83 120/221/83 -f 121/222/84 115/214/84 116/217/84 -f 122/223/85 81/166/85 83/168/85 -f 81/166/86 120/221/86 88/175/86 -f 123/224/87 122/225/87 83/209/87 -f 115/214/88 118/219/88 84/169/88 -f 91/178/89 121/226/89 116/227/89 -f 124/228/44 122/229/44 117/230/44 -f 99/186/46 103/198/46 126/200/46 -f 74/231/47 90/177/47 75/212/47 -f 71/232/90 88/175/90 74/231/90 -f 81/166/91 71/232/91 78/233/91 -f 57/210/92 81/166/92 78/233/92 -f 76/234/47 95/181/47 56/211/47 -f 79/213/47 95/181/47 76/234/47 -f 127/174/47 126/235/47 125/172/47 -f 81/166/65 95/181/65 82/167/65 -f 84/169/66 123/224/66 85/170/66 -f 88/175/67 91/236/67 89/176/67 -f 91/178/45 116/227/45 92/179/45 -f 90/177/68 101/188/68 94/180/68 -f 86/171/69 104/191/69 96/182/69 -f 100/187/47 113/216/47 94/180/47 -f 92/179/70 114/237/70 102/189/70 -f 103/190/71 98/207/71 96/182/71 -f 82/167/72 112/196/72 105/192/72 -f 87/173/40 99/238/40 127/174/40 -f 126/200/46 108/205/46 109/204/46 -f 109/239/71 87/173/71 93/240/71 -f 100/202/46 109/204/46 113/206/46 -f 109/241/45 125/172/45 126/242/45 -f 106/201/46 111/184/46 99/186/46 -f 102/189/45 114/237/45 111/193/45 -f 107/195/40 105/192/40 112/196/40 -f 98/207/73 111/243/73 114/208/73 -f 104/191/74 105/192/74 107/195/74 -f 85/170/40 123/224/40 83/209/40 -f 95/181/93 81/166/93 57/210/93 -f 101/188/75 90/177/75 89/176/75 -f 84/169/71 86/171/71 97/183/71 -f 97/183/76 96/182/76 114/208/76 -f 112/196/77 82/167/77 95/181/77 -f 86/171/78 85/170/78 105/192/78 -f 113/216/79 108/197/79 112/196/79 -f 101/188/80 102/189/80 110/194/80 -f 97/183/81 92/215/81 116/217/81 -f 117/218/94 123/224/94 84/169/94 -f 119/220/95 91/236/95 88/175/95 -f 121/222/96 128/244/96 115/214/96 -f 122/223/97 124/245/97 81/166/97 -f 81/166/86 124/245/86 120/221/86 -f 123/224/87 117/218/87 122/225/87 -f 115/214/88 128/244/88 118/219/88 -f 91/178/89 119/246/89 121/226/89 -f 117/230/44 118/247/44 124/228/44 -f 118/247/44 128/248/44 124/228/44 -f 128/248/44 121/249/44 119/250/44 -f 119/250/44 120/251/44 128/248/44 -f 120/251/44 124/228/44 128/248/44 -f 74/231/98 88/175/98 90/177/98 -f 81/166/91 88/175/91 71/232/91 -f 79/213/47 90/177/47 95/181/47 -f 125/172/46 93/240/46 87/173/46 -f 99/186/46 98/185/46 103/198/46 -f 127/174/47 99/252/47 126/235/47 -f 87/173/40 106/253/40 99/238/40 -f 126/200/46 107/199/46 108/205/46 -f 109/239/71 106/254/71 87/173/71 -f 100/202/46 106/201/46 109/204/46 -f 109/241/45 93/240/45 125/172/45 -f 106/201/46 110/203/46 111/184/46 -o Cube.001_Cube.005 -v -0.369039 -0.459563 0.479973 -v -0.369039 -0.501855 0.209191 -v -0.369039 -0.501855 0.479973 -v -0.369039 -0.433180 0.209191 -v 0.369039 -0.501855 0.209191 -v 0.369039 -0.459563 0.479973 -v 0.369039 -0.501855 0.479973 -v 0.369039 -0.433180 0.209191 -vt 0.175000 0.175000 -vt -0.000000 0.150000 -vt 0.175000 0.150000 -vt 0.350000 0.225000 -vt 0.175000 0.200000 -vt 0.350000 0.200000 -vt 0.175000 0.225000 -vt -0.000000 0.200000 -vt -0.000000 0.225000 -vt 0.175000 0.225000 -vt 0.350000 0.250000 -vt 0.175000 0.250000 -vt 0.350000 0.150000 -vt 0.175000 0.200000 -vt 0.175000 0.150000 -vt -0.000000 0.150000 -vt 0.350000 0.000000 -vt 0.350000 0.150000 -vt -0.000000 0.200000 -vt 0.175000 0.225000 -vt 0.175000 0.175000 -vt 0.350000 0.225000 -vt 0.350000 0.200000 -vt -0.000000 0.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 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.9953 0.0970 -s off -f 129/255/99 130/256/99 131/257/99 -f 132/258/100 133/259/100 130/260/100 -f 133/261/101 134/262/101 135/263/101 -f 134/264/102 131/265/102 135/266/102 -f 133/267/103 131/268/103 130/269/103 -f 132/270/104 134/271/104 136/272/104 -f 129/255/99 132/273/99 130/256/99 -f 132/258/100 136/274/100 133/259/100 -f 133/261/101 136/275/101 134/262/101 -f 134/264/102 129/276/102 131/265/102 -f 133/267/103 135/277/103 131/268/103 -f 132/270/104 129/278/104 134/271/104 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 0.9487 -0.3162 +vn -0.0000 0.9806 0.1961 +vn 0.8660 -0.0000 -0.5000 +vn -0.8660 -0.0000 -0.5000 +vn -0.8660 -0.0000 0.5000 +vn 0.8660 -0.0000 0.5000 +vn -0.7071 0.7071 -0.0000 +vn -0.0000 0.7071 0.7071 +vn 0.7071 0.7071 -0.0000 +vn -0.0000 0.7071 -0.7071 +vt 0.106061 0.893939 +vt 0.090909 0.772727 +vt 0.106061 0.787879 +vt 0.378788 0.787879 +vt 0.393939 0.893939 +vt 0.378788 0.893939 +vt 0.545455 0.757576 +vt 0.363636 0.772727 +vt 0.363636 0.757576 +vt 0.272727 0.772727 +vt 0.257576 0.787879 +vt 0.121212 0.878788 +vt 0.121212 0.803030 +vt 0.242424 0.803030 +vt 0.257576 0.893939 +vt 0.242424 0.878788 +vt 0.530303 0.893939 +vt 0.515152 0.787879 +vt 0.530303 0.787879 +vt 0.545455 0.909091 +vt 0.363636 0.924242 +vt 0.363636 0.909091 +vt 0.272727 0.909091 +vt 0.090909 0.909091 +vt 0.090909 1.000000 +vt 0.272727 1.000000 +vt 0.000000 0.772727 +vt 0.545455 0.772727 +vt 0.803030 0.848485 +vt 0.757576 0.954545 +vt 0.757576 0.848485 +vt 0.606061 1.000000 +vt 0.757576 1.000000 +vt 0.606061 0.848485 +vt 0.560606 0.848485 +vt 0.606061 0.954545 +vt 0.560606 0.969697 +vt 0.757576 0.803030 +vt 0.606061 0.803030 +vt 0.378788 0.772727 +vt 0.272727 0.681818 +vt 0.090909 0.681818 +vt 0.621212 0.560606 +vt 0.439394 0.636364 +vt 0.439394 0.560606 +vt 0.439394 0.651515 +vt 0.363636 0.636364 +vt 0.621212 0.651515 +vt 0.621212 0.636364 +vt 0.696970 0.636364 +vt 0.439394 0.727273 +vt 0.621212 0.727273 +vt 0.878788 0.666667 +vt 0.878788 0.636364 +vt 0.348485 0.318182 +vt 0.166667 0.469697 +vt 0.166667 0.318182 +vt 0.166667 0.515152 +vt 0.015152 0.469697 +vt 0.348485 0.515152 +vt 0.348485 0.469697 +vt 0.500000 0.515152 +vt 0.500000 0.469697 +vt 0.166667 0.666667 +vt 0.348485 0.666667 +vt 0.681818 0.515152 +vt 0.681818 0.469697 +vt 0.439394 1.000000 +vt 0.409091 0.984848 +vt 0.439394 0.984848 +vt 0.469697 1.000000 +vt 0.469697 0.984848 +vt 0.318182 1.000000 +vt 0.287879 0.984848 +vt 0.318182 0.984848 +vt 0.348485 1.000000 +vt 0.348485 0.984848 +vt 0.378788 1.000000 +vt 0.378788 0.984848 +vt 0.409091 1.000000 +vt 0.015152 0.560606 +vt -0.000000 0.666667 +vt 0.000000 0.545455 +vt 0.136364 0.560606 +vt 0.151515 0.545455 +vt 0.136364 0.651515 +vt 0.151515 0.666667 +vt 0.015152 0.651515 +vt 0.393939 0.787879 +vt 0.515152 0.893939 +vt 0.545455 0.924242 +vt 0.000000 0.909091 +vt 0.530303 0.772727 +vt 0.803030 0.969697 +vt 0.363636 0.666667 +vt 0.696970 0.666667 +vt 0.015152 0.515152 +vt 0.287879 1.000000 +s 1 +usemtl Texture +f 2/1/1 4/2/1 1/3/1 +f 1/4/2 6/5/2 2/6/2 +f 3/7/3 5/8/3 1/9/3 +f 1/3/1 16/10/1 3/11/1 +f 9/12/4 5/3/5 8/13/6 +f 8/13/6 7/11/7 10/14/8 +f 10/14/8 9/12/4 8/13/6 +f 10/14/8 12/15/9 11/16/10 +f 11/16/10 6/1/11 9/12/4 +f 13/17/12 7/18/12 3/19/12 +f 2/20/13 12/21/13 13/22/13 +f 3/11/1 14/23/1 13/15/1 +f 13/15/1 17/24/1 2/1/1 +f 15/22/2 16/10/2 28/8/2 +f 18/25/3 14/23/3 15/26/3 +f 17/24/12 19/27/12 4/2/12 +f 20/17/14 19/28/14 18/20/14 +f 20/17/14 15/22/14 22/6/14 +f 21/29/12 23/30/12 24/31/12 +f 22/32/15 23/30/15 20/33/15 +f 23/30/14 26/34/14 24/31/14 +f 27/35/2 25/36/2 22/37/2 +f 21/38/13 26/34/13 27/39/13 +f 22/6/14 28/8/14 27/40/14 +f 28/41/13 4/2/13 19/42/13 +f 33/43/13 29/44/13 30/45/13 +f 31/46/12 30/47/12 29/44/12 +f 34/48/1 29/44/1 32/49/1 +f 33/50/2 34/48/2 32/49/2 +f 36/51/16 34/48/16 35/52/16 +f 36/53/14 33/50/14 30/54/14 +f 41/55/13 37/56/13 38/57/13 +f 39/58/12 38/59/12 37/56/12 +f 42/60/1 37/56/1 40/61/1 +f 43/62/2 40/61/2 41/63/2 +f 44/64/3 42/60/3 43/65/3 +f 44/66/14 41/63/14 38/67/14 +f 47/68/14 46/69/17 45/70/14 +f 50/71/18 45/70/14 48/72/18 +f 51/73/19 48/74/18 49/75/19 +f 52/76/1 49/75/19 54/77/1 +f 53/78/20 54/77/1 55/79/20 +f 56/80/17 55/79/20 46/69/17 +f 59/81/21 58/82/21 57/83/21 +f 62/84/22 57/83/22 60/85/22 +f 63/86/23 60/85/23 61/87/23 +f 64/88/3 62/84/3 63/86/3 +f 64/88/24 61/87/24 58/82/24 +f 2/1/1 17/24/1 4/2/1 +f 1/4/2 5/89/2 6/5/2 +f 3/7/3 7/28/3 5/8/3 +f 1/3/1 4/2/1 16/10/1 +f 9/12/4 6/1/11 5/3/5 +f 8/13/6 5/3/5 7/11/7 +f 10/14/8 11/16/10 9/12/4 +f 10/14/8 7/11/7 12/15/9 +f 11/16/10 12/15/9 6/1/11 +f 13/17/12 12/90/12 7/18/12 +f 2/20/13 6/91/13 12/21/13 +f 3/11/1 16/10/1 14/23/1 +f 13/15/1 14/23/1 17/24/1 +f 15/22/2 14/23/2 16/10/2 +f 18/25/3 17/24/3 14/23/3 +f 17/24/12 18/92/12 19/27/12 +f 20/17/14 21/93/14 19/28/14 +f 20/17/14 18/20/14 15/22/14 +f 21/29/12 20/94/12 23/30/12 +f 22/32/15 25/36/15 23/30/15 +f 23/30/14 25/36/14 26/34/14 +f 27/35/2 26/34/2 25/36/2 +f 21/38/13 24/31/13 26/34/13 +f 22/6/14 15/22/14 28/8/14 +f 28/41/13 16/10/13 4/2/13 +f 33/43/13 32/49/13 29/44/13 +f 31/46/12 36/95/12 30/47/12 +f 34/48/1 31/46/1 29/44/1 +f 33/50/2 35/96/2 34/48/2 +f 36/51/16 31/46/16 34/48/16 +f 36/53/14 35/96/14 33/50/14 +f 41/55/13 40/61/13 37/56/13 +f 39/58/12 44/97/12 38/59/12 +f 42/60/1 39/58/1 37/56/1 +f 43/62/2 42/60/2 40/61/2 +f 44/64/3 39/58/3 42/60/3 +f 44/66/14 43/62/14 41/63/14 +f 47/68/14 56/80/17 46/69/17 +f 50/71/18 47/68/14 45/70/14 +f 51/73/19 50/98/18 48/74/18 +f 52/76/1 51/73/19 49/75/19 +f 53/78/20 52/76/1 54/77/1 +f 56/80/17 53/78/20 55/79/20 +f 59/81/21 64/88/21 58/82/21 +f 62/84/22 59/81/22 57/83/22 +f 63/86/23 62/84/23 60/85/23 +f 64/88/3 59/81/3 62/84/3 +f 64/88/24 63/86/24 61/87/24 diff --git a/src/main/resources/assets/hbm/textures/blocks/deco_computer.png b/src/main/resources/assets/hbm/textures/blocks/deco_computer.png index fab8d3cd29d30ca65fe69a95c6644973ad8c4c65..be42793228b53cac24ab27ad30737a5bb26487b7 100644 GIT binary patch delta 631 zcmV--0*L*n4xa@fiBL{Q4GJ0x0000DNk~Le0000&0000&2m=5B0Mv@`+L0k3Og~Ue zR7LXc=Gf80va+(jwW5N8g3iUWOhh#q85sZn|G==1*vhT)=FLnVGd z00GEJL_t(oN9~i_c7q@gMYT2;O*Kuz|9@-ea$rC)&T7(^E;lj20NVkz2|{DE;Uhzb z35@dijHqZ6okk*`sMCzuxI-b(z1uD_PsFKcX(4E-gRtUPV3=D~g{9eH9QPDVe{nb* zmI|TOO3-!@F~#wCtSES-YfcHBOnb+SKzVIsp$ksuvq$kXi)g4S=&0lB( ziUC_<5c1I2J4qjB!rDa?i%Lj=+=o8jNFM#>dZbd%t;y2QH&TycQAu%}eMUXyI;&5_ z&#o~3rQ+A0*~{z-V^L`gS;!rtUOH$jVssfH`~V8}5AO|N Rw7&oV002ovPDHLkV1jLE7z_Xa delta 1815 zcmV+y2k7{p1*i@oiBL{Q4GJ0x0000DNk~Le0000`0000`2m=5B0J+ZspOGOTe_&8d zR7JeBriFiXy0WCbwWq$esJXGDyR)UYuc5!Usld3Z!MUrpuAl$_0RR90xUiyzfOfdB zqqVM}!n&-(yREgYpEx!$H#IRiH#4iGmmC`zBP1g-Gcm2EnW?0nH#jx`003wSd@le1 z03dWyPE-H?|NsC0|NsC0|NsC0k)H;Upaqej1%LklTwELN00009a7bBm000id000id z0mpBsWB>pLB}qg=F@mv2srOuO7t` z2?DdT7c7zK_#fk)@aOSP`15!t{CWHz32);UA*cN~a`83XC7epmtZkZR{u=(~kkF@^ zSAT)~gac-NU_FBkW-z!K59^|0Lt0kdh}n zhNt)8@~>yWi53dakW_)GLSxPhrU|95Cr{wR2M9rO?2uFeMXRGtyg)w?&K)sHm4L9; zwI;_7Np%TyA+y|cnddz@cF5%kd8(u=x_>C^Jk28HZb_bjrINDb*dduVOuh06)-oN! zWvNM?0iI9OZ%J~BB-)^a5IOiBr=>?ye49K2k+oV@Jq`2vHYkpn0;JFwVj}mr$)D~` zSjshpWv+{BlbkT$yv(B{f*WmJ?U35r!CWM_hQj&6W!9;C@EyD?jn*vju7;t?jhu-TH7Y5A7nU{7XByAdOpc z6hnPQw`s{Uu&5r$pOpY^O)!;*Rx16MinjqjRHmnP>}}qf!!n-szOXf-vIJ|}kne~X zXd#6OfNgiGP%$DxL9@mbdlpM&o`@a%ptPu*kNmZf9A=k|5UjA8vr$5exPQIJG#BYj z=DAo@bC_WCsZ(-+Eje)MTZGuD?1N8QJSs)eu1((n^U6zJyB6It?C(g9w8dUl>@}gf zPnv^%!M(0Fw3C-C7x=yEE%!Y+2fYNtWd@nV9quXeQpw++%ctq1O|ZaEOD(+Fw465N z?#E>$hnP`^A2WtPUSVb1ntz(ZyRnl#M}dgV2UNkU>{+lxZOLiN(z#ih2=xdsee}&} z!eH$OxI`p-djHo^Quu?HTXGaboKJ=4eN&YYGReHnLz<@m*yX=vXrDPb8j?c0?4Vc? zqbV0Dr7U>b72AL~FmlK#noAW&ayo^2Y|_k-lI2O?`=*+3w{bz{6MuABJ3~e3=ll69 zHoVIw{1|4r&L*7a0S0t_!VGifU|@U7r!@iw^bmFNA_P$?Ah#xk1fAlI-yqBb_L%f4 zNLn$@U%ZR)ISKofzWERqD)pwi^`gi_ATq5=k?X!uhE0gUD}7T8l%8we=3|87)(9o= z2#+WzQvzpC_2Y{$5`QyU5<)VnX`SM13aJC2*MD5;XV>^d=r`6y--Ld6=r)u0E`4tk zz@$+oQ z6x4yK9zjFKm-zHA1VBzpVLTs=&xEY?@+-i& z7R=fjwVBMMsG?wlFf1C~g`I1!Lf(*5LaqXZYDq$dBV~$*5smMhaEsjr{Ll{a+**Q6 zpII>w;d$e`sxbWbH<@$L_5Vy2oaIEtA)LkMjc-qQu78g#r?}WVV_&l@5LwUS)fC3w zjG-01Q8xVS8=nckKJ)MT=U&-dG`@QZ6+WiERW|#^mkMuuzWzYjNFB4b#&=JlX1`fB zVAuHWD!f-V2@ErX#&=KQ@y02Hb%smewDD=|RMYE(rK|70XOC$E1&e`WCc@x%&GM4f&ZSLUqCr!DJbX{)c+2I0l=mX2v3E0Rbu58 zKd&E8LgA2PjE%!iDcy%xy)g<6R62E*lFO2Pc|18DzX8l3I(l!A6UYDn002ovPDHLk FV1kD6fDQlv From 14eac38f3e43c67c997fbf9f2453a41433d6a408 Mon Sep 17 00:00:00 2001 From: ackbarscrowbars <42119484+ackbarscrowbars@users.noreply.github.com> Date: Fri, 9 May 2025 17:14:30 -0500 Subject: [PATCH 011/181] Fixed Scaffold UV + Cleaned Up Model It had a bunch of erroneous sharps and extra vertices. --- .../assets/hbm/models/blocks/scaffold.obj | 511 +++++++++--------- 1 file changed, 252 insertions(+), 259 deletions(-) diff --git a/src/main/resources/assets/hbm/models/blocks/scaffold.obj b/src/main/resources/assets/hbm/models/blocks/scaffold.obj index 74229560a..f7af91c79 100644 --- a/src/main/resources/assets/hbm/models/blocks/scaffold.obj +++ b/src/main/resources/assets/hbm/models/blocks/scaffold.obj @@ -1,55 +1,50 @@ -# Blender v2.76 (sub 0) OBJ File: 'scaffold.blend' +# Blender 4.4.3 # www.blender.org +mtllib scaffold.mtl o Cube_Cube.001 v -0.375000 0.000000 0.500000 v -0.375000 1.000000 0.500000 -v -0.375000 0.000000 -0.500000 +v -0.375000 -0.000000 -0.500000 v -0.375000 1.000000 -0.500000 v 0.375000 0.000000 0.500000 v 0.375000 1.000000 0.500000 -v 0.375000 0.000000 -0.500000 +v 0.375000 -0.000000 -0.500000 v 0.375000 1.000000 -0.500000 v -0.250000 0.000000 0.500000 v -0.250000 1.000000 0.500000 -v -0.250000 0.000000 -0.500000 +v -0.250000 -0.000000 -0.500000 v -0.250000 1.000000 -0.500000 v 0.250000 0.000000 0.500000 v 0.250000 1.000000 0.500000 -v 0.250000 0.000000 -0.500000 +v 0.250000 -0.000000 -0.500000 v 0.250000 1.000000 -0.500000 v -0.250000 0.000000 0.375000 v -0.250000 1.000000 0.375000 v 0.250000 0.000000 0.375000 v 0.250000 1.000000 0.375000 -v -0.250000 0.000000 -0.375000 +v -0.250000 -0.000000 -0.375000 v -0.250000 1.000000 -0.375000 -v 0.250000 0.000000 -0.375000 +v 0.250000 -0.000000 -0.375000 v 0.250000 1.000000 -0.375000 -v -0.375000 0.000000 -0.375000 +v -0.375000 -0.000000 -0.375000 v -0.375000 1.000000 -0.375000 -v 0.375000 0.000000 -0.375000 +v 0.375000 -0.000000 -0.375000 v 0.375000 1.000000 -0.375000 v -0.375000 0.000000 0.375000 v -0.375000 1.000000 0.375000 v 0.375000 0.000000 0.375000 v 0.375000 1.000000 0.375000 -v -0.250000 0.062500 0.375000 -v -0.250000 0.062500 -0.375000 v -0.375000 0.062500 -0.375000 v -0.375000 0.062500 0.375000 v -0.250000 0.937500 0.375000 -v -0.250000 0.937500 -0.375000 v -0.375000 0.937500 -0.375000 v -0.375000 0.937500 0.375000 -v -0.250000 0.562500 0.000000 -v -0.375000 0.562500 0.000000 -v -0.250000 0.437500 0.000000 -v -0.375000 0.437500 0.000000 -v -0.250000 0.187500 0.375000 -v -0.250000 0.187500 -0.375000 +v -0.250000 0.562500 -0.000000 +v -0.375000 0.562500 -0.000000 +v -0.250000 0.437500 -0.000000 +v -0.375000 0.437500 -0.000000 v -0.375000 0.187500 -0.375000 v -0.375000 0.187500 0.375000 -v -0.250000 0.812500 0.375000 v -0.250000 0.812500 -0.375000 v -0.375000 0.812500 -0.375000 v -0.375000 0.812500 0.375000 @@ -59,45 +54,37 @@ v -0.250000 0.500000 -0.062500 v -0.375000 0.500000 -0.062500 v 0.375000 0.062500 0.375000 v 0.375000 0.062500 -0.375000 -v 0.250000 0.062500 -0.375000 v 0.250000 0.062500 0.375000 v 0.375000 0.937500 0.375000 v 0.375000 0.937500 -0.375000 v 0.250000 0.937500 -0.375000 v 0.250000 0.937500 0.375000 -v 0.375000 0.562500 0.000000 -v 0.250000 0.562500 0.000000 -v 0.375000 0.437500 0.000000 -v 0.250000 0.437500 0.000000 +v 0.375000 0.562500 -0.000000 +v 0.250000 0.562500 -0.000000 +v 0.375000 0.437500 -0.000000 +v 0.250000 0.437500 -0.000000 v 0.375000 0.187500 0.375000 v 0.375000 0.187500 -0.375000 -v 0.250000 0.187500 -0.375000 v 0.250000 0.187500 0.375000 v 0.375000 0.812500 0.375000 v 0.375000 0.812500 -0.375000 -v 0.250000 0.812500 -0.375000 v 0.250000 0.812500 0.375000 v 0.375000 0.500000 0.062500 v 0.250000 0.500000 0.062500 v 0.375000 0.500000 -0.062500 v 0.250000 0.500000 -0.062500 -v 0.250000 0.062500 0.375000 v -0.250000 0.062500 0.375000 v -0.250000 0.062500 0.500000 v 0.250000 0.062500 0.500000 -v 0.250000 0.937500 0.375000 -v -0.250000 0.937500 0.375000 v -0.250000 0.937500 0.500000 v 0.250000 0.937500 0.500000 -v -0.000000 0.562500 0.375000 -v -0.000000 0.562500 0.500000 -v -0.000000 0.437500 0.375000 -v -0.000000 0.437500 0.500000 -v 0.250000 0.187500 0.375000 +v 0.000000 0.562500 0.375000 +v 0.000000 0.562500 0.500000 +v 0.000000 0.437500 0.375000 +v 0.000000 0.437500 0.500000 v -0.250000 0.187500 0.375000 v -0.250000 0.187500 0.500000 v 0.250000 0.187500 0.500000 -v 0.250000 0.812500 0.375000 v -0.250000 0.812500 0.375000 v -0.250000 0.812500 0.500000 v 0.250000 0.812500 0.500000 @@ -112,7 +99,6 @@ v 0.250000 0.062500 -0.375000 v 0.250000 0.937500 -0.500000 v -0.250000 0.937500 -0.500000 v -0.250000 0.937500 -0.375000 -v 0.250000 0.937500 -0.375000 v 0.000000 0.562500 -0.500000 v 0.000000 0.562500 -0.375000 v 0.000000 0.437500 -0.500000 @@ -123,38 +109,59 @@ v -0.250000 0.187500 -0.375000 v 0.250000 0.187500 -0.375000 v 0.250000 0.812500 -0.500000 v -0.250000 0.812500 -0.500000 -v -0.250000 0.812500 -0.375000 v 0.250000 0.812500 -0.375000 v 0.041667 0.500000 -0.500000 v 0.041667 0.500000 -0.375000 v -0.041667 0.500000 -0.500000 v -0.041667 0.500000 -0.375000 -vt 0.875000 0.875000 -vt 0.875000 0.750000 -vt 1.000000 0.750000 +vn -0.0000 1.0000 -0.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.0000 -1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 0.7071 0.7071 +vn -0.0000 0.7071 -0.7071 +vn 0.1322 -0.0000 0.9912 +vn 0.9992 -0.0000 0.0393 +vn 0.1322 -0.0000 -0.9912 +vn 0.9992 -0.0000 -0.0393 +vn -0.9992 -0.0000 -0.0393 +vn -0.1322 -0.0000 -0.9912 +vn -0.1322 -0.0000 0.9912 +vn -0.9992 -0.0000 0.0393 +vn 0.8321 -0.5547 -0.0000 +vn -0.8321 -0.5547 -0.0000 +vn 0.8321 0.5547 -0.0000 +vn -0.8321 0.5547 -0.0000 +vt 0.875000 0.250000 +vt 0.875000 0.125000 +vt 1.000000 0.125000 +vt 0.125000 0.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 vt 1.000000 0.000000 vt 1.000000 1.000000 vt 0.875000 1.000000 -vt 0.250000 0.000000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 vt 0.125027 0.000035 vt 0.000035 0.999965 -vt 0.875000 0.000000 -vt 0.750000 1.000000 vt 1.000000 0.250000 -vt 0.875000 0.250000 -vt 0.875000 0.125000 -vt 0.000035 0.000035 -vt 0.750000 0.000000 +vt 0.875000 0.000000 +vt 0.000000 0.000000 vt 0.000000 0.250000 vt 0.000000 0.125000 vt 0.125000 0.125000 +vt 0.125000 0.250000 vt 0.125000 0.875000 vt -0.000000 0.875000 vt 0.000000 0.750000 -vt 1.000000 0.125000 +vt 0.125000 0.750000 +vt 1.000000 0.750000 vt 1.000000 0.875000 +vt 0.875000 0.875000 +vt 0.875000 0.750000 vt 0.500000 0.250000 vt 0.500000 0.125000 vt 0.437500 0.750000 @@ -177,16 +184,14 @@ vt 0.125000 0.937500 vt 0.125000 0.812500 vt 0.437500 0.500000 vt 0.125000 0.187500 -vt 0.125000 0.750000 -vt 0.125000 0.250000 -vt 0.250000 0.750000 -vt 0.250000 0.875000 vt 0.125000 0.500000 vt 0.000000 0.500000 vt 0.000000 0.541667 vt 0.125000 0.541667 -vt 0.125000 0.458333 vt 0.000000 0.458333 +vt 0.125000 0.458333 +vt 0.125000 0.250000 +vt 0.000000 0.250000 vt 0.541667 0.500000 vt 0.750000 0.812500 vt 0.750000 0.062500 @@ -201,214 +206,202 @@ vt 0.875000 0.541667 vt 1.000000 0.541667 vt 1.000000 0.458333 vt 0.875000 0.458333 +vt 0.000035 0.000035 vt 0.875000 0.937500 vt 0.125000 0.062500 vt 0.750000 0.937500 vt 0.250000 0.062500 -vn 0.000000 1.000000 0.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 -0.707100 0.707100 -vn 0.000000 -0.707100 -0.707100 -vn 0.000000 0.707100 0.707100 -vn 0.000000 0.707100 -0.707100 -vn 0.832100 -0.554700 0.000000 -vn -0.832100 -0.554700 0.000000 -vn 0.832100 0.554700 0.000000 -vn -0.832100 0.554700 -0.000000 -s off +s 1 +usemtl Material.001 f 26/1/1 22/2/1 12/3/1 f 11/4/2 12/5/2 22/6/2 f 21/7/3 22/8/3 26/9/3 -f 25/10/4 26/9/4 4/11/4 -f 3/12/5 4/6/5 12/13/5 -f 11/14/6 21/15/6 25/16/6 -f 9/17/2 17/10/2 18/9/2 -f 1/10/3 9/7/3 10/8/3 -f 17/18/5 29/12/5 30/6/5 -f 30/6/4 29/12/4 1/4/4 -f 9/19/6 1/20/6 29/21/6 -f 30/22/1 2/23/1 10/24/1 -f 20/8/5 32/9/5 31/10/5 -f 31/10/2 32/9/2 6/11/2 -f 6/6/3 14/13/3 13/18/3 -f 14/5/4 20/6/4 19/12/4 -f 31/22/6 5/23/6 13/24/6 -f 14/19/1 6/20/1 32/21/1 -f 8/5/2 28/6/2 27/12/2 -f 15/7/5 16/8/5 8/9/5 -f 23/10/4 24/9/4 16/11/4 -f 27/12/3 28/6/3 24/13/3 -f 8/25/1 16/14/1 24/15/1 -f 23/2/6 15/3/6 7/26/6 -f 43/27/7 44/28/7 35/16/7 -f 36/21/8 44/28/8 43/27/8 -f 53/29/9 54/30/9 48/22/9 -f 52/21/7 54/31/7 53/32/7 -f 41/33/10 42/34/10 40/22/10 -f 39/1/9 42/34/9 41/33/9 -f 55/35/8 56/36/8 51/16/8 -f 47/1/10 56/37/10 55/38/10 -f 42/39/4 54/40/4 52/41/4 -f 44/42/4 36/43/4 48/44/4 -f 42/39/4 39/45/4 51/46/4 -f 44/42/4 56/47/4 47/48/4 -f 43/42/2 34/43/2 46/44/2 -f 41/39/2 55/40/2 50/41/2 -f 41/39/2 37/45/2 49/46/2 -f 54/40/4 42/39/4 56/47/4 -f 43/42/2 53/47/2 45/48/2 -f 41/39/2 53/47/2 43/42/2 -f 67/34/7 68/33/7 59/2/7 -f 60/49/8 68/33/8 67/34/8 -f 77/31/9 78/32/9 72/50/9 -f 76/49/7 78/51/7 77/52/7 -f 65/28/10 66/27/10 64/50/10 -f 63/15/9 66/27/9 65/28/9 -f 79/37/8 80/38/8 75/2/8 -f 71/15/10 80/35/10 79/36/10 -f 66/39/4 78/40/4 76/41/4 -f 68/42/4 60/43/4 72/44/4 -f 66/39/4 63/45/4 75/46/4 -f 68/42/4 80/47/4 71/48/4 -f 67/42/2 58/43/2 70/44/2 -f 65/39/2 79/40/2 74/41/2 -f 65/39/2 61/45/2 73/46/2 -f 78/40/4 66/39/4 80/47/4 -f 67/42/2 77/47/2 69/48/2 -f 65/39/2 77/47/2 67/42/2 -f 91/53/11 92/54/11 83/19/11 -f 84/24/12 92/54/12 91/53/12 -f 101/55/13 102/56/13 96/49/13 -f 100/24/11 102/55/11 101/56/11 -f 89/53/14 90/54/14 88/19/14 -f 87/24/13 90/54/13 89/53/13 -f 103/19/12 104/50/12 99/57/12 -f 95/58/14 104/19/14 103/50/14 -f 90/39/3 102/59/3 100/60/3 -f 92/42/3 84/61/3 96/62/3 -f 90/39/3 87/63/3 99/64/3 -f 92/42/3 104/65/3 95/66/3 -f 91/42/5 82/61/5 94/62/5 -f 89/39/5 103/59/5 98/60/5 -f 89/39/5 85/63/5 97/64/5 -f 102/59/3 90/39/3 104/65/3 -f 91/42/5 101/65/5 93/66/5 -f 103/59/5 89/39/5 101/65/5 -f 115/67/11 116/68/11 107/15/11 -f 108/2/12 116/68/12 115/67/12 -f 125/69/13 126/70/13 120/3/13 -f 124/2/11 126/69/11 125/70/11 -f 113/67/14 114/68/14 112/15/14 -f 111/2/13 114/68/13 113/67/13 -f 127/15/12 128/14/12 123/71/12 -f 119/72/14 128/15/14 127/14/14 -f 114/39/3 126/59/3 124/60/3 -f 116/42/3 108/61/3 120/62/3 -f 114/39/3 111/63/3 123/64/3 -f 116/42/3 128/65/3 119/66/3 -f 115/42/5 106/61/5 118/62/5 -f 113/39/5 127/59/5 122/60/5 -f 113/39/5 109/63/5 121/64/5 -f 126/59/3 114/39/3 128/65/3 -f 115/42/5 125/65/5 117/66/5 -f 127/59/5 113/39/5 125/65/5 -f 4/26/1 26/1/1 12/3/1 -f 21/12/2 11/4/2 22/6/2 -f 25/10/3 21/7/3 26/9/3 -f 3/17/4 25/10/4 4/11/4 -f 11/18/5 3/12/5 12/13/5 -f 3/25/6 11/14/6 25/16/6 -f 10/11/2 9/17/2 18/9/2 -f 2/9/3 1/10/3 10/8/3 -f 18/13/5 17/18/5 30/6/5 -f 2/5/4 30/6/4 1/4/4 -f 17/50/6 9/19/6 29/21/6 -f 18/49/1 30/22/1 10/24/1 -f 19/7/5 20/8/5 31/10/5 -f 5/17/2 31/10/2 6/11/2 -f 5/12/3 6/6/3 13/18/3 -f 13/4/4 14/5/4 19/12/4 -f 19/49/6 31/22/6 13/24/6 -f 20/50/1 14/19/1 32/21/1 -f 7/4/2 8/5/2 27/12/2 -f 7/10/5 15/7/5 8/9/5 -f 15/17/4 23/10/4 16/11/4 -f 23/18/3 27/12/3 24/13/3 -f 28/16/1 8/25/1 24/15/1 -f 27/1/6 23/2/6 7/26/6 -f 34/15/7 43/27/7 35/16/7 -f 33/50/8 36/21/8 43/27/8 -f 45/49/9 53/29/9 48/22/9 -f 49/50/7 52/21/7 53/32/7 -f 37/49/10 41/33/10 40/22/10 -f 38/2/9 39/1/9 41/33/9 -f 50/15/8 55/35/8 51/16/8 -f 46/2/10 47/1/10 55/38/10 -f 40/73/4 42/39/4 52/41/4 -f 54/40/4 44/42/4 48/44/4 -f 56/47/4 42/39/4 51/46/4 -f 35/74/4 44/42/4 47/48/4 -f 55/40/2 43/42/2 46/44/2 -f 38/73/2 41/39/2 50/41/2 -f 53/47/2 41/39/2 49/46/2 -f 44/42/4 54/40/4 56/47/4 -f 33/74/2 43/42/2 45/48/2 -f 55/40/2 41/39/2 43/42/2 -f 58/1/7 67/34/7 59/2/7 -f 57/22/8 60/49/8 67/34/8 -f 69/21/9 77/31/9 72/50/9 -f 73/22/7 76/49/7 77/52/7 -f 61/21/10 65/28/10 64/50/10 -f 62/16/9 63/15/9 65/28/9 -f 74/1/8 79/37/8 75/2/8 -f 70/16/10 71/15/10 79/36/10 -f 64/73/4 66/39/4 76/41/4 -f 78/40/4 68/42/4 72/44/4 -f 80/47/4 66/39/4 75/46/4 -f 59/74/4 68/42/4 71/48/4 -f 79/40/2 67/42/2 70/44/2 -f 62/73/2 65/39/2 74/41/2 -f 77/47/2 65/39/2 73/46/2 -f 68/42/4 78/40/4 80/47/4 -f 57/74/2 67/42/2 69/48/2 -f 79/40/2 65/39/2 67/42/2 -f 82/50/11 91/53/11 83/19/11 -f 81/49/12 84/24/12 91/53/12 -f 93/24/13 101/55/13 96/49/13 -f 97/49/11 100/24/11 101/56/11 -f 85/50/14 89/53/14 88/19/14 -f 86/49/13 87/24/13 89/53/13 -f 98/58/12 103/19/12 99/57/12 -f 94/57/14 95/58/14 103/50/14 -f 88/75/3 90/39/3 100/60/3 -f 102/59/3 92/42/3 96/62/3 -f 104/65/3 90/39/3 99/64/3 -f 83/76/3 92/42/3 95/66/3 -f 103/59/5 91/42/5 94/62/5 -f 86/75/5 89/39/5 98/60/5 -f 101/65/5 89/39/5 97/64/5 -f 92/42/3 102/59/3 104/65/3 -f 81/76/5 91/42/5 93/66/5 -f 91/42/5 103/59/5 101/65/5 -f 106/14/11 115/67/11 107/15/11 -f 105/3/12 108/2/12 115/67/12 -f 117/2/13 125/69/13 120/3/13 -f 121/3/11 124/2/11 125/70/11 -f 109/14/14 113/67/14 112/15/14 -f 110/3/13 111/2/13 113/67/13 -f 122/72/12 127/15/12 123/71/12 -f 118/71/14 119/72/14 127/14/14 -f 112/75/3 114/39/3 124/60/3 -f 126/59/3 116/42/3 120/62/3 -f 128/65/3 114/39/3 123/64/3 -f 107/76/3 116/42/3 119/66/3 -f 127/59/5 115/42/5 118/62/5 -f 110/75/5 113/39/5 122/60/5 -f 125/65/5 113/39/5 121/64/5 -f 116/42/3 126/59/3 128/65/3 -f 105/76/5 115/42/5 117/66/5 -f 115/42/5 127/59/5 125/65/5 +f 25/10/4 26/5/4 4/11/4 +f 3/7/5 4/8/5 12/9/5 +f 11/12/6 21/1/6 25/2/6 +f 9/13/2 17/7/2 18/8/2 +f 1/14/3 9/4/3 10/5/3 +f 17/14/5 29/4/5 30/5/5 +f 30/9/4 29/13/4 1/7/4 +f 9/15/6 1/16/6 29/17/6 +f 30/18/1 2/15/1 10/16/1 +f 20/8/5 32/9/5 31/13/5 +f 31/10/2 32/5/2 6/11/2 +f 6/8/3 14/9/3 13/13/3 +f 14/5/4 20/6/4 19/14/4 +f 31/19/6 5/20/6 13/21/6 +f 14/20/1 6/21/1 32/22/1 +f 8/8/2 28/9/2 27/13/2 +f 15/4/5 16/5/5 8/6/5 +f 23/7/4 24/8/4 16/9/4 +f 27/4/3 28/5/3 24/6/3 +f 8/23/1 16/24/1 24/25/1 +f 23/26/6 15/23/6 7/24/6 +f 40/27/7 41/28/7 33/2/7 +f 34/17/8 41/28/8 40/27/8 +f 47/29/9 48/30/9 43/19/9 +f 46/17/7 48/31/7 47/32/7 +f 38/33/10 39/34/10 37/19/10 +f 36/25/9 39/34/9 38/33/9 +f 49/35/8 50/36/8 45/2/8 +f 42/25/10 50/37/10 49/38/10 +f 39/39/4 48/40/4 46/41/4 +f 41/42/4 34/43/4 43/44/4 +f 39/39/4 36/45/4 45/46/4 +f 41/42/4 50/47/4 42/48/4 +f 40/42/2 93/43/11 104/44/12 +f 38/39/2 49/40/2 44/41/12 +f 38/39/2 35/45/13 84/46/14 +f 48/40/4 39/39/4 50/47/4 +f 40/42/2 47/47/2 81/48/14 +f 38/39/2 47/47/2 40/42/2 +f 60/34/7 61/33/7 94/26/7 +f 53/22/8 61/33/8 60/34/8 +f 68/31/9 69/32/9 64/18/9 +f 67/22/7 69/29/7 68/30/7 +f 58/28/10 59/27/10 57/18/10 +f 56/1/9 59/27/9 58/28/9 +f 70/37/8 71/38/8 108/26/8 +f 105/1/10 71/35/10 70/36/10 +f 59/39/4 69/40/4 67/41/15 +f 61/42/4 53/43/16 64/44/15 +f 59/39/4 56/45/17 108/46/18 +f 61/42/4 71/47/4 105/48/18 +f 60/42/2 52/43/2 63/44/2 +f 58/39/2 70/40/2 66/41/2 +f 58/39/2 54/45/2 65/46/2 +f 69/40/4 59/39/4 71/47/4 +f 60/42/2 68/47/2 62/48/2 +f 58/39/2 68/47/2 60/42/2 +f 79/49/19 80/50/19 73/15/19 +f 74/21/20 80/50/20 79/49/20 +f 87/51/21 88/52/21 83/22/21 +f 86/21/19 88/51/19 87/52/19 +f 77/49/22 78/50/22 76/15/22 +f 75/21/21 78/50/21 77/49/21 +f 89/53/20 90/54/20 85/55/20 +f 82/56/22 90/53/22 89/54/22 +f 78/39/3 88/57/3 86/58/3 +f 80/42/3 74/59/3 83/60/3 +f 78/39/3 75/61/3 85/62/3 +f 80/42/3 90/63/3 82/64/3 +f 79/42/5 72/59/13 81/60/14 +f 77/39/5 89/57/5 84/58/14 +f 77/39/5 57/61/16 67/62/15 +f 88/57/3 78/39/3 90/63/3 +f 79/42/5 87/63/5 64/64/15 +f 89/57/5 77/39/5 87/63/5 +f 100/65/19 101/66/19 93/1/19 +f 94/26/20 101/66/20 100/65/20 +f 109/67/21 110/68/21 105/23/21 +f 108/26/19 110/67/19 109/68/19 +f 98/65/22 99/66/22 56/1/22 +f 97/26/21 99/66/21 98/65/21 +f 111/1/20 112/12/20 44/69/20 +f 104/70/22 112/1/22 111/12/22 +f 99/39/3 110/57/3 108/58/18 +f 101/42/3 94/59/17 105/60/18 +f 99/39/3 97/61/11 44/62/12 +f 101/42/3 112/63/3 104/64/12 +f 100/42/5 92/59/5 103/60/5 +f 98/39/5 111/57/5 107/58/5 +f 98/39/5 95/61/5 106/62/5 +f 110/57/3 99/39/3 112/63/3 +f 100/42/5 109/63/5 102/64/5 +f 111/57/5 98/39/5 109/63/5 +f 4/12/1 26/1/1 12/3/1 +f 21/14/2 11/4/2 22/6/2 +f 25/13/3 21/7/3 26/9/3 +f 3/71/4 25/10/4 4/11/4 +f 11/13/5 3/7/5 12/9/5 +f 3/3/6 11/12/6 25/2/6 +f 10/9/2 9/13/2 18/8/2 +f 2/6/3 1/14/3 10/5/3 +f 18/6/5 17/14/5 30/5/5 +f 2/8/4 30/9/4 1/7/4 +f 17/18/6 9/15/6 29/17/6 +f 18/17/1 30/18/1 10/16/1 +f 19/7/5 20/8/5 31/13/5 +f 5/71/2 31/10/2 6/11/2 +f 5/7/3 6/8/3 13/13/3 +f 13/4/4 14/5/4 19/14/4 +f 19/22/6 31/19/6 13/21/6 +f 20/19/1 14/20/1 32/22/1 +f 7/7/2 8/8/2 27/13/2 +f 7/14/5 15/4/5 8/6/5 +f 15/13/4 23/7/4 16/9/4 +f 23/14/3 27/4/3 24/6/3 +f 28/26/1 8/23/1 24/25/1 +f 27/25/6 23/26/6 7/24/6 +f 93/1/7 40/27/7 33/2/7 +f 72/18/8 34/17/8 40/27/8 +f 81/22/9 47/29/9 43/19/9 +f 84/18/7 46/17/7 47/32/7 +f 35/22/10 38/33/10 37/19/10 +f 97/26/9 36/25/9 38/33/9 +f 44/1/8 49/35/8 45/2/8 +f 104/26/10 42/25/10 49/38/10 +f 37/72/4 39/39/4 46/41/4 +f 48/40/4 41/42/4 43/44/4 +f 50/47/4 39/39/4 45/46/4 +f 33/73/4 41/42/4 42/48/4 +f 49/40/2 40/42/2 104/44/12 +f 97/72/11 38/39/2 44/41/12 +f 47/47/2 38/39/2 84/46/14 +f 41/42/4 48/40/4 50/47/4 +f 72/73/13 40/42/2 81/48/14 +f 49/40/2 38/39/2 40/42/2 +f 52/25/7 60/34/7 94/26/7 +f 51/19/8 53/22/8 60/34/8 +f 62/17/9 68/31/9 64/18/9 +f 65/19/7 67/22/7 68/30/7 +f 54/17/10 58/28/10 57/18/10 +f 55/2/9 56/1/9 58/28/9 +f 66/25/8 70/37/8 108/26/8 +f 63/2/10 105/1/10 70/36/10 +f 57/72/16 59/39/4 67/41/15 +f 69/40/4 61/42/4 64/44/15 +f 71/47/4 59/39/4 108/46/18 +f 94/73/17 61/42/4 105/48/18 +f 70/40/2 60/42/2 63/44/2 +f 55/72/2 58/39/2 66/41/2 +f 68/47/2 58/39/2 65/46/2 +f 61/42/4 69/40/4 71/47/4 +f 51/73/2 60/42/2 62/48/2 +f 70/40/2 58/39/2 60/42/2 +f 72/18/19 79/49/19 73/15/19 +f 53/22/20 74/21/20 79/49/20 +f 64/21/21 87/51/21 83/22/21 +f 67/22/19 86/21/19 87/52/19 +f 57/18/22 77/49/22 76/15/22 +f 35/22/21 75/21/21 77/49/21 +f 84/56/20 89/53/20 85/55/20 +f 81/55/22 82/56/22 89/54/22 +f 76/74/3 78/39/3 86/58/3 +f 88/57/3 80/42/3 83/60/3 +f 90/63/3 78/39/3 85/62/3 +f 73/75/3 80/42/3 82/64/3 +f 89/57/5 79/42/5 81/60/14 +f 35/74/13 77/39/5 84/58/14 +f 87/63/5 77/39/5 67/62/15 +f 80/42/3 88/57/3 90/63/3 +f 53/75/16 79/42/5 64/64/15 +f 79/42/5 89/57/5 87/63/5 +f 92/12/19 100/65/19 93/1/19 +f 91/23/20 94/26/20 100/65/20 +f 102/26/21 109/67/21 105/23/21 +f 106/23/19 108/26/19 109/68/19 +f 95/12/22 98/65/22 56/1/22 +f 96/23/21 97/26/21 98/65/21 +f 107/70/20 111/1/20 44/69/20 +f 103/69/22 104/70/22 111/12/22 +f 56/74/17 99/39/3 108/58/18 +f 110/57/3 101/42/3 105/60/18 +f 112/63/3 99/39/3 44/62/12 +f 93/75/11 101/42/3 104/64/12 +f 111/57/5 100/42/5 103/60/5 +f 96/74/5 98/39/5 107/58/5 +f 109/63/5 98/39/5 106/62/5 +f 101/42/3 110/57/3 112/63/3 +f 91/75/5 100/42/5 102/64/5 +f 100/42/5 111/57/5 109/63/5 From 5b1121e0e4f4eff5b3e67f94113802834949d266 Mon Sep 17 00:00:00 2001 From: ackbarscrowbars <42119484+ackbarscrowbars@users.noreply.github.com> Date: Fri, 9 May 2025 17:17:35 -0500 Subject: [PATCH 012/181] Small Tweak to Steel Scaffold Texture It had a dot that made the tiling look weird. --- .../hbm/textures/blocks/scaffold_steel.png | Bin 432 -> 404 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/hbm/textures/blocks/scaffold_steel.png b/src/main/resources/assets/hbm/textures/blocks/scaffold_steel.png index 8a410748857ed8aa333412cd2b2d66693a08ab92..29ad7521930626b15e456df4e441182681d47acd 100644 GIT binary patch delta 377 zcmV-<0fzpt1C#@hB!3BTNLh0L01FZT01FZU(%pXi0003-Nkl|3GFS`V1ns@u{D-Pi<9YgyZx6f;}1RM+btJFGw~#FhjSkh0<$a>ky`LM`zP4JIAksG(Hj4M XpZOmAPUVFO00000NkvXXu0mjfOysnr delta 406 zcmV;H0crk}1F!>-B!2{RLP=Bz2nYy#2xN!=00C!7L_t(IjdhbzZUZ3~r1Hk({5 z_rF65Qs5y zyZ37-L{&0Eh^xI&*#p zcsw3I1R}z^t{fxhOl$2U2cW7iwPOr&&X^h7w!MKw1Q8*|I6-3!LI}8T;<7v(oO7nu zI?X#O5fR21FM`wQG@brSx~fhh5C8CTxgf{iU9Ow-o5;%rh%ut7Nbh|TIM{1+58R_8 zxtU>Rq?FQ>)PGtd#yEksR!S)!{&@7>Uu_&?y!qfWQA(lKimHBqr^?>@oU)^d4l1R* zb>>Krb4I)-fb;px7=zXttu<8jqs7az%<=wKD$|hX^Z9Q(J@$Q{djh=X;J8da*6z6P zhi{;nO%j0Q2`^#WHr92Wx!)!)%fhy8c>BKqxV0GD!4KEit^fc407*qoM6N<$g8eAG A_5c6? From 19c481c6d76c15531f8aab9854eca965725b4943 Mon Sep 17 00:00:00 2001 From: ackbarscrowbars <42119484+ackbarscrowbars@users.noreply.github.com> Date: Fri, 9 May 2025 17:20:13 -0500 Subject: [PATCH 013/181] Yellow Scaffold Less Bright While technically usable, the brightness was always just a little too contrasting when I tried using the yellow scaffold in builds. Apparently I'm not the only one, so might as well. --- .../hbm/textures/blocks/scaffold_yellow.png | Bin 421 -> 477 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/hbm/textures/blocks/scaffold_yellow.png b/src/main/resources/assets/hbm/textures/blocks/scaffold_yellow.png index 1f152c29abaaaddc4d322768c0df3006b8b312cb..ba8fb0788c3eb38e84dd6da5c9a7420310cd18f5 100644 GIT binary patch delta 451 zcmV;!0X+Vt1Kk6VB!3BTNLh0L01FZT01FZU(%pXi0004xNkl|yXy^$rD(8<+>VMfBu&%pYAp9!Zk;EMo zoLGGn+>6h)?dNduF3T6$ToBOBO;859zEb1^7UUC*aPQnjFD2KZRn$!13) zMsB9PpcpQHYDE%WuR}e6s-HL)Ebb)$dI}=S-AJwpGz}2GYG`5`M>FUCGJv2NecAg4 zbP9O_Wmp*~Gk@>P5QquXChr>5kydb@akZ@<$fW_aVZcaOQ12N$W`Aw#aA-wD_6YK( zLjai~$$)VGFS)Xe7Gf%=Fab`VBrWa_keYlK(r=dMooV^9VK_7(fd%MYWqicYrXL^p z8R11gg>yIq_=18 zf1)|dNc-N}M7Cici1RbkNKqUDMNwe!FC3tE*fvmwQlK?(k8cQ{sIaY$2&4q*<3Tn9 zEr}$?BJoplB4rDNl;SM{X3R5zDgvLM1im}1`r)VdNMa8*JAZs;;N1Y|-+xa4Rp9yL zW~D%_HK$L#lr zACF_bgQ$i+?%@B{JIyzn$htz#$Excz#d?ZFEAHIKIWEY!g6{ab1qhJcp{>zJSrXf; pvpj{mp1lnm=uD4@N&Ec&0|}DG>5>fLIsgCw07*qoL Date: Fri, 9 May 2025 18:06:55 -0500 Subject: [PATCH 014/181] Rusted Scaffold Texture Thought I'd just throw this in with the others, while I'm at it. --- .../hbm/textures/blocks/scaffold_rustedsteel.png | Bin 0 -> 628 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/scaffold_rustedsteel.png diff --git a/src/main/resources/assets/hbm/textures/blocks/scaffold_rustedsteel.png b/src/main/resources/assets/hbm/textures/blocks/scaffold_rustedsteel.png new file mode 100644 index 0000000000000000000000000000000000000000..38ceb368a0a6550e87bb8e98e4e54181d6fd3e96 GIT binary patch literal 628 zcmV-)0*n2LP)iL$)OPVdrN^h~{X6I>gzB+8hEp@Ak`WR43t?-trrU+>pOAI`>(-3pNgsqGDbREp69 zWT(lFL>x@ase317?>e^&*l9}zo4k?k_R`}~lT;gIZiE=?I*yO{3+@9f9hC!wbP1bFw0qVVy=?%AU!P@nU zo_Vf8mQSA>V0#aDHZ$~Yh<06#5E<_q64BUyv z8BFQW-E1mCYFXwnjp2`mdYO0VCCaKO-Tu%x?ghaGYu7)WdY^lZMEVPpp;0lqwLR Date: Sat, 10 May 2025 16:40:39 +0200 Subject: [PATCH 015/181] charge thrower animations --- .../java/com/hbm/crafting/WeaponRecipes.java | 2 ++ .../weapon/sedna/factory/Orchestras.java | 12 ++++++++-- .../weapon/sedna/factory/XFactoryTool.java | 18 +++++---------- .../weapon/sedna/ItemRenderChargeThrower.java | 23 ++++++++++++++++++- 4 files changed, 40 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index d9eca4a19..242a2e475 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -94,6 +94,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_tau, 1), new Object[] { " RD", "CTT", "GMS", 'D', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'C', CU.pipe(), 'T', ModItems.coil_advanced_torus, 'G', ANY_HARDPLASTIC.grip(), 'R', BIGMT.lightReceiver(), 'M', BIGMT.mechanism(), 'S', ANY_HARDPLASTIC.stock() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lasrifle, 1), new Object[] { "DLC", "BRS", "MG ", 'D', ModItems.crystal_redstone, 'L', DictFrame.fromOne(ModItems.weapon_mod_special, EnumModSpecial.SCOPE), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'B', ANY_BISMOIDBRONZE.lightBarrel(), 'R', ANY_BISMOIDBRONZE.lightReceiver(), 'S', ANY_HARDPLASTIC.stock(), 'M', BIGMT.mechanism(), 'G', ANY_HARDPLASTIC.grip() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.gun_double_barrel_sacred_dragon, 1), new Object[] { ModItems.gun_double_barrel, DictFrame.fromOne(ModItems.item_secret, EnumSecretType.SELENIUM_STEEL) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_charge_thrower, 1), new Object[] { "MMM", "BBL", "GG ", 'M', GUNMETAL.mechanism(), 'B', STEEL.heavyBarrel(), 'G', STEEL.grip(), 'L', Items.leather }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_charge_thrower, 1), new Object[] { "MMM", "BBL", "GG ", 'M', GUNMETAL.mechanism(), 'B', STEEL.heavyBarrel(), 'G', STEEL.grip(), 'L', ANY_RUBBER.ingot() }); //SEDNA Ammo CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE, 6), new Object[] { "C", "P", "G", 'C', KEY_COBBLESTONE, 'P', Items.paper, 'G', Items.gunpowder }); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index 61a5c0d01..3d0164466 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -7,6 +7,7 @@ import com.hbm.items.ModItems; import com.hbm.handler.threading.PacketThreading; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.Receiver; +import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower; import com.hbm.items.weapon.sedna.impl.ItemGunStinger; import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.mags.IMagazine; @@ -22,6 +23,7 @@ import com.hbm.util.EntityDamageUtil; 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.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -1419,9 +1421,15 @@ public class Orchestras { if(entity.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); - + + if(type == AnimType.CYCLE_DRY) { + Entity e = entity.worldObj.getEntityByID(ItemGunChargeThrower.getLastHook(stack)); + if(timer == 0 && e == null) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); + } + if(type == AnimType.RELOAD) { - if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.insertRocket", 1F, 1F); + if(timer == 40) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 1F, 1F); } }; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index 917c06aee..d20677e53 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -96,7 +96,7 @@ public class XFactoryTool { ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig() .dura(3_000).draw(20).inspect(31).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX) .rec(new Receiver(0) - .dmg(5F).delay(4).dry(40).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(55).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F) + .dmg(5F).delay(4).dry(10).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(55).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 1).addConfigs(ct_hook, ct_mortar, ct_mortar_charge)) .offset(1, -0.0625 * 2.5, -0.25D) .setupStandardFire().recoil(LAMBDA_RECOIL_CT)) @@ -112,19 +112,13 @@ public class XFactoryTool { @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_CT_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() - .addBus("EQUIP", new BusAnimationSequence().addPos(-90, 0, 0, 0).addPos(0, 0, 0, 350, IType.SIN_DOWN)); + .addBus("EQUIP", new BusAnimationSequence().addPos(-45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); case CYCLE: return new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250)) - .addBus("HAMMER", new BusAnimationSequence().addPos(15, 0, 0, 50).addPos(15, 0, 0, 550).addPos(0, 0, 0, 100)); + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -1, 100, IType.SIN_DOWN).addPos(0, 0, 0, 250, IType.SIN_FULL)); case RELOAD: return new BusAnimation() - .addBus("OPEN", new BusAnimationSequence().addPos(45, 0, 0, 200, IType.SIN_FULL).addPos(45, 0, 0, 750).addPos(0, 0, 0, 200, IType.SIN_UP)) - .addBus("SHELL", new BusAnimationSequence().addPos(4, -8, -4, 0).addPos(4, -8, -4, 200).addPos(0, 0, -5, 500, IType.SIN_DOWN).addPos(0, 0, 0, 200, IType.SIN_UP)) - .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(25, 0, 0, 200, IType.SIN_DOWN).addPos(25, 0, 0, 800).addPos(0, 0, 0, 200, IType.SIN_DOWN)); - case JAMMED: return new BusAnimation() - .addBus("OPEN", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(45, 0, 0, 200, IType.SIN_FULL).addPos(45, 0, 0, 500).addPos(0, 0, 0, 200, IType.SIN_UP)) - .addBus("FLIP", new BusAnimationSequence().addPos(0, 0, 0, 500).addPos(0, 0, 0, 200).addPos(25, 0, 0, 200, IType.SIN_DOWN).addPos(25, 0, 0, 550).addPos(0, 0, 0, 200, IType.SIN_DOWN)); - case INSPECT: return new BusAnimation() - .addBus("FLIP", new BusAnimationSequence().addPos(-360 * 3, 0, 0, 1500, IType.SIN_FULL)); + .addBus("RAISE", new BusAnimationSequence().addPos(-45, 0, 0, 500, IType.SIN_FULL).hold(2000).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("AMMO", new BusAnimationSequence().setPos(0, -10, -5).hold(500).addPos(0, 0, 5, 750, IType.SIN_FULL).addPos(0, 0, 0, 500, IType.SIN_UP).hold(4000)) + .addBus("TWIST", new BusAnimationSequence().setPos(0, 0, 25).hold(2000).addPos(0, 0, 0, 150)); } return null; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java index 1d46d93b2..4b30ccc31 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java @@ -7,6 +7,7 @@ import com.hbm.items.weapon.sedna.factory.XFactoryTool; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; @@ -51,14 +52,34 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase { double scale = 0.5D; GL11.glScaled(scale, scale, scale); } + + boolean reloading = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("AMMO") != null; + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] raise = HbmAnimations.getRelevantTransformation("RAISE"); + double[] ammo = HbmAnimations.getRelevantTransformation("AMMO"); + double[] twist = HbmAnimations.getRelevantTransformation("TWIST"); + + GL11.glTranslated(0, 0, -7); + GL11.glRotated(equip[0], -1, 0, 0); + GL11.glTranslated(0, 0, 7); + + GL11.glTranslated(0, -7, 4); + GL11.glRotated(raise[0], 1, 0, 0); + GL11.glTranslated(0, 7, -4); + + GL11.glTranslated(recoil[0], recoil[1], recoil[2]); GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_tex); ResourceManager.charge_thrower.renderPart("Gun"); if(isScoped(stack) && !usingScope) ResourceManager.charge_thrower.renderPart("Scope"); - if(mag.getAmount(stack, null) > 0) { + if(mag.getAmount(stack, null) > 0 || reloading) { + GL11.glTranslated(ammo[0], ammo[1], ammo[2]); + GL11.glRotated(twist[2], 0, 0, 1); + if(mag.getType(stack, null) == XFactoryTool.ct_hook) { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_hook_tex); ResourceManager.charge_thrower.renderPart("Hook"); From be84b218673c6cece3e9c3b4a0de6fe11828eeaa Mon Sep 17 00:00:00 2001 From: LegendaryDoge30 Date: Sat, 10 May 2025 17:39:07 +0200 Subject: [PATCH 016/181] prototype nina --- .../java/com/hbm/main/ResourceManager.java | 4 +- .../tileentity/RenderNukePrototype.java | 5 +- .../resources/assets/hbm/models/Prototype.obj | 1940 ----------------- .../assets/hbm/models/bombs/Prototype.obj | 1639 ++++++++++++++ .../assets/hbm/textures/models/Prototype.png | Bin 16020 -> 0 bytes .../hbm/textures/models/bombs/Prototype.png | Bin 0 -> 5642 bytes 6 files changed, 1644 insertions(+), 1944 deletions(-) delete mode 100644 src/main/resources/assets/hbm/models/Prototype.obj create mode 100644 src/main/resources/assets/hbm/models/bombs/Prototype.obj delete mode 100644 src/main/resources/assets/hbm/textures/models/Prototype.png create mode 100644 src/main/resources/assets/hbm/textures/models/bombs/Prototype.png diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 07de3e21c..c5b4e6d01 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -272,7 +272,7 @@ public class ResourceManager { public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fat_man.obj")).asVBO(); public static final IModelCustom bomb_mike = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ivymike.obj")); public static final IModelCustom bomb_tsar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/tsar.obj")).asVBO(); - public static final IModelCustom bomb_prototype = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Prototype.obj")); + public static final IModelCustom bomb_prototype = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/Prototype.obj")).asVBO(); public static final IModelCustom bomb_fleija = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fleija.obj")).asVBO(); public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")); public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj")); @@ -721,7 +721,7 @@ public class ResourceManager { public static final ResourceLocation bomb_man_tex = new ResourceLocation(RefStrings.MODID, "textures/models/FatMan.png"); public static final ResourceLocation bomb_mike_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/ivymike.png"); public static final ResourceLocation bomb_tsar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/tsar.png"); - public static final ResourceLocation bomb_prototype_tex = new ResourceLocation(RefStrings.MODID, "textures/models/Prototype.png"); + public static final ResourceLocation bomb_prototype_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/Prototype.png"); public static final ResourceLocation bomb_fleija_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/fleija.png"); public static final ResourceLocation bomb_solinium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/ufp.png"); public static final ResourceLocation n2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n2.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java b/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java index cfcfcb674..e02f9dece 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java @@ -27,10 +27,11 @@ public class RenderNukePrototype extends TileEntitySpecialRenderer { case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; } - + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_prototype_tex); ResourceManager.bomb_prototype.renderAll(); - + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); diff --git a/src/main/resources/assets/hbm/models/Prototype.obj b/src/main/resources/assets/hbm/models/Prototype.obj deleted file mode 100644 index ca2890b6c..000000000 --- a/src/main/resources/assets/hbm/models/Prototype.obj +++ /dev/null @@ -1,1940 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'prototype.blend' -# www.blender.org -o Cylinder -v -0.000000 1.150000 -0.099999 -v -0.000000 1.150000 0.100001 -v 0.229610 1.104328 -0.100000 -v 0.229610 1.104328 0.100000 -v 0.424264 0.974264 -0.100000 -v 0.424264 0.974264 0.100000 -v 0.554328 0.779610 -0.100000 -v 0.554328 0.779610 0.100000 -v 0.600000 0.550000 -0.100000 -v 0.600000 0.550000 0.100000 -v 0.554328 0.320390 -0.100000 -v 0.554328 0.320390 0.100000 -v 0.424264 0.125736 -0.100000 -v 0.424264 0.125736 0.100000 -v 0.229610 -0.004328 -0.100000 -v 0.229610 -0.004328 0.100000 -v 0.000000 -0.050000 -0.100001 -v 0.000000 -0.050000 0.099999 -v -0.229610 -0.004328 -0.100000 -v -0.229610 -0.004328 0.100000 -v -0.424264 0.125736 -0.100000 -v -0.424264 0.125736 0.100000 -v -0.554328 0.320390 -0.100000 -v -0.554328 0.320390 0.100000 -v -0.600000 0.550000 -0.100000 -v -0.600000 0.550000 0.100000 -v -0.554328 0.779610 -0.100000 -v -0.554328 0.779610 0.100000 -v -0.424264 0.974264 -0.100000 -v -0.424264 0.974264 0.100000 -v -0.229610 1.104328 -0.100000 -v -0.229610 1.104328 0.100000 -v 0.191342 1.011940 0.100000 -v 0.000000 1.050000 0.100000 -v -0.191341 1.011940 0.100000 -v -0.353553 0.903553 0.100000 -v -0.461940 0.741342 0.100000 -v -0.500000 0.550000 0.100000 -v -0.461940 0.358658 0.100000 -v -0.353553 0.196446 0.100000 -v -0.191342 0.088060 0.100000 -v 0.000000 0.050000 0.100000 -v 0.191342 0.088060 0.100000 -v 0.353553 0.196447 0.100000 -v 0.461940 0.358658 0.100000 -v 0.500000 0.550000 0.100000 -v 0.461940 0.741342 0.100000 -v 0.353553 0.903553 0.100000 -v 0.000000 1.050000 -0.100000 -v 0.191342 1.011940 -0.100000 -v 0.353553 0.903553 -0.100000 -v 0.461940 0.741342 -0.100000 -v 0.500000 0.550000 -0.100000 -v 0.461940 0.358658 -0.100000 -v 0.353553 0.196447 -0.100000 -v 0.191342 0.088060 -0.100000 -v 0.000000 0.050000 -0.100000 -v -0.191342 0.088060 -0.100000 -v -0.353553 0.196447 -0.100000 -v -0.461940 0.358658 -0.100000 -v -0.500000 0.550000 -0.100000 -v -0.461940 0.741342 -0.100000 -v -0.353553 0.903554 -0.100000 -v -0.191341 1.011940 -0.100000 -v 0.191342 1.011938 2.300000 -v -0.000000 1.049998 2.300000 -v -0.191341 1.011938 2.300000 -v -0.353553 0.903551 2.300000 -v -0.461940 0.741340 2.300000 -v -0.500000 0.549998 2.300000 -v -0.461940 0.358656 2.300000 -v -0.353553 0.196444 2.300000 -v -0.191342 0.088058 2.299999 -v 0.000000 0.049998 2.299999 -v 0.191342 0.088058 2.299999 -v 0.353553 0.196445 2.300000 -v 0.461940 0.358656 2.300000 -v 0.500000 0.549998 2.300000 -v 0.461940 0.741340 2.300000 -v 0.353553 0.903551 2.300000 -v -0.000000 1.050002 -2.300000 -v 0.191342 1.011942 -2.300000 -v 0.353553 0.903555 -2.300000 -v 0.461940 0.741344 -2.300000 -v 0.500000 0.550002 -2.300000 -v 0.461940 0.358660 -2.300000 -v 0.353553 0.196449 -2.300000 -v 0.191342 0.088062 -2.300001 -v 0.000000 0.050002 -2.300001 -v -0.191342 0.088062 -2.300001 -v -0.353553 0.196449 -2.300000 -v -0.461940 0.358660 -2.300000 -v -0.500000 0.550002 -2.300000 -v -0.461940 0.741344 -2.300000 -v -0.353553 0.903556 -2.300000 -v -0.191341 1.011942 -2.300000 -v 0.191342 1.011938 2.500000 -v -0.000000 1.049998 2.500000 -v -0.191342 1.011938 2.500000 -v -0.353553 0.903551 2.500000 -v -0.461940 0.741340 2.500000 -v -0.500000 0.549998 2.500000 -v -0.461940 0.358656 2.500000 -v -0.353553 0.196444 2.500000 -v -0.191342 0.088058 2.500000 -v 0.000000 0.049998 2.500000 -v 0.191342 0.088058 2.500000 -v 0.353553 0.196444 2.500000 -v 0.461940 0.358656 2.500000 -v 0.500000 0.549998 2.500000 -v 0.461940 0.741340 2.500000 -v 0.353553 0.903551 2.500000 -v -0.000000 1.050002 -2.500000 -v 0.191342 1.011942 -2.500000 -v 0.353553 0.903556 -2.500000 -v 0.461940 0.741344 -2.500000 -v 0.500000 0.550002 -2.500000 -v 0.461940 0.358660 -2.500000 -v 0.353553 0.196449 -2.500000 -v 0.191342 0.088062 -2.500001 -v 0.000000 0.050002 -2.500001 -v -0.191342 0.088062 -2.500001 -v -0.353553 0.196449 -2.500000 -v -0.461940 0.358660 -2.500000 -v -0.500000 0.550002 -2.500000 -v -0.461940 0.741344 -2.500000 -v -0.353553 0.903556 -2.500000 -v -0.191341 1.011942 -2.500000 -v 0.095671 0.780967 2.800000 -v -0.000000 0.799998 2.800000 -v -0.095671 0.780967 2.800000 -v -0.176777 0.726774 2.800000 -v -0.230970 0.645668 2.800000 -v -0.250000 0.549998 2.800000 -v -0.230970 0.454327 2.800000 -v -0.176777 0.373221 2.800000 -v -0.095671 0.319028 2.799999 -v -0.000000 0.299998 2.799999 -v 0.095671 0.319028 2.799999 -v 0.176777 0.373221 2.800000 -v 0.230970 0.454327 2.800000 -v 0.250000 0.549998 2.800000 -v 0.230970 0.645668 2.800000 -v 0.176777 0.726774 2.800000 -v -0.000000 0.800002 -2.800000 -v 0.095671 0.780972 -2.800000 -v 0.176777 0.726779 -2.800000 -v 0.230970 0.645673 -2.799999 -v 0.250000 0.550002 -2.800000 -v 0.230970 0.454332 -2.800000 -v 0.176777 0.373226 -2.800000 -v 0.095671 0.319033 -2.800000 -v 0.000000 0.300002 -2.800000 -v -0.095671 0.319033 -2.800000 -v -0.176777 0.373226 -2.800000 -v -0.230970 0.454332 -2.800000 -v -0.250000 0.550002 -2.800000 -v -0.230970 0.645673 -2.799999 -v -0.176777 0.726779 -2.800000 -v -0.095671 0.780972 -2.800000 -v 0.076537 0.734773 3.500000 -v 0.000000 0.749997 3.500000 -v -0.076536 0.734773 3.500000 -v -0.141421 0.691418 3.500000 -v -0.184776 0.626534 3.500000 -v -0.200000 0.549997 3.500000 -v -0.184776 0.473460 3.500000 -v -0.141421 0.408576 3.500000 -v -0.076536 0.365221 3.500000 -v 0.000000 0.349997 3.500000 -v 0.076537 0.365221 3.500000 -v 0.141422 0.408576 3.500000 -v 0.184776 0.473460 3.500000 -v 0.200000 0.549997 3.500000 -v 0.184776 0.626534 3.500000 -v 0.141422 0.691418 3.500000 -v 0.000000 0.750003 -3.500000 -v 0.076537 0.734779 -3.500000 -v 0.141422 0.691424 -3.500000 -v 0.184776 0.626540 -3.500000 -v 0.200000 0.550003 -3.500000 -v 0.184776 0.473466 -3.500000 -v 0.141422 0.408582 -3.500000 -v 0.076537 0.365227 -3.500000 -v 0.000000 0.350003 -3.500000 -v -0.076536 0.365227 -3.500000 -v -0.141421 0.408582 -3.500000 -v -0.184776 0.473466 -3.500000 -v -0.200000 0.550003 -3.500000 -v -0.184776 0.626540 -3.500000 -v -0.141421 0.691425 -3.500000 -v -0.076536 0.734779 -3.500000 -v 0.057403 0.688579 3.600000 -v 0.000000 0.699997 3.600000 -v -0.057402 0.688579 3.600000 -v -0.106066 0.656063 3.600000 -v -0.138582 0.607399 3.599999 -v -0.150000 0.549997 3.599999 -v -0.138582 0.492594 3.599999 -v -0.106066 0.443931 3.599999 -v -0.057402 0.411415 3.599999 -v 0.000000 0.399997 3.599999 -v 0.057403 0.411415 3.599999 -v 0.106066 0.443931 3.599999 -v 0.138582 0.492594 3.599999 -v 0.150000 0.549997 3.599999 -v 0.138582 0.607399 3.599999 -v 0.106066 0.656063 3.600000 -v 0.000000 0.700003 -3.599999 -v 0.057403 0.688585 -3.599999 -v 0.106066 0.656069 -3.599999 -v 0.138582 0.607406 -3.599999 -v 0.150000 0.550003 -3.600000 -v 0.138582 0.492601 -3.600000 -v 0.106066 0.443937 -3.600000 -v 0.057403 0.411421 -3.600000 -v 0.000000 0.400003 -3.600000 -v -0.057402 0.411421 -3.600000 -v -0.106066 0.443937 -3.600000 -v -0.138582 0.492601 -3.600000 -v -0.150000 0.550003 -3.600000 -v -0.138582 0.607406 -3.599999 -v -0.106066 0.656069 -3.599999 -v -0.057402 0.688585 -3.599999 -v 0.023918 0.607739 3.599999 -v 0.000000 0.612497 3.599999 -v -0.023917 0.607739 3.599999 -v -0.044194 0.594191 3.599999 -v -0.057742 0.573915 3.599999 -v -0.062500 0.549997 3.599999 -v -0.057742 0.526079 3.599999 -v -0.044194 0.505803 3.599999 -v -0.023917 0.492254 3.599999 -v 0.000000 0.487497 3.599999 -v 0.023918 0.492254 3.599999 -v 0.044194 0.505803 3.599999 -v 0.057743 0.526079 3.599999 -v 0.062500 0.549997 3.599999 -v 0.057743 0.573915 3.599999 -v 0.044194 0.594191 3.599999 -v 0.000000 0.612503 -3.599999 -v 0.023918 0.607746 -3.599999 -v 0.044195 0.594197 -3.599999 -v 0.057743 0.573921 -3.599999 -v 0.062500 0.550003 -3.599999 -v 0.057743 0.526085 -3.599999 -v 0.044195 0.505809 -3.599999 -v 0.023918 0.492261 -3.599999 -v 0.000000 0.487503 -3.599999 -v -0.023917 0.492261 -3.599999 -v -0.044194 0.505809 -3.599999 -v -0.057742 0.526085 -3.599999 -v -0.062500 0.550003 -3.599999 -v -0.057742 0.573921 -3.599999 -v -0.044194 0.594197 -3.599999 -v -0.023917 0.607746 -3.599999 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.549996 4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.000000 0.550004 -4.200000 -v 0.500000 -0.049998 -2.300001 -v 0.500000 -0.050002 2.299999 -v -0.500000 -0.049998 -2.300001 -v 0.500000 -0.049998 -2.500001 -v -0.500000 -0.050002 2.299999 -v -0.500000 -0.049998 -2.500001 -v -0.500000 -0.050002 2.500000 -v 0.500000 -0.050002 2.500000 -v 0.000000 0.730000 -3.474999 -v 0.000000 0.730000 3.475001 -v 0.068883 0.716299 -3.474999 -v 0.068883 0.716298 3.475001 -v 0.127279 0.677280 -3.474998 -v 0.127279 0.677279 3.475001 -v 0.166298 0.618883 -3.474999 -v 0.166298 0.618883 3.475000 -v 0.180000 0.550000 -3.474999 -v 0.180000 0.550000 3.475000 -v 0.166298 0.481117 -3.475000 -v 0.166298 0.481117 3.474999 -v 0.127279 0.422721 -3.475001 -v 0.127279 0.422720 3.474999 -v 0.068883 0.383702 -3.475001 -v 0.068883 0.383701 3.474999 -v 0.000000 0.370000 -3.475000 -v 0.000000 0.370000 3.474999 -v -0.068883 0.383702 -3.475001 -v -0.068883 0.383701 3.474999 -v -0.127279 0.422721 -3.475001 -v -0.127279 0.422720 3.474999 -v -0.166298 0.481117 -3.475000 -v -0.166298 0.481117 3.474999 -v -0.180000 0.550000 -3.475000 -v -0.180000 0.550000 3.475000 -v -0.166298 0.618883 -3.474999 -v -0.166298 0.618883 3.475000 -v -0.127279 0.677280 -3.474999 -v -0.127279 0.677279 3.475001 -v -0.068883 0.716299 -3.474999 -v -0.068883 0.716298 3.475001 -v 0.078450 0.739398 -3.430000 -v 0.000000 0.755003 -3.430000 -v 0.144957 0.694960 -3.430000 -v 0.189396 0.628453 -3.430000 -v 0.205000 0.550003 -3.430000 -v 0.189396 0.471553 -3.430000 -v 0.144957 0.405046 -3.430000 -v 0.078450 0.360608 -3.430000 -v 0.000000 0.345003 -3.430000 -v -0.078450 0.360608 -3.430000 -v -0.144956 0.405046 -3.430000 -v -0.189395 0.471553 -3.430000 -v -0.205000 0.550003 -3.430000 -v -0.189395 0.628453 -3.430000 -v -0.144956 0.694960 -3.430000 -v -0.078450 0.739398 -3.430000 -v 0.000000 0.793253 -2.894500 -v 0.093088 0.774736 -2.894500 -v 0.172004 0.722006 -2.894500 -v 0.224734 0.643090 -2.894500 -v 0.243250 0.550003 -2.894500 -v 0.224734 0.456915 -2.894500 -v 0.172004 0.377999 -2.894500 -v 0.093088 0.325269 -2.894500 -v 0.000000 0.306753 -2.894500 -v -0.093088 0.325269 -2.894500 -v -0.172004 0.377999 -2.894500 -v -0.224734 0.456915 -2.894500 -v -0.243250 0.550003 -2.894500 -v -0.224734 0.643090 -2.894500 -v -0.172004 0.722006 -2.894500 -v -0.093088 0.774736 -2.894500 -v 0.000000 0.754997 3.430000 -v 0.078450 0.739392 3.430000 -v -0.078450 0.739392 3.430000 -v -0.144957 0.694954 3.430000 -v -0.189395 0.628447 3.430000 -v -0.205000 0.549997 3.430000 -v -0.189395 0.471547 3.430000 -v -0.144957 0.405040 3.430000 -v -0.078450 0.360602 3.430000 -v 0.000000 0.344997 3.430000 -v 0.078450 0.360602 3.430000 -v 0.144957 0.405040 3.430000 -v 0.189396 0.471547 3.430000 -v 0.205000 0.549997 3.430000 -v 0.189396 0.628447 3.430000 -v 0.144957 0.694954 3.430000 -v 0.093088 0.774731 2.894500 -v -0.000000 0.793247 2.894500 -v -0.093088 0.774731 2.894500 -v -0.172004 0.722001 2.894500 -v -0.224734 0.643085 2.894500 -v -0.243250 0.549997 2.894500 -v -0.224734 0.456910 2.894500 -v -0.172004 0.377994 2.894500 -v -0.093088 0.325264 2.894500 -v 0.000000 0.306747 2.894500 -v 0.093088 0.325264 2.894500 -v 0.172004 0.377994 2.894500 -v 0.224734 0.456910 2.894500 -v 0.243250 0.549997 2.894500 -v 0.224734 0.643085 2.894500 -v 0.172004 0.722001 2.894500 -vt 0.492092 0.799446 -vt 0.521787 0.799446 -vt 0.521787 0.824815 -vt 0.551483 0.799446 -vt 0.551483 0.824815 -vt 0.581178 0.799446 -vt 0.581178 0.824815 -vt 0.610874 0.799446 -vt 0.640569 0.799446 -vt 0.640569 0.824815 -vt 0.670265 0.799446 -vt 0.670264 0.824815 -vt 0.699960 0.799446 -vt 0.699960 0.824815 -vt 0.729655 0.799446 -vt 0.729655 0.824815 -vt 0.254528 0.799446 -vt 0.284223 0.799446 -vt 0.284223 0.824815 -vt 0.313919 0.799446 -vt 0.313919 0.824815 -vt 0.343614 0.799446 -vt 0.343614 0.824815 -vt 0.373310 0.799446 -vt 0.403005 0.799446 -vt 0.403005 0.824815 -vt 0.432701 0.799446 -vt 0.432701 0.824815 -vt 0.452498 0.742202 -vt 0.427752 0.742202 -vt 0.427751 0.463144 -vt 0.462396 0.799446 -vt 0.492092 0.824815 -vt 0.462396 0.824815 -vt 0.556464 0.952230 -vt 0.556464 0.977599 -vt 0.531718 0.977599 -vt 0.494566 0.787005 -vt 0.519313 0.787005 -vt 0.464871 0.787005 -vt 0.489617 0.787005 -vt 0.435175 0.787005 -vt 0.459922 0.787005 -vt 0.405480 0.787005 -vt 0.430226 0.787005 -vt 0.375784 0.787005 -vt 0.400531 0.787005 -vt 0.346089 0.787005 -vt 0.370835 0.787005 -vt 0.316393 0.787005 -vt 0.341140 0.787005 -vt 0.286698 0.787005 -vt 0.311444 0.787005 -vt 0.257002 0.787005 -vt 0.281749 0.787005 -vt 0.702435 0.787005 -vt 0.727181 0.787006 -vt 0.672739 0.787005 -vt 0.697485 0.787005 -vt 0.643044 0.787005 -vt 0.667790 0.787005 -vt 0.613348 0.787005 -vt 0.638094 0.787005 -vt 0.583653 0.787005 -vt 0.608399 0.787005 -vt 0.553957 0.787005 -vt 0.578704 0.787005 -vt 0.524262 0.787005 -vt 0.549008 0.787005 -vt 0.519312 0.837256 -vt 0.494566 0.837256 -vt 0.549008 0.837256 -vt 0.524262 0.837256 -vt 0.578703 0.837256 -vt 0.553957 0.837256 -vt 0.608399 0.837256 -vt 0.583653 0.837256 -vt 0.638094 0.837256 -vt 0.613348 0.837256 -vt 0.667790 0.837256 -vt 0.643044 0.837256 -vt 0.697485 0.837256 -vt 0.672739 0.837256 -vt 0.727181 0.837256 -vt 0.702435 0.837256 -vt 0.281749 0.837255 -vt 0.257002 0.837255 -vt 0.254528 0.824815 -vt 0.311444 0.837255 -vt 0.286698 0.837255 -vt 0.341140 0.837256 -vt 0.316393 0.837255 -vt 0.373310 0.824815 -vt 0.370835 0.837256 -vt 0.346089 0.837256 -vt 0.400531 0.837256 -vt 0.375784 0.837256 -vt 0.430226 0.837256 -vt 0.405480 0.837256 -vt 0.459922 0.837256 -vt 0.435175 0.837256 -vt 0.489617 0.837256 -vt 0.464871 0.837256 -vt 0.477244 0.742202 -vt 0.452498 0.463143 -vt 0.501990 0.742202 -vt 0.477244 0.463143 -vt 0.526736 0.463144 -vt 0.526736 0.742202 -vt 0.551483 0.463144 -vt 0.551483 0.742202 -vt 0.576229 0.742202 -vt 0.600975 0.463144 -vt 0.600975 0.742202 -vt 0.625721 0.742202 -vt 0.650468 0.742202 -vt 0.625721 0.463144 -vt 0.279274 0.742202 -vt 0.254528 0.742202 -vt 0.254528 0.463144 -vt 0.304020 0.742202 -vt 0.279274 0.463144 -vt 0.328767 0.742202 -vt 0.304020 0.463144 -vt 0.353513 0.742202 -vt 0.328766 0.463144 -vt 0.378259 0.742202 -vt 0.353513 0.463144 -vt 0.403005 0.742202 -vt 0.378259 0.463144 -vt 0.403005 0.463144 -vt 0.254528 0.245117 -vt 0.254528 0.220371 -vt 0.533587 0.220371 -vt 0.533587 0.269864 -vt 0.254528 0.269863 -vt 0.254528 0.294610 -vt 0.254528 0.319356 -vt 0.533587 0.294610 -vt 0.254528 0.344102 -vt 0.533587 0.319356 -vt 0.254528 0.368848 -vt 0.533587 0.344102 -vt 0.254528 0.393595 -vt 0.533587 0.368849 -vt 0.254528 0.418341 -vt 0.533587 0.393595 -vt 0.533587 0.047147 -vt 0.254528 0.047147 -vt 0.254528 0.022401 -vt 0.254528 0.071894 -vt 0.533587 0.096640 -vt 0.254528 0.096640 -vt 0.254528 0.121386 -vt 0.254528 0.146132 -vt 0.533587 0.121386 -vt 0.254528 0.170879 -vt 0.533587 0.146132 -vt 0.254528 0.195625 -vt 0.533587 0.170879 -vt 0.581211 0.952230 -vt 0.581211 0.977599 -vt 0.605957 0.977599 -vt 0.630703 0.952230 -vt 0.630703 0.977599 -vt 0.655449 0.977599 -vt 0.821007 0.098508 -vt 0.821007 0.022401 -vt 0.825835 0.074237 -vt 0.695270 0.705608 -vt 0.758693 0.692923 -vt 0.822115 0.705608 -vt 0.734422 0.688095 -vt 0.713846 0.674347 -vt 0.700098 0.653771 -vt 0.695270 0.629501 -vt 0.457480 0.977599 -vt 0.381373 0.977599 -vt 0.381373 0.952230 -vt 0.482226 0.952230 -vt 0.482226 0.977599 -vt 0.506972 0.977599 -vt 0.531718 0.952230 -vt 0.454366 0.907427 -vt 0.429620 0.907427 -vt 0.429620 0.882058 -vt 0.479112 0.882058 -vt 0.479112 0.907427 -vt 0.503858 0.907427 -vt 0.528605 0.882058 -vt 0.528605 0.907427 -vt 0.882962 0.249826 -vt 0.858692 0.254654 -vt 0.819540 0.237142 -vt 0.891188 0.751518 -vt 0.943024 0.756346 -vt 0.866917 0.756346 -vt 0.925512 0.668652 -vt 0.943024 0.629501 -vt 0.930340 0.692923 -vt 0.911764 0.648077 -vt 0.891188 0.634328 -vt 0.866917 0.629501 -vt 0.604711 0.907427 -vt 0.604712 0.882058 -vt 0.731556 0.882058 -vt 0.330635 0.882059 -vt 0.330635 0.907427 -vt 0.254528 0.907427 -vt 0.355381 0.907427 -vt 0.380127 0.882058 -vt 0.380127 0.907427 -vt 0.404873 0.907427 -vt 0.123985 0.807563 -vt 0.119529 0.797773 -vt 0.160378 0.771535 -vt 0.124345 0.818284 -vt 0.171693 0.799004 -vt 0.120556 0.828292 -vt 0.171596 0.828676 -vt 0.139109 0.876792 -vt 0.113207 0.836045 -vt 0.103388 0.840328 -vt 0.092583 0.840466 -vt 0.111793 0.887963 -vt 0.054992 0.876764 -vt 0.082447 0.836877 -vt 0.033952 0.855940 -vt 0.074549 0.829651 -vt 0.070085 0.819933 -vt 0.069728 0.809232 -vt 0.022492 0.828614 -vt 0.033709 0.771511 -vt 0.073532 0.799194 -vt 0.080915 0.791363 -vt 0.090753 0.786942 -vt 0.054695 0.750483 -vt 0.111900 0.739095 -vt 0.101546 0.786608 -vt 0.111651 0.790413 -vt 0.139376 0.750489 -vt 0.706324 0.080556 -vt 0.695471 0.074614 -vt 0.713644 0.028534 -vt 0.715366 0.089002 -vt 0.735351 0.040417 -vt 0.722033 0.099425 -vt 0.753435 0.057309 -vt 0.774520 0.101657 -vt 0.725908 0.111176 -vt 0.776205 0.126346 -vt 0.726751 0.123520 -vt 0.724508 0.135688 -vt 0.761341 0.173147 -vt 0.719319 0.146921 -vt 0.711508 0.156517 -vt 0.628686 0.111176 -vt 0.627843 0.123520 -vt 0.578389 0.126346 -vt 0.587825 0.078156 -vt 0.632561 0.099425 -vt 0.601159 0.057309 -vt 0.639228 0.089002 -vt 0.648270 0.080556 -vt 0.659123 0.074614 -vt 0.619243 0.040417 -vt 0.664924 0.022401 -vt 0.671110 0.071548 -vt 0.683483 0.071548 -vt 0.689670 0.022401 -vt 0.793444 0.552161 -vt 0.783547 0.552299 -vt 0.783299 0.543401 -vt 0.803342 0.552299 -vt 0.793444 0.543260 -vt 0.813232 0.552712 -vt 0.803589 0.543401 -vt 0.823106 0.553399 -vt 0.813726 0.543824 -vt 0.735822 0.403499 -vt 0.744723 0.403623 -vt 0.744723 0.413521 -vt 0.578389 0.403499 -vt 0.587290 0.403623 -vt 0.587290 0.413521 -vt 0.854040 0.548325 -vt 0.852562 0.557103 -vt 0.842779 0.555596 -vt 0.862300 0.558882 -vt 0.871984 0.560931 -vt 0.864021 0.550148 -vt 0.722868 0.550148 -vt 0.724589 0.558882 -vt 0.714905 0.560931 -vt 0.732849 0.548325 -vt 0.734327 0.557103 -vt 0.744109 0.555596 -vt 0.885978 0.152212 -vt 0.876079 0.152211 -vt 0.875955 0.143311 -vt 0.821991 0.878918 -vt 0.812093 0.878918 -vt 0.811969 0.870017 -vt 0.773162 0.543823 -vt 0.773657 0.552711 -vt 0.763782 0.553399 -vt 0.666418 0.278440 -vt 0.666666 0.269542 -vt 0.676563 0.269679 -vt 0.656776 0.269129 -vt 0.646901 0.268441 -vt 0.656281 0.278017 -vt 0.819540 0.391966 -vt 0.819663 0.383065 -vt 0.829562 0.383065 -vt 0.874612 0.383065 -vt 0.884510 0.383065 -vt 0.884634 0.391966 -vt 0.617445 0.264737 -vt 0.627228 0.266245 -vt 0.625995 0.275061 -vt 0.605987 0.271692 -vt 0.607708 0.262958 -vt 0.596061 0.269592 -vt 0.598024 0.260909 -vt 0.745418 0.262958 -vt 0.755102 0.260909 -vt 0.757066 0.269592 -vt 0.735681 0.264737 -vt 0.747140 0.271692 -vt 0.727131 0.275060 -vt 0.725898 0.266245 -vt 0.821007 0.177225 -vt 0.821131 0.168324 -vt 0.831029 0.168324 -vt 0.682119 0.413521 -vt 0.682119 0.403623 -vt 0.691020 0.403499 -vt 0.696846 0.278017 -vt 0.696351 0.269129 -vt 0.706226 0.268441 -vt 0.686708 0.278440 -vt 0.686461 0.269541 -vt 0.676563 0.278581 -vt 0.890751 0.801148 -vt 0.889244 0.875682 -vt 0.887942 0.875737 -vt 0.792403 0.566305 -vt 0.784980 0.566408 -vt 0.801908 0.566408 -vt 0.794485 0.566305 -vt 0.811407 0.566775 -vt 0.803989 0.566466 -vt 0.820891 0.567407 -vt 0.813485 0.566891 -vt 0.758851 0.404860 -vt 0.758851 0.412284 -vt 0.601418 0.404860 -vt 0.601418 0.412284 -vt 0.849188 0.570877 -vt 0.841850 0.569747 -vt 0.858544 0.572557 -vt 0.851241 0.571223 -vt 0.867849 0.574496 -vt 0.860586 0.572960 -vt 0.726303 0.572960 -vt 0.719040 0.574497 -vt 0.735648 0.571223 -vt 0.728345 0.572557 -vt 0.745038 0.569747 -vt 0.737701 0.570877 -vt 0.884740 0.166339 -vt 0.877316 0.166339 -vt 0.820754 0.893046 -vt 0.813330 0.893046 -vt 0.773404 0.566891 -vt 0.765998 0.567406 -vt 0.782899 0.566466 -vt 0.775482 0.566775 -vt 0.911868 0.920544 -vt 0.668099 0.255433 -vt 0.675522 0.255536 -vt 0.658601 0.255065 -vt 0.666018 0.255375 -vt 0.649117 0.254434 -vt 0.656523 0.254949 -vt 0.820901 0.368937 -vt 0.828325 0.368937 -vt 0.875849 0.368937 -vt 0.883273 0.368937 -vt 0.620820 0.250963 -vt 0.628157 0.252093 -vt 0.611464 0.249283 -vt 0.618767 0.250617 -vt 0.602159 0.247344 -vt 0.609422 0.248880 -vt 0.743704 0.248880 -vt 0.750968 0.247344 -vt 0.734359 0.250617 -vt 0.741662 0.249283 -vt 0.724969 0.252093 -vt 0.732306 0.250963 -vt 0.822368 0.154196 -vt 0.829792 0.154196 -vt 0.667991 0.412284 -vt 0.667991 0.404860 -vt 0.696604 0.254949 -vt 0.704010 0.254434 -vt 0.687108 0.255374 -vt 0.694525 0.255065 -vt 0.677604 0.255536 -vt 0.685027 0.255432 -vt 0.790390 0.577220 -vt 0.787297 0.577263 -vt 0.799592 0.577263 -vt 0.796499 0.577220 -vt 0.808789 0.577561 -vt 0.805699 0.577432 -vt 0.817975 0.578116 -vt 0.814889 0.577901 -vt 0.769736 0.407026 -vt 0.769736 0.410119 -vt 0.612303 0.407026 -vt 0.612303 0.410119 -vt 0.845390 0.581306 -vt 0.842333 0.580835 -vt 0.854457 0.582876 -vt 0.851414 0.582321 -vt 0.863477 0.584698 -vt 0.860451 0.584058 -vt 0.726438 0.584058 -vt 0.723412 0.584698 -vt 0.735475 0.582321 -vt 0.732432 0.582877 -vt 0.744556 0.580835 -vt 0.741499 0.581306 -vt 0.882575 0.177225 -vt 0.879482 0.177225 -vt 0.818589 0.903931 -vt 0.815495 0.903931 -vt 0.771999 0.577900 -vt 0.768914 0.578115 -vt 0.781190 0.577432 -vt 0.778099 0.577561 -vt 0.670416 0.244578 -vt 0.673509 0.244621 -vt 0.661218 0.244279 -vt 0.664309 0.244408 -vt 0.652033 0.243725 -vt 0.655118 0.243940 -vt 0.823066 0.358051 -vt 0.826159 0.358051 -vt 0.878014 0.358051 -vt 0.881108 0.358051 -vt 0.624618 0.240534 -vt 0.627675 0.241005 -vt 0.615550 0.238964 -vt 0.618593 0.239520 -vt 0.606530 0.237142 -vt 0.609557 0.237782 -vt 0.743570 0.237782 -vt 0.746596 0.237142 -vt 0.734533 0.239520 -vt 0.737576 0.238964 -vt 0.725451 0.241005 -vt 0.728508 0.240534 -vt 0.824533 0.143311 -vt 0.827627 0.143311 -vt 0.657106 0.410119 -vt 0.657106 0.407026 -vt 0.698008 0.243939 -vt 0.701094 0.243725 -vt 0.688818 0.244408 -vt 0.691908 0.244279 -vt 0.679618 0.244621 -vt 0.682711 0.244578 -vt 0.902736 0.802310 -vt 0.905694 0.802863 -vt 0.890550 0.875741 -vt 0.908627 0.803534 -vt 0.911530 0.804324 -vt 0.914400 0.805230 -vt 0.896766 0.801513 -vt 0.899758 0.801878 -vt 0.893762 0.801270 -vt 0.866917 0.804172 -vt 0.869827 0.803381 -vt 0.872766 0.802708 -vt 0.875730 0.802154 -vt 0.878714 0.801721 -vt 0.881713 0.801408 -vt 0.884723 0.801217 -vt 0.887737 0.801148 -vt 0.866917 0.920545 -vt 0.780461 0.822722 -vt 0.798567 0.750410 -vt 0.799836 0.750697 -vt 0.777553 0.821931 -vt 0.774680 0.821023 -vt 0.822115 0.821932 -vt 0.819208 0.822723 -vt 0.801109 0.750432 -vt 0.816272 0.823395 -vt 0.786350 0.824000 -vt 0.783399 0.823395 -vt 0.789324 0.824485 -vt 0.792315 0.824849 -vt 0.795318 0.825093 -vt 0.798328 0.825215 -vt 0.813320 0.824000 -vt 0.801341 0.825215 -vt 0.804352 0.825093 -vt 0.807355 0.824850 -vt 0.810346 0.824485 -vt 0.838116 0.268402 -vt 0.911764 0.737769 -vt 0.824368 0.288978 -vt 0.925512 0.717194 -vt 0.819540 0.313249 -vt 0.946385 0.313249 -vt 0.941557 0.288978 -vt 0.946385 0.237142 -vt 0.927809 0.268402 -vt 0.907233 0.254654 -vt 0.929276 0.053662 -vt 0.908700 0.039913 -vt 0.947852 0.022401 -vt 0.943024 0.074237 -vt 0.947852 0.098508 -vt 0.655449 0.952230 -vt 0.731556 0.952230 -vt 0.860159 0.039913 -vt 0.839583 0.053662 -vt 0.884430 0.035086 -vt 0.254528 0.977599 -vt 0.254528 0.952230 -vt 0.822115 0.629501 -vt 0.817287 0.653771 -vt 0.803539 0.674347 -vt 0.782963 0.688095 -vt 0.116063 0.693750 -vt 0.104355 0.693818 -vt 0.104355 0.023013 -vt 0.092648 0.693886 -vt 0.092648 0.023081 -vt 0.080940 0.693953 -vt 0.080940 0.023149 -vt 0.069232 0.694021 -vt 0.069232 0.023217 -vt 0.057524 0.694089 -vt 0.045817 0.694157 -vt 0.045817 0.023352 -vt 0.034109 0.694225 -vt 0.022401 0.694293 -vt 0.022401 0.023488 -vt 0.209725 0.693206 -vt 0.198018 0.693274 -vt 0.198017 0.022469 -vt 0.186310 0.693342 -vt 0.186310 0.022537 -vt 0.174602 0.693410 -vt 0.174602 0.022605 -vt 0.162894 0.693478 -vt 0.162894 0.022673 -vt 0.151186 0.693546 -vt 0.151186 0.022741 -vt 0.139479 0.693614 -vt 0.139479 0.022809 -vt 0.127771 0.693682 -vt 0.116063 0.022945 -vt 0.127771 0.022877 -vt 0.664525 0.346512 -vt 0.646160 0.277312 -vt 0.652497 0.346010 -vt 0.615967 0.273515 -vt 0.616560 0.342503 -vt 0.592818 0.338505 -vt 0.772087 0.336013 -vt 0.737159 0.273515 -vt 0.760308 0.338505 -vt 0.736567 0.342502 -vt 0.700630 0.346010 -vt 0.706967 0.277312 -vt 0.688601 0.346512 -vt 0.676563 0.346679 -vt 0.664191 0.358525 -vt 0.640487 0.345174 -vt 0.651829 0.358009 -vt 0.627171 0.355948 -vt 0.628505 0.344005 -vt 0.604661 0.340669 -vt 0.614895 0.354404 -vt 0.590494 0.350296 -vt 0.581040 0.336013 -vt 0.774737 0.347734 -vt 0.748465 0.340669 -vt 0.762632 0.350296 -vt 0.738232 0.354404 -vt 0.725956 0.355948 -vt 0.724622 0.344005 -vt 0.712640 0.345174 -vt 0.701298 0.358009 -vt 0.688935 0.358525 -vt 0.676563 0.358697 -vt 0.781406 0.475328 -vt 0.793444 0.475161 -vt 0.805482 0.475328 -vt 0.823848 0.544528 -vt 0.817511 0.475830 -vt 0.865346 0.481171 -vt 0.844013 0.546780 -vt 0.873947 0.552248 -vt 0.877189 0.483335 -vt 0.709699 0.483335 -vt 0.712942 0.552249 -vt 0.721542 0.481172 -vt 0.742876 0.546780 -vt 0.763041 0.544528 -vt 0.757368 0.476666 -vt 0.769378 0.475830 -vt 0.781072 0.463316 -vt 0.793444 0.463143 -vt 0.818178 0.463831 -vt 0.830522 0.464690 -vt 0.829521 0.476666 -vt 0.841503 0.477836 -vt 0.855113 0.467436 -vt 0.853448 0.479338 -vt 0.867342 0.469321 -vt 0.891618 0.474105 -vt 0.888968 0.485827 -vt 0.707375 0.471545 -vt 0.697921 0.485827 -vt 0.719547 0.469321 -vt 0.733441 0.479338 -vt 0.745386 0.477836 -vt 0.731776 0.467436 -vt 0.756367 0.464691 -vt 0.768710 0.463831 -vt 0.610874 0.824815 -vt 0.501990 0.463144 -vt 0.576229 0.463144 -vt 0.650468 0.463144 -vt 0.533587 0.245117 -vt 0.533587 0.418341 -vt 0.533587 0.022401 -vt 0.533587 0.071894 -vt 0.533587 0.195625 -vt 0.605957 0.952230 -vt 0.457480 0.952230 -vt 0.506972 0.952230 -vt 0.454366 0.882058 -vt 0.503858 0.882058 -vt 0.731557 0.907427 -vt 0.254528 0.882059 -vt 0.355381 0.882058 -vt 0.404873 0.882058 -vt 0.160132 0.855993 -vt 0.082343 0.887953 -vt 0.022401 0.798956 -vt 0.082158 0.739095 -vt 0.766769 0.078156 -vt 0.771719 0.150682 -vt 0.745720 0.192340 -vt 0.580074 0.101657 -vt 0.640950 0.028534 -vt 0.735822 0.413645 -vt 0.578389 0.413645 -vt 0.886101 0.143311 -vt 0.822115 0.870017 -vt 0.829686 0.391966 -vt 0.874488 0.391966 -vt 0.831153 0.177225 -vt 0.691020 0.413645 -vt 0.911794 0.920544 -vt 0.866992 0.920545 -vt 0.731556 0.977599 -vt 0.057524 0.023284 -vt 0.034109 0.023420 -vt 0.209725 0.022401 -vt 0.639486 0.357150 -vt 0.602666 0.352519 -vt 0.578389 0.347735 -vt 0.750461 0.352519 -vt 0.713641 0.357150 -vt 0.805816 0.463315 -vt 0.842836 0.465892 -vt 0.879513 0.471544 -vt 0.695270 0.474106 -vt 0.744052 0.465893 -vn 0.195100 0.980800 0.000000 -vn 0.555600 0.831500 0.000000 -vn 0.831500 0.555600 0.000000 -vn 0.980800 0.195100 0.000000 -vn 0.980800 -0.195100 -0.000000 -vn 0.831500 -0.555600 -0.000000 -vn 0.555600 -0.831500 -0.000000 -vn 0.195100 -0.980800 -0.000000 -vn -0.195100 -0.980800 -0.000000 -vn -0.555600 -0.831500 -0.000000 -vn -0.831500 -0.555600 -0.000000 -vn -0.980800 -0.195100 -0.000000 -vn -0.980800 0.195100 0.000000 -vn -0.831500 0.555600 0.000000 -vn -0.195100 0.980800 0.000000 -vn -0.555600 0.831500 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 -1.000000 -0.000000 -vn -1.000000 0.000000 0.000000 -vn 0.151100 0.759400 0.632800 -vn -0.151100 0.759400 0.632800 -vn -0.430200 0.643800 0.632800 -vn -0.643800 0.430200 0.632800 -vn -0.759400 0.151100 0.632800 -vn -0.759400 -0.151100 0.632800 -vn -0.643800 -0.430200 0.632800 -vn -0.430200 -0.643800 0.632800 -vn -0.151100 -0.759400 0.632800 -vn 0.151100 -0.759400 0.632800 -vn 0.430200 -0.643800 0.632800 -vn 0.643800 -0.430200 0.632800 -vn 0.759400 -0.151100 0.632800 -vn 0.759400 0.151100 0.632800 -vn 0.643800 0.430200 0.632800 -vn 0.430200 0.643800 0.632800 -vn 0.151100 0.759400 -0.632800 -vn 0.430200 0.643800 -0.632800 -vn 0.643800 0.430200 -0.632800 -vn 0.759400 0.151100 -0.632800 -vn 0.759400 -0.151100 -0.632800 -vn 0.643800 -0.430200 -0.632800 -vn 0.430200 -0.643800 -0.632800 -vn 0.151100 -0.759400 -0.632800 -vn -0.151100 -0.759400 -0.632800 -vn -0.430200 -0.643800 -0.632800 -vn -0.643800 -0.430200 -0.632800 -vn -0.759400 -0.151100 -0.632800 -vn -0.759400 0.151100 -0.632800 -vn -0.643800 0.430200 -0.632800 -vn -0.430200 0.643800 -0.632800 -vn -0.151100 0.759400 -0.632800 -vn 0.194600 0.978400 0.069900 -vn -0.194600 0.978400 0.069900 -vn -0.554200 0.829400 0.069900 -vn -0.829400 0.554200 0.069900 -vn -0.978400 0.194600 0.069900 -vn -0.978400 -0.194600 0.069900 -vn -0.829400 -0.554200 0.069900 -vn -0.554200 -0.829400 0.069900 -vn -0.194600 -0.978400 0.069900 -vn 0.194600 -0.978400 0.069900 -vn 0.554200 -0.829400 0.069900 -vn 0.829400 -0.554200 0.069900 -vn 0.978400 -0.194600 0.069900 -vn 0.978400 0.194600 0.069900 -vn 0.829400 0.554200 0.069900 -vn 0.554200 0.829400 0.069900 -vn 0.194600 0.978400 -0.069900 -vn 0.554200 0.829400 -0.069900 -vn 0.829400 0.554200 -0.069900 -vn 0.978400 0.194600 -0.069900 -vn 0.978400 -0.194600 -0.069900 -vn 0.829400 -0.554200 -0.069900 -vn 0.554200 -0.829400 -0.069900 -vn 0.194600 -0.978400 -0.069900 -vn -0.194600 -0.978400 -0.069900 -vn -0.554200 -0.829400 -0.069900 -vn -0.829400 -0.554200 -0.069900 -vn -0.978400 -0.194600 -0.069900 -vn -0.978400 0.194600 -0.069900 -vn -0.829400 0.554200 -0.069900 -vn -0.554200 0.829400 -0.069900 -vn -0.194600 0.978400 -0.069900 -vn 0.000000 -0.994600 -0.103600 -vn 0.175200 0.880600 0.440300 -vn -0.175200 0.880600 0.440300 -vn -0.498800 0.746500 0.440300 -vn -0.746500 0.498800 0.440300 -vn -0.880600 0.175200 0.440300 -vn -0.880600 -0.175200 0.440300 -vn -0.746500 -0.498800 0.440300 -vn -0.498800 -0.746500 0.440300 -vn -0.175200 -0.880600 0.440300 -vn 0.175200 -0.880600 0.440300 -vn 0.498800 -0.746500 0.440300 -vn 0.746500 -0.498800 0.440300 -vn 0.880600 -0.175200 0.440300 -vn 0.880600 0.175200 0.440300 -vn 0.746500 0.498800 0.440300 -vn 0.498800 0.746500 0.440300 -vn 0.175200 0.880600 -0.440300 -vn 0.498800 0.746500 -0.440300 -vn 0.746500 0.498800 -0.440300 -vn 0.880600 0.175200 -0.440300 -vn 0.880600 -0.175200 -0.440300 -vn 0.746500 -0.498800 -0.440300 -vn 0.498800 -0.746500 -0.440300 -vn 0.175200 -0.880600 -0.440300 -vn -0.175200 -0.880600 -0.440300 -vn -0.498800 -0.746500 -0.440300 -vn -0.746500 -0.498800 -0.440300 -vn -0.880600 -0.175200 -0.440300 -vn -0.880600 0.175200 -0.440300 -vn -0.746500 0.498800 -0.440300 -vn -0.498800 0.746500 -0.440300 -vn -0.175200 0.880600 -0.440300 -vn -0.975700 -0.194100 0.101600 -vn -0.827200 -0.552700 0.101600 -vn -0.552700 -0.827200 0.101600 -vn -0.194100 -0.975700 0.101600 -vn -0.827200 0.552700 0.101600 -vn -0.552700 0.827200 0.101600 -vn 0.194100 -0.975700 0.101600 -vn 0.552700 -0.827200 0.101600 -vn 0.827200 -0.552700 0.101600 -vn 0.975700 -0.194100 0.101600 -vn 0.975700 0.194100 0.101600 -vn 0.827200 0.552700 0.101600 -vn 0.552700 0.827200 0.101600 -vn -0.194100 0.975700 0.101600 -vn 0.552700 -0.827200 -0.101600 -vn 0.194100 -0.975700 -0.101600 -vn -0.194100 -0.975700 -0.101600 -vn -0.552700 -0.827200 -0.101600 -vn 0.975700 -0.194100 -0.101600 -vn 0.975700 0.194100 -0.101600 -vn 0.827200 0.552700 -0.101600 -vn 0.552700 0.827200 -0.101600 -vn 0.194100 0.975700 -0.101600 -vn -0.194100 0.975700 -0.101600 -vn -0.552700 0.827200 -0.101600 -vn -0.827200 0.552700 -0.101600 -vn -0.975700 0.194100 -0.101600 -vn -0.975700 -0.194100 -0.101600 -vn 0.194100 0.975700 0.101600 -vn 0.827200 -0.552700 -0.101600 -vn -0.827200 -0.552700 -0.101600 -vn -0.975700 0.194100 0.101600 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 7/7/4 8/6/4 10/8/4 -f 10/8/5 12/9/5 11/10/5 -f 12/9/6 14/11/6 13/12/6 -f 14/11/7 16/13/7 15/14/7 -f 16/13/8 18/15/8 17/16/8 -f 18/17/9 20/18/9 19/19/9 -f 20/18/10 22/20/10 21/21/10 -f 21/21/11 22/20/11 24/22/11 -f 23/23/12 24/22/12 26/24/12 -f 26/24/13 28/25/13 27/26/13 -f 28/25/14 30/27/14 29/28/14 -f 66/29/1 65/30/1 33/31/1 -f 32/32/15 2/1/15 1/33/15 -f 30/27/16 32/32/16 31/34/16 -f 66/35/1 98/36/1 97/37/1 -f 2/1/17 34/38/17 33/39/17 -f 35/40/17 34/41/17 2/1/17 -f 30/27/17 36/42/17 35/43/17 -f 37/44/17 36/45/17 30/27/17 -f 26/24/17 38/46/17 37/47/17 -f 39/48/17 38/49/17 26/24/17 -f 40/50/17 39/51/17 24/22/17 -f 41/52/17 40/53/17 22/20/17 -f 18/17/17 42/54/17 41/55/17 -f 43/56/17 42/57/17 18/15/17 -f 44/58/17 43/59/17 16/13/17 -f 45/60/17 44/61/17 14/11/17 -f 46/62/17 45/63/17 12/9/17 -f 8/6/17 47/64/17 46/65/17 -f 48/66/17 47/67/17 8/6/17 -f 33/68/17 48/69/17 6/4/17 -f 3/3/18 50/70/18 49/71/18 -f 51/72/18 50/73/18 3/3/18 -f 52/74/18 51/75/18 5/5/18 -f 53/76/18 52/77/18 7/7/18 -f 11/10/18 54/78/18 53/79/18 -f 55/80/18 54/81/18 11/10/18 -f 56/82/18 55/83/18 13/12/18 -f 57/84/18 56/85/18 15/14/18 -f 58/86/18 57/87/18 17/88/18 -f 59/89/18 58/90/18 19/19/18 -f 60/91/18 59/92/18 21/21/18 -f 25/93/18 61/94/18 60/95/18 -f 62/96/18 61/97/18 25/93/18 -f 63/98/18 62/99/18 27/26/18 -f 64/100/18 63/101/18 29/28/18 -f 1/33/18 49/102/18 64/103/18 -f 67/104/15 66/29/15 34/105/15 -f 68/106/16 67/104/16 35/107/16 -f 37/108/14 69/109/14 68/106/14 -f 38/110/13 70/111/13 69/109/13 -f 71/112/12 70/111/12 38/110/12 -f 40/113/11 72/114/11 71/112/11 -f 73/115/10 72/114/10 40/113/10 -f 74/116/9 73/115/9 41/117/9 -f 75/118/8 74/119/8 42/120/8 -f 76/121/7 75/118/7 43/122/7 -f 77/123/6 76/121/6 44/124/6 -f 78/125/5 77/123/5 45/126/5 -f 79/127/4 78/125/4 46/128/4 -f 80/129/3 79/127/3 47/130/3 -f 65/30/2 80/129/2 48/131/2 -f 82/132/1 81/133/1 49/134/1 -f 51/135/2 83/136/2 82/132/2 -f 84/137/3 83/136/3 51/135/3 -f 85/138/4 84/137/4 52/139/4 -f 86/140/5 85/138/5 53/141/5 -f 87/142/6 86/140/6 54/143/6 -f 88/144/7 87/142/7 55/145/7 -f 89/146/8 88/144/8 56/147/8 -f 58/148/9 90/149/9 89/150/9 -f 91/151/10 90/149/10 58/148/10 -f 60/152/11 92/153/11 91/151/11 -f 93/154/12 92/153/12 60/152/12 -f 94/155/13 93/154/13 61/156/13 -f 95/157/14 94/155/14 62/158/14 -f 96/159/16 95/157/16 63/160/16 -f 49/134/15 81/133/15 96/159/15 -f 67/161/15 99/162/15 98/36/15 -f 100/163/16 99/162/16 67/161/16 -f 69/164/14 101/165/14 100/163/14 -f 102/166/13 101/165/13 69/164/13 -f 102/167/17 295/168/17 103/169/17 -f 293/170/18 74/171/18 290/172/18 -f 73/173/18 74/171/18 293/170/18 -f 72/174/18 73/173/18 293/170/18 -f 71/175/18 72/174/18 293/170/18 -f 70/176/18 71/175/18 293/170/18 -f 110/177/19 296/178/19 290/179/19 -f 79/180/4 111/181/4 110/177/4 -f 112/182/3 111/181/3 79/180/3 -f 65/183/2 97/37/2 112/182/2 -f 114/184/1 113/185/1 81/186/1 -f 83/187/2 115/188/2 114/184/2 -f 116/189/3 115/188/3 83/187/3 -f 85/190/4 117/191/4 116/189/4 -f 89/192/17 90/193/17 291/194/17 -f 124/195/18 294/196/18 125/197/18 -f 120/198/18 292/199/18 121/200/18 -f 119/201/18 292/199/18 120/198/18 -f 118/202/18 292/199/18 119/201/18 -f 117/203/18 292/199/18 118/202/18 -f 292/204/20 289/205/20 291/206/20 -f 93/207/21 125/208/21 294/209/21 -f 126/210/13 125/208/13 93/207/13 -f 95/211/14 127/212/14 126/210/14 -f 128/213/16 127/212/16 95/211/16 -f 81/186/15 113/185/15 128/213/15 -f 130/214/22 129/215/22 97/216/22 -f 131/217/23 130/214/23 98/218/23 -f 132/219/24 131/217/24 99/220/24 -f 101/221/25 133/222/25 132/219/25 -f 134/223/26 133/222/26 101/221/26 -f 135/224/27 134/223/27 102/225/27 -f 104/226/28 136/227/28 135/224/28 -f 105/228/29 137/229/29 136/227/29 -f 138/230/30 137/229/30 105/228/30 -f 139/231/31 138/230/31 106/232/31 -f 108/233/32 140/234/32 139/231/32 -f 141/235/33 140/234/33 108/233/33 -f 142/236/34 141/235/34 109/237/34 -f 111/238/35 143/239/35 142/236/35 -f 144/240/36 143/239/36 111/238/36 -f 129/215/37 144/240/37 112/241/37 -f 146/242/38 145/243/38 113/244/38 -f 147/245/39 146/242/39 114/246/39 -f 148/247/40 147/245/40 115/248/40 -f 117/249/41 149/250/41 148/247/41 -f 118/251/42 150/252/42 149/250/42 -f 151/253/43 150/252/43 118/251/43 -f 120/254/44 152/255/44 151/253/44 -f 153/256/45 152/255/45 120/254/45 -f 154/257/46 153/258/46 121/259/46 -f 123/260/47 155/261/47 154/257/47 -f 124/262/48 156/263/48 155/261/48 -f 157/264/49 156/263/49 124/262/49 -f 158/265/50 157/264/50 125/266/50 -f 127/267/51 159/268/51 158/265/51 -f 160/269/52 159/268/52 127/267/52 -f 145/243/53 160/269/53 128/270/53 -f 162/271/54 161/272/54 362/273/54 -f 163/274/55 162/271/55 361/275/55 -f 164/276/56 163/274/56 363/277/56 -f 165/278/57 164/276/57 364/279/57 -f 366/280/58 166/281/58 165/282/58 -f 367/283/59 167/284/59 166/285/59 -f 368/286/60 168/287/60 167/288/60 -f 169/289/61 168/287/61 368/286/61 -f 170/290/62 169/289/62 369/291/62 -f 371/292/63 171/293/63 170/294/63 -f 372/295/64 172/296/64 171/293/64 -f 173/297/65 172/296/65 372/295/65 -f 174/298/66 173/299/66 373/300/66 -f 175/301/67 174/302/67 374/303/67 -f 376/304/68 176/305/68 175/306/68 -f 161/272/69 176/305/69 376/304/69 -f 329/307/70 178/308/70 177/309/70 -f 179/310/71 178/308/71 329/307/71 -f 180/311/72 179/310/72 331/312/72 -f 333/313/73 181/314/73 180/315/73 -f 182/316/74 181/317/74 333/318/74 -f 183/319/75 182/320/75 334/321/75 -f 336/322/76 184/323/76 183/319/76 -f 337/324/77 185/325/77 184/323/77 -f 186/326/78 185/327/78 337/328/78 -f 187/329/79 186/326/79 338/330/79 -f 340/331/80 188/332/80 187/329/80 -f 341/333/81 189/334/81 188/335/81 -f 190/336/82 189/337/82 341/338/82 -f 343/339/83 191/340/83 190/341/83 -f 344/342/84 192/343/84 191/340/84 -f 330/344/85 177/309/85 192/343/85 -f 226/345/86 258/346/86 257/347/86 -f 194/348/87 193/349/87 161/272/87 -f 195/350/88 194/351/88 162/271/88 -f 164/276/89 196/352/89 195/353/89 -f 197/354/90 196/355/90 164/276/90 -f 166/281/91 198/356/91 197/357/91 -f 167/284/92 199/358/92 198/359/92 -f 168/287/93 200/360/93 199/361/93 -f 169/289/94 201/362/94 200/363/94 -f 202/364/95 201/365/95 169/289/95 -f 171/293/96 203/366/96 202/367/96 -f 204/368/97 203/369/97 171/293/97 -f 205/370/98 204/371/98 172/296/98 -f 206/372/99 205/373/99 173/299/99 -f 207/374/100 206/375/100 174/302/100 -f 176/305/101 208/376/101 207/377/101 -f 193/378/102 208/379/102 176/305/102 -f 259/380/17 267/380/17 268/380/17 -f 210/381/103 209/382/103 177/309/103 -f 211/383/104 210/384/104 178/308/104 -f 212/385/105 211/386/105 179/310/105 -f 181/314/106 213/387/106 212/388/106 -f 214/389/107 213/390/107 181/317/107 -f 215/391/108 214/392/108 182/320/108 -f 216/393/109 215/394/109 183/319/109 -f 185/325/110 217/395/110 216/396/110 -f 218/397/111 217/398/111 185/327/111 -f 187/329/112 219/399/112 218/400/112 -f 188/332/113 220/401/113 219/402/113 -f 189/334/114 221/403/114 220/404/114 -f 222/405/115 221/406/115 189/337/115 -f 191/340/116 223/407/116 222/408/116 -f 192/343/117 224/409/117 223/410/117 -f 209/411/118 224/412/118 192/343/118 -f 194/348/17 226/413/17 225/414/17 -f 227/415/17 226/416/17 194/351/17 -f 196/352/17 228/417/17 227/418/17 -f 229/419/17 228/420/17 196/355/17 -f 230/421/17 229/422/17 197/357/17 -f 199/358/17 231/423/17 230/424/17 -f 232/425/17 231/426/17 199/361/17 -f 201/362/17 233/427/17 232/428/17 -f 234/429/17 233/430/17 201/365/17 -f 235/431/17 234/432/17 202/367/17 -f 236/433/17 235/434/17 203/369/17 -f 205/370/17 237/435/17 236/436/17 -f 206/372/17 238/437/17 237/438/17 -f 207/374/17 239/439/17 238/440/17 -f 240/441/17 239/442/17 207/377/17 -f 225/443/17 240/444/17 208/379/17 -f 242/445/18 241/446/18 209/382/18 -f 211/383/18 243/447/18 242/448/18 -f 244/449/18 243/450/18 211/386/18 -f 213/387/18 245/451/18 244/452/18 -f 246/453/18 245/454/18 213/390/18 -f 215/391/18 247/455/18 246/456/18 -f 248/457/18 247/458/18 215/394/18 -f 249/459/18 248/460/18 216/396/18 -f 218/397/18 250/461/18 249/462/18 -f 251/463/18 250/464/18 218/400/18 -f 252/465/18 251/466/18 219/402/18 -f 253/467/18 252/468/18 220/404/18 -f 254/469/18 253/470/18 221/406/18 -f 223/407/18 255/471/18 254/472/18 -f 256/473/18 255/474/18 223/410/18 -f 241/475/18 256/476/18 224/412/18 -f 230/477/119 231/478/119 257/479/119 -f 231/478/120 232/480/120 257/479/120 -f 232/480/121 233/481/121 257/479/121 -f 233/481/122 234/482/122 257/479/122 -f 228/483/123 229/484/123 258/346/123 -f 227/485/124 228/483/124 258/346/124 -f 234/486/125 235/487/125 257/347/125 -f 235/487/126 236/488/126 257/347/126 -f 236/488/127 237/489/127 257/347/127 -f 237/489/128 238/490/128 257/347/128 -f 238/490/129 239/491/129 257/347/129 -f 239/491/130 240/492/130 257/347/130 -f 225/493/131 257/347/131 240/492/131 -f 226/345/132 227/485/132 258/346/132 -f 273/494/17 274/494/17 282/494/17 -f 247/495/17 283/496/17 284/497/17 -f 247/495/133 248/498/133 283/496/133 -f 248/498/134 249/499/134 283/496/134 -f 249/500/135 250/501/135 283/502/135 -f 250/501/136 251/503/136 283/502/136 -f 245/504/137 246/505/137 284/497/137 -f 244/506/138 245/504/138 284/497/138 -f 243/507/139 244/506/139 284/497/139 -f 242/508/140 243/507/140 284/497/140 -f 241/509/141 242/508/141 284/497/141 -f 252/510/17 284/497/17 283/502/17 -f 256/511/142 241/509/142 284/497/142 -f 255/512/143 256/511/143 284/497/143 -f 254/513/144 255/512/144 284/497/144 -f 253/514/145 254/513/145 284/497/145 -f 252/510/146 253/514/146 284/497/146 -f 230/477/18 257/479/18 258/346/18 -f 292/199/18 294/196/18 121/200/18 -f 90/193/17 91/515/17 291/194/17 -f 123/516/18 294/196/18 124/195/18 -f 85/190/19 289/205/19 292/204/19 -f 91/515/17 92/517/17 291/194/17 -f 121/200/18 294/196/18 122/518/18 -f 93/519/17 291/194/17 92/517/17 -f 122/518/18 294/196/18 123/516/18 -f 85/520/17 86/521/17 289/522/17 -f 86/521/17 87/523/17 289/522/17 -f 87/523/17 88/524/17 289/522/17 -f 88/524/17 89/192/17 289/522/17 -f 289/522/17 89/192/17 291/194/17 -f 108/525/17 107/526/17 296/527/17 -f 109/528/17 108/525/17 296/527/17 -f 109/528/17 296/527/17 110/529/17 -f 102/166/21 70/530/21 293/531/21 -f 105/532/17 104/533/17 295/168/17 -f 106/534/17 105/532/17 295/168/17 -f 295/535/20 293/536/20 290/179/20 -f 104/533/17 103/169/17 295/168/17 -f 107/526/17 106/534/17 296/527/17 -f 295/168/17 296/527/17 106/534/17 -f 78/537/18 290/172/18 77/538/18 -f 77/538/18 290/172/18 76/539/18 -f 76/539/18 290/172/18 75/540/18 -f 75/540/18 290/172/18 74/171/18 -f 298/541/1 300/542/1 299/543/1 -f 300/542/2 302/544/2 301/545/2 -f 301/545/3 302/544/3 304/546/3 -f 303/547/4 304/546/4 306/548/4 -f 305/549/5 306/548/5 308/550/5 -f 308/550/6 310/551/6 309/552/6 -f 309/552/7 310/551/7 312/553/7 -f 312/553/8 314/554/8 313/555/8 -f 314/556/9 316/557/9 315/558/9 -f 316/557/10 318/559/10 317/560/10 -f 318/559/11 320/561/11 319/562/11 -f 320/561/12 322/563/12 321/564/12 -f 322/563/13 324/565/13 323/566/13 -f 324/565/14 326/567/14 325/568/14 -f 328/569/15 298/541/15 297/570/15 -f 326/567/16 328/569/16 327/571/16 -f 346/572/70 329/307/70 330/344/70 -f 331/312/71 329/307/71 346/572/71 -f 332/573/72 331/312/72 347/574/72 -f 335/575/75 334/321/75 350/576/75 -f 352/577/76 336/322/76 335/575/76 -f 337/324/77 336/322/77 352/577/77 -f 338/330/78 337/328/78 353/578/78 -f 339/579/79 338/330/79 354/580/79 -f 356/581/80 340/331/80 339/579/80 -f 359/582/83 343/339/83 342/583/83 -f 360/584/84 344/342/84 343/339/84 -f 345/585/85 330/344/85 344/342/85 -f 146/586/70 346/572/70 345/585/70 -f 347/574/71 346/572/71 146/586/71 -f 348/587/72 347/574/72 147/588/72 -f 149/589/73 349/590/73 348/587/73 -f 350/576/74 349/590/74 149/589/74 -f 351/591/75 350/576/75 150/592/75 -f 152/593/76 352/577/76 351/591/76 -f 353/594/77 352/577/77 152/593/77 -f 354/580/78 353/578/78 153/595/78 -f 355/596/79 354/580/79 154/597/79 -f 156/598/80 356/581/80 355/596/80 -f 157/599/81 357/600/81 356/581/81 -f 358/601/82 357/600/82 157/599/82 -f 159/602/83 359/582/83 358/601/83 -f 160/603/84 360/584/84 359/582/84 -f 145/604/85 345/585/85 360/584/85 -f 361/275/54 362/273/54 377/605/54 -f 363/277/55 361/275/55 378/606/55 -f 364/279/56 363/277/56 379/607/56 -f 365/608/57 364/279/57 380/609/57 -f 384/610/60 368/286/60 367/611/60 -f 369/291/61 368/286/61 384/610/61 -f 370/612/62 369/291/62 385/613/62 -f 387/614/63 371/292/63 370/615/63 -f 388/616/64 372/295/64 371/292/64 -f 373/617/65 372/295/65 388/616/65 -f 376/304/68 375/618/68 391/619/68 -f 362/273/69 376/304/69 392/620/69 -f 378/606/54 377/605/54 129/621/54 -f 379/607/55 378/606/55 130/622/55 -f 132/623/56 380/609/56 379/607/56 -f 133/624/57 381/625/57 380/609/57 -f 382/626/58 381/625/58 133/624/58 -f 135/627/59 383/628/59 382/626/59 -f 136/629/60 384/610/60 383/628/60 -f 385/613/61 384/610/61 136/629/61 -f 138/630/62 386/631/62 385/613/62 -f 139/632/63 387/614/63 386/633/63 -f 140/634/64 388/616/64 387/614/64 -f 389/635/65 388/616/65 140/634/65 -f 390/636/66 389/635/66 141/637/66 -f 143/638/67 391/619/67 390/636/67 -f 392/620/68 391/619/68 143/638/68 -f 377/605/69 392/620/69 144/639/69 -f 1/33/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 9/640/4 7/7/4 10/8/4 -f 9/640/5 10/8/5 11/10/5 -f 11/10/6 12/9/6 13/12/6 -f 13/12/7 14/11/7 15/14/7 -f 15/14/8 16/13/8 17/16/8 -f 17/88/9 18/17/9 19/19/9 -f 19/19/10 20/18/10 21/21/10 -f 23/23/11 21/21/11 24/22/11 -f 25/93/12 23/23/12 26/24/12 -f 25/93/13 26/24/13 27/26/13 -f 27/26/14 28/25/14 29/28/14 -f 34/105/1 66/29/1 33/31/1 -f 31/34/15 32/32/15 1/33/15 -f 29/28/16 30/27/16 31/34/16 -f 65/183/1 66/35/1 97/37/1 -f 4/2/17 2/1/17 33/39/17 -f 32/32/17 35/40/17 2/1/17 -f 32/32/17 30/27/17 35/43/17 -f 28/25/17 37/44/17 30/27/17 -f 28/25/17 26/24/17 37/47/17 -f 24/22/17 39/48/17 26/24/17 -f 22/20/17 40/50/17 24/22/17 -f 20/18/17 41/52/17 22/20/17 -f 20/18/17 18/17/17 41/55/17 -f 16/13/17 43/56/17 18/15/17 -f 14/11/17 44/58/17 16/13/17 -f 12/9/17 45/60/17 14/11/17 -f 10/8/17 46/62/17 12/9/17 -f 10/8/17 8/6/17 46/65/17 -f 6/4/17 48/66/17 8/6/17 -f 4/2/17 33/68/17 6/4/17 -f 1/33/18 3/3/18 49/71/18 -f 5/5/18 51/72/18 3/3/18 -f 7/7/18 52/74/18 5/5/18 -f 9/640/18 53/76/18 7/7/18 -f 9/640/18 11/10/18 53/79/18 -f 13/12/18 55/80/18 11/10/18 -f 15/14/18 56/82/18 13/12/18 -f 17/16/18 57/84/18 15/14/18 -f 19/19/18 58/86/18 17/88/18 -f 21/21/18 59/89/18 19/19/18 -f 23/23/18 60/91/18 21/21/18 -f 23/23/18 25/93/18 60/95/18 -f 27/26/18 62/96/18 25/93/18 -f 29/28/18 63/98/18 27/26/18 -f 31/34/18 64/100/18 29/28/18 -f 31/34/18 1/33/18 64/103/18 -f 35/107/15 67/104/15 34/105/15 -f 36/641/16 68/106/16 35/107/16 -f 36/641/14 37/108/14 68/106/14 -f 37/108/13 38/110/13 69/109/13 -f 39/642/12 71/112/12 38/110/12 -f 39/642/11 40/113/11 71/112/11 -f 41/117/10 73/115/10 40/113/10 -f 42/643/9 74/116/9 41/117/9 -f 43/122/8 75/118/8 42/120/8 -f 44/124/7 76/121/7 43/122/7 -f 45/126/6 77/123/6 44/124/6 -f 46/128/5 78/125/5 45/126/5 -f 47/130/4 79/127/4 46/128/4 -f 48/131/3 80/129/3 47/130/3 -f 33/31/2 65/30/2 48/131/2 -f 50/644/1 82/132/1 49/134/1 -f 50/644/2 51/135/2 82/132/2 -f 52/139/3 84/137/3 51/135/3 -f 53/141/4 85/138/4 52/139/4 -f 54/143/5 86/140/5 53/141/5 -f 55/145/6 87/142/6 54/143/6 -f 56/147/7 88/144/7 55/145/7 -f 57/645/8 89/146/8 56/147/8 -f 57/646/9 58/148/9 89/150/9 -f 59/647/10 91/151/10 58/148/10 -f 59/647/11 60/152/11 91/151/11 -f 61/156/12 93/154/12 60/152/12 -f 62/158/13 94/155/13 61/156/13 -f 63/160/14 95/157/14 62/158/14 -f 64/648/16 96/159/16 63/160/16 -f 64/648/15 49/134/15 96/159/15 -f 66/35/15 67/161/15 98/36/15 -f 68/649/16 100/163/16 67/161/16 -f 68/649/14 69/164/14 100/163/14 -f 70/530/13 102/166/13 69/164/13 -f 78/650/19 110/177/19 290/179/19 -f 78/650/4 79/180/4 110/177/4 -f 80/651/3 112/182/3 79/180/3 -f 80/651/2 65/183/2 112/182/2 -f 82/652/1 114/184/1 81/186/1 -f 82/652/2 83/187/2 114/184/2 -f 84/653/3 116/189/3 83/187/3 -f 84/653/4 85/190/4 116/189/4 -f 294/654/20 292/204/20 291/206/20 -f 291/655/21 93/207/21 294/209/21 -f 94/656/13 126/210/13 93/207/13 -f 94/656/14 95/211/14 126/210/14 -f 96/657/16 128/213/16 95/211/16 -f 96/657/15 81/186/15 128/213/15 -f 98/218/22 130/214/22 97/216/22 -f 99/220/23 131/217/23 98/218/23 -f 100/658/24 132/219/24 99/220/24 -f 100/658/25 101/221/25 132/219/25 -f 102/225/26 134/223/26 101/221/26 -f 103/659/27 135/224/27 102/225/27 -f 103/659/28 104/226/28 135/224/28 -f 104/226/29 105/228/29 136/227/29 -f 106/232/30 138/230/30 105/228/30 -f 107/660/31 139/231/31 106/232/31 -f 107/660/32 108/233/32 139/231/32 -f 109/237/33 141/235/33 108/233/33 -f 110/661/34 142/236/34 109/237/34 -f 110/661/35 111/238/35 142/236/35 -f 112/241/36 144/240/36 111/238/36 -f 97/216/37 129/215/37 112/241/37 -f 114/246/38 146/242/38 113/244/38 -f 115/248/39 147/245/39 114/246/39 -f 116/662/40 148/247/40 115/248/40 -f 116/662/41 117/249/41 148/247/41 -f 117/249/42 118/251/42 149/250/42 -f 119/663/43 151/253/43 118/251/43 -f 119/663/44 120/254/44 151/253/44 -f 121/664/45 153/256/45 120/254/45 -f 122/665/46 154/257/46 121/259/46 -f 122/665/47 123/260/47 154/257/47 -f 123/260/48 124/262/48 155/261/48 -f 125/266/49 157/264/49 124/262/49 -f 126/666/50 158/265/50 125/266/50 -f 126/666/51 127/267/51 158/265/51 -f 128/270/52 160/269/52 127/267/52 -f 113/244/53 145/243/53 128/270/53 -f 361/275/54 162/271/54 362/273/54 -f 363/277/55 163/274/55 361/275/55 -f 364/279/56 164/276/56 363/277/56 -f 365/608/57 165/278/57 364/279/57 -f 365/667/58 366/280/58 165/282/58 -f 366/668/59 367/283/59 166/285/59 -f 367/611/60 368/286/60 167/288/60 -f 369/291/61 169/289/61 368/286/61 -f 370/612/62 170/290/62 369/291/62 -f 370/615/63 371/292/63 170/294/63 -f 371/292/64 372/295/64 171/293/64 -f 373/617/65 173/297/65 372/295/65 -f 374/669/66 174/298/66 373/300/66 -f 375/670/67 175/301/67 374/303/67 -f 375/618/68 376/304/68 175/306/68 -f 362/273/69 161/272/69 376/304/69 -f 330/344/70 329/307/70 177/309/70 -f 331/312/71 179/310/71 329/307/71 -f 332/573/72 180/311/72 331/312/72 -f 332/671/73 333/313/73 180/315/73 -f 334/672/74 182/316/74 333/318/74 -f 335/575/75 183/319/75 334/321/75 -f 335/575/76 336/322/76 183/319/76 -f 336/322/77 337/324/77 184/323/77 -f 338/330/78 186/326/78 337/328/78 -f 339/579/79 187/329/79 338/330/79 -f 339/579/80 340/331/80 187/329/80 -f 340/673/81 341/333/81 188/335/81 -f 342/674/82 190/336/82 341/338/82 -f 342/583/83 343/339/83 190/341/83 -f 343/339/84 344/342/84 191/340/84 -f 344/342/85 330/344/85 192/343/85 -f 225/493/147 226/345/147 257/347/147 -f 162/271/87 194/348/87 161/272/87 -f 163/274/88 195/350/88 162/271/88 -f 163/274/89 164/276/89 195/353/89 -f 165/278/90 197/354/90 164/276/90 -f 165/282/91 166/281/91 197/357/91 -f 166/285/92 167/284/92 198/359/92 -f 167/288/93 168/287/93 199/361/93 -f 168/287/94 169/289/94 200/363/94 -f 170/290/95 202/364/95 169/289/95 -f 170/294/96 171/293/96 202/367/96 -f 172/296/97 204/368/97 171/293/97 -f 173/297/98 205/370/98 172/296/98 -f 174/298/99 206/372/99 173/299/99 -f 175/301/100 207/374/100 174/302/100 -f 175/306/101 176/305/101 207/377/101 -f 161/272/102 193/378/102 176/305/102 -f 259/380/17 260/380/17 261/380/17 -f 259/380/17 261/380/17 262/380/17 -f 257/380/17 258/380/17 259/380/17 -f 259/380/17 262/380/17 263/380/17 -f 272/380/17 257/380/17 259/380/17 -f 259/380/17 263/380/17 264/380/17 -f 271/675/17 272/380/17 259/380/17 -f 259/380/17 264/380/17 265/380/17 -f 270/380/17 271/675/17 259/380/17 -f 259/380/17 265/380/17 266/380/17 -f 269/380/17 270/380/17 259/380/17 -f 259/380/17 266/380/17 267/380/17 -f 268/380/17 269/380/17 259/380/17 -f 178/308/103 210/381/103 177/309/103 -f 179/310/104 211/383/104 178/308/104 -f 180/311/105 212/385/105 179/310/105 -f 180/315/106 181/314/106 212/388/106 -f 182/316/107 214/389/107 181/317/107 -f 183/319/108 215/391/108 182/320/108 -f 184/323/109 216/393/109 183/319/109 -f 184/323/110 185/325/110 216/396/110 -f 186/326/111 218/397/111 185/327/111 -f 186/326/112 187/329/112 218/400/112 -f 187/329/113 188/332/113 219/402/113 -f 188/335/114 189/334/114 220/404/114 -f 190/336/115 222/405/115 189/337/115 -f 190/341/116 191/340/116 222/408/116 -f 191/340/117 192/343/117 223/410/117 -f 177/309/118 209/411/118 192/343/118 -f 193/349/17 194/348/17 225/414/17 -f 195/350/17 227/415/17 194/351/17 -f 195/353/17 196/352/17 227/418/17 -f 197/354/17 229/419/17 196/355/17 -f 198/356/17 230/421/17 197/357/17 -f 198/359/17 199/358/17 230/424/17 -f 200/360/17 232/425/17 199/361/17 -f 200/363/17 201/362/17 232/428/17 -f 202/364/17 234/429/17 201/365/17 -f 203/366/17 235/431/17 202/367/17 -f 204/368/17 236/433/17 203/369/17 -f 204/371/17 205/370/17 236/436/17 -f 205/373/17 206/372/17 237/438/17 -f 206/375/17 207/374/17 238/440/17 -f 208/376/17 240/441/17 207/377/17 -f 193/378/17 225/443/17 208/379/17 -f 210/381/18 242/445/18 209/382/18 -f 210/384/18 211/383/18 242/448/18 -f 212/385/18 244/449/18 211/386/18 -f 212/388/18 213/387/18 244/452/18 -f 214/389/18 246/453/18 213/390/18 -f 214/392/18 215/391/18 246/456/18 -f 216/393/18 248/457/18 215/394/18 -f 217/395/18 249/459/18 216/396/18 -f 217/398/18 218/397/18 249/462/18 -f 219/399/18 251/463/18 218/400/18 -f 220/401/18 252/465/18 219/402/18 -f 221/403/18 253/467/18 220/404/18 -f 222/405/18 254/469/18 221/406/18 -f 222/408/18 223/407/18 254/472/18 -f 224/409/18 256/473/18 223/410/18 -f 209/411/18 241/475/18 224/412/18 -f 280/494/17 281/494/17 282/494/17 -f 285/494/17 286/676/17 287/494/17 -f 275/494/17 276/494/17 277/494/17 -f 284/494/17 285/494/17 287/494/17 -f 275/494/17 277/494/17 278/494/17 -f 283/494/17 284/494/17 287/494/17 -f 275/494/17 278/494/17 279/494/17 -f 282/494/17 283/494/17 287/494/17 -f 279/494/17 280/494/17 282/494/17 -f 282/494/17 287/494/17 288/494/17 -f 275/494/17 279/494/17 282/494/17 -f 282/494/17 288/494/17 273/494/17 -f 274/494/17 275/494/17 282/494/17 -f 246/505/148 247/495/148 284/497/148 -f 251/503/149 252/510/149 283/502/149 -f 229/484/150 230/477/150 258/346/150 -f 117/191/19 85/190/19 292/204/19 -f 295/677/21 102/166/21 293/531/21 -f 296/178/20 295/535/20 290/179/20 -f 297/570/1 298/541/1 299/543/1 -f 299/543/2 300/542/2 301/545/2 -f 303/547/3 301/545/3 304/546/3 -f 305/549/4 303/547/4 306/548/4 -f 307/678/5 305/549/5 308/550/5 -f 307/678/6 308/550/6 309/552/6 -f 311/679/7 309/552/7 312/553/7 -f 311/679/8 312/553/8 313/555/8 -f 313/680/9 314/556/9 315/558/9 -f 315/558/10 316/557/10 317/560/10 -f 317/560/11 318/559/11 319/562/11 -f 319/562/12 320/561/12 321/564/12 -f 321/564/13 322/563/13 323/566/13 -f 323/566/14 324/565/14 325/568/14 -f 327/571/15 328/569/15 297/570/15 -f 325/568/16 326/567/16 327/571/16 -f 345/585/70 346/572/70 330/344/70 -f 347/574/71 331/312/71 346/572/71 -f 348/587/72 332/573/72 347/574/72 -f 351/591/75 335/575/75 350/576/75 -f 351/591/76 352/577/76 335/575/76 -f 353/594/77 337/324/77 352/577/77 -f 354/580/78 338/330/78 353/578/78 -f 355/596/79 339/579/79 354/580/79 -f 355/596/80 356/581/80 339/579/80 -f 358/601/83 359/582/83 342/583/83 -f 359/582/84 360/584/84 343/339/84 -f 360/584/85 345/585/85 344/342/85 -f 145/604/70 146/586/70 345/585/70 -f 147/588/71 347/574/71 146/586/71 -f 148/681/72 348/587/72 147/588/72 -f 148/681/73 149/589/73 348/587/73 -f 150/592/74 350/576/74 149/589/74 -f 151/682/75 351/591/75 150/592/75 -f 151/682/76 152/593/76 351/591/76 -f 153/683/77 353/594/77 152/593/77 -f 154/597/78 354/580/78 153/595/78 -f 155/684/79 355/596/79 154/597/79 -f 155/684/80 156/598/80 355/596/80 -f 156/598/81 157/599/81 356/581/81 -f 158/685/82 358/601/82 157/599/82 -f 158/685/83 159/602/83 358/601/83 -f 159/602/84 160/603/84 359/582/84 -f 160/603/85 145/604/85 360/584/85 -f 378/606/54 361/275/54 377/605/54 -f 379/607/55 363/277/55 378/606/55 -f 380/609/56 364/279/56 379/607/56 -f 381/625/57 365/608/57 380/609/57 -f 383/628/60 384/610/60 367/611/60 -f 385/613/61 369/291/61 384/610/61 -f 386/631/62 370/612/62 385/613/62 -f 386/633/63 387/614/63 370/615/63 -f 387/614/64 388/616/64 371/292/64 -f 389/635/65 373/617/65 388/616/65 -f 392/620/68 376/304/68 391/619/68 -f 377/605/69 362/273/69 392/620/69 -f 130/622/54 378/606/54 129/621/54 -f 131/686/55 379/607/55 130/622/55 -f 131/686/56 132/623/56 379/607/56 -f 132/623/57 133/624/57 380/609/57 -f 134/687/58 382/626/58 133/624/58 -f 134/687/59 135/627/59 382/626/59 -f 135/627/60 136/629/60 383/628/60 -f 137/688/61 385/613/61 136/629/61 -f 137/688/62 138/630/62 385/613/62 -f 138/689/63 139/632/63 386/633/63 -f 139/632/64 140/634/64 387/614/64 -f 141/637/65 389/635/65 140/634/65 -f 142/690/66 390/636/66 141/637/66 -f 142/690/67 143/638/67 390/636/67 -f 144/639/68 392/620/68 143/638/68 -f 129/621/69 377/605/69 144/639/69 diff --git a/src/main/resources/assets/hbm/models/bombs/Prototype.obj b/src/main/resources/assets/hbm/models/bombs/Prototype.obj new file mode 100644 index 000000000..54f1186bc --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/Prototype.obj @@ -0,0 +1,1639 @@ +# Blender 4.0.2 +# www.blender.org +mtllib Prototype.mtl +o Cylinder.001 +v 0.000001 1.000000 2.500000 +v -0.000001 1.000000 -2.500000 +v -0.218749 0.941386 2.500000 +v -0.218751 0.941386 -2.500000 +v -0.378885 0.781250 2.500000 +v -0.378887 0.781250 -2.500000 +v -0.437499 0.562500 2.500000 +v -0.437501 0.562500 -2.500000 +v -0.378885 0.343750 2.500000 +v -0.378887 0.343750 -2.500000 +v -0.218749 0.183614 2.500000 +v -0.218751 0.183614 -2.500000 +v 0.000001 0.125000 2.500000 +v -0.000001 0.125000 -2.500000 +v 0.218751 0.183614 2.500000 +v 0.218749 0.183614 -2.500000 +v 0.378887 0.343750 2.500000 +v 0.378885 0.343750 -2.500000 +v 0.437501 0.562500 2.500000 +v 0.437499 0.562500 -2.500000 +v 0.378887 0.781250 2.500000 +v 0.378885 0.781250 -2.500000 +v 0.218751 0.941386 2.500000 +v 0.218749 0.941386 -2.500000 +v -0.125001 0.779006 -2.812500 +v -0.000001 0.812500 -2.812500 +v -0.216507 0.687500 -2.812500 +v -0.250001 0.562500 -2.812500 +v -0.216507 0.437500 -2.812500 +v -0.125001 0.345994 -2.812500 +v -0.000001 0.312500 -2.812500 +v 0.124999 0.345994 -2.812500 +v 0.216505 0.437500 -2.812500 +v 0.249999 0.562500 -2.812500 +v 0.216505 0.687500 -2.812500 +v 0.124999 0.779006 -2.812500 +v 0.000001 0.812500 2.812500 +v -0.124999 0.779006 2.812500 +v -0.216505 0.687500 2.812500 +v -0.249999 0.562500 2.812500 +v -0.216505 0.437500 2.812500 +v -0.124999 0.345994 2.812500 +v 0.000001 0.312500 2.812500 +v 0.125001 0.345994 2.812500 +v 0.216507 0.437500 2.812500 +v 0.250001 0.562500 2.812500 +v 0.216507 0.687500 2.812500 +v 0.125001 0.779006 2.812500 +v -0.061399 0.668844 -3.500000 +v -0.099888 0.735509 -3.438635 +v -0.000001 0.762273 -3.438635 +v -0.000001 0.685295 -3.500000 +v -0.106345 0.623898 -3.500000 +v -0.173010 0.662387 -3.438635 +v -0.122797 0.562500 -3.500000 +v -0.199774 0.562500 -3.438635 +v -0.106345 0.501102 -3.500000 +v -0.173010 0.462613 -3.438635 +v -0.061399 0.456156 -3.500000 +v -0.099888 0.389491 -3.438635 +v -0.000001 0.439705 -3.500000 +v -0.000001 0.362727 -3.438635 +v 0.061396 0.456156 -3.500000 +v 0.099885 0.389491 -3.438635 +v 0.106342 0.501102 -3.500000 +v 0.173007 0.462613 -3.438635 +v 0.122794 0.562500 -3.500000 +v 0.199772 0.562500 -3.438635 +v 0.106342 0.623897 -3.500000 +v 0.173007 0.662386 -3.438635 +v 0.061396 0.668844 -3.500000 +v 0.099885 0.735508 -3.438635 +v 0.000001 0.685295 3.500000 +v 0.000001 0.762273 3.438635 +v -0.099885 0.735509 3.438635 +v -0.061396 0.668844 3.500000 +v -0.173007 0.662387 3.438635 +v -0.106343 0.623898 3.500000 +v -0.199772 0.562500 3.438635 +v -0.122794 0.562500 3.500000 +v -0.173007 0.462614 3.438635 +v -0.106343 0.501103 3.500000 +v -0.099885 0.389492 3.438635 +v -0.061396 0.456156 3.500000 +v 0.000001 0.362727 3.438635 +v 0.000001 0.439705 3.500000 +v 0.099888 0.389491 3.438635 +v 0.061399 0.456156 3.500000 +v 0.173010 0.462613 3.438635 +v 0.106345 0.501102 3.500000 +v 0.199774 0.562500 3.438635 +v 0.122796 0.562500 3.500000 +v 0.173010 0.662387 3.438635 +v 0.106345 0.623898 3.500000 +v 0.099888 0.735509 3.438635 +v 0.061399 0.668844 3.500000 +v 0.000000 1.000000 0.125000 +v 0.000000 1.000000 -0.125000 +v -0.218750 0.941386 0.125000 +v -0.218750 0.941386 -0.125000 +v -0.378886 0.781250 0.125000 +v -0.378886 0.781250 -0.125000 +v -0.437500 0.562500 0.125000 +v -0.437500 0.562500 -0.125000 +v -0.378886 0.343750 0.125000 +v -0.378886 0.343750 -0.125000 +v -0.218750 0.183614 0.125000 +v -0.218750 0.183614 -0.125000 +v -0.000000 0.125000 0.125000 +v -0.000000 0.125000 -0.125000 +v 0.218750 0.183614 0.125000 +v 0.218750 0.183614 -0.125000 +v 0.378886 0.343750 0.125000 +v 0.378886 0.343750 -0.125000 +v 0.437500 0.562500 0.125000 +v 0.437500 0.562500 -0.125000 +v 0.378886 0.781250 0.125000 +v 0.378886 0.781250 -0.125000 +v 0.218750 0.941386 0.125000 +v 0.218750 0.941386 -0.125000 +v 0.000000 1.062500 0.125000 +v -0.250000 0.995513 0.125000 +v -0.250000 0.995513 -0.125000 +v 0.000000 1.062500 -0.125000 +v -0.433013 0.812500 0.125000 +v -0.433013 0.812500 -0.125000 +v -0.500000 0.562500 0.125000 +v -0.500000 0.562500 -0.125000 +v -0.433013 0.312500 0.125000 +v -0.433013 0.312500 -0.125000 +v -0.250000 0.129487 0.125000 +v -0.250000 0.129487 -0.125000 +v -0.000000 0.062500 0.125000 +v -0.000000 0.062500 -0.125000 +v 0.250000 0.129487 0.125000 +v 0.250000 0.129487 -0.125000 +v 0.433013 0.312500 0.125000 +v 0.433013 0.312500 -0.125000 +v 0.500000 0.562500 0.125000 +v 0.500000 0.562500 -0.125000 +v 0.433013 0.812500 0.125000 +v 0.433013 0.812500 -0.125000 +v 0.250000 0.995513 0.125000 +v 0.250000 0.995513 -0.125000 +v 0.000001 1.000000 2.500000 +v 0.000001 1.000000 2.312500 +v -0.218749 0.941386 2.500000 +v -0.218749 0.941386 2.312500 +v -0.378885 0.781250 2.500000 +v -0.378885 0.781250 2.312500 +v -0.437499 0.562500 2.500000 +v -0.437499 0.562500 2.312500 +v -0.378885 0.343750 2.500000 +v -0.378885 0.343750 2.312500 +v -0.218749 0.183614 2.500000 +v -0.218749 0.183614 2.312500 +v 0.000001 0.125000 2.500000 +v 0.000001 0.125000 2.312500 +v 0.218751 0.183614 2.500000 +v 0.218751 0.183614 2.312500 +v 0.378887 0.343750 2.500000 +v 0.378887 0.343750 2.312500 +v 0.437501 0.562500 2.500000 +v 0.437501 0.562500 2.312500 +v 0.378887 0.781250 2.500000 +v 0.378887 0.781250 2.312500 +v 0.218751 0.941386 2.500000 +v 0.218751 0.941386 2.312500 +v 0.000001 1.062500 2.500000 +v -0.249999 0.995513 2.500000 +v -0.249999 0.995513 2.312500 +v 0.000001 1.062500 2.312500 +v -0.433012 0.812500 2.500000 +v -0.433012 0.812500 2.312500 +v -0.499999 0.562500 2.500000 +v -0.499999 0.562500 2.312500 +v -0.433012 0.312500 2.500000 +v -0.433012 0.312500 2.312500 +v -0.249999 0.129487 2.500000 +v -0.249999 0.129487 2.312500 +v 0.000001 0.062500 2.500000 +v 0.000001 0.062500 2.312500 +v 0.250001 0.129487 2.500000 +v 0.250001 0.129487 2.312500 +v 0.433014 0.312500 2.500000 +v 0.433013 0.312500 2.312500 +v 0.500001 0.562500 2.500000 +v 0.500001 0.562500 2.312500 +v 0.433014 0.812500 2.500000 +v 0.433014 0.812500 2.312500 +v 0.250001 0.995513 2.500000 +v 0.250001 0.995513 2.312500 +v -0.375652 0.054267 -2.343750 +v -0.331457 0.098461 -2.343750 +v -0.375650 0.054267 2.343750 +v -0.331456 0.098461 2.343750 +v -0.508234 0.186850 -2.343750 +v -0.464040 0.231044 -2.343750 +v -0.508232 0.186850 2.343750 +v -0.464038 0.231044 2.343750 +v -0.375651 0.142655 -1.281250 +v -0.243069 0.275238 -1.281250 +v -0.375651 0.142655 -1.156250 +v -0.243069 0.275238 -1.156250 +v -0.419845 0.186850 -1.281250 +v -0.287263 0.319432 -1.281250 +v -0.419845 0.186850 -1.156250 +v -0.287263 0.319432 -1.156250 +v -0.375651 0.142655 -0.062500 +v -0.243068 0.275238 -0.062500 +v -0.375651 0.142655 0.062500 +v -0.243068 0.275238 0.062500 +v -0.419845 0.186850 -0.062500 +v -0.287262 0.319432 -0.062500 +v -0.419845 0.186850 0.062500 +v -0.287262 0.319432 0.062500 +v -0.375650 0.142655 1.156250 +v -0.243068 0.275238 1.156250 +v -0.375650 0.142655 1.281250 +v -0.243068 0.275238 1.281250 +v -0.419844 0.186850 1.156250 +v -0.287262 0.319432 1.156250 +v -0.419844 0.186850 1.281250 +v -0.287262 0.319432 1.281250 +v 0.624999 -0.000000 -2.468750 +v 0.437499 0.500000 -2.468750 +v 0.624999 -0.000000 -2.343750 +v 0.437499 0.500000 -2.343750 +v -0.625001 0.000000 -2.468750 +v -0.437501 0.500000 -2.468750 +v -0.625001 0.000000 -2.343750 +v -0.437501 0.500000 -2.343750 +v -0.000001 1.000000 -2.300000 +v -0.000001 1.000000 -2.487500 +v -0.218751 0.941386 -2.300000 +v -0.218751 0.941386 -2.487500 +v -0.378887 0.781250 -2.300000 +v -0.378887 0.781250 -2.487500 +v -0.437501 0.562500 -2.300000 +v -0.437501 0.562500 -2.487500 +v -0.378887 0.343750 -2.300000 +v -0.378887 0.343750 -2.487500 +v -0.218751 0.183614 -2.300000 +v -0.218751 0.183614 -2.487500 +v -0.000001 0.125000 -2.300000 +v -0.000001 0.125000 -2.487500 +v 0.218749 0.183614 -2.300000 +v 0.218749 0.183614 -2.487500 +v 0.378885 0.343750 -2.300000 +v 0.378885 0.343750 -2.487500 +v 0.437499 0.562500 -2.300000 +v 0.437499 0.562500 -2.487500 +v 0.378885 0.781250 -2.300000 +v 0.378885 0.781250 -2.487500 +v 0.218749 0.941386 -2.300000 +v 0.218749 0.941386 -2.487500 +v -0.000001 1.062500 -2.300000 +v -0.250001 0.995513 -2.300000 +v -0.250001 0.995513 -2.487500 +v -0.000001 1.062500 -2.487500 +v -0.433013 0.812500 -2.300000 +v -0.433014 0.812500 -2.487500 +v -0.500001 0.562500 -2.300000 +v -0.500001 0.562500 -2.487500 +v -0.433014 0.312500 -2.300000 +v -0.433014 0.312500 -2.487500 +v -0.250001 0.129487 -2.300000 +v -0.250001 0.129487 -2.487500 +v -0.000001 0.062500 -2.300000 +v -0.000001 0.062500 -2.487500 +v 0.249999 0.129487 -2.300000 +v 0.249999 0.129487 -2.487500 +v 0.433012 0.312500 -2.300000 +v 0.433012 0.312500 -2.487500 +v 0.499999 0.562500 -2.300000 +v 0.499999 0.562500 -2.487500 +v 0.433012 0.812500 -2.300000 +v 0.433012 0.812500 -2.487500 +v 0.249999 0.995513 -2.300000 +v 0.249999 0.995513 -2.487500 +v 0.625001 -0.000000 2.343750 +v 0.437501 0.500000 2.343750 +v 0.625001 -0.000000 2.468750 +v 0.437501 0.500000 2.468750 +v -0.624999 0.000000 2.343750 +v -0.437499 0.500000 2.343750 +v -0.624999 0.000000 2.468750 +v -0.437499 0.500000 2.468750 +v 0.508232 0.186849 -2.343750 +v 0.464038 0.231044 -2.343750 +v 0.508234 0.186849 2.343750 +v 0.464040 0.231044 2.343750 +v 0.375649 0.054267 -2.343750 +v 0.331455 0.098461 -2.343750 +v 0.375651 0.054267 2.343750 +v 0.331457 0.098461 2.343750 +v 0.419844 0.186849 -1.281250 +v 0.287262 0.319432 -1.281250 +v 0.419844 0.186849 -1.156250 +v 0.287262 0.319432 -1.156250 +v 0.375650 0.142655 -1.281250 +v 0.243067 0.275238 -1.281250 +v 0.375650 0.142655 -1.156250 +v 0.243067 0.275238 -1.156250 +v 0.419845 0.186849 -0.062500 +v 0.287262 0.319432 -0.062500 +v 0.419845 0.186849 0.062500 +v 0.287262 0.319432 0.062500 +v 0.375650 0.142655 -0.062500 +v 0.243068 0.275238 -0.062500 +v 0.375650 0.142655 0.062500 +v 0.243068 0.275238 0.062500 +v 0.419845 0.186849 1.156250 +v 0.287263 0.319432 1.156250 +v 0.419845 0.186849 1.281250 +v 0.287263 0.319432 1.281250 +v 0.375651 0.142655 1.156250 +v 0.243068 0.275238 1.156250 +v 0.375651 0.142655 1.281250 +v 0.243068 0.275238 1.281250 +vn -0.0000 1.0000 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn -0.7426 0.4287 -0.5145 +vn -0.8575 -0.0000 -0.5145 +vn 0.5000 0.8660 -0.0000 +vn 0.7426 0.4287 0.5145 +vn 0.8575 -0.0000 0.5145 +vn -0.9968 -0.0000 -0.0800 +vn -0.8633 -0.4984 -0.0800 +vn 0.7426 0.4287 -0.5145 +vn 0.4287 0.7426 -0.5145 +vn -0.4287 0.7426 -0.5145 +vn 0.8575 -0.0000 -0.5145 +vn 0.7426 -0.4287 -0.5145 +vn 0.4287 -0.7426 -0.5145 +vn -0.0000 -0.8575 -0.5145 +vn -0.4287 -0.7426 -0.5145 +vn -0.7426 -0.4287 -0.5145 +vn -0.0000 0.8575 -0.5145 +vn 0.9968 -0.0000 0.0800 +vn 0.8633 -0.4984 0.0800 +vn 0.7426 -0.4287 0.5145 +vn 0.4287 -0.7426 0.5145 +vn -0.0000 -0.8575 0.5145 +vn -0.4287 -0.7426 0.5145 +vn -0.7426 -0.4287 0.5145 +vn -0.8575 -0.0000 0.5145 +vn -0.0000 0.8575 0.5145 +vn 0.4287 0.7426 0.5145 +vn -0.4287 0.7426 0.5145 +vn -0.7426 0.4287 0.5145 +vn -0.4984 0.8633 -0.0800 +vn -0.8633 0.4984 -0.0800 +vn 0.4984 0.8633 -0.0800 +vn 0.8633 0.4984 -0.0800 +vn 0.4984 -0.8633 -0.0800 +vn 0.8633 -0.4984 -0.0800 +vn -0.4984 -0.8633 -0.0800 +vn -0.0000 -0.0000 -1.0000 +vn 0.9968 -0.0000 -0.0800 +vn -0.0000 -0.9968 -0.0800 +vn -0.0000 0.9968 -0.0800 +vn -0.0000 0.9968 0.0800 +vn 0.4984 0.8633 0.0800 +vn -0.4984 -0.8633 0.0800 +vn -0.0000 -0.9968 0.0800 +vn -0.8633 0.4984 0.0800 +vn -0.4984 0.8633 0.0800 +vn -0.9968 -0.0000 0.0800 +vn 0.8633 0.4984 0.0800 +vn 0.4984 -0.8633 0.0800 +vn -0.8633 -0.4984 0.0800 +vn -0.0000 -0.0000 1.0000 +vn -0.3117 0.5398 -0.7819 +vn -0.0000 0.6234 -0.7819 +vn -0.5398 0.3117 -0.7819 +vn -0.6234 -0.0000 -0.7819 +vn -0.5398 -0.3117 -0.7819 +vn -0.3117 -0.5398 -0.7819 +vn -0.0000 -0.6234 -0.7819 +vn 0.3117 -0.5398 -0.7819 +vn 0.5398 -0.3117 -0.7819 +vn 0.6233 -0.0000 -0.7819 +vn 0.6234 -0.0000 -0.7819 +vn 0.5398 0.3117 -0.7819 +vn 0.3117 0.5398 -0.7819 +vn -0.3117 0.5398 0.7819 +vn -0.0000 0.6234 0.7819 +vn -0.5398 0.3117 0.7819 +vn -0.6234 -0.0000 0.7819 +vn -0.5398 -0.3117 0.7819 +vn -0.6233 -0.0000 0.7819 +vn -0.3117 -0.5398 0.7819 +vn -0.0000 -0.6234 0.7819 +vn 0.3117 -0.5398 0.7819 +vn 0.5398 -0.3117 0.7819 +vn 0.6233 -0.0000 0.7819 +vn 0.5398 0.3117 0.7819 +vn 0.6234 -0.0000 0.7819 +vn 0.3117 0.5398 0.7819 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.9363 0.3511 -0.0000 +vn -0.9363 0.3511 -0.0000 +vt 0.673611 0.833333 +vt 0.118056 0.861111 +vt 0.118056 0.833333 +vt 0.673611 0.861111 +vt 0.118056 0.888889 +vt 0.673611 0.888889 +vt 0.118056 0.916667 +vt 0.673611 0.916667 +vt 0.118056 0.944444 +vt 0.673611 0.972222 +vt 0.118056 0.972222 +vt 0.118056 1.000000 +vt 0.673611 0.666667 +vt 0.118056 0.694444 +vt 0.118056 0.666667 +vt 0.673611 0.694444 +vt 0.118056 0.722222 +vt 0.673611 0.722222 +vt 0.118056 0.750000 +vt 0.673611 0.750000 +vt 0.118056 0.777778 +vt 0.673611 0.888889 +vt 0.715278 0.910714 +vt 0.673611 0.916667 +vt 0.673611 0.777778 +vt 0.118056 0.805556 +vt 0.673611 0.805556 +vt 0.076389 0.755953 +vt 0.118056 0.750000 +vt 0.715278 0.922619 +vt 0.784722 0.936898 +vt 0.715278 0.938492 +vt 0.673611 0.777778 +vt 0.715278 0.799603 +vt 0.673611 0.861111 +vt 0.715278 0.882937 +vt 0.673611 0.888889 +vt 0.673611 0.750000 +vt 0.715278 0.771825 +vt 0.673611 0.722222 +vt 0.715278 0.744048 +vt 0.673611 0.694444 +vt 0.715278 0.716270 +vt 0.715278 0.688492 +vt 0.673611 0.972222 +vt 0.715278 0.994048 +vt 0.673611 1.000000 +vt 0.673611 0.944445 +vt 0.715278 0.966270 +vt 0.673611 0.972222 +vt 0.673611 0.916667 +vt 0.673611 0.944445 +vt 0.673611 0.805556 +vt 0.715278 0.827381 +vt 0.673611 0.833333 +vt 0.673611 0.833333 +vt 0.715278 0.855159 +vt 0.673611 0.861111 +vt 0.076389 0.744047 +vt 0.006944 0.729769 +vt 0.076389 0.728175 +vt 0.076389 0.728175 +vt 0.118056 0.722222 +vt 0.076389 0.700397 +vt 0.118056 0.694444 +vt 0.076389 0.672619 +vt 0.118056 1.000000 +vt 0.076389 0.978175 +vt 0.118056 0.972222 +vt 0.118056 0.972222 +vt 0.076389 0.950397 +vt 0.118056 0.944445 +vt 0.118056 0.944445 +vt 0.076389 0.922620 +vt 0.118056 0.916667 +vt 0.118056 0.833333 +vt 0.076389 0.811508 +vt 0.118056 0.805556 +vt 0.118056 0.861111 +vt 0.076389 0.839286 +vt 0.118056 0.833333 +vt 0.118056 0.916667 +vt 0.076389 0.894842 +vt 0.118056 0.888889 +vt 0.076389 0.783731 +vt 0.118056 0.777778 +vt 0.118056 0.888889 +vt 0.076389 0.867064 +vt 0.118056 0.861111 +vt 0.715278 0.867064 +vt 0.784722 0.881342 +vt 0.784722 0.785325 +vt 0.784722 0.798009 +vt 0.715278 0.700397 +vt 0.784722 0.714675 +vt 0.715278 0.950397 +vt 0.784722 0.964675 +vt 0.956473 0.958333 +vt 0.944444 0.937500 +vt 0.932416 0.958333 +vt 0.715278 0.728175 +vt 0.784722 0.742453 +vt 0.715278 0.978175 +vt 0.784722 0.992453 +vt 0.715278 0.894841 +vt 0.784722 0.909120 +vt 0.715278 0.811508 +vt 0.784722 0.825786 +vt 0.715278 0.755952 +vt 0.784722 0.770231 +vt 0.715278 0.672619 +vt 0.784722 0.686898 +vt 0.076389 0.827381 +vt 0.006944 0.813102 +vt 0.076389 0.811508 +vt 0.076389 0.978175 +vt 0.006944 0.992453 +vt 0.006944 0.979769 +vt 0.076389 0.882936 +vt 0.006944 0.868658 +vt 0.076389 0.867064 +vt 0.076389 0.910714 +vt 0.006944 0.896435 +vt 0.076389 0.894841 +vt 0.076389 0.771825 +vt 0.006944 0.757547 +vt 0.076389 0.755952 +vt 0.076389 0.688492 +vt 0.006944 0.674213 +vt 0.076389 0.672619 +vt 0.076389 0.938492 +vt 0.006944 0.924213 +vt 0.076389 0.922619 +vt 0.076389 0.799603 +vt 0.006944 0.785324 +vt 0.076389 0.783730 +vt 0.076389 0.716269 +vt 0.006944 0.701991 +vt 0.076389 0.700397 +vt 0.076389 0.966270 +vt 0.006944 0.951991 +vt 0.076389 0.950397 +vt 0.958333 0.986111 +vt 0.937500 0.974083 +vt 0.937500 0.998139 +vt 0.784722 0.853564 +vt 0.791667 0.843324 +vt 0.791667 0.851121 +vt 0.784722 0.868658 +vt 0.791667 0.878898 +vt 0.784722 0.881342 +vt 0.784722 0.896436 +vt 0.791667 0.906676 +vt 0.784722 0.909120 +vt 0.784722 0.936898 +vt 0.791667 0.926657 +vt 0.791667 0.934454 +vt 0.784722 0.964675 +vt 0.791667 0.954435 +vt 0.791667 0.962232 +vt 0.784722 0.979769 +vt 0.791667 0.990010 +vt 0.784722 0.992453 +vt 0.784722 0.686898 +vt 0.791667 0.676657 +vt 0.791667 0.684454 +vt 0.784722 0.701991 +vt 0.791667 0.712232 +vt 0.784722 0.714675 +vt 0.784722 0.729769 +vt 0.791667 0.740009 +vt 0.784722 0.742453 +vt 0.784722 0.757547 +vt 0.791667 0.767787 +vt 0.784722 0.770231 +vt 0.791667 0.795565 +vt 0.784722 0.798009 +vt 0.784722 0.825787 +vt 0.791667 0.815546 +vt 0.791667 0.823343 +vt 0.784722 0.840880 +vt 0.784722 0.853564 +vt 0.006944 0.853564 +vt 0.000000 0.843324 +vt 0.006944 0.840880 +vt 0.006944 0.881342 +vt 0.000000 0.871102 +vt 0.006944 0.868658 +vt 0.006944 0.909120 +vt 0.000000 0.898880 +vt 0.006944 0.896436 +vt 0.006944 0.936898 +vt 0.000000 0.926657 +vt 0.006944 0.924214 +vt 0.006944 0.964675 +vt 0.000000 0.954435 +vt 0.006944 0.951991 +vt 0.006944 0.992453 +vt 0.000000 0.982213 +vt 0.006944 0.979769 +vt 0.006944 0.686898 +vt 0.000000 0.676657 +vt 0.006944 0.674214 +vt 0.006944 0.701991 +vt 0.000000 0.712232 +vt 0.000000 0.704435 +vt 0.006944 0.729769 +vt 0.000000 0.740009 +vt 0.000000 0.732213 +vt 0.006944 0.770231 +vt 0.000000 0.759991 +vt 0.006944 0.757547 +vt 0.006944 0.798009 +vt 0.000000 0.787768 +vt 0.006944 0.785325 +vt 0.006944 0.825787 +vt 0.000000 0.815546 +vt 0.006944 0.813103 +vt 0.076389 0.839286 +vt 0.006944 0.853564 +vt 0.006944 0.840880 +vt 0.805556 0.833333 +vt 0.833333 0.805556 +vt 0.833333 0.833333 +vt 0.805556 0.805556 +vt 0.833333 0.777778 +vt 0.805556 0.777778 +vt 0.833333 0.750000 +vt 0.805556 0.750000 +vt 0.833333 0.722222 +vt 0.805556 0.722222 +vt 0.833333 0.694444 +vt 0.805556 0.694444 +vt 0.833333 0.666667 +vt 0.805556 1.000000 +vt 0.833333 0.972222 +vt 0.833333 1.000000 +vt 0.805556 0.972222 +vt 0.833333 0.944444 +vt 0.805556 0.944444 +vt 0.833333 0.916667 +vt 0.805556 0.916667 +vt 0.833333 0.888889 +vt 0.805556 0.888889 +vt 0.833333 0.861111 +vt 0.805556 0.861111 +vt 0.840278 0.831597 +vt 0.833333 0.805556 +vt 0.840278 0.807292 +vt 0.798611 0.807292 +vt 0.805556 0.833333 +vt 0.798611 0.831597 +vt 0.840278 0.803819 +vt 0.833333 0.777778 +vt 0.840278 0.779514 +vt 0.798611 0.779514 +vt 0.798611 0.803819 +vt 0.840278 0.776042 +vt 0.833333 0.750000 +vt 0.840278 0.751736 +vt 0.798611 0.751736 +vt 0.798611 0.776042 +vt 0.840278 0.748264 +vt 0.833333 0.722222 +vt 0.840278 0.723958 +vt 0.798611 0.723958 +vt 0.798611 0.748264 +vt 0.840278 0.720486 +vt 0.833333 0.694444 +vt 0.840278 0.696181 +vt 0.798611 0.696181 +vt 0.798611 0.720486 +vt 0.840278 0.692708 +vt 0.840278 0.668403 +vt 0.798611 0.668403 +vt 0.798611 0.692708 +vt 0.840278 0.998264 +vt 0.833333 0.972222 +vt 0.840278 0.973958 +vt 0.798611 0.973958 +vt 0.805556 1.000000 +vt 0.798611 0.998264 +vt 0.840278 0.970486 +vt 0.833333 0.944445 +vt 0.840278 0.946181 +vt 0.798611 0.946181 +vt 0.805556 0.972222 +vt 0.798611 0.970486 +vt 0.840278 0.942708 +vt 0.833333 0.916667 +vt 0.840278 0.918403 +vt 0.798611 0.918403 +vt 0.805556 0.944445 +vt 0.798611 0.942708 +vt 0.840278 0.914931 +vt 0.833333 0.888889 +vt 0.840278 0.890625 +vt 0.798611 0.890625 +vt 0.805556 0.916667 +vt 0.798611 0.914931 +vt 0.840278 0.887153 +vt 0.833333 0.861111 +vt 0.840278 0.862847 +vt 0.798611 0.862847 +vt 0.805556 0.888889 +vt 0.798611 0.887153 +vt 0.840278 0.859375 +vt 0.833333 0.833333 +vt 0.840278 0.835070 +vt 0.798611 0.835070 +vt 0.805556 0.861111 +vt 0.798611 0.859375 +vt 0.854167 0.833333 +vt 0.875000 0.805556 +vt 0.875000 0.833333 +vt 0.854167 0.805556 +vt 0.875000 0.777778 +vt 0.854167 0.777778 +vt 0.875000 0.750000 +vt 0.854167 0.750000 +vt 0.875000 0.722222 +vt 0.854167 0.722222 +vt 0.875000 0.694444 +vt 0.854167 0.694444 +vt 0.875000 0.666667 +vt 0.854167 1.000000 +vt 0.875000 0.972222 +vt 0.875000 1.000000 +vt 0.854167 0.972222 +vt 0.875000 0.944444 +vt 0.854167 0.944444 +vt 0.875000 0.916667 +vt 0.854167 0.916667 +vt 0.875000 0.888889 +vt 0.854167 0.888889 +vt 0.875000 0.861111 +vt 0.854167 0.861111 +vt 0.881944 0.831597 +vt 0.875000 0.805556 +vt 0.881944 0.807292 +vt 0.847222 0.807292 +vt 0.854167 0.833333 +vt 0.847222 0.831597 +vt 0.881944 0.779514 +vt 0.875000 0.777778 +vt 0.847222 0.779514 +vt 0.847222 0.803819 +vt 0.881944 0.776042 +vt 0.875000 0.750000 +vt 0.881944 0.751736 +vt 0.847222 0.751736 +vt 0.847222 0.776042 +vt 0.881944 0.748264 +vt 0.875000 0.722222 +vt 0.881944 0.723958 +vt 0.847222 0.723958 +vt 0.847222 0.748264 +vt 0.881944 0.720486 +vt 0.875000 0.694444 +vt 0.881944 0.696181 +vt 0.847222 0.696181 +vt 0.847222 0.720486 +vt 0.881944 0.692708 +vt 0.881944 0.668403 +vt 0.847222 0.668403 +vt 0.847222 0.692708 +vt 0.881944 0.998264 +vt 0.875000 0.972222 +vt 0.881944 0.973958 +vt 0.847222 0.973958 +vt 0.854167 1.000000 +vt 0.847222 0.998264 +vt 0.881944 0.970486 +vt 0.875000 0.944445 +vt 0.881944 0.946181 +vt 0.847222 0.946181 +vt 0.854167 0.972222 +vt 0.847222 0.970486 +vt 0.881944 0.942708 +vt 0.875000 0.916667 +vt 0.881944 0.918403 +vt 0.847222 0.918403 +vt 0.854167 0.944445 +vt 0.847222 0.942708 +vt 0.881944 0.914931 +vt 0.875000 0.888889 +vt 0.881944 0.890625 +vt 0.847222 0.890625 +vt 0.854167 0.916667 +vt 0.847222 0.914931 +vt 0.881944 0.887153 +vt 0.875000 0.861111 +vt 0.881944 0.862847 +vt 0.847222 0.887153 +vt 0.854167 0.861111 +vt 0.854167 0.888889 +vt 0.881944 0.859375 +vt 0.875000 0.833333 +vt 0.881944 0.835070 +vt 0.847222 0.835070 +vt 0.854167 0.861111 +vt 0.847222 0.859375 +vt 0.000000 0.500000 +vt 0.527778 0.506944 +vt 0.000000 0.506944 +vt 0.527778 0.479167 +vt 0.000000 0.472222 +vt 0.527778 0.472222 +vt 0.000000 0.451389 +vt 0.527778 0.451389 +vt 0.527778 0.500000 +vt 0.000000 0.479167 +vt 0.354167 0.659722 +vt 0.340278 0.638889 +vt 0.354167 0.638889 +vt 0.333333 0.659722 +vt 0.333333 0.638889 +vt 0.319444 0.638889 +vt 0.361111 0.659722 +vt 0.361111 0.638889 +vt 0.354167 0.631944 +vt 0.340278 0.611111 +vt 0.354167 0.611111 +vt 0.340278 0.631944 +vt 0.333333 0.611111 +vt 0.319444 0.631944 +vt 0.319444 0.611111 +vt 0.361111 0.631944 +vt 0.361111 0.611111 +vt 0.354167 0.604167 +vt 0.340278 0.583333 +vt 0.354167 0.583333 +vt 0.333333 0.604167 +vt 0.333333 0.583333 +vt 0.319444 0.583333 +vt 0.361111 0.604167 +vt 0.361111 0.583333 +vt 0.013889 0.659722 +vt 0.000000 0.604167 +vt 0.013889 0.604167 +vt 0.284722 0.659722 +vt 0.166667 0.604167 +vt 0.305556 0.604167 +vt 0.166667 0.659722 +vt 0.152778 0.604167 +vt 0.131944 0.659722 +vt 0.152778 0.590278 +vt 0.013889 0.590278 +vt 0.895833 0.833333 +vt 0.916667 0.805556 +vt 0.916667 0.833333 +vt 0.895833 0.805556 +vt 0.916667 0.777778 +vt 0.895833 0.777778 +vt 0.916667 0.750000 +vt 0.895833 0.750000 +vt 0.916667 0.722222 +vt 0.895833 0.722222 +vt 0.916667 0.694444 +vt 0.895833 0.694444 +vt 0.916667 0.666667 +vt 0.895833 1.000000 +vt 0.916667 0.972222 +vt 0.916667 1.000000 +vt 0.895833 0.972222 +vt 0.916667 0.944444 +vt 0.895833 0.944444 +vt 0.916667 0.916667 +vt 0.895833 0.916667 +vt 0.916667 0.888889 +vt 0.895833 0.888889 +vt 0.916667 0.861111 +vt 0.895833 0.861111 +vt 0.923611 0.831597 +vt 0.916667 0.805556 +vt 0.923611 0.807292 +vt 0.888889 0.807292 +vt 0.895833 0.833333 +vt 0.888889 0.831597 +vt 0.923611 0.803819 +vt 0.916667 0.777778 +vt 0.923611 0.779514 +vt 0.888889 0.779514 +vt 0.888889 0.803819 +vt 0.923611 0.776042 +vt 0.916667 0.750000 +vt 0.923611 0.751736 +vt 0.888889 0.751736 +vt 0.888889 0.776042 +vt 0.923611 0.748264 +vt 0.916667 0.722222 +vt 0.923611 0.723958 +vt 0.888889 0.723958 +vt 0.888889 0.748264 +vt 0.923611 0.720486 +vt 0.916667 0.694444 +vt 0.923611 0.696181 +vt 0.888889 0.696181 +vt 0.888889 0.720486 +vt 0.923611 0.692708 +vt 0.923611 0.668403 +vt 0.888889 0.668403 +vt 0.888889 0.692708 +vt 0.923611 0.998264 +vt 0.916667 0.972222 +vt 0.923611 0.973958 +vt 0.888889 0.973958 +vt 0.895833 1.000000 +vt 0.888889 0.998264 +vt 0.923611 0.970486 +vt 0.916667 0.944445 +vt 0.923611 0.946181 +vt 0.888889 0.946181 +vt 0.895833 0.972222 +vt 0.888889 0.970486 +vt 0.923611 0.942708 +vt 0.916667 0.916667 +vt 0.923611 0.918403 +vt 0.888889 0.918403 +vt 0.895833 0.944445 +vt 0.888889 0.942708 +vt 0.923611 0.914931 +vt 0.916667 0.888889 +vt 0.923611 0.890625 +vt 0.888889 0.890625 +vt 0.895833 0.916667 +vt 0.888889 0.914931 +vt 0.923611 0.887153 +vt 0.916667 0.861111 +vt 0.923611 0.862847 +vt 0.888889 0.862847 +vt 0.895833 0.888889 +vt 0.888889 0.887153 +vt 0.923611 0.859375 +vt 0.916667 0.833333 +vt 0.923611 0.835070 +vt 0.888889 0.835070 +vt 0.895833 0.861111 +vt 0.888889 0.859375 +vt 0.013889 0.527778 +vt 0.000000 0.583333 +vt 0.000000 0.527778 +vt 0.284722 0.583333 +vt 0.166667 0.527778 +vt 0.305556 0.527778 +vt 0.166667 0.583333 +vt 0.152778 0.527778 +vt 0.131944 0.583333 +vt 0.152778 0.513889 +vt 0.013889 0.513889 +vt 0.000000 0.437500 +vt 0.527778 0.444444 +vt 0.000000 0.444444 +vt 0.527778 0.416667 +vt 0.000000 0.409722 +vt 0.527778 0.409722 +vt 0.000000 0.388889 +vt 0.527778 0.388889 +vt 0.527778 0.437500 +vt 0.000000 0.416667 +vt 0.402778 0.659722 +vt 0.388889 0.638889 +vt 0.402778 0.638889 +vt 0.388889 0.659722 +vt 0.381944 0.638889 +vt 0.381944 0.659722 +vt 0.368056 0.638889 +vt 0.409722 0.638889 +vt 0.402778 0.631944 +vt 0.388889 0.611111 +vt 0.402778 0.611111 +vt 0.388889 0.631944 +vt 0.381944 0.611111 +vt 0.381944 0.631944 +vt 0.368056 0.611111 +vt 0.409722 0.631944 +vt 0.409722 0.611111 +vt 0.402778 0.604167 +vt 0.388889 0.583333 +vt 0.402778 0.583333 +vt 0.388889 0.604167 +vt 0.381944 0.583333 +vt 0.381944 0.604167 +vt 0.368056 0.583333 +vt 0.409722 0.604167 +vt 0.409722 0.583333 +vt 0.673611 0.944444 +vt 0.673611 1.000000 +vt 0.076389 0.771826 +vt 0.784722 0.924214 +vt 0.715278 0.783730 +vt 0.715278 0.839286 +vt 0.006944 0.742453 +vt 0.076389 0.744048 +vt 0.076389 0.716270 +vt 0.076389 0.688492 +vt 0.076389 0.994048 +vt 0.076389 0.966270 +vt 0.076389 0.938492 +vt 0.076389 0.827381 +vt 0.076389 0.855159 +vt 0.076389 0.910715 +vt 0.076389 0.799603 +vt 0.076389 0.882937 +vt 0.784722 0.951991 +vt 0.937500 0.963417 +vt 0.944444 0.965278 +vt 0.951389 0.963417 +vt 0.958333 0.951389 +vt 0.956473 0.944444 +vt 0.951389 0.939361 +vt 0.937500 0.939361 +vt 0.932416 0.944444 +vt 0.930556 0.951389 +vt 0.784722 0.813103 +vt 0.784722 0.674214 +vt 0.006944 0.825786 +vt 0.076389 0.994047 +vt 0.006944 0.881342 +vt 0.006944 0.909120 +vt 0.006944 0.770231 +vt 0.006944 0.686897 +vt 0.006944 0.936897 +vt 0.006944 0.798008 +vt 0.006944 0.714675 +vt 0.006944 0.964675 +vt 0.944444 1.000000 +vt 0.951389 0.998139 +vt 0.956473 0.993056 +vt 0.956473 0.979167 +vt 0.951389 0.974083 +vt 0.944444 0.972222 +vt 0.932416 0.979167 +vt 0.930556 0.986111 +vt 0.932416 0.993056 +vt 0.791667 0.871102 +vt 0.791667 0.898880 +vt 0.791667 0.982213 +vt 0.791667 0.704435 +vt 0.791667 0.732213 +vt 0.791667 0.759991 +vt 0.791667 0.787768 +vt 0.000000 0.851120 +vt 0.000000 0.878898 +vt 0.000000 0.906676 +vt 0.000000 0.934454 +vt 0.000000 0.962232 +vt 0.000000 0.990009 +vt 0.000000 0.684454 +vt 0.006944 0.714675 +vt 0.006944 0.742453 +vt 0.000000 0.767787 +vt 0.000000 0.795565 +vt 0.000000 0.823343 +vt 0.076389 0.855158 +vt 0.805556 0.666667 +vt 0.833333 0.833333 +vt 0.805556 0.805556 +vt 0.805556 0.777778 +vt 0.805556 0.750000 +vt 0.805556 0.722222 +vt 0.805556 0.694444 +vt 0.833333 1.000000 +vt 0.805556 0.972222 +vt 0.833333 0.972222 +vt 0.805556 0.944445 +vt 0.833333 0.944445 +vt 0.805556 0.916667 +vt 0.833333 0.916667 +vt 0.805556 0.888889 +vt 0.833333 0.888889 +vt 0.805556 0.861111 +vt 0.833333 0.861111 +vt 0.805556 0.833333 +vt 0.854167 0.666667 +vt 0.875000 0.833333 +vt 0.854167 0.805556 +vt 0.881944 0.803819 +vt 0.854167 0.777778 +vt 0.854167 0.750000 +vt 0.854167 0.722222 +vt 0.854167 0.694444 +vt 0.875000 1.000000 +vt 0.854167 0.972222 +vt 0.875000 0.972222 +vt 0.854167 0.944445 +vt 0.875000 0.944445 +vt 0.854167 0.916667 +vt 0.875000 0.916667 +vt 0.854167 0.888889 +vt 0.875000 0.888889 +vt 0.847222 0.862847 +vt 0.875000 0.861111 +vt 0.854167 0.833333 +vt 0.340278 0.659722 +vt 0.319444 0.659722 +vt 0.333333 0.631944 +vt 0.340278 0.604167 +vt 0.319444 0.604167 +vt 0.000000 0.659722 +vt 0.187500 0.659722 +vt 0.152778 0.659722 +vt 0.034722 0.659722 +vt 0.895833 0.666667 +vt 0.916667 0.833333 +vt 0.895833 0.805556 +vt 0.895833 0.777778 +vt 0.895833 0.750000 +vt 0.895833 0.722222 +vt 0.895833 0.694444 +vt 0.916667 1.000000 +vt 0.895833 0.972222 +vt 0.916667 0.972222 +vt 0.895833 0.944445 +vt 0.916667 0.944445 +vt 0.895833 0.916667 +vt 0.916667 0.916667 +vt 0.895833 0.888889 +vt 0.916667 0.888889 +vt 0.895833 0.861111 +vt 0.916667 0.861111 +vt 0.895833 0.833333 +vt 0.013889 0.583333 +vt 0.187500 0.583333 +vt 0.152778 0.583333 +vt 0.034722 0.583333 +vt 0.368056 0.659722 +vt 0.409722 0.659722 +vt 0.368056 0.631944 +vt 0.368056 0.604167 +s 1 +usemtl Texture +f 2/1/1 3/2/2 1/3/1 +f 4/4/2 5/5/3 3/2/2 +f 6/6/3 7/7/4 5/5/3 +f 8/8/4 9/9/5 7/7/4 +f 9/9/5 12/10/6 11/11/6 +f 12/10/6 13/12/7 11/11/6 +f 14/13/7 15/14/8 13/15/7 +f 16/16/8 17/17/9 15/14/8 +f 18/18/9 19/19/10 17/17/9 +f 20/20/10 21/21/11 19/19/10 +f 6/22/12 28/23/13 8/24/13 +f 22/25/11 23/26/14 21/21/11 +f 24/27/14 1/3/1 23/26/14 +f 21/21/15 46/28/16 19/29/16 +f 28/30/17 58/31/18 29/32/18 +f 22/33/19 36/34/20 24/27/20 +f 4/35/21 27/36/12 6/37/12 +f 20/38/22 35/39/19 22/25/19 +f 18/40/23 34/41/22 20/20/22 +f 16/42/24 33/43/23 18/18/23 +f 14/13/25 32/44/24 16/16/24 +f 12/45/26 31/46/25 14/47/25 +f 10/48/27 30/49/26 12/50/26 +f 8/51/13 29/32/27 10/52/27 +f 24/53/20 26/54/28 2/55/28 +f 2/56/28 25/57/21 4/58/21 +f 46/59/29 89/60/30 45/61/30 +f 19/19/16 45/62/31 17/63/31 +f 17/17/31 44/64/32 15/65/32 +f 15/14/32 43/66/33 13/15/33 +f 13/67/33 42/68/34 11/69/34 +f 11/70/34 41/71/35 9/72/35 +f 9/73/35 40/74/36 7/75/36 +f 1/76/37 48/77/38 23/78/38 +f 3/79/39 37/80/37 1/81/37 +f 7/82/36 39/83/40 5/84/40 +f 23/26/38 47/85/15 21/86/15 +f 5/87/40 38/88/39 3/89/39 +f 25/90/41 54/91/42 27/36/42 +f 36/34/43 70/92/44 72/93/43 +f 32/94/45 66/95/46 33/43/46 +f 29/96/18 60/97/47 30/49/47 +f 69/98/48 61/99/48 53/100/48 +f 33/101/46 68/102/49 34/41/49 +f 30/103/47 62/104/50 31/46/50 +f 27/105/42 56/106/17 28/23/17 +f 36/107/43 51/108/51 26/54/51 +f 34/109/49 70/110/44 35/39/44 +f 31/111/50 64/112/45 32/44/45 +f 37/113/52 95/114/53 48/115/53 +f 42/116/54 85/117/55 83/118/54 +f 39/119/56 75/120/57 38/121/57 +f 40/122/58 77/123/56 39/124/56 +f 47/125/59 91/126/29 46/127/29 +f 44/128/60 85/129/55 43/130/55 +f 41/131/61 79/132/58 40/133/58 +f 48/134/53 93/135/59 47/136/59 +f 45/137/30 87/138/60 44/139/60 +f 42/140/54 81/141/61 41/142/61 +f 80/143/62 88/144/62 96/145/62 +f 50/146/63 52/147/64 49/148/63 +f 50/149/63 53/150/65 54/151/65 +f 54/152/65 55/153/66 56/154/66 +f 58/155/67 55/156/66 57/157/67 +f 60/158/68 57/159/67 59/160/68 +f 60/161/68 61/162/69 62/163/69 +f 64/164/70 61/165/69 63/166/70 +f 64/167/70 65/168/71 66/169/71 +f 66/170/71 67/171/72 68/172/73 +f 68/173/73 69/174/74 70/175/74 +f 70/92/74 71/176/75 72/177/75 +f 51/178/64 71/179/75 52/180/64 +f 25/57/41 51/181/51 50/182/41 +f 75/183/76 73/184/77 74/185/77 +f 77/186/78 76/187/76 75/188/76 +f 79/189/79 78/190/78 77/191/78 +f 81/192/80 80/193/81 79/194/79 +f 83/195/82 82/196/80 81/197/80 +f 85/198/83 84/199/82 83/200/82 +f 87/201/84 86/202/83 85/203/83 +f 87/204/84 90/205/85 88/206/84 +f 89/207/85 92/208/86 90/209/85 +f 93/210/87 92/211/86 91/212/88 +f 95/213/89 94/214/87 93/215/87 +f 74/216/77 96/217/89 95/218/89 +f 37/219/52 75/220/57 74/221/52 +f 124/222/1 122/223/2 121/224/1 +f 123/225/2 125/226/3 122/223/2 +f 126/227/3 127/228/4 125/226/3 +f 128/229/4 129/230/5 127/228/4 +f 130/231/5 131/232/6 129/230/5 +f 132/233/6 133/234/7 131/232/6 +f 134/235/7 135/236/8 133/237/7 +f 136/238/8 137/239/9 135/236/8 +f 138/240/9 139/241/10 137/239/9 +f 140/242/10 141/243/11 139/241/10 +f 142/244/11 143/245/14 141/243/11 +f 144/246/14 121/224/1 143/245/14 +f 97/247/62 122/248/62 99/249/62 +f 100/250/48 124/251/48 98/252/48 +f 99/253/62 125/254/62 101/255/62 +f 102/256/48 123/225/48 100/257/48 +f 101/258/62 127/259/62 103/260/62 +f 104/261/48 126/227/48 102/262/48 +f 103/263/62 129/264/62 105/265/62 +f 106/266/48 128/229/48 104/267/48 +f 105/268/62 131/269/62 107/270/62 +f 108/271/48 130/231/48 106/272/48 +f 107/273/62 133/234/62 109/274/62 +f 110/275/48 132/233/48 108/276/48 +f 109/277/62 135/278/62 111/279/62 +f 112/280/48 134/281/48 110/282/48 +f 111/283/62 137/284/62 113/285/62 +f 114/286/48 136/287/48 112/288/48 +f 113/289/62 139/290/62 115/291/62 +f 116/292/48 138/293/48 114/294/48 +f 115/295/62 141/296/62 117/297/62 +f 118/298/48 140/299/48 116/300/48 +f 117/301/62 143/302/62 119/303/62 +f 120/304/48 142/305/48 118/306/48 +f 119/307/62 121/308/62 97/309/62 +f 98/310/48 144/311/48 120/312/48 +f 172/313/1 170/314/2 169/315/1 +f 171/316/2 173/317/3 170/314/2 +f 174/318/3 175/319/4 173/317/3 +f 176/320/4 177/321/5 175/319/4 +f 178/322/5 179/323/6 177/321/5 +f 180/324/6 181/325/7 179/323/6 +f 182/326/7 183/327/8 181/328/7 +f 184/329/8 185/330/9 183/327/8 +f 186/331/9 187/332/10 185/330/9 +f 188/333/10 189/334/11 187/332/10 +f 190/335/11 191/336/14 189/334/11 +f 192/337/14 169/315/1 191/336/14 +f 145/338/62 170/339/62 147/340/62 +f 148/341/48 172/342/48 146/343/48 +f 149/344/62 170/314/62 173/345/62 +f 150/346/48 171/316/48 148/347/48 +f 149/348/62 175/349/62 151/350/62 +f 152/351/48 174/318/48 150/352/48 +f 151/353/62 177/354/62 153/355/62 +f 154/356/48 176/320/48 152/357/48 +f 153/358/62 179/359/62 155/360/62 +f 156/361/48 178/322/48 154/362/48 +f 155/363/62 181/325/62 157/364/62 +f 158/365/48 180/324/48 156/366/48 +f 157/367/62 183/368/62 159/369/62 +f 160/370/48 182/371/48 158/372/48 +f 159/373/62 185/374/62 161/375/62 +f 162/376/48 184/377/48 160/378/48 +f 161/379/62 187/380/62 163/381/62 +f 164/382/48 186/383/48 162/384/48 +f 163/385/62 189/386/62 165/387/62 +f 166/388/48 188/389/48 164/390/48 +f 165/391/62 191/392/62 167/393/62 +f 166/394/48 192/395/48 190/396/48 +f 167/397/62 169/398/62 145/399/62 +f 146/400/48 192/401/48 168/402/48 +f 194/403/90 195/404/90 193/405/90 +f 200/406/91 197/407/91 199/408/91 +f 199/408/92 193/409/92 195/410/92 +f 196/411/93 198/412/93 200/406/93 +f 202/413/90 203/414/90 201/415/90 +f 203/414/62 208/416/62 207/417/62 +f 208/416/91 205/418/91 207/417/91 +f 206/419/48 201/415/48 205/420/48 +f 210/421/90 211/422/90 209/423/90 +f 212/424/62 215/425/62 211/422/62 +f 215/425/91 214/426/91 213/427/91 +f 214/428/48 209/423/48 213/429/48 +f 218/430/90 219/431/90 217/432/90 +f 219/431/62 224/433/62 223/434/62 +f 224/433/91 221/435/91 223/434/91 +f 222/436/48 217/432/48 221/437/48 +f 226/438/94 227/439/94 225/440/94 +f 228/441/62 231/442/62 227/443/62 +f 232/444/95 229/445/95 231/442/95 +f 230/446/48 225/440/48 229/445/48 +f 231/447/7 225/440/7 227/448/7 +f 260/449/1 258/450/2 257/451/1 +f 259/452/2 261/453/3 258/450/2 +f 262/454/3 263/455/4 261/453/3 +f 264/456/4 265/457/5 263/455/4 +f 266/458/5 267/459/6 265/457/5 +f 268/460/6 269/461/7 267/459/6 +f 270/462/7 271/463/8 269/464/7 +f 272/465/8 273/466/9 271/463/8 +f 274/467/9 275/468/10 273/466/9 +f 276/469/10 277/470/11 275/468/10 +f 278/471/11 279/472/14 277/470/11 +f 280/473/14 257/451/1 279/472/14 +f 233/474/62 258/475/62 235/476/62 +f 236/477/48 260/478/48 234/479/48 +f 235/480/62 261/481/62 237/482/62 +f 238/483/48 259/452/48 236/484/48 +f 237/485/62 263/486/62 239/487/62 +f 240/488/48 262/454/48 238/489/48 +f 239/490/62 265/491/62 241/492/62 +f 242/493/48 264/456/48 240/494/48 +f 241/495/62 267/496/62 243/497/62 +f 244/498/48 266/458/48 242/499/48 +f 243/500/62 269/461/62 245/501/62 +f 246/502/48 268/460/48 244/503/48 +f 245/504/62 271/505/62 247/506/62 +f 248/507/48 270/508/48 246/509/48 +f 247/510/62 273/511/62 249/512/62 +f 250/513/48 272/514/48 248/515/48 +f 249/516/62 275/517/62 251/518/62 +f 252/519/48 274/520/48 250/521/48 +f 251/522/62 277/523/62 253/524/62 +f 254/525/48 276/526/48 252/527/48 +f 253/528/62 279/529/62 255/530/62 +f 256/531/48 278/532/48 254/533/48 +f 255/534/62 257/535/62 233/536/62 +f 234/537/48 280/538/48 256/539/48 +f 281/540/94 284/541/94 283/542/94 +f 284/543/62 287/544/62 283/545/62 +f 288/546/95 285/547/95 287/544/95 +f 286/548/48 281/540/48 285/547/48 +f 287/549/7 281/540/7 283/550/7 +f 290/551/93 291/552/93 289/553/93 +f 296/554/92 293/555/92 295/556/92 +f 295/556/90 289/557/90 291/558/90 +f 292/559/91 294/560/91 296/554/91 +f 298/561/93 299/562/93 297/563/93 +f 300/564/62 303/565/62 299/562/62 +f 304/566/92 301/567/92 303/565/92 +f 301/568/48 298/561/48 297/563/48 +f 306/569/93 307/570/93 305/571/93 +f 308/572/62 311/573/62 307/570/62 +f 312/574/92 309/575/92 311/573/92 +f 310/576/48 305/571/48 309/577/48 +f 314/578/93 315/579/93 313/580/93 +f 316/581/62 319/582/62 315/579/62 +f 320/583/92 317/584/92 319/582/92 +f 318/585/48 313/580/48 317/586/48 +f 2/1/1 4/4/2 3/2/2 +f 4/4/2 6/6/3 5/5/3 +f 6/6/3 8/8/4 7/7/4 +f 8/8/4 10/587/5 9/9/5 +f 9/9/5 10/587/5 12/10/6 +f 12/10/6 14/588/7 13/12/7 +f 14/13/7 16/16/8 15/14/8 +f 16/16/8 18/18/9 17/17/9 +f 18/18/9 20/20/10 19/19/10 +f 20/20/10 22/25/11 21/21/11 +f 6/22/12 27/105/12 28/23/13 +f 22/25/11 24/27/14 23/26/14 +f 24/27/14 2/1/1 1/3/1 +f 21/21/15 47/589/15 46/28/16 +f 28/30/17 56/590/17 58/31/18 +f 22/33/19 35/591/19 36/34/20 +f 4/35/21 25/90/21 27/36/12 +f 20/38/22 34/109/22 35/39/19 +f 18/40/23 33/101/23 34/41/22 +f 16/42/24 32/94/24 33/43/23 +f 14/13/25 31/111/25 32/44/24 +f 12/45/26 30/103/26 31/46/25 +f 10/48/27 29/96/27 30/49/26 +f 8/51/13 28/30/13 29/32/27 +f 24/53/20 36/107/20 26/54/28 +f 2/56/28 26/592/28 25/57/21 +f 46/59/29 91/593/29 89/60/30 +f 19/19/16 46/594/16 45/62/31 +f 17/17/31 45/595/31 44/64/32 +f 15/14/32 44/596/32 43/66/33 +f 13/67/33 43/597/33 42/68/34 +f 11/70/34 42/598/34 41/71/35 +f 9/73/35 41/599/35 40/74/36 +f 1/76/37 37/600/37 48/77/38 +f 3/79/39 38/601/39 37/80/37 +f 7/82/36 40/602/36 39/83/40 +f 23/26/38 48/603/38 47/85/15 +f 5/87/40 39/604/40 38/88/39 +f 25/90/41 50/149/41 54/91/42 +f 36/34/43 35/591/44 70/92/44 +f 32/94/45 64/167/45 66/95/46 +f 29/96/18 58/605/18 60/97/47 +f 53/100/48 49/606/48 52/607/48 +f 52/607/48 71/608/48 69/98/48 +f 69/98/48 67/609/48 65/610/48 +f 65/610/48 63/611/48 61/99/48 +f 61/99/48 59/612/48 57/613/48 +f 57/613/48 55/614/48 53/100/48 +f 53/100/48 52/607/48 69/98/48 +f 69/98/48 65/610/48 61/99/48 +f 61/99/48 57/613/48 53/100/48 +f 33/101/46 66/170/46 68/102/49 +f 30/103/47 60/161/47 62/104/50 +f 27/105/42 54/152/42 56/106/17 +f 36/107/43 72/615/43 51/108/51 +f 34/109/49 68/173/49 70/110/44 +f 31/111/50 62/616/50 64/112/45 +f 37/113/52 74/617/52 95/114/53 +f 42/116/54 43/618/55 85/117/55 +f 39/119/56 77/619/56 75/120/57 +f 40/122/58 79/620/58 77/123/56 +f 47/125/59 93/621/59 91/126/29 +f 44/128/60 87/622/60 85/129/55 +f 41/131/61 81/623/61 79/132/58 +f 48/134/53 95/624/53 93/135/59 +f 45/137/30 89/625/30 87/138/60 +f 42/140/54 83/626/54 81/141/61 +f 96/145/62 73/627/62 76/628/62 +f 76/628/62 78/629/62 80/143/62 +f 80/143/62 82/630/62 84/631/62 +f 84/631/62 86/632/62 88/144/62 +f 88/144/62 90/633/62 92/634/62 +f 92/634/62 94/635/62 96/145/62 +f 96/145/62 76/628/62 80/143/62 +f 80/143/62 84/631/62 88/144/62 +f 88/144/62 92/634/62 96/145/62 +f 50/146/63 51/181/64 52/147/64 +f 50/149/63 49/636/63 53/150/65 +f 54/152/65 53/637/65 55/153/66 +f 58/155/67 56/590/66 55/156/66 +f 60/158/68 58/605/67 57/159/67 +f 60/161/68 59/638/68 61/162/69 +f 64/164/70 62/616/69 61/165/69 +f 64/167/70 63/639/70 65/168/71 +f 66/170/71 65/640/71 67/171/72 +f 68/173/73 67/641/72 69/174/74 +f 70/92/74 69/642/74 71/176/75 +f 51/178/64 72/615/75 71/179/75 +f 25/57/41 26/592/51 51/181/51 +f 75/183/76 76/643/76 73/184/77 +f 77/186/78 78/644/78 76/187/76 +f 79/189/79 80/645/81 78/190/78 +f 81/192/80 82/646/80 80/193/81 +f 83/195/82 84/647/82 82/196/80 +f 85/198/83 86/648/83 84/199/82 +f 87/201/84 88/649/84 86/202/83 +f 87/204/84 89/650/85 90/205/85 +f 89/207/85 91/651/88 92/208/86 +f 93/210/87 94/652/87 92/211/86 +f 95/213/89 96/653/89 94/214/87 +f 74/216/77 73/654/77 96/217/89 +f 37/219/52 38/655/57 75/220/57 +f 124/222/1 123/225/2 122/223/2 +f 123/225/2 126/227/3 125/226/3 +f 126/227/3 128/229/4 127/228/4 +f 128/229/4 130/231/5 129/230/5 +f 130/231/5 132/233/6 131/232/6 +f 132/233/6 134/656/7 133/234/7 +f 134/235/7 136/238/8 135/236/8 +f 136/238/8 138/240/9 137/239/9 +f 138/240/9 140/242/10 139/241/10 +f 140/242/10 142/244/11 141/243/11 +f 142/244/11 144/246/14 143/245/14 +f 144/246/14 124/222/1 121/224/1 +f 97/247/62 121/657/62 122/248/62 +f 100/250/48 123/658/48 124/251/48 +f 99/253/62 122/223/62 125/254/62 +f 102/256/48 126/659/48 123/225/48 +f 101/258/62 125/226/62 127/259/62 +f 104/261/48 128/660/48 126/227/48 +f 103/263/62 127/228/62 129/264/62 +f 106/266/48 130/661/48 128/229/48 +f 105/268/62 129/230/62 131/269/62 +f 108/271/48 132/662/48 130/231/48 +f 107/273/62 131/232/62 133/234/62 +f 110/275/48 134/656/48 132/233/48 +f 109/277/62 133/663/62 135/278/62 +f 112/280/48 136/664/48 134/281/48 +f 111/283/62 135/665/62 137/284/62 +f 114/286/48 138/666/48 136/287/48 +f 113/289/62 137/667/62 139/290/62 +f 116/292/48 140/668/48 138/293/48 +f 115/295/62 139/669/62 141/296/62 +f 118/298/48 142/670/48 140/299/48 +f 117/301/62 141/671/62 143/302/62 +f 120/304/48 144/672/48 142/305/48 +f 119/307/62 143/673/62 121/308/62 +f 98/310/48 124/674/48 144/311/48 +f 172/313/1 171/316/2 170/314/2 +f 171/316/2 174/318/3 173/317/3 +f 174/318/3 176/320/4 175/319/4 +f 176/320/4 178/322/5 177/321/5 +f 178/322/5 180/324/6 179/323/6 +f 180/324/6 182/675/7 181/325/7 +f 182/326/7 184/329/8 183/327/8 +f 184/329/8 186/331/9 185/330/9 +f 186/331/9 188/333/10 187/332/10 +f 188/333/10 190/335/11 189/334/11 +f 190/335/11 192/337/14 191/336/14 +f 192/337/14 172/313/1 169/315/1 +f 145/338/62 169/676/62 170/339/62 +f 148/341/48 171/677/48 172/342/48 +f 149/344/62 147/678/62 170/314/62 +f 150/346/48 174/679/48 171/316/48 +f 149/348/62 173/317/62 175/349/62 +f 152/351/48 176/680/48 174/318/48 +f 151/353/62 175/319/62 177/354/62 +f 154/356/48 178/681/48 176/320/48 +f 153/358/62 177/321/62 179/359/62 +f 156/361/48 180/682/48 178/322/48 +f 155/363/62 179/323/62 181/325/62 +f 158/365/48 182/675/48 180/324/48 +f 157/367/62 181/683/62 183/368/62 +f 160/370/48 184/684/48 182/371/48 +f 159/373/62 183/685/62 185/374/62 +f 162/376/48 186/686/48 184/377/48 +f 161/379/62 185/687/62 187/380/62 +f 164/382/48 188/688/48 186/383/48 +f 163/385/62 187/689/62 189/386/62 +f 166/388/48 190/690/48 188/389/48 +f 165/391/62 189/691/62 191/392/62 +f 166/394/48 168/692/48 192/395/48 +f 167/397/62 191/693/62 169/398/62 +f 146/400/48 172/694/48 192/401/48 +f 194/403/90 196/411/90 195/404/90 +f 200/406/91 198/412/91 197/407/91 +f 199/408/92 197/407/92 193/409/92 +f 196/411/93 194/403/93 198/412/93 +f 202/413/90 204/695/90 203/414/90 +f 203/414/62 204/695/62 208/416/62 +f 208/416/91 206/696/91 205/418/91 +f 206/419/48 202/413/48 201/415/48 +f 210/421/90 212/424/90 211/422/90 +f 212/424/62 216/697/62 215/425/62 +f 215/425/91 216/697/91 214/426/91 +f 214/428/48 210/421/48 209/423/48 +f 218/430/90 220/698/90 219/431/90 +f 219/431/62 220/698/62 224/433/62 +f 224/433/91 222/699/91 221/435/91 +f 222/436/48 218/430/48 217/432/48 +f 226/438/94 228/700/94 227/439/94 +f 228/441/62 232/701/62 231/442/62 +f 232/444/95 230/702/95 229/445/95 +f 230/446/48 226/703/48 225/440/48 +f 231/447/7 229/445/7 225/440/7 +f 260/449/1 259/452/2 258/450/2 +f 259/452/2 262/454/3 261/453/3 +f 262/454/3 264/456/4 263/455/4 +f 264/456/4 266/458/5 265/457/5 +f 266/458/5 268/460/6 267/459/6 +f 268/460/6 270/704/7 269/461/7 +f 270/462/7 272/465/8 271/463/8 +f 272/465/8 274/467/9 273/466/9 +f 274/467/9 276/469/10 275/468/10 +f 276/469/10 278/471/11 277/470/11 +f 278/471/11 280/473/14 279/472/14 +f 280/473/14 260/449/1 257/451/1 +f 233/474/62 257/705/62 258/475/62 +f 236/477/48 259/706/48 260/478/48 +f 235/480/62 258/450/62 261/481/62 +f 238/483/48 262/707/48 259/452/48 +f 237/485/62 261/453/62 263/486/62 +f 240/488/48 264/708/48 262/454/48 +f 239/490/62 263/455/62 265/491/62 +f 242/493/48 266/709/48 264/456/48 +f 241/495/62 265/457/62 267/496/62 +f 244/498/48 268/710/48 266/458/48 +f 243/500/62 267/459/62 269/461/62 +f 246/502/48 270/704/48 268/460/48 +f 245/504/62 269/711/62 271/505/62 +f 248/507/48 272/712/48 270/508/48 +f 247/510/62 271/713/62 273/511/62 +f 250/513/48 274/714/48 272/514/48 +f 249/516/62 273/715/62 275/517/62 +f 252/519/48 276/716/48 274/520/48 +f 251/522/62 275/717/62 277/523/62 +f 254/525/48 278/718/48 276/526/48 +f 253/528/62 277/719/62 279/529/62 +f 256/531/48 280/720/48 278/532/48 +f 255/534/62 279/721/62 257/535/62 +f 234/537/48 260/722/48 280/538/48 +f 281/540/94 282/723/94 284/541/94 +f 284/543/62 288/724/62 287/544/62 +f 288/546/95 286/725/95 285/547/95 +f 286/548/48 282/726/48 281/540/48 +f 287/549/7 285/547/7 281/540/7 +f 290/551/93 292/559/93 291/552/93 +f 296/554/92 294/560/92 293/555/92 +f 295/556/90 293/555/90 289/557/90 +f 292/559/91 290/551/91 294/560/91 +f 298/561/93 300/564/93 299/562/93 +f 300/564/62 304/566/62 303/565/62 +f 304/566/92 302/727/92 301/567/92 +f 301/568/48 302/728/48 298/561/48 +f 306/569/93 308/572/93 307/570/93 +f 308/572/62 312/574/62 311/573/62 +f 312/574/92 310/729/92 309/575/92 +f 310/576/48 306/569/48 305/571/48 +f 314/578/93 316/581/93 315/579/93 +f 316/581/62 320/583/62 319/582/62 +f 320/583/92 318/730/92 317/584/92 +f 318/585/48 314/578/48 313/580/48 diff --git a/src/main/resources/assets/hbm/textures/models/Prototype.png b/src/main/resources/assets/hbm/textures/models/Prototype.png deleted file mode 100644 index 2738d1aee15217443dae45bbe1d144a65c1b134e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16020 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
v@;^-%KKzqS$Xc`8kSs{1XyL+rBme=p)V2J| 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 literal 0 HcmV?d00001 From db0dbafe75cd6cd178b00f78e74cac22e9b0244e Mon Sep 17 00:00:00 2001 From: 7H40 <57011718+7H40@users.noreply.github.com> Date: Sun, 11 May 2025 06:17:38 +0300 Subject: [PATCH 017/181] Update ru_RU.lang tj_TJ.lang --> ru_RU.lang --- src/main/resources/assets/hbm/lang/ru_RU.lang | 160 +++++++++--------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 26688b7f0..59af4a5dd 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -1,6 +1,6 @@ -achievement.acidizer.desc=уфф ай Ð¼Ð¾Ñ ÐºÐ¾Ð¶Ð° +achievement.acidizer.desc=уфф ай Ð¼Ð¾Ñ ÐºÐ¾Ð¶Ð° achievement.acidizer=КиÑлюка -achievement.assembly.desc=Подожди-ка, уже Ñ‡Ð°Ñ ÑƒÑ‚Ñ€Ð°? +achievement.assembly.desc=Погоди-ка, уже Ñ‡Ð°Ñ Ð½Ð¾Ñ‡Ð¸? achievement.assembly=Завод раÑширÑетÑÑ achievement.FOEQ.desc=Отправь передатчик на орбиту МарÑа... в ÑмыÑле Дюны. achievement.FOEQ=Бункеры Ñ Ð¿ÐµÐ³Ð°Ñами и ракетами @@ -10,11 +10,11 @@ achievement.bismuth.desc=Помните, как люди Ñпорили об Ñ achievement.bismuth=ВиÑмут achievement.blastFurnace.desc=Они разобрали затонувший дредноут Ð´Ð»Ñ "ЭкÑплорера-1". achievement.blastFurnace=Железо и уголь -achievement.bossCreeper.desc='Вот Ñто Ñдерные криперы? Эта штуковина?!' +achievement.bossCreeper.desc='ЗдеÑÑŒ еÑть Ñдерные криперы? Они ÑущеÑтвуют?!' achievement.bossCreeper=Бомба на четырёх ногах achievement.bossMaskman.desc=Врезать большому мальчику. -achievement.bossMaskman=6 меÑÑцев обÑзательной Ñлужбы, и вÑе, что Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ð», - Ñто Ð¿Ð°Ñ€ÑˆÐ¸Ð²Ð°Ñ Ñ„ÑƒÑ‚Ð±Ð¾Ð»ÐºÐ° achievement.bossMeltdown.desc=Скорее ужаÑно, чем отлично, но Ñ Ð¿Ñ€Ð¸Ð¼Ñƒ то, что могу получить. +achievement.bossMaskman=6 меÑÑцев Ñрочной Ñлужбы, и вÑе что Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ð» Ñто Ð¿Ð°Ñ€ÑˆÐ¸Ð²Ð°Ñ Ñ„ÑƒÑ‚Ð±Ð¾Ð»ÐºÐ° achievement.bossMeltdown=3.6 рентген achievement.bossWorm.desc=ФабÑтафф. ÐœÐ¾Ñ Ð·Ð°Ð´Ð½Ð¸Ñ†Ð°. Рты Ñчитай. achievement.bossWorm=Разборка БаллÑ-О-Трон @@ -24,30 +24,30 @@ achievement.burnerPress.desc=Давление давит и на менÑ, и н achievement.burnerPress=Под давлением achievement.c20_5.desc=??? achievement.c20_5=Глава [ДВÐДЦÐТЬ_С_ПОЛОВИÐОЙ] -achievement.c44.desc=Гальванизирован! Типа, цинк! +achievement.c44.desc=Гальванизирован! ТоеÑть цинк! achievement.c44=Глава 44 achievement.centrifuge.desc=Ñ†ÐµÐ½Ñ‚Ñ€Ð¾Ð±ÐµÐ¶Ð½Ð°Ñ Ñила Ñто фейк не @ Ð¼ÐµÐ½Ñ -achievement.centrifuge=ЦентроÑÑ‚Ñ€ÐµÐ¼Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñила +achievement.centrifuge=Ð¦ÐµÐ½Ñ‚Ñ€Ð¾Ð±ÐµÐ¶Ð½Ð°Ñ Ñила achievement.chemplant.desc=Теперь ты думаешь химикатами! achievement.chemplant=Завод раÑширÑетÑÑ: ЧаÑть 2 achievement.chicagoPile.desc="Как там меÑтные жители?" / "Очень дружелюбные". achievement.chicagoPile=Мореплаватель выÑадилÑÑ Ð² Ðовом Свете achievement.concrete.desc=Любимчик большевиков. -achievement.concrete=Старый добрый +achievement.concrete=Старый и надежный achievement.desh.desc="Тогда давайте, вы вÑе. МеÑта, куда можно пойти!" -achievement.desh=Леверье -achievement.digammaFeel.desc=пуÑтота внутри. -achievement.digammaFeel=Страх чувÑтва +achievement.desh=Ле Верьер +achievement.digammaFeel.desc=Мои глаза кровоточат +achievement.digammaFeel=МуÑорный мир наполненый канализациÑми achievement.digammaKauaiMoho.desc=Ð’Ñе ужаÑно, вот тебе горÑчий шоколад. -achievement.digammaKauaiMoho=Пой, пой мне пеÑню Кауаи Мохо. -achievement.digammaKnow.desc=что такое Ñтот мир. -achievement.digammaKnow=Страх Ð¿Ð¾Ð·Ð½Ð°Ð½Ð¸Ñ -achievement.digammaSee.desc=в бездну. -achievement.digammaSee=Страх Ð²Ð¸Ð´ÐµÐ½Ð¸Ñ -achievement.digammaUpOnTop.desc=Дредноут, облицованный железом. -achievement.digammaUpOnTop=Ðа вершине +achievement.digammaKauaiMoho=Пой, пой мне пеÑню Кауаи Мохо +achievement.digammaKnow.desc=о чем вообще Ñтот мир. +achievement.digammaKnow=СТРÐÐ¥ ПОЗÐÐÐИЯ +achievement.digammaSee.desc=Темновато, принеÑи фонарик. +achievement.digammaSee=СПУСТИСЬ Ð’ БЕЗДÐУ +achievement.digammaUpOnTop.desc=ВоÑхищайÑÑ Ñыном моим, он мой клон. +achievement.digammaUpOnTop=ВОСХИЩÐЙСЯ МÐОЮ, ВОСХИЩÐЙСЯ ДОМОМ МОИМ achievement.fiend.desc=Будь жеÑтоким. -achievement.fiend2.desc=Будь жёÑтче. +achievement.fiend2.desc=Будь еще жёÑтче. achievement.fiend2=Ðарушитель-2: перенарушение. achievement.fiend=Ðарушитель achievement.freytag.desc=Стражи жизни Герольда. @@ -60,7 +60,7 @@ achievement.goFish.desc=МорÑкое раÑпÑтие achievement.goFish=Иди порыбачь achievement.hidden.desc=Убейте зараженного крипера падающим товарным вагоном achievement.hidden=Скрытый Каталог -achievement.horizonsBonus.desc=ЧеÑтное Ñлово, что, черт возьми, Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ не так +achievement.horizonsBonus.desc=чеÑтное Ñлово что черт возьми Ñ Ñ‚Ð¾Ð±Ð¾Ð¹ не так achievement.horizonsBonus=СлÑм-данк Ð´Ð¸Ð°Ñ€ÐµÑ achievement.horizonsEnd.desc=Отправьте Тома домой. achievement.horizonsEnd=Горизонты @@ -78,12 +78,12 @@ achievement.no9.desc="Я надеюÑÑŒ, что Ñвинец, который Ñ achievement.no9=Старый номер ДевÑть achievement.omega12.desc=Решите проблему Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð¶Ð¸Ð·Ð½Ð¸ на Ñтой неÑчаÑтной планете. achievement.omega12=УÑкоритель чаÑтиц Омега-12 -achievement.polymer.desc=ВоÑхитительный, воÑхитительный микроплаÑтик. +achievement.polymer.desc=ВкуÑнейший, вкуÑнейший микроплаÑтик. achievement.polymer=Тефлон -achievement.potato.desc=Можешь убить Ð´Ð»Ñ Ð¼ÐµÐ½Ñ Ñту птицу? +achievement.potato.desc=Ты Ð¼ÐµÐ½Ñ Ð¿Ñ‹Ñ€Ð½ÑƒÐ»! Что ÐЕ ТÐК Ñ Ñ‚Ð¾Ð±Ð¾-ОÐÐÐХХ achievement.potato=ВоÑÑтание машин achievement.radDeath.desc=ÐœÐ°Ñ€Ð¸Ñ ÐšÑŽÑ€Ð¸ изобрела теорию радиоактивноÑти, лечение радиоактивноÑти и умирание от радиоактивноÑти. -achievement.radDeath=Ой, РадиациÑ! +achievement.radDeath=Ðй, РадиациÑ! achievement.radium.desc=ТЫ УВОЛЕРЗРТО, ЧТО ПОДСЫПÐЛ РÐДИЙ Ð’ МОЙ КОФЕ! achievement.radium=МИСТЕР ÐЕВЕРОЯТÐЫЙ achievement.radPoison.desc=ИÑпытайте поÑледÑÑ‚Ð²Ð¸Ñ Ñ€Ð°Ð´Ð¸Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð³Ð¾ отравлениÑ. @@ -93,19 +93,19 @@ achievement.RBMKBoom=15,000. achievement.RBMK.desc=Он бредит, отведите его в лазарет. achievement.RBMK=3.6 Рентген? achievement.redBalloons.desc="Это то, чего мы ждали. Вот она, ребÑта, война." -achievement.redBalloons=99 воздушных шариков +achievement.redBalloons=99 краÑных шариков achievement.redRoom.desc=? achievement.redRoom=Ð”Ñ€ÑƒÐ³Ð°Ñ Ñторона -achievement.sacrifice.desc=Ð’ÑтретьÑÑ Ð»Ð¸Ñ†Ð¾Ð¼ к лицу Ñ Ð¾Ð³Ð½Ñ‘Ð¼ и выживи. +achievement.sacrifice.desc=Узри Ð¿Ð»Ð°Ð¼Ñ Ð¸ выживи. achievement.sacrifice=Жертва achievement.schrab.desc=Как бы то ни было, Ñ Ð±Ñ‹ не Ñтал Ñмотреть на Ñто Ñлишком долго. achievement.schrab=ОÑтров ÑтабильноÑти -achievement.selenium.desc=О,да! +achievement.selenium.desc=Ðга. achievement.selenium=XVIII Луна. -achievement.SILEX.desc=Это круче, чем кажетÑÑ, Ñ Ð¾Ð±ÐµÑ‰Ð°ÑŽ. +achievement.SILEX.desc=Это круче чем кажетÑÑ, Ñ Ð¾Ð±ÐµÑ‰Ð°ÑŽ. achievement.SILEX=Лазерное разделение изотопов achievement.slimeball.desc= -achievement.slimeball=Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ окунуть Ñвои Ñйца в Ñерную киÑлоту. +achievement.slimeball=Я должен окунуть Ñвои Ñйца в Ñерную киÑлоту. achievement.stratum.desc=Жми на тормоза, МиттÑ. achievement.stratum=ПлаÑÑ‚ achievement.someWounds.desc=ПриготовьÑÑ @@ -115,10 +115,10 @@ achievement.soyuz=ÐŸÐµÑ‡Ñ‘Ð½Ð°Ñ ÐšÐ°Ñ€Ñ‚Ð¾ÑˆÐºÐ° achievement.space.desc=ПровалиÑÑŒ как только можно и потрать 90 миллионов долларов впуÑтую. achievement.space=ПоÑледний Рубеж... Ð¥Ð¾Ñ‚Ñ Ð»Ð°Ð´Ð½Ð¾, забей. achievement.sulfuric.desc= -achievement.sulfuric=Ñ Ð½Ðµ должен был окунать Ñвои Ñйца в Ñерную киÑлоту. +achievement.sulfuric=Я не должен был окунать Ñвои Ñйца в Ñерную киÑлоту. achievement.tantalum.desc=Ðеуловимый, но вÑегда необходимый Ñлемент. achievement.tantalum="Тантал" -achievement.tasteofblood.desc=Это не было чаÑтью протокола теÑтированиÑ. +achievement.tasteofblood.desc=Это не было чаÑтью какого-либо протокола теÑтированиÑ. achievement.tasteofblood=Ð’ÐºÑƒÑ ÐºÑ€Ð¾Ð²Ð¸ achievement.technetium.desc=Это целебно, Ñто целебно! achievement.technetium=Большой Человек, Человек-Ð¡Ð²Ð¸Ð½ÑŒÑ @@ -128,7 +128,7 @@ achievement.watz.desc=ÐŸÐ¾Ð»Ñ Ð¤Ð¾Ð»ÐºÐ²Ð°Ð½Ð³Ñ€Ð° также приÑутÑÑ‚ achievement.watz=Сила Е-126 achievement.witchtaunter.desc=Эти твари ничего тебе не Ñделают! achievement.witchtaunter=ÐаÑмехайтеÑÑŒ над ведьмами -achievement.ZIRNOXBoom.desc=cope, seethe, mald +achievement.ZIRNOXBoom.desc=коупи, терпи и ÑердиÑÑŒ achievement.ZIRNOXBoom=ЦИРÐОКС analyze.basic1======Компонент NTM===== @@ -573,7 +573,7 @@ chem.BALEFIRE=Смешивание ракетного жар-топлива chem.BP_BIOFUEL=ТранÑÑÑ‚ÐµÑ€Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð±Ð¸Ð¾Ñ‚Ð¾Ð¿Ð»Ð¸Ð²Ð° chem.BP_BIOGAS=ПроизводÑтво биогаза chem.C4=Синтез C-4 -chem.CC_CENTRIFUGE=Отделение хлоркальцита +chem.CC_CENTRIFUGE=Ð¡ÐµÐ¿Ð°Ñ€Ð°Ñ†Ð¸Ñ Ñ…Ð»Ð¾Ñ€ÐºÐ°Ð»ÑŒÑ†Ð¸Ñ‚Ð° chem.CC_ELECTROLYSIS=Электролиз хлорида ÐºÐ°Ð»ÑŒÑ†Ð¸Ñ chem.CC_HEATING=УÑовершенÑтвованное Ñжижение ÑƒÐ³Ð»Ñ chem.CC_HEAVY=Базовое Ñжижение ÑƒÐ³Ð»Ñ @@ -677,12 +677,12 @@ chem.YELLOWCAKE=ПроизводÑтво йеллоукейка commands.satellite.no_active_satellites=Ðет активных Ñпутников! commands.satellite.no_satellite=Спутник не найден! -commands.satellite.not_a_satellite=Предмет в руке не Ñпутник! +commands.satellite.not_a_satellite=Предмет в руке не ÑвлÑетÑÑ Ñпутником! commands.satellite.satellite_descended=Спутник уÑпешно удалён. commands.satellite.satellite_orbited=Спутник запущен. commands.satellite.should_be_run_as_player=Команда должна быть выполнена игроком! -container.ammoBag=Патроны +container.ammoBag=Сумка Ð´Ð»Ñ Ð¿Ð°Ñ‚Ñ€Ð¾Ð½ container.amsBase=ОÑнование ÐМС [Декор] container.amsEmitter=Излучатель ÐМС [Декор] container.amsLimiter=Стабилизатор ÐМС [Декор] @@ -912,63 +912,63 @@ damage.exact.LASER=Лазерам damage.exact.onFire=Горению damage.other=Прочему -death.attack.acid=%1$s упал в киÑлоту +death.attack.acid=%1$s упал в киÑлоту. death.attack.acidPlayer=%1$s был раÑтворён %2$s. -death.attack.ams=%1$s иÑкупалÑÑ Ð² Ñмертельных чаÑтицах, ещё неизвеÑтных науке -death.attack.amsCore=%1$s иÑпарилÑÑ Ð² огне ÑингулÑрноÑти +death.attack.ams=%1$s иÑкупалÑÑ Ð² Ñмертельных чаÑтицах, ещё неизвеÑтных науке. +death.attack.amsCore=%1$s иÑпарилÑÑ Ð² огне ÑингулÑрноÑти. death.attack.asbestos=%1$s теперь имеет право на финанÑовую компенÑацию. -death.attack.bang=%1$s превратилÑÑ Ð² рагу -death.attack.blackhole=%1$s превратилÑÑ Ð² Ñпагетти -death.attack.blacklung=%1$s умер от болезни черных лёгких -death.attack.blender=%1$s Ñтал фаршем -death.attack.boat=%1$s был пришиблен лодкой +death.attack.bang=%1$s превратилÑÑ Ð² рагу. +death.attack.blackhole=%1$s превратилÑÑ Ð² Ñпагетти. +death.attack.blacklung=%1$s умер от болезни черных лёгких. +death.attack.blender=%1$s Ñтал фаршем. +death.attack.boat=%1$s был пришиблен лодкой. death.attack.boil=%1$s был заживо Ñварен %2$s. death.attack.boxcar=%1$s был раздавлен падающим грузовым вагоном. Ðу что ж... -death.attack.broadcast=%1$s раÑтворил Ñвой мозг -death.attack.building=%1$s был придавлен падающим зданием -death.attack.cheater=внутренноÑти %1$s превратилиÑÑŒ в Ð¾Ð²Ñ‘Ñ (???) -death.attack.chopperBullet=%1$s был изничтожен %2$s -death.attack.cloud=%1$s раÑтаÑл, как ÑÑкимо в жаркий день -death.attack.cmb=%1$s был продырÑвлен %2$s +death.attack.broadcast=%1$s раÑтворил Ñвой мозг. +death.attack.building=%1$s был придавлен падающим зданием. +death.attack.cheater=внутренноÑти %1$s превратилиÑÑŒ в овёÑ. (???) +death.attack.chopperBullet=%1$s был изничтожен %2$s. +death.attack.cloud=%1$s раÑтаÑл, как ÑÑкимо на Ñолнце. +death.attack.cmb=%1$s был продырÑвлен %2$s. death.attack.digamma=%1$s шагнул в пуÑтоту. -death.attack.electricity=%1$s был убит ÑлектричеÑким током -death.attack.electrified=%1$s превратилÑÑ Ð² батарейку Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ %2$s -death.attack.euthanized=%1$s был уÑыплён %2$s -death.attack.euthanizedSelf2=%1$s выиграл премию Дарвина -death.attack.euthanizedSelf=%1$s нашёл путь к лучшей жизни в РоÑÑии -death.attack.exhaust=%1$s был превращен в шашлык Ñтартовой ракетой -death.attack.flamethrower=%1$s был кремирован %2$s +death.attack.electricity=%1$s был убит ÑлектричеÑким током. +death.attack.electrified=%1$s превратилÑÑ Ð² батарейку Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ %2$s. +death.attack.euthanized=%1$s был уÑыплён %2$s. +death.attack.euthanizedSelf2=%1$s выиграл премию Дарвина. +death.attack.euthanizedSelf=%1$s уÑыпил ÑебÑ, ну и дурак. +death.attack.exhaust=%1$s был превращен в шашлык Ñтартовой ракетой. +death.attack.flamethrower=%1$s был кремирован %2$s. death.attack.flamethrower.item=%1$s был кремирован %2$s Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ %3$s. -death.attack.ice=%1$s был превращён в ÑÑкимо %2$s -death.attack.laser=%1$s был превращён в пепел %2$s -death.attack.laser.item=%1$s был превращён в пепел %2$s Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ %3$s -death.attack.lead=%1$s умер от Ð¾Ñ‚Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñвинцом +death.attack.ice=%1$s был превращён в ÑÑкимо %2$s. +death.attack.laser=%1$s был превращён в пепел %2$s. +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.meteorite=%1$s был раздавлен огромным коÑмичеÑким камнем. death.attack.microwave=%1$s взорвалÑÑ Ð¾Ñ‚ микроволнового излучениÑ. death.attack.mku=%1$s умер по неизвеÑтным причинам. -death.attack.monoxide=%1$s забыл Ñменить батарейки в Ñвоем детекторе угарного газа -death.attack.mudPoisoning=%1$s утонул в токÑичной жиже -death.attack.nuclearBlast=%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 умер от лучевой болезни -death.attack.revolverBullet=%1$s получил пулю в голову от %2$s -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.subAtomic2=%1$s был Ñмещен QPU, потому что %2$s изменил его фактичеÑкую ÑкороÑть -death.attack.subAtomic3=%1$s переÑтал ÑущеÑтвовать из-за %2$s -death.attack.subAtomic4=%1$s был поделён на ноль %2$s -death.attack.subAtomic5=%1$s был обнулён %2$s -death.attack.suicide=%1$s оторвал Ñебе голову -death.attack.taint=%1$s умер от невероÑтного количеÑтва опухолей -death.attack.tau=%1$s был изрешёчен %2$s при помощи отрицательно зарÑженых тауонов -death.attack.tauBlast=%1$s зарÑжал XVL1456 Ñлишком долго и взлетел на воздух -death.attack.teleporter=%1$s телепортировалÑÑ Ð² никуда +death.attack.pc=%1$s Ñтал лужицей внутри розового облака. +death.attack.plasma=%1$s был иÑпарён %2$s. +death.attack.radiation=%1$s умер от лучевой болезни. +death.attack.revolverBullet=%1$s получил пулю в голову от %2$s. +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.subAtomic2=%1$s был Ñмещен QPU, потому что %2$s изменил его фактичеÑкую ÑкороÑть. +death.attack.subAtomic3=%1$s переÑтал ÑущеÑтвовать из-за %2$s. +death.attack.subAtomic4=%1$s был поделён на ноль %2$s. +death.attack.subAtomic5=%1$s был обнулён %2$s. +death.attack.suicide=%1$s оторвал Ñебе голову. +death.attack.taint=%1$s умер от невероÑтного количеÑтва опухолей. +death.attack.tau=%1$s был изрешёчен %2$s при помощи отрицательно зарÑженых тауонов. +death.attack.tauBlast=%1$s зарÑжал XVL1456 Ñлишком долго и взлетел на воздух. +death.attack.teleporter=%1$s телепортировалÑÑ Ð² никуда. death.sedna.electric=%1$s был поджарен. death.sedna.electric.attacker=%1$s был поджарен %2$s. From 6696f3b73614b610793ef175edfc14f9bee611c8 Mon Sep 17 00:00:00 2001 From: 7H40 <57011718+7H40@users.noreply.github.com> Date: Sun, 11 May 2025 16:49:42 +0300 Subject: [PATCH 018/181] Update ru_RU.lang --- src/main/resources/assets/hbm/lang/ru_RU.lang | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 59af4a5dd..9208e7f21 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -24,7 +24,7 @@ achievement.burnerPress.desc=Давление давит и на менÑ, и н achievement.burnerPress=Под давлением achievement.c20_5.desc=??? achievement.c20_5=Глава [ДВÐДЦÐТЬ_С_ПОЛОВИÐОЙ] -achievement.c44.desc=Гальванизирован! ТоеÑть цинк! +achievement.c44.desc=Гальванизирован! То еÑть цинк! achievement.c44=Глава 44 achievement.centrifuge.desc=Ñ†ÐµÐ½Ñ‚Ñ€Ð¾Ð±ÐµÐ¶Ð½Ð°Ñ Ñила Ñто фейк не @ Ð¼ÐµÐ½Ñ achievement.centrifuge=Ð¦ÐµÐ½Ñ‚Ñ€Ð¾Ð±ÐµÐ¶Ð½Ð°Ñ Ñила @@ -33,11 +33,11 @@ achievement.chemplant=Завод раÑширÑетÑÑ: ЧаÑть 2 achievement.chicagoPile.desc="Как там меÑтные жители?" / "Очень дружелюбные". achievement.chicagoPile=Мореплаватель выÑадилÑÑ Ð² Ðовом Свете achievement.concrete.desc=Любимчик большевиков. -achievement.concrete=Старый и надежный +achievement.concrete=Старый добрый achievement.desh.desc="Тогда давайте, вы вÑе. МеÑта, куда можно пойти!" -achievement.desh=Ле Верьер +achievement.desh=Леверье achievement.digammaFeel.desc=Мои глаза кровоточат -achievement.digammaFeel=МуÑорный мир наполненый канализациÑми +achievement.digammaFeel=МуÑорный мир наполненный канализациÑми achievement.digammaKauaiMoho.desc=Ð’Ñе ужаÑно, вот тебе горÑчий шоколад. achievement.digammaKauaiMoho=Пой, пой мне пеÑню Кауаи Мохо achievement.digammaKnow.desc=о чем вообще Ñтот мир. @@ -102,7 +102,7 @@ achievement.schrab.desc=Как бы то ни было, Ñ Ð±Ñ‹ не Ñтал Ñ achievement.schrab=ОÑтров ÑтабильноÑти achievement.selenium.desc=Ðга. achievement.selenium=XVIII Луна. -achievement.SILEX.desc=Это круче чем кажетÑÑ, Ñ Ð¾Ð±ÐµÑ‰Ð°ÑŽ. +achievement.SILEX.desc=Это круче, чем кажетÑÑ, Ñ Ð¾Ð±ÐµÑ‰Ð°ÑŽ. achievement.SILEX=Лазерное разделение изотопов achievement.slimeball.desc= achievement.slimeball=Я должен окунуть Ñвои Ñйца в Ñерную киÑлоту. @@ -128,7 +128,7 @@ achievement.watz.desc=ÐŸÐ¾Ð»Ñ Ð¤Ð¾Ð»ÐºÐ²Ð°Ð½Ð³Ñ€Ð° также приÑутÑÑ‚ achievement.watz=Сила Е-126 achievement.witchtaunter.desc=Эти твари ничего тебе не Ñделают! achievement.witchtaunter=ÐаÑмехайтеÑÑŒ над ведьмами -achievement.ZIRNOXBoom.desc=коупи, терпи и ÑердиÑÑŒ +achievement.ZIRNOXBoom.desc=cope, seethe, mald achievement.ZIRNOXBoom=ЦИРÐОКС analyze.basic1======Компонент NTM===== @@ -935,7 +935,7 @@ death.attack.electricity=%1$s был убит ÑлектричеÑким ток death.attack.electrified=%1$s превратилÑÑ Ð² батарейку Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ %2$s. death.attack.euthanized=%1$s был уÑыплён %2$s. death.attack.euthanizedSelf2=%1$s выиграл премию Дарвина. -death.attack.euthanizedSelf=%1$s уÑыпил ÑебÑ, ну и дурак. +death.attack.euthanizedSelf=%1$s нашёл путь к лучшей жизни в РоÑÑии. death.attack.exhaust=%1$s был превращен в шашлык Ñтартовой ракетой. death.attack.flamethrower=%1$s был кремирован %2$s. death.attack.flamethrower.item=%1$s был кремирован %2$s Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ %3$s. From 273590a96bd6252d7539e5da7d44f0beae04ec9c Mon Sep 17 00:00:00 2001 From: LegendaryDoge30 Date: Mon, 12 May 2025 13:30:12 +0200 Subject: [PATCH 019/181] bombbs added solinium bomb and changed the rendering because it was fucked up --- .../java/com/hbm/main/ResourceManager.java | 2 +- .../hbm/render/item/ItemRenderLibrary.java | 23 - .../tileentity/RenderNukePrototype.java | 31 +- .../render/tileentity/RenderNukeSolinium.java | 43 +- .../resources/assets/hbm/models/bombs/ufp.obj | 1986 ++++++++++++----- .../assets/hbm/textures/models/bombs/ufp.png | Bin 25660 -> 3644 bytes 6 files changed, 1473 insertions(+), 612 deletions(-) diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c5b4e6d01..d1af02be6 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -274,7 +274,7 @@ public class ResourceManager { public static final IModelCustom bomb_tsar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/tsar.obj")).asVBO(); public static final IModelCustom bomb_prototype = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/Prototype.obj")).asVBO(); public static final IModelCustom bomb_fleija = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fleija.obj")).asVBO(); - public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")); + public static final IModelCustom bomb_solinium = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")).asVBO(); public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj")); public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj")); public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO(); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 928ce2864..2feabfbe3 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -363,29 +363,6 @@ public class ItemRenderLibrary { ResourceManager.bomb_boy.renderAll(); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_prototype), new ItemRenderBase() { - public void renderInventory() { - GL11.glScaled(2.25, 2.25, 2.25); - } - public void renderCommon() { - GL11.glRotated(90, 0, 1, 0); - bindTexture(ResourceManager.bomb_prototype_tex); - ResourceManager.bomb_prototype.renderAll(); - }}); - - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_solinium), new ItemRenderBase() { - public void renderInventory() { - GL11.glScaled(4, 4, 4); - } - public void renderCommon() { - GL11.glTranslated(0.5, 0, 0); - GL11.glRotated(90, 0, 1, 0); - GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.bomb_solinium_tex); - ResourceManager.bomb_solinium.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_n2), new ItemRenderBase() { public void renderInventory() { GL11.glTranslated(0, -4, 0); diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java b/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java index e02f9dece..ecc6730ad 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukePrototype.java @@ -1,5 +1,9 @@ package com.hbm.render.tileentity; +import com.hbm.blocks.ModBlocks; +import com.hbm.render.item.ItemRenderBase; +import net.minecraft.item.Item; +import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; @@ -7,7 +11,7 @@ import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; -public class RenderNukePrototype extends TileEntitySpecialRenderer { +public class RenderNukePrototype extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) @@ -36,5 +40,30 @@ public class RenderNukePrototype extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.nuke_prototype); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, 0.125, 0); + GL11.glScaled(3, 3, 3); + } + + public void renderCommon() { + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 0.125, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.bomb_prototype_tex); + ResourceManager.bomb_prototype.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeSolinium.java b/src/main/java/com/hbm/render/tileentity/RenderNukeSolinium.java index 44e9cb120..bf05c4d26 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeSolinium.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeSolinium.java @@ -1,5 +1,9 @@ package com.hbm.render.tileentity; +import com.hbm.blocks.ModBlocks; +import com.hbm.render.item.ItemRenderBase; +import net.minecraft.item.Item; +import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; @@ -7,8 +11,8 @@ import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; -public class RenderNukeSolinium extends TileEntitySpecialRenderer { - +public class RenderNukeSolinium extends TileEntitySpecialRenderer implements IItemRendererProvider { + public RenderNukeSolinium() { } @Override @@ -18,9 +22,9 @@ public class RenderNukeSolinium extends TileEntitySpecialRenderer { GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); - + GL11.glRotatef(90, 0F, 1F, 0F); - + switch(tileEntity.getBlockMetadata()) { case 2: @@ -32,12 +36,39 @@ public class RenderNukeSolinium extends TileEntitySpecialRenderer { case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; } - + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.bomb_solinium_tex); ResourceManager.bomb_solinium.renderAll(); - + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.nuke_solinium); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -0.125, 0); + GL11.glScaled(5, 5, 5); + } + + public void renderCommon() { + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.125, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.bomb_solinium_tex); + ResourceManager.bomb_solinium.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } } diff --git a/src/main/resources/assets/hbm/models/bombs/ufp.obj b/src/main/resources/assets/hbm/models/bombs/ufp.obj index 0742d49d0..2c63d25bc 100644 --- a/src/main/resources/assets/hbm/models/bombs/ufp.obj +++ b/src/main/resources/assets/hbm/models/bombs/ufp.obj @@ -1,582 +1,1406 @@ -# Blender v2.76 (sub 0) OBJ File: 'ufp.blend' +# Blender 4.0.2 # www.blender.org -o Cylinder -v 0.000000 1.000000 -0.500000 -v 0.000000 1.000000 1.500000 -v 0.191342 0.961940 -0.500000 -v 0.191342 0.961940 1.500000 -v 0.353553 0.853553 -0.500000 -v 0.353553 0.853553 1.500000 -v 0.461940 0.691342 -0.500000 -v 0.461940 0.691342 1.500000 -v 0.500000 0.500000 -0.500000 -v 0.500000 0.500000 1.500000 -v 0.461940 0.308658 -0.500000 -v 0.461940 0.308658 1.500000 -v 0.353553 0.146447 -0.500000 -v 0.353553 0.146447 1.500000 -v 0.191342 0.038060 -0.500000 -v 0.191342 0.038060 1.500000 -v 0.000000 -0.000000 -0.500000 -v 0.000000 0.000000 1.500000 -v -0.191342 0.038060 -0.500000 -v -0.191342 0.038060 1.500000 -v -0.353553 0.146446 -0.500000 -v -0.353553 0.146447 1.500000 -v -0.461940 0.308658 -0.500000 -v -0.461940 0.308658 1.500000 -v -0.500000 0.500000 -0.500000 -v -0.500000 0.500000 1.500000 -v -0.461940 0.691342 -0.500000 -v -0.461940 0.691342 1.500000 -v -0.353553 0.853553 -0.500000 -v -0.353553 0.853554 1.500000 -v -0.191341 0.961940 -0.500000 -v -0.191341 0.961940 1.500000 -v 0.143506 0.846455 1.750000 -v 0.000000 0.875000 1.750000 -v 0.265165 0.765165 1.750000 -v 0.346455 0.643506 1.750000 -v 0.375000 0.500000 1.750000 -v 0.346455 0.356494 1.750000 -v 0.265165 0.234835 1.750000 -v 0.143506 0.153545 1.750000 -v 0.000000 0.125000 1.750000 -v -0.143506 0.153545 1.750000 -v -0.265165 0.234835 1.750000 -v -0.346455 0.356494 1.750000 -v -0.375000 0.500000 1.750000 -v -0.346455 0.643506 1.750000 -v -0.265165 0.765165 1.750000 -v -0.143506 0.846455 1.750000 -v 0.047835 0.615485 1.900000 -v 0.000000 0.625000 1.900000 -v 0.088388 0.588389 1.900000 -v 0.115485 0.547836 1.900000 -v 0.125000 0.500000 1.900000 -v 0.115485 0.452165 1.900000 -v 0.088388 0.411612 1.900000 -v 0.047835 0.384515 1.900000 -v 0.000000 0.375000 1.900000 -v -0.047835 0.384515 1.900000 -v -0.088388 0.411612 1.900000 -v -0.115485 0.452165 1.900000 -v -0.125000 0.500000 1.900000 -v -0.115485 0.547836 1.900000 -v -0.088388 0.588389 1.900000 -v -0.047835 0.615485 1.900000 -v 0.000000 0.750000 -1.750000 -v 0.095671 0.730970 -1.750000 -v 0.176777 0.676777 -1.750000 -v 0.230970 0.595671 -1.750000 -v 0.250000 0.500000 -1.750000 -v 0.230970 0.404329 -1.750000 -v 0.176777 0.323223 -1.750000 -v 0.095671 0.269030 -1.750000 -v 0.000000 0.250000 -1.750000 -v -0.095671 0.269030 -1.750000 -v -0.176777 0.323223 -1.750000 -v -0.230970 0.404329 -1.750000 -v -0.250000 0.500000 -1.750000 -v -0.230970 0.595671 -1.750000 -v -0.176777 0.676777 -1.750000 -v -0.095671 0.730970 -1.750000 -v -0.000000 0.750000 -2.500000 -v 0.095671 0.730970 -2.500000 -v 0.176777 0.676777 -2.500000 -v 0.230970 0.595671 -2.500000 -v 0.250000 0.500000 -2.500000 -v 0.230970 0.404329 -2.500000 -v 0.176777 0.323223 -2.500000 -v 0.095671 0.269030 -2.500000 -v 0.000000 0.250000 -2.500000 -v -0.095671 0.269030 -2.500000 -v -0.176777 0.323223 -2.500000 -v -0.230970 0.404329 -2.500000 -v -0.250000 0.500000 -2.500000 -v -0.230970 0.595671 -2.500000 -v -0.176777 0.676777 -2.500000 -v -0.095671 0.730970 -2.500000 -v -0.530330 1.030330 -1.750000 -v 0.530330 -0.030330 -1.750000 -v -0.530330 1.030330 -2.500000 -v 0.530330 -0.030330 -2.500000 -v -0.265165 0.765165 -1.000000 -v 0.265165 0.234835 -1.000000 -v -0.530330 -0.030330 -1.750000 -v 0.530330 1.030330 -1.750000 -v -0.530330 -0.030330 -2.500000 -v 0.530330 1.030330 -2.500000 -v -0.265165 0.234835 -1.000000 -v 0.265165 0.765165 -1.000000 -vt 0.308738 0.762034 -vt 0.272835 0.762033 -vt 0.272836 0.393966 -vt 0.236932 0.762033 -vt 0.236932 0.393966 -vt 0.201028 0.762033 -vt 0.201029 0.393966 -vt 0.165125 0.762033 -vt 0.165126 0.393966 -vt 0.129222 0.762033 -vt 0.129222 0.393966 -vt 0.093319 0.762033 -vt 0.093319 0.393966 -vt 0.057415 0.762033 -vt 0.057415 0.393966 -vt 0.021512 0.762033 -vt 0.021512 0.393966 -vt 0.595963 0.762035 -vt 0.560060 0.762035 -vt 0.560063 0.393968 -vt 0.524157 0.762035 -vt 0.524160 0.393968 -vt 0.488254 0.762034 -vt 0.488256 0.393967 -vt 0.452351 0.762034 -vt 0.452353 0.393967 -vt 0.416447 0.762034 -vt 0.416449 0.393967 -vt 0.380544 0.762034 -vt 0.380546 0.393967 -vt 0.232444 0.813276 -vt 0.205516 0.813276 -vt 0.344641 0.762034 -vt 0.308739 0.393966 -vt 0.344643 0.393967 -vt 0.281812 0.159539 -vt 0.160637 0.813276 -vt 0.151661 0.866175 -vt 0.142685 0.866175 -vt 0.052928 0.813276 -vt 0.026000 0.813276 -vt 0.304250 0.813276 -vt 0.277323 0.813276 -vt 0.447863 0.813277 -vt 0.124734 0.813276 -vt 0.097806 0.813276 -vt 0.519669 0.813277 -vt 0.340153 0.813277 -vt 0.196540 0.813276 -vt 0.169613 0.813276 -vt 0.591475 0.813278 -vt 0.564548 0.813278 -vt 0.411959 0.813277 -vt 0.268347 0.813276 -vt 0.088831 0.813276 -vt 0.061903 0.813276 -vt 0.483766 0.813277 -vt 0.133710 0.813276 -vt 0.555572 0.813278 -vt 0.528645 0.813277 -vt 0.376056 0.813277 -vt 0.349129 0.813277 -vt 0.782044 0.733935 -vt 0.790337 0.692245 -vt 0.807606 0.695680 -vt 0.420935 0.813277 -vt 0.438886 0.866176 -vt 0.115758 0.866175 -vt 0.106782 0.866175 -vt 0.385032 0.813277 -vt 0.402983 0.866175 -vt 0.079855 0.866175 -vt 0.070879 0.866175 -vt 0.367080 0.866175 -vt 0.358104 0.866175 -vt 0.043952 0.866175 -vt 0.295274 0.866175 -vt 0.286298 0.866175 -vt 0.331177 0.866175 -vt 0.322201 0.866175 -vt 0.582499 0.866176 -vt 0.573523 0.866176 -vt 0.259371 0.866175 -vt 0.250395 0.866175 -vt 0.546596 0.866176 -vt 0.223468 0.866175 -vt 0.214492 0.866175 -vt 0.492742 0.813277 -vt 0.510693 0.866176 -vt 0.187564 0.866175 -vt 0.178589 0.866175 -vt 0.474790 0.866176 -vt 0.465814 0.866176 -vt 0.353620 0.159539 -vt 0.353620 0.021514 -vt 0.371572 0.021514 -vt 0.425427 0.159540 -vt 0.443378 0.159540 -vt 0.102295 0.159539 -vt 0.120246 0.159539 -vt 0.497234 0.159540 -vt 0.515185 0.159540 -vt 0.317716 0.159539 -vt 0.174102 0.159539 -vt 0.192054 0.159539 -vt 0.595966 0.393968 -vt 0.569041 0.159541 -vt 0.389523 0.159540 -vt 0.407475 0.159540 -vt 0.245909 0.159539 -vt 0.066391 0.159539 -vt 0.084343 0.159539 -vt 0.461330 0.159540 -vt 0.479282 0.159540 -vt 0.138198 0.159539 -vt 0.533137 0.159540 -vt 0.551089 0.159541 -vt 0.371571 0.159539 -vt 0.210005 0.159539 -vt 0.227957 0.159539 -vt 0.030488 0.159538 -vt 0.048439 0.159538 -vt 0.693090 0.782494 -vt 0.638990 0.746346 -vt 0.729239 0.728394 -vt 0.030488 0.021513 -vt 0.048439 0.021513 -vt 0.281813 0.021512 -vt 0.299765 0.021512 -vt 0.317716 0.021512 -vt 0.335668 0.021512 -vt 0.569042 0.021515 -vt 0.586993 0.021515 -vt 0.245909 0.021514 -vt 0.263861 0.021514 -vt 0.533138 0.021515 -vt 0.551090 0.021515 -vt 0.210006 0.021513 -vt 0.227957 0.021513 -vt 0.497235 0.021515 -vt 0.515186 0.021515 -vt 0.174102 0.021513 -vt 0.192054 0.021513 -vt 0.461331 0.021515 -vt 0.479283 0.021515 -vt 0.138199 0.021513 -vt 0.156150 0.021513 -vt 0.425427 0.021515 -vt 0.443379 0.021515 -vt 0.102295 0.021513 -vt 0.120247 0.021513 -vt 0.389524 0.021514 -vt 0.407476 0.021514 -vt 0.066391 0.021513 -vt 0.084343 0.021513 -vt 0.915041 0.511196 -vt 0.638990 0.511196 -vt 0.638990 0.373170 -vt 0.846029 0.649222 -vt 0.708003 0.649222 -vt 0.885898 0.083239 -vt 0.762444 0.330146 -vt 0.638990 0.268420 -vt 0.978488 0.206693 -vt 0.916761 0.330146 -vt 0.299764 0.159539 -vt 0.313226 0.813276 -vt 0.241419 0.813276 -vt 0.456838 0.813277 -vt 0.813952 0.702027 -vt 0.817387 0.710320 -vt 0.817387 0.719295 -vt 0.813952 0.727588 -vt 0.807606 0.733935 -vt 0.799313 0.737370 -vt 0.790337 0.737370 -vt 0.775698 0.727588 -vt 0.772263 0.719295 -vt 0.772263 0.710320 -vt 0.775698 0.702027 -vt 0.782044 0.695680 -vt 0.799313 0.692245 -vt 0.429911 0.866175 -vt 0.394007 0.866175 -vt 0.034976 0.866175 -vt 0.537620 0.866176 -vt 0.501717 0.866176 -vt 0.335668 0.159539 -vt 0.586992 0.159541 -vt 0.263861 0.159539 -vt 0.156150 0.159539 -vt 0.675139 0.692245 -vt 0.693090 0.692245 -vt 0.709675 0.699115 -vt 0.722369 0.711809 -vt 0.729239 0.746346 -vt 0.722369 0.762931 -vt 0.709675 0.775624 -vt 0.675139 0.782494 -vt 0.658554 0.775624 -vt 0.645860 0.762931 -vt 0.638990 0.728394 -vt 0.645860 0.711809 -vt 0.658554 0.699115 -vt 0.915041 0.373170 -vt 0.762444 0.021512 -vn 0.195100 0.980800 -0.000000 -vn 0.555600 0.831500 0.000000 -vn 0.831500 0.555600 0.000000 -vn 0.980800 0.195100 -0.000000 -vn 0.980800 -0.195100 0.000000 -vn 0.831500 -0.555600 0.000000 -vn 0.555600 -0.831500 0.000000 -vn 0.195100 -0.980800 0.000000 -vn -0.195100 -0.980800 0.000000 -vn -0.555600 -0.831500 0.000000 -vn -0.831500 -0.555600 0.000000 -vn -0.980800 -0.195100 0.000000 -vn -0.980800 0.195100 0.000000 -vn -0.831500 0.555600 0.000000 -vn 0.746500 0.498800 0.440300 -vn -0.195100 0.980800 0.000000 -vn -0.555600 0.831500 -0.000000 -vn 0.191400 0.962400 -0.192500 -vn 0.511800 -0.101800 0.853000 -vn 0.175200 -0.880600 0.440300 -vn 0.175200 0.880600 0.440300 -vn -0.880600 0.175200 0.440300 -vn 0.746500 -0.498800 0.440300 -vn -0.746500 -0.498800 0.440300 -vn -0.175200 0.880600 0.440300 -vn 0.880600 0.175200 0.440300 -vn -0.175200 -0.880600 0.440300 -vn -0.746500 0.498800 0.440300 -vn 0.498800 0.746500 0.440300 -vn 0.498800 -0.746500 0.440300 -vn -0.880600 -0.175200 0.440300 -vn 0.880600 -0.175200 0.440300 -vn -0.498800 -0.746500 0.440300 -vn -0.498800 0.746500 0.440300 -vn 0.000000 0.000000 1.000000 -vn -0.511800 0.101800 0.853000 -vn 0.433900 -0.289900 0.853000 -vn -0.433900 0.289900 0.853000 -vn 0.289900 -0.433900 0.853000 -vn -0.289900 0.433900 0.853000 -vn 0.101800 -0.511800 0.853000 -vn 0.101800 0.511800 0.853000 -vn -0.101800 0.511800 0.853000 -vn -0.101800 -0.511800 0.853000 -vn 0.289900 0.433900 0.853000 -vn -0.289900 -0.433900 0.853000 -vn 0.433900 0.289900 0.853000 -vn -0.433900 -0.289900 0.853000 -vn 0.511800 0.101800 0.853000 -vn -0.511800 -0.101800 0.853000 -vn -0.962400 0.191400 -0.192500 -vn 0.815900 -0.545200 -0.192500 -vn -0.815900 -0.545200 -0.192500 -vn -0.191400 0.962400 -0.192500 -vn 0.962400 0.191400 -0.192500 -vn -0.191400 -0.962400 -0.192500 -vn -0.815900 0.545200 -0.192500 -vn 0.545200 0.815900 -0.192500 -vn 0.545200 -0.815900 -0.192500 -vn -0.962400 -0.191400 -0.192500 -vn 0.962400 -0.191400 -0.192500 -vn -0.545200 -0.815900 -0.192500 -vn -0.545200 0.815900 -0.192500 -vn 0.815900 0.545200 -0.192500 -vn 0.191400 -0.962400 -0.192500 -vn -0.000000 0.000000 -1.000000 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 -0.000000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/8/5 12/10/5 11/11/5 -f 12/10/6 14/12/6 13/13/6 -f 14/12/7 16/14/7 15/15/7 -f 16/14/8 18/16/8 17/17/8 -f 18/18/9 20/19/9 19/20/9 -f 20/19/10 22/21/10 21/22/10 -f 22/21/11 24/23/11 23/24/11 -f 24/23/12 26/25/12 25/26/12 -f 26/25/13 28/27/13 27/28/13 -f 28/27/14 30/29/14 29/30/14 -f 6/4/15 35/31/15 36/32/15 -f 32/33/16 2/1/16 1/34/16 -f 30/29/17 32/33/17 31/35/17 -f 1/34/18 3/3/18 66/36/18 -f 37/37/19 53/38/19 54/39/19 -f 16/14/20 40/40/20 41/41/20 -f 2/1/21 34/42/21 33/43/21 -f 28/27/22 26/25/22 45/44/22 -f 12/10/23 38/45/23 39/46/23 -f 24/23/24 22/21/24 43/47/24 -f 2/1/25 32/33/25 48/48/25 -f 8/6/26 36/49/26 37/50/26 -f 18/18/27 41/51/27 42/52/27 -f 30/29/28 28/27/28 46/53/28 -f 6/4/29 4/2/29 33/54/29 -f 14/12/30 39/55/30 40/56/30 -f 26/25/31 24/23/31 44/57/31 -f 10/8/32 37/37/32 38/58/32 -f 20/19/33 42/59/33 43/60/33 -f 30/29/34 47/61/34 48/62/34 -f 59/63/35 53/64/35 51/65/35 -f 46/66/36 45/44/36 61/67/36 -f 38/45/37 54/68/37 55/69/37 -f 47/70/38 46/53/38 62/71/38 -f 39/55/39 55/72/39 56/73/39 -f 47/61/40 63/74/40 64/75/40 -f 41/41/41 40/40/41 56/76/41 -f 34/42/42 50/77/42 49/78/42 -f 48/48/43 64/79/43 50/80/43 -f 41/51/44 57/81/44 58/82/44 -f 33/54/45 49/83/45 51/84/45 -f 43/60/46 42/59/46 58/85/46 -f 35/31/47 51/86/47 52/87/47 -f 44/88/48 43/47/48 59/89/48 -f 36/49/49 52/90/49 53/91/49 -f 44/57/50 60/92/50 61/93/50 -f 80/94/17 96/95/17 95/96/17 -f 27/28/51 78/97/51 77/98/51 -f 13/13/52 71/99/52 70/100/52 -f 23/24/53 76/101/53 75/102/53 -f 31/35/54 1/34/54 65/103/54 -f 9/9/55 69/104/55 68/105/55 -f 17/106/56 19/20/56 74/107/56 -f 29/30/57 79/108/57 78/109/57 -f 3/3/58 5/5/58 67/110/58 -f 15/15/59 72/111/59 71/112/59 -f 25/26/60 77/113/60 76/114/60 -f 9/9/61 11/11/61 70/115/61 -f 21/22/62 75/116/62 74/117/62 -f 31/35/63 80/94/63 79/118/63 -f 7/7/64 68/119/64 67/120/64 -f 17/17/65 73/121/65 72/122/65 -f 88/123/66 92/124/66 84/125/66 -f 73/121/8 89/126/8 88/127/8 -f 66/36/1 82/128/1 81/129/1 -f 65/103/16 81/130/16 96/131/16 -f 74/107/9 90/132/9 89/133/9 -f 67/110/2 83/134/2 82/135/2 -f 75/116/10 91/136/10 90/137/10 -f 68/119/3 84/138/3 83/139/3 -f 76/101/11 92/140/11 91/141/11 -f 69/104/4 85/142/4 84/143/4 -f 77/113/12 93/144/12 92/145/12 -f 70/115/5 86/146/5 85/147/5 -f 78/97/13 94/148/13 93/149/13 -f 71/99/6 87/150/6 86/151/6 -f 79/108/14 95/152/14 94/153/14 -f 72/111/7 88/154/7 87/155/7 -f 97/156/67 98/157/67 100/158/67 -f 97/156/67 101/159/67 102/160/67 -f 103/161/68 104/162/68 106/163/68 -f 103/161/68 107/164/68 108/165/68 -f 1/34/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/9/5 10/8/5 11/11/5 -f 11/11/6 12/10/6 13/13/6 -f 13/13/7 14/12/7 15/15/7 -f 15/15/8 16/14/8 17/17/8 -f 17/106/9 18/18/9 19/20/9 -f 19/20/10 20/19/10 21/22/10 -f 21/22/11 22/21/11 23/24/11 -f 23/24/12 24/23/12 25/26/12 -f 25/26/13 26/25/13 27/28/13 -f 27/28/14 28/27/14 29/30/14 -f 8/6/15 6/4/15 36/32/15 -f 31/35/16 32/33/16 1/34/16 -f 29/30/17 30/29/17 31/35/17 -f 65/166/18 1/34/18 66/36/18 -f 38/58/19 37/37/19 54/39/19 -f 18/16/20 16/14/20 41/41/20 -f 4/2/21 2/1/21 33/43/21 -f 46/66/22 28/27/22 45/44/22 -f 14/12/23 12/10/23 39/46/23 -f 44/88/24 24/23/24 43/47/24 -f 34/167/25 2/1/25 48/48/25 -f 10/8/26 8/6/26 37/50/26 -f 20/19/27 18/18/27 42/52/27 -f 47/70/28 30/29/28 46/53/28 -f 35/168/29 6/4/29 33/54/29 -f 16/14/30 14/12/30 40/56/30 -f 45/169/31 26/25/31 44/57/31 -f 12/10/32 10/8/32 38/58/32 -f 22/21/33 20/19/33 43/60/33 -f 32/33/34 30/29/34 48/62/34 -f 51/65/35 49/170/35 50/171/35 -f 50/171/35 64/172/35 51/65/35 -f 63/173/35 62/174/35 61/175/35 -f 61/175/35 60/176/35 63/173/35 -f 59/63/35 58/177/35 57/178/35 -f 57/178/35 56/179/35 55/180/35 -f 55/180/35 54/181/35 53/64/35 -f 53/64/35 52/182/35 51/65/35 -f 51/65/35 64/172/35 63/173/35 -f 63/173/35 60/176/35 59/63/35 -f 59/63/35 57/178/35 55/180/35 -f 55/180/35 53/64/35 59/63/35 -f 51/65/35 63/173/35 59/63/35 -f 62/183/36 46/66/36 61/67/36 -f 39/46/37 38/45/37 55/69/37 -f 63/184/38 47/70/38 62/71/38 -f 40/56/39 39/55/39 56/73/39 -f 48/62/40 47/61/40 64/75/40 -f 57/185/41 41/41/41 56/76/41 -f 33/43/42 34/42/42 49/78/42 -f 34/167/43 48/48/43 50/80/43 -f 42/52/44 41/51/44 58/82/44 -f 35/168/45 33/54/45 51/84/45 -f 59/186/46 43/60/46 58/85/46 -f 36/32/47 35/31/47 52/87/47 -f 60/187/48 44/88/48 59/89/48 -f 37/50/49 36/49/49 53/91/49 -f 45/169/50 44/57/50 61/93/50 -f 79/118/17 80/94/17 95/96/17 -f 25/26/51 27/28/51 77/98/51 -f 11/11/52 13/13/52 70/100/52 -f 21/22/53 23/24/53 75/102/53 -f 80/188/54 31/35/54 65/103/54 -f 7/7/55 9/9/55 68/105/55 -f 73/189/56 17/106/56 74/107/56 -f 27/28/57 29/30/57 78/109/57 -f 66/190/58 3/3/58 67/110/58 -f 13/13/59 15/15/59 71/112/59 -f 23/24/60 25/26/60 76/114/60 -f 69/191/61 9/9/61 70/115/61 -f 19/20/62 21/22/62 74/117/62 -f 29/30/63 31/35/63 79/118/63 -f 5/5/64 7/7/64 67/120/64 -f 15/15/65 17/17/65 72/122/65 -f 96/192/66 81/193/66 82/194/66 -f 82/194/66 83/195/66 84/125/66 -f 84/125/66 85/196/66 86/197/66 -f 86/197/66 87/198/66 84/125/66 -f 88/123/66 89/199/66 90/200/66 -f 90/200/66 91/201/66 92/124/66 -f 92/124/66 93/202/66 94/203/66 -f 94/203/66 95/204/66 92/124/66 -f 96/192/66 82/194/66 84/125/66 -f 84/125/66 87/198/66 88/123/66 -f 88/123/66 90/200/66 92/124/66 -f 92/124/66 95/204/66 96/192/66 -f 96/192/66 84/125/66 92/124/66 -f 72/122/8 73/121/8 88/127/8 -f 65/166/1 66/36/1 81/129/1 -f 80/188/16 65/103/16 96/131/16 -f 73/189/9 74/107/9 89/133/9 -f 66/190/2 67/110/2 82/135/2 -f 74/117/10 75/116/10 90/137/10 -f 67/120/3 68/119/3 83/139/3 -f 75/102/11 76/101/11 91/141/11 -f 68/105/4 69/104/4 84/143/4 -f 76/114/12 77/113/12 92/145/12 -f 69/191/5 70/115/5 85/147/5 -f 77/98/13 78/97/13 93/149/13 -f 70/100/6 71/99/6 86/151/6 -f 78/109/14 79/108/14 94/153/14 -f 71/112/7 72/111/7 87/155/7 -f 99/205/67 97/156/67 100/158/67 -f 98/157/67 97/156/67 102/160/67 -f 105/206/68 103/161/68 106/163/68 -f 104/162/68 103/161/68 108/165/68 +mtllib ufp.mtl +o Cylinder.001 +v 0.000000 0.937500 -0.562500 +v 0.000000 0.937500 1.437500 +v 0.218750 0.878886 -0.562500 +v 0.218750 0.878886 1.437500 +v 0.378886 0.718750 -0.562500 +v 0.378886 0.718750 1.437500 +v 0.437500 0.500000 -0.562500 +v 0.437500 0.500000 1.437500 +v 0.378886 0.281250 -0.562500 +v 0.378886 0.281250 1.437500 +v 0.218750 0.121114 -0.562500 +v 0.218750 0.121114 1.437500 +v 0.000000 0.062500 -0.562500 +v 0.000000 0.062500 1.437500 +v -0.218750 0.121114 -0.562500 +v -0.218750 0.121114 1.437500 +v -0.378886 0.281250 -0.562500 +v -0.378886 0.281250 1.437500 +v -0.437500 0.500000 -0.562500 +v -0.437500 0.500000 1.437500 +v -0.378886 0.718750 -0.562500 +v -0.378886 0.718750 1.437500 +v -0.218750 0.878886 -0.562500 +v -0.218750 0.878886 1.437500 +v -0.000000 0.687500 -1.812500 +v 0.093750 0.662380 -1.812500 +v 0.162380 0.593750 -1.812500 +v 0.187500 0.500000 -1.812500 +v 0.162380 0.406250 -1.812500 +v 0.093750 0.337620 -1.812500 +v -0.000000 0.312500 -1.812500 +v -0.093750 0.337620 -1.812500 +v -0.162380 0.406250 -1.812500 +v -0.187500 0.500000 -1.812500 +v -0.162380 0.593750 -1.812500 +v -0.093750 0.662380 -1.812500 +v 0.156250 0.770633 1.687500 +v 0.000000 0.812500 1.687500 +v 0.270633 0.656250 1.687500 +v 0.312500 0.500000 1.687500 +v 0.270633 0.343750 1.687500 +v 0.156250 0.229367 1.687500 +v 0.000000 0.187500 1.687500 +v -0.156250 0.229367 1.687500 +v -0.270633 0.343750 1.687500 +v -0.312500 0.500000 1.687500 +v -0.270633 0.656250 1.687500 +v -0.156250 0.770633 1.687500 +v 0.000000 0.500000 1.812500 +v -0.000000 0.750000 -1.812500 +v 0.125000 0.716506 -1.812500 +v 0.216506 0.625000 -1.812500 +v 0.250000 0.500000 -1.812500 +v 0.216506 0.375000 -1.812500 +v 0.125000 0.283494 -1.812500 +v -0.000000 0.250000 -1.812500 +v -0.125000 0.283494 -1.812500 +v -0.216506 0.375000 -1.812500 +v -0.250000 0.500000 -1.812500 +v -0.216506 0.625000 -1.812500 +v -0.125000 0.716506 -1.812500 +v -0.000000 0.687500 -1.187500 +v 0.093750 0.662380 -1.187500 +v 0.162380 0.593750 -1.187500 +v 0.187500 0.500000 -1.187500 +v 0.162380 0.406250 -1.187500 +v 0.093750 0.337620 -1.187500 +v -0.000000 0.312500 -1.187500 +v -0.093750 0.337620 -1.187500 +v -0.162380 0.406250 -1.187500 +v -0.187500 0.500000 -1.187500 +v -0.162380 0.593750 -1.187500 +v -0.093750 0.662380 -1.187500 +v 0.287262 0.256932 -0.562500 +v 0.243068 0.212738 -0.562500 +v 0.331456 0.212738 -0.562500 +v 0.287262 0.256932 -1.750000 +v 0.243068 0.212738 -1.750000 +v 0.331456 0.212738 -1.812500 +v 0.287262 0.168544 -1.812500 +v 0.419845 0.124350 -1.812500 +v 0.375650 0.080155 -1.812500 +v 0.419845 0.124350 -0.687500 +v 0.375650 0.080155 -0.687500 +v 0.287262 0.168544 -0.562500 +v 0.000000 0.937500 1.187500 +v 0.218750 0.878886 1.187500 +v -0.218750 0.878886 1.187500 +v 0.000000 1.000000 1.187500 +v 0.250000 0.933013 1.187500 +v 0.000000 1.000000 1.312500 +v -0.250000 0.933013 1.187500 +v -0.433013 0.750000 1.187500 +v -0.250000 0.933013 1.312500 +v -0.433013 0.750000 1.312500 +v -0.218750 0.878886 1.312500 +v -0.378886 0.718750 1.312500 +v 0.000000 0.937500 1.312500 +v 0.218750 0.878886 1.312500 +v 0.378886 0.718750 1.312500 +v 0.250000 0.933013 1.312500 +v 0.433013 0.750000 1.312500 +v 0.433013 0.750000 1.187500 +v 0.500000 0.500000 1.312500 +v 0.500000 0.500000 1.187500 +v 0.433013 0.250000 1.312500 +v 0.437500 0.500000 1.312500 +v 0.378886 0.281250 1.312500 +v 0.218750 0.121114 1.312500 +v 0.000000 0.062500 1.312500 +v 0.250000 0.066987 1.312500 +v 0.250000 0.066987 1.187500 +v 0.000000 0.000000 1.312500 +v 0.000000 0.000000 1.187500 +v -0.250000 0.066987 1.312500 +v -0.250000 0.066987 1.187500 +v -0.433013 0.250000 1.312500 +v -0.218750 0.121114 1.312500 +v -0.378886 0.281250 1.312500 +v -0.437500 0.500000 1.312500 +v -0.500000 0.500000 1.312500 +v -0.500000 0.500000 1.187500 +v -0.433013 0.250000 1.187500 +v -0.437500 0.500000 1.187500 +v -0.378886 0.281250 1.187500 +v -0.378886 0.718750 1.187500 +v -0.218750 0.121114 1.187500 +v 0.000000 0.062500 1.187500 +v 0.218750 0.121114 1.187500 +v 0.378886 0.281250 1.187500 +v 0.437500 0.500000 1.187500 +v 0.433013 0.250000 1.187500 +v 0.378886 0.718750 1.187500 +v 0.253118 0.841506 1.187500 +v 0.253118 0.841506 -0.312500 +v 0.297312 0.885701 1.187500 +v 0.297312 0.885701 -0.312500 +v 0.385701 0.797312 1.187500 +v 0.385701 0.797312 -0.312500 +v 0.341506 0.753118 1.187500 +v 0.341506 0.753118 -0.312500 +v 0.253118 0.841506 1.375000 +v 0.253118 0.841506 1.312500 +v 0.297312 0.885701 1.375000 +v 0.341506 0.753118 1.375000 +v 0.341506 0.753118 1.312500 +v 0.385701 0.797312 1.375000 +v 0.385701 0.797312 1.312500 +v 0.297312 0.885701 1.312500 +v 0.253118 0.841506 -0.437500 +v 0.253118 0.841506 -0.500000 +v 0.297312 0.885701 -0.437500 +v 0.297312 0.885701 -0.500000 +v 0.385701 0.797312 -0.437500 +v 0.385701 0.797312 -0.500000 +v 0.341506 0.753118 -0.437500 +v 0.341506 0.753118 -0.500000 +v 0.000000 0.937500 -0.437500 +v 0.218750 0.878886 -0.437500 +v -0.218750 0.878886 -0.437500 +v 0.000000 1.000000 -0.437500 +v 0.250000 0.933013 -0.437500 +v 0.000000 1.000000 -0.312500 +v -0.250000 0.933013 -0.437500 +v -0.433013 0.750000 -0.437500 +v -0.250000 0.933013 -0.312500 +v -0.433013 0.750000 -0.312500 +v -0.218750 0.878886 -0.312500 +v -0.378886 0.718750 -0.312500 +v 0.000000 0.937500 -0.312500 +v 0.218750 0.878886 -0.312500 +v 0.378886 0.718750 -0.312500 +v 0.250000 0.933013 -0.312500 +v 0.433013 0.750000 -0.312500 +v 0.433013 0.750000 -0.437500 +v 0.500000 0.500000 -0.312500 +v 0.500000 0.500000 -0.437500 +v 0.433013 0.250000 -0.312500 +v 0.437500 0.500000 -0.312500 +v 0.378886 0.281250 -0.312500 +v 0.218750 0.121114 -0.312500 +v 0.000000 0.062500 -0.312500 +v 0.250000 0.066987 -0.312500 +v 0.250000 0.066987 -0.437500 +v 0.000000 0.000000 -0.312500 +v 0.000000 0.000000 -0.437500 +v -0.250000 0.066987 -0.312500 +v -0.250000 0.066987 -0.437500 +v -0.433013 0.250000 -0.312500 +v -0.218750 0.121114 -0.312500 +v -0.378886 0.281250 -0.312500 +v -0.437500 0.500000 -0.312500 +v -0.500000 0.500000 -0.312500 +v -0.500000 0.500000 -0.437500 +v -0.433013 0.250000 -0.437500 +v -0.437500 0.500000 -0.437500 +v -0.378886 0.281250 -0.437500 +v -0.378886 0.718750 -0.437500 +v -0.218750 0.121114 -0.437500 +v 0.000000 0.062500 -0.437500 +v 0.218750 0.121114 -0.437500 +v 0.378886 0.281250 -0.437500 +v 0.437500 0.500000 -0.437500 +v 0.433013 0.250000 -0.437500 +v 0.378886 0.718750 -0.437500 +v 0.341507 0.246882 1.187500 +v 0.341507 0.246882 -0.312500 +v 0.385701 0.202688 1.187500 +v 0.385701 0.202688 -0.312500 +v 0.297312 0.114299 1.187500 +v 0.297312 0.114299 -0.312500 +v 0.253118 0.158494 1.187500 +v 0.253118 0.158494 -0.312500 +v 0.341507 0.246882 1.375000 +v 0.341507 0.246882 1.312500 +v 0.385701 0.202688 1.375000 +v 0.253118 0.158494 1.375000 +v 0.253118 0.158494 1.312500 +v 0.297312 0.114299 1.375000 +v 0.297312 0.114299 1.312500 +v 0.385701 0.202688 1.312500 +v 0.341506 0.246882 -0.437500 +v 0.341506 0.246882 -0.500000 +v 0.385701 0.202688 -0.437500 +v 0.385701 0.202688 -0.500000 +v 0.297312 0.114299 -0.437500 +v 0.297312 0.114299 -0.500000 +v 0.253118 0.158494 -0.437500 +v 0.253118 0.158494 -0.500000 +v -0.341506 0.753118 1.187500 +v -0.341506 0.753118 -0.312500 +v -0.385701 0.797312 1.187500 +v -0.385701 0.797312 -0.312500 +v -0.297312 0.885701 1.187500 +v -0.297312 0.885701 -0.312500 +v -0.253118 0.841506 1.187500 +v -0.253118 0.841506 -0.312500 +v -0.341506 0.753118 1.375000 +v -0.341506 0.753118 1.312500 +v -0.385701 0.797312 1.375000 +v -0.253118 0.841506 1.375000 +v -0.253118 0.841506 1.312500 +v -0.297312 0.885701 1.375000 +v -0.297312 0.885701 1.312500 +v -0.385701 0.797312 1.312500 +v -0.341506 0.753118 -0.437500 +v -0.341506 0.753118 -0.500000 +v -0.385701 0.797312 -0.437500 +v -0.385701 0.797312 -0.500000 +v -0.297312 0.885701 -0.437500 +v -0.297312 0.885701 -0.500000 +v -0.253118 0.841506 -0.437500 +v -0.253118 0.841506 -0.500000 +v -0.253118 0.158494 1.187500 +v -0.253118 0.158494 -0.312500 +v -0.297312 0.114299 1.187500 +v -0.297312 0.114299 -0.312500 +v -0.385701 0.202688 1.187500 +v -0.385701 0.202688 -0.312500 +v -0.341506 0.246882 1.187500 +v -0.341506 0.246882 -0.312500 +v -0.253118 0.158494 1.375000 +v -0.253118 0.158494 1.312500 +v -0.297312 0.114299 1.375000 +v -0.341506 0.246882 1.375000 +v -0.341506 0.246882 1.312500 +v -0.385701 0.202688 1.375000 +v -0.385701 0.202688 1.312500 +v -0.297312 0.114299 1.312500 +v -0.253118 0.158494 -0.437500 +v -0.253118 0.158494 -0.500000 +v -0.297312 0.114299 -0.437500 +v -0.297312 0.114299 -0.500000 +v -0.385701 0.202688 -0.437500 +v -0.385701 0.202688 -0.500000 +v -0.341506 0.246882 -0.437500 +v -0.341506 0.246882 -0.500000 +v 0.243068 0.787262 -0.562500 +v 0.287262 0.743068 -0.562500 +v 0.287262 0.831456 -0.562500 +v 0.243068 0.787262 -1.750000 +v 0.287262 0.743068 -1.750000 +v 0.287262 0.831456 -1.812500 +v 0.331456 0.787262 -1.812500 +v 0.375650 0.919845 -1.812500 +v 0.419845 0.875650 -1.812500 +v 0.375650 0.919845 -0.687500 +v 0.419845 0.875650 -0.687500 +v 0.331456 0.787262 -0.562500 +v -0.287262 0.743068 -0.562500 +v -0.243068 0.787262 -0.562500 +v -0.331456 0.787262 -0.562500 +v -0.287262 0.743068 -1.750000 +v -0.243068 0.787262 -1.750000 +v -0.331456 0.787262 -1.812500 +v -0.287262 0.831456 -1.812500 +v -0.419845 0.875650 -1.812500 +v -0.375650 0.919845 -1.812500 +v -0.419845 0.875650 -0.687500 +v -0.375650 0.919845 -0.687500 +v -0.287262 0.831456 -0.562500 +v -0.243068 0.212738 -0.562500 +v -0.287262 0.256932 -0.562500 +v -0.287262 0.168544 -0.562500 +v -0.243068 0.212738 -1.750000 +v -0.287262 0.256932 -1.750000 +v -0.287262 0.168544 -1.812500 +v -0.331456 0.212738 -1.812500 +v -0.375650 0.080155 -1.812500 +v -0.419844 0.124349 -1.812500 +v -0.375650 0.080155 -0.687500 +v -0.419844 0.124349 -0.687500 +v -0.331456 0.212738 -0.562500 +vn -0.0000 0.9751 0.2217 +vn 0.5000 0.8660 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.4876 0.8445 0.2217 +vn 0.8660 0.5000 -0.0000 +vn 0.8445 0.4876 0.2217 +vn 1.0000 -0.0000 -0.0000 +vn 0.9751 -0.0000 0.2217 +vn 0.8660 -0.5000 -0.0000 +vn 0.8445 -0.4876 0.2217 +vn 0.5000 -0.8660 -0.0000 +vn 0.4876 -0.8445 0.2217 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.9751 0.2217 +vn -0.5000 -0.8660 -0.0000 +vn -0.4876 -0.8445 0.2217 +vn -0.8660 -0.5000 -0.0000 +vn -0.8445 -0.4876 0.2217 +vn -1.0000 -0.0000 -0.0000 +vn -0.9751 -0.0000 0.2217 +vn -0.8660 0.5000 -0.0000 +vn 0.6120 0.3533 0.7076 +vn -0.8445 0.4876 0.2217 +vn -0.5000 0.8660 -0.0000 +vn -0.4876 0.8445 0.2217 +vn -0.8564 -0.4945 -0.1483 +vn -0.9889 -0.0000 -0.1483 +vn -0.4945 -0.8564 -0.1483 +vn -0.0000 -0.9889 -0.1483 +vn 0.4945 -0.8564 -0.1483 +vn 0.8564 -0.4945 -0.1483 +vn 0.9889 -0.0000 -0.1483 +vn -0.0000 0.9889 -0.1483 +vn -0.4945 0.8564 -0.1483 +vn 0.4945 0.8564 -0.1483 +vn 0.8564 0.4945 -0.1483 +vn -0.8564 0.4945 -0.1483 +vn 0.7066 -0.0000 0.7076 +vn -0.0000 -0.0000 1.0000 +vn -0.6120 0.3533 0.7076 +vn -0.7066 -0.0000 0.7076 +vn -0.6120 -0.3533 0.7076 +vn -0.3533 -0.6120 0.7076 +vn -0.0000 -0.7066 0.7076 +vn 0.3533 -0.6120 0.7076 +vn 0.6120 -0.3533 0.7076 +vn -0.0000 0.7066 0.7076 +vn 0.3533 0.6120 0.7076 +vn -0.3533 0.6120 0.7076 +vn -0.0000 -0.0000 -1.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.5000 0.5000 -0.7071 +vn 0.7071 -0.7071 -0.0000 +vn 0.5000 -0.5000 0.7071 +vn -0.7071 -0.7071 -0.0000 +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.5000 0.5000 -0.7071 +vn -0.5000 -0.5000 0.7071 +vt 0.102273 0.727273 +vt 0.465909 0.681818 +vt 0.465909 0.727273 +vt 0.102273 0.681818 +vt 0.465909 0.636364 +vt 0.102273 0.636364 +vt 0.465909 0.590909 +vt 0.102273 0.590909 +vt 0.465909 0.545455 +vt 0.102273 0.545455 +vt 0.465909 0.500000 +vt 0.102273 0.500000 +vt 0.465909 0.454545 +vt 0.102273 1.000000 +vt 0.465909 0.954546 +vt 0.465909 1.000000 +vt 0.102273 0.954546 +vt 0.465909 0.909091 +vt 0.102273 0.909091 +vt 0.465909 0.863636 +vt 0.102273 0.863636 +vt 0.465909 0.818182 +vt 0.102273 0.681814 +vt 0.056818 0.642860 +vt 0.102273 0.636367 +vt 0.102273 0.818182 +vt 0.465909 0.772727 +vt 0.102273 0.772727 +vt 0.693182 0.873377 +vt 0.693182 0.899351 +vt 0.704545 0.693182 +vt 0.818182 0.715909 +vt 0.704545 0.715909 +vt 0.693182 0.918831 +vt 0.693182 0.944805 +vt 0.693182 0.964286 +vt 0.693182 0.990260 +vt 0.693182 0.490260 +vt 0.693182 0.535714 +vt 0.693182 0.581169 +vt 0.693182 0.762987 +vt 0.693182 0.717532 +vt 0.693182 0.626623 +vt 0.693182 0.808442 +vt 0.693182 0.672078 +vt 0.693182 0.853896 +vt 0.056818 0.597405 +vt 0.056818 0.629867 +vt -0.000000 0.613636 +vt 0.102273 0.863633 +vt 0.056818 0.824678 +vt 0.102273 0.818186 +vt 0.102273 0.909087 +vt 0.056818 0.870133 +vt 0.102273 0.863640 +vt 0.102273 0.954542 +vt 0.056818 0.915587 +vt 0.102273 0.909095 +vt 0.102273 0.999996 +vt 0.056818 0.961042 +vt 0.102273 0.954549 +vt 0.102273 0.499996 +vt 0.056818 0.461042 +vt 0.102273 0.454549 +vt 0.102273 0.545451 +vt 0.056818 0.506496 +vt 0.102273 0.500004 +vt 0.102273 0.590905 +vt 0.056818 0.551951 +vt 0.102273 0.545458 +vt 0.102273 0.772724 +vt 0.056818 0.733769 +vt 0.102273 0.727277 +vt 0.102273 0.681822 +vt 0.056818 0.720777 +vt 0.056818 0.688314 +vt 0.102273 0.636360 +vt 0.102273 0.590913 +vt 0.056818 0.675322 +vt -0.000000 0.659091 +vt 0.056818 0.584413 +vt -0.000000 0.568182 +vt 0.056818 0.538958 +vt 0.000000 0.522727 +vt 0.056818 0.493504 +vt -0.000000 0.477273 +vt 0.056818 0.993504 +vt -0.000000 0.977273 +vt 0.056818 0.948049 +vt 0.000000 0.931818 +vt 0.056818 0.902595 +vt -0.000000 0.886364 +vt 0.056818 0.857140 +vt -0.000000 0.840909 +vt 0.056818 0.766231 +vt -0.000000 0.750000 +vt -0.000000 0.704546 +vt 0.704545 0.714286 +vt 0.693182 0.691559 +vt 0.704545 0.694805 +vt 0.704545 0.668831 +vt 0.693182 0.646104 +vt 0.704545 0.649351 +vt 0.704545 0.623377 +vt 0.693182 0.600649 +vt 0.704545 0.603896 +vt 0.704545 0.577922 +vt 0.693182 0.555195 +vt 0.704545 0.558442 +vt 0.704545 0.532467 +vt 0.693182 0.509740 +vt 0.704545 0.512987 +vt 0.704545 0.487013 +vt 0.693182 0.464286 +vt 0.704545 0.467533 +vt 0.704545 0.987013 +vt 0.704545 0.967533 +vt 0.704545 0.941559 +vt 0.704545 0.922078 +vt 0.704545 0.876624 +vt 0.704545 0.831169 +vt 0.693182 0.827922 +vt 0.704545 0.785714 +vt 0.693182 0.782468 +vt 0.704545 0.740260 +vt 0.693182 0.737013 +vt 0.897727 0.965909 +vt 0.846591 0.936385 +vt 0.846591 0.995433 +vt 0.704545 0.920455 +vt 0.818182 0.943182 +vt 0.704545 0.943182 +vt 0.704545 0.511364 +vt 0.818182 0.534091 +vt 0.704545 0.534091 +vt 0.704545 0.738636 +vt 0.818182 0.761364 +vt 0.704545 0.761364 +vt 0.704545 0.647727 +vt 0.818182 0.670455 +vt 0.704545 0.670455 +vt 0.704545 0.875000 +vt 0.818182 0.897727 +vt 0.704545 0.897727 +vt 0.704545 0.465909 +vt 0.818182 0.488636 +vt 0.704545 0.488636 +vt 0.704545 0.602273 +vt 0.818182 0.625000 +vt 0.704545 0.625000 +vt 0.704545 0.829546 +vt 0.818182 0.852273 +vt 0.704545 0.852273 +vt 0.704545 0.965909 +vt 0.818182 0.988637 +vt 0.704545 0.988637 +vt 0.704545 0.556818 +vt 0.818182 0.579545 +vt 0.704545 0.579545 +vt 0.704545 0.784091 +vt 0.818182 0.806818 +vt 0.704545 0.806818 +vt 0.102273 0.772731 +vt 0.056818 0.811686 +vt 0.056818 0.779223 +vt -0.000000 0.795455 +vt 0.238636 0.170455 +vt 0.011364 0.159091 +vt 0.238636 0.159091 +vt 0.011364 0.181818 +vt 0.000000 0.170455 +vt 0.011364 0.170455 +vt 0.477273 0.181818 +vt 0.250000 0.204545 +vt 0.261364 0.170455 +vt 0.250000 0.170455 +vt 0.238636 0.181818 +vt 0.250000 0.181818 +vt 0.238636 0.215909 +vt 0.034091 0.204545 +vt 0.238636 0.204545 +vt 0.000000 0.204545 +vt 0.011364 0.204545 +vt 0.269886 0.329545 +vt 0.227273 0.318182 +vt 0.272727 0.318182 +vt 0.275568 0.329545 +vt 0.318182 0.318182 +vt 0.315341 0.329545 +vt 0.227273 0.295455 +vt 0.272727 0.295455 +vt 0.318182 0.295455 +vt 0.363636 0.318182 +vt 0.360795 0.329545 +vt 0.360795 0.284091 +vt 0.318182 0.295455 +vt 0.321023 0.284091 +vt 0.275568 0.284091 +vt 0.272727 0.295455 +vt 0.269886 0.284091 +vt 0.227273 0.295455 +vt 0.230114 0.284091 +vt 0.184659 0.284091 +vt 0.181818 0.295455 +vt 0.181818 0.295455 +vt 0.181818 0.318182 +vt 0.136364 0.295455 +vt 0.136364 0.318182 +vt 0.178977 0.284091 +vt 0.136364 0.295455 +vt 0.139205 0.284091 +vt 0.090909 0.295455 +vt 0.090909 0.318182 +vt 0.133523 0.284091 +vt 0.090909 0.295455 +vt 0.093750 0.284091 +vt 0.088068 0.284091 +vt 0.045455 0.295455 +vt 0.048295 0.284091 +vt 0.042614 0.284091 +vt -0.000000 0.295455 +vt 0.002841 0.284091 +vt 0.045455 0.295455 +vt 0.045455 0.318182 +vt 0.000000 0.295455 +vt -0.000000 0.318182 +vt 0.500000 0.295455 +vt 0.545455 0.318182 +vt 0.500000 0.318182 +vt 0.542614 0.284091 +vt 0.500000 0.295455 +vt 0.502841 0.284091 +vt 0.454545 0.295455 +vt 0.454545 0.318182 +vt 0.457386 0.284091 +vt 0.454545 0.295455 +vt 0.451705 0.284091 +vt 0.409091 0.295455 +vt 0.411932 0.284091 +vt 0.406250 0.284091 +vt 0.363636 0.295455 +vt 0.366477 0.284091 +vt 0.409091 0.295455 +vt 0.409091 0.318182 +vt 0.363636 0.295455 +vt 0.411932 0.329545 +vt 0.451705 0.329545 +vt 0.366477 0.329545 +vt 0.406250 0.329545 +vt 0.457386 0.329545 +vt 0.497159 0.329545 +vt 0.502841 0.329545 +vt 0.542614 0.329545 +vt 0.002841 0.329545 +vt 0.042614 0.329545 +vt 0.088068 0.329545 +vt 0.093750 0.329545 +vt 0.133523 0.329545 +vt 0.139205 0.329545 +vt 0.178977 0.329545 +vt 0.184659 0.329545 +vt 0.224432 0.329545 +vt 0.386364 0.431818 +vt 0.659091 0.443182 +vt 0.386364 0.443182 +vt 0.659091 0.431818 +vt 0.386364 0.409091 +vt 0.659091 0.409091 +vt 0.386364 0.397727 +vt 0.659091 0.397727 +vt 0.363636 0.431818 +vt 0.375000 0.443182 +vt 0.363636 0.443182 +vt 0.352273 0.431818 +vt 0.363636 0.409091 +vt 0.375000 0.409091 +vt 0.363636 0.397727 +vt 0.375000 0.397727 +vt 0.375000 0.431818 +vt 0.670455 0.431818 +vt 0.681818 0.443182 +vt 0.670455 0.443182 +vt 0.681818 0.431818 +vt 0.670455 0.409091 +vt 0.681818 0.409091 +vt 0.670455 0.397727 +vt 0.681818 0.397727 +vt 0.693182 0.431818 +vt 0.693182 0.409091 +vt 0.269886 0.272727 +vt 0.227273 0.261364 +vt 0.272727 0.261364 +vt 0.275568 0.272727 +vt 0.318182 0.261364 +vt 0.315341 0.272727 +vt 0.227273 0.238636 +vt 0.272727 0.238636 +vt 0.318182 0.238636 +vt 0.363636 0.261364 +vt 0.360795 0.272727 +vt 0.360795 0.227273 +vt 0.318182 0.238636 +vt 0.321023 0.227273 +vt 0.275568 0.227273 +vt 0.272727 0.238636 +vt 0.269886 0.227273 +vt 0.227273 0.238636 +vt 0.230114 0.227273 +vt 0.184659 0.227273 +vt 0.181818 0.238636 +vt 0.181818 0.238636 +vt 0.181818 0.261364 +vt 0.136364 0.238636 +vt 0.136364 0.261364 +vt 0.139205 0.227273 +vt 0.136364 0.238636 +vt 0.090909 0.238636 +vt 0.090909 0.261364 +vt 0.133523 0.227273 +vt 0.090909 0.238636 +vt 0.093750 0.227273 +vt 0.088068 0.227273 +vt 0.045455 0.238636 +vt 0.048295 0.227273 +vt 0.042614 0.227273 +vt -0.000000 0.238636 +vt 0.002841 0.227273 +vt 0.045455 0.238636 +vt 0.045455 0.261364 +vt 0.000000 0.238636 +vt -0.000000 0.261364 +vt 0.500000 0.238636 +vt 0.545455 0.261364 +vt 0.500000 0.261364 +vt 0.502841 0.227273 +vt 0.545455 0.238636 +vt 0.500000 0.238636 +vt 0.454545 0.238636 +vt 0.454545 0.261364 +vt 0.497159 0.227273 +vt 0.454545 0.238636 +vt 0.457386 0.227273 +vt 0.411932 0.227273 +vt 0.409091 0.238636 +vt 0.406250 0.227273 +vt 0.363636 0.238636 +vt 0.366477 0.227273 +vt 0.409091 0.238636 +vt 0.409091 0.261364 +vt 0.363636 0.238636 +vt 0.411932 0.272727 +vt 0.451705 0.272727 +vt 0.406250 0.272727 +vt 0.457386 0.272727 +vt 0.497159 0.272727 +vt 0.502841 0.272727 +vt 0.542614 0.272727 +vt 0.042614 0.272727 +vt 0.048295 0.272727 +vt 0.088068 0.272727 +vt 0.133523 0.272727 +vt 0.139205 0.272727 +vt 0.178977 0.272727 +vt 0.184659 0.272727 +vt 0.224432 0.272727 +vt 0.034091 0.431818 +vt 0.306818 0.443182 +vt 0.034091 0.443182 +vt 0.306818 0.431818 +vt 0.034091 0.409091 +vt 0.306818 0.409091 +vt 0.034091 0.397727 +vt 0.306818 0.397727 +vt 0.011364 0.431818 +vt 0.022727 0.443182 +vt 0.011364 0.443182 +vt 0.000000 0.431818 +vt 0.011364 0.409091 +vt 0.022727 0.409091 +vt 0.011364 0.397727 +vt 0.022727 0.397727 +vt 0.022727 0.431818 +vt 0.318182 0.443182 +vt 0.329545 0.431818 +vt 0.329545 0.443182 +vt 0.318182 0.409091 +vt 0.329545 0.409091 +vt 0.318182 0.397727 +vt 0.329545 0.397727 +vt 0.340909 0.431818 +vt 0.340909 0.409091 +vt 0.034091 0.375000 +vt 0.306818 0.386364 +vt 0.034091 0.386364 +vt 0.306818 0.375000 +vt 0.034091 0.352273 +vt 0.306818 0.352273 +vt 0.034091 0.340909 +vt 0.306818 0.340909 +vt 0.011364 0.375000 +vt 0.022727 0.386364 +vt 0.011364 0.386364 +vt -0.000000 0.375000 +vt 0.011364 0.352273 +vt 0.022727 0.352273 +vt 0.011364 0.340909 +vt 0.022727 0.340909 +vt 0.022727 0.375000 +vt 0.318182 0.375000 +vt 0.329545 0.386364 +vt 0.318182 0.386364 +vt 0.329545 0.375000 +vt 0.318182 0.352273 +vt 0.329545 0.352273 +vt 0.318182 0.340909 +vt 0.329545 0.340909 +vt 0.340909 0.375000 +vt 0.340909 0.352273 +vt 0.386364 0.375000 +vt 0.659091 0.386364 +vt 0.386364 0.386364 +vt 0.659091 0.375000 +vt 0.386364 0.352273 +vt 0.659091 0.352273 +vt 0.386364 0.340909 +vt 0.659091 0.340909 +vt 0.363636 0.375000 +vt 0.375000 0.386364 +vt 0.363636 0.386364 +vt 0.352273 0.352273 +vt 0.352273 0.375000 +vt 0.375000 0.352273 +vt 0.363636 0.340909 +vt 0.375000 0.340909 +vt 0.375000 0.375000 +vt 0.363636 0.352273 +vt 0.670455 0.375000 +vt 0.681818 0.386364 +vt 0.670455 0.386364 +vt 0.681818 0.375000 +vt 0.670455 0.352273 +vt 0.681818 0.352273 +vt 0.670455 0.340909 +vt 0.681818 0.340909 +vt 0.693182 0.352273 +vt 0.693182 0.375000 +vt 0.727273 0.170455 +vt 0.500000 0.159091 +vt 0.727273 0.159091 +vt 0.500000 0.170455 +vt 0.488636 0.181818 +vt 0.488636 0.170455 +vt 0.965909 0.181818 +vt 0.738636 0.204545 +vt 0.750000 0.170455 +vt 0.738636 0.170455 +vt 0.727273 0.181818 +vt 0.738636 0.181818 +vt 0.727273 0.204545 +vt 0.727273 0.215909 +vt 0.522727 0.204545 +vt 0.488636 0.204545 +vt 0.500000 0.181818 +vt 0.500000 0.204545 +vt 0.238636 0.102273 +vt 0.011364 0.090909 +vt 0.238636 0.090909 +vt 0.011364 0.113636 +vt 0.000000 0.102273 +vt 0.011364 0.102273 +vt 0.477273 0.113636 +vt 0.250000 0.136364 +vt 0.261364 0.102273 +vt 0.250000 0.102273 +vt 0.238636 0.113636 +vt 0.250000 0.113636 +vt 0.238636 0.147727 +vt 0.034091 0.136364 +vt 0.238636 0.136364 +vt 0.011364 0.136364 +vt 0.000000 0.113636 +vt 0.727273 0.102273 +vt 0.500000 0.090909 +vt 0.727273 0.090909 +vt 0.500000 0.102273 +vt 0.488636 0.113636 +vt 0.488636 0.102273 +vt 0.965909 0.113636 +vt 0.738636 0.136364 +vt 0.750000 0.102273 +vt 0.738636 0.102273 +vt 0.727273 0.113636 +vt 0.738636 0.113636 +vt 0.727273 0.147727 +vt 0.522727 0.136364 +vt 0.727273 0.136364 +vt 0.488636 0.136364 +vt 0.500000 0.113636 +vt 0.500000 0.136364 +vt 0.102273 0.454545 +vt 0.818182 0.693182 +vt 0.693182 0.464286 +vt 0.693182 0.646105 +vt 0.102273 0.727269 +vt 0.693182 0.672078 +vt 0.704545 0.896104 +vt 0.704545 0.850649 +vt 0.704545 0.805195 +vt 0.704545 0.759740 +vt 0.863636 1.000000 +vt 0.880682 0.995433 +vt 0.893160 0.982955 +vt 0.893160 0.948864 +vt 0.880682 0.936385 +vt 0.863636 0.931818 +vt 0.834113 0.948864 +vt 0.829545 0.965909 +vt 0.834113 0.982955 +vt 0.818182 0.920455 +vt 0.818182 0.511364 +vt 0.818182 0.738636 +vt 0.818182 0.647727 +vt 0.818182 0.875000 +vt 0.818182 0.465909 +vt 0.818182 0.602273 +vt 0.818182 0.829546 +vt 0.818182 0.965909 +vt 0.818182 0.556818 +vt 0.818182 0.784091 +vt 0.102273 0.818178 +vt 0.000000 0.181818 +vt 0.477273 0.170455 +vt 0.454545 0.204545 +vt 0.034091 0.215909 +vt 0.227273 0.170455 +vt 0.230114 0.329545 +vt 0.321023 0.329545 +vt 0.315341 0.284091 +vt 0.224432 0.284091 +vt 0.545455 0.295455 +vt 0.545455 0.295455 +vt 0.497159 0.284091 +vt 0.048295 0.329545 +vt 0.352273 0.409091 +vt 0.230114 0.272727 +vt 0.321023 0.272727 +vt 0.315341 0.227273 +vt 0.224432 0.227273 +vt 0.178977 0.227273 +vt 0.545455 0.238636 +vt 0.542614 0.227273 +vt 0.451705 0.227273 +vt 0.366477 0.272727 +vt 0.002841 0.272727 +vt 0.093750 0.272727 +vt 0.000000 0.409091 +vt 0.318182 0.431818 +vt -0.000000 0.352273 +vt 0.965909 0.170455 +vt 0.943182 0.204545 +vt 0.522727 0.215909 +vt 0.715909 0.170455 +vt 0.477273 0.102273 +vt 0.454545 0.136364 +vt 0.034091 0.147727 +vt 0.000000 0.136364 +vt 0.227273 0.102273 +vt 0.965909 0.102273 +vt 0.943182 0.136364 +vt 0.522727 0.147727 +vt 0.715909 0.102273 +s 1 +usemtl Texture +f 2/1/1 3/2/2 1/3/3 +f 4/4/4 5/5/5 3/2/2 +f 6/6/6 7/7/7 5/5/5 +f 8/8/8 9/9/9 7/7/7 +f 10/10/10 11/11/11 9/9/9 +f 12/12/12 13/13/13 11/11/11 +f 14/14/14 15/15/15 13/16/13 +f 16/17/16 17/18/17 15/15/15 +f 18/19/18 19/20/19 17/18/17 +f 20/21/20 21/22/21 19/20/19 +f 4/23/4 39/24/22 6/25/6 +f 22/26/23 23/27/24 21/22/21 +f 24/28/25 1/3/3 23/27/24 +f 17/18/26 59/29/27 58/30/26 +f 26/31/15 62/32/13 25/33/13 +f 15/15/28 58/34/26 57/35/28 +f 13/16/29 57/36/28 56/37/29 +f 13/13/29 55/38/30 11/11/30 +f 11/11/30 54/39/31 9/9/31 +f 9/9/31 53/40/32 7/7/32 +f 1/3/33 61/41/34 23/27/34 +f 3/2/35 50/42/33 1/3/33 +f 7/7/32 52/43/36 5/5/36 +f 23/27/34 60/44/37 21/22/37 +f 5/5/36 51/45/35 3/2/35 +f 21/22/37 59/46/27 19/20/27 +f 40/47/38 39/48/22 49/49/39 +f 20/50/20 47/51/40 22/52/23 +f 18/53/18 46/54/41 20/55/20 +f 16/56/16 45/57/42 18/58/18 +f 14/59/14 44/60/43 16/61/16 +f 12/62/12 43/63/44 14/64/14 +f 10/65/10 42/66/45 12/67/12 +f 8/68/8 41/69/46 10/70/10 +f 24/71/25 38/72/47 2/73/1 +f 4/74/4 38/75/47 37/76/48 +f 6/77/6 40/47/38 8/78/8 +f 39/24/22 37/79/48 49/80/39 +f 41/69/46 40/81/38 49/82/39 +f 42/66/45 41/83/46 49/84/39 +f 43/63/44 42/85/45 49/86/39 +f 44/60/43 43/87/44 49/88/39 +f 45/57/42 44/89/43 49/90/39 +f 46/54/41 45/91/42 49/92/39 +f 47/51/40 46/93/41 49/94/39 +f 38/72/47 48/95/49 49/96/39 +f 37/76/48 38/75/47 49/97/39 +f 25/98/50 51/99/50 26/100/50 +f 26/101/50 52/102/50 27/103/50 +f 27/104/50 53/105/50 28/106/50 +f 28/107/50 54/108/50 29/109/50 +f 29/110/50 55/111/50 30/112/50 +f 30/113/50 56/114/50 31/115/50 +f 31/116/50 57/36/50 32/117/50 +f 32/118/50 58/34/50 33/119/50 +f 34/120/50 58/30/50 59/29/50 +f 35/121/50 59/46/50 60/122/50 +f 36/123/50 60/44/50 61/124/50 +f 25/125/50 61/41/50 50/126/50 +f 65/127/50 69/128/50 73/129/50 +f 33/130/5 69/131/2 32/132/2 +f 30/133/24 66/134/21 29/135/21 +f 25/136/13 73/137/11 36/138/11 +f 27/139/17 63/140/15 26/141/15 +f 34/142/7 70/143/5 33/144/5 +f 31/145/3 67/146/24 30/147/24 +f 28/148/19 64/149/17 27/150/17 +f 35/151/9 71/152/7 34/153/7 +f 32/154/2 68/155/3 31/156/3 +f 29/157/21 65/158/19 28/159/19 +f 36/160/11 72/161/9 35/162/9 +f 24/163/25 47/164/40 48/165/49 +f 48/165/49 47/164/40 49/166/39 +f 78/167/51 74/168/51 77/169/51 +f 85/170/39 74/171/39 75/172/39 +f 76/173/52 81/174/52 77/175/52 +f 77/176/53 80/177/53 78/167/53 +f 81/174/50 80/177/50 79/178/50 +f 81/179/54 84/180/54 82/181/54 +f 83/182/55 85/170/55 84/183/55 +f 80/177/56 84/180/56 75/172/56 +f 87/184/50 89/185/50 90/186/50 +f 88/187/50 89/188/50 86/189/50 +f 91/190/3 90/186/2 89/185/3 +f 94/191/24 89/188/3 92/186/24 +f 95/192/21 92/193/24 93/188/21 +f 88/194/50 93/188/50 92/193/50 +f 96/195/39 95/196/39 97/197/39 +f 96/198/39 91/196/39 94/199/39 +f 99/200/39 91/201/39 98/202/39 +f 99/203/39 102/201/39 101/204/39 +f 101/205/2 103/185/5 90/206/2 +f 102/207/5 105/206/7 103/208/5 +f 107/209/39 102/210/39 100/211/39 +f 104/212/7 132/208/9 105/213/7 +f 108/214/39 104/215/39 107/216/39 +f 109/217/39 106/218/39 108/219/39 +f 110/220/39 111/221/39 109/222/39 +f 106/223/9 112/213/11 132/224/9 +f 111/225/11 114/224/13 112/226/11 +f 113/227/13 116/228/15 114/229/13 +f 118/230/39 113/231/39 110/232/39 +f 115/233/15 123/229/17 116/234/15 +f 118/235/39 117/231/39 115/236/39 +f 120/237/39 117/238/39 119/239/39 +f 97/240/39 121/241/39 120/242/39 +f 117/243/17 122/234/19 123/244/17 +f 121/245/19 93/244/21 122/193/19 +f 125/246/50 122/234/50 124/247/50 +f 124/248/50 93/244/50 126/249/50 +f 127/250/50 123/229/50 125/251/50 +f 128/252/50 116/228/50 127/253/50 +f 129/254/50 114/224/50 128/255/50 +f 129/256/50 132/224/50 112/213/50 +f 131/257/50 132/208/50 130/258/50 +f 133/259/50 105/206/50 131/260/50 +f 87/261/50 103/185/50 133/262/50 +f 136/263/51 135/264/51 134/265/51 +f 137/266/52 138/267/52 139/268/52 +f 139/268/54 140/269/54 141/270/54 +f 144/271/51 143/272/51 142/273/51 +f 142/274/39 147/275/39 144/271/39 +f 148/276/54 145/277/54 146/278/54 +f 149/279/52 147/275/52 148/276/52 +f 152/280/51 151/281/51 150/282/51 +f 153/283/52 154/284/52 155/285/52 +f 155/285/54 156/286/54 157/287/54 +f 151/288/50 155/285/50 157/289/50 +f 159/290/50 161/291/50 162/292/50 +f 160/293/50 161/294/50 158/295/50 +f 163/296/3 162/292/2 161/291/3 +f 166/297/24 161/294/3 164/292/24 +f 167/298/21 164/299/24 165/294/21 +f 160/300/50 165/294/50 164/299/50 +f 168/301/39 167/302/39 169/303/39 +f 168/304/39 163/302/39 166/305/39 +f 171/306/39 163/307/39 170/308/39 +f 171/309/39 174/307/39 173/310/39 +f 173/311/2 175/291/5 162/312/2 +f 174/313/5 177/312/7 175/314/5 +f 172/315/39 176/310/39 174/316/39 +f 176/317/7 204/314/9 177/318/7 +f 180/319/39 176/320/39 179/321/39 +f 181/322/39 178/323/39 180/324/39 +f 182/325/39 183/326/39 181/327/39 +f 178/328/9 184/318/11 204/329/9 +f 183/330/11 186/329/13 184/331/11 +f 185/332/13 188/333/15 186/334/13 +f 182/335/39 187/336/39 185/337/39 +f 187/338/15 195/334/17 188/339/15 +f 191/340/39 187/341/39 190/342/39 +f 191/343/39 193/341/39 189/344/39 +f 169/345/39 193/346/39 192/347/39 +f 189/348/17 194/339/19 195/349/17 +f 193/350/19 165/349/21 194/299/19 +f 197/351/50 194/339/50 196/352/50 +f 198/353/50 194/299/50 165/349/50 +f 199/354/50 195/334/50 197/355/50 +f 200/356/50 188/333/50 199/357/50 +f 200/358/50 184/331/50 186/329/50 +f 202/359/50 184/318/50 201/360/50 +f 202/361/50 177/318/50 204/314/50 +f 205/362/50 177/312/50 203/363/50 +f 159/364/50 175/291/50 205/365/50 +f 208/366/52 207/367/52 206/368/52 +f 209/369/54 210/370/54 211/371/54 +f 211/371/56 212/372/56 213/373/56 +f 216/374/52 215/375/52 214/376/52 +f 214/377/39 219/378/39 216/374/39 +f 220/379/56 217/380/56 218/381/56 +f 221/382/54 219/378/54 220/379/54 +f 222/383/52 225/384/52 223/385/52 +f 225/384/54 226/386/54 227/387/54 +f 227/387/56 228/388/56 229/389/56 +f 223/390/50 227/387/50 229/391/50 +f 232/392/56 231/393/56 230/394/56 +f 233/395/51 234/396/51 235/397/51 +f 235/397/52 236/398/52 237/399/52 +f 240/400/56 239/401/56 238/402/56 +f 238/403/39 243/404/39 240/400/39 +f 244/405/52 241/406/52 242/407/52 +f 245/408/51 243/404/51 244/405/51 +f 248/409/56 247/410/56 246/411/56 +f 249/412/51 250/413/51 251/414/51 +f 251/414/52 252/415/52 253/416/52 +f 247/417/50 251/414/50 253/418/50 +f 256/419/54 255/420/54 254/421/54 +f 257/422/56 258/423/56 259/424/56 +f 259/424/51 260/425/51 261/426/51 +f 264/427/54 263/428/54 262/429/54 +f 265/430/39 264/427/39 262/431/39 +f 268/432/51 265/433/51 266/434/51 +f 269/435/56 267/436/56 268/432/56 +f 272/437/54 271/438/54 270/439/54 +f 273/440/56 274/441/56 275/442/56 +f 275/442/51 276/443/51 277/444/51 +f 273/440/50 277/445/50 271/446/50 +f 282/447/56 278/448/56 281/449/56 +f 279/450/39 280/451/39 278/452/39 +f 280/453/51 285/454/51 281/455/51 +f 281/456/57 284/457/57 282/447/57 +f 283/458/50 286/459/50 284/457/50 +f 285/460/52 288/461/52 286/459/52 +f 287/462/58 289/463/58 288/464/58 +f 284/457/54 288/461/54 279/450/54 +f 294/465/54 290/466/54 293/467/54 +f 301/468/39 290/469/39 291/470/39 +f 292/471/56 297/472/56 293/473/56 +f 293/474/59 296/475/59 294/465/59 +f 297/472/50 296/475/50 295/476/50 +f 297/477/51 300/478/51 298/479/51 +f 300/480/60 292/481/60 301/468/60 +f 296/475/52 300/478/52 291/470/52 +f 306/482/52 302/483/52 305/484/52 +f 303/485/39 304/486/39 302/487/39 +f 304/488/54 309/489/54 305/490/54 +f 305/491/61 308/492/61 306/482/61 +f 309/489/50 308/492/50 307/493/50 +f 309/494/56 312/495/56 310/496/56 +f 311/497/62 313/498/62 312/499/62 +f 308/492/51 312/495/51 303/485/51 +f 2/1/1 4/4/4 3/2/2 +f 4/4/4 6/6/6 5/5/5 +f 6/6/6 8/8/8 7/7/7 +f 8/8/8 10/10/10 9/9/9 +f 10/10/10 12/12/12 11/11/11 +f 12/12/12 14/500/14 13/13/13 +f 14/14/14 16/17/16 15/15/15 +f 16/17/16 18/19/18 17/18/17 +f 18/19/18 20/21/20 19/20/19 +f 20/21/20 22/26/23 21/22/21 +f 4/23/4 37/79/48 39/24/22 +f 22/26/23 24/28/25 23/27/24 +f 24/28/25 2/1/1 1/3/3 +f 17/18/26 19/20/27 59/29/27 +f 26/31/15 63/501/15 62/32/13 +f 15/15/28 17/18/26 58/34/26 +f 13/16/29 15/15/28 57/36/28 +f 13/13/29 56/502/29 55/38/30 +f 11/11/30 55/111/30 54/39/31 +f 9/9/31 54/108/31 53/40/32 +f 1/3/33 50/126/33 61/41/34 +f 3/2/35 51/99/35 50/42/33 +f 7/7/32 53/105/32 52/43/36 +f 23/27/34 61/124/34 60/44/37 +f 5/5/36 52/503/36 51/45/35 +f 21/22/37 60/122/37 59/46/27 +f 20/50/20 46/93/41 47/51/40 +f 18/53/18 45/91/42 46/54/41 +f 16/56/16 44/89/43 45/57/42 +f 14/59/14 43/87/44 44/60/43 +f 12/62/12 42/85/45 43/63/44 +f 10/65/10 41/83/46 42/66/45 +f 8/68/8 40/81/38 41/69/46 +f 24/71/25 48/95/49 38/72/47 +f 4/74/4 2/504/1 38/75/47 +f 6/77/6 39/48/22 40/47/38 +f 25/98/50 50/42/50 51/99/50 +f 26/101/50 51/505/50 52/102/50 +f 27/104/50 52/43/50 53/105/50 +f 28/107/50 53/40/50 54/108/50 +f 29/110/50 54/39/50 55/111/50 +f 30/113/50 55/38/50 56/114/50 +f 31/116/50 56/37/50 57/36/50 +f 32/118/50 57/35/50 58/34/50 +f 34/120/50 33/506/50 58/30/50 +f 35/121/50 34/507/50 59/46/50 +f 36/123/50 35/508/50 60/44/50 +f 25/125/50 36/509/50 61/41/50 +f 73/129/50 62/510/50 63/511/50 +f 63/511/50 64/512/50 65/127/50 +f 65/127/50 66/513/50 67/514/50 +f 67/514/50 68/515/50 69/128/50 +f 69/128/50 70/516/50 71/517/50 +f 71/517/50 72/518/50 73/129/50 +f 73/129/50 63/511/50 65/127/50 +f 65/127/50 67/514/50 69/128/50 +f 69/128/50 71/517/50 73/129/50 +f 33/130/5 70/519/5 69/131/2 +f 30/133/24 67/520/24 66/134/21 +f 25/136/13 62/521/13 73/137/11 +f 27/139/17 64/522/17 63/140/15 +f 34/142/7 71/523/7 70/143/5 +f 31/145/3 68/524/3 67/146/24 +f 28/148/19 65/525/19 64/149/17 +f 35/151/9 72/526/9 71/152/7 +f 32/154/2 69/527/2 68/155/3 +f 29/157/21 66/528/21 65/158/19 +f 36/160/11 73/529/11 72/161/9 +f 24/163/25 22/530/23 47/164/40 +f 78/167/51 75/172/51 74/168/51 +f 85/170/39 76/531/39 74/171/39 +f 77/175/52 74/532/52 76/173/52 +f 76/173/52 83/533/52 81/174/52 +f 81/174/52 79/178/52 77/175/52 +f 77/176/53 79/178/53 80/177/53 +f 81/174/50 82/181/50 80/177/50 +f 81/179/54 83/534/54 84/180/54 +f 83/182/55 76/531/55 85/170/55 +f 75/172/56 78/535/56 80/177/56 +f 80/177/56 82/181/56 84/180/56 +f 84/180/56 85/170/56 75/172/56 +f 87/184/50 86/536/50 89/185/50 +f 88/187/50 92/186/50 89/188/50 +f 91/190/3 101/191/2 90/186/2 +f 94/191/24 91/192/3 89/188/3 +f 95/192/21 94/245/24 92/193/24 +f 88/194/50 126/537/50 93/188/50 +f 96/195/39 94/241/39 95/196/39 +f 96/198/39 98/538/39 91/196/39 +f 99/200/39 101/199/39 91/201/39 +f 99/203/39 100/539/39 102/201/39 +f 101/205/2 102/190/5 103/185/5 +f 102/207/5 104/205/7 105/206/7 +f 107/209/39 104/204/39 102/210/39 +f 104/212/7 106/207/9 132/208/9 +f 108/214/39 106/210/39 104/215/39 +f 109/217/39 111/215/39 106/218/39 +f 110/220/39 113/218/39 111/221/39 +f 106/223/9 111/212/11 112/213/11 +f 111/225/11 113/223/13 114/224/13 +f 113/227/13 115/540/15 116/228/15 +f 118/230/39 115/541/39 113/231/39 +f 115/233/15 117/227/17 123/229/17 +f 118/235/39 119/542/39 117/231/39 +f 120/237/39 121/236/39 117/238/39 +f 97/240/39 95/238/39 121/241/39 +f 117/243/17 121/233/19 122/234/19 +f 121/245/19 95/243/21 93/244/21 +f 125/246/50 123/244/50 122/234/50 +f 124/248/50 122/193/50 93/244/50 +f 127/250/50 116/234/50 123/229/50 +f 128/252/50 114/229/50 116/228/50 +f 129/254/50 112/226/50 114/224/50 +f 129/256/50 130/543/50 132/224/50 +f 131/257/50 105/213/50 132/208/50 +f 133/259/50 103/208/50 105/206/50 +f 87/261/50 90/206/50 103/185/50 +f 136/263/51 137/266/51 135/264/51 +f 137/266/52 136/263/52 138/267/52 +f 139/268/54 138/267/54 140/269/54 +f 144/271/51 149/279/51 143/272/51 +f 142/274/39 145/544/39 147/275/39 +f 148/276/54 147/275/54 145/277/54 +f 149/279/52 144/271/52 147/275/52 +f 152/280/51 153/283/51 151/281/51 +f 153/283/52 152/280/52 154/284/52 +f 155/285/54 154/284/54 156/286/54 +f 151/288/50 153/283/50 155/285/50 +f 159/290/50 158/545/50 161/291/50 +f 160/293/50 164/292/50 161/294/50 +f 163/296/3 173/297/2 162/292/2 +f 166/297/24 163/298/3 161/294/3 +f 167/298/21 166/350/24 164/299/24 +f 160/300/50 198/546/50 165/294/50 +f 168/301/39 166/346/39 167/302/39 +f 168/304/39 170/547/39 163/302/39 +f 171/306/39 173/305/39 163/307/39 +f 171/309/39 172/548/39 174/307/39 +f 173/311/2 174/296/5 175/291/5 +f 174/313/5 176/311/7 177/312/7 +f 172/315/39 179/549/39 176/310/39 +f 176/317/7 178/313/9 204/314/9 +f 180/319/39 178/316/39 176/320/39 +f 181/322/39 183/320/39 178/323/39 +f 182/325/39 185/323/39 183/326/39 +f 178/328/9 183/317/11 184/318/11 +f 183/330/11 185/328/13 186/329/13 +f 185/332/13 187/550/15 188/333/15 +f 182/335/39 190/551/39 187/336/39 +f 187/338/15 189/332/17 195/334/17 +f 191/340/39 189/337/39 187/341/39 +f 191/343/39 192/552/39 193/341/39 +f 169/345/39 167/344/39 193/346/39 +f 189/348/17 193/338/19 194/339/19 +f 193/350/19 167/348/21 165/349/21 +f 197/351/50 195/349/50 194/339/50 +f 198/353/50 196/553/50 194/299/50 +f 199/354/50 188/339/50 195/334/50 +f 200/356/50 186/334/50 188/333/50 +f 200/358/50 201/554/50 184/331/50 +f 202/359/50 204/329/50 184/318/50 +f 202/361/50 203/555/50 177/318/50 +f 205/362/50 175/314/50 177/312/50 +f 159/364/50 162/312/50 175/291/50 +f 208/366/52 209/369/52 207/367/52 +f 209/369/54 208/366/54 210/370/54 +f 211/371/56 210/370/56 212/372/56 +f 216/374/52 221/382/52 215/375/52 +f 214/377/39 217/556/39 219/378/39 +f 220/379/56 219/378/56 217/380/56 +f 221/382/54 216/374/54 219/378/54 +f 222/383/52 224/557/52 225/384/52 +f 225/384/54 224/557/54 226/386/54 +f 227/387/56 226/386/56 228/388/56 +f 223/390/50 225/384/50 227/387/50 +f 232/392/56 233/395/56 231/393/56 +f 233/395/51 232/392/51 234/396/51 +f 235/397/52 234/396/52 236/398/52 +f 240/400/56 245/408/56 239/401/56 +f 238/403/39 241/558/39 243/404/39 +f 244/405/52 243/404/52 241/406/52 +f 245/408/51 240/400/51 243/404/51 +f 248/409/56 249/412/56 247/410/56 +f 249/412/51 248/409/51 250/413/51 +f 251/414/52 250/413/52 252/415/52 +f 247/417/50 249/412/50 251/414/50 +f 256/419/54 257/422/54 255/420/54 +f 257/422/56 256/419/56 258/423/56 +f 259/424/51 258/423/51 260/425/51 +f 264/427/54 269/435/54 263/428/54 +f 265/430/39 267/436/39 264/427/39 +f 268/432/51 267/436/51 265/433/51 +f 269/435/56 264/427/56 267/436/56 +f 272/437/54 273/440/54 271/438/54 +f 273/440/56 272/437/56 274/441/56 +f 275/442/51 274/441/51 276/443/51 +f 273/440/50 275/442/50 277/445/50 +f 282/447/56 279/450/56 278/448/56 +f 279/450/39 289/463/39 280/451/39 +f 281/455/51 278/559/51 280/453/51 +f 280/453/51 287/560/51 285/454/51 +f 285/454/51 283/458/51 281/455/51 +f 281/456/57 283/458/57 284/457/57 +f 283/458/50 285/454/50 286/459/50 +f 285/460/52 287/561/52 288/461/52 +f 287/462/58 280/451/58 289/463/58 +f 279/450/54 282/562/54 284/457/54 +f 284/457/54 286/459/54 288/461/54 +f 288/461/54 289/463/54 279/450/54 +f 294/465/54 291/470/54 290/466/54 +f 301/468/39 292/481/39 290/469/39 +f 293/473/56 290/563/56 292/471/56 +f 292/471/56 299/564/56 297/472/56 +f 297/472/56 295/476/56 293/473/56 +f 293/474/59 295/476/59 296/475/59 +f 297/472/50 298/479/50 296/475/50 +f 297/477/51 299/565/51 300/478/51 +f 300/480/60 299/566/60 292/481/60 +f 291/470/52 294/567/52 296/475/52 +f 296/475/52 298/479/52 300/478/52 +f 300/478/52 301/468/52 291/470/52 +f 306/482/52 303/485/52 302/483/52 +f 303/485/39 313/498/39 304/486/39 +f 305/490/54 302/568/54 304/488/54 +f 304/488/54 311/569/54 309/489/54 +f 309/489/54 307/493/54 305/490/54 +f 305/491/61 307/493/61 308/492/61 +f 309/489/50 310/496/50 308/492/50 +f 309/494/56 311/570/56 312/495/56 +f 311/497/62 304/486/62 313/498/62 +f 303/485/51 306/571/51 308/492/51 +f 308/492/51 310/496/51 312/495/51 +f 312/495/51 313/498/51 303/485/51 diff --git a/src/main/resources/assets/hbm/textures/models/bombs/ufp.png b/src/main/resources/assets/hbm/textures/models/bombs/ufp.png index 4ed70216971a32e2f981eadfea3f34dd0332e0f7..bf5c52e43c95db041d2e44fc403f4c3793817a90 100644 GIT binary patch literal 3644 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 ky6B>dF1qNVi(XCt4`d-pzn`4ceE Date: Mon, 12 May 2025 23:29:59 +0200 Subject: [PATCH 020/181] bop --- changelog | 7 +- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../com/hbm/blocks/generic/BlockBarrier.java | 8 + .../com/hbm/blocks/generic/BlockPedestal.java | 3 +- .../blocks/generic/BlockSkeletonHolder.java | 3 +- .../hbm/blocks/generic/BlockStorageCrate.java | 16 ++ .../blocks/generic/BlockWoodStructure.java | 152 ++++++++++++++++++ .../java/com/hbm/config/ServerConfig.java | 4 + .../java/com/hbm/crafting/WeaponRecipes.java | 1 + .../inventory/recipes/AmmoPressRecipes.java | 14 +- .../items/block/ItemBlockStorageCrate.java | 24 ++- .../weapon/sedna/factory/XFactoryTool.java | 11 +- src/main/java/com/hbm/main/ClientProxy.java | 7 +- .../java/com/hbm/main/CraftingManager.java | 3 + .../weapon/sedna/ItemRenderChargeThrower.java | 9 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 5 + src/main/resources/assets/hbm/lang/en_US.lang | 5 + 17 files changed, 250 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockWoodStructure.java diff --git a/changelog b/changelog index d62a70591..25db9ffc5 100644 --- a/changelog +++ b/changelog @@ -13,6 +13,11 @@ * Halved base spread of the .22 SMG * Certain secret guns now have a proper way of being obtained * Demolition mini nukes now create fire again +* New server configs + * `CRATE_OPEN_HELD` can toggle whether crates can be opened when held + * `CRATE_KEEP_CONTENTS` can toggle whether crates keep their contents when broken ## Fixed -* Fixed RoR controller having the wrong recipe \ No newline at end of file +* Fixed RoR controller having the wrong recipe +* Either fixed the crate dupe/voiding issues or made them even worse +* Fixed skeletons and pedestals allowing blocks to be placed inside the player \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 41cbe0f7f..a9fb689b3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -281,6 +281,7 @@ public class ModBlocks { public static Block sandbags; public static Block wood_barrier; + public static Block wood_structure; public static Block reinforced_brick; public static Block reinforced_ducrete; @@ -1481,7 +1482,8 @@ public class ModBlocks { asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); sandbags = new BlockSandbags(Material.ground).setBlockName("sandbags").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":sandbags"); - wood_barrier = new BlockBarrier(Material.wood).setStepSound(Block.soundTypeWood).setBlockName("wood_barrier").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":wood_barrier"); + wood_barrier = new BlockBarrier(Material.wood).setStepSound(Block.soundTypeWood).setBlockName("wood_barrier").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":wood_barrier"); + wood_structure = new BlockWoodStructure(Material.wood).setStepSound(Block.soundTypeWood).setBlockName("wood_structure").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":wood_barrier"); reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(2.0F).setResistance(25.0F); @@ -2662,6 +2664,7 @@ public class ModBlocks { //Reinforced Blocks register(sandbags); register(wood_barrier); + register(wood_structure); GameRegistry.registerBlock(asphalt, ItemBlockBlastInfo.class, asphalt.getUnlocalizedName()); GameRegistry.registerBlock(asphalt_light, ItemBlockBlastInfo.class, asphalt_light.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_brick, ItemBlockBlastInfo.class, reinforced_brick.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBarrier.java b/src/main/java/com/hbm/blocks/generic/BlockBarrier.java index 5c1a6a6c4..e9504c209 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBarrier.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBarrier.java @@ -121,11 +121,13 @@ public class BlockBarrier extends Block implements ISBRHUniversal { Block px = world.getBlock(x + 1, y, z); Block nz = world.getBlock(x, y, z - 1); Block pz = world.getBlock(x, y, z + 1); + Block py = world.getBlock(x, y + 1, z); boolean negX = nx.isOpaqueCube() || nx.isNormalCube() || meta == Library.POS_X.ordinal(); boolean negZ = nz.isOpaqueCube() || nz.isNormalCube() || meta == Library.POS_Z.ordinal(); boolean posX = px.isOpaqueCube() || px.isNormalCube() || meta == Library.NEG_X.ordinal(); boolean posZ = pz.isOpaqueCube() || pz.isNormalCube() || meta == Library.NEG_Z.ordinal(); + boolean posY = py.isOpaqueCube() || py.isNormalCube(); if(negX) { renderer.setRenderBounds(0D, 0D, 0.4375D, 0.125D, 1D, 0.5625D); renderer.renderStandardBlock(block, x, y, z); @@ -147,6 +149,12 @@ public class BlockBarrier extends Block implements ISBRHUniversal { renderer.setRenderBounds(negX ? 0.125D : 0D, 0.0625D, 0.9375D, posX ? 0.875D : 1D, 0.4375D, 1D); renderer.renderStandardBlock(block, x, y, z); renderer.setRenderBounds(negX ? 0.125D : 0D, 0.5625D, 0.9375D, posX ? 0.875D : 1D, 0.9375D, 1D); renderer.renderStandardBlock(block, x, y, z); } + if(posY) { + renderer.setRenderBounds(0D, 0.875D, 0D, 0.125D, 0.9375D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.875D, 0.875D, 0D, 1D, 0.9375D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0D, 0.9375D, 0.0625D, 1D, 1D, 0.4375D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0D, 0.9375D, 0.5625D, 1D, 1D, 0.9375D); renderer.renderStandardBlock(block, x, y, z); + } return true; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java index c6336af1f..82a2b46bb 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java @@ -66,18 +66,19 @@ public class BlockPedestal extends BlockContainer { @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; if(player.isSneaking()) return false; TileEntityPedestal pedestal = (TileEntityPedestal) world.getTileEntity(x, y, z); if(pedestal.item == null && player.getHeldItem() != null) { + if(world.isRemote) return true; pedestal.item = player.getHeldItem().copy(); player.inventory.mainInventory[player.inventory.currentItem] = null; pedestal.markDirty(); world.markBlockForUpdate(x, y, z); return true; } else if(pedestal.item != null && player.getHeldItem() == null) { + if(world.isRemote) return true; player.inventory.mainInventory[player.inventory.currentItem] = pedestal.item.copy(); pedestal.item = null; pedestal.markDirty(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockSkeletonHolder.java b/src/main/java/com/hbm/blocks/generic/BlockSkeletonHolder.java index 972d24b5b..289e0df8e 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSkeletonHolder.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSkeletonHolder.java @@ -41,18 +41,19 @@ public class BlockSkeletonHolder extends BlockContainer { @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; if(player.isSneaking()) return false; TileEntitySkeletonHolder pedestal = (TileEntitySkeletonHolder) world.getTileEntity(x, y, z); if(pedestal.item == null && player.getHeldItem() != null) { + if(world.isRemote) return true; pedestal.item = player.getHeldItem().copy(); player.inventory.mainInventory[player.inventory.currentItem] = null; pedestal.markDirty(); world.markBlockForUpdate(x, y, z); return true; } else if(pedestal.item != null && player.getHeldItem() == null) { + if(world.isRemote) return true; player.inventory.mainInventory[player.inventory.currentItem] = pedestal.item.copy(); pedestal.item = null; pedestal.markDirty(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index c06178eb0..5e4a5937f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -8,6 +8,7 @@ import java.util.Random; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.config.ServerConfig; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemLock; import com.hbm.lib.RefStrings; @@ -105,6 +106,21 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti, IT @Override public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { + + if(!world.isRemote && !ServerConfig.CRATE_KEEP_CONTENTS.get()) { + dropInv = true; + if(!player.capabilities.isCreativeMode) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(this))); + } + TileEntity inv = world.getTileEntity(x, y, z); + if(inv instanceof TileEntityLockableBase) { + TileEntityLockableBase lockable = (TileEntityLockableBase) inv; + if(lockable.isLocked()) dropInv = false; + } + boolean flag = world.setBlockToAir(x, y, z); + dropInv = true; + return flag; + } if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockWoodStructure.java b/src/main/java/com/hbm/blocks/generic/BlockWoodStructure.java new file mode 100644 index 000000000..b094874ac --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockWoodStructure.java @@ -0,0 +1,152 @@ +package com.hbm.blocks.generic; + +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.render.block.ISBRHUniversal; +import com.hbm.render.util.RenderBlocksNT; +import com.hbm.util.EnumUtil; + +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.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.Entity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockWoodStructure extends BlockEnumMulti implements ISBRHUniversal { + + public BlockWoodStructure(Material mat) { + super(mat, EnumWoodStructure.class, true, false); + } + + public enum EnumWoodStructure { + ROOF, SCAFFOLD, CEILING + } + + @Override public int getRenderType() { return renderID; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) { + EnumWoodStructure type = EnumUtil.grabEnumSafely(EnumWoodStructure.class, world.getBlockMetadata(x, y, z)); + if(type == type.SCAFFOLD && side == ForgeDirection.UP) return true; + return false; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + EnumWoodStructure type = EnumUtil.grabEnumSafely(EnumWoodStructure.class, world.getBlockMetadata(x, y, z)); + setBlockBounds(0, 0, 0, 1, 1, 1); + if(type == type.ROOF) setBlockBounds(0F, 0F, 0F, 1F, 0.1875F, 1F); + if(type == type.SCAFFOLD) setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F); + if(type == type.CEILING) setBlockBounds(0F, 0.875F, 0F, 1F, 1F, 1F); + } + + @Override + public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB aabb, List list, Entity collider) { + setBlockBoundsBasedOnState(world, x, y, z); + super.addCollisionBoxesToList(world, x, y, z, aabb, list, collider); + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelId, Object renderBlocks) { + + GL11.glPushMatrix(); + RenderBlocks renderer = (RenderBlocks) renderBlocks; + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + EnumWoodStructure type = EnumUtil.grabEnumSafely(EnumWoodStructure.class, meta); + + if(type == type.ROOF) { + GL11.glTranslatef(0F, 0.125F, 0F); + renderer.setRenderBounds(0D, 0D, 0D, 0.125D, 0.125D, 1D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0.875D, 0D, 0D, 1D, 0.125D, 1D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0D, 0.125D, 0.0625D, 1D, 0.1875D, 0.4375D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0D, 0.125D, 0.5625D, 1D, 0.1875D, 0.9375D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + } + if(type == type.SCAFFOLD) { + renderer.setRenderBounds(0.0625D, 0D, 0.0625D, 0.1875D, 0.875D, 0.1875D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0.8125D, 0D, 0.0625D, 0.9375D, 0.875D, 0.1875D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0.0625D, 0D, 0.8125D, 0.1875D, 0.875D, 0.9375D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0.8125D, 0D, 0.8125D, 0.9375D, 0.875D, 0.9375D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0D, 0.125D, 0D, 0.0625D, 0.375D, 1D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0.9375D, 0.125D, 0D, 1D, 0.375D, 1D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0D, 0.5D, 0D, 1D, 0.75D, 0.0625D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0D, 0.5D, 0.9375D, 1D, 0.75D, 1D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0D, 0.875D, 0D, 1D, 1D, 1D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + } + if(type == type.CEILING) { + GL11.glTranslatef(0F, 0.625F, 0F); + renderer.setRenderBounds(0D, 0.0625D, 0D, 0.125D, 0.125D, 1D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0.875D, 0.0625D, 0D, 1D, 0.125D, 1D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0D, 0.125D, 0.0625D, 1D, 0.1875D, 0.4375D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + renderer.setRenderBounds(0D, 0.125D, 0.5625D, 1D, 0.1875D, 0.9375D); RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer); + } + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, Object renderBlocks) { + + RenderBlocksNT renderer = RenderBlocksNT.INSTANCE.setWorld(world); + + Tessellator tessellator = Tessellator.instance; + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + int meta = world.getBlockMetadata(x, y, z); + EnumWoodStructure type = EnumUtil.grabEnumSafely(EnumWoodStructure.class,meta); + + if(type == type.ROOF) { + boolean nx = world.getBlock(x - 1, y, z) == this && world.getBlockMetadata(x - 1, y, z) == meta; + boolean px = world.getBlock(x + 1, y, z) == this && world.getBlockMetadata(x + 1, y, z) == meta; + renderer.setRenderBounds(0D, 0D, 0D, 0.125D, 0.125D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.875D, 0D, 0D, 1D, 0.125D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(nx ? 0D : 0.0625D, 0.125D, 0.0625D, px ? 1D : 0.9375D, 0.1875D, 0.4375D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(nx ? 0D : 0.0625D, 0.125D, 0.5625D, px ? 1D : 0.9375D, 0.1875D, 0.9375D); renderer.renderStandardBlock(block, x, y, z); + } + if(type == type.SCAFFOLD) { + boolean py = world.getBlock(x, y + 1, z) == this && world.getBlockMetadata(x, y + 1, z) == meta; + boolean nx = world.getBlock(x - 1, y, z) == this && world.getBlockMetadata(x - 1, y, z) == meta; + boolean nz = world.getBlock(x, y, z - 1) == this && world.getBlockMetadata(x, y, z - 1) == meta; + boolean px = world.getBlock(x + 1, y, z) == this && world.getBlockMetadata(x + 1, y, z) == meta; + boolean pz = world.getBlock(x, y, z + 1) == this && world.getBlockMetadata(x, y, z + 1) == meta; + renderer.setRenderBounds(0.0625D, 0D, 0.0625D, 0.1875D, py ? 1D : 0.875D, 0.1875D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.8125D, 0D, 0.0625D, 0.9375D, py ? 1D : 0.875D, 0.1875D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.0625D, 0D, 0.8125D, 0.1875D, py ? 1D : 0.875D, 0.9375D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.8125D, 0D, 0.8125D, 0.9375D, py ? 1D : 0.875D, 0.9375D); renderer.renderStandardBlock(block, x, y, z); + + if(!nx) renderer.setRenderBounds(0D, 0.125D, 0D, 0.0625D, 0.375D, 1D); renderer.renderStandardBlock(block, x, y, z); + if(!px) renderer.setRenderBounds(0.9375D, 0.125D, 0D, 1D, 0.375D, 1D); renderer.renderStandardBlock(block, x, y, z); + if(!nz) renderer.setRenderBounds(0D, 0.5D, 0D, 1D, 0.75D, 0.0625D); renderer.renderStandardBlock(block, x, y, z); + if(!pz) renderer.setRenderBounds(0D, 0.5D, 0.9375D, 1D, 0.75D, 1D); renderer.renderStandardBlock(block, x, y, z); + + if(!py) renderer.setRenderBounds(0D, 0.875D, 0D, 1D, 1D, 1D); renderer.renderStandardBlock(block, x, y, z); + } + if(type == type.CEILING) { + renderer.setRenderBounds(0D, 0.875D, 0D, 0.125D, 0.9375D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.875D, 0.875D, 0D, 1D, 0.9375D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0D, 0.9375D, 0.0625D, 1D, 1D, 0.4375D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0D, 0.9375D, 0.5625D, 1D, 1D, 0.9375D); renderer.renderStandardBlock(block, x, y, z); + } + + return true; + } +} diff --git a/src/main/java/com/hbm/config/ServerConfig.java b/src/main/java/com/hbm/config/ServerConfig.java index 1161a4334..b52910eca 100644 --- a/src/main/java/com/hbm/config/ServerConfig.java +++ b/src/main/java/com/hbm/config/ServerConfig.java @@ -17,6 +17,8 @@ public class ServerConfig extends RunningConfig { public static ConfigWrapper MINE_NUKE_DAMAGE = new ConfigWrapper(100F); public static ConfigWrapper MINE_NAVAL_DAMAGE = new ConfigWrapper(60F); public static ConfigWrapper TAINT_TRAILS = new ConfigWrapper(false); + public static ConfigWrapper CRATE_OPEN_HELD = new ConfigWrapper(true); + public static ConfigWrapper CRATE_KEEP_CONTENTS = new ConfigWrapper(true); private static void initDefaults() { configMap.put("DAMAGE_COMPATIBILITY_MODE", DAMAGE_COMPATIBILITY_MODE); @@ -26,6 +28,8 @@ public class ServerConfig extends RunningConfig { configMap.put("MINE_NUKE_DAMAGE", MINE_NUKE_DAMAGE); configMap.put("MINE_NAVAL_DAMAGE", MINE_NAVAL_DAMAGE); configMap.put("TAINT_TRAILS", TAINT_TRAILS); + configMap.put("CRATE_OPEN_HELD", CRATE_OPEN_HELD); + configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS); } /** Initializes defaults, then reads the config file if it exists, then writes the config file. */ diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 242a2e475..e515314ac 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -102,6 +102,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE_AP, 6), new Object[] { "C", "P", "G", 'C', Items.flint, 'P', Items.paper, 'G', Items.gunpowder }); CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE_SHOT, 6), new Object[] { "C", "P", "G", 'C', Blocks.gravel, 'P', Items.paper, 'G', Items.gunpowder }); CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.STONE_IRON, 6), new Object[] { "C", "P", "G", 'C', IRON.ingot(), 'P', Items.paper, 'G', Items.gunpowder }); + CraftingManager.addShapelessAuto(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_MORTAR_CHARGE, 1), new Object[] { DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_MORTAR), DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_MORTAR), DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_MORTAR), DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_MORTAR), DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_MORTAR), DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_MORTAR), DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_MORTAR), ModItems.ducttape, ModItems.ducttape }); //SEDNA Mods CraftingManager.addShapelessAuto(new ItemStack(ModItems.weapon_mod_generic, 1, EnumModGeneric.IRON_DAMAGE.ordinal()), new Object[] { GUNMETAL.ingot(), IRON.ingot(), IRON.ingot(), IRON.ingot(), ModItems.ducttape }); diff --git a/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java index 82d96a98e..c5a96c458 100644 --- a/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AmmoPressRecipes.java @@ -41,12 +41,13 @@ public class AmmoPressRecipes extends SerializableRecipe { OreDictStack uranium = new OreDictStack(U238.ingot()); OreDictStack ferro = new OreDictStack(FERRO.ingot()); OreDictStack nb = new OreDictStack(NB.ingot()); - ComparableStack smokeful = new ComparableStack(Items.gunpowder); OreDictStack smokeless = new OreDictStack(ANY_SMOKELESS.dust()); - ComparableStack rocket = new ComparableStack(ModItems.rocket_fuel); OreDictStack he = new OreDictStack(ANY_HIGHEXPLOSIVE.ingot()); OreDictStack wp = new OreDictStack(P_WHITE.ingot()); OreDictStack rp = new OreDictStack(P_RED.dust()); + OreDictStack pipe = new OreDictStack(STEEL.pipe()); + ComparableStack smokeful = new ComparableStack(Items.gunpowder); + ComparableStack rocket = new ComparableStack(ModItems.rocket_fuel); ComparableStack cSmall = new ComparableStack(ModItems.casing, 1, EnumCasingType.SMALL); ComparableStack cBig = new ComparableStack(ModItems.casing, 1, EnumCasingType.LARGE); ComparableStack sSmall = new ComparableStack(ModItems.casing, 1, EnumCasingType.SMALL_STEEL); @@ -430,6 +431,15 @@ public class AmmoPressRecipes extends SerializableRecipe { null, he.copy(8), null, null, sBig.copy(2), null, null, sPlate.copy(4), null)); + + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_HOOK, 16), + null, steel, null, + null, pipe, null, + null, smokeless, null)); + recipes.add(new AmmoPressRecipe(DictFrame.fromOne(ModItems.ammo_standard, EnumAmmo.CT_MORTAR, 4), + null, he.copy(4), null, + null, pipe, null, + null, smokeless, null)); } public static HashMap getRecipes() { diff --git a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java index b1d597f1f..3608619fa 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java +++ b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java @@ -1,6 +1,7 @@ package com.hbm.items.block; import com.hbm.blocks.ModBlocks; +import com.hbm.config.ServerConfig; import com.hbm.inventory.container.*; import com.hbm.inventory.gui.*; import com.hbm.items.ItemInventory; @@ -29,6 +30,8 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + if(!ServerConfig.CRATE_OPEN_HELD.get()) return stack; + Block block = Block.getBlockFromItem(player.getHeldItem().getItem()); if(block == ModBlocks.mass_storage) return stack; // Genuinely can't figure out how to make this part work, so I'm just not gonna mess with it. @@ -81,10 +84,13 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider public static class InventoryCrate extends ItemInventory { + public int heldIndex; + public InventoryCrate(EntityPlayer player, ItemStack crate) { this.player = player; this.target = crate; + this.heldIndex = player.inventory.currentItem; this.slots = new ItemStack[this.getSizeInventory()]; if(target.stackTagCompound == null) { @@ -143,17 +149,9 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider if(target.stackTagCompound.hasKey("spiders")) nbt.setBoolean("spiders", target.stackTagCompound.getBoolean("spiders")); // fuck you!! }*/ - /* - * target and held item stacks constantly desync, not being the same reference, while still holding the same value. - * code was tested with a copy of the containment box code using the CB's GUI and container to no avail. - * hypothesis: minecraft's keybind handling has some special bullshit case for ItemBlocks, since that is the only difference in the test. - * solution (?): check equality, then just access the held stack directly. if not, pray the target reference is still accurate and use that. - */ - if(player.getHeldItem() != null && ItemStack.areItemStacksEqual(player.getHeldItem(), target)) { + // i have completely given up + if(player.getHeldItem() != null && player.getHeldItem().getItem() == this.target.getItem() && player.inventory.currentItem == this.heldIndex) { player.getHeldItem().setTagCompound(nbt); - this.target = player.getHeldItem(); // just fuckin whatever - } else { - target.setTagCompound(nbt); } } @@ -164,10 +162,8 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider /* * realistically, we only need one NBT size check (and we only *want* one because CompressedStreamTools is expensive) so we do that part only when closing */ - if(player.getHeldItem() != null && ItemStack.areItemStacksEqual(player.getHeldItem(), target)) { - player.getHeldItem().setTagCompound(checkNBT(target.getTagCompound())); - } else { - target.setTagCompound(checkNBT(target.getTagCompound())); + if(player.getHeldItem() != null && player.getHeldItem().getItem() == this.target.getItem() && player.inventory.currentItem == this.heldIndex) { + player.getHeldItem().setTagCompound(checkNBT(player.getHeldItem().getTagCompound())); } } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index d20677e53..8fc728847 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -88,15 +88,15 @@ public class XFactoryTool { ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(3F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) .setOnUpdate(LAMBDA_SET_HOOK).setOnImpact(LAMBDA_HOOK); - ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setLife(200).setVel(3F).setGrav(0.035D) + ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setDamage(2.5F).setLife(200).setVel(3F).setGrav(0.035D) .setOnImpact(LAMBDA_MORTAR); - ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setLife(200).setVel(3F).setGrav(0.035D) + ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setDamage(5F).setLife(200).setVel(3F).setGrav(0.035D) .setOnImpact(LAMBDA_MORTAR_CHARGE); ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig() - .dura(3_000).draw(20).inspect(31).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX) + .dura(3_000).draw(10).inspect(55).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX) .rec(new Receiver(0) - .dmg(5F).delay(4).dry(10).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(55).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F) + .dmg(10F).delay(4).dry(10).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(0).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 1).addConfigs(ct_hook, ct_mortar, ct_mortar_charge)) .offset(1, -0.0625 * 2.5, -0.25D) .setupStandardFire().recoil(LAMBDA_RECOIL_CT)) @@ -119,6 +119,9 @@ public class XFactoryTool { .addBus("RAISE", new BusAnimationSequence().addPos(-45, 0, 0, 500, IType.SIN_FULL).hold(2000).addPos(0, 0, 0, 500, IType.SIN_FULL)) .addBus("AMMO", new BusAnimationSequence().setPos(0, -10, -5).hold(500).addPos(0, 0, 5, 750, IType.SIN_FULL).addPos(0, 0, 0, 500, IType.SIN_UP).hold(4000)) .addBus("TWIST", new BusAnimationSequence().setPos(0, 0, 25).hold(2000).addPos(0, 0, 0, 150)); + case INSPECT: return new BusAnimation() + .addBus("TURN", new BusAnimationSequence().addPos(0, 60, 0, 500, IType.SIN_FULL).hold(1750).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("ROLL", new BusAnimationSequence().hold(750).addPos(0, 0, -90, 500, IType.SIN_FULL).hold(1000).addPos(0, 0, 0, 500, IType.SIN_FULL)); } return null; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 972f3371e..b1a87dd14 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1783,7 +1783,8 @@ public class ClientProxy extends ServerProxy { .addPos(90, 0, 1, 800) .addPos(0, 0, 1, 50)); - HbmAnimations.hotbar[player.inventory.currentItem][0] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, null); + String id = ModItems.crucible.getUnlocalizedName(); + HbmAnimations.hotbar[player.inventory.currentItem][0] = new Animation(id, System.currentTimeMillis(), animation, null); } /* crucible swing */ @@ -1804,8 +1805,8 @@ public class ClientProxy extends ServerProxy { .addPos(0, 0, 0, 500)); Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:weapon.cSwing"), 0.8F + player.getRNG().nextFloat() * 0.2F)); - - HbmAnimations.hotbar[player.inventory.currentItem][0] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, null); + String id = ModItems.crucible.getUnlocalizedName(); + HbmAnimations.hotbar[player.inventory.currentItem][0] = new Animation(id, System.currentTimeMillis(), animation, null); } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 85f7942f0..d85fd4bc4 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -953,8 +953,11 @@ public class CraftingManager { 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', DictFrame.fromOne(ModItems.conveyor_wand, ConveyorType.REGULAR) }); + 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', DictFrame.fromOne(ModItems.conveyor_wand, ConveyorType.REGULAR), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC) }); + 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) }); addRecipeAuto(new ItemStack(ModBlocks.crane_grabber, amount), new Object[] { "C C", "P P", "CBC", 'C', casing, 'B', DictFrame.fromOne(ModItems.conveyor_wand, ConveyorType.REGULAR), 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC) }); + addRecipeAuto(new ItemStack(ModBlocks.crane_grabber, amount), new Object[] { "C C", "P P", "CBC", 'C', casing, 'B', ModBlocks.conveyor, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC) }); } addRecipeAuto(new ItemStack(ModBlocks.crane_boxer), new Object[] { "WWW", "WPW", "CCC", 'W', KEY_PLANKS, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'C', DictFrame.fromOne(ModItems.conveyor_wand, ConveyorType.REGULAR) }); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java index 4b30ccc31..8d724e645 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderChargeThrower.java @@ -59,6 +59,8 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase { double[] raise = HbmAnimations.getRelevantTransformation("RAISE"); double[] ammo = HbmAnimations.getRelevantTransformation("AMMO"); double[] twist = HbmAnimations.getRelevantTransformation("TWIST"); + double[] turn = HbmAnimations.getRelevantTransformation("TURN"); + double[] roll = HbmAnimations.getRelevantTransformation("ROLL"); GL11.glTranslated(0, 0, -7); GL11.glRotated(equip[0], -1, 0, 0); @@ -69,6 +71,13 @@ public class ItemRenderChargeThrower extends ItemRenderWeaponBase { GL11.glTranslated(0, 7, -4); GL11.glTranslated(recoil[0], recoil[1], recoil[2]); + + GL11.glTranslated(0, 0, -2); + GL11.glRotated(turn[1], 0, 1, 0); + GL11.glTranslated(0, 0, 2); + GL11.glTranslated(0, -1, 0); + GL11.glRotated(roll[2], 0, 0, 1); + GL11.glTranslated(0, 1, 0); GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.charge_thrower_tex); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5c4eb045f..9eb688713 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1114,6 +1114,7 @@ item.ammo_standard.m44_express.name=.44 Magnumkugel (VMG Express) item.ammo_standard.m44_fmj.name=.44 Magnumkugel (Vollmantelgeschoss) item.ammo_standard.m44_jhp.name=.44 Magnumkugel (Hohlspitz) item.ammo_standard.m44_sp.name=.44 Magnumkugel (Teilmantelgeschoss) +item.ammo_standard.nuke_balefire.name=Miniatombombe, Balefire-Ei item.ammo_standard.nuke_demo.name=Miniatombombe, Abriss item.ammo_standard.nuke_high.name=Miniatombombe, hoher Ertrag item.ammo_standard.nuke_hive.name=Raketenschwarm @@ -2120,6 +2121,7 @@ item.gun_maresleg_broken.name=Broken item.gun_maresleg_short.name=Mare's Leg item.gun_mas36.name=Südstern item.gun_minigun.name=Minigun +item.gun_minigun_dual.name=Doppelete Miniguns item.gun_minigun_lacunae.name=Lacunae item.gun_missile_launcher.name=Raketenwerfer item.gun_pepperbox.name=Bündelrevolver @@ -4881,6 +4883,9 @@ tile.watz_end_bolted.name=Watz-Stabilitätselement (Genietet) tile.watz_hatch.name=Watzreaktorzugriffsluke tile.watz_pump.name=Watz-Druckpumpe tile.wood_barrier.name=Holzbarriere +tile.wood_structure.ceiling.name=Holzdecke +tile.wood_structure.roof.name=Holzdach +tile.wood_structure.scaffold.name=Holzgerüst tile.yellow_barrel.name=Radioaktives Fass tile.zirnox_destroyed.name=Zerstörter ZINOX diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 8128b5cfb..e888fe951 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1839,6 +1839,7 @@ item.ammo_standard.m44_express.name=.44 Magnum Round (FMJ Express) item.ammo_standard.m44_fmj.name=.44 Magnum Round (Full Metal Jacket) item.ammo_standard.m44_jhp.name=.44 Magnum Round (Jacketed Hollow Point) item.ammo_standard.m44_sp.name=.44 Magnum Round (Soft Point) +item.ammo_standard.nuke_balefire.name=Mini Nuke, Balefire Egg item.ammo_standard.nuke_demo.name=Mini Nuke, Demolition item.ammo_standard.nuke_high.name=Mini Nuke, High Yield item.ammo_standard.nuke_hive.name=Rocket Hive @@ -2932,6 +2933,7 @@ item.gun_maresleg_broken.name=Broken item.gun_maresleg_short.name=Mare's Leg item.gun_mas36.name=South Star item.gun_minigun.name=Minigun +item.gun_minigun_dual.name=Dual Miniguns item.gun_minigun_lacunae.name=Lacunae item.gun_missile_launcher.name=Missile Launcher item.gun_pepperbox.name=Pepperbox @@ -6043,6 +6045,9 @@ tile.watz_end_bolted.name=Watz Reactor Stability Element (Riveted) tile.watz_hatch.name=Watz Reactor Access Hatch tile.watz_pump.name=Watz Pressure Pump tile.wood_barrier.name=Wooden Barrier +tile.wood_structure.ceiling.name=Wooden Ceiling +tile.wood_structure.roof.name=Wooden Roof +tile.wood_structure.scaffold.name=Wooden Scaffold tile.yellow_barrel.name=Radioactive Barrel tile.zirnox_destroyed.name=Destroyed ZIRNOX From 4ce7e396be1d705c6bc724e4ed791c4e9aad214d Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 13 May 2025 16:25:39 +0200 Subject: [PATCH 021/181] doing absolutely nothing again --- .../java/com/hbm/blocks/machine/BlockPWR.java | 28 ++++++++++++++++++- .../java/com/hbm/handler/ToolAbility.java | 1 - .../java/com/hbm/main/CraftingManager.java | 7 ++++- .../machine/TileEntityPWRController.java | 19 ++++++++++++- 4 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPWR.java index 0320a76a1..74e352923 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockPWR.java +++ b/src/main/java/com/hbm/blocks/machine/BlockPWR.java @@ -12,6 +12,8 @@ import com.hbm.render.block.ct.IBlockCT; import com.hbm.tileentity.machine.TileEntityPWRController; import api.hbm.fluidmk2.IFluidReceiverMK2; +import api.hbm.redstoneoverradio.IRORInteractive; +import api.hbm.redstoneoverradio.IRORValueProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -98,7 +100,7 @@ public class BlockPWR extends BlockContainer implements IBlockCT { super.breakBlock(world, x, y, z, block, meta); } - public static class TileEntityBlockPWR extends TileEntity implements IFluidReceiverMK2, ISidedInventory { + public static class TileEntityBlockPWR extends TileEntity implements IFluidReceiverMK2, ISidedInventory, IRORValueProvider, IRORInteractive { public Block block; public int coreX; @@ -337,5 +339,29 @@ public class BlockPWR extends BlockContainer implements IBlockCT { super.onChunkUnload(); this.isLoaded = false; } + + @Override + public String[] getFunctionInfo() { + if(this.getBlockMetadata() != 1) return new String[0]; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getFunctionInfo(); + return new String[0]; + } + + @Override + public String provideRORValue(String name) { + if(this.getBlockMetadata() != 1) return ""; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.provideRORValue(name); + return ""; + } + + @Override + public String runRORFunction(String name, String[] params) { + if(this.getBlockMetadata() != 1) return ""; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.runRORFunction(name, params); + return ""; + } } } diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index 1ce02283b..bf9462a49 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -1,6 +1,5 @@ package com.hbm.handler; -import java.util.Arrays; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d85fd4bc4..561167561 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -8,6 +8,7 @@ import com.hbm.blocks.generic.BlockGenericStairs; import com.hbm.blocks.generic.BlockMultiSlab; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.blocks.generic.BlockPlushie.PlushieType; +import com.hbm.blocks.generic.BlockWoodStructure.EnumWoodStructure; import com.hbm.config.GeneralConfig; import com.hbm.crafting.*; import com.hbm.crafting.handlers.*; @@ -458,12 +459,16 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_grate_wide), 4), new Object[] { "SS", 'S', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_grate), 1), new Object[] { "SS", 'S', ModBlocks.steel_grate_wide }); - addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 0), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeGray" }); addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 1), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeRed" }); addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 2), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeWhite" }); addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 3), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeYellow" }); + addRecipeAuto(new ItemStack(ModBlocks.wood_barrier, 8), new Object[] { "SFS", "SFS", 'S', KEY_SLAB, 'F', Blocks.fence }); + addRecipeAuto(DictFrame.fromOne(ModBlocks.wood_structure, EnumWoodStructure.ROOF, 16), new Object[] { "SSS", "F F", 'S', KEY_SLAB, 'F', Blocks.fence }); + addRecipeAuto(DictFrame.fromOne(ModBlocks.wood_structure, EnumWoodStructure.CEILING, 16), new Object[] { "F F", "SSS", 'S', KEY_SLAB, 'F', Blocks.fence }); + addRecipeAuto(DictFrame.fromOne(ModBlocks.wood_structure, EnumWoodStructure.SCAFFOLD, 4), new Object[] { "SSS", "F F", "F F", 'S', KEY_SLAB, 'F', Blocks.fence }); + reg2(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index c7dceeda3..653ec66ca 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -26,6 +26,8 @@ import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.redstoneoverradio.IRORInteractive; +import api.hbm.redstoneoverradio.IRORValueProvider; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -44,7 +46,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, SimpleComponent, IFluidStandardTransceiver, CompatHandler.OCComponent { +public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, SimpleComponent, IFluidStandardTransceiver, CompatHandler.OCComponent, IRORValueProvider, IRORInteractive { public FluidTank[] tanks; public long coreHeat; @@ -628,4 +630,19 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public FluidTank[] getReceivingTanks() { return new FluidTank[] { tanks[0] }; } + + @Override + public String[] getFunctionInfo() { + return new String[0]; //TODO + } + + @Override + public String runRORFunction(String name, String[] params) { + return ""; + } + + @Override + public String provideRORValue(String name) { + return ""; + } } From a43986603b38cd1bbecc6e1a2bf204f8da4ace52 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 14 May 2025 11:51:30 +0200 Subject: [PATCH 022/181] more INDEX crap --- .../com/hbm/blocks/bomb/BombFlameWar.java | 33 +++- .../java/com/hbm/blocks/bomb/BombMulti.java | 8 +- .../com/hbm/blocks/bomb/ExplosiveCharge.java | 2 +- .../java/com/hbm/blocks/bomb/NukeCustom.java | 6 +- .../java/com/hbm/blocks/bomb/NukeGadget.java | 2 +- .../java/com/hbm/blocks/bomb/NukeMan.java | 2 +- .../java/com/hbm/blocks/bomb/NukeMike.java | 2 +- src/main/java/com/hbm/blocks/bomb/NukeN2.java | 2 +- .../java/com/hbm/blocks/bomb/NukeTsar.java | 2 +- .../java/com/hbm/blocks/test/TestCore.java | 2 +- .../hbm/entity/effect/EntityNukeTorex.java | 26 +-- .../entity/grenade/EntityGrenadeCloud.java | 2 +- .../entity/grenade/EntityGrenadeIFToxic.java | 1 - .../hbm/entity/grenade/EntityGrenadePC.java | 2 +- .../com/hbm/entity/logic/EntityBomber.java | 4 +- .../entity/missile/EntityMissileCustom.java | 6 +- .../entity/missile/EntityMissileTier4.java | 8 +- .../entity/projectile/EntityBombletZeta.java | 9 +- .../entity/projectile/EntityBulletBaseNT.java | 6 - .../hbm/entity/projectile/EntityModBeam.java | 2 +- .../com/hbm/explosion/ExplosionChaos.java | 160 +----------------- .../java/com/hbm/items/machine/ItemLens.java | 19 +-- .../com/hbm/items/tool/WeaponSpecial.java | 2 +- .../com/hbm/items/weapon/ItemAmmoArty.java | 2 +- .../weapon/sedna/factory/XFactoryFolly.java | 2 +- .../machine/TileEntityCoreEmitter.java | 45 ++++- .../machine/TileEntityCoreStabilizer.java | 33 +++- .../tileentity/machine/TileEntityITER.java | 47 ++++- 28 files changed, 211 insertions(+), 226 deletions(-) diff --git a/src/main/java/com/hbm/blocks/bomb/BombFlameWar.java b/src/main/java/com/hbm/blocks/bomb/BombFlameWar.java index 6cc36770b..0fef1c854 100644 --- a/src/main/java/com/hbm/blocks/bomb/BombFlameWar.java +++ b/src/main/java/com/hbm/blocks/bomb/BombFlameWar.java @@ -1,7 +1,13 @@ package com.hbm.blocks.bomb; -import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectTiny; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.interfaces.IBomb; +import com.hbm.particle.helper.ExplosionCreator; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -17,9 +23,7 @@ public class BombFlameWar extends Block implements IBomb { public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { if(world.isBlockIndirectlyGettingPowered(x, y, z)) { - ExplosionChaos.explode(world, x, y, z, 15); - ExplosionChaos.spawnExplosion(world, x, y, z, 75); - ExplosionChaos.flameDeath(world, x, y, z, 100); + explode(world, x, y, z); } } @@ -27,9 +31,24 @@ public class BombFlameWar extends Block implements IBomb { public BombReturnCode explode(World world, int x, int y, int z) { if(!world.isRemote) { - ExplosionChaos.explode(world, x, y, z, 15); - ExplosionChaos.spawnExplosion(world, x, y, z, 75); - ExplosionChaos.flameDeath(world, x, y, z, 100); + + world.func_147480_a(x, y, z, false); + + for(int i = 0; i < 150; i++) { + ExplosionVNT vnt = new ExplosionVNT(world, x + world.rand.nextInt(51) - 25, y + world.rand.nextInt(11) - 5, z + world.rand.nextInt(51) - 25, 4, null); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 25)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectTiny()); + vnt.explode(); + } + + ExplosionVNT xnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 15F); + xnt.setBlockAllocator(new BlockAllocatorStandard(32)); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setEntityProcessor(new EntityProcessorCrossSmooth(2, 200)); + xnt.setPlayerProcessor(new PlayerProcessorStandard()); + xnt.explode(); + ExplosionCreator.composeEffectSmall(world, x + 0.5, y + 0.5, z + 0.5); } return BombReturnCode.DETONATED; diff --git a/src/main/java/com/hbm/blocks/bomb/BombMulti.java b/src/main/java/com/hbm/blocks/bomb/BombMulti.java index b6496f164..1691f119a 100644 --- a/src/main/java/com/hbm/blocks/bomb/BombMulti.java +++ b/src/main/java/com/hbm/blocks/bomb/BombMulti.java @@ -18,10 +18,12 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.effect.EntityMist; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.interfaces.IBomb; +import com.hbm.inventory.fluid.Fluids; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityBombMulti; @@ -169,7 +171,11 @@ public class BombMulti extends BlockContainer implements IBomb { } if(gasCloud > 0) { - ExplosionChaos.spawnChlorine(world, x, y, z, gasCloud, gasCloud / 50, 0); + EntityMist mist = new EntityMist(world); + mist.setType(Fluids.CHLORINE); + mist.setPosition(x + 0.5, y + 0.5, z + 0.5); + mist.setArea(gasCloud * 15F / 50F, gasCloud * 7.5F / 50F); + world.spawnEntityInWorld(mist); } return BombReturnCode.DETONATED; diff --git a/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java b/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java index dae6e61d4..b2885a531 100644 --- a/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java +++ b/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java @@ -69,7 +69,7 @@ public class ExplosiveCharge extends BlockDetonatable implements IBomb, IDetConn } if(this == ModBlocks.det_nuke) { world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius, x + 0.5, y + 0.5, z + 0.5)); - EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius); + EntityNukeTorex.statFacStandard(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius); } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java index ebc21403e..766c2baee 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java @@ -179,7 +179,7 @@ public class NukeCustom extends BlockContainer implements IBomb { dirty *= 0.25F; worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)hydro, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).moreFallout((int)dirty)); - EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro); + EntityNukeTorex.statFacStandard(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro); /// NUCLEAR /// } else if(nuke > 0) { @@ -188,7 +188,7 @@ public class NukeCustom extends BlockContainer implements IBomb { nuke = Math.min(nuke, maxNuke); worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)nuke, xCoord + 0.5, yCoord + 5, zCoord + 0.5).moreFallout((int)dirty)); - EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke); + EntityNukeTorex.statFacStandard(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke); /// NON-NUCLEAR /// } else if(tnt >= 75) { @@ -196,7 +196,7 @@ public class NukeCustom extends BlockContainer implements IBomb { tnt = Math.min(tnt, maxTnt); worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, (int)tnt, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); - EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt); + EntityNukeTorex.statFacStandard(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt); } else if(tnt > 0) { ExplosionLarge.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, tnt, true, true, true); diff --git a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java index a09d7c31f..3e55cd5d5 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java @@ -131,7 +131,7 @@ public class NukeGadget extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); - EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.gadgetRadius); + EntityNukeTorex.statFacStandard(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.gadgetRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMan.java b/src/main/java/com/hbm/blocks/bomb/NukeMan.java index d9fc4f1a5..7030d1a5a 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMan.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMan.java @@ -124,7 +124,7 @@ public class NukeMan extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.manRadius, x + 0.5, y + 0.5, z + 0.5)); - EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.manRadius); + EntityNukeTorex.statFacStandard(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.manRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMike.java b/src/main/java/com/hbm/blocks/bomb/NukeMike.java index 84e178758..3a7935503 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMike.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMike.java @@ -131,7 +131,7 @@ public class NukeMike extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.mikeRadius, x + 0.5, y + 0.5, z + 0.5)); - EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.mikeRadius); + EntityNukeTorex.statFacStandard(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.mikeRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeN2.java b/src/main/java/com/hbm/blocks/bomb/NukeN2.java index c65eef0f7..197471386 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeN2.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeN2.java @@ -120,7 +120,7 @@ public class NukeN2 extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, r, x + 0.5, y + 0.5, z + 0.5)); - EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); + EntityNukeTorex.statFacStandard(world, x + 0.5, y + 0.5, z + 0.5, r); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java index f064a053a..1fea0c9d2 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java @@ -129,7 +129,7 @@ public class NukeTsar extends BlockContainer implements IBomb { tetn.clearSlots(); world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, r, x + 0.5, y + 0.5, z + 0.5)); - EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); + EntityNukeTorex.statFacStandard(world, x + 0.5, y + 0.5, z + 0.5, r); } return false; diff --git a/src/main/java/com/hbm/blocks/test/TestCore.java b/src/main/java/com/hbm/blocks/test/TestCore.java index 049f7eae9..7b3b60380 100644 --- a/src/main/java/com/hbm/blocks/test/TestCore.java +++ b/src/main/java/com/hbm/blocks/test/TestCore.java @@ -27,7 +27,7 @@ public class TestCore extends Block { world.setBlockToAir(x, y, z); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius, x + 0.5, y + 0.5, z + 0.5)); - EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius); + EntityNukeTorex.statFacStandard(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius); } else if(meta > 0) { diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 0c8f7b843..6d2e03597 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -45,16 +45,8 @@ public class EntityNukeTorex extends Entity { this.dataWatcher.addObject(11, new Integer(0)); } - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) { - return 1.0F; - } + @Override @SideOnly(Side.CLIENT) public int getBrightnessForRender(float interp) { return 15728880; } + @Override public float getBrightness(float interp) { return 1.0F; } @Override public void onUpdate() { @@ -574,16 +566,12 @@ public class EntityNukeTorex extends Entity { return true; } - public static void statFac(World world, double x, double y, double z, float scale) { - EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)); - torex.setPosition(x, y, z); - torex.forceSpawn = true; - world.spawnEntityInWorld(torex); - TrackerUtil.setTrackingRange(world, torex, 1000); - } + public static void statFacStandard(World world, double x, double y, double z, float scale) { statFac(world, x, y, z, scale, 0); } + public static void statFacBale(World world, double x, double y, double z, float scale) { statFac(world, x, y, z, scale, 1); } - public static void statFacBale(World world, double x, double y, double z, float scale) { - EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)).setType(1); + public static void statFac(World world, double x, double y, double z, float scale, int type) { + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)); + torex.setType(type); torex.setPosition(x, y, z); torex.forceSpawn = true; world.spawnEntityInWorld(torex); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeCloud.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeCloud.java index d58cfe18c..084f50b36 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeCloud.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeCloud.java @@ -26,7 +26,7 @@ public class EntityGrenadeCloud extends EntityGrenadeBase { this.setDead(); this.worldObj.playAuxSFX(2002, (int)Math.round(this.posX), (int)Math.round(this.posY), (int)Math.round(this.posZ), 0); - ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, 250, 1.5, 1); + ExplosionChaos.spawnPoisonCloud(worldObj, posX, posY, posZ, 250, 1.5, 1); } } } diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFToxic.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFToxic.java index d17910734..83d04ad89 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFToxic.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFToxic.java @@ -37,7 +37,6 @@ public class EntityGrenadeIFToxic extends EntityGrenadeBouncyBase { ExplosionLarge.explode(worldObj, posX, posY, posZ, 2, true, true, true); ExplosionChaos.poison(worldObj, (int)posX, (int)posY, (int)posZ, 12); ExplosionNukeGeneric.waste(worldObj, (int)posX, (int)posY, (int)posZ, 12); - ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, 50, 1.5, 0); } } diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadePC.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadePC.java index 34b2068a3..9136b287a 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadePC.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadePC.java @@ -26,7 +26,7 @@ public class EntityGrenadePC extends EntityGrenadeBase { this.setDead(); this.worldObj.playAuxSFX(2002, (int)Math.round(this.posX), (int)Math.round(this.posY), (int)Math.round(this.posZ), 0); - ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, 500, 2, 2); + ExplosionChaos.spawnPoisonCloud(worldObj, posX, posY, posZ, 500, 2, 2); } } } diff --git a/src/main/java/com/hbm/entity/logic/EntityBomber.java b/src/main/java/com/hbm/entity/logic/EntityBomber.java index 911a09e28..3270d701e 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBomber.java +++ b/src/main/java/com/hbm/entity/logic/EntityBomber.java @@ -61,7 +61,7 @@ public class EntityBomber extends EntityPlaneBase { if(type == 3) { worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); - ExplosionChaos.spawnChlorine(worldObj, this.posX, this.posY - 1F, this.posZ, 10, 0.5, 3); + ExplosionChaos.spawnPoisonCloud(worldObj, this.posX, this.posY - 1F, this.posZ, 10, 0.5, 3); } else if(type == 5) { @@ -75,7 +75,7 @@ public class EntityBomber extends EntityPlaneBase { } else if(type == 7) { worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); - ExplosionChaos.spawnChlorine(worldObj, this.posX, worldObj.getHeightValue((int) this.posX, (int) this.posZ) + 2, this.posZ, 10, 1, 2); + ExplosionChaos.spawnPoisonCloud(worldObj, this.posX, worldObj.getHeightValue((int) this.posX, (int) this.posZ) + 2, this.posZ, 10, 1, 2); } else { worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "hbm:entity.bombWhistle", 10.0F, 0.9F + rand.nextFloat() * 0.2F); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index e929e2fe2..0bfe4efb6 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -190,7 +190,7 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo case NUCLEAR: case TX: worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int) strength, posX, posY, posZ)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, strength); + EntityNukeTorex.statFacStandard(worldObj, posX, posY, posZ, strength); break; case BALEFIRE: EntityBalefire bf = new EntityBalefire(worldObj); @@ -203,7 +203,7 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo break; case N2: worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, (int) strength, posX, posY, posZ)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, strength); + EntityNukeTorex.statFacStandard(worldObj, posX, posY, posZ, strength); break; case TAINT: int r = (int) strength; @@ -219,7 +219,7 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo break; case CLOUD: this.worldObj.playAuxSFX(2002, (int) Math.round(this.posX), (int) Math.round(this.posY), (int) Math.round(this.posZ), 0); - ExplosionChaos.spawnChlorine(worldObj, posX - motionX, posY - motionY, posZ - motionZ, 750, 2.5, 2); + ExplosionChaos.spawnPoisonCloud(worldObj, posX - motionX, posY - motionY, posZ - motionZ, 750, 2.5, 2); break; case TURBINE: ExplosionLarge.explode(worldObj, posX, posY, posZ, 10, true, false, true); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java index ab284113f..dfdfe9b8e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -65,7 +65,7 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { public EntityMissileNuclear(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); + EntityNukeTorex.statFacStandard(worldObj, posX, posY, posZ, BombConfig.missileRadius); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_nuclear); } @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_nuclear); } @@ -76,7 +76,7 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { public EntityMissileMirv(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); + EntityNukeTorex.statFacStandard(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); } @Override public List getDebris() { List list = new ArrayList(); @@ -107,7 +107,7 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { public EntityMissileDoomsday(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ).moreFallout(100)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); + EntityNukeTorex.statFacStandard(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); } @Override public List getDebris() { return null; } @Override public ItemStack getDebrisRareDrop() { return null; } @@ -120,7 +120,7 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { public EntityMissileDoomsdayRusted(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ).moreFallout(100)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); + EntityNukeTorex.statFacStandard(worldObj, posX, posY, posZ, BombConfig.missileRadius); } @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_doomsday_rusted); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java index e6b3f672c..eb870b398 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBombletZeta.java @@ -1,8 +1,8 @@ package com.hbm.entity.projectile; import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityMist; import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockMutatorFire; @@ -11,6 +11,7 @@ import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.threading.PacketThreading; +import com.hbm.inventory.fluid.Fluids; import com.hbm.packet.toclient.AuxParticlePacketNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -70,7 +71,11 @@ public class EntityBombletZeta extends EntityThrowable { } if(type == 2) { worldObj.playSoundEffect((double) (posX + 0.5F), (double) (posY + 0.5F), (double) (posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); - ExplosionChaos.spawnChlorine(worldObj, this.posX + 0.5F - motionX, this.posY + 0.5F - motionY, this.posZ + 0.5F - motionZ, 75, 2, 0); + EntityMist mist = new EntityMist(worldObj); + mist.setType(Fluids.CHLORINE); + mist.setPosition(this.posX - motionX, this.posY - motionY, this.posZ - motionZ); + mist.setArea(15, 7.5F); + worldObj.spawnEntityInWorld(mist); } if(type == 4) { worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int) (BombConfig.fatmanRadius * 1.5), posX, posY, posZ)); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 2ada3ea35..728c2d1ad 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -9,7 +9,6 @@ import com.hbm.entity.effect.EntityCloudFleijaRainbow; import com.hbm.entity.effect.EntityEMPBlast; import com.hbm.entity.logic.EntityNukeExplosionMK3; import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.vanillant.ExplosionVNT; @@ -447,11 +446,6 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(config.shrapnel > 0 && !worldObj.isRemote) ExplosionLarge.spawnShrapnels(worldObj, posX, posY, posZ, config.shrapnel); - if(config.chlorine > 0 && !worldObj.isRemote) { - ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, config.chlorine, 1.5, 0); - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); - } - if(config.rainbow > 0 && !worldObj.isRemote) { EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, config.rainbow); if(!ex.isDead) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java index f8a2e6be7..60193ba8b 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java @@ -490,7 +490,7 @@ public class EntityModBeam extends Entity implements IProjectile { this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.gadgetRadius, posX, posY, posZ)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.gadgetRadius); + EntityNukeTorex.statFacStandard(worldObj, posX, posY, posZ, BombConfig.gadgetRadius); } } } diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index dd15674cf..a3a249089 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -7,7 +7,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.grenade.EntityGrenadeTau; import com.hbm.entity.grenade.EntityGrenadeZOMG; import com.hbm.entity.item.EntityFallingBlockNT; -import com.hbm.entity.particle.EntityChlorineFX; import com.hbm.entity.particle.EntityCloudFX; import com.hbm.entity.particle.EntityModFX; import com.hbm.entity.particle.EntityOrangeFX; @@ -28,7 +27,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityTNTPrimed; import net.minecraft.entity.passive.EntitySheep; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; @@ -40,34 +38,13 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +@Deprecated @Spaghetti("my eyes are bleeding") -public class ExplosionChaos { +public class ExplosionChaos { //TODO: destroy this entire class private final static Random random = new Random(); private static Random rand = new Random(); - public static void explode(World world, int x, int y, int z, int bombStartStrength) { - - int r = bombStartStrength; - int r2 = r * r; - int r22 = r2 / 2; - for (int xx = -r; xx < r; xx++) { - int X = xx + x; - int XX = xx * xx; - for (int yy = -r; yy < r; yy++) { - int Y = yy + y; - int YY = XX + yy * yy; - for (int zz = -r; zz < r; zz++) { - int Z = zz + z; - int ZZ = YY + zz * zz; - if (ZZ < r22) { - destruction(world, X, Y, Z); - } - } - } - } - } - public static void hardenVirus(World world, int x, int y, int z, int bombStartStrength) { int r = bombStartStrength; @@ -130,8 +107,10 @@ public class ExplosionChaos { int ZZ = YY + zz * zz; if (ZZ < r22) { - if(world.getBlock(X, Y, Z).getExplosionResistance(null) <= 70) - pDestruction(world, X, Y, Z); + if(world.getBlock(X, Y, Z).getExplosionResistance(null) <= 70) { + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(world, X + 0.5, Y + 0.5, Z + 0.5, world.getBlock(X, Y, Z), world.getBlockMetadata(X, Y, Z)); + world.spawnEntityInWorld(entityfallingblock); + } } } } @@ -183,79 +162,6 @@ public class ExplosionChaos { } } - public static void spawnExplosion(World world, int x, int y, int z, int bound) { - - int randX; - int randY; - int randZ; - - for (int i = 0; i < 25; i++) { - - randX = random.nextInt(bound); - randY = random.nextInt(bound); - randZ = random.nextInt(bound); - - world.createExplosion(null, x + randX, y + randY, z + randZ, 10.0F, true); - // ExplosionChaos.explode(world, x + randX, y + randY, z + randZ, - // 5); - - randX = random.nextInt(bound); - randY = random.nextInt(bound); - randZ = random.nextInt(bound); - - world.createExplosion(null, x + randX, y - randY, z + randZ, 10.0F, true); - // ExplosionChaos.explode(world, x - randX, y + randY, z + randZ, - // 5); - - randX = random.nextInt(bound); - randY = random.nextInt(bound); - randZ = random.nextInt(bound); - - world.createExplosion(null, x + randX, y + randY, z - randZ, 10.0F, true); - // ExplosionChaos.explode(world, x + randX, y - randY, z + randZ, - // 5); - - randX = random.nextInt(bound); - randY = random.nextInt(bound); - randZ = random.nextInt(bound); - - world.createExplosion(null, x - randX, y + randY, z + randZ, 10.0F, true); - // ExplosionChaos.explode(world, x + randX, y + randY, z - randZ, - // 5); - randX = random.nextInt(bound); - randY = random.nextInt(bound); - randZ = random.nextInt(bound); - - world.createExplosion(null, x - randX, y - randY, z + randZ, 10.0F, true); - // ExplosionChaos.explode(world, x - randX, y - randY, z + randZ, - // 5); - - randX = random.nextInt(bound); - randY = random.nextInt(bound); - randZ = random.nextInt(bound); - - world.createExplosion(null, x - randX, y + randY, z - randZ, 10.0F, true); - // ExplosionChaos.explode(world, x - randX, y + randY, z - randZ, - // 5); - - randX = random.nextInt(bound); - randY = random.nextInt(bound); - randZ = random.nextInt(bound); - - world.createExplosion(null, x + randX, y - randY, z - randZ, 10.0F, true); - // ExplosionChaos.explode(world, x + randX, y - randY, z - randZ, - // 5); - - randX = random.nextInt(bound); - randY = random.nextInt(bound); - randZ = random.nextInt(bound); - - world.createExplosion(null, x - randX, y - randY, z - randZ, 10.0F, true); - // ExplosionChaos.explode(world, x - randX, y - randY, z - randZ, - // 5); - } - } - /** * Sets all flammable blocks on fire * @@ -327,15 +233,13 @@ public class ExplosionChaos { } - public static void spawnChlorine(World world, double x, double y, double z, int count, double speed, int type) { + @Deprecated public static void spawnPoisonCloud(World world, double x, double y, double z, int count, double speed, int type) { for(int i = 0; i < count; i++) { EntityModFX fx = null; - if(type == 0) { - fx = new EntityChlorineFX(world, x, y, z, 0.0, 0.0, 0.0); - } else if(type == 1) { + if(type == 1) { fx = new EntityCloudFX(world, x, y, z, 0.0, 0.0, 0.0); } else if(type == 2) { fx = new EntityPinkCloudFX(world, x, y, z, 0.0, 0.0, 0.0); @@ -365,25 +269,6 @@ public class ExplosionChaos { } } - public static void destruction(World world, int x, int y, int z) { - - if (world.getBlock(x, y, z) == Blocks.bedrock || world.getBlock(x, y, z) == ModBlocks.reinforced_brick - || world.getBlock(x, y, z) == ModBlocks.reinforced_sand - || world.getBlock(x, y, z) == ModBlocks.reinforced_glass - || world.getBlock(x, y, z) == ModBlocks.reinforced_lamp_on - || world.getBlock(x, y, z) == ModBlocks.reinforced_lamp_off) { - - } else { - world.setBlock(x, y, z, Blocks.air); - } - - } - - public static void pDestruction(World world, int x, int y, int z) { - EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(world, (double) ((float) x + 0.5F), (double) ((float) y + 0.5F), (double) ((float) z + 0.5F), world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); - world.spawnEntityInWorld(entityfallingblock); - } - public static void cluster(World world, int x, int y, int z, int count, int gravity) { double d1 = 0; @@ -436,35 +321,6 @@ public class ExplosionChaos { } } - public static void nuke(World world, int x, int y, int z, int count) { - - double d1 = 0; - double d2 = 0; - double d3 = 0; - EntityTNTPrimed fragment; - - for (int i = 0; i < 5; i++) { - d1 = rand.nextDouble(); - d2 = rand.nextDouble(); - d3 = rand.nextDouble(); - - if (rand.nextInt(2) == 0) { - d1 *= -1; - } - - if (rand.nextInt(2) == 0) { - d3 *= -1; - } - - fragment = new EntityTNTPrimed(world); - fragment.motionX = d1; - fragment.motionY = d2; - fragment.motionZ = d3; - - world.spawnEntityInWorld(fragment); - } - } - public static void frag(World world, int x, int y, int z, int count, boolean flame, Entity shooter) { double d1 = 0; diff --git a/src/main/java/com/hbm/items/machine/ItemLens.java b/src/main/java/com/hbm/items/machine/ItemLens.java index 93ebb1f86..905af7c05 100644 --- a/src/main/java/com/hbm/items/machine/ItemLens.java +++ b/src/main/java/com/hbm/items/machine/ItemLens.java @@ -43,15 +43,14 @@ public class ItemLens extends Item { stack.stackTagCompound.setLong("damage", damage); } - - public double getDurabilityForDisplay(ItemStack stack) - { - return (double)getLensDamage(stack) / (double)maxDamage; - } - - public boolean showDurabilityBar(ItemStack stack) - { - return getDurabilityForDisplay(stack) != 0; - } + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return (double) getLensDamage(stack) / (double) maxDamage; + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return getDurabilityForDisplay(stack) != 0; + } } diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index c59daa016..49041e842 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -152,7 +152,7 @@ public class WeaponSpecial extends ItemSword { if(entityPlayer.fallDistance >= 20 && !((EntityPlayer)entityPlayer).capabilities.isCreativeMode) { if(!world.isRemote) { world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, 100, entity.posX, entity.posY, entity.posZ)); - EntityNukeTorex.statFac(world, entity.posX, entity.posY, entity.posZ, 100); + EntityNukeTorex.statFacStandard(world, entity.posX, entity.posY, entity.posZ, 100); } } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index ff3bb0829..6d968fcfd 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -262,7 +262,7 @@ public class ItemAmmoArty extends Item { this.itemTypes[NUKE] = new ArtilleryShell("ammo_arty_nuke", SpentCasing.COLOR_CASE_16INCH_NUKE) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { shell.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(shell.worldObj, BombConfig.missileRadius, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord)); - EntityNukeTorex.statFac(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, BombConfig.missileRadius); + EntityNukeTorex.statFacStandard(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, BombConfig.missileRadius); shell.setDead(); } }; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java index 86461c4ee..793284b3d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java @@ -93,7 +93,7 @@ public class XFactoryFolly { if(bullet.isDead) return; bullet.setDead(); bullet.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(bullet.worldObj, 100, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord)); - EntityNukeTorex.statFac(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 100); + EntityNukeTorex.statFacStandard(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 100); }; public static void init() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 3a6712af9..6acc2532f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import api.hbm.block.ILaserable; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.redstoneoverradio.IRORInteractive; import api.hbm.tile.IInfoProviderEC; import com.hbm.handler.CompatHandler; @@ -38,7 +39,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyReceiverMK2, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyReceiverMK2, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent, IRORInteractive { public long power; public static final long maxPower = 1000000000L; @@ -336,4 +337,46 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, joules > 0 || prev > 0 ? 20 : 0); data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, maxPower * watts / 2000); } + + @Override + public String[] getFunctionInfo() { + return new String[] { + PREFIX_FUNCTION + "setpower" + NAME_SEPARATOR + "percent", + PREFIX_FUNCTION + "toggle", + PREFIX_FUNCTION + "switch" + NAME_SEPARATOR + "on/off", + }; + } + + @Override + public String runRORFunction(String name, String[] params) { + + if((PREFIX_FUNCTION + "setpower").equals(name) && params.length > 0) { + int watts = IRORInteractive.parseInt(params[0], 0, 100); + this.watts = watts; + this.markChanged(); + return null; + } + + if((PREFIX_FUNCTION + "toggle").equals(name)) { + this.isOn = !this.isOn; + this.markChanged(); + return null; + } + + + if((PREFIX_FUNCTION + "switch").equals(name) && params.length > 0) { + if("on".equals(params[0])) { + this.isOn = true; + this.markChanged(); + return null; + } + if("off".equals(params[0])) { + this.isOn = false; + this.markChanged(); + return null; + } + } + + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 2647d4c6e..df1890191 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -10,6 +10,8 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.redstoneoverradio.IRORInteractive; +import api.hbm.redstoneoverradio.IRORValueProvider; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; @@ -29,7 +31,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyReceiverMK2, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityCoreStabilizer extends TileEntityMachineBase implements IEnergyReceiverMK2, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent, IRORValueProvider, IRORInteractive { public long power; public static final long maxPower = 2500000000L; @@ -245,4 +247,33 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I else data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, 0); } + + @Override + public String[] getFunctionInfo() { + return new String[] { + PREFIX_VALUE + "durability", + PREFIX_VALUE + "durabilitypercent", + PREFIX_FUNCTION + "setpower" + NAME_SEPARATOR + "percent", + }; + } + + @Override + public String provideRORValue(String name) { + if((PREFIX_VALUE + "durability").equals(name)) return (slots[0] != null && slots[0].getItem() == ModItems.ams_lens) ? "" + (((ItemLens) slots[0].getItem()).maxDamage - ItemLens.getLensDamage(slots[0])) : "0"; + if((PREFIX_VALUE + "durabilitypercent").equals(name)) return (slots[0] != null && slots[0].getItem() == ModItems.ams_lens) ? "" + ((((ItemLens) slots[0].getItem()).maxDamage - ItemLens.getLensDamage(slots[0])) * 100 / ((ItemLens) slots[0].getItem()).maxDamage) : "0"; + return null; + } + + @Override + public String runRORFunction(String name, String[] params) { + + if((PREFIX_FUNCTION + "setpower").equals(name) && params.length > 0) { + int watts = IRORInteractive.parseInt(params[0], 0, 100); + this.watts = watts; + this.markChanged(); + return null; + } + + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index fd92fb157..1b75df130 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -32,6 +32,8 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.redstoneoverradio.IRORInteractive; +import api.hbm.redstoneoverradio.IRORValueProvider; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -52,7 +54,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable { +public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable, IRORValueProvider, IRORInteractive { public long power; public static final long maxPower = 10000000; @@ -657,4 +659,47 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece public FluidTank getTankToPaste() { return null; } + + @Override + public String[] getFunctionInfo() { + return new String[] { + PREFIX_VALUE + "durability", + PREFIX_VALUE + "durabilitypercent", + PREFIX_FUNCTION + "toggle", + PREFIX_FUNCTION + "switch" + NAME_SEPARATOR + "on/off", + }; + } + + @Override + public String provideRORValue(String name) { + if((PREFIX_VALUE + "durability").equals(name)) return (slots[3] != null && slots[3].getItem() instanceof ItemFusionShield) ? "" + (((ItemFusionShield) slots[3].getItem()).maxDamage - ItemFusionShield.getShieldDamage(slots[3])) : "0"; + if((PREFIX_VALUE + "durabilitypercent").equals(name)) return (slots[3] != null && slots[3].getItem() instanceof ItemFusionShield) ? "" + ((((ItemFusionShield) slots[3].getItem()).maxDamage - ItemFusionShield.getShieldDamage(slots[3])) * 100 / ((ItemFusionShield) slots[3].getItem()).maxDamage) : "0"; + return null; + } + + @Override + public String runRORFunction(String name, String[] params) { + + if((PREFIX_FUNCTION + "toggle").equals(name)) { + this.isOn = !this.isOn; + this.markChanged(); + return null; + } + + + if((PREFIX_FUNCTION + "switch").equals(name) && params.length > 0) { + if("on".equals(params[0])) { + this.isOn = true; + this.markChanged(); + return null; + } + if("off".equals(params[0])) { + this.isOn = false; + this.markChanged(); + return null; + } + } + + return null; + } } From 9f758c49bc323ed7184d691f900a34e7cbd0ac4c Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 15 May 2025 16:01:15 +0200 Subject: [PATCH 023/181] dud crap --- changelog | 9 ++- .../com/hbm/blocks/bomb/BlockCrashedBomb.java | 78 +++++++++++++++---- .../java/com/hbm/crafting/ToolRecipes.java | 1 - src/main/java/com/hbm/items/ModItems.java | 2 +- .../com/hbm/items/tool/ItemAmatExtractor.java | 44 ----------- .../com/hbm/items/weapon/ItemAmmoArty.java | 6 +- 6 files changed, 75 insertions(+), 65 deletions(-) diff --git a/changelog b/changelog index 25db9ffc5..c866d443b 100644 --- a/changelog +++ b/changelog @@ -1,10 +1,11 @@ ## Added * Sandbags * Connect to other sandbags or solid blocks - * Pretts + * Pretty * Wooden barrier * Pretty * Automatically walls off connected solid blocks in addition to the direction it was placed in +* Some other wooden blocks like a roof, ceiling and scaffold ## Changed * Increased bayonet damage from 5 to 7.5 hearts @@ -16,8 +17,12 @@ * New server configs * `CRATE_OPEN_HELD` can toggle whether crates can be opened when held * `CRATE_KEEP_CONTENTS` can toggle whether crates keep their contents when broken +* Duds now have multiple variants + * Dismantling different variants yields different drops + * Magnetic extraction can no longer be performed ## Fixed * Fixed RoR controller having the wrong recipe * Either fixed the crate dupe/voiding issues or made them even worse -* Fixed skeletons and pedestals allowing blocks to be placed inside the player \ No newline at end of file +* Fixed skeletons and pedestals allowing blocks to be placed inside the player +* Fixed artillery shells not playing the explosion animation when directly impacting entities \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java index 191b36173..811d2a128 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java @@ -3,11 +3,20 @@ package com.hbm.blocks.bomb; import com.hbm.blocks.BlockEnumMulti; import com.hbm.config.BombConfig; import com.hbm.entity.logic.EntityBalefire; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCross; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.threading.PacketThreading; import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.tileentity.bomb.TileEntityCrashedBomb; +import com.hbm.util.EnumUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.ITileEntityProvider; @@ -42,11 +51,27 @@ public class BlockCrashedBomb extends BlockEnumMulti implements ITileEntityProvi if(world.isRemote) return true; if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.defuser) { + + EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, world.getBlockMetadata(x, y, z)); + //TODO: make this less scummy + if(type == type.BALEFIRE) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.egg_balefire_shard))); + } + if(type == type.CONVENTIONAL) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ball_tnt, 16))); + } + if(type == type.NUKE) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ball_tnt, 8))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.billet_plutonium, 4))); + } + if(type == type.SALTED) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ball_tnt, 8))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.billet_plutonium, 2))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_cobalt, 12))); + } + world.func_147480_a(x, y, z, false); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.egg_balefire_shard))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_steel, 10 + world.rand.nextInt(15)))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_titanium, 2 + world.rand.nextInt(7)))); return true; } @@ -59,20 +84,45 @@ public class BlockCrashedBomb extends BlockEnumMulti implements ITileEntityProvi if(!world.isRemote) { world.setBlockToAir(x, y, z); - EntityBalefire bf = new EntityBalefire(world); - bf.posX = x; - bf.posY = y; - bf.posZ = z; - bf.destructionRange = (int) (BombConfig.fatmanRadius * 1.25); - world.spawnEntityInWorld(bf); + EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, world.getBlockMetadata(x, y, z)); - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - data.setBoolean("balefire", true); - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, x + 0.5, y + 0.5, z + 0.5), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 250)); - world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + if(type == type.BALEFIRE) { + EntityBalefire bf = new EntityBalefire(world); + bf.setPosition(x, y, z); + bf.destructionRange = (int) (BombConfig.fatmanRadius * 1.25); + world.spawnEntityInWorld(bf); + spawnMush(world, x, y, z, true); + } + + if(type == type.CONVENTIONAL) { + ExplosionVNT xnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 35F); + xnt.setBlockAllocator(new BlockAllocatorStandard(24)); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setEntityProcessor(new EntityProcessorCross(5D).withRangeMod(1.5F)); + xnt.setPlayerProcessor(new PlayerProcessorStandard()); + xnt.explode(); + ExplosionCreator.composeEffectLarge(world, x + 0.5, y + 0.5, z + 0.5); + } + + if(type == type.NUKE) { + world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, 35, x + 0.5, y + 0.5, z + 0.5)); + spawnMush(world, x, y, z, MainRegistry.polaroidID == 11 || world.rand.nextInt(100) == 0); + } + + if(type == type.SALTED) { + world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, 25, x + 0.5, y + 0.5, z + 0.5).moreFallout(25)); + spawnMush(world, x, y, z, MainRegistry.polaroidID == 11 || world.rand.nextInt(100) == 0); + } } return BombReturnCode.DETONATED; } + + public static void spawnMush(World world, int x, int y, int z, boolean balefire) { + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + data.setBoolean("balefire", balefire); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, x + 0.5, y + 0.5, z + 0.5), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 250)); + } } diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 4399f08c3..26a04b5fe 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -129,7 +129,6 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', W.bolt(), 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.settings_tool), new Object[] { " P ", "PCP", "III", 'P', IRON.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'I', ModItems.plate_polymer }); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index be5922927..63715bbe3 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3883,7 +3883,7 @@ public class ModItems { defuser = new ItemTooling(ToolType.DEFUSER, 100).setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser"); reacher = new Item().setUnlocalizedName("reacher").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":reacher"); - bismuth_tool = new ItemAmatExtractor().setUnlocalizedName("bismuth_tool").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":bismuth_tool"); + bismuth_tool = new ItemAmatExtractor().setUnlocalizedName("bismuth_tool").setMaxStackSize(1).setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":bismuth_tool"); meltdown_tool = new ItemDyatlov().setUnlocalizedName("meltdown_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":meltdown_tool"); flame_pony = new ItemCustomLore().setUnlocalizedName("flame_pony").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_pony"); diff --git a/src/main/java/com/hbm/items/tool/ItemAmatExtractor.java b/src/main/java/com/hbm/items/tool/ItemAmatExtractor.java index ffd2b3ddb..0086e8474 100644 --- a/src/main/java/com/hbm/items/tool/ItemAmatExtractor.java +++ b/src/main/java/com/hbm/items/tool/ItemAmatExtractor.java @@ -1,50 +1,6 @@ package com.hbm.items.tool; -import com.hbm.blocks.bomb.BlockCrashedBomb; -import com.hbm.items.ModItems; -import com.hbm.util.ContaminationUtil; -import com.hbm.util.ContaminationUtil.ContaminationType; -import com.hbm.util.ContaminationUtil.HazardType; - -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; public class ItemAmatExtractor extends Item { - - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { - - if(world.getBlock(x, y, z) instanceof BlockCrashedBomb) { - if(!world.isRemote && player.inventory.hasItem(ModItems.cell_empty)) { - - float chance = world.rand.nextFloat(); - - if(chance < 0.01) { - ((BlockCrashedBomb) world.getBlock(x, y, z)).explode(world, x, y, z); - } else if(chance <= 0.3) { - player.inventory.consumeInventoryItem(ModItems.cell_empty); - - if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_balefire))) { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.cell_balefire, 1, 0), false); - } - } else { - player.inventory.consumeInventoryItem(ModItems.cell_empty); - - if(!player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_antimatter))) { - player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.cell_antimatter, 1, 0), false); - } - } - - player.inventoryContainer.detectAndSendChanges(); - ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.CREATIVE, 50.0F); - } - - player.swingItem(); - return true; - } - - return false; - } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 6d968fcfd..1f9cd0582 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -245,9 +245,9 @@ public class ItemAmmoArty extends Item { private void init() { /* STANDARD SHELLS */ - this.itemTypes[NORMAL] = new ArtilleryShell("ammo_arty", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 10F, 3F, false); ExplosionCreator.composeEffect(shell.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 10, 2F, 0.5F, 25F, 5, 0, 20, 0.75F, 1F, -2F, 150); }}; - this.itemTypes[CLASSIC] = new ArtilleryShell("ammo_arty_classic", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 5F, false); ExplosionCreator.composeEffect(shell.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 0, 50, 1F, 3F, -2F, 200); }}; - this.itemTypes[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 3F, true); ExplosionCreator.composeEffect(shell.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 16, 50, 1F, 3F, -2F, 200); }}; + this.itemTypes[NORMAL] = new ArtilleryShell("ammo_arty", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 10F, 3F, false); ExplosionCreator.composeEffect(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 10, 2F, 0.5F, 25F, 5, 0, 20, 0.75F, 1F, -2F, 150); }}; + this.itemTypes[CLASSIC] = new ArtilleryShell("ammo_arty_classic", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 5F, false); ExplosionCreator.composeEffect(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15, 5F, 1F, 45F, 10, 0, 50, 1F, 3F, -2F, 200); }}; + this.itemTypes[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 3F, true); ExplosionCreator.composeEffect(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 15, 5F, 1F, 45F, 10, 16, 50, 1F, 3F, -2F, 200); }}; /* MINI NUKE */ this.itemTypes[MINI_NUKE] = new ArtilleryShell("ammo_arty_mini_nuke", SpentCasing.COLOR_CASE_16INCH_NUKE) { From d360ebe6ccbb4dbefc5e444319cfec73b8a066c5 Mon Sep 17 00:00:00 2001 From: Night Heron Date: Thu, 15 May 2025 23:14:21 +0800 Subject: [PATCH 024/181] Add files via upload --- src/main/resources/assets/hbm/lang/zh_CN.lang | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 5d8f62943..3232fb3c9 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -6060,3 +6060,8 @@ item.ammo_standard.ct_mortar_charge.name=é‡åž‹ç‚¸è¯åŒ… item.gun_charge_thrower.name=ç‚¸è¯æŠ•æŽ·å™¨ tile.sandbags.name=沙袋 tile.wood_barrier.name=æœ¨åˆ¶å›´æ  +item.ammo_standard.nuke_balefire.name=Mini Nuke, Balefire Egg +item.gun_minigun_dual.name=åŒè”转管机枪 +tile.wood_structure.ceiling.name=木质顶棚 +tile.wood_structure.roof.name=æœ¨è´¨é¡¶æ¿ +tile.wood_structure.scaffold.name=木质脚手架 From f7baf332cbc568957fd4c7e40ecc17d48f973e8f Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 16 May 2025 14:46:12 +0200 Subject: [PATCH 025/181] even more flixes --- changelog | 6 +++++- .../java/com/hbm/config/ServerConfig.java | 2 ++ .../java/com/hbm/hazard/HazardSystem.java | 7 +++++-- src/main/java/com/hbm/main/MainRegistry.java | 4 ++-- .../java/com/hbm/main/ModEventHandler.java | 19 ++++++++++++------- .../network/TileEntityPneumoTube.java | 6 ++++++ 6 files changed, 32 insertions(+), 12 deletions(-) diff --git a/changelog b/changelog index c866d443b..38205883a 100644 --- a/changelog +++ b/changelog @@ -17,12 +17,16 @@ * New server configs * `CRATE_OPEN_HELD` can toggle whether crates can be opened when held * `CRATE_KEEP_CONTENTS` can toggle whether crates keep their contents when broken + * `ITEM_HAZARD_DROP_TICKRATE` can change the time between ticks for dropped item hazard checks (gunpowder, lithium), default is 2, lowest is 1 * Duds now have multiple variants * Dismantling different variants yields different drops * Magnetic extraction can no longer be performed +* `isItemBlacklisted` on the item hazard checks now employs caching instead of doing a full ore dictionary lookup for every single check, this should make it marginally more performant ## Fixed * Fixed RoR controller having the wrong recipe * Either fixed the crate dupe/voiding issues or made them even worse * Fixed skeletons and pedestals allowing blocks to be placed inside the player -* Fixed artillery shells not playing the explosion animation when directly impacting entities \ No newline at end of file +* Fixed artillery shells not playing the explosion animation when directly impacting entities +* Fixed bauxite and malachite vein toggles being on backwards +* Fixed penumatic tube order settings not saving \ No newline at end of file diff --git a/src/main/java/com/hbm/config/ServerConfig.java b/src/main/java/com/hbm/config/ServerConfig.java index b52910eca..0ca1ccdcf 100644 --- a/src/main/java/com/hbm/config/ServerConfig.java +++ b/src/main/java/com/hbm/config/ServerConfig.java @@ -19,6 +19,7 @@ public class ServerConfig extends RunningConfig { public static ConfigWrapper TAINT_TRAILS = new ConfigWrapper(false); public static ConfigWrapper CRATE_OPEN_HELD = new ConfigWrapper(true); public static ConfigWrapper CRATE_KEEP_CONTENTS = new ConfigWrapper(true); + public static ConfigWrapper ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2); private static void initDefaults() { configMap.put("DAMAGE_COMPATIBILITY_MODE", DAMAGE_COMPATIBILITY_MODE); @@ -30,6 +31,7 @@ public class ServerConfig extends RunningConfig { configMap.put("TAINT_TRAILS", TAINT_TRAILS); configMap.put("CRATE_OPEN_HELD", CRATE_OPEN_HELD); configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS); + configMap.put("ITEM_HAZARD_DROP_TICKRATE", ITEM_HAZARD_DROP_TICKRATE); } /** Initializes defaults, then reads the config file if it exists, then writes the config file. */ diff --git a/src/main/java/com/hbm/hazard/HazardSystem.java b/src/main/java/com/hbm/hazard/HazardSystem.java index 3df3590a7..07e59a7da 100644 --- a/src/main/java/com/hbm/hazard/HazardSystem.java +++ b/src/main/java/com/hbm/hazard/HazardSystem.java @@ -80,15 +80,18 @@ public class HazardSystem { public static boolean isItemBlacklisted(ItemStack stack) { - if(stackBlacklist.contains(new ComparableStack(stack).makeSingular())) + ComparableStack comp = new ComparableStack(stack).makeSingular(); + if(stackBlacklist.contains(comp)) return true; int[] ids = OreDictionary.getOreIDs(stack); for(int id : ids) { String name = OreDictionary.getOreName(id); - if(dictBlacklist.contains(name)) + if(dictBlacklist.contains(name)) { + stackBlacklist.add(comp); // caching! return true; + } } return false; diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 55eedd3df..95df82f43 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -890,8 +890,8 @@ public class MainRegistry { if(WorldConfig.enableSulfurCave) new OreCave(ModBlocks.stone_resource, 0).setThreshold(1.5D).setRangeMult(20).setYLevel(30).setMaxRange(20).withFluid(ModBlocks.sulfuric_acid_block); //sulfur if(WorldConfig.enableAsbestosCave) new OreCave(ModBlocks.stone_resource, 1).setThreshold(1.75D).setRangeMult(20).setYLevel(25).setMaxRange(20); //asbestos if(WorldConfig.enableHematite) new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()).setScaleH(0.04D).setScaleV(0.25D).setThreshold(230); - if(WorldConfig.enableMalachite) new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.BAUXITE.ordinal()).setScaleH(0.03D).setScaleV(0.15D).setThreshold(300); - if(WorldConfig.enableBauxite) new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()).setScaleH(0.1D).setScaleV(0.15D).setThreshold(275); + if(WorldConfig.enableBauxite) new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.BAUXITE.ordinal()).setScaleH(0.03D).setScaleV(0.15D).setThreshold(300); + if(WorldConfig.enableMalachite) new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()).setScaleH(0.1D).setScaleV(0.15D).setThreshold(275); //new BiomeCave().setThreshold(1.5D).setRangeMult(20).setYLevel(40).setMaxRange(20); //new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); BedrockOre.init(); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 8751c5ca7..2d27eadb8 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -8,6 +8,7 @@ import com.hbm.blocks.generic.BlockAshes; import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; import com.hbm.config.RadiationConfig; +import com.hbm.config.ServerConfig; import com.hbm.entity.mob.*; import com.hbm.entity.mob.ai.EntityAIFireGun; import com.hbm.entity.mob.EntityCreeperTainted; @@ -655,14 +656,18 @@ public class ModEventHandler { if(event.phase == Phase.END) { - List loadedEntityList = new ArrayList(); - loadedEntityList.addAll(event.world.loadedEntityList); // ConcurrentModificationException my balls + int tickrate = Math.max(1, ServerConfig.ITEM_HAZARD_DROP_TICKRATE.get()); - for(Object e : loadedEntityList) { - - if(e instanceof EntityItem) { - EntityItem item = (EntityItem) e; - HazardSystem.updateDroppedItem(item); + if(event.world.getTotalWorldTime() % tickrate == 0) { + List loadedEntityList = new ArrayList(); + loadedEntityList.addAll(event.world.loadedEntityList); // ConcurrentModificationException my balls + + for(Object e : loadedEntityList) { + + if(e instanceof EntityItem) { + EntityItem item = (EntityItem) e; + HazardSystem.updateDroppedItem(item); + } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java b/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java index cc7fd46ea..5336f61ab 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java @@ -227,6 +227,9 @@ public class TileEntityPneumoTube extends TileEntityMachineBase implements IGUIP this.compair.readFromNBT(nbt, "tank"); this.pattern.readFromNBT(nbt); + this.sendOrder = nbt.getByte("sendOrder"); + this.receiveOrder = nbt.getByte("receiveOrder"); + this.whitelist = nbt.getBoolean("whitelist"); this.redstone = nbt.getBoolean("redstone"); } @@ -239,6 +242,9 @@ public class TileEntityPneumoTube extends TileEntityMachineBase implements IGUIP this.compair.writeToNBT(nbt, "tank"); this.pattern.writeToNBT(nbt); + nbt.setByte("sendOrder", sendOrder); + nbt.setByte("receiveOrder", receiveOrder); + nbt.setBoolean("whitelist", whitelist); nbt.setBoolean("redstone", redstone); } From caf416a27d1cbb63029025c44aedd8db9e012d88 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 13 May 2025 00:35:35 +0300 Subject: [PATCH 026/181] Tool ability selector frontend --- .../java/com/hbm/handler/ToolAbility.java | 58 ++- .../inventory/gui/GUIScreenToolAbility.java | 339 ++++++++++++++++++ .../com/hbm/items/tool/ItemToolAbility.java | 28 +- .../textures/gui/tool/gui_tool_ability.png | Bin 0 -> 4053 bytes 4 files changed, 422 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java create mode 100644 src/main/resources/assets/hbm/textures/gui/tool/gui_tool_ability.png diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index bf9462a49..aab7757f9 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -33,7 +33,6 @@ import net.minecraft.world.World; public abstract class ToolAbility { - //how to potentially save this: cancel the event/operation so that ItemInWorldManager's harvest method falls short, then recreate it with a more sensible structure public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { return false; } public abstract String getName(); public abstract String getFullName(); @@ -205,6 +204,63 @@ public abstract class ToolAbility { } } + public static class HammerSilkAbility extends ToolAbility { + + int range; + + public HammerSilkAbility(int range) { + this.range = range; + } + + @Override + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + if(EnchantmentHelper.getSilkTouchModifier(player) || player.getHeldItem() == null) + return false; + + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1); + + for(int a = x - range; a <= x + range; a++) { + for(int b = y - range; b <= y + range; b++) { + for(int c = z - range; c <= z + range; c++) { + + if(a == x && b == y && c == z) + continue; + + tool.breakExtraBlock(world, a, b ,c, player, x, y, z); + } + } + } + if(player instanceof EntityPlayerMP) + IItemAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); + + EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); + + return false; + + } + + @Override + public String getName() { + return "tool.ability.hammersilk"; + } + + @Override + public String getFullName() { + return I18n.format(getName()) + getExtension(); + } + + @Override + public String getExtension() { + return " (" + range + ")"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityHammer; + } + } + public static class SilkAbility extends ToolAbility { @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java new file mode 100644 index 000000000..7980f72a5 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -0,0 +1,339 @@ +package com.hbm.inventory.gui; + +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; +import com.hbm.items.tool.ItemToolAbility; +import com.hbm.lib.RefStrings; +import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenToolAbility extends GuiScreen { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/tool/gui_tool_ability.png"); + + protected int guiLeft; + protected int guiTop; + protected int xSize; + protected int ySize; + protected int insetWidth; + + protected ItemToolAbility toolDef; + protected ItemStack toolStack; + + // TODO: Move elsewhere? + public static class AbilityInfo { + String name; + int textureU, textureV; + boolean hasLevels; + + public AbilityInfo(String name, int textureU, int textureV, boolean hasLevels) { + this.name = name; + this.textureU = textureU; + this.textureV = textureV; + this.hasLevels = hasLevels; + } + } + + public static final List abilitiesArea = new ArrayList<>(); + public static final List abilitiesHarvest = new ArrayList<>(); + + static { + abilitiesArea.add(new AbilityInfo(null, 0, 76, false)); + abilitiesArea.add(new AbilityInfo("tool.ability.recursion", 32, 76, false)); + abilitiesArea.add(new AbilityInfo("tool.ability.hammer", 64, 76, true)); + abilitiesArea.add(new AbilityInfo("tool.ability.explosion", 96, 76, true)); + + abilitiesHarvest.add(new AbilityInfo(null, 0, 92, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.silktouch", 32, 92, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.luck", 64, 92, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.smelter", 96, 92, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.shredder", 128, 92, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.centrifuge", 160, 92, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.crystallizer", 192, 92, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.mercury", 224, 92, false)); + } + + // TODO: availability status for abilities; list of presets; selected preset index; + // TODO: Remove this in favor of current preset + int selectionIdxArea = 0; + int selectedLevelArea = 0; + int selectionIdxHarvest = 0; + int selectedLevelHarvest = 0; + int selectedPreset = 0; + int totalPresets = 1; + + public GUIScreenToolAbility(ItemToolAbility toolDef) { + super(); + + this.toolDef = toolDef; + this.xSize = 186; // Note: increased dynamically + this.ySize = 76; + + this.insetWidth = 20 * Math.max(abilitiesArea.size() - 4, abilitiesHarvest.size() - 8); + this.xSize += insetWidth; + } + + @Override + public void initGui() { + this.toolStack = this.mc.thePlayer.getHeldItem(); + + if(this.toolStack == null) { + doClose(); + } + + guiLeft = (width - xSize) / 2; + guiTop = (height - ySize) / 2; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + + drawGuiContainerBackgroundLayer(mouseX, mouseY); + + if(!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && Mouse.next()) { + int scroll = Mouse.getEventDWheel() / 6; + + // TODO + selectedPreset = (selectedPreset + totalPresets + scroll) % totalPresets; + } + } + + protected void drawGuiContainerBackgroundLayer(int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + + // Draw window background + drawTexturedModalRect(guiLeft, guiTop, 0, 0, 100, ySize); + for (int i = 0; i < insetWidth; i += 20) { + drawTexturedModalRect(guiLeft + 100 + i, guiTop, 80, 0, 20, ySize); + } + drawTexturedModalRect(guiLeft + 100 + insetWidth, guiTop, 100, 0, xSize - insetWidth - 100, ySize); + + // Draw the switches + drawSwitches(abilitiesArea, selectionIdxArea, selectedLevelArea, guiLeft + 15, guiTop + 25, mouseX, mouseY); + drawSwitches(abilitiesHarvest, selectionIdxHarvest, selectedLevelHarvest, guiLeft + 15, guiTop + 45, mouseX, mouseY); + + // Draw preset indicator + drawNumber(selectedPreset + 1, guiLeft + insetWidth + 115, guiTop + 25); + drawNumber(totalPresets, guiLeft + insetWidth + 149, guiTop + 25); + + // Draw extra buttons hover highlights + int extraBtnsX = guiLeft + xSize - 75; + + for (int i = 0; i < 6; ++i) { + if (isInAABB(mouseX, mouseY, extraBtnsX + i * 11, guiTop + 11, 9, 9)) { + drawTexturedModalRect(extraBtnsX + i * 11, guiTop + 11, 186 + i * 9, 18, 9, 9); + } + } + } + + protected void drawSwitches(List abilities, int selectionIdx, int selectedLevel, int x, int y, int mouseX, int mouseY) { + for (int i = 0; i < abilities.size(); ++i) { + AbilityInfo abilityInfo = abilities.get(i); + boolean available = true; // TODO + + // Draw switch + drawTexturedModalRect(x + 20 * i, y, abilityInfo.textureU + (available ? 16 : 0), abilityInfo.textureV, 16, 16); + + // Draw level LEDs + if (abilityInfo.hasLevels) { + int level = 0; // TODO + + if (i == selectionIdx) { + level = selectedLevel + 1; + } + + drawTexturedModalRect(x + 20 * i + 17, y + 1, 222 + level * 2, 0, 2, 14); + } + + if (i == selectionIdx) { + // Draw selection highlight + drawTexturedModalRect(x + 20 * i - 1, y - 1, 186, 0, 18, 18); + } else if (available && isInAABB(mouseX, mouseY, x + 20 * i, y, 16, 16)) { + // Draw hover highlight + drawTexturedModalRect(x + 20 * i - 1, y - 1, 204, 0, 18, 18); + } + } + } + + protected void drawNumber(int number, int x, int y) { + number += 100; // Against accidental negatives + drawDigit((number / 10) % 10, x, y); + drawDigit(number % 10, x + 12, y); + } + + protected void drawDigit(int digit, int x, int y) { + drawTexturedModalRect(x, y, digit * 10, 108, 10, 15); + } + + private boolean isInAABB(int mouseX, int mouseY, int x, int y, int width, int height) { + return x <= mouseX && x + width > mouseX && y <= mouseY && y + height > mouseY; + } + + @Override + public void updateScreen() { + EntityPlayer player = this.mc.thePlayer; + + if(player.getHeldItem() == null || player.getHeldItem().getItem() != toolDef) + player.closeScreen(); + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int button) { + // TODO + boolean clicked = false; + + // TODO: Encapsulate? + for (int i = 0; i < abilitiesArea.size(); ++i) { + AbilityInfo abilityInfo = abilitiesArea.get(i); + boolean available = true; // TODO + + if (available && isInAABB(mouseX, mouseY, guiLeft + 15 + 20 * i, guiTop + 25, 16, 16)) { + if (abilityInfo.hasLevels) { + int availableLevels = 5; + + if (i == selectionIdxArea) { + selectedLevelArea = (selectedLevelArea + 1) % availableLevels; + } else { + selectedLevelArea = 0; + } + } + + selectionIdxArea = i; + clicked = true; + break; + } + } + + for (int i = 0; i < abilitiesHarvest.size(); ++i) { + AbilityInfo abilityInfo = abilitiesHarvest.get(i); + boolean available = true; // TODO + + if (available && isInAABB(mouseX, mouseY, guiLeft + 15 + 20 * i, guiTop + 45, 16, 16)) { + if (abilityInfo.hasLevels) { + int availableLevels = 5; + + if (i == selectionIdxArea) { + selectedLevelHarvest = (selectedLevelHarvest + 1) % availableLevels; + } else { + selectedLevelHarvest = 0; + } + } + + selectionIdxHarvest = i; + clicked = true; + break; + } + } + + if (clicked) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 1F)); + } + + // TODO + int extraBtnsX = guiLeft + xSize - 75; + + clicked = false; + + if (isInAABB(mouseX, mouseY, extraBtnsX + 0 * 11, guiTop + 11, 9, 9)) { + doDelPreset(); + clicked = true; + } + + if (isInAABB(mouseX, mouseY, extraBtnsX + 1 * 11, guiTop + 11, 9, 9)) { + doAddPreset(); + clicked = true; + } + + if (isInAABB(mouseX, mouseY, extraBtnsX + 2 * 11, guiTop + 11, 9, 9)) { + doZeroPreset(); + clicked = true; + } + + if (isInAABB(mouseX, mouseY, extraBtnsX + 3 * 11, guiTop + 11, 9, 9)) { + doNextPreset(); + clicked = true; + } + + if (isInAABB(mouseX, mouseY, extraBtnsX + 4 * 11, guiTop + 11, 9, 9)) { + doPrevPreset(); + clicked = true; + } + + if (isInAABB(mouseX, mouseY, extraBtnsX + 5 * 11, guiTop + 11, 9, 9)) { + doClose(); + clicked = true; + } + + if (clicked) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F)); + } + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + doClose(); + return; + } + + super.keyTyped(c, key); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + protected void doDelPreset() { + // TODO + if (totalPresets <= 1) { + return; + } + totalPresets -= 1; + selectedPreset -= 1; + } + + protected void doAddPreset() { + // TODO + totalPresets += 1; + selectedPreset += 1; + } + + protected void doZeroPreset() { + // TODO + selectedPreset = 0; + } + + protected void doNextPreset() { + // TODO + selectedPreset = (selectedPreset + 1) % totalPresets; + } + + protected void doPrevPreset() { + // TODO + selectedPreset = (selectedPreset + totalPresets - 1) % totalPresets; + } + + protected void doClose() { + this.mc.thePlayer.closeScreen(); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 99ce2d356..e0c8fd8a4 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -9,11 +9,15 @@ import java.util.Set; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; +import com.hbm.inventory.gui.GUIScreenToolAbility; +import com.hbm.handler.HbmKeybinds; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ToolAbility; import com.hbm.handler.ToolAbility.*; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.PlayerInformPacket; +import com.hbm.tileentity.IGUIProvider; import com.hbm.util.ChatBuilder; import com.hbm.handler.WeaponAbility; @@ -28,6 +32,7 @@ import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; +import net.minecraft.inventory.Container; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; @@ -35,7 +40,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRockTool { +public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRockTool, IGUIProvider { protected boolean isShears = false; protected EnumToolType toolType; @@ -228,7 +233,15 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if(world.isRemote || this.breakAbility.size() < 2 || !canOperate(stack)) + if(this.breakAbility.size() < 2 || !canOperate(stack)) + return super.onItemRightClick(stack, world, player); + + if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) { + if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + if(world.isRemote) return super.onItemRightClick(stack, world, player); int i = getAbility(stack); @@ -300,4 +313,15 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc public boolean isShears(ItemStack stack) { return this.isShears; } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIScreenToolAbility(this); + } } diff --git a/src/main/resources/assets/hbm/textures/gui/tool/gui_tool_ability.png b/src/main/resources/assets/hbm/textures/gui/tool/gui_tool_ability.png new file mode 100644 index 0000000000000000000000000000000000000000..5e53a867d0d9413790f32e433d6f0d090c3005fa GIT binary patch literal 4053 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 Date: Thu, 15 May 2025 01:30:10 +0300 Subject: [PATCH 027/181] Begin ability refactor, rewrite tool harvest abilities --- .../java/com/hbm/handler/ToolAbility.java | 36 +- .../java/com/hbm/handler/WeaponAbility.java | 65 +++- .../com/hbm/handler/ability/IBaseAbility.java | 27 ++ .../hbm/handler/ability/IToolAreaAbility.java | 14 + .../handler/ability/IToolHarvestAbility.java | 321 ++++++++++++++++++ .../hbm/handler/ability/IWeaponAbility.java | 12 + ...ItemAbility.java => IItemWithAbility.java} | 2 +- .../com/hbm/items/tool/ItemSwordAbility.java | 2 +- .../com/hbm/items/tool/ItemToolAbility.java | 2 +- .../textures/gui/tool/gui_tool_ability.png | Bin 4053 -> 4073 bytes 10 files changed, 450 insertions(+), 31 deletions(-) create mode 100644 src/main/java/com/hbm/handler/ability/IBaseAbility.java create mode 100644 src/main/java/com/hbm/handler/ability/IToolAreaAbility.java create mode 100644 src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java create mode 100644 src/main/java/com/hbm/handler/ability/IWeaponAbility.java rename src/main/java/com/hbm/items/tool/{IItemAbility.java => IItemWithAbility.java} (99%) diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index aab7757f9..e41813af1 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -15,7 +15,7 @@ import com.hbm.inventory.recipes.CrystallizerRecipes; import com.hbm.inventory.recipes.CrystallizerRecipes.CrystallizerRecipe; import com.hbm.inventory.recipes.ShredderRecipes; import com.hbm.items.ModItems; -import com.hbm.items.tool.IItemAbility; +import com.hbm.items.tool.IItemWithAbility; import com.hbm.util.EnchantmentUtil; import net.minecraft.block.Block; @@ -33,7 +33,7 @@ import net.minecraft.world.World; public abstract class ToolAbility { - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { return false; } + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { return false; } public abstract String getName(); public abstract String getFullName(); public abstract String getExtension(); @@ -50,7 +50,7 @@ public abstract class ToolAbility { private Set pos = new HashSet(); @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { Block b = world.getBlock(x, y, z); @@ -80,7 +80,7 @@ public abstract class ToolAbility { } } - private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemAbility tool, int depth) { + private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth) { List shuffledOffsets = new ArrayList<>(offsets); Collections.shuffle(shuffledOffsets); @@ -90,7 +90,7 @@ public abstract class ToolAbility { } } - private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemAbility tool, int depth) { + private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth) { if(pos.contains(new ThreeInts(x, y, z))) return; @@ -166,7 +166,7 @@ public abstract class ToolAbility { } @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { for(int a = x - range; a <= x + range; a++) { for(int b = y - range; b <= y + range; b++) { @@ -213,7 +213,7 @@ public abstract class ToolAbility { } @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { if(EnchantmentHelper.getSilkTouchModifier(player) || player.getHeldItem() == null) return false; @@ -232,7 +232,7 @@ public abstract class ToolAbility { } } if(player instanceof EntityPlayerMP) - IItemAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); + IItemWithAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); @@ -264,7 +264,7 @@ public abstract class ToolAbility { public static class SilkAbility extends ToolAbility { @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { if(EnchantmentHelper.getSilkTouchModifier(player) || player.getHeldItem() == null) return false; @@ -273,7 +273,7 @@ public abstract class ToolAbility { EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1); if(player instanceof EntityPlayerMP) - IItemAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); + IItemWithAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); @@ -310,7 +310,7 @@ public abstract class ToolAbility { } @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { if(EnchantmentHelper.getFortuneModifier(player) > 0 || player.getHeldItem() == null) return false; @@ -319,7 +319,7 @@ public abstract class ToolAbility { EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, luck); if(player instanceof EntityPlayerMP) - IItemAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); + IItemWithAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); @@ -350,7 +350,7 @@ public abstract class ToolAbility { public static class SmelterAbility extends ToolAbility { @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { List drops = block.getDrops(world, x, y, z, world.getBlockMetadata(x, y, z), 0); @@ -403,7 +403,7 @@ public abstract class ToolAbility { public static class ShredderAbility extends ToolAbility { @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { //a band-aid on a gaping wound if(block == Blocks.lit_redstone_ore) @@ -445,7 +445,7 @@ public abstract class ToolAbility { public static class CentrifugeAbility extends ToolAbility { @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { //a band-aid on a gaping wound if(block == Blocks.lit_redstone_ore) @@ -491,7 +491,7 @@ public abstract class ToolAbility { public static class CrystallizerAbility extends ToolAbility { @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { //a band-aid on a gaping wound if(block == Blocks.lit_redstone_ore) @@ -533,7 +533,7 @@ public abstract class ToolAbility { public static class MercuryAbility extends ToolAbility { @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { //a band-aid on a gaping wound if(block == Blocks.lit_redstone_ore) @@ -585,7 +585,7 @@ public abstract class ToolAbility { } @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemAbility tool) { + public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); ex.addAttrib(ExAttrib.ALLDROP); diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index 8529bb370..54f490b46 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -4,7 +4,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.handler.threading.PacketThreading; import com.hbm.items.ModItems; -import com.hbm.items.tool.IItemAbility; +import com.hbm.items.tool.IItemWithAbility; +import com.hbm.lib.ModDamageSource; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; @@ -38,7 +39,7 @@ import net.minecraft.world.World; public abstract class WeaponAbility { - public abstract void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool); + public abstract void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool); public abstract String getName(); public abstract String getFullName(); @@ -51,7 +52,7 @@ public abstract class WeaponAbility { } @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { + public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { if(victim instanceof EntityLivingBase) ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, rad); @@ -77,7 +78,7 @@ public abstract class WeaponAbility { } @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { + public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { if(victim instanceof EntityLivingBase) { @@ -109,7 +110,7 @@ public abstract class WeaponAbility { } @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { + public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { if(victim instanceof EntityLivingBase) { @@ -130,6 +131,50 @@ public abstract class WeaponAbility { return I18n.format(getName()) + " (" + duration + ")"; } } + + public static class BlendAbility extends WeaponAbility { + + int divider; + + public BlendAbility(int divider) { + this.divider = divider; + } + + @Override + public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + + if(victim instanceof EntityLivingBase) { + + EntityLivingBase living = (EntityLivingBase) victim; + + + if(living.getHealth() <= 0.0F) { + int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health + world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "mob.zombie.woodbreak", 0.5F, 1.0F); + victim.attackEntityFrom(ModDamageSource.turbofan, 100); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "giblets"); + data.setInteger("count", count * 4); + data.setInteger("ent", victim.getEntityId()); + data.setInteger("cDiv", 5); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, victim.posX, victim.posY + victim.height * 0.5, victim.posZ), new TargetPoint(victim.dimension, victim.posX, victim.posY + victim.height * 0.5, victim.posZ, 150)); + living.entityDropItem(new ItemStack(ModItems.flesh, 10, 0), 0.0F); + } + } + } + + + + @Override + public String getName() { + return "weapon.ability.blender"; + } + + @Override + public String getFullName() { + return I18n.format(getName()) + " (1:" + divider + ")"; + } + } public static class PhosphorusAbility extends WeaponAbility { @@ -140,7 +185,7 @@ public abstract class WeaponAbility { } @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { + public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { if(victim instanceof EntityLivingBase) { @@ -170,7 +215,7 @@ public abstract class WeaponAbility { } @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { + public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { if(victim instanceof EntityLivingBase) { victim.setFire(duration); @@ -197,7 +242,7 @@ public abstract class WeaponAbility { } @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { + public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { if(victim instanceof EntityLivingBase) { @@ -241,7 +286,7 @@ public abstract class WeaponAbility { public static class BeheaderAbility extends WeaponAbility { @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { + public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { if(victim instanceof EntityLivingBase && ((EntityLivingBase) victim).getHealth() <= 0.0F) { @@ -294,7 +339,7 @@ public abstract class WeaponAbility { public static class BobbleAbility extends WeaponAbility { @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { + public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) { diff --git a/src/main/java/com/hbm/handler/ability/IBaseAbility.java b/src/main/java/com/hbm/handler/ability/IBaseAbility.java new file mode 100644 index 000000000..c5811a4b1 --- /dev/null +++ b/src/main/java/com/hbm/handler/ability/IBaseAbility.java @@ -0,0 +1,27 @@ +package com.hbm.handler.ability; + +import net.minecraft.client.resources.I18n; + +public interface IBaseAbility { + String getName(); + + default String getExtension(int level) { + return ""; + } + + default String getFullName(int level) { + return I18n.format(getName()) + getExtension(level); + } + + default boolean isAllowed() { + return true; + } + + // 1 means no support for levels (i.e. the level is always 0). + // The UI only supports levels() between 1 and 10 (inclusive). + // All calls accepting an `int level` parameters must be done + // with a level between 0 and levels()-1 (inclusive). + default int levels() { + return 1; + } +} diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java new file mode 100644 index 000000000..2161e37f6 --- /dev/null +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -0,0 +1,14 @@ +package com.hbm.handler.ability; + +import com.hbm.items.tool.IItemWithAbility; +import com.jcraft.jorbis.Block; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public interface IToolAreaAbility extends IBaseAbility { + // Should call tool.breakExtraBlock on a bunch of blocks. + // The initial block is always implicitly broken and shouldn't be included. + // TODO: Explosion needs it not to be broken, as it bypasses the harvest ability + void onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool); +} diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java new file mode 100644 index 000000000..0138e406a --- /dev/null +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -0,0 +1,321 @@ +package com.hbm.handler.ability; + +import java.util.List; + +import com.hbm.config.ToolConfig; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.CentrifugeRecipes; +import com.hbm.inventory.recipes.CrystallizerRecipes; +import com.hbm.inventory.recipes.ShredderRecipes; +import com.hbm.inventory.recipes.CrystallizerRecipes.CrystallizerRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.tool.IItemWithAbility; +import com.hbm.util.EnchantmentUtil; + +import net.minecraft.block.Block; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.world.World; + +public interface IToolHarvestAbility extends IBaseAbility { + default void preHarvestAll(int level, World world, EntityPlayer player) {} + + default void postHarvestAll(int level, World world, EntityPlayer player) {} + + boolean skipDefaultDrops(int level); + + // Call IToolHarvestAbility.super.onHarvestBlock to emulate the actual block breaking + default void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + if (skipDefaultDrops(level)) { + // Emulate the block breaking without drops + world.setBlockToAir(x, y, z); + player.getHeldItem().damageItem(1, player); + } else if (player instanceof EntityPlayerMP) { + // Break the block conventionally + IItemWithAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); + } + } + + public static enum HarvestAbility { + None( + new IToolHarvestAbility() { + @Override + public String getName() { + // TODO: null? empty? otherwise i18n + return ""; + } + + @Override + public boolean skipDefaultDrops(int level) { + return false; + } + } + ), + + Silk(new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.silktouch"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilitySilk; + } + + @Override + public boolean skipDefaultDrops(int level) { + return false; + } + + @Override + public void preHarvestAll(int level, World world, EntityPlayer player) { + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1); + } + + @Override + public void postHarvestAll(int level, World world, EntityPlayer player) { + // ToC-ToU mismatch should be impossible + // because both calls happen on the same tick. + // Even if can be forced somehow, the player doesn't gain any benefit from it. + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); + } + }), + + Luck(new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.luck"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityLuck; + } + + final int[] powerAtLevel = {1, 2, 3, 4, 5, 9}; + + @Override + public int levels() { + return powerAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + powerAtLevel[level] + ")"; + } + + @Override + public boolean skipDefaultDrops(int level) { + return false; + } + + @Override + public void preHarvestAll(int level, World world, EntityPlayer player) { + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, powerAtLevel[level]); + } + + @Override + public void postHarvestAll(int level, World world, EntityPlayer player) { + // ToC-ToU mismatch should be impossible + // because both calls happen on the same tick. + // Even if can be forced somehow, the player doesn't gain any benefit from it. + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); + } + }), + + Smelter(new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.smelter"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityFurnace; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + List drops = block.getDrops(world, x, y, z, world.getBlockMetadata(x, y, z), 0); + + boolean doesSmelt = false; + + for(int i = 0; i < drops.size(); i++) { + ItemStack stack = drops.get(i).copy(); + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(stack); + + if(result != null) { + result = result.copy(); + result.stackSize *= stack.stackSize; + drops.set(i, result); + doesSmelt = true; + } + } + + if(doesSmelt) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + + for(ItemStack stack : drops) + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); + } + } + }), + + Shredder(new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.shredder"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityShredder; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + //a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + ItemStack stack = new ItemStack(block, 1, meta); + ItemStack result = ShredderRecipes.getShredderResult(stack); + + if(result != null && result.getItem() != ModItems.scrap) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); + } + } + }), + + Centrifuge(new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.centrifuge"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityCentrifuge; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + //a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + ItemStack stack = new ItemStack(block, 1, meta); + ItemStack[] result = CentrifugeRecipes.getOutput(stack); + + if(result != null) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + + for(ItemStack st : result) { + if(st != null) + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, st.copy())); + } + } + } + }), + + Crystallizer(new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.crystallizer"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityCrystallizer; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + //a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + ItemStack stack = new ItemStack(block, 1, meta); + CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.PEROXIDE); + + if(result != null) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.output.copy())); + } + } + }), + + Mercury(new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.mercury"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityMercury; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + //a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + int mercury = 0; + + if(block == Blocks.redstone_ore) + mercury = player.getRNG().nextInt(5) + 4; + if(block == Blocks.redstone_block) + mercury = player.getRNG().nextInt(7) + 8; + + if(mercury > 0) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury))); + } + } + }); + + public IToolHarvestAbility handler; + + HarvestAbility(IToolHarvestAbility handler) { + this.handler = handler; + } + } +} diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java new file mode 100644 index 000000000..cf293bbb0 --- /dev/null +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -0,0 +1,12 @@ +package com.hbm.handler.ability; + +import javax.swing.text.html.parser.Entity; + +import com.hbm.items.tool.IItemWithAbility; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public interface IWeaponAbility extends IBaseAbility { + void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool); +} diff --git a/src/main/java/com/hbm/items/tool/IItemAbility.java b/src/main/java/com/hbm/items/tool/IItemWithAbility.java similarity index 99% rename from src/main/java/com/hbm/items/tool/IItemAbility.java rename to src/main/java/com/hbm/items/tool/IItemWithAbility.java index 4096a2a6b..99d442fbb 100644 --- a/src/main/java/com/hbm/items/tool/IItemAbility.java +++ b/src/main/java/com/hbm/items/tool/IItemWithAbility.java @@ -22,7 +22,7 @@ import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.IShearable; import net.minecraftforge.event.world.BlockEvent; -public interface IItemAbility { +public interface IItemWithAbility { public boolean canHarvestBlock(Block par1Block, ItemStack itemStack); public boolean isShears(ItemStack stack); diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java index 5c8132c58..f54f47446 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java @@ -19,7 +19,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.util.EnumChatFormatting; -public class ItemSwordAbility extends ItemSword implements IItemAbility { +public class ItemSwordAbility extends ItemSword implements IItemWithAbility { private EnumRarity rarity = EnumRarity.common; // was there a reason for this to be private? diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index e0c8fd8a4..1dad676cf 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -40,7 +40,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRockTool, IGUIProvider { +public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDepthRockTool, IGUIProvider { protected boolean isShears = false; protected EnumToolType toolType; diff --git a/src/main/resources/assets/hbm/textures/gui/tool/gui_tool_ability.png b/src/main/resources/assets/hbm/textures/gui/tool/gui_tool_ability.png index 5e53a867d0d9413790f32e433d6f0d090c3005fa..38157a296cd8dc963d8e0bb794f70740328f067c 100644 GIT binary patch delta 3601 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 Date: Thu, 15 May 2025 01:59:35 +0300 Subject: [PATCH 028/181] Rewrite tool area abilities --- .../hbm/handler/ability/IToolAreaAbility.java | 256 +++++++++++++++++- .../handler/ability/IToolHarvestAbility.java | 4 +- 2 files changed, 255 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index 2161e37f6..f441433d5 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -1,14 +1,262 @@ package com.hbm.handler.ability; -import com.hbm.items.tool.IItemWithAbility; -import com.jcraft.jorbis.Block; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import com.hbm.config.ToolConfig; +import com.hbm.explosion.ExplosionNT; +import com.hbm.explosion.ExplosionNT.ExAttrib; +import com.hbm.handler.ThreeInts; +import com.hbm.inventory.OreDictManager; +import com.hbm.items.tool.IItemWithAbility; + +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; public interface IToolAreaAbility extends IBaseAbility { // Should call tool.breakExtraBlock on a bunch of blocks. // The initial block is always implicitly broken and shouldn't be included. - // TODO: Explosion needs it not to be broken, as it bypasses the harvest ability - void onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool); + // If true is returned, no block breaking is handled by the tool + // (neither for the original block nor for the extras) + boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool); + + public static enum AreaAbility { + // region handlers + None( + new IToolAreaAbility() { + @Override + public String getName() { + // TODO: null? empty? otherwise i18n + return ""; + } + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + return false; + } + } + ), + + Recursion(new IToolAreaAbility() { + @Override + public String getName() { + return "tool.ability.recursion"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityVein; + } + + public final int[] radiusAtLevel = {3, 4, 5, 6, 7, 9, 10}; + + @Override + public int levels() { + return radiusAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + radiusAtLevel[level] + ")"; + } + + // Note: if reusing it across different instatces of a tool + // is a problem here, then it had already been one before + // the refactor! The solution is to simply make this a local + // of the onDig method and pass it around as a parameter. + private Set pos = new HashSet<>(); + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + Block b = world.getBlock(x, y, z); + + if(!ToolConfig.recursiveStone) { + Item item = Item.getItemFromBlock(b); + List stone = OreDictionary.getOres(OreDictManager.KEY_STONE); + for(ItemStack stack : stone) { + if(stack.getItem() == item) + return false; + } + List cobble = OreDictionary.getOres(OreDictManager.KEY_COBBLESTONE); + for(ItemStack stack : cobble) { + if(stack.getItem() == item) + return false; + } + } + + if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) + return false; + + pos.clear(); + + recurse(world, x, y, z, x, y, z, player, tool, 0, radiusAtLevel[level]); + + return false; + } + + private final List offsets = new ArrayList(3*3*3-1) {{ + for (int dx = -1; dx <= 1; dx++) { + for (int dy = -1; dy <= 1; dy++) { + for (int dz = -1; dz <= 1; dz++) { + if (dx != 0 || dy != 0 || dz != 0) { + add(new ThreeInts(dx, dy, dz)); + } + } + } + } + }}; + + private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth, int radius) { + List shuffledOffsets = new ArrayList<>(offsets); + Collections.shuffle(shuffledOffsets); + + for(ThreeInts offset : shuffledOffsets) { + breakExtra(world, x + offset.x, y + offset.y, z + offset.z, refX, refY, refZ, player, tool, depth, radius); + } + } + + private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth, int radius) { + if(pos.contains(new ThreeInts(x, y, z))) + return; + + depth += 1; + + if(depth > ToolConfig.recursionDepth) + return; + + pos.add(new ThreeInts(x, y, z)); + + //don't lose the ref block just yet + if(x == refX && y == refY && z == refZ) + return; + + if(Vec3.createVectorHelper(x - refX, y - refY, z - refZ).lengthVector() > radius) + return; + + Block b = world.getBlock(x, y, z); + Block ref = world.getBlock(refX, refY, refZ); + int meta = world.getBlockMetadata(x, y, z); + int refMeta = world.getBlockMetadata(refX, refY, refZ); + + if(!isSameBlock(b, ref)) + return; + + if(meta != refMeta) + return; + + if(player.getHeldItem() == null) + return; + + tool.breakExtraBlock(world, x, y, z, player, refX, refY, refZ); + + recurse(world, x, y, z, refX, refY, refZ, player, tool, depth, radius); + } + + 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; + } + }), + + Hammer(new IToolAreaAbility() { + @Override + public String getName() { + return "tool.ability.hammer"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityHammer; + } + + public final int[] rangeAtLevel = {1, 2, 3, 4}; + + @Override + public int levels() { + return rangeAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + rangeAtLevel[level] + ")"; + } + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + int range = rangeAtLevel[level]; + + for(int a = x - range; a <= x + range; a++) { + for(int b = y - range; b <= y + range; b++) { + for(int c = z - range; c <= z + range; c++) { + + if(a == x && b == y && c == z) + continue; + + tool.breakExtraBlock(world, a, b ,c, player, x, y, z); + } + } + } + + return false; + } + }), + + Explosion(new IToolAreaAbility() { + @Override + public String getName() { + return "tool.ability.explosion"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityExplosion; + } + + public final float[] strengthAtLevel = {2.5F, 5F, 10F, 15F}; + + @Override + public int levels() { + return strengthAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + strengthAtLevel[level] + ")"; + } + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + float strength = strengthAtLevel[level]; + + ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); + ex.addAttrib(ExAttrib.ALLDROP); + ex.addAttrib(ExAttrib.NOHURT); + ex.addAttrib(ExAttrib.NOPARTICLE); + ex.doExplosionA(); + ex.doExplosionB(false); + + player.worldObj.createExplosion(player, x + 0.5, y + 0.5, z + 0.5, 0.1F, false); + + return true; + } + }); + // endregion handlers + + public IToolAreaAbility handler; + + AreaAbility(IToolAreaAbility handler) { + this.handler = handler; + } + }; } diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java index 0138e406a..32dd5f59f 100644 --- a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -42,6 +42,7 @@ public interface IToolHarvestAbility extends IBaseAbility { } public static enum HarvestAbility { + // region handlers None( new IToolHarvestAbility() { @Override @@ -100,7 +101,7 @@ public interface IToolHarvestAbility extends IBaseAbility { return ToolConfig.abilityLuck; } - final int[] powerAtLevel = {1, 2, 3, 4, 5, 9}; + public final int[] powerAtLevel = {1, 2, 3, 4, 5, 9}; @Override public int levels() { @@ -311,6 +312,7 @@ public interface IToolHarvestAbility extends IBaseAbility { } } }); + // endregion handlers public IToolHarvestAbility handler; From 61917ddc2f91efc9ffffa4da2580fa9323f9f394 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 15 May 2025 22:15:35 +0300 Subject: [PATCH 029/181] Refactor GUIScreenToolAbility to support tooltips --- .../inventory/gui/GUIScreenToolAbility.java | 55 ++++++++++-------- .../textures/gui/tool/gui_tool_ability.png | Bin 4073 -> 4131 bytes 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index 7980f72a5..7186cf0c0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -3,12 +3,9 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.List; -import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; -import com.hbm.items.ModItems; -import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; import com.hbm.items.tool.ItemToolAbility; import com.hbm.lib.RefStrings; import com.hbm.util.EnumUtil; @@ -17,11 +14,8 @@ import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemTool; import net.minecraft.util.ResourceLocation; public class GUIScreenToolAbility extends GuiScreen { @@ -55,19 +49,19 @@ public class GUIScreenToolAbility extends GuiScreen { public static final List abilitiesHarvest = new ArrayList<>(); static { - abilitiesArea.add(new AbilityInfo(null, 0, 76, false)); - abilitiesArea.add(new AbilityInfo("tool.ability.recursion", 32, 76, false)); - abilitiesArea.add(new AbilityInfo("tool.ability.hammer", 64, 76, true)); - abilitiesArea.add(new AbilityInfo("tool.ability.explosion", 96, 76, true)); + abilitiesArea.add(new AbilityInfo(null, 0, 91, false)); + abilitiesArea.add(new AbilityInfo("tool.ability.recursion", 32, 91, false)); + abilitiesArea.add(new AbilityInfo("tool.ability.hammer", 64, 91, true)); + abilitiesArea.add(new AbilityInfo("tool.ability.explosion", 96, 91, true)); - abilitiesHarvest.add(new AbilityInfo(null, 0, 92, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.silktouch", 32, 92, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.luck", 64, 92, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.smelter", 96, 92, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.shredder", 128, 92, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.centrifuge", 160, 92, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.crystallizer", 192, 92, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.mercury", 224, 92, false)); + abilitiesHarvest.add(new AbilityInfo(null, 0, 107, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.silktouch", 32, 107, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.luck", 64, 107, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.smelter", 96, 107, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.shredder", 128, 107, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.centrifuge", 160, 107, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.crystallizer", 192, 107, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.mercury", 224, 107, false)); } // TODO: availability status for abilities; list of presets; selected preset index; @@ -121,12 +115,8 @@ public class GUIScreenToolAbility extends GuiScreen { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); // Draw window background - drawTexturedModalRect(guiLeft, guiTop, 0, 0, 100, ySize); - for (int i = 0; i < insetWidth; i += 20) { - drawTexturedModalRect(guiLeft + 100 + i, guiTop, 80, 0, 20, ySize); - } - drawTexturedModalRect(guiLeft + 100 + insetWidth, guiTop, 100, 0, xSize - insetWidth - 100, ySize); - + drawStretchedRect(guiLeft, guiTop, 0, 0, xSize, xSize - insetWidth, ySize, 74, 76); + // Draw the switches drawSwitches(abilitiesArea, selectionIdxArea, selectedLevelArea, guiLeft + 15, guiTop + 25, mouseX, mouseY); drawSwitches(abilitiesHarvest, selectionIdxHarvest, selectedLevelHarvest, guiLeft + 15, guiTop + 45, mouseX, mouseY); @@ -143,9 +133,24 @@ public class GUIScreenToolAbility extends GuiScreen { drawTexturedModalRect(extraBtnsX + i * 11, guiTop + 11, 186 + i * 9, 18, 9, 9); } } + + // Draw tooltip + // TODO + } + + protected void drawStretchedRect(int x, int y, int u, int v, int realWidth, int width, int height, int keepLeft, int keepRight) { + int midWidth = width - keepLeft - keepRight; + int realMidWidth = realWidth - keepLeft - keepRight; + drawTexturedModalRect(x, y, u, v, keepLeft, height); + for (int i = 0; i < realMidWidth; i += midWidth) { + drawTexturedModalRect(x + keepLeft + i, y, u + keepLeft, v, Math.min(midWidth, realMidWidth - i), height); + } + drawTexturedModalRect(x + keepLeft + realMidWidth, y, u + keepLeft + midWidth, v, keepRight, height); } protected void drawSwitches(List abilities, int selectionIdx, int selectedLevel, int x, int y, int mouseX, int mouseY) { + // TODO: Store hovered ability, use it in click handling and the dynamic tooltip + for (int i = 0; i < abilities.size(); ++i) { AbilityInfo abilityInfo = abilities.get(i); boolean available = true; // TODO @@ -181,7 +186,7 @@ public class GUIScreenToolAbility extends GuiScreen { } protected void drawDigit(int digit, int x, int y) { - drawTexturedModalRect(x, y, digit * 10, 108, 10, 15); + drawTexturedModalRect(x, y, digit * 10, 123, 10, 15); } private boolean isInAABB(int mouseX, int mouseY, int x, int y, int width, int height) { diff --git a/src/main/resources/assets/hbm/textures/gui/tool/gui_tool_ability.png b/src/main/resources/assets/hbm/textures/gui/tool/gui_tool_ability.png index 38157a296cd8dc963d8e0bb794f70740328f067c..04e94e87826698d1ddda65718545601c72a63bb8 100644 GIT binary patch literal 4131 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 Y+%?sns|xME13Sgm%F&W|!SCkZ0a)dVX8-^I literal 4073 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 Date: Sat, 17 May 2025 01:56:45 +0300 Subject: [PATCH 030/181] Add tooltip to gui --- .../inventory/gui/GUIScreenToolAbility.java | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index 7186cf0c0..918bb6f5a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -50,13 +50,13 @@ public class GUIScreenToolAbility extends GuiScreen { static { abilitiesArea.add(new AbilityInfo(null, 0, 91, false)); - abilitiesArea.add(new AbilityInfo("tool.ability.recursion", 32, 91, false)); + abilitiesArea.add(new AbilityInfo("tool.ability.recursion", 32, 91, true)); abilitiesArea.add(new AbilityInfo("tool.ability.hammer", 64, 91, true)); abilitiesArea.add(new AbilityInfo("tool.ability.explosion", 96, 91, true)); abilitiesHarvest.add(new AbilityInfo(null, 0, 107, false)); abilitiesHarvest.add(new AbilityInfo("tool.ability.silktouch", 32, 107, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.luck", 64, 107, false)); + abilitiesHarvest.add(new AbilityInfo("tool.ability.luck", 64, 107, true)); abilitiesHarvest.add(new AbilityInfo("tool.ability.smelter", 96, 107, false)); abilitiesHarvest.add(new AbilityInfo("tool.ability.shredder", 128, 107, false)); abilitiesHarvest.add(new AbilityInfo("tool.ability.centrifuge", 160, 107, false)); @@ -72,6 +72,7 @@ public class GUIScreenToolAbility extends GuiScreen { int selectedLevelHarvest = 0; int selectedPreset = 0; int totalPresets = 1; + String selectedPresetName = "lorem ipsum"; public GUIScreenToolAbility(ItemToolAbility toolDef) { super(); @@ -101,13 +102,6 @@ public class GUIScreenToolAbility extends GuiScreen { this.drawDefaultBackground(); drawGuiContainerBackgroundLayer(mouseX, mouseY); - - if(!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && Mouse.next()) { - int scroll = Mouse.getEventDWheel() / 6; - - // TODO - selectedPreset = (selectedPreset + totalPresets + scroll) % totalPresets; - } } protected void drawGuiContainerBackgroundLayer(int mouseX, int mouseY) { @@ -135,7 +129,13 @@ public class GUIScreenToolAbility extends GuiScreen { } // Draw tooltip - // TODO + if (!"".equals(selectedPresetName)) { + int tooltipWidth = Math.max(6, fontRendererObj.getStringWidth(selectedPresetName)); + int tooltipX = guiLeft + xSize / 2 - tooltipWidth / 2; + int tooltipY = guiTop + ySize + 1 + 4; + drawStretchedRect(tooltipX - 5, tooltipY - 4, 0, 76, tooltipWidth + 10, 186, 15, 3, 3); + fontRendererObj.drawString(selectedPresetName, tooltipX, tooltipY, 0xffffffff); + } } protected void drawStretchedRect(int x, int y, int u, int v, int realWidth, int width, int height, int keepLeft, int keepRight) { @@ -201,6 +201,18 @@ public class GUIScreenToolAbility extends GuiScreen { player.closeScreen(); } + @Override + public void handleMouseInput() { + super.handleMouseInput(); + + if(Mouse.getEventButton() == -1) { + int scroll = Mouse.getEventDWheel(); + + if(scroll > 0 && selectedPreset > 0) selectedPreset -= 1; + if(scroll < 0 && selectedPreset < totalPresets) selectedPreset += 1; + } + } + @Override protected void mouseClicked(int mouseX, int mouseY, int button) { // TODO @@ -213,7 +225,7 @@ public class GUIScreenToolAbility extends GuiScreen { if (available && isInAABB(mouseX, mouseY, guiLeft + 15 + 20 * i, guiTop + 25, 16, 16)) { if (abilityInfo.hasLevels) { - int availableLevels = 5; + int availableLevels = 10; if (i == selectionIdxArea) { selectedLevelArea = (selectedLevelArea + 1) % availableLevels; @@ -234,9 +246,9 @@ public class GUIScreenToolAbility extends GuiScreen { if (available && isInAABB(mouseX, mouseY, guiLeft + 15 + 20 * i, guiTop + 45, 16, 16)) { if (abilityInfo.hasLevels) { - int availableLevels = 5; + int availableLevels = 11; - if (i == selectionIdxArea) { + if (i == selectionIdxHarvest) { selectedLevelHarvest = (selectedLevelHarvest + 1) % availableLevels; } else { selectedLevelHarvest = 0; @@ -250,7 +262,7 @@ public class GUIScreenToolAbility extends GuiScreen { } if (clicked) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 1F)); + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 2F)); } // TODO From 853b6576adf55cb9fb3ebe4ef4f9d1bb6ba2585d Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sat, 17 May 2025 12:17:26 +0300 Subject: [PATCH 031/181] Rewrite weapon abilities --- .../hbm/handler/ability/IToolAreaAbility.java | 24 +- .../handler/ability/IToolHarvestAbility.java | 6 +- .../hbm/handler/ability/IWeaponAbility.java | 351 +++++++++++++++++- 3 files changed, 362 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index f441433d5..6bd0dc47f 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -31,20 +31,18 @@ public interface IToolAreaAbility extends IBaseAbility { public static enum AreaAbility { // region handlers - None( - new IToolAreaAbility() { - @Override - public String getName() { - // TODO: null? empty? otherwise i18n - return ""; - } - - @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { - return false; - } + None(new IToolAreaAbility() { + @Override + public String getName() { + // TODO: null? empty? otherwise i18n + return ""; } - ), + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + return false; + } + }), Recursion(new IToolAreaAbility() { @Override diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java index 32dd5f59f..ea2a83805 100644 --- a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -43,8 +43,7 @@ public interface IToolHarvestAbility extends IBaseAbility { public static enum HarvestAbility { // region handlers - None( - new IToolHarvestAbility() { + None(new IToolHarvestAbility() { @Override public String getName() { // TODO: null? empty? otherwise i18n @@ -55,8 +54,7 @@ public interface IToolHarvestAbility extends IBaseAbility { public boolean skipDefaultDrops(int level) { return false; } - } - ), + }), Silk(new IToolHarvestAbility() { @Override diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java index cf293bbb0..f9083820f 100644 --- a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -1,12 +1,359 @@ package com.hbm.handler.ability; -import javax.swing.text.html.parser.Entity; - +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockBobble.BobbleType; +import com.hbm.handler.threading.PacketThreading; +import com.hbm.items.ModItems; import com.hbm.items.tool.IItemWithAbility; +import com.hbm.lib.ModDamageSource; +import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.potion.HbmPotion; +import com.hbm.util.ContaminationUtil; +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.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.entity.monster.EntityMagmaCube; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.entity.monster.EntitySlime; +import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; import net.minecraft.world.World; public interface IWeaponAbility extends IBaseAbility { void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool); + + public static enum WeaponAbility { + // region handlers + None(new IWeaponAbility() { + @Override + public String getName() { + // TODO: null? empty? otherwise i18n + return ""; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) {} + }), + + Radiation(new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.radiation"; + } + + public final float[] radAtLevel = {15F, 50F, 500F}; + + @Override + public int levels() { + return radAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + radAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + if(victim instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, radAtLevel[level]); + } + }), + + Vampire(new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.vampire"; + } + + public final float[] amountAtLevel = {2F, 3F, 5F, 10F, 50F}; + + @Override + public int levels() { + return amountAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + amountAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + float amount = amountAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + if(living.getHealth() <= 0) return; + living.setHealth(living.getHealth() - amount); + if(living.getHealth() <= 0) living.onDeath(DamageSource.magic); + player.heal(amount); + } + } + }), + + Stun(new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.stun"; + } + + public final int[] durationAtLevel = {2, 3, 5, 10, 15}; + + @Override + public int levels() { + return durationAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + durationAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + int duration = durationAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + + living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, duration * 20, 4)); + living.addPotionEffect(new PotionEffect(Potion.weakness.id, duration * 20, 4)); + } + } + }), + + Blend(new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.blender"; + } + + public final int[] dividerAtLevel = {12}; + + @Override + public int levels() { + return dividerAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (1:" + dividerAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + int divider = dividerAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + + if(living.getHealth() <= 0.0F) { + int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health + world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "mob.zombie.woodbreak", 0.5F, 1.0F); + victim.attackEntityFrom(ModDamageSource.turbofan, 100); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "giblets"); + data.setInteger("count", count * 4); + data.setInteger("ent", victim.getEntityId()); + data.setInteger("cDiv", 5); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, victim.posX, victim.posY + victim.height * 0.5, victim.posZ), new TargetPoint(victim.dimension, victim.posX, victim.posY + victim.height * 0.5, victim.posZ, 150)); + living.entityDropItem(new ItemStack(ModItems.flesh, 10, 0), 0.0F); + } + } + } + }), + + Phosphorus(new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.phosphorus"; + } + + public final int[] durationAtLevel = {60, 90}; + + @Override + public int levels() { + return durationAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + durationAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + int duration = durationAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + + living.addPotionEffect(new PotionEffect(HbmPotion.phosphorus.id, duration * 20, 4)); + } + } + }), + + Fire(new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.fire"; + } + + public final int[] durationAtLevel = {5, 10}; + + @Override + public int levels() { + return durationAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + durationAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + if(victim instanceof EntityLivingBase) { + victim.setFire(durationAtLevel[level]); + } + } + }), + + Chainsaw(new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.chainsaw"; + } + + public final int[] dividerAtLevel = {10, 15}; + + @Override + public int levels() { + return dividerAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (1:" + dividerAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + int divider = dividerAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + + if(living.getHealth() <= 0.0F) { + int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health + + for(int i = 0; i < count; i++) { + living.entityDropItem(new ItemStack(ModItems.nitra_small), 1); + world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); + } + + if(player instanceof EntityPlayerMP) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setInteger("count", count * 4); + data.setDouble("motion", 0.1D); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, living.posX, living.posY + living.height * 0.5, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); + } + + world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "hbm:weapon.chainsaw", 0.5F, 1.0F); + } + } + } + }), + + Beheader(new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.beheader"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + if(victim instanceof EntityLivingBase && ((EntityLivingBase) victim).getHealth() <= 0.0F) { + EntityLivingBase living = (EntityLivingBase) victim; + + if(living instanceof EntitySkeleton) { + if(((EntitySkeleton)living).getSkeletonType() == 0) { + living.entityDropItem(new ItemStack(Items.skull, 1, 0), 0.0F); + } else { + if(world.rand.nextInt(20) == 0) + living.entityDropItem(new ItemStack(Items.skull, 1, 1), 0.0F); + else + living.entityDropItem(new ItemStack(Items.coal, 3), 0.0F); + } + } else if(living instanceof EntityZombie) { + living.entityDropItem(new ItemStack(Items.skull, 1, 2), 0.0F); + } else if(living instanceof EntityCreeper) { + living.entityDropItem(new ItemStack(Items.skull, 1, 4), 0.0F); + } else if(living instanceof EntityMagmaCube) { + living.entityDropItem(new ItemStack(Items.magma_cream, 3), 0.0F); + } else if(living instanceof EntitySlime) { + living.entityDropItem(new ItemStack(Items.slime_ball, 3), 0.0F); + } else if(living instanceof EntityPlayer) { + ItemStack head = new ItemStack(Items.skull, 1, 3); + head.stackTagCompound = new NBTTagCompound(); + head.stackTagCompound.setString("SkullOwner", ((EntityPlayer) living).getDisplayName()); + living.entityDropItem(head, 0.0F); + } else { + living.entityDropItem(new ItemStack(Items.rotten_flesh, 3, 0), 0.0F); + living.entityDropItem(new ItemStack(Items.bone, 2, 0), 0.0F); + } + } + } + }), + + Bobble(new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.bobble"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) { + EntityMob mob = (EntityMob) victim; + + int chance = 1000; + + if(mob.getMaxHealth() > 20) { + chance = 750; + } + + if(world.rand.nextInt(chance) == 0) + mob.entityDropItem(new ItemStack(ModBlocks.bobblehead, 1, world.rand.nextInt(BobbleType.values().length - 1) + 1), 0.0F); + } + } + }); + // endregion handlers + + public IWeaponAbility handler; + + WeaponAbility(IWeaponAbility handler) { + this.handler = handler; + } + } } From e59f8b441deacaaa590566924096a0fb61d9ff78 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sat, 17 May 2025 12:47:09 +0300 Subject: [PATCH 032/181] Implement ability presets --- .../handler/ability/AvailableAbilities.java | 32 + .../hbm/handler/ability/IToolAreaAbility.java | 446 ++++++------- .../handler/ability/IToolHarvestAbility.java | 544 ++++++++------- .../hbm/handler/ability/IWeaponAbility.java | 630 +++++++++--------- .../com/hbm/handler/ability/ToolPreset.java | 38 ++ 5 files changed, 868 insertions(+), 822 deletions(-) create mode 100644 src/main/java/com/hbm/handler/ability/AvailableAbilities.java create mode 100644 src/main/java/com/hbm/handler/ability/ToolPreset.java diff --git a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java new file mode 100644 index 000000000..776f01c64 --- /dev/null +++ b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java @@ -0,0 +1,32 @@ +package com.hbm.handler.ability; + +import java.util.HashMap; + +// All abilities available on a given tool +public class AvailableAbilities { + private HashMap abilities = new HashMap(); + + AvailableAbilities() {} + + AvailableAbilities addAbility(IBaseAbility ability, int level) { + if (level < 0 || level >= ability.levels()) { + throw new IllegalArgumentException("Illegal level " + level + " for ability " + ability.getName()); + } + + abilities.put(ability, level); + return this; + } + + AvailableAbilities removeAbility(IBaseAbility ability) { + abilities.remove(ability); + return this; + } + + boolean supportsAbility(IBaseAbility ability) { + return abilities.containsKey(ability); + } + + int maxLevel(IBaseAbility ability) { + return abilities.getOrDefault(ability, -1); + } +} diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index 6bd0dc47f..0e5907870 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -28,233 +28,225 @@ public interface IToolAreaAbility extends IBaseAbility { // If true is returned, no block breaking is handled by the tool // (neither for the original block nor for the extras) boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool); - - public static enum AreaAbility { - // region handlers - None(new IToolAreaAbility() { - @Override - public String getName() { - // TODO: null? empty? otherwise i18n - return ""; - } - - @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { - return false; - } - }), - - Recursion(new IToolAreaAbility() { - @Override - public String getName() { - return "tool.ability.recursion"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityVein; - } - - public final int[] radiusAtLevel = {3, 4, 5, 6, 7, 9, 10}; - - @Override - public int levels() { - return radiusAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (" + radiusAtLevel[level] + ")"; - } - - // Note: if reusing it across different instatces of a tool - // is a problem here, then it had already been one before - // the refactor! The solution is to simply make this a local - // of the onDig method and pass it around as a parameter. - private Set pos = new HashSet<>(); - - @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { - Block b = world.getBlock(x, y, z); - - if(!ToolConfig.recursiveStone) { - Item item = Item.getItemFromBlock(b); - List stone = OreDictionary.getOres(OreDictManager.KEY_STONE); - for(ItemStack stack : stone) { - if(stack.getItem() == item) - return false; - } - List cobble = OreDictionary.getOres(OreDictManager.KEY_COBBLESTONE); - for(ItemStack stack : cobble) { - if(stack.getItem() == item) - return false; - } - } - - if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) - return false; - - pos.clear(); - - recurse(world, x, y, z, x, y, z, player, tool, 0, radiusAtLevel[level]); - - return false; - } - - private final List offsets = new ArrayList(3*3*3-1) {{ - for (int dx = -1; dx <= 1; dx++) { - for (int dy = -1; dy <= 1; dy++) { - for (int dz = -1; dz <= 1; dz++) { - if (dx != 0 || dy != 0 || dz != 0) { - add(new ThreeInts(dx, dy, dz)); - } - } - } - } - }}; - - private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth, int radius) { - List shuffledOffsets = new ArrayList<>(offsets); - Collections.shuffle(shuffledOffsets); - - for(ThreeInts offset : shuffledOffsets) { - breakExtra(world, x + offset.x, y + offset.y, z + offset.z, refX, refY, refZ, player, tool, depth, radius); - } - } - - private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth, int radius) { - if(pos.contains(new ThreeInts(x, y, z))) - return; - - depth += 1; - - if(depth > ToolConfig.recursionDepth) - return; - - pos.add(new ThreeInts(x, y, z)); - - //don't lose the ref block just yet - if(x == refX && y == refY && z == refZ) - return; - - if(Vec3.createVectorHelper(x - refX, y - refY, z - refZ).lengthVector() > radius) - return; - - Block b = world.getBlock(x, y, z); - Block ref = world.getBlock(refX, refY, refZ); - int meta = world.getBlockMetadata(x, y, z); - int refMeta = world.getBlockMetadata(refX, refY, refZ); - - if(!isSameBlock(b, ref)) - return; - - if(meta != refMeta) - return; - - if(player.getHeldItem() == null) - return; - - tool.breakExtraBlock(world, x, y, z, player, refX, refY, refZ); - - recurse(world, x, y, z, refX, refY, refZ, player, tool, depth, radius); - } - - 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; - } - }), - - Hammer(new IToolAreaAbility() { - @Override - public String getName() { - return "tool.ability.hammer"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityHammer; - } - - public final int[] rangeAtLevel = {1, 2, 3, 4}; - - @Override - public int levels() { - return rangeAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (" + rangeAtLevel[level] + ")"; - } - - @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { - int range = rangeAtLevel[level]; - - for(int a = x - range; a <= x + range; a++) { - for(int b = y - range; b <= y + range; b++) { - for(int c = z - range; c <= z + range; c++) { - - if(a == x && b == y && c == z) - continue; - - tool.breakExtraBlock(world, a, b ,c, player, x, y, z); - } - } - } - - return false; - } - }), - - Explosion(new IToolAreaAbility() { - @Override - public String getName() { - return "tool.ability.explosion"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityExplosion; - } - - public final float[] strengthAtLevel = {2.5F, 5F, 10F, 15F}; - - @Override - public int levels() { - return strengthAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (" + strengthAtLevel[level] + ")"; - } - - @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { - float strength = strengthAtLevel[level]; - - ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); - ex.addAttrib(ExAttrib.ALLDROP); - ex.addAttrib(ExAttrib.NOHURT); - ex.addAttrib(ExAttrib.NOPARTICLE); - ex.doExplosionA(); - ex.doExplosionB(false); - - player.worldObj.createExplosion(player, x + 0.5, y + 0.5, z + 0.5, 0.1F, false); - - return true; - } - }); - // endregion handlers - - public IToolAreaAbility handler; - - AreaAbility(IToolAreaAbility handler) { - this.handler = handler; + + // region handlers + public static final IToolAreaAbility NONE = new IToolAreaAbility() { + @Override + public String getName() { + // TODO: null? empty? otherwise i18n + return ""; + } + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + return false; } }; + + public static final IToolAreaAbility RECURSION = new IToolAreaAbility() { + @Override + public String getName() { + return "tool.ability.recursion"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityVein; + } + + public final int[] radiusAtLevel = {3, 4, 5, 6, 7, 9, 10}; + + @Override + public int levels() { + return radiusAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + radiusAtLevel[level] + ")"; + } + + // Note: if reusing it across different instatces of a tool + // is a problem here, then it had already been one before + // the refactor! The solution is to simply make this a local + // of the onDig method and pass it around as a parameter. + private Set pos = new HashSet<>(); + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + Block b = world.getBlock(x, y, z); + + if(!ToolConfig.recursiveStone) { + Item item = Item.getItemFromBlock(b); + List stone = OreDictionary.getOres(OreDictManager.KEY_STONE); + for(ItemStack stack : stone) { + if(stack.getItem() == item) + return false; + } + List cobble = OreDictionary.getOres(OreDictManager.KEY_COBBLESTONE); + for(ItemStack stack : cobble) { + if(stack.getItem() == item) + return false; + } + } + + if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) + return false; + + pos.clear(); + + recurse(world, x, y, z, x, y, z, player, tool, 0, radiusAtLevel[level]); + + return false; + } + + private final List offsets = new ArrayList(3*3*3-1) {{ + for (int dx = -1; dx <= 1; dx++) { + for (int dy = -1; dy <= 1; dy++) { + for (int dz = -1; dz <= 1; dz++) { + if (dx != 0 || dy != 0 || dz != 0) { + add(new ThreeInts(dx, dy, dz)); + } + } + } + } + }}; + + private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth, int radius) { + List shuffledOffsets = new ArrayList<>(offsets); + Collections.shuffle(shuffledOffsets); + + for(ThreeInts offset : shuffledOffsets) { + breakExtra(world, x + offset.x, y + offset.y, z + offset.z, refX, refY, refZ, player, tool, depth, radius); + } + } + + private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth, int radius) { + if(pos.contains(new ThreeInts(x, y, z))) + return; + + depth += 1; + + if(depth > ToolConfig.recursionDepth) + return; + + pos.add(new ThreeInts(x, y, z)); + + //don't lose the ref block just yet + if(x == refX && y == refY && z == refZ) + return; + + if(Vec3.createVectorHelper(x - refX, y - refY, z - refZ).lengthVector() > radius) + return; + + Block b = world.getBlock(x, y, z); + Block ref = world.getBlock(refX, refY, refZ); + int meta = world.getBlockMetadata(x, y, z); + int refMeta = world.getBlockMetadata(refX, refY, refZ); + + if(!isSameBlock(b, ref)) + return; + + if(meta != refMeta) + return; + + if(player.getHeldItem() == null) + return; + + tool.breakExtraBlock(world, x, y, z, player, refX, refY, refZ); + + recurse(world, x, y, z, refX, refY, refZ, player, tool, depth, radius); + } + + 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; + } + }; + + public static final IToolAreaAbility HAMMER = new IToolAreaAbility() { + @Override + public String getName() { + return "tool.ability.hammer"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityHammer; + } + + public final int[] rangeAtLevel = {1, 2, 3, 4}; + + @Override + public int levels() { + return rangeAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + rangeAtLevel[level] + ")"; + } + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + int range = rangeAtLevel[level]; + + for(int a = x - range; a <= x + range; a++) { + for(int b = y - range; b <= y + range; b++) { + for(int c = z - range; c <= z + range; c++) { + + if(a == x && b == y && c == z) + continue; + + tool.breakExtraBlock(world, a, b ,c, player, x, y, z); + } + } + } + + return false; + } + }; + + public static final IToolAreaAbility EXPLOSION = new IToolAreaAbility() { + @Override + public String getName() { + return "tool.ability.explosion"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityExplosion; + } + + public final float[] strengthAtLevel = {2.5F, 5F, 10F, 15F}; + + @Override + public int levels() { + return strengthAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + strengthAtLevel[level] + ")"; + } + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + float strength = strengthAtLevel[level]; + + ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); + ex.addAttrib(ExAttrib.ALLDROP); + ex.addAttrib(ExAttrib.NOHURT); + ex.addAttrib(ExAttrib.NOPARTICLE); + ex.doExplosionA(); + ex.doExplosionB(false); + + player.worldObj.createExplosion(player, x + 0.5, y + 0.5, z + 0.5, 0.1F, false); + + return true; + } + }; + // endregion handlers } diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java index ea2a83805..f70761457 100644 --- a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -41,281 +41,273 @@ public interface IToolHarvestAbility extends IBaseAbility { } } - public static enum HarvestAbility { - // region handlers - None(new IToolHarvestAbility() { - @Override - public String getName() { - // TODO: null? empty? otherwise i18n - return ""; - } - - @Override - public boolean skipDefaultDrops(int level) { - return false; - } - }), - - Silk(new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.silktouch"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilitySilk; - } - - @Override - public boolean skipDefaultDrops(int level) { - return false; - } - - @Override - public void preHarvestAll(int level, World world, EntityPlayer player) { - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1); - } - - @Override - public void postHarvestAll(int level, World world, EntityPlayer player) { - // ToC-ToU mismatch should be impossible - // because both calls happen on the same tick. - // Even if can be forced somehow, the player doesn't gain any benefit from it. - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); - } - }), - - Luck(new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.luck"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityLuck; - } - - public final int[] powerAtLevel = {1, 2, 3, 4, 5, 9}; - - @Override - public int levels() { - return powerAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (" + powerAtLevel[level] + ")"; - } - - @Override - public boolean skipDefaultDrops(int level) { - return false; - } - - @Override - public void preHarvestAll(int level, World world, EntityPlayer player) { - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, powerAtLevel[level]); - } - - @Override - public void postHarvestAll(int level, World world, EntityPlayer player) { - // ToC-ToU mismatch should be impossible - // because both calls happen on the same tick. - // Even if can be forced somehow, the player doesn't gain any benefit from it. - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); - } - }), - - Smelter(new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.smelter"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityFurnace; - } - - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - List drops = block.getDrops(world, x, y, z, world.getBlockMetadata(x, y, z), 0); - - boolean doesSmelt = false; - - for(int i = 0; i < drops.size(); i++) { - ItemStack stack = drops.get(i).copy(); - ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(stack); - - if(result != null) { - result = result.copy(); - result.stackSize *= stack.stackSize; - drops.set(i, result); - doesSmelt = true; - } - } - - if(doesSmelt) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); - - for(ItemStack stack : drops) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); - } - } - }), - - Shredder(new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.shredder"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityShredder; - } - - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - ItemStack stack = new ItemStack(block, 1, meta); - ItemStack result = ShredderRecipes.getShredderResult(stack); - - if(result != null && result.getItem() != ModItems.scrap) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); - } - } - }), - - Centrifuge(new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.centrifuge"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityCentrifuge; - } - - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - ItemStack stack = new ItemStack(block, 1, meta); - ItemStack[] result = CentrifugeRecipes.getOutput(stack); - - if(result != null) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); - - for(ItemStack st : result) { - if(st != null) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, st.copy())); - } - } - } - }), - - Crystallizer(new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.crystallizer"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityCrystallizer; - } - - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - ItemStack stack = new ItemStack(block, 1, meta); - CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.PEROXIDE); - - if(result != null) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.output.copy())); - } - } - }), - - Mercury(new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.mercury"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityMercury; - } - - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - int mercury = 0; - - if(block == Blocks.redstone_ore) - mercury = player.getRNG().nextInt(5) + 4; - if(block == Blocks.redstone_block) - mercury = player.getRNG().nextInt(7) + 8; - - if(mercury > 0) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury))); - } - } - }); - // endregion handlers - - public IToolHarvestAbility handler; - - HarvestAbility(IToolHarvestAbility handler) { - this.handler = handler; + // region handlers + public static final IToolHarvestAbility NONE = new IToolHarvestAbility() { + @Override + public String getName() { + // TODO: null? empty? otherwise i18n + return ""; } - } + + @Override + public boolean skipDefaultDrops(int level) { + return false; + } + }; + + public static final IToolHarvestAbility SILK = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.silktouch"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilitySilk; + } + + @Override + public boolean skipDefaultDrops(int level) { + return false; + } + + @Override + public void preHarvestAll(int level, World world, EntityPlayer player) { + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1); + } + + @Override + public void postHarvestAll(int level, World world, EntityPlayer player) { + // ToC-ToU mismatch should be impossible + // because both calls happen on the same tick. + // Even if can be forced somehow, the player doesn't gain any benefit from it. + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); + } + }; + + public static final IToolHarvestAbility LUCK = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.luck"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityLuck; + } + + public final int[] powerAtLevel = {1, 2, 3, 4, 5, 9}; + + @Override + public int levels() { + return powerAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + powerAtLevel[level] + ")"; + } + + @Override + public boolean skipDefaultDrops(int level) { + return false; + } + + @Override + public void preHarvestAll(int level, World world, EntityPlayer player) { + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, powerAtLevel[level]); + } + + @Override + public void postHarvestAll(int level, World world, EntityPlayer player) { + // ToC-ToU mismatch should be impossible + // because both calls happen on the same tick. + // Even if can be forced somehow, the player doesn't gain any benefit from it. + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); + } + }; + + public static final IToolHarvestAbility SMELTER = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.smelter"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityFurnace; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + List drops = block.getDrops(world, x, y, z, world.getBlockMetadata(x, y, z), 0); + + boolean doesSmelt = false; + + for(int i = 0; i < drops.size(); i++) { + ItemStack stack = drops.get(i).copy(); + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(stack); + + if(result != null) { + result = result.copy(); + result.stackSize *= stack.stackSize; + drops.set(i, result); + doesSmelt = true; + } + } + + if(doesSmelt) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + + for(ItemStack stack : drops) + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); + } + } + }; + + public static final IToolHarvestAbility SHREDDER = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.shredder"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityShredder; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + //a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + ItemStack stack = new ItemStack(block, 1, meta); + ItemStack result = ShredderRecipes.getShredderResult(stack); + + if(result != null && result.getItem() != ModItems.scrap) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); + } + } + }; + + public static final IToolHarvestAbility CENTRIFUGE = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.centrifuge"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityCentrifuge; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + //a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + ItemStack stack = new ItemStack(block, 1, meta); + ItemStack[] result = CentrifugeRecipes.getOutput(stack); + + if(result != null) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + + for(ItemStack st : result) { + if(st != null) + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, st.copy())); + } + } + } + }; + + public static final IToolHarvestAbility CRYSTALLIZER = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.crystallizer"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityCrystallizer; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + //a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + ItemStack stack = new ItemStack(block, 1, meta); + CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.PEROXIDE); + + if(result != null) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.output.copy())); + } + } + }; + + public static final IToolHarvestAbility MERCURY = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.mercury"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityMercury; + } + + @Override + public boolean skipDefaultDrops(int level) { + return true; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + //a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + int mercury = 0; + + if(block == Blocks.redstone_ore) + mercury = player.getRNG().nextInt(5) + 4; + if(block == Blocks.redstone_block) + mercury = player.getRNG().nextInt(7) + 8; + + if(mercury > 0) { + IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury))); + } + } + }; + // endregion handlers } diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java index f9083820f..1b6c95f40 100644 --- a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -36,324 +36,316 @@ import net.minecraft.world.World; public interface IWeaponAbility extends IBaseAbility { void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool); - - public static enum WeaponAbility { - // region handlers - None(new IWeaponAbility() { - @Override - public String getName() { - // TODO: null? empty? otherwise i18n - return ""; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) {} - }), - - Radiation(new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.radiation"; - } - - public final float[] radAtLevel = {15F, 50F, 500F}; - - @Override - public int levels() { - return radAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (" + radAtLevel[level] + ")"; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - if(victim instanceof EntityLivingBase) - ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, radAtLevel[level]); - } - }), - - Vampire(new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.vampire"; - } - - public final float[] amountAtLevel = {2F, 3F, 5F, 10F, 50F}; - - @Override - public int levels() { - return amountAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (" + amountAtLevel[level] + ")"; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - float amount = amountAtLevel[level]; - - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - if(living.getHealth() <= 0) return; - living.setHealth(living.getHealth() - amount); - if(living.getHealth() <= 0) living.onDeath(DamageSource.magic); - player.heal(amount); - } - } - }), - - Stun(new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.stun"; - } - - public final int[] durationAtLevel = {2, 3, 5, 10, 15}; - - @Override - public int levels() { - return durationAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (" + durationAtLevel[level] + ")"; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - int duration = durationAtLevel[level]; - - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - - living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, duration * 20, 4)); - living.addPotionEffect(new PotionEffect(Potion.weakness.id, duration * 20, 4)); - } - } - }), - - Blend(new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.blender"; - } - - public final int[] dividerAtLevel = {12}; - - @Override - public int levels() { - return dividerAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (1:" + dividerAtLevel[level] + ")"; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - int divider = dividerAtLevel[level]; - - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - - if(living.getHealth() <= 0.0F) { - int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health - world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "mob.zombie.woodbreak", 0.5F, 1.0F); - victim.attackEntityFrom(ModDamageSource.turbofan, 100); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "giblets"); - data.setInteger("count", count * 4); - data.setInteger("ent", victim.getEntityId()); - data.setInteger("cDiv", 5); - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, victim.posX, victim.posY + victim.height * 0.5, victim.posZ), new TargetPoint(victim.dimension, victim.posX, victim.posY + victim.height * 0.5, victim.posZ, 150)); - living.entityDropItem(new ItemStack(ModItems.flesh, 10, 0), 0.0F); - } - } - } - }), - - Phosphorus(new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.phosphorus"; - } - - public final int[] durationAtLevel = {60, 90}; - - @Override - public int levels() { - return durationAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (" + durationAtLevel[level] + ")"; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - int duration = durationAtLevel[level]; - - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - - living.addPotionEffect(new PotionEffect(HbmPotion.phosphorus.id, duration * 20, 4)); - } - } - }), - - Fire(new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.fire"; - } - - public final int[] durationAtLevel = {5, 10}; - - @Override - public int levels() { - return durationAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (" + durationAtLevel[level] + ")"; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - if(victim instanceof EntityLivingBase) { - victim.setFire(durationAtLevel[level]); - } - } - }), - - Chainsaw(new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.chainsaw"; - } - - public final int[] dividerAtLevel = {10, 15}; - - @Override - public int levels() { - return dividerAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (1:" + dividerAtLevel[level] + ")"; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - int divider = dividerAtLevel[level]; - - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - - if(living.getHealth() <= 0.0F) { - int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health - - for(int i = 0; i < count; i++) { - living.entityDropItem(new ItemStack(ModItems.nitra_small), 1); - world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); - } - - if(player instanceof EntityPlayerMP) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setInteger("count", count * 4); - data.setDouble("motion", 0.1D); - data.setString("mode", "blockdust"); - data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, living.posX, living.posY + living.height * 0.5, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); - } - - world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "hbm:weapon.chainsaw", 0.5F, 1.0F); - } - } - } - }), - - Beheader(new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.beheader"; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - if(victim instanceof EntityLivingBase && ((EntityLivingBase) victim).getHealth() <= 0.0F) { - EntityLivingBase living = (EntityLivingBase) victim; - - if(living instanceof EntitySkeleton) { - if(((EntitySkeleton)living).getSkeletonType() == 0) { - living.entityDropItem(new ItemStack(Items.skull, 1, 0), 0.0F); - } else { - if(world.rand.nextInt(20) == 0) - living.entityDropItem(new ItemStack(Items.skull, 1, 1), 0.0F); - else - living.entityDropItem(new ItemStack(Items.coal, 3), 0.0F); - } - } else if(living instanceof EntityZombie) { - living.entityDropItem(new ItemStack(Items.skull, 1, 2), 0.0F); - } else if(living instanceof EntityCreeper) { - living.entityDropItem(new ItemStack(Items.skull, 1, 4), 0.0F); - } else if(living instanceof EntityMagmaCube) { - living.entityDropItem(new ItemStack(Items.magma_cream, 3), 0.0F); - } else if(living instanceof EntitySlime) { - living.entityDropItem(new ItemStack(Items.slime_ball, 3), 0.0F); - } else if(living instanceof EntityPlayer) { - ItemStack head = new ItemStack(Items.skull, 1, 3); - head.stackTagCompound = new NBTTagCompound(); - head.stackTagCompound.setString("SkullOwner", ((EntityPlayer) living).getDisplayName()); - living.entityDropItem(head, 0.0F); - } else { - living.entityDropItem(new ItemStack(Items.rotten_flesh, 3, 0), 0.0F); - living.entityDropItem(new ItemStack(Items.bone, 2, 0), 0.0F); - } - } - } - }), - - Bobble(new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.bobble"; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) { - EntityMob mob = (EntityMob) victim; - - int chance = 1000; - - if(mob.getMaxHealth() > 20) { - chance = 750; - } - - if(world.rand.nextInt(chance) == 0) - mob.entityDropItem(new ItemStack(ModBlocks.bobblehead, 1, world.rand.nextInt(BobbleType.values().length - 1) + 1), 0.0F); - } - } - }); - // endregion handlers - - public IWeaponAbility handler; - - WeaponAbility(IWeaponAbility handler) { - this.handler = handler; + + // region handlers + public static final IWeaponAbility NONE = new IWeaponAbility() { + @Override + public String getName() { + // TODO: null? empty? otherwise i18n + return ""; } - } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) {} + }; + + public static final IWeaponAbility RADIATION = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.radiation"; + } + + public final float[] radAtLevel = {15F, 50F, 500F}; + + @Override + public int levels() { + return radAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + radAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + if(victim instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, radAtLevel[level]); + } + }; + + public static final IWeaponAbility VAMPIRE = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.vampire"; + } + + public final float[] amountAtLevel = {2F, 3F, 5F, 10F, 50F}; + + @Override + public int levels() { + return amountAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + amountAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + float amount = amountAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + if(living.getHealth() <= 0) return; + living.setHealth(living.getHealth() - amount); + if(living.getHealth() <= 0) living.onDeath(DamageSource.magic); + player.heal(amount); + } + } + }; + + public static final IWeaponAbility STUN = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.stun"; + } + + public final int[] durationAtLevel = {2, 3, 5, 10, 15}; + + @Override + public int levels() { + return durationAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + durationAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + int duration = durationAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + + living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, duration * 20, 4)); + living.addPotionEffect(new PotionEffect(Potion.weakness.id, duration * 20, 4)); + } + } + }; + + public static final IWeaponAbility BLEND = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.blender"; + } + + public final int[] dividerAtLevel = {12}; + + @Override + public int levels() { + return dividerAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (1:" + dividerAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + int divider = dividerAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + + if(living.getHealth() <= 0.0F) { + int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health + world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "mob.zombie.woodbreak", 0.5F, 1.0F); + victim.attackEntityFrom(ModDamageSource.turbofan, 100); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "giblets"); + data.setInteger("count", count * 4); + data.setInteger("ent", victim.getEntityId()); + data.setInteger("cDiv", 5); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, victim.posX, victim.posY + victim.height * 0.5, victim.posZ), new TargetPoint(victim.dimension, victim.posX, victim.posY + victim.height * 0.5, victim.posZ, 150)); + living.entityDropItem(new ItemStack(ModItems.flesh, 10, 0), 0.0F); + } + } + } + }; + + public static final IWeaponAbility PHOSPHORUS = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.phosphorus"; + } + + public final int[] durationAtLevel = {60, 90}; + + @Override + public int levels() { + return durationAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + durationAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + int duration = durationAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + + living.addPotionEffect(new PotionEffect(HbmPotion.phosphorus.id, duration * 20, 4)); + } + } + }; + + public static final IWeaponAbility FIRE = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.fire"; + } + + public final int[] durationAtLevel = {5, 10}; + + @Override + public int levels() { + return durationAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + durationAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + if(victim instanceof EntityLivingBase) { + victim.setFire(durationAtLevel[level]); + } + } + }; + + public static final IWeaponAbility CHAINSAW = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.chainsaw"; + } + + public final int[] dividerAtLevel = {10, 15}; + + @Override + public int levels() { + return dividerAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (1:" + dividerAtLevel[level] + ")"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + int divider = dividerAtLevel[level]; + + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + + if(living.getHealth() <= 0.0F) { + int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health + + for(int i = 0; i < count; i++) { + living.entityDropItem(new ItemStack(ModItems.nitra_small), 1); + world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); + } + + if(player instanceof EntityPlayerMP) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setInteger("count", count * 4); + data.setDouble("motion", 0.1D); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, living.posX, living.posY + living.height * 0.5, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); + } + + world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "hbm:weapon.chainsaw", 0.5F, 1.0F); + } + } + } + }; + + public static final IWeaponAbility BEHEADER = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.beheader"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + if(victim instanceof EntityLivingBase && ((EntityLivingBase) victim).getHealth() <= 0.0F) { + EntityLivingBase living = (EntityLivingBase) victim; + + if(living instanceof EntitySkeleton) { + if(((EntitySkeleton)living).getSkeletonType() == 0) { + living.entityDropItem(new ItemStack(Items.skull, 1, 0), 0.0F); + } else { + if(world.rand.nextInt(20) == 0) + living.entityDropItem(new ItemStack(Items.skull, 1, 1), 0.0F); + else + living.entityDropItem(new ItemStack(Items.coal, 3), 0.0F); + } + } else if(living instanceof EntityZombie) { + living.entityDropItem(new ItemStack(Items.skull, 1, 2), 0.0F); + } else if(living instanceof EntityCreeper) { + living.entityDropItem(new ItemStack(Items.skull, 1, 4), 0.0F); + } else if(living instanceof EntityMagmaCube) { + living.entityDropItem(new ItemStack(Items.magma_cream, 3), 0.0F); + } else if(living instanceof EntitySlime) { + living.entityDropItem(new ItemStack(Items.slime_ball, 3), 0.0F); + } else if(living instanceof EntityPlayer) { + ItemStack head = new ItemStack(Items.skull, 1, 3); + head.stackTagCompound = new NBTTagCompound(); + head.stackTagCompound.setString("SkullOwner", ((EntityPlayer) living).getDisplayName()); + living.entityDropItem(head, 0.0F); + } else { + living.entityDropItem(new ItemStack(Items.rotten_flesh, 3, 0), 0.0F); + living.entityDropItem(new ItemStack(Items.bone, 2, 0), 0.0F); + } + } + } + }; + + public static final IWeaponAbility BOBBLE = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.bobble"; + } + + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) { + EntityMob mob = (EntityMob) victim; + + int chance = 1000; + + if(mob.getMaxHealth() > 20) { + chance = 750; + } + + if(world.rand.nextInt(chance) == 0) + mob.entityDropItem(new ItemStack(ModBlocks.bobblehead, 1, world.rand.nextInt(BobbleType.values().length - 1) + 1), 0.0F); + } + } + }; + // endregion handlers } diff --git a/src/main/java/com/hbm/handler/ability/ToolPreset.java b/src/main/java/com/hbm/handler/ability/ToolPreset.java new file mode 100644 index 000000000..afc132153 --- /dev/null +++ b/src/main/java/com/hbm/handler/ability/ToolPreset.java @@ -0,0 +1,38 @@ +package com.hbm.handler.ability; + +public class ToolPreset { + public IToolAreaAbility areaAbility = IToolAreaAbility.NONE; + public int areaAbilityLevel = 0; + public IToolHarvestAbility harvestAbility = IToolHarvestAbility.NONE; + public int harvestAbilityLevel = 0; + + public ToolPreset() {} + + public ToolPreset(IToolAreaAbility areaAbility, IToolHarvestAbility harvestAbility) { + this.areaAbility = areaAbility; + this.harvestAbility = harvestAbility; + } + + public ToolPreset(IToolAreaAbility areaAbility, int areaAbilityLevel, IToolHarvestAbility harvestAbility, int harvestAbilityLevel) { + this.areaAbility = areaAbility; + this.areaAbilityLevel = areaAbilityLevel; + this.harvestAbility = harvestAbility; + this.harvestAbilityLevel = harvestAbilityLevel; + } + + public String getMessage() { + String areaPart = areaAbility.getFullName(areaAbilityLevel); + String harvestPart = harvestAbility.getFullName(harvestAbilityLevel); + + if (harvestPart.isEmpty() && areaPart.isEmpty()) + return "[Tool ability deactivated]"; + + if (harvestPart.isEmpty()) + return "[Enabled " + areaPart + "]"; + + if (areaPart.isEmpty()) + return "[Enabled " + harvestPart + "]"; + + return "[Enabled " + areaPart + " + " + harvestPart + "]"; + } +} From f1184f8731bb59fc244145ed0a5f87f28881284d Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sat, 17 May 2025 12:53:09 +0300 Subject: [PATCH 033/181] Add explicit "public" to interfaces --- src/main/java/com/hbm/handler/ability/IBaseAbility.java | 8 ++++---- .../java/com/hbm/handler/ability/IToolAreaAbility.java | 2 +- .../java/com/hbm/handler/ability/IToolHarvestAbility.java | 8 ++++---- src/main/java/com/hbm/handler/ability/IWeaponAbility.java | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IBaseAbility.java b/src/main/java/com/hbm/handler/ability/IBaseAbility.java index c5811a4b1..007d25e81 100644 --- a/src/main/java/com/hbm/handler/ability/IBaseAbility.java +++ b/src/main/java/com/hbm/handler/ability/IBaseAbility.java @@ -3,17 +3,17 @@ package com.hbm.handler.ability; import net.minecraft.client.resources.I18n; public interface IBaseAbility { - String getName(); + public String getName(); - default String getExtension(int level) { + public default String getExtension(int level) { return ""; } - default String getFullName(int level) { + public default String getFullName(int level) { return I18n.format(getName()) + getExtension(level); } - default boolean isAllowed() { + public default boolean isAllowed() { return true; } diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index 0e5907870..19bdedd94 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -27,7 +27,7 @@ public interface IToolAreaAbility extends IBaseAbility { // The initial block is always implicitly broken and shouldn't be included. // If true is returned, no block breaking is handled by the tool // (neither for the original block nor for the extras) - boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool); + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool); // region handlers public static final IToolAreaAbility NONE = new IToolAreaAbility() { diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java index f70761457..797daee68 100644 --- a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -23,14 +23,14 @@ import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.world.World; public interface IToolHarvestAbility extends IBaseAbility { - default void preHarvestAll(int level, World world, EntityPlayer player) {} + public default void preHarvestAll(int level, World world, EntityPlayer player) {} - default void postHarvestAll(int level, World world, EntityPlayer player) {} + public default void postHarvestAll(int level, World world, EntityPlayer player) {} - boolean skipDefaultDrops(int level); + public boolean skipDefaultDrops(int level); // Call IToolHarvestAbility.super.onHarvestBlock to emulate the actual block breaking - default void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + public default void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { if (skipDefaultDrops(level)) { // Emulate the block breaking without drops world.setBlockToAir(x, y, z); diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java index 1b6c95f40..d5530b20e 100644 --- a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -35,7 +35,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.world.World; public interface IWeaponAbility extends IBaseAbility { - void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool); + public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool); // region handlers public static final IWeaponAbility NONE = new IWeaponAbility() { From 634836c549fb00e7e6bae361414835399cf2e3fb Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sat, 17 May 2025 18:37:09 +0300 Subject: [PATCH 034/181] Switch weapon abilities to the new system --- .../handler/ability/AvailableAbilities.java | 62 +- .../hbm/handler/ability/IWeaponAbility.java | 27 +- .../inventory/gui/GUIScreenToolAbility.java | 598 +- src/main/java/com/hbm/items/ModItems.java | 14443 ++++++++-------- .../com/hbm/items/tool/ItemSwordAbility.java | 35 +- .../textures/gui/tool/gui_tool_ability.png | Bin 4131 -> 4455 bytes 6 files changed, 7623 insertions(+), 7542 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java index 776f01c64..b95c21a55 100644 --- a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java +++ b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java @@ -1,14 +1,21 @@ package com.hbm.handler.ability; +import java.util.Collections; import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.EnumChatFormatting; // All abilities available on a given tool public class AvailableAbilities { private HashMap abilities = new HashMap(); - AvailableAbilities() {} + public AvailableAbilities() {} - AvailableAbilities addAbility(IBaseAbility ability, int level) { + public AvailableAbilities addAbility(IBaseAbility ability, int level) { if (level < 0 || level >= ability.levels()) { throw new IllegalArgumentException("Illegal level " + level + " for ability " + ability.getName()); } @@ -17,16 +24,61 @@ public class AvailableAbilities { return this; } - AvailableAbilities removeAbility(IBaseAbility ability) { + public AvailableAbilities addToolAbilities() { + addAbility(IToolAreaAbility.NONE, 0); + addAbility(IToolHarvestAbility.NONE, 0); + return this; + } + + public AvailableAbilities removeAbility(IBaseAbility ability) { abilities.remove(ability); return this; } - boolean supportsAbility(IBaseAbility ability) { + public boolean supportsAbility(IBaseAbility ability) { return abilities.containsKey(ability); } - int maxLevel(IBaseAbility ability) { + public int maxLevel(IBaseAbility ability) { return abilities.getOrDefault(ability, -1); } + + public Map get() { + return Collections.unmodifiableMap(abilities); + } + + public int size() { + return abilities.size(); + } + + public boolean isEmpty() { + return abilities.isEmpty(); + } + + @SideOnly(Side.CLIENT) + public void addInformation(List list) { + boolean hasToolAbilities = abilities.keySet().stream().anyMatch(a -> a instanceof IToolAreaAbility || a instanceof IToolHarvestAbility); + + if (hasToolAbilities) { + list.add("Abilities: "); + + abilities.forEach((ability, level) -> { + list.add(" " + EnumChatFormatting.GOLD + ability.getFullName(level)); + }); + + list.add("Right click to cycle through abilities!"); + list.add("Sneak-click to turn ability off!"); + list.add("Alt-click to open ability selection GUI!"); + } + + boolean hasWeaponModifiers = abilities.keySet().stream().anyMatch(a -> a instanceof IWeaponAbility); + + if (hasWeaponModifiers) { + list.add("Weapon modifiers: "); + + abilities.forEach((ability, level) -> { + list.add(" " + EnumChatFormatting.RED + ability.getFullName(level)); + }); + } + } } diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java index d5530b20e..15a98df54 100644 --- a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -4,7 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.handler.threading.PacketThreading; import com.hbm.items.ModItems; -import com.hbm.items.tool.IItemWithAbility; import com.hbm.lib.ModDamageSource; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; @@ -26,6 +25,7 @@ import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; +import net.minecraft.item.Item; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -35,7 +35,8 @@ import net.minecraft.util.DamageSource; import net.minecraft.world.World; public interface IWeaponAbility extends IBaseAbility { - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool); + // Note: tool is currently unused in weapon abilities + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool); // region handlers public static final IWeaponAbility NONE = new IWeaponAbility() { @@ -46,7 +47,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) {} + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) {} }; public static final IWeaponAbility RADIATION = new IWeaponAbility() { @@ -68,7 +69,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { if(victim instanceof EntityLivingBase) ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, radAtLevel[level]); } @@ -93,7 +94,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { float amount = amountAtLevel[level]; if(victim instanceof EntityLivingBase) { @@ -125,7 +126,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { int duration = durationAtLevel[level]; if(victim instanceof EntityLivingBase) { @@ -156,7 +157,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { int divider = dividerAtLevel[level]; if(victim instanceof EntityLivingBase) { @@ -198,7 +199,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { int duration = durationAtLevel[level]; if(victim instanceof EntityLivingBase) { @@ -228,7 +229,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { if(victim instanceof EntityLivingBase) { victim.setFire(durationAtLevel[level]); } @@ -241,7 +242,7 @@ public interface IWeaponAbility extends IBaseAbility { return "weapon.ability.chainsaw"; } - public final int[] dividerAtLevel = {10, 15}; + public final int[] dividerAtLevel = {15, 10}; @Override public int levels() { @@ -254,7 +255,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { int divider = dividerAtLevel[level]; if(victim instanceof EntityLivingBase) { @@ -291,7 +292,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { if(victim instanceof EntityLivingBase && ((EntityLivingBase) victim).getHealth() <= 0.0F) { EntityLivingBase living = (EntityLivingBase) victim; @@ -332,7 +333,7 @@ public interface IWeaponAbility extends IBaseAbility { } @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) { EntityMob mob = (EntityMob) victim; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index 918bb6f5a..0f66d8327 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -6,6 +6,10 @@ import java.util.List; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; +import com.hbm.handler.ability.IBaseAbility; +import com.hbm.handler.ability.IToolAreaAbility; +import com.hbm.handler.ability.IToolHarvestAbility; +import com.hbm.handler.ability.ToolPreset; import com.hbm.items.tool.ItemToolAbility; import com.hbm.lib.RefStrings; import com.hbm.util.EnumUtil; @@ -20,337 +24,373 @@ import net.minecraft.util.ResourceLocation; public class GUIScreenToolAbility extends GuiScreen { - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/tool/gui_tool_ability.png"); - - protected int guiLeft; - protected int guiTop; - protected int xSize; - protected int ySize; - protected int insetWidth; + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/tool/gui_tool_ability.png"); + + protected int guiLeft; + protected int guiTop; + protected int xSize; + protected int ySize; + protected int insetWidth; - protected ItemToolAbility toolDef; - protected ItemStack toolStack; + protected ItemToolAbility toolDef; + protected ItemStack toolStack; - // TODO: Move elsewhere? - public static class AbilityInfo { - String name; - int textureU, textureV; - boolean hasLevels; + public static class AbilityInfo { + public IBaseAbility ability; + public int textureU, textureV; - public AbilityInfo(String name, int textureU, int textureV, boolean hasLevels) { - this.name = name; - this.textureU = textureU; - this.textureV = textureV; - this.hasLevels = hasLevels; - } - } + public AbilityInfo(IBaseAbility ability, int textureU, int textureV) { + this.ability = ability; + this.textureU = textureU; + this.textureV = textureV; + } + } - public static final List abilitiesArea = new ArrayList<>(); - public static final List abilitiesHarvest = new ArrayList<>(); + public static final List abilitiesArea = new ArrayList<>(); + public static final List abilitiesHarvest = new ArrayList<>(); - static { - abilitiesArea.add(new AbilityInfo(null, 0, 91, false)); - abilitiesArea.add(new AbilityInfo("tool.ability.recursion", 32, 91, true)); - abilitiesArea.add(new AbilityInfo("tool.ability.hammer", 64, 91, true)); - abilitiesArea.add(new AbilityInfo("tool.ability.explosion", 96, 91, true)); - - abilitiesHarvest.add(new AbilityInfo(null, 0, 107, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.silktouch", 32, 107, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.luck", 64, 107, true)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.smelter", 96, 107, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.shredder", 128, 107, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.centrifuge", 160, 107, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.crystallizer", 192, 107, false)); - abilitiesHarvest.add(new AbilityInfo("tool.ability.mercury", 224, 107, false)); - } + static { + abilitiesArea.add(new AbilityInfo(IToolAreaAbility.NONE, 0, 91)); + abilitiesArea.add(new AbilityInfo(IToolAreaAbility.RECURSION, 32, 91)); + abilitiesArea.add(new AbilityInfo(IToolAreaAbility.HAMMER, 64, 91)); + abilitiesArea.add(new AbilityInfo(IToolAreaAbility.EXPLOSION, 96, 91)); + + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.NONE, 0, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SILK, 32, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.LUCK, 64, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SMELTER, 96, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SHREDDER, 128, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.CENTRIFUGE, 160, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.CRYSTALLIZER, 192, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.MERCURY, 224, 107)); + } - // TODO: availability status for abilities; list of presets; selected preset index; - // TODO: Remove this in favor of current preset - int selectionIdxArea = 0; - int selectedLevelArea = 0; - int selectionIdxHarvest = 0; - int selectedLevelHarvest = 0; - int selectedPreset = 0; - int totalPresets = 1; - String selectedPresetName = "lorem ipsum"; - - public GUIScreenToolAbility(ItemToolAbility toolDef) { - super(); - - this.toolDef = toolDef; - this.xSize = 186; // Note: increased dynamically - this.ySize = 76; + // TODO: availability status for abilities; list of presets; selected preset index; + // TODO: Remove this in favor of current preset + int selectionIdxArea = 0; + int selectedLevelArea = 0; + int selectionIdxHarvest = 0; + int selectedLevelHarvest = 0; + int selectedPreset = 0; + int totalPresets = 1; + + int hoverIdxArea = -1; + int hoverIdxHarvest = -1; + int hoverIdxExtraBtn = -1; + + public GUIScreenToolAbility(ItemToolAbility toolDef) { + super(); + + this.toolDef = toolDef; + this.xSize = 186; // Note: increased dynamically + this.ySize = 76; - this.insetWidth = 20 * Math.max(abilitiesArea.size() - 4, abilitiesHarvest.size() - 8); - this.xSize += insetWidth; - } + this.insetWidth = 20 * Math.max(abilitiesArea.size() - 4, abilitiesHarvest.size() - 8); + this.xSize += insetWidth; + } - @Override - public void initGui() { - this.toolStack = this.mc.thePlayer.getHeldItem(); - - if(this.toolStack == null) { - doClose(); - } - - guiLeft = (width - xSize) / 2; - guiTop = (height - ySize) / 2; - } + @Override + public void initGui() { + this.toolStack = this.mc.thePlayer.getHeldItem(); + + if(this.toolStack == null) { + doClose(); + } + + guiLeft = (width - xSize) / 2; + guiTop = (height - ySize) / 2; + } - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - this.drawDefaultBackground(); + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); - drawGuiContainerBackgroundLayer(mouseX, mouseY); - } + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - protected void drawGuiContainerBackgroundLayer(int mouseX, int mouseY) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + // Draw window background + drawStretchedRect(guiLeft, guiTop, 0, 0, xSize, xSize - insetWidth, ySize, 74, 76); + + // Draw the switches + hoverIdxArea = drawSwitches(abilitiesArea, selectionIdxArea, selectedLevelArea, guiLeft + 15, guiTop + 25, mouseX, mouseY); + hoverIdxHarvest = drawSwitches(abilitiesHarvest, selectionIdxHarvest, selectedLevelHarvest, guiLeft + 15, guiTop + 45, mouseX, mouseY); - // Draw window background - drawStretchedRect(guiLeft, guiTop, 0, 0, xSize, xSize - insetWidth, ySize, 74, 76); - - // Draw the switches - drawSwitches(abilitiesArea, selectionIdxArea, selectedLevelArea, guiLeft + 15, guiTop + 25, mouseX, mouseY); - drawSwitches(abilitiesHarvest, selectionIdxHarvest, selectedLevelHarvest, guiLeft + 15, guiTop + 45, mouseX, mouseY); + // Draw preset indicator + drawNumber(selectedPreset + 1, guiLeft + insetWidth + 115, guiTop + 25); + drawNumber(totalPresets, guiLeft + insetWidth + 149, guiTop + 25); - // Draw preset indicator - drawNumber(selectedPreset + 1, guiLeft + insetWidth + 115, guiTop + 25); - drawNumber(totalPresets, guiLeft + insetWidth + 149, guiTop + 25); + // Draw extra buttons hover highlights + int extraBtnsX = guiLeft + xSize - 86; + + hoverIdxExtraBtn = -1; + for (int i = 0; i < 7; ++i) { + if (isInAABB(mouseX, mouseY, extraBtnsX + i * 11, guiTop + 11, 9, 9)) { + hoverIdxExtraBtn = i; + drawTexturedModalRect(extraBtnsX + i * 11, guiTop + 11, 193 + i * 9, 0, 9, 9); + } + } - // Draw extra buttons hover highlights - int extraBtnsX = guiLeft + xSize - 75; + // Draw tooltip + String tooltipValue = ""; - for (int i = 0; i < 6; ++i) { - if (isInAABB(mouseX, mouseY, extraBtnsX + i * 11, guiTop + 11, 9, 9)) { - drawTexturedModalRect(extraBtnsX + i * 11, guiTop + 11, 186 + i * 9, 18, 9, 9); - } - } + if (hoverIdxArea != -1) { + int level = 0; + if (hoverIdxArea == selectionIdxArea) { + level = selectedLevelArea; + } + tooltipValue = abilitiesArea.get(hoverIdxArea).ability.getFullName(level); + } else if (hoverIdxHarvest != -1) { + int level = 0; + if (hoverIdxHarvest == selectionIdxHarvest) { + level = selectedLevelHarvest; + } + tooltipValue = abilitiesHarvest.get(hoverIdxHarvest).ability.getFullName(level); + } else if (hoverIdxExtraBtn != -1) { + switch (hoverIdxExtraBtn) { + case 0: tooltipValue = "Reset all presets"; break; + case 1: tooltipValue = "Delete current preset"; break; + case 2: tooltipValue = "Add new preset"; break; + case 3: tooltipValue = "Select first preset"; break; + case 4: tooltipValue = "Next preset"; break; + case 5: tooltipValue = "Previous preset"; break; + case 6: tooltipValue = "Close window"; break; + } + } - // Draw tooltip - if (!"".equals(selectedPresetName)) { - int tooltipWidth = Math.max(6, fontRendererObj.getStringWidth(selectedPresetName)); - int tooltipX = guiLeft + xSize / 2 - tooltipWidth / 2; - int tooltipY = guiTop + ySize + 1 + 4; - drawStretchedRect(tooltipX - 5, tooltipY - 4, 0, 76, tooltipWidth + 10, 186, 15, 3, 3); - fontRendererObj.drawString(selectedPresetName, tooltipX, tooltipY, 0xffffffff); - } - } + if (!tooltipValue.isEmpty()) { + int tooltipWidth = Math.max(6, fontRendererObj.getStringWidth(tooltipValue)); + int tooltipX = guiLeft + xSize / 2 - tooltipWidth / 2; + int tooltipY = guiTop + ySize + 1 + 4; + drawStretchedRect(tooltipX - 5, tooltipY - 4, 0, 76, tooltipWidth + 10, 186, 15, 3, 3); + fontRendererObj.drawString(tooltipValue, tooltipX, tooltipY, 0xffffffff); + } + } - protected void drawStretchedRect(int x, int y, int u, int v, int realWidth, int width, int height, int keepLeft, int keepRight) { - int midWidth = width - keepLeft - keepRight; - int realMidWidth = realWidth - keepLeft - keepRight; - drawTexturedModalRect(x, y, u, v, keepLeft, height); - for (int i = 0; i < realMidWidth; i += midWidth) { - drawTexturedModalRect(x + keepLeft + i, y, u + keepLeft, v, Math.min(midWidth, realMidWidth - i), height); - } - drawTexturedModalRect(x + keepLeft + realMidWidth, y, u + keepLeft + midWidth, v, keepRight, height); - } + protected void drawStretchedRect(int x, int y, int u, int v, int realWidth, int width, int height, int keepLeft, int keepRight) { + int midWidth = width - keepLeft - keepRight; + int realMidWidth = realWidth - keepLeft - keepRight; + drawTexturedModalRect(x, y, u, v, keepLeft, height); + for (int i = 0; i < realMidWidth; i += midWidth) { + drawTexturedModalRect(x + keepLeft + i, y, u + keepLeft, v, Math.min(midWidth, realMidWidth - i), height); + } + drawTexturedModalRect(x + keepLeft + realMidWidth, y, u + keepLeft + midWidth, v, keepRight, height); + } - protected void drawSwitches(List abilities, int selectionIdx, int selectedLevel, int x, int y, int mouseX, int mouseY) { - // TODO: Store hovered ability, use it in click handling and the dynamic tooltip - - for (int i = 0; i < abilities.size(); ++i) { - AbilityInfo abilityInfo = abilities.get(i); - boolean available = true; // TODO + protected int drawSwitches(List abilities, int selectionIdx, int selectedLevel, int x, int y, int mouseX, int mouseY) { + int hoverIdx = -1; - // Draw switch - drawTexturedModalRect(x + 20 * i, y, abilityInfo.textureU + (available ? 16 : 0), abilityInfo.textureV, 16, 16); - - // Draw level LEDs - if (abilityInfo.hasLevels) { - int level = 0; // TODO + for (int i = 0; i < abilities.size(); ++i) { + AbilityInfo abilityInfo = abilities.get(i); + boolean available = true; // TODO - if (i == selectionIdx) { - level = selectedLevel + 1; - } + // Draw switch + drawTexturedModalRect(x + 20 * i, y, abilityInfo.textureU + (available ? 16 : 0), abilityInfo.textureV, 16, 16); + + // Draw level LEDs + if (abilityInfo.ability.levels() > 1) { + int level = 0; - drawTexturedModalRect(x + 20 * i + 17, y + 1, 222 + level * 2, 0, 2, 14); - } + if (i == selectionIdx) { + level = selectedLevel + 1; + } - if (i == selectionIdx) { - // Draw selection highlight - drawTexturedModalRect(x + 20 * i - 1, y - 1, 186, 0, 18, 18); - } else if (available && isInAABB(mouseX, mouseY, x + 20 * i, y, 16, 16)) { - // Draw hover highlight - drawTexturedModalRect(x + 20 * i - 1, y - 1, 204, 0, 18, 18); - } - } - } + // TODO: Max allowed level instead? + // int maxLevel = Math.min(abilityInfo.ability.levels(), 5); + int maxLevel = 5; + + if (level > 10 || level < 0) { + // All-red LEDs for invalid levels + level = -1; + } - protected void drawNumber(int number, int x, int y) { - number += 100; // Against accidental negatives - drawDigit((number / 10) % 10, x, y); - drawDigit(number % 10, x + 12, y); - } + drawTexturedModalRect(x + 20 * i + 17, y + 1, 188 + level * 2, maxLevel * 14, 2, 14); + } - protected void drawDigit(int digit, int x, int y) { - drawTexturedModalRect(x, y, digit * 10, 123, 10, 15); - } + boolean isHovered = isInAABB(mouseX, mouseY, x + 20 * i, y, 16, 16); - private boolean isInAABB(int mouseX, int mouseY, int x, int y, int width, int height) { - return x <= mouseX && x + width > mouseX && y <= mouseY && y + height > mouseY; - } + if (isHovered) { + hoverIdx = i; + } - @Override - public void updateScreen() { - EntityPlayer player = this.mc.thePlayer; + if (i == selectionIdx) { + // Draw selection highlight + drawTexturedModalRect(x + 20 * i - 1, y - 1, 220, 9, 18, 18); + } else if (available && isHovered) { + // Draw hover highlight + drawTexturedModalRect(x + 20 * i - 1, y - 1, 238, 9, 18, 18); + } + } - if(player.getHeldItem() == null || player.getHeldItem().getItem() != toolDef) - player.closeScreen(); - } + return hoverIdx; + } - @Override - public void handleMouseInput() { - super.handleMouseInput(); + protected void drawNumber(int number, int x, int y) { + number += 100; // Against accidental negatives + drawDigit((number / 10) % 10, x, y); + drawDigit(number % 10, x + 12, y); + } - if(Mouse.getEventButton() == -1) { - int scroll = Mouse.getEventDWheel(); + protected void drawDigit(int digit, int x, int y) { + drawTexturedModalRect(x, y, digit * 10, 123, 10, 15); + } - if(scroll > 0 && selectedPreset > 0) selectedPreset -= 1; - if(scroll < 0 && selectedPreset < totalPresets) selectedPreset += 1; - } - } + private boolean isInAABB(int mouseX, int mouseY, int x, int y, int width, int height) { + return x <= mouseX && x + width > mouseX && y <= mouseY && y + height > mouseY; + } - @Override - protected void mouseClicked(int mouseX, int mouseY, int button) { - // TODO - boolean clicked = false; - - // TODO: Encapsulate? - for (int i = 0; i < abilitiesArea.size(); ++i) { - AbilityInfo abilityInfo = abilitiesArea.get(i); - boolean available = true; // TODO + @Override + public void updateScreen() { + EntityPlayer player = this.mc.thePlayer; - if (available && isInAABB(mouseX, mouseY, guiLeft + 15 + 20 * i, guiTop + 25, 16, 16)) { - if (abilityInfo.hasLevels) { - int availableLevels = 10; + if(player.getHeldItem() == null || player.getHeldItem().getItem() != toolDef) + player.closeScreen(); + } - if (i == selectionIdxArea) { - selectedLevelArea = (selectedLevelArea + 1) % availableLevels; - } else { - selectedLevelArea = 0; - } - } + @Override + public void handleMouseInput() { + super.handleMouseInput(); - selectionIdxArea = i; - clicked = true; - break; - } - } + if(Mouse.getEventButton() == -1) { + int scroll = Mouse.getEventDWheel(); - for (int i = 0; i < abilitiesHarvest.size(); ++i) { - AbilityInfo abilityInfo = abilitiesHarvest.get(i); - boolean available = true; // TODO + if(scroll < 0 && selectedPreset > 0) selectedPreset -= 1; + if(scroll > 0 && selectedPreset < totalPresets - 1) selectedPreset += 1; + } + } - if (available && isInAABB(mouseX, mouseY, guiLeft + 15 + 20 * i, guiTop + 45, 16, 16)) { - if (abilityInfo.hasLevels) { - int availableLevels = 11; + @Override + protected void mouseClicked(int mouseX, int mouseY, int button) { + // Process switches + // TODO: Encapsulate in a method + if (hoverIdxArea != -1) { + boolean available = true; // TODO - if (i == selectionIdxHarvest) { - selectedLevelHarvest = (selectedLevelHarvest + 1) % availableLevels; - } else { - selectedLevelHarvest = 0; - } - } + if (available) { + int availableLevels = abilitiesArea.get(hoverIdxArea).ability.levels(); - selectionIdxHarvest = i; - clicked = true; - break; - } - } + if (hoverIdxArea != selectionIdxArea || availableLevels > 1) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 2F)); + } - if (clicked) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 2F)); - } - - // TODO - int extraBtnsX = guiLeft + xSize - 75; + if (hoverIdxArea == selectionIdxArea) { + selectedLevelArea = (selectedLevelArea + 1) % availableLevels; + } else { + selectedLevelArea = 0; + } - clicked = false; + selectionIdxArea = hoverIdxArea; + } + } - if (isInAABB(mouseX, mouseY, extraBtnsX + 0 * 11, guiTop + 11, 9, 9)) { - doDelPreset(); - clicked = true; - } + if (hoverIdxHarvest != -1) { + boolean available = true; // TODO - if (isInAABB(mouseX, mouseY, extraBtnsX + 1 * 11, guiTop + 11, 9, 9)) { - doAddPreset(); - clicked = true; - } + if (available) { + int availableLevels = abilitiesHarvest.get(hoverIdxHarvest).ability.levels(); - if (isInAABB(mouseX, mouseY, extraBtnsX + 2 * 11, guiTop + 11, 9, 9)) { - doZeroPreset(); - clicked = true; - } + if (hoverIdxHarvest == selectionIdxHarvest) { + selectedLevelHarvest = (selectedLevelHarvest + 1) % availableLevels; + } else { + selectedLevelHarvest = 0; + } - if (isInAABB(mouseX, mouseY, extraBtnsX + 3 * 11, guiTop + 11, 9, 9)) { - doNextPreset(); - clicked = true; - } + selectionIdxHarvest = hoverIdxHarvest; - if (isInAABB(mouseX, mouseY, extraBtnsX + 4 * 11, guiTop + 11, 9, 9)) { - doPrevPreset(); - clicked = true; - } + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 2F)); + } + } + + // Process extra buttons + if (hoverIdxExtraBtn != -1) { + switch (hoverIdxExtraBtn) { + case 0: + doResetPresets(); + break; + case 1: + doDelPreset(); + break; + case 2: + doAddPreset(); + break; + case 3: + doZeroPreset(); + break; + case 4: + doNextPreset(); + break; + case 5: + doPrevPreset(); + break; + case 6: + doClose(); + break; + } - if (isInAABB(mouseX, mouseY, extraBtnsX + 5 * 11, guiTop + 11, 9, 9)) { - doClose(); - clicked = true; - } + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F)); + } - if (clicked) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F)); - } - } + // Allow quick-closing + if (!isInAABB(mouseX, mouseY, guiLeft, guiTop, xSize, ySize)) { + doClose(); + } + } - @Override - protected void keyTyped(char c, int key) { - if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { - doClose(); - return; - } - - super.keyTyped(c, key); - } - - @Override - public boolean doesGuiPauseGame() { - return false; - } + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + doClose(); + return; + } + + super.keyTyped(c, key); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } - protected void doDelPreset() { - // TODO - if (totalPresets <= 1) { - return; - } - totalPresets -= 1; - selectedPreset -= 1; - } + protected void doResetPresets() { + // TODO + totalPresets = 1; + selectedPreset = 0; + selectionIdxArea = 0; + selectedLevelArea = 0; + selectionIdxHarvest = 0; + selectedLevelHarvest = 0; + } - protected void doAddPreset() { - // TODO - totalPresets += 1; - selectedPreset += 1; - } + protected void doDelPreset() { + // TODO + if (totalPresets <= 1) { + return; + } + totalPresets -= 1; + selectedPreset -= 1; + } - protected void doZeroPreset() { - // TODO - selectedPreset = 0; - } + protected void doAddPreset() { + // TODO + totalPresets += 1; + selectedPreset += 1; + } - protected void doNextPreset() { - // TODO - selectedPreset = (selectedPreset + 1) % totalPresets; - } + protected void doZeroPreset() { + // TODO + selectedPreset = 0; + } - protected void doPrevPreset() { - // TODO - selectedPreset = (selectedPreset + totalPresets - 1) % totalPresets; - } + protected void doNextPreset() { + // TODO + selectedPreset = (selectedPreset + 1) % totalPresets; + } - protected void doClose() { - this.mc.thePlayer.closeScreen(); - } + protected void doPrevPreset() { + // TODO + selectedPreset = (selectedPreset + totalPresets - 1) % totalPresets; + } + + protected void doClose() { + this.mc.thePlayer.closeScreen(); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 63715bbe3..faa866dfc 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1,7221 +1,7222 @@ -package com.hbm.items; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.VersatileConfig; -import com.hbm.handler.BucketHandler; -import com.hbm.handler.ToolAbility; -import com.hbm.handler.ToolAbility.LuckAbility; -import com.hbm.handler.WeaponAbility; -import com.hbm.handler.guncfg.*; -import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.material.MaterialShapes; -import com.hbm.inventory.material.Mats; -import com.hbm.items.ItemAmmoEnums.*; -import com.hbm.items.ItemEnums.*; -import com.hbm.items.armor.*; -import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; -import com.hbm.items.bomb.*; -import com.hbm.items.food.*; -import com.hbm.items.machine.*; -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.ItemPWRFuel.EnumPWRFuel; -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.*; -import com.hbm.items.special.ItemPlasticScrap.ScrapType; -import com.hbm.items.tool.*; -import com.hbm.items.tool.ItemToolAbility.EnumToolType; -import com.hbm.items.weapon.*; -import com.hbm.items.weapon.ItemCustomMissilePart.*; -import com.hbm.items.weapon.ItemMissile.MissileFormFactor; -import com.hbm.items.weapon.ItemMissile.MissileFuel; -import com.hbm.items.weapon.ItemMissile.MissileTier; -import com.hbm.items.weapon.sedna.factory.GunFactory; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.potion.HbmPotion; -import com.hbm.tileentity.machine.rbmk.IRBMKFluxReceiver.NType; -import com.hbm.util.RTGUtil; - -import api.hbm.block.IToolable.ToolType; -import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Items; -import net.minecraft.item.EnumRarity; -import net.minecraft.item.Item; -import net.minecraft.item.Item.ToolMaterial; -import net.minecraft.item.ItemArmor.ArmorMaterial; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemSoup; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.EnumHelper; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidStack; - -public class ModItems { - - public static void mainRegistry() { - initializeItem(); - registerItem(); - } - - public static Item redstone_sword; - public static Item big_sword; - - public static Item ingot_th232; - public static Item ingot_uranium; - public static Item ingot_u233; - public static Item ingot_u235; - public static Item ingot_u238; - public static Item ingot_u238m2; - public static Item ingot_plutonium; - public static Item ingot_pu238; - public static Item ingot_pu239; - public static Item ingot_pu240; - public static Item ingot_pu241; - public static Item ingot_pu_mix; - public static Item ingot_am241; - public static Item ingot_am242; - public static Item ingot_am_mix; - public static Item ingot_neptunium; - public static Item ingot_polonium; - public static Item ingot_technetium; - public static Item ingot_co60; - public static Item ingot_sr90; - public static Item ingot_au198; - public static Item ingot_pb209; - public static Item ingot_ra226; - public static Item ingot_titanium; - public static Item ingot_cobalt; - public static Item sulfur; - public static Item nitra; - public static Item nitra_small; - - public static Item coke; - public static Item lignite; - public static Item powder_lignite; - public static Item briquette; - public static Item coal_infernal; - public static Item cinnebar; - public static Item powder_ash; - public static Item powder_limestone; - public static Item powder_cement; - - public static Item niter; - public static Item ingot_copper; - public static Item ingot_red_copper; - public static Item ingot_tungsten; - public static Item ingot_aluminium; - public static Item fluorite; - public static Item ingot_beryllium; - public static Item ingot_schraranium; - public static Item ingot_schrabidium; - public static Item ingot_schrabidate; - public static Item ingot_plutonium_fuel; - public static Item ingot_neptunium_fuel; - public static Item ingot_uranium_fuel; - public static Item ingot_mox_fuel; - public static Item ingot_americium_fuel; - public static Item ingot_schrabidium_fuel; - public static Item ingot_thorium_fuel; - public static Item nugget_uranium_fuel; - public static Item nugget_thorium_fuel; - public static Item nugget_plutonium_fuel; - public static Item nugget_neptunium_fuel; - public static Item nugget_mox_fuel; - public static Item nugget_americium_fuel; - public static Item nugget_schrabidium_fuel; - public static Item ingot_advanced_alloy; - public static Item ingot_tcalloy; - public static Item ingot_cdalloy; - public static Item ingot_bismuth_bronze; - public static Item ingot_arsenic_bronze; - public static Item ingot_bscco; - public static Item lithium; - public static Item ingot_zirconium; - public static Item ingot_hes; - public static Item ingot_les; - public static Item nugget_hes; - public static Item nugget_les; - public static Item ingot_magnetized_tungsten; - public static Item ingot_combine_steel; - public static Item ingot_solinium; - public static Item nugget_solinium; - public static Item ingot_phosphorus; - public static Item ingot_semtex; - public static Item ingot_c4; - public static Item ingot_boron; - public static Item ingot_graphite; - public static Item ingot_firebrick; - public static Item ingot_smore; - - public static Item ingot_gh336; - public static Item nugget_gh336; - - public static Item ingot_australium; - public static Item nugget_australium; - public static Item nugget_australium_lesser; - public static Item nugget_australium_greater; - - public static Item ingot_desh; - public static Item nugget_desh; - public static Item ingot_dineutronium; - public static Item nugget_dineutronium; - public static Item powder_dineutronium; - public static Item ingot_tetraneutronium; - public static Item nugget_tetraneutronium; - public static Item powder_tetraneutronium; - public static Item ingot_starmetal; - public static Item ingot_gunmetal; - public static Item plate_gunmetal; - public static Item ingot_weaponsteel; - public static Item plate_weaponsteel; - public static Item ingot_saturnite; - public static Item plate_saturnite; - public static Item ingot_ferrouranium; - public static Item ingot_electronium; - public static Item nugget_zirconium; - public static Item nugget_mercury; - public static Item ingot_mercury; //It's to prevent any ambiguity, as it was treated as a full ingot in the past anyway - public static Item bottle_mercury; - - public static Item ore_byproduct; //byproduct of variable purity and quantity, can be treated as a nugget, might require shredding or acidizing, depends on the type - - public static Item ore_bedrock; - public static Item ore_centrifuged; - public static Item ore_cleaned; - public static Item ore_separated; - public static Item ore_purified; - public static Item ore_nitrated; - public static Item ore_nitrocrystalline; - public static Item ore_deepcleaned; - public static Item ore_seared; - //public static Item ore_radcleaned; - public static Item ore_enriched; //final stage - public static Item bedrock_ore_base; - public static Item bedrock_ore; - public static Item bedrock_ore_fragment; - - public static Item billet_uranium; - public static Item billet_u233; - public static Item billet_u235; - public static Item billet_u238; - public static Item billet_th232; - public static Item billet_plutonium; - public static Item billet_pu238; - public static Item billet_pu239; - public static Item billet_pu240; - public static Item billet_pu241; - public static Item billet_pu_mix; - public static Item billet_am241; - public static Item billet_am242; - public static Item billet_am_mix; - public static Item billet_neptunium; - public static Item billet_polonium; - public static Item billet_technetium; - public static Item billet_cobalt; - public static Item billet_co60; - public static Item billet_sr90; - public static Item billet_au198; - public static Item billet_pb209; - public static Item billet_ra226; - public static Item billet_actinium; - public static Item billet_schrabidium; - public static Item billet_solinium; - public static Item billet_gh336; - public static Item billet_australium; - public static Item billet_australium_lesser; - public static Item billet_australium_greater; - public static Item billet_uranium_fuel; - public static Item billet_thorium_fuel; - public static Item billet_plutonium_fuel; - public static Item billet_neptunium_fuel; - public static Item billet_mox_fuel; - public static Item billet_americium_fuel; - public static Item billet_les; - public static Item billet_schrabidium_fuel; - public static Item billet_hes; - public static Item billet_po210be; - public static Item billet_ra226be; - public static Item billet_pu238be; - public static Item billet_yharonite; - public static Item billet_balefire_gold; - public static Item billet_flashlead; - public static Item billet_zfb_bismuth; - public static Item billet_zfb_pu241; - public static Item billet_zfb_am_mix; - public static Item billet_beryllium; - public static Item billet_bismuth; - public static Item billet_zirconium; - public static Item billet_nuclear_waste; - - public static Item nugget_th232; - public static Item nugget_uranium; - public static Item nugget_u233; - public static Item nugget_u235; - public static Item nugget_u238; - public static Item nugget_plutonium; - public static Item nugget_pu238; - public static Item nugget_pu239; - public static Item nugget_pu240; - public static Item nugget_pu241; - public static Item nugget_pu_mix; - public static Item nugget_am241; - public static Item nugget_am242; - public static Item nugget_am_mix; - public static Item nugget_neptunium; - public static Item nugget_polonium; - public static Item nugget_technetium; - public static Item nugget_cobalt; - public static Item nugget_co60; - public static Item nugget_sr90; - public static Item nugget_au198; - public static Item nugget_pb209; - public static Item nugget_ra226; - public static Item nugget_actinium; - public static Item plate_titanium; - public static Item plate_aluminium; - public static Item neutron_reflector; - public static Item ingot_steel; - public static Item plate_steel; - public static Item plate_iron; - public static Item ingot_lead; - public static Item nugget_lead; - public static Item ingot_bismuth; - public static Item nugget_bismuth; - public static Item ingot_arsenic; - public static Item nugget_arsenic; - public static Item ingot_tantalium; - public static Item nugget_tantalium; - public static Item ingot_silicon; - public static Item billet_silicon; - public static Item nugget_silicon; - public static Item ingot_niobium; - public static Item nugget_niobium; - public static Item ingot_osmiridium; - public static Item nugget_osmiridium; - public static Item plate_lead; - public static Item plate_dura_steel; - public static Item nugget_schrabidium; - public static Item plate_schrabidium; - public static Item plate_copper; - public static Item nugget_beryllium; - public static Item plate_gold; - public static Item hazmat_cloth; - public static Item hazmat_cloth_red; - public static Item hazmat_cloth_grey; - public static Item asbestos_cloth; - public static Item rag; - public static Item rag_damp; - public static Item rag_piss; - public static Item filter_coal; - public static Item plate_advanced_alloy; - public static Item plate_combine_steel; - public static Item plate_mixed; - public static Item plate_paa; - public static Item pipes_steel; - public static Item drill_titanium; - public static Item plate_dalekanium; - public static Item plate_euphemium; - public static Item bolt; - public static Item bolt_spike; - public static Item plate_polymer; - public static Item plate_kevlar; - public static Item plate_dineutronium; - public static Item plate_desh; - public static Item plate_bismuth; - public static Item photo_panel; - public static Item sat_base; - public static Item thruster_nuclear; - public static Item safety_fuse; - public static Item part_generic; - public static Item item_secret; - public static Item ingot_metal; - public static Item chemical_dye; - public static Item crayon; - - public static Item undefined; - - public static Item ball_resin; - public static Item ingot_dura_steel; - public static Item ingot_polymer; - public static Item ingot_bakelite; - public static Item ingot_biorubber; - public static Item ingot_rubber; - public static Item ingot_pet; - public static Item ingot_pc; - public static Item ingot_pvc; - - public static Item ingot_fiberglass; - public static Item ingot_asbestos; - public static Item powder_asbestos; - public static Item ingot_calcium; - public static Item powder_calcium; - public static Item ingot_cadmium; - public static Item powder_cadmium; - public static Item powder_bismuth; - public static Item ingot_mud; - public static Item ingot_cft; - - public static Item ingot_lanthanium; - public static Item ingot_actinium; - - public static Item ingot_meteorite; - public static Item ingot_meteorite_forged; - public static Item blade_meteorite; - public static Item ingot_steel_dusted; - public static Item ingot_chainsteel; - - public static Item plate_armor_titanium; - public static Item plate_armor_ajr; - public static Item plate_armor_hev; - public static Item plate_armor_lunar; - public static Item plate_armor_fau; - public static Item plate_armor_dnt; - - public static Item oil_tar; - public static Item solid_fuel; - public static Item solid_fuel_presto; - public static Item solid_fuel_presto_triplet; - public static Item solid_fuel_bf; - public static Item solid_fuel_presto_bf; - public static Item solid_fuel_presto_triplet_bf; - public static Item rocket_fuel; - - public static Item crystal_coal; - public static Item crystal_iron; - public static Item crystal_gold; - public static Item crystal_redstone; - public static Item crystal_lapis; - public static Item crystal_diamond; - public static Item crystal_uranium; - public static Item crystal_thorium; - public static Item crystal_plutonium; - public static Item crystal_titanium; - public static Item crystal_sulfur; - public static Item crystal_niter; - public static Item crystal_copper; - public static Item crystal_tungsten; - public static Item crystal_aluminium; - public static Item crystal_fluorite; - public static Item crystal_beryllium; - public static Item crystal_lead; - public static Item crystal_schraranium; - public static Item crystal_schrabidium; - public static Item crystal_rare; - public static Item crystal_phosphorus; - public static Item crystal_lithium; - public static Item crystal_cobalt; - public static Item crystal_starmetal; - public static Item crystal_cinnebar; - public static Item crystal_trixite; - public static Item crystal_osmiridium; - - public static Item gem_sodalite; - public static Item gem_tantalium; - public static Item gem_volcanic; - public static Item gem_rad; - public static Item gem_alexandrite; - - public static Item powder_lead; - public static Item powder_tantalium; - public static Item powder_neptunium; - public static Item powder_polonium; - public static Item powder_co60; - public static Item powder_sr90; - public static Item powder_sr90_tiny; - public static Item powder_au198; - public static Item powder_ra226; - public static Item powder_i131; - public static Item powder_i131_tiny; - public static Item powder_xe135; - public static Item powder_xe135_tiny; - public static Item powder_cs137; - public static Item powder_cs137_tiny; - public static Item powder_at209; - public static Item powder_schrabidium; - public static Item powder_schrabidate; - - public static Item powder_aluminium; - public static Item powder_beryllium; - public static Item powder_copper; - public static Item powder_gold; - public static Item powder_iron; - public static Item powder_titanium; - public static Item powder_tungsten; - public static Item powder_uranium; - public static Item powder_plutonium; - public static Item dust; - public static Item dust_tiny; - public static Item fallout; - public static Item powder_power; - - public static Item powder_thorium; - public static Item powder_iodine; - public static Item powder_neodymium; - public static Item powder_astatine; - public static Item powder_caesium; - - public static Item powder_strontium; - public static Item powder_cobalt; - public static Item powder_bromine; - public static Item powder_niobium; - public static Item powder_tennessine; - public static Item powder_cerium; - - public static Item powder_advanced_alloy; - public static Item powder_tcalloy; - public static Item powder_coal; - public static Item powder_coal_tiny; - public static Item powder_combine_steel; - public static Item powder_diamond; - public static Item powder_emerald; - public static Item powder_lapis; - public static Item powder_quartz; - public static Item powder_magnetized_tungsten; - public static Item powder_chlorophyte; - public static Item powder_red_copper; - public static Item powder_steel; - public static Item powder_lithium; - public static Item powder_zirconium; - public static Item powder_sodium; - - public static Item powder_australium; - - public static Item powder_dura_steel; - public static Item powder_polymer; - public static Item powder_bakelite; - public static Item powder_euphemium; - public static Item powder_meteorite; - - public static Item powder_steel_tiny; - public static Item powder_lithium_tiny; - public static Item powder_neodymium_tiny; - public static Item powder_cobalt_tiny; - public static Item powder_niobium_tiny; - public static Item powder_cerium_tiny; - public static Item powder_lanthanium_tiny; - public static Item powder_actinium_tiny; - public static Item powder_boron_tiny; - public static Item powder_meteorite_tiny; - - public static Item powder_coltan_ore; - public static Item powder_coltan; - public static Item powder_tektite; - public static Item powder_paleogenite; - public static Item powder_paleogenite_tiny; - public static Item powder_impure_osmiridium; - public static Item powder_borax; - public static Item powder_chlorocalcite; - public static Item powder_molysite; - - public static Item powder_lanthanium; - public static Item powder_actinium; - public static Item powder_boron; - public static Item powder_desh; - public static Item powder_semtex_mix; - public static Item powder_desh_mix; - public static Item powder_desh_ready; - public static Item powder_nitan_mix; - public static Item powder_spark_mix; - public static Item powder_yellowcake; - public static Item powder_magic; - public static Item powder_balefire; - public static Item powder_sawdust; - public static Item powder_flux; - public static Item powder_fertilizer; - - public static Item fragment_neodymium; - public static Item fragment_cobalt; - public static Item fragment_niobium; - public static Item fragment_cerium; - public static Item fragment_lanthanium; - public static Item fragment_actinium; - public static Item fragment_boron; - public static Item fragment_meteorite; - public static Item fragment_coltan; - public static Item chunk_ore; - - public static Item biomass; - public static Item biomass_compressed; - public static Item bio_wafer; - public static Item plant_item; - - public static Item coil_copper; - public static Item coil_copper_torus; - public static Item coil_tungsten; - public static Item tank_steel; - public static Item motor; - public static Item motor_desh; - public static Item motor_bismuth; - public static Item centrifuge_element; - public static Item reactor_core; - public static Item rtg_unit; - public static Item levitation_unit; - - public static Item coil_advanced_alloy; - public static Item coil_advanced_torus; - public static Item coil_magnetized_tungsten; - public static Item coil_gold; - public static Item coil_gold_torus; - public static Item component_limiter; - public static Item component_emitter; - public static Item chlorine_pinwheel; - public static Item deuterium_filter; - - public static Item parts_legendary; - - public static Item circuit; - - public static Item crt_display; - public static ItemEnumMulti circuit_star_piece; - public static ItemEnumMulti circuit_star_component; - public static Item circuit_star; - - public static Item assembly_nuke; - - public static Item casing; - - public static Item wiring_red_copper; - public static Item shell; - public static Item pipe; - public static Item fins_flat; - public static Item fins_small_steel; - public static Item fins_big_steel; - public static Item fins_tri_steel; - public static Item fins_quad_titanium; - public static Item sphere_steel; - public static Item pedestal_steel; - public static Item dysfunctional_reactor; - public static Item blade_titanium; - public static Item turbine_titanium; - public static Item blade_tungsten; - public static Item turbine_tungsten; - public static Item ring_starmetal; - public static Item flywheel_beryllium; - - public static Item gear_large; - public static Item sawblade; - - public static Item toothpicks; - public static Item ducttape; - public static Item catalyst_clay; - - public static Item warhead_generic_small; - public static Item warhead_generic_medium; - public static Item warhead_generic_large; - public static Item warhead_incendiary_small; - public static Item warhead_incendiary_medium; - public static Item warhead_incendiary_large; - public static Item warhead_cluster_small; - public static Item warhead_cluster_medium; - public static Item warhead_cluster_large; - public static Item warhead_buster_small; - public static Item warhead_buster_medium; - public static Item warhead_buster_large; - public static Item warhead_nuclear; - public static Item warhead_mirv; - public static Item warhead_volcano; - - public static Item fuel_tank_small; - public static Item fuel_tank_medium; - public static Item fuel_tank_large; - - public static Item thruster_small; - public static Item thruster_medium; - public static Item thruster_large; - - public static Item sat_head_mapper; - public static Item sat_head_scanner; - public static Item sat_head_radar; - public static Item sat_head_laser; - public static Item sat_head_resonator; - - public static Item seg_10; - public static Item seg_15; - public static Item seg_20; - - public static Item chopper_head; - public static Item chopper_gun; - public static Item chopper_torso; - public static Item chopper_tail; - public static Item chopper_wing; - public static Item chopper_blades; - public static Item combine_scrap; - - public static Item shimmer_head; - public static Item shimmer_axe_head; - public static Item shimmer_handle; - - //public static Item telepad; - public static Item entanglement_kit; - - public static Item stamp_stone_flat; - public static Item stamp_stone_plate; - public static Item stamp_stone_wire; - public static Item stamp_stone_circuit; - public static Item stamp_iron_flat; - public static Item stamp_iron_plate; - public static Item stamp_iron_wire; - public static Item stamp_iron_circuit; - public static Item stamp_steel_flat; - public static Item stamp_steel_plate; - public static Item stamp_steel_wire; - public static Item stamp_steel_circuit; - public static Item stamp_titanium_flat; - public static Item stamp_titanium_plate; - public static Item stamp_titanium_wire; - public static Item stamp_titanium_circuit; - public static Item stamp_obsidian_flat; - public static Item stamp_obsidian_plate; - public static Item stamp_obsidian_wire; - public static Item stamp_obsidian_circuit; - public static Item stamp_desh_flat; - public static Item stamp_desh_plate; - public static Item stamp_desh_wire; - public static Item stamp_desh_circuit; - public static Item stamp_book; - - public static Item stamp_357; - public static Item stamp_44; - public static Item stamp_9; - public static Item stamp_50; - - public static Item stamp_desh_357; - public static Item stamp_desh_44; - public static Item stamp_desh_9; - public static Item stamp_desh_50; - - public static Item blades_steel; - public static Item blades_titanium; - public static Item blades_advanced_alloy; - public static Item blades_desh; - - public static Item mold_base; - public static Item mold; - public static Item scraps; - public static Item ingot_raw; - public static Item plate_cast; - public static Item plate_welded; - public static Item heavy_component; - public static Item wire_fine; - public static Item wire_dense; - public static Item part_barrel_light; - public static Item part_barrel_heavy; - public static Item part_receiver_light; - public static Item part_receiver_heavy; - public static Item part_mechanism; - public static Item part_stock; - public static Item part_grip; - - public static Item part_lithium; - public static Item part_beryllium; - public static Item part_carbon; - public static Item part_copper; - public static Item part_plutonium; - - public static Item laser_crystal_co2; - public static Item laser_crystal_bismuth; - public static Item laser_crystal_cmb; - public static Item laser_crystal_dnt; - public static Item laser_crystal_digamma; - - public static Item thermo_element; - - public static Item catalytic_converter; - public static Item crackpipe; - - public static Item pellet_rtg_depleted; - - public static Item pellet_rtg_radium; - public static Item pellet_rtg_weak; - public static Item pellet_rtg; - public static Item pellet_rtg_strontium; - public static Item pellet_rtg_cobalt; - public static Item pellet_rtg_actinium; - public static Item pellet_rtg_polonium; - public static Item pellet_rtg_americium; - public static Item pellet_rtg_gold; - public static Item pellet_rtg_lead; - - public static Item tritium_deuterium_cake; - - public static Item piston_selenium; - public static Item piston_set; - public static Item drillbit; - - //public static Item crystal_energy; - //public static Item pellet_coolant; - - public static Item rune_blank; - public static Item rune_isa; - public static Item rune_dagaz; - public static Item rune_hagalaz; - public static Item rune_jera; - public static Item rune_thurisaz; - - public static Item ams_catalyst_blank; - public static Item ams_catalyst_aluminium; - public static Item ams_catalyst_beryllium; - public static Item ams_catalyst_caesium; - public static Item ams_catalyst_cerium; - public static Item ams_catalyst_cobalt; - public static Item ams_catalyst_copper; - public static Item ams_catalyst_dineutronium; - public static Item ams_catalyst_euphemium; - public static Item ams_catalyst_iron; - public static Item ams_catalyst_lithium; - public static Item ams_catalyst_niobium; - public static Item ams_catalyst_schrabidium; - public static Item ams_catalyst_strontium; - public static Item ams_catalyst_thorium; - public static Item ams_catalyst_tungsten; - - public static Item ams_focus_blank; - public static Item ams_focus_limiter; - public static Item ams_focus_booster; - - public static Item ams_muzzle; - - public static Item ams_lens; - - public static Item ams_core_sing; - public static Item ams_core_wormhole; - public static Item ams_core_eyeofharmony; - public static Item ams_core_thingy; - - public static Item fusion_shield_tungsten; - public static Item fusion_shield_desh; - public static Item fusion_shield_chlorophyte; - public static Item fusion_shield_vaporwave; - - public static Item cell_empty; - public static Item cell_uf6; - public static Item cell_puf6; - public static Item cell_deuterium; - public static Item cell_tritium; - public static Item cell_sas3; - public static Item cell_antimatter; - public static Item cell_anti_schrabidium; - public static Item cell_balefire; - - public static Item demon_core_open; - public static Item demon_core_closed; - - public static Item pa_coil; - - public static Item particle_empty; - public static Item particle_hydrogen; - public static Item particle_copper; - public static Item particle_lead; - public static Item particle_aproton; - public static Item particle_aelectron; - public static Item particle_amat; - public static Item particle_aschrab; - public static Item particle_higgs; - public static Item particle_muon; - public static Item particle_tachyon; - public static Item particle_strange; - public static Item particle_dark; - public static Item particle_sparkticle; - public static Item particle_digamma; - public static Item particle_lutece; - - public static Item pellet_antimatter; - public static Item singularity; - public static Item singularity_counter_resonant; - public static Item singularity_super_heated; - public static Item black_hole; - public static Item singularity_spark; - public static Item crystal_xen; - public static Item inf_water; - public static Item inf_water_mk2; - - public static Item fuel_additive; - - public static Item canister_empty; - public static Item canister_full; - public static Item canister_napalm; - - public static Item gas_empty; - public static Item gas_full; - - public static Item fluid_tank_full; - public static Item fluid_tank_empty; - public static Item fluid_tank_lead_full; - public static Item fluid_tank_lead_empty; - public static Item fluid_barrel_full; - public static Item fluid_barrel_empty; - public static Item fluid_barrel_infinite; - public static Item pipette; - public static Item pipette_boron; - public static Item pipette_laboratory; - public static Item siphon; - - public static Item disperser_canister_empty; - public static Item disperser_canister; - public static Item glyphid_gland; - public static Item glyphid_gland_empty; - - public static Item syringe_empty; - public static Item syringe_antidote; - public static Item syringe_poison; - public static Item syringe_awesome; - public static Item syringe_metal_empty; - public static Item syringe_metal_stimpak; - public static Item syringe_metal_medx; - public static Item syringe_metal_psycho; - public static Item syringe_metal_super; - public static Item syringe_taint; - public static Item syringe_mkunicorn; - public static Item iv_empty; - public static Item iv_blood; - public static Item iv_xp_empty; - public static Item iv_xp; - public static Item radaway; - public static Item radaway_strong; - public static Item radaway_flush; - public static Item radx; - public static Item siox; - public static Item pill_herbal; - public static Item xanax; - public static Item fmn; - public static Item five_htp; - public static Item med_bag; - public static Item pill_iodine; - public static Item plan_c; - public static Item pill_red; - public static Item stealth_boy; - public static Item gas_mask_filter; - public static Item gas_mask_filter_mono; - public static Item gas_mask_filter_combo; - public static Item gas_mask_filter_rag; - public static Item gas_mask_filter_piss; - public static Item jetpack_tank; - public static Item gun_kit_1; - public static Item gun_kit_2; - public static Item cbt_device; - public static Item cigarette; - - public static Item can_empty; - public static Item can_smart; - public static Item can_creature; - public static Item can_redbomb; - public static Item can_mrsugar; - public static Item can_overcharge; - public static Item can_luna; - public static Item can_bepis; - public static Item can_breen; - public static Item can_mug; - public static Item mucho_mango; - public static Item bottle_empty; - public static Item bottle_nuka; - public static Item bottle_cherry; - public static Item bottle_quantum; - public static Item bottle_sparkle; - public static Item bottle_rad; - public static Item bottle2_empty; - public static Item bottle2_korl; - public static Item bottle2_fritz; - public static Item bottle2_korl_special; - public static Item bottle2_fritz_special; - public static Item flask_empty; - public static Item flask_infusion; - public static Item chocolate_milk; - public static Item coffee; - public static Item coffee_radium; - public static Item chocolate; - public static Item cap_nuka; - public static Item cap_quantum; - public static Item cap_sparkle; - public static Item cap_rad; - public static Item cap_korl; - public static Item cap_fritz; - public static Item ring_pull; - public static Item bdcl; - //public static Item canned_beef; - //public static Item canned_tuna; - //public static Item canned_mystery; - //public static Item canned_pashtet; - //public static Item canned_cheese; - //public static Item canned_jizz; - //public static Item canned_milk; - //public static Item canned_ass; - //public static Item canned_pizza; - //public static Item canned_tube; - //public static Item canned_tomato; - //public static Item canned_asbestos; - //public static Item canned_bhole; - //public static Item canned_hotdogs; - //public static Item canned_leftovers; - //public static Item canned_yogurt; - //public static Item canned_stew; - //public static Item canned_chinese; - //public static Item canned_oil; - //public static Item canned_fist; - //public static Item canned_spam; - //public static Item canned_fried; - //public static Item canned_napalm; - //public static Item canned_diesel; - //public static Item canned_kerosene; - //public static Item canned_recursion; - //public static Item canned_bark; - public static ItemEnumMulti canned_conserve; - public static Item can_key; - - public static Item boat_rubber; - public static Item cart; - public static Item train; - public static Item drone; - - public static Item coin_creeper; - public static Item coin_radiation; - public static Item coin_maskman; - public static Item coin_worm; - public static Item coin_ufo; - //public static Item coin_siege; - //public static Item source; - - public static Item rod_empty; - public static Item rod; - public static Item rod_dual_empty; - public static Item rod_dual; - public static Item rod_quad_empty; - public static Item rod_quad; - - public static Item rod_zirnox_empty; - public static Item rod_zirnox_tritium; - public static ItemEnumMulti rod_zirnox; - - public static Item rod_zirnox_natural_uranium_fuel_depleted; - public static Item rod_zirnox_uranium_fuel_depleted; - public static Item rod_zirnox_thorium_fuel_depleted; - public static Item rod_zirnox_mox_fuel_depleted; - public static Item rod_zirnox_plutonium_fuel_depleted; - public static Item rod_zirnox_u233_fuel_depleted; - public static Item rod_zirnox_u235_fuel_depleted; - public static Item rod_zirnox_les_fuel_depleted; - public static Item rod_zirnox_zfb_mox_depleted; - - public static Item waste_natural_uranium; - public static Item waste_uranium; - public static Item waste_thorium; - public static Item waste_mox; - public static Item waste_plutonium; - public static Item waste_u233; - public static Item waste_u235; - public static Item waste_schrabidium; - public static Item waste_zfb_mox; - - public static Item waste_plate_u233; - public static Item waste_plate_u235; - public static Item waste_plate_mox; - public static Item waste_plate_pu239; - public static Item waste_plate_sa326; - public static Item waste_plate_ra226be; - public static Item waste_plate_pu238be; - - public static Item pile_rod_uranium; - public static Item pile_rod_pu239; - public static Item pile_rod_plutonium; - public static Item pile_rod_source; - public static Item pile_rod_boron; - public static Item pile_rod_lithium; - public static Item pile_rod_detector; - - public static Item plate_fuel_u233; - public static Item plate_fuel_u235; - public static Item plate_fuel_mox; - public static Item plate_fuel_pu239; - public static Item plate_fuel_sa326; - public static Item plate_fuel_ra226be; - public static Item plate_fuel_pu238be; - - public static Item pwr_fuel; - public static Item pwr_fuel_hot; - public static Item pwr_fuel_depleted; - - public static Item rbmk_lid; - public static Item rbmk_lid_glass; - public static Item rbmk_fuel_empty; - public static ItemRBMKRod rbmk_fuel_ueu; - public static ItemRBMKRod rbmk_fuel_meu; - public static ItemRBMKRod rbmk_fuel_heu233; - public static ItemRBMKRod rbmk_fuel_heu235; - public static ItemRBMKRod rbmk_fuel_thmeu; - public static ItemRBMKRod rbmk_fuel_lep; - public static ItemRBMKRod rbmk_fuel_mep; - public static ItemRBMKRod rbmk_fuel_hep239; - public static ItemRBMKRod rbmk_fuel_hep241; - public static ItemRBMKRod rbmk_fuel_lea; - public static ItemRBMKRod rbmk_fuel_mea; - public static ItemRBMKRod rbmk_fuel_hea241; - public static ItemRBMKRod rbmk_fuel_hea242; - public static ItemRBMKRod rbmk_fuel_men; - public static ItemRBMKRod rbmk_fuel_hen; - public static ItemRBMKRod rbmk_fuel_mox; - public static ItemRBMKRod rbmk_fuel_les; - public static ItemRBMKRod rbmk_fuel_mes; - public static ItemRBMKRod rbmk_fuel_hes; - public static ItemRBMKRod rbmk_fuel_leaus; - public static ItemRBMKRod rbmk_fuel_heaus; - public static ItemRBMKRod rbmk_fuel_po210be; - public static ItemRBMKRod rbmk_fuel_ra226be; - public static ItemRBMKRod rbmk_fuel_pu238be; - public static ItemRBMKRod rbmk_fuel_balefire_gold; - public static ItemRBMKRod rbmk_fuel_flashlead; - public static ItemRBMKRod rbmk_fuel_balefire; - public static ItemRBMKRod rbmk_fuel_zfb_bismuth; - public static ItemRBMKRod rbmk_fuel_zfb_pu241; - public static ItemRBMKRod rbmk_fuel_zfb_am_mix; - public static ItemRBMKRod rbmk_fuel_drx; - public static ItemRBMKRod rbmk_fuel_test; - //public static ItemRBMKRod rbmk_fuel_curve; - public static ItemRBMKPellet rbmk_pellet_ueu; - public static ItemRBMKPellet rbmk_pellet_meu; - public static ItemRBMKPellet rbmk_pellet_heu233; - public static ItemRBMKPellet rbmk_pellet_heu235; - public static ItemRBMKPellet rbmk_pellet_thmeu; - public static ItemRBMKPellet rbmk_pellet_lep; - public static ItemRBMKPellet rbmk_pellet_mep; - public static ItemRBMKPellet rbmk_pellet_hep239; - public static ItemRBMKPellet rbmk_pellet_hep241; - public static ItemRBMKPellet rbmk_pellet_lea; - public static ItemRBMKPellet rbmk_pellet_mea; - public static ItemRBMKPellet rbmk_pellet_hea241; - public static ItemRBMKPellet rbmk_pellet_hea242; - public static ItemRBMKPellet rbmk_pellet_men; - public static ItemRBMKPellet rbmk_pellet_hen; - public static ItemRBMKPellet rbmk_pellet_mox; - public static ItemRBMKPellet rbmk_pellet_les; - public static ItemRBMKPellet rbmk_pellet_mes; - public static ItemRBMKPellet rbmk_pellet_hes; - public static ItemRBMKPellet rbmk_pellet_leaus; - public static ItemRBMKPellet rbmk_pellet_heaus; - public static ItemRBMKPellet rbmk_pellet_po210be; - public static ItemRBMKPellet rbmk_pellet_ra226be; - public static ItemRBMKPellet rbmk_pellet_pu238be; - public static ItemRBMKPellet rbmk_pellet_balefire_gold; - public static ItemRBMKPellet rbmk_pellet_flashlead; - public static ItemRBMKPellet rbmk_pellet_balefire; - public static ItemRBMKPellet rbmk_pellet_zfb_bismuth; - public static ItemRBMKPellet rbmk_pellet_zfb_pu241; - public static ItemRBMKPellet rbmk_pellet_zfb_am_mix; - public static ItemRBMKPellet rbmk_pellet_drx; - - public static Item watz_pellet; - public static Item watz_pellet_depleted; - - public static Item icf_pellet_empty; - public static Item icf_pellet; - public static Item icf_pellet_depleted; - - public static Item scrap_plastic; - public static Item scrap; - public static Item scrap_oil; - public static Item scrap_nuclear; - public static Item trinitite; - public static Item nuclear_waste_long; - public static Item nuclear_waste_long_tiny; - public static Item nuclear_waste_short; - public static Item nuclear_waste_short_tiny; - public static Item nuclear_waste_long_depleted; - public static Item nuclear_waste_long_depleted_tiny; - public static Item nuclear_waste_short_depleted; - public static Item nuclear_waste_short_depleted_tiny; - public static Item nuclear_waste; - public static Item nuclear_waste_tiny; - public static Item nuclear_waste_vitrified; - public static Item nuclear_waste_vitrified_tiny; - - public static Item debris_graphite; - public static Item debris_metal; - public static Item debris_fuel; - public static Item debris_concrete; - public static Item debris_exchanger; - public static Item debris_shrapnel; - public static Item debris_element; - - public static Item containment_box; - public static Item plastic_bag; - - public static Item ammo_bag; - public static Item ammo_bag_infinite; - public static Item casing_bag; - - public static Item test_nuke_igniter; - public static Item test_nuke_propellant; - public static Item test_nuke_tier1_shielding; - public static Item test_nuke_tier2_shielding; - public static Item test_nuke_tier1_bullet; - public static Item test_nuke_tier2_bullet; - public static Item test_nuke_tier1_target; - public static Item test_nuke_tier2_target; - - public static Item cordite; - public static Item ballistite; - public static Item ball_dynamite; - public static Item ball_tnt; - public static Item ball_tatb; - public static Item ball_fireclay; - - public static Item pellet_cluster; - public static Item powder_fire; - public static Item powder_ice; - public static Item powder_poison; - public static Item powder_thermite; - public static Item pellet_gas; - public static Item magnetron; - public static Item pellet_buckshot; - public static Item pellet_charged; - - 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; - public static Item dosimeter; - public static Item geiger_counter; - public static Item digamma_diagnostic; - public static Item pollution_detector; - public static Item ore_density_scanner; - public static Item survey_scanner; - public static Item mirror_tool; - public static Item rbmk_tool; - public static Item coltan_tool; - public static Item power_net_tool; - public static Item analysis_tool; - public static Item coupling_tool; - public static Item drone_linker; - public static Item radar_linker; - public static Item settings_tool; - - public static Item template_folder; - public static Item journal_pip; - public static Item journal_bj; - public static Item journal_silver; - public static Item assembly_template; - public static Item chemistry_template; - public static Item chemistry_icon; - public static Item crucible_template; - public static Item fluid_identifier; - public static Item fluid_identifier_multi; - public static Item fluid_icon; - public static Item siren_track; - public static Item fluid_duct; - - public static Item bobmazon; - public static Item bobmazon_hidden; - - public static Item launch_code_piece; - public static Item launch_code; - public static Item launch_key; - - public static Item missile_assembly; - public static Item missile_generic; - public static Item missile_anti_ballistic; - public static Item missile_incendiary; - public static Item missile_cluster; - public static Item missile_buster; - public static Item missile_decoy; - public static Item missile_strong; - public static Item missile_incendiary_strong; - public static Item missile_cluster_strong; - public static Item missile_buster_strong; - public static Item missile_emp_strong; - public static Item missile_burst; - public static Item missile_inferno; - public static Item missile_rain; - public static Item missile_drill; - public static Item missile_nuclear; - public static Item missile_nuclear_cluster; - public static Item missile_volcano; - public static Item missile_doomsday; - public static Item missile_doomsday_rusted; - public static Item missile_taint; - public static Item missile_micro; - public static Item missile_bhole; - public static Item missile_schrabidium; - public static Item missile_emp; - public static Item missile_shuttle; - public static Item missile_stealth; - public static Item missile_test; - - public static Item mp_thruster_10_kerosene; - public static Item mp_thruster_10_kerosene_tec; - public static Item mp_thruster_10_solid; - public static Item mp_thruster_10_xenon; - public static Item mp_thruster_15_kerosene; - public static Item mp_thruster_15_kerosene_tec; - public static Item mp_thruster_15_kerosene_dual; - public static Item mp_thruster_15_kerosene_triple; - public static Item mp_thruster_15_solid; - public static Item mp_thruster_15_solid_hexdecuple; - public static Item mp_thruster_15_hydrogen; - public static Item mp_thruster_15_hydrogen_dual; - public static Item mp_thruster_15_balefire_short; - public static Item mp_thruster_15_balefire; - public static Item mp_thruster_15_balefire_large; - public static Item mp_thruster_15_balefire_large_rad; - public static Item mp_thruster_20_kerosene; - public static Item mp_thruster_20_kerosene_dual; - public static Item mp_thruster_20_kerosene_triple; - public static Item mp_thruster_20_solid; - public static Item mp_thruster_20_solid_multi; - public static Item mp_thruster_20_solid_multier; - - public static Item mp_stability_10_flat; - public static Item mp_stability_10_cruise; - public static Item mp_stability_10_space; - public static Item mp_stability_15_flat; - public static Item mp_stability_15_thin; - public static Item mp_stability_15_soyuz; - public static Item mp_stability_20_flat; - - public static Item mp_fuselage_10_kerosene; - public static Item mp_fuselage_10_kerosene_camo; - public static Item mp_fuselage_10_kerosene_desert; - public static Item mp_fuselage_10_kerosene_sky; - public static Item mp_fuselage_10_kerosene_flames; - public static Item mp_fuselage_10_kerosene_insulation; - public static Item mp_fuselage_10_kerosene_sleek; - public static Item mp_fuselage_10_kerosene_metal; - public static Item mp_fuselage_10_kerosene_taint; - - public static Item mp_fuselage_10_solid; - public static Item mp_fuselage_10_solid_flames; - public static Item mp_fuselage_10_solid_insulation; - public static Item mp_fuselage_10_solid_sleek; - public static Item mp_fuselage_10_solid_soviet_glory; - public static Item mp_fuselage_10_solid_cathedral; - public static Item mp_fuselage_10_solid_moonlit; - public static Item mp_fuselage_10_solid_battery; - public static Item mp_fuselage_10_solid_duracell; - - public static Item mp_fuselage_10_xenon; - public static Item mp_fuselage_10_xenon_bhole; - - public static Item mp_fuselage_10_long_kerosene; - public static Item mp_fuselage_10_long_kerosene_camo; - public static Item mp_fuselage_10_long_kerosene_desert; - public static Item mp_fuselage_10_long_kerosene_sky; - public static Item mp_fuselage_10_long_kerosene_flames; - public static Item mp_fuselage_10_long_kerosene_insulation; - public static Item mp_fuselage_10_long_kerosene_sleek; - public static Item mp_fuselage_10_long_kerosene_metal; - public static Item mp_fuselage_10_long_kerosene_taint; - public static Item mp_fuselage_10_long_kerosene_dash; - public static Item mp_fuselage_10_long_kerosene_vap; - - public static Item mp_fuselage_10_long_solid; - public static Item mp_fuselage_10_long_solid_flames; - public static Item mp_fuselage_10_long_solid_insulation; - public static Item mp_fuselage_10_long_solid_sleek; - public static Item mp_fuselage_10_long_solid_soviet_glory; - public static Item mp_fuselage_10_long_solid_bullet; - public static Item mp_fuselage_10_long_solid_silvermoonlight; - - public static Item mp_fuselage_10_15_kerosene; - public static Item mp_fuselage_10_15_solid; - public static Item mp_fuselage_10_15_hydrogen; - public static Item mp_fuselage_10_15_balefire; - - public static Item mp_fuselage_15_kerosene; - public static Item mp_fuselage_15_kerosene_camo; - public static Item mp_fuselage_15_kerosene_desert; - public static Item mp_fuselage_15_kerosene_sky; - public static Item mp_fuselage_15_kerosene_insulation; - public static Item mp_fuselage_15_kerosene_metal; - public static Item mp_fuselage_15_kerosene_decorated; - public static Item mp_fuselage_15_kerosene_steampunk; - public static Item mp_fuselage_15_kerosene_polite; - public static Item mp_fuselage_15_kerosene_blackjack; - public static Item mp_fuselage_15_kerosene_lambda; - public static Item mp_fuselage_15_kerosene_minuteman; - public static Item mp_fuselage_15_kerosene_pip; - public static Item mp_fuselage_15_kerosene_taint; - public static Item mp_fuselage_15_kerosene_yuck; - - public static Item mp_fuselage_15_solid; - public static Item mp_fuselage_15_solid_insulation; - public static Item mp_fuselage_15_solid_desh; - public static Item mp_fuselage_15_solid_soviet_glory; - public static Item mp_fuselage_15_solid_soviet_stank; - public static Item mp_fuselage_15_solid_faust; - public static Item mp_fuselage_15_solid_silvermoonlight; - public static Item mp_fuselage_15_solid_snowy; - public static Item mp_fuselage_15_solid_panorama; - public static Item mp_fuselage_15_solid_roses; - public static Item mp_fuselage_15_solid_mimi; - - public static Item mp_fuselage_15_hydrogen; - public static Item mp_fuselage_15_hydrogen_cathedral; - - public static Item mp_fuselage_15_balefire; - - public static Item mp_fuselage_15_20_kerosene; - public static Item mp_fuselage_15_20_kerosene_magnusson; - public static Item mp_fuselage_15_20_solid; - - public static Item mp_fuselage_20_kerosene; - - public static Item mp_warhead_10_he; - public static Item mp_warhead_10_incendiary; - public static Item mp_warhead_10_buster; - public static Item mp_warhead_10_nuclear; - public static Item mp_warhead_10_nuclear_large; - public static Item mp_warhead_10_taint; - public static Item mp_warhead_10_cloud; - public static Item mp_warhead_15_he; - public static Item mp_warhead_15_incendiary; - public static Item mp_warhead_15_nuclear; - public static Item mp_warhead_15_nuclear_shark; - public static Item mp_warhead_15_nuclear_mimi; - public static Item mp_warhead_15_boxcar; - public static Item mp_warhead_15_n2; - public static Item mp_warhead_15_balefire; - public static Item mp_warhead_15_turbine; - public static Item mp_warhead_20_he; - - public static Item mp_chip_1; - public static Item mp_chip_2; - public static Item mp_chip_3; - public static Item mp_chip_4; - public static Item mp_chip_5; - - public static Item missile_skin_camo; - public static Item missile_skin_desert; - public static Item missile_skin_flames; - public static Item missile_skin_manly_pink; - public static Item missile_skin_orange_insulation; - public static Item missile_skin_sleek; - public static Item missile_skin_soviet_glory; - public static Item missile_skin_soviet_stank; - public static Item missile_skin_metal; - - public static Item missile_custom; - - public static Item missile_soyuz; - public static Item missile_soyuz_lander; - public static Item sat_mapper; - public static Item sat_scanner; - public static Item sat_radar; - public static Item sat_laser; - public static Item sat_foeq; - public static Item sat_resonator; - public static Item sat_miner; - public static Item sat_lunar_miner; - public static Item sat_gerald; - public static Item sat_chip; - public static Item sat_interface; - public static Item sat_coord; - public static Item sat_designator; - public static Item sat_relay; - - public static ItemEnumMulti ammo_misc; - public static ItemEnumMulti ammo_shell; - public static ItemEnumMulti ammo_fireext; - - public static Item ammo_dgk; - public static Item ammo_arty; - public static Item ammo_himars; - - public static Item gun_b92; - public static Item gun_b92_ammo; - public static Item gun_fireext; - - public static Item gun_debug; - public static Item ammo_debug; - - public static Item gun_pepperbox; - public static Item gun_light_revolver; - public static Item gun_light_revolver_atlas; - public static Item gun_light_revolver_dani; - public static Item gun_henry; - public static Item gun_henry_lincoln; - public static Item gun_greasegun; - public static Item gun_maresleg; - public static Item gun_maresleg_akimbo; - public static Item gun_maresleg_broken; - public static Item gun_flaregun; - public static Item gun_heavy_revolver; - public static Item gun_heavy_revolver_lilmac; - public static Item gun_heavy_revolver_protege; - public static Item gun_carbine; - public static Item gun_am180; - public static Item gun_liberator; - public static Item gun_congolake; - public static Item gun_flamer; - public static Item gun_flamer_topaz; - public static Item gun_flamer_daybreaker; - public static Item gun_uzi; - public static Item gun_uzi_akimbo; - public static Item gun_spas12; - public static Item gun_panzerschreck; - public static Item gun_g3; - public static Item gun_g3_zebra; - public static Item gun_stinger; - public static Item gun_chemthrower; - public static Item gun_m2; - public static Item gun_autoshotgun; - public static Item gun_autoshotgun_shredder; - public static Item gun_autoshotgun_sexy; - public static Item gun_quadro; - public static Item gun_lag; - public static Item gun_minigun; - public static Item gun_minigun_dual; - public static Item gun_minigun_lacunae; - public static Item gun_missile_launcher; - public static Item gun_tesla_cannon; - public static Item gun_laser_pistol; - public static Item gun_laser_pistol_pew_pew; - public static Item gun_laser_pistol_morning_glory; - public static Item gun_stg77; - public static Item gun_tau; - public static Item gun_fatman; - public static Item gun_lasrifle; - public static Item gun_coilgun; - public static Item gun_hangman; - public static Item gun_mas36; - public static Item gun_bolter; - public static Item gun_folly; - public static Item gun_aberrator; - public static Item gun_aberrator_eott; - public static Item gun_double_barrel; - public static Item gun_double_barrel_sacred_dragon; - - public static Item gun_charge_thrower; - - public static Item ammo_standard; - public static Item ammo_secret; - - public static Item weapon_mod_test; - public static Item weapon_mod_generic; - public static Item weapon_mod_special; - public static Item weapon_mod_caliber; - - public static Item crucible; - - public static Item stick_dynamite; - public static Item stick_dynamite_fishing; - public static Item stick_tnt; - public static Item stick_semtex; - public static Item stick_c4; - - public static Item grenade_generic; - public static Item grenade_strong; - public static Item grenade_frag; - public static Item grenade_fire; - public static Item grenade_shrapnel; - public static Item grenade_cluster; - public static Item grenade_flare; - public static Item grenade_electric; - public static Item grenade_poison; - public static Item grenade_gas; - public static Item grenade_pulse; - public static Item grenade_plasma; - public static Item grenade_tau; - public static Item grenade_schrabidium; - public static Item grenade_lemon; - public static Item grenade_gascan; - public static Item grenade_kyiv; - public static Item grenade_mk2; - public static Item grenade_aschrab; - public static Item grenade_nuke; - public static Item grenade_nuclear; - public static Item grenade_zomg; - public static Item grenade_black_hole; - public static Item grenade_cloud; - public static Item grenade_pink_cloud; - public static Item ullapool_caber; - - public static Item grenade_if_generic; - public static Item grenade_if_he; - public static Item grenade_if_bouncy; - public static Item grenade_if_sticky; - public static Item grenade_if_impact; - public static Item grenade_if_incendiary; - public static Item grenade_if_toxic; - public static Item grenade_if_concussion; - public static Item grenade_if_brimstone; - public static Item grenade_if_mystery; - public static Item grenade_if_spark; - public static Item grenade_if_hopwire; - public static Item grenade_if_null; - - public static Item grenade_smart; - public static Item grenade_mirv; - public static Item grenade_breach; - public static Item grenade_burst; - - public static Item nuclear_waste_pearl; - - public static Item weaponized_starblaster_cell; - - public static Item bomb_waffle; - public static Item schnitzel_vegan; - public static Item cotton_candy; - public static Item apple_lead; - public static Item apple_schrabidium; - public static Item tem_flakes; - public static Item glowing_stew; - public static Item balefire_scrambled; - public static Item balefire_and_ham; - public static Item lemon; - public static Item definitelyfood; - public static Item loops; - public static Item loop_stew; - public static Item spongebob_macaroni; - public static Item fooditem; - public static Item twinkie; - public static Item static_sandwich; - public static Item pudding; - public static Item pancake; - public static Item nugget; - public static Item peas; - public static Item marshmallow; - public static Item cheese; - public static Item quesadilla; - public static Item glyphid_meat; - public static Item glyphid_meat_grilled; - public static Item egg_glyphid; - - public static Item med_ipecac; - public static Item med_ptsd; - public static Item med_schizophrenia; - - public static Item canteen_vodka; - public static Item canteen_fab; - - public static Item defuser; - public static Item reacher; - public static Item bismuth_tool; - public static Item meltdown_tool; - - public static Item flame_pony; - public static Item flame_conspiracy; - public static Item flame_politics; - public static Item flame_opinion; - - //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; - public static Item boy_propellant; - public static Item boy_bullet; - public static Item boy_target; - public static Item boy_shielding; - //public static Item man_explosive; - public static Item man_igniter; - public static Item man_core; - public static Item mike_core; - public static Item mike_deut; - public static Item mike_cooling_unit; - public static Item tsar_core; - public static Item fleija_igniter; - public static Item fleija_propellant; - public static Item fleija_core; - public static Item solinium_igniter; - public static Item solinium_propellant; - public static Item solinium_core; - public static Item n2_charge; - public static Item egg_balefire_shard; - public static Item egg_balefire; - - public static Item custom_tnt; - public static Item custom_nuke; - public static Item custom_hydro; - public static Item custom_amat; - public static Item custom_dirty; - public static Item custom_schrab; - public static Item custom_fall; - - public static Item battery_generic; - public static Item battery_advanced; - public static Item battery_lithium; - public static Item battery_schrabidium; - public static Item battery_spark; - public static Item battery_trixite; - public static Item battery_creative; - - public static Item battery_red_cell; - public static Item battery_red_cell_6; - public static Item battery_red_cell_24; - public static Item battery_advanced_cell; - public static Item battery_advanced_cell_4; - public static Item battery_advanced_cell_12; - public static Item battery_lithium_cell; - public static Item battery_lithium_cell_3; - public static Item battery_lithium_cell_6; - public static Item battery_schrabidium_cell; - public static Item battery_schrabidium_cell_2; - public static Item battery_schrabidium_cell_4; - public static Item battery_spark_cell_6; - public static Item battery_spark_cell_25; - public static Item battery_spark_cell_100; - public static Item battery_spark_cell_1000; - public static Item battery_spark_cell_2500; - public static Item battery_spark_cell_10000; - public static Item battery_spark_cell_power; - public static Item cube_power; - - public static Item battery_sc_uranium; - public static Item battery_sc_technetium; - public static Item battery_sc_plutonium; - public static Item battery_sc_polonium; - public static Item battery_sc_gold; - public static Item battery_sc_lead; - public static Item battery_sc_americium; - - public static Item battery_potato; - public static Item battery_potatos; - public static Item hev_battery; - public static Item fusion_core; - public static Item fusion_core_infinite; - public static Item energy_core; - public static Item fuse; - public static Item redcoil_capacitor; - public static Item euphemium_capacitor; - //by using these in crafting table recipes, i'm running the risk of making my recipes too greg-ian (which i don't like) - //in the event that i forget about the meaning of the word "sparingly", please throw a brick at my head - public static Item screwdriver; - public static Item screwdriver_desh; - public static Item hand_drill; - public static Item hand_drill_desh; - public static Item wrench_archineer; - public static Item chemistry_set; - public static Item chemistry_set_boron; - public static Item blowtorch; - public static Item acetylene_torch; - public static Item boltgun; - public static Item overfuse; - public static Item arc_electrode; - public static Item arc_electrode_burnt; - - public static Item upgrade_muffler; - - public static Item upgrade_template; - public static Item upgrade_speed_1; - public static Item upgrade_speed_2; - public static Item upgrade_speed_3; - public static Item upgrade_effect_1; - public static Item upgrade_effect_2; - public static Item upgrade_effect_3; - public static Item upgrade_power_1; - public static Item upgrade_power_2; - public static Item upgrade_power_3; - public static Item upgrade_fortune_1; - public static Item upgrade_fortune_2; - public static Item upgrade_fortune_3; - public static Item upgrade_afterburn_1; - public static Item upgrade_afterburn_2; - public static Item upgrade_afterburn_3; - public static Item upgrade_overdrive_1; - public static Item upgrade_overdrive_2; - public static Item upgrade_overdrive_3; - public static Item upgrade_radius; - public static Item upgrade_health; - public static Item upgrade_smelter; - public static Item upgrade_shredder; - public static Item upgrade_centrifuge; - public static Item upgrade_crystallizer; - public static Item upgrade_nullifier; - 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; - public static Item euphemium_helmet; - public static Item euphemium_plate; - public static Item euphemium_legs; - public static Item euphemium_boots; - public static Item apple_euphemium; - public static Item watch; - - public static Item goggles; - public static Item ashglasses; - public static Item gas_mask; - public static Item gas_mask_m65; - public static Item gas_mask_mono; - public static Item gas_mask_olde; - public static Item mask_rag; - public static Item mask_piss; - public static Item hat; - public static Item beta; - public static Item no9; - - public static Item t45_helmet; - public static Item t45_plate; - public static Item t45_legs; - public static Item t45_boots; - public static Item steamsuit_helmet; - 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; - - public static Item schrabidium_helmet; - public static Item schrabidium_plate; - public static Item schrabidium_legs; - public static Item schrabidium_boots; - public static Item titanium_helmet; - public static Item titanium_plate; - public static Item titanium_legs; - public static Item titanium_boots; - public static Item steel_helmet; - public static Item steel_plate; - public static Item steel_legs; - public static Item steel_boots; - public static Item alloy_helmet; - public static Item alloy_plate; - public static Item alloy_legs; - public static Item alloy_boots; - public static Item cmb_helmet; - public static Item cmb_plate; - public static Item cmb_legs; - public static Item cmb_boots; - public static Item paa_plate; - public static Item paa_legs; - public static Item paa_boots; - public static Item asbestos_helmet; - public static Item asbestos_plate; - public static Item asbestos_legs; - public static Item asbestos_boots; - public static Item security_helmet; - public static Item security_plate; - public static Item security_legs; - public static Item security_boots; - public static Item cobalt_helmet; - public static Item cobalt_plate; - public static Item cobalt_legs; - public static Item cobalt_boots; - public static Item starmetal_helmet; - public static Item starmetal_plate; - public static Item starmetal_legs; - public static Item starmetal_boots; - public static Item dnt_helmet; - public static Item dnt_plate; - public static Item dnt_legs; - public static Item dnt_boots; - public static Item ajr_helmet; - public static Item ajr_plate; - public static Item ajr_legs; - public static Item ajr_boots; - public static Item ajro_helmet; - public static Item ajro_plate; - public static Item ajro_legs; - public static Item ajro_boots; - public static Item rpa_helmet; - public static Item rpa_plate; - public static Item rpa_legs; - public static Item rpa_boots; - public static Item bismuth_helmet; - public static Item bismuth_plate; - public static Item bismuth_legs; - public static Item bismuth_boots; - public static Item bj_helmet; - public static Item bj_plate; - public static Item bj_plate_jetpack; - public static Item bj_legs; - public static Item bj_boots; - public static Item envsuit_helmet; - public static Item envsuit_plate; - public static Item envsuit_legs; - public static Item envsuit_boots; - public static Item hev_helmet; - public static Item hev_plate; - public static Item hev_legs; - public static Item hev_boots; - public static Item fau_helmet; - public static Item fau_plate; - public static Item fau_legs; - public static Item fau_boots; - public static Item dns_helmet; - public static Item dns_plate; - public static Item dns_legs; - public static Item dns_boots; - public static Item taurun_helmet; - public static Item taurun_plate; - public static Item taurun_legs; - public static Item taurun_boots; - public static Item trenchmaster_helmet; - public static Item trenchmaster_plate; - public static Item trenchmaster_legs; - public static Item trenchmaster_boots; - public static Item zirconium_legs; - public static Item robes_helmet; - public static Item robes_plate; - public static Item robes_legs; - public static Item robes_boots; - - public static Item jetpack_boost; - public static Item jetpack_break; - public static Item jetpack_fly; - public static Item jetpack_vector; - public static Item wings_limp; - public static Item wings_murk; - - public static Item jackt; - public static Item jackt2; - - public static Item schrabidium_sword; - public static Item schrabidium_pickaxe; - public static Item schrabidium_axe; - public static Item schrabidium_shovel; - public static Item schrabidium_hoe; - public static Item titanium_sword; - public static Item titanium_pickaxe; - public static Item titanium_axe; - public static Item titanium_shovel; - public static Item titanium_hoe; - public static Item steel_sword; - public static Item steel_pickaxe; - public static Item steel_axe; - public static Item steel_shovel; - public static Item steel_hoe; - public static Item alloy_sword; - public static Item alloy_pickaxe; - public static Item alloy_axe; - public static Item alloy_shovel; - public static Item alloy_hoe; - public static Item cmb_sword; - public static Item cmb_pickaxe; - public static Item cmb_axe; - public static Item cmb_shovel; - public static Item cmb_hoe; - public static Item elec_sword; - public static Item elec_pickaxe; - public static Item elec_axe; - public static Item elec_shovel; - public static Item desh_sword; - public static Item desh_pickaxe; - public static Item desh_axe; - public static Item desh_shovel; - public static Item desh_hoe; - public static Item cobalt_sword; - public static Item cobalt_pickaxe; - public static Item cobalt_axe; - public static Item cobalt_shovel; - public static Item cobalt_hoe; - public static Item cobalt_decorated_sword; - public static Item cobalt_decorated_pickaxe; - public static Item cobalt_decorated_axe; - public static Item cobalt_decorated_shovel; - public static Item cobalt_decorated_hoe; - public static Item starmetal_sword; - public static Item starmetal_pickaxe; - public static Item starmetal_axe; - public static Item starmetal_shovel; - public static Item starmetal_hoe; - public static Item smashing_hammer; - public static Item centri_stick; - public static Item drax; - public static Item drax_mk2; - public static Item drax_mk3; - public static Item bismuth_pickaxe; - public static Item bismuth_axe; - public static Item volcanic_pickaxe; - public static Item volcanic_axe; - public static Item chlorophyte_pickaxe; - public static Item chlorophyte_axe; - public static Item mese_pickaxe; - public static Item mese_axe; - public static Item dnt_sword; - public static Item dwarven_pickaxe; - - public static Item meteorite_sword; - public static Item meteorite_sword_seared; - public static Item meteorite_sword_reforged; - public static Item meteorite_sword_hardened; - public static Item meteorite_sword_alloyed; - public static Item meteorite_sword_machined; - public static Item meteorite_sword_treated; - public static Item meteorite_sword_etched; - public static Item meteorite_sword_bred; - public static Item meteorite_sword_irradiated; - public static Item meteorite_sword_fused; - public static Item meteorite_sword_baleful; - - public static Item matchstick; - public static Item balefire_and_steel; - - public static Item mask_of_infamy; - - public static Item schrabidium_hammer; - public static Item shimmer_sledge; - public static Item shimmer_axe; - public static Item bottle_opener; - public static Item pch; //for compat please do not hit me - public static Item wood_gavel; - public static Item lead_gavel; - public static Item diamond_gavel; - public static Item mese_gavel; - - public static Item crowbar; - - public static Item wrench; - public static Item wrench_flipped; - public static Item memespoon; - - public static Item multitool_hit; - public static Item multitool_dig; - public static Item multitool_silk; - public static Item multitool_ext; - public static Item multitool_miner; - public static Item multitool_beam; - public static Item multitool_sky; - public static Item multitool_mega; - public static Item multitool_joule; - public static Item multitool_decon; - - public static Item saw; - public static Item bat; - public static Item bat_nail; - public static Item golf_club; - public static Item pipe_rusty; - public static Item pipe_lead; - public static Item reer_graar; - public static Item stopsign; - public static Item sopsign; - public static Item chernobylsign; - - public static Item crystal_horn; - public static Item crystal_charred; - - public static Item attachment_mask; - public static Item attachment_mask_mono; - public static Item back_tesla; - public static Item servo_set; - public static Item servo_set_desh; - public static Item pads_rubber; - public static Item pads_slime; - public static Item pads_static; - public static Item cladding_paint; - public static Item cladding_rubber; - public static Item cladding_lead; - public static Item cladding_desh; - public static Item cladding_ghiorsium; - public static Item cladding_iron; - public static Item cladding_obsidian; - public static Item insert_kevlar; - public static Item insert_sapi; - public static Item insert_esapi; - public static Item insert_xsapi; - public static Item insert_steel; - public static Item insert_du; - public static Item insert_polonium; - public static Item insert_ghiorsium; - public static Item insert_era; - public static Item insert_yharonite; - public static Item insert_doxium; - public static Item armor_polish; - public static Item bandaid; - public static Item serum; - public static Item quartz_plutonium; - public static Item morning_glory; - public static Item lodestone; - public static Item horseshoe_magnet; - public static Item industrial_magnet; - public static Item bathwater; - public static Item bathwater_mk2; - public static Item spider_milk; - public static Item ink; - public static Item heart_piece; - public static Item heart_container; - public static Item heart_booster; - public static Item heart_fab; - public static Item black_diamond; - public static Item wd40; - public static Item scrumpy; - public static Item wild_p; - public static Item fabsols_vodka; - public static Item shackles; - public static Item injector_5htp; - public static Item injector_knife; - public static Item medal_liquidator; - public static Item bottled_cloud; - public static Item protection_charm; - public static Item meteor_charm; - public static Item neutrino_lens; - public static Item gas_tester; - public static Item defuser_gold; - public static Item ballistic_gauntlet; - public static Item night_vision; - public static Item card_aos; - public static Item card_qos; - public static Item australium_iii; - public static Item armor_battery; - public static Item armor_battery_mk2; - public static Item armor_battery_mk3; - - public static Item hazmat_helmet; - public static Item hazmat_plate; - public static Item hazmat_legs; - public static Item hazmat_boots; - public static Item hazmat_helmet_red; - public static Item hazmat_plate_red; - public static Item hazmat_legs_red; - public static Item hazmat_boots_red; - public static Item hazmat_helmet_grey; - public static Item hazmat_plate_grey; - public static Item hazmat_legs_grey; - public static Item hazmat_boots_grey; - public static Item liquidator_helmet; - public static Item liquidator_plate; - public static Item liquidator_legs; - public static Item liquidator_boots; - - public static Item hazmat_paa_helmet; - public static Item hazmat_paa_plate; - public static Item hazmat_paa_legs; - public static Item hazmat_paa_boots; - - public static Item wand; - public static Item wand_s; - public static Item wand_d; - - public static Item structure_single; - public static Item structure_solid; - public static Item structure_pattern; - public static Item structure_randomized; - public static Item structure_randomly; - public static Item structure_custommachine; - - public static Item rod_of_discord; - - public static Item cape_radiation; - public static Item cape_gasmask; - public static Item cape_schrabidium; - public static Item cape_hidden; - - public static Item nuke_starter_kit; - public static Item nuke_advanced_kit; - public static Item nuke_commercially_kit; - public static Item nuke_electric_kit; - public static Item gadget_kit; - public static Item boy_kit; - public static Item man_kit; - public static Item mike_kit; - public static Item tsar_kit; - public static Item multi_kit; - public static Item custom_kit; - public static Item grenade_kit; - public static Item fleija_kit; - public static Item prototype_kit; - public static Item missile_kit; - public static Item t45_kit; - public static Item euphemium_kit; - public static Item solinium_kit; - public static Item hazmat_kit; - public static Item hazmat_red_kit; - public static Item hazmat_grey_kit; - public static Item kit_custom; - - public static Item legacy_toolbox; - public static Item toolbox; - - public static Item loot_10; - public static Item loot_15; - public static Item loot_misc; - - public static Item ammo_container; - - public static Item igniter; - public static Item detonator; - public static Item detonator_multi; - public static Item detonator_laser; - public static Item detonator_deadman; - public static Item detonator_de; - public static Item bomb_caller; - public static Item meteor_remote; - public static Item anchor_remote; - public static Item remote; - //public static Item turret_control; - public static Item turret_chip; - //public static Item turret_biometry; - - public static Item spawn_chopper; - public static Item spawn_worm; - public static Item spawn_ufo; - public static Item spawn_duck; - - public static Item key; - public static Item key_red; - public static Item key_red_cracked; - public static Item key_kit; - public static Item key_fake; - public static Item pin; - public static Item padlock_rusty; - public static Item padlock; - public static Item padlock_reinforced; - public static Item padlock_unbreakable; - - public static Item mech_key; - - public static Item bucket_mud; - public static Item bucket_acid; - public static Item bucket_toxic; - public static Item bucket_schrabidic_acid; - public static Item bucket_sulfuric_acid; - - public static Item door_metal; - public static Item door_office; - public static Item door_bunker; - public static Item door_red; - - public static Item sliding_blast_door_skin; - - public static Item record_lc; - public static Item record_ss; - public static Item record_vc; - public static Item record_glass; - - public static Item book_guide; - public static Item book_lore; - public static Item holotape_image; - public static Item holotape_damaged; - public static Item clay_tablet; - - public static Item polaroid; - public static Item glitch; - public static Item letter; - public static Item book_secret; - public static Item book_of_; - public static Item page_of_; - public static Item book_lemegeton; - public static Item burnt_bark; - - public static Item chlorine1; - public static Item chlorine2; - public static Item chlorine3; - public static Item chlorine4; - public static Item chlorine5; - public static Item chlorine6; - public static Item chlorine7; - public static Item chlorine8; - public static Item pc1; - public static Item pc2; - public static Item pc3; - public static Item pc4; - public static Item pc5; - public static Item pc6; - public static Item pc7; - public static Item pc8; - public static Item cloud1; - public static Item cloud2; - public static Item cloud3; - public static Item cloud4; - public static Item cloud5; - public static Item cloud6; - public static Item cloud7; - public static Item cloud8; - public static Item orange1; - public static Item orange2; - public static Item orange3; - public static Item orange4; - public static Item orange5; - public static Item orange6; - public static Item orange7; - public static Item orange8; - public static Item nothing; - - public static Item achievement_icon; - public static Item bob_metalworks; - public static Item bob_assembly; - public static Item bob_chemistry; - public static Item bob_oil; - public static Item bob_nuclear; - - public static Item mysteryshovel; - public static Item memory; - - public static Item conveyor_wand; - - public static void initializeItem() { - - redstone_sword = new RedstoneSword(ToolMaterial.STONE).setUnlocalizedName("redstone_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":redstone_sword"); - big_sword = new BigSword(ToolMaterial.EMERALD).setUnlocalizedName("big_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":big_sword"); - - test_nuke_igniter = new Item().setUnlocalizedName("test_nuke_igniter").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_igniter"); - test_nuke_propellant = new Item().setUnlocalizedName("test_nuke_propellant").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_propellant"); - test_nuke_tier1_shielding = new Item().setUnlocalizedName("test_nuke_tier1_shielding").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_shielding"); - test_nuke_tier2_shielding = new Item().setUnlocalizedName("test_nuke_tier2_shielding").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_shielding"); - test_nuke_tier1_bullet = new Item().setUnlocalizedName("test_nuke_tier1_bullet").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_bullet"); - test_nuke_tier2_bullet = new Item().setUnlocalizedName("test_nuke_tier2_bullet").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_bullet"); - test_nuke_tier1_target = new Item().setUnlocalizedName("test_nuke_tier1_target").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_target"); - test_nuke_tier2_target = new Item().setUnlocalizedName("test_nuke_tier2_target").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_target"); - - ingot_th232 = new Item().setUnlocalizedName("ingot_th232").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_th232"); - ingot_uranium = new Item().setUnlocalizedName("ingot_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_uranium"); - ingot_u233 = new Item().setUnlocalizedName("ingot_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_u233"); - ingot_u235 = new Item().setUnlocalizedName("ingot_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_u235"); - ingot_u238 = new Item().setUnlocalizedName("ingot_u238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_u238"); - ingot_u238m2 = new ItemUnstable(350, 200).setUnlocalizedName("ingot_u238m2").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_u238m2"); - ingot_plutonium = new Item().setUnlocalizedName("ingot_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_plutonium"); - ingot_pu238 = new Item().setUnlocalizedName("ingot_pu238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu238"); - ingot_pu239 = new Item().setUnlocalizedName("ingot_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu239"); - ingot_pu240 = new Item().setUnlocalizedName("ingot_pu240").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu240"); - ingot_pu241 = new Item().setUnlocalizedName("ingot_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu241"); - ingot_pu_mix = new Item().setUnlocalizedName("ingot_pu_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu_mix"); - ingot_am241 = new Item().setUnlocalizedName("ingot_am241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_am241"); - ingot_am242 = new Item().setUnlocalizedName("ingot_am242").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_am242"); - ingot_am_mix = new Item().setUnlocalizedName("ingot_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_am_mix"); - ingot_neptunium = new ItemCustomLore().setUnlocalizedName("ingot_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_neptunium"); - ingot_polonium = new Item().setUnlocalizedName("ingot_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polonium"); - ingot_technetium = new Item().setUnlocalizedName("ingot_technetium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_technetium"); - ingot_co60 = new Item().setUnlocalizedName("ingot_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_co60"); - ingot_sr90 = new Item().setUnlocalizedName("ingot_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_sr90"); - ingot_au198 = new Item().setUnlocalizedName("ingot_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_au198"); - ingot_pb209 = new Item().setUnlocalizedName("ingot_pb209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pb209"); - ingot_ra226 = new Item().setUnlocalizedName("ingot_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_ra226"); - ingot_titanium = new Item().setUnlocalizedName("ingot_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_titanium"); - ingot_cobalt = new Item().setUnlocalizedName("ingot_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cobalt"); - ingot_boron = new Item().setUnlocalizedName("ingot_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_boron"); - ingot_graphite = new Item().setUnlocalizedName("ingot_graphite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_graphite"); - ingot_firebrick = new Item().setUnlocalizedName("ingot_firebrick").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_firebrick"); - ingot_smore = new ItemFood(10, 20F, false).setUnlocalizedName("ingot_smore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_smore"); - sulfur = new Item().setUnlocalizedName("sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sulfur"); - nitra = new Item().setUnlocalizedName("nitra").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra"); - nitra_small = new Item().setUnlocalizedName("nitra_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra_small"); - - ingot_uranium_fuel = new Item().setUnlocalizedName("ingot_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_uranium_fuel"); - ingot_plutonium_fuel = new Item().setUnlocalizedName("ingot_plutonium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_plutonium_fuel"); - ingot_neptunium_fuel = new Item().setUnlocalizedName("ingot_neptunium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_neptunium_fuel"); - ingot_mox_fuel = new Item().setUnlocalizedName("ingot_mox_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_mox_fuel"); - ingot_americium_fuel = new Item().setUnlocalizedName("ingot_americium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_americium_fuel"); - ingot_schrabidium_fuel = new Item().setUnlocalizedName("ingot_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidium_fuel"); - ingot_thorium_fuel = new Item().setUnlocalizedName("ingot_thorium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_thorium_fuel"); - nugget_uranium_fuel = new Item().setUnlocalizedName("nugget_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_uranium_fuel"); - nugget_thorium_fuel = new Item().setUnlocalizedName("nugget_thorium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_thorium_fuel"); - nugget_plutonium_fuel = new Item().setUnlocalizedName("nugget_plutonium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_plutonium_fuel"); - nugget_neptunium_fuel = new Item().setUnlocalizedName("nugget_neptunium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_neptunium_fuel"); - nugget_mox_fuel = new Item().setUnlocalizedName("nugget_mox_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mox_fuel"); - nugget_americium_fuel = new Item().setUnlocalizedName("nugget_americium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_americium_fuel"); - nugget_schrabidium_fuel = new Item().setUnlocalizedName("nugget_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium_fuel"); - ingot_advanced_alloy = new Item().setUnlocalizedName("ingot_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_advanced_alloy"); - ingot_tcalloy = new Item().setUnlocalizedName("ingot_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tcalloy"); - ingot_cdalloy = new Item().setUnlocalizedName("ingot_cdalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cdalloy"); - ingot_bismuth_bronze = new Item().setUnlocalizedName("ingot_bismuth_bronze").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth_bronze"); - ingot_arsenic_bronze = new Item().setUnlocalizedName("ingot_arsenic_bronze").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_arsenic_bronze"); - ingot_bscco = new Item().setUnlocalizedName("ingot_bscco").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bscco"); - - niter = new Item().setUnlocalizedName("niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":salpeter"); - ingot_copper = new Item().setUnlocalizedName("ingot_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_copper"); - ingot_red_copper = new Item().setUnlocalizedName("ingot_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_red_copper"); - ingot_tungsten = new Item().setUnlocalizedName("ingot_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tungsten"); - ingot_aluminium = new Item().setUnlocalizedName("ingot_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_aluminium"); - fluorite = new Item().setUnlocalizedName("fluorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fluorite"); - ingot_beryllium = new Item().setUnlocalizedName("ingot_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_beryllium"); - ingot_steel = new Item().setUnlocalizedName("ingot_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_steel"); - plate_steel = new Item().setUnlocalizedName("plate_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_steel"); - plate_iron = new Item().setUnlocalizedName("plate_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_iron"); - ingot_lead = new Item().setUnlocalizedName("ingot_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lead"); - plate_lead = new Item().setUnlocalizedName("plate_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_lead"); - plate_dura_steel = new Item().setUnlocalizedName("plate_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dura_steel"); - ingot_schraranium = new ItemSchraranium().setUnlocalizedName("ingot_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schraranium"); - ingot_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidium"); - ingot_schrabidate = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidate"); - plate_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("plate_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_schrabidium"); - plate_copper = new Item().setUnlocalizedName("plate_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_copper"); - plate_gold = new Item().setUnlocalizedName("plate_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_gold"); - plate_advanced_alloy = new Item().setUnlocalizedName("plate_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_advanced_alloy"); - lithium = new Item().setUnlocalizedName("lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":lithium"); - ingot_zirconium = new Item().setUnlocalizedName("ingot_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_zirconium"); - ingot_semtex = new ItemLemon(4, 5, true).setUnlocalizedName("ingot_semtex").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_semtex"); - ingot_c4 = new Item().setUnlocalizedName("ingot_c4").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_c4"); - ingot_phosphorus = new Item().setUnlocalizedName("ingot_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_phosphorus"); - coil_advanced_alloy = new Item().setUnlocalizedName("coil_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_advanced_alloy"); - coil_advanced_torus = new Item().setUnlocalizedName("coil_advanced_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_advanced_torus"); - ingot_magnetized_tungsten = new Item().setUnlocalizedName("ingot_magnetized_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_magnetized_tungsten"); - ingot_combine_steel = new ItemCustomLore().setUnlocalizedName("ingot_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_combine_steel"); - plate_mixed = new Item().setUnlocalizedName("plate_mixed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_mixed"); - plate_paa = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_paa"); - pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel"); - drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium"); - plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium"); - plate_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium"); - bolt = new ItemAutogen(MaterialShapes.BOLT).oun("boltntm").setUnlocalizedName("bolt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt"); - bolt_spike = new ItemCustomLore().setUnlocalizedName("bolt_spike").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_spike"); - plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_polymer"); - plate_kevlar = new Item().setUnlocalizedName("plate_kevlar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_kevlar"); - plate_dineutronium = new Item().setUnlocalizedName("plate_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dineutronium"); - plate_desh = new Item().setUnlocalizedName("plate_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_desh"); - plate_bismuth = new ItemCustomLore().setUnlocalizedName("plate_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_bismuth"); - ingot_solinium = new Item().setUnlocalizedName("ingot_solinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_solinium"); - nugget_solinium = new Item().setUnlocalizedName("nugget_solinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_solinium"); - photo_panel = new Item().setUnlocalizedName("photo_panel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":photo_panel"); - 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"); - item_secret = new ItemEnumMulti(EnumSecretType.class, true, true).setUnlocalizedName("item_secret").setCreativeTab(null).setTextureName(RefStrings.MODID + ":item_secret"); - ingot_metal = new ItemEnumMulti(EnumIngotMetal.class, true, true).setUnlocalizedName("ingot_metal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_metal"); - chemical_dye = new ItemChemicalDye().setUnlocalizedName("chemical_dye").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chemical_dye"); - crayon = new ItemCrayon().setUnlocalizedName("crayon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crayon"); - - undefined = new ItemCustomLore().setUnlocalizedName("undefined").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":undefined"); - - billet_uranium = new Item().setUnlocalizedName("billet_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_uranium"); - billet_u233 = new Item().setUnlocalizedName("billet_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_u233"); - billet_u235 = new Item().setUnlocalizedName("billet_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_u235"); - billet_u238 = new Item().setUnlocalizedName("billet_u238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_u238"); - billet_th232 = new Item().setUnlocalizedName("billet_th232").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_th232"); - billet_plutonium = new Item().setUnlocalizedName("billet_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_plutonium"); - billet_pu238 = new Item().setUnlocalizedName("billet_pu238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu238"); - billet_pu239 = new Item().setUnlocalizedName("billet_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu239"); - billet_pu240 = new Item().setUnlocalizedName("billet_pu240").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu240"); - billet_pu241 = new Item().setUnlocalizedName("billet_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu241"); - billet_pu_mix = new Item().setUnlocalizedName("billet_pu_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu_mix"); - billet_am241 = new Item().setUnlocalizedName("billet_am241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_am241"); - billet_am242 = new Item().setUnlocalizedName("billet_am242").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_am242"); - billet_am_mix = new Item().setUnlocalizedName("billet_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_am_mix"); - billet_neptunium = new Item().setUnlocalizedName("billet_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_neptunium"); - billet_polonium = new Item().setUnlocalizedName("billet_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_polonium"); - billet_technetium = new Item().setUnlocalizedName("billet_technetium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_technetium"); - billet_cobalt = new Item().setUnlocalizedName("billet_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_cobalt"); - billet_co60 = new Item().setUnlocalizedName("billet_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_co60"); - billet_sr90 = new Item().setUnlocalizedName("billet_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_sr90"); - billet_au198 = new Item().setUnlocalizedName("billet_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_au198"); - billet_pb209 = new Item().setUnlocalizedName("billet_pb209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pb209"); - billet_ra226 = new Item().setUnlocalizedName("billet_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_ra226"); - billet_actinium = new Item().setUnlocalizedName("billet_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_actinium"); - billet_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("billet_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_schrabidium"); - billet_solinium = new Item().setUnlocalizedName("billet_solinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_solinium"); - billet_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("billet_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_gh336"); - billet_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_australium"); - billet_australium_lesser = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_australium_lesser").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_australium_lesser"); - billet_australium_greater = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_australium_greater").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_australium_greater"); - billet_uranium_fuel = new Item().setUnlocalizedName("billet_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_uranium_fuel"); - billet_thorium_fuel = new Item().setUnlocalizedName("billet_thorium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_thorium_fuel"); - billet_plutonium_fuel = new Item().setUnlocalizedName("billet_plutonium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_plutonium_fuel"); - billet_neptunium_fuel = new Item().setUnlocalizedName("billet_neptunium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_neptunium_fuel"); - billet_mox_fuel = new Item().setUnlocalizedName("billet_mox_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_mox_fuel"); - billet_americium_fuel = new Item().setUnlocalizedName("billet_americium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_americium_fuel"); - billet_les = new Item().setUnlocalizedName("billet_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_les"); - billet_schrabidium_fuel = new Item().setUnlocalizedName("billet_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_schrabidium_fuel"); - billet_hes = new Item().setUnlocalizedName("billet_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_hes"); - billet_po210be = new Item().setUnlocalizedName("billet_po210be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_po210be"); - billet_ra226be = new Item().setUnlocalizedName("billet_ra226be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_ra226be"); - billet_pu238be = new Item().setUnlocalizedName("billet_pu238be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu238be"); - billet_beryllium = new Item().setUnlocalizedName("billet_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_beryllium"); - billet_bismuth = new Item().setUnlocalizedName("billet_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_bismuth"); - billet_zirconium = new Item().setUnlocalizedName("billet_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zirconium"); - billet_yharonite = new Item().setUnlocalizedName("billet_yharonite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_yharonite"); - billet_balefire_gold = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_balefire_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_balefire_gold"); - billet_flashlead = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_flashlead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_flashlead"); - billet_zfb_bismuth = new Item().setUnlocalizedName("billet_zfb_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_bismuth"); - billet_zfb_pu241 = new Item().setUnlocalizedName("billet_zfb_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_pu241"); - billet_zfb_am_mix = new Item().setUnlocalizedName("billet_zfb_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_am_mix"); - billet_nuclear_waste = new Item().setUnlocalizedName("billet_nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_nuclear_waste"); - - ball_resin = new ItemCustomLore().setUnlocalizedName("ball_resin").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_resin"); - ingot_dura_steel = new ItemCustomLore().setUnlocalizedName("ingot_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dura_steel"); - ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polymer"); - ingot_bakelite = new ItemCustomLore().setUnlocalizedName("ingot_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bakelite"); - ingot_biorubber = new ItemCustomLore().setUnlocalizedName("ingot_biorubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_biorubber"); - ingot_rubber = new ItemCustomLore().setUnlocalizedName("ingot_rubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_rubber"); - ingot_pc = new ItemCustomLore().setUnlocalizedName("ingot_pc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pc"); - ingot_pvc = new ItemCustomLore().setUnlocalizedName("ingot_pvc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pvc"); - ingot_desh = new ItemCustomLore().setUnlocalizedName("ingot_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_desh"); - nugget_desh = new ItemCustomLore().setUnlocalizedName("nugget_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_desh"); - ingot_dineutronium = new ItemCustomLore().setUnlocalizedName("ingot_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dineutronium"); - nugget_dineutronium = new ItemCustomLore().setUnlocalizedName("nugget_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_dineutronium"); - powder_dineutronium = new ItemCustomLore().setUnlocalizedName("powder_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_dineutronium"); - ingot_starmetal = new ItemStarmetal().setUnlocalizedName("ingot_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_starmetal"); - ingot_gunmetal = new Item().setUnlocalizedName("ingot_gunmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gunmetal"); - plate_gunmetal = new Item().setUnlocalizedName("plate_gunmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_gunmetal"); - ingot_weaponsteel = new Item().setUnlocalizedName("ingot_weaponsteel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gunsteel"); - plate_weaponsteel = new Item().setUnlocalizedName("plate_weaponsteel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_gunsteel"); - ingot_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_saturnite"); - plate_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("plate_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_saturnite"); - ingot_ferrouranium = new ItemCustomLore().setUnlocalizedName("ingot_ferrouranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_ferrouranium"); - ingot_fiberglass = new ItemCustomLore().setUnlocalizedName("ingot_fiberglass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_fiberglass"); - ingot_asbestos = new ItemCustomLore().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos"); - powder_asbestos = new ItemCustomLore().setUnlocalizedName("powder_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_asbestos"); - ingot_electronium = new ItemCustomLore().setUnlocalizedName("ingot_electronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_electronium"); - nugget_zirconium = new ItemCustomLore().setUnlocalizedName("nugget_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_zirconium"); - nugget_mercury = new Item().setUnlocalizedName("nugget_mercury_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury_tiny"); - ingot_mercury = new ItemCustomLore().setUnlocalizedName("nugget_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury"); - bottle_mercury = new ItemCustomLore().setUnlocalizedName("bottle_mercury").setContainerItem(Items.glass_bottle).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bottle_mercury"); - ingot_calcium = new Item().setUnlocalizedName("ingot_calcium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_calcium"); - powder_calcium = new Item().setUnlocalizedName("powder_calcium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_calcium"); - ingot_cadmium = new Item().setUnlocalizedName("ingot_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cadmium"); - powder_cadmium = new Item().setUnlocalizedName("powder_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cadmium"); - powder_bismuth = new Item().setUnlocalizedName("powder_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bismuth"); - ingot_mud = new Item().setUnlocalizedName("ingot_mud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_mud"); - ingot_cft = new Item().setUnlocalizedName("ingot_cft").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cft"); - - ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct"); - - ore_bedrock = new ItemBedrockOre().setUnlocalizedName("ore_bedrock").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_bedrock"); - ore_centrifuged = new ItemBedrockOre().setUnlocalizedName("ore_centrifuged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_centrifuged"); - ore_cleaned = new ItemBedrockOre().setUnlocalizedName("ore_cleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_cleaned"); - ore_separated = new ItemBedrockOre().setUnlocalizedName("ore_separated").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_separated"); - ore_purified = new ItemBedrockOre().setUnlocalizedName("ore_purified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_purified"); - ore_nitrated = new ItemBedrockOre().setUnlocalizedName("ore_nitrated").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrated"); - ore_nitrocrystalline = new ItemBedrockOre().setUnlocalizedName("ore_nitrocrystalline").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrocrystalline"); - ore_deepcleaned = new ItemBedrockOre().setUnlocalizedName("ore_deepcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_deepcleaned"); - ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared"); - ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); - bedrock_ore_base = new ItemBedrockOreBase().setUnlocalizedName("bedrock_ore_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); - bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); - bedrock_ore_fragment = new ItemAutogen(MaterialShapes.FRAGMENT).aot(Mats.MAT_BISMUTH, "bedrock_ore_fragment_bismuth").setUnlocalizedName("bedrock_ore_fragment").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_fragment"); - - ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); - ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); - - ingot_meteorite = new ItemHot(200).setUnlocalizedName("ingot_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite"); - ingot_meteorite_forged = new ItemHot(200).setUnlocalizedName("ingot_meteorite_forged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite_forged"); - blade_meteorite = new ItemHot(200).setUnlocalizedName("blade_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_meteorite"); - ingot_steel_dusted = new ItemHotDusted(200).setUnlocalizedName("ingot_steel_dusted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_steel_dusted"); - ingot_chainsteel = new ItemHot(100).setUnlocalizedName("ingot_chainsteel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_chainsteel"); - - plate_armor_titanium = new Item().setUnlocalizedName("plate_armor_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_titanium"); - plate_armor_ajr = new Item().setUnlocalizedName("plate_armor_ajr").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_ajr"); - plate_armor_hev = new Item().setUnlocalizedName("plate_armor_hev").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_hev"); - plate_armor_lunar = new Item().setUnlocalizedName("plate_armor_lunar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_lunar"); - plate_armor_fau = new Item().setUnlocalizedName("plate_armor_fau").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_fau"); - plate_armor_dnt = new Item().setUnlocalizedName("plate_armor_dnt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_dnt"); - - oil_tar = new ItemEnumMulti(EnumTarType.class, true, true).setUnlocalizedName("oil_tar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":oil_tar"); - solid_fuel = new Item().setUnlocalizedName("solid_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel"); - solid_fuel_presto = new Item().setUnlocalizedName("solid_fuel_presto").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto"); - solid_fuel_presto_triplet = new Item().setUnlocalizedName("solid_fuel_presto_triplet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_triplet"); - solid_fuel_bf = new Item().setUnlocalizedName("solid_fuel_bf").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_bf"); - solid_fuel_presto_bf = new Item().setUnlocalizedName("solid_fuel_presto_bf").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_bf"); - solid_fuel_presto_triplet_bf = new Item().setUnlocalizedName("solid_fuel_presto_triplet_bf").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_triplet_bf"); - rocket_fuel = new Item().setUnlocalizedName("rocket_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rocket_fuel"); - coke = new ItemEnumMulti(EnumCokeType.class, true, true).setUnlocalizedName("coke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coke"); - lignite = new Item().setUnlocalizedName("lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":lignite"); - briquette = new ItemEnumMulti(EnumBriquetteType.class, true, true).setUnlocalizedName("briquette").setCreativeTab(MainRegistry.partsTab); - powder_lignite = new Item().setUnlocalizedName("powder_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lignite"); - coal_infernal = new Item().setUnlocalizedName("coal_infernal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coal_infernal"); - cinnebar = new Item().setUnlocalizedName("cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cinnebar"); - powder_ash = new ItemEnumMulti(EnumAshType.class, true, true).setUnlocalizedName("powder_ash").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ash"); - powder_limestone = new Item().setUnlocalizedName("powder_limestone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_limestone"); - powder_cement = new ItemLemon(2, 0.5F, false).setUnlocalizedName("powder_cement").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cement"); - - ingot_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gh336"); - nugget_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_gh336"); - - ingot_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("ingot_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_australium"); - nugget_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_australium"); - nugget_australium_lesser = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_australium_lesser").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_australium_lesser"); - nugget_australium_greater = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_australium_greater").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_australium_greater"); - - nugget_th232 = new Item().setUnlocalizedName("nugget_th232").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_th232"); - nugget_uranium = new Item().setUnlocalizedName("nugget_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_uranium"); - nugget_u233 = new Item().setUnlocalizedName("nugget_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_u233"); - nugget_u235 = new Item().setUnlocalizedName("nugget_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_u235"); - nugget_u238 = new Item().setUnlocalizedName("nugget_u238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_u238"); - nugget_plutonium = new Item().setUnlocalizedName("nugget_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_plutonium"); - nugget_pu238 = new Item().setUnlocalizedName("nugget_pu238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu238"); - nugget_pu239 = new Item().setUnlocalizedName("nugget_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu239"); - nugget_pu240 = new Item().setUnlocalizedName("nugget_pu240").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu240"); - nugget_pu241 = new Item().setUnlocalizedName("nugget_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu241"); - nugget_pu_mix = new Item().setUnlocalizedName("nugget_pu_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu_mix"); - nugget_am241 = new Item().setUnlocalizedName("nugget_am241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_am241"); - nugget_am242 = new Item().setUnlocalizedName("nugget_am242").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_am242"); - nugget_am_mix = new Item().setUnlocalizedName("nugget_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_am_mix"); - nugget_neptunium = new Item().setUnlocalizedName("nugget_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_neptunium"); - nugget_polonium = new Item().setUnlocalizedName("nugget_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_polonium"); - nugget_technetium = new Item().setUnlocalizedName("nugget_technetium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_technetium"); - nugget_cobalt = new Item().setUnlocalizedName("nugget_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_cobalt"); - nugget_co60 = new Item().setUnlocalizedName("nugget_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_co60"); - nugget_sr90 = new Item().setUnlocalizedName("nugget_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_sr90"); - nugget_au198 = new Item().setUnlocalizedName("nugget_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_au198"); - nugget_pb209 = new Item().setUnlocalizedName("nugget_pb209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pb209"); - nugget_ra226 = new Item().setUnlocalizedName("nugget_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_ra226"); - nugget_actinium = new Item().setUnlocalizedName("nugget_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_actinium"); - plate_titanium = new Item().setUnlocalizedName("plate_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_titanium"); - plate_aluminium = new Item().setUnlocalizedName("plate_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_aluminium"); - neutron_reflector = new Item().setUnlocalizedName("neutron_reflector").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":neutron_reflector"); - nugget_lead = new Item().setUnlocalizedName("nugget_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_lead"); - ingot_bismuth = new ItemCustomLore().setUnlocalizedName("ingot_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth"); - nugget_bismuth = new Item().setUnlocalizedName("nugget_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_bismuth"); - ingot_arsenic = new ItemCustomLore().setUnlocalizedName("ingot_arsenic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_arsenic"); - nugget_arsenic = new Item().setUnlocalizedName("nugget_arsenic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_arsenic"); - ingot_tantalium = new ItemCustomLore().setUnlocalizedName("ingot_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tantalium"); - nugget_tantalium = new ItemCustomLore().setUnlocalizedName("nugget_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_tantalium"); - ingot_silicon = new Item().setUnlocalizedName("ingot_silicon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_silicon"); - billet_silicon = new Item().setUnlocalizedName("billet_silicon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_silicon"); - nugget_silicon = new Item().setUnlocalizedName("nugget_silicon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_silicon"); - ingot_niobium = new Item().setUnlocalizedName("ingot_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_niobium"); - nugget_niobium = new Item().setUnlocalizedName("nugget_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_niobium"); - ingot_osmiridium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_osmiridium"); - nugget_osmiridium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("nugget_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_osmiridium"); - nugget_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("nugget_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium"); - nugget_beryllium = new Item().setUnlocalizedName("nugget_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_beryllium"); - hazmat_cloth = new Item().setUnlocalizedName("hazmat_cloth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth"); - hazmat_cloth_red = new Item().setUnlocalizedName("hazmat_cloth_red").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth_red"); - hazmat_cloth_grey = new Item().setUnlocalizedName("hazmat_cloth_grey").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth_grey"); - asbestos_cloth = new Item().setUnlocalizedName("asbestos_cloth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":asbestos_cloth"); - rag = new ItemRag().setUnlocalizedName("rag").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rag"); - rag_damp = new Item().setUnlocalizedName("rag_damp").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rag_damp"); - rag_piss = new Item().setUnlocalizedName("rag_piss").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rag_piss"); - filter_coal = new Item().setUnlocalizedName("filter_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":filter_coal"); - ingot_hes = new Item().setUnlocalizedName("ingot_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_hes"); - ingot_les = new Item().setUnlocalizedName("ingot_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_les"); - nugget_hes = new Item().setUnlocalizedName("nugget_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_hes"); - nugget_les = new Item().setUnlocalizedName("nugget_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_les"); - plate_combine_steel = new Item().setUnlocalizedName("plate_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_combine_steel"); - - crystal_coal = new Item().setUnlocalizedName("crystal_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_coal"); - crystal_iron = new Item().setUnlocalizedName("crystal_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_iron"); - crystal_gold = new Item().setUnlocalizedName("crystal_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_gold"); - crystal_redstone = new Item().setUnlocalizedName("crystal_redstone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_redstone"); - crystal_lapis = new Item().setUnlocalizedName("crystal_lapis").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lapis"); - crystal_diamond = new Item().setUnlocalizedName("crystal_diamond").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_diamond"); - crystal_uranium = new Item().setUnlocalizedName("crystal_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_uranium"); - crystal_thorium = new Item().setUnlocalizedName("crystal_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_thorium"); - crystal_plutonium = new Item().setUnlocalizedName("crystal_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_plutonium"); - crystal_titanium = new Item().setUnlocalizedName("crystal_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_titanium"); - crystal_sulfur = new Item().setUnlocalizedName("crystal_sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_sulfur"); - crystal_niter = new Item().setUnlocalizedName("crystal_niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_niter"); - crystal_copper = new Item().setUnlocalizedName("crystal_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_copper"); - crystal_tungsten = new Item().setUnlocalizedName("crystal_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_tungsten"); - crystal_aluminium = new Item().setUnlocalizedName("crystal_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_aluminium"); - crystal_fluorite = new Item().setUnlocalizedName("crystal_fluorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_fluorite"); - crystal_beryllium = new Item().setUnlocalizedName("crystal_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_beryllium"); - crystal_lead = new Item().setUnlocalizedName("crystal_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lead"); - crystal_schraranium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("crystal_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schraranium"); - crystal_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("crystal_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schrabidium"); - crystal_rare = new Item().setUnlocalizedName("crystal_rare").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_rare"); - crystal_phosphorus = new Item().setUnlocalizedName("crystal_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_phosphorus"); - crystal_lithium = new Item().setUnlocalizedName("crystal_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lithium"); - crystal_cobalt = new Item().setUnlocalizedName("crystal_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_cobalt"); - crystal_starmetal = new Item().setUnlocalizedName("crystal_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_starmetal"); - crystal_cinnebar = new Item().setUnlocalizedName("crystal_cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_cinnebar"); - crystal_trixite = new Item().setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite"); - crystal_osmiridium = new Item().setUnlocalizedName("crystal_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_osmiridium"); - gem_sodalite = new ItemCustomLore().setUnlocalizedName("gem_sodalite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_sodalite"); - gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); - gem_volcanic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_volcanic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_volcanic"); - gem_rad = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_rad").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_rad"); - gem_alexandrite = new ItemAlexandrite().setUnlocalizedName("gem_alexandrite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_alexandrite"); - - powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); - powder_tantalium = new ItemCustomLore().setUnlocalizedName("powder_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tantalium"); - powder_neptunium = new Item().setUnlocalizedName("powder_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neptunium"); - powder_polonium = new Item().setUnlocalizedName("powder_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_polonium"); - powder_co60 = new Item().setUnlocalizedName("powder_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_co60"); - powder_sr90 = new Item().setUnlocalizedName("powder_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sr90"); - powder_sr90_tiny = new Item().setUnlocalizedName("powder_sr90_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sr90_tiny"); - powder_i131 = new Item().setUnlocalizedName("powder_i131").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_i131"); - powder_i131_tiny = new Item().setUnlocalizedName("powder_i131_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_i131_tiny"); - powder_xe135 = new Item().setUnlocalizedName("powder_xe135").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_xe135"); - powder_xe135_tiny = new Item().setUnlocalizedName("powder_xe135_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_xe135_tiny"); - powder_cs137 = new Item().setUnlocalizedName("powder_cs137").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137"); - powder_cs137_tiny = new Item().setUnlocalizedName("powder_cs137_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137_tiny"); - powder_au198 = new Item().setUnlocalizedName("powder_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_au198"); - powder_ra226 = new Item().setUnlocalizedName("powder_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ra226"); - powder_at209 = new Item().setUnlocalizedName("powder_at209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_at209"); - powder_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("powder_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidium"); - powder_schrabidate = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("powder_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidate"); - powder_aluminium = new Item().setUnlocalizedName("powder_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_aluminium"); - powder_beryllium = new Item().setUnlocalizedName("powder_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_beryllium"); - powder_copper = new Item().setUnlocalizedName("powder_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_copper"); - powder_gold = new Item().setUnlocalizedName("powder_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_gold"); - powder_iron = new Item().setUnlocalizedName("powder_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_iron"); - powder_titanium = new Item().setUnlocalizedName("powder_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_titanium"); - powder_tungsten = new Item().setUnlocalizedName("powder_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tungsten"); - powder_uranium = new Item().setUnlocalizedName("powder_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_uranium"); - powder_plutonium = new Item().setUnlocalizedName("powder_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_plutonium"); - dust = new ItemCustomLore().setUnlocalizedName("dust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dust"); - dust_tiny = new Item().setUnlocalizedName("dust_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dust_tiny"); - fallout = new Item().setUnlocalizedName("fallout").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fallout"); - powder_advanced_alloy = new Item().setUnlocalizedName("powder_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_advanced_alloy"); - powder_tcalloy = new Item().setUnlocalizedName("powder_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tcalloy"); - powder_coal = new Item().setUnlocalizedName("powder_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal"); - powder_coal_tiny = new Item().setUnlocalizedName("powder_coal_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal_tiny"); - powder_combine_steel = new Item().setUnlocalizedName("powder_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_combine_steel"); - powder_diamond = new Item().setUnlocalizedName("powder_diamond").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_diamond"); - powder_emerald = new Item().setUnlocalizedName("powder_emerald").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_emerald"); - powder_lapis = new Item().setUnlocalizedName("powder_lapis").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lapis"); - powder_quartz = new Item().setUnlocalizedName("powder_quartz").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_quartz"); - powder_magnetized_tungsten = new Item().setUnlocalizedName("powder_magnetized_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_magnetized_tungsten"); - powder_chlorophyte = new Item().setUnlocalizedName("powder_chlorophyte").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_chlorophyte"); - powder_red_copper = new Item().setUnlocalizedName("powder_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_red_copper"); - powder_steel = new Item().setUnlocalizedName("powder_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_steel"); - powder_lithium = new Item().setUnlocalizedName("powder_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium"); - powder_zirconium = new Item().setUnlocalizedName("powder_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_zirconium"); - powder_sodium = new Item().setUnlocalizedName("powder_sodium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sodium"); - powder_power = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_power").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_energy_alt"); - powder_iodine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_iodine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_iodine"); - powder_thorium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_thorium"); - powder_neodymium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neodymium"); - powder_astatine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_astatine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_astatine"); - powder_caesium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_caesium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_caesium"); - powder_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_australium"); - powder_strontium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_strontium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_strontium"); - powder_cobalt = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cobalt"); - powder_bromine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_bromine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bromine"); - powder_niobium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_niobium"); - powder_tennessine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_tennessine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tennessine"); - powder_cerium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_cerium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cerium"); - powder_dura_steel = new ItemCustomLore().setUnlocalizedName("powder_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_dura_steel"); - powder_polymer = new ItemCustomLore().setUnlocalizedName("powder_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_polymer"); - powder_bakelite = new ItemCustomLore().setUnlocalizedName("powder_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bakelite"); - powder_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_euphemium"); - powder_meteorite = new Item().setUnlocalizedName("powder_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_meteorite"); - powder_lanthanium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lanthanium"); - powder_actinium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_actinium"); - powder_boron = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_boron"); - powder_semtex_mix = new Item().setUnlocalizedName("powder_semtex_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_semtex_mix"); - powder_desh_mix = new Item().setUnlocalizedName("powder_desh_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_desh_mix"); - powder_desh_ready = new Item().setUnlocalizedName("powder_desh_ready").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_desh_ready"); - powder_nitan_mix = new Item().setUnlocalizedName("powder_nitan_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_nitan_mix"); - powder_spark_mix = new Item().setUnlocalizedName("powder_spark_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_spark_mix"); - powder_desh = new Item().setUnlocalizedName("powder_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_desh"); - powder_steel_tiny = new Item().setUnlocalizedName("powder_steel_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_steel_tiny"); - powder_lithium_tiny = new Item().setUnlocalizedName("powder_lithium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium_tiny"); - powder_neodymium_tiny = new Item().setUnlocalizedName("powder_neodymium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neodymium_tiny"); - powder_cobalt_tiny = new Item().setUnlocalizedName("powder_cobalt_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cobalt_tiny"); - powder_niobium_tiny = new Item().setUnlocalizedName("powder_niobium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_niobium_tiny"); - powder_cerium_tiny = new Item().setUnlocalizedName("powder_cerium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cerium_tiny"); - powder_lanthanium_tiny = new Item().setUnlocalizedName("powder_lanthanium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lanthanium_tiny"); - powder_actinium_tiny = new Item().setUnlocalizedName("powder_actinium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_actinium_tiny"); - powder_boron_tiny = new Item().setUnlocalizedName("powder_boron_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_boron_tiny"); - powder_meteorite_tiny = new Item().setUnlocalizedName("powder_meteorite_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_meteorite_tiny"); - powder_yellowcake = new Item().setUnlocalizedName("powder_yellowcake").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_yellowcake"); - powder_magic = new Item().setUnlocalizedName("powder_magic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_magic"); - powder_balefire = new Item().setUnlocalizedName("powder_balefire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_balefire"); - powder_sawdust = new Item().setUnlocalizedName("powder_sawdust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sawdust"); - powder_flux = new Item().setUnlocalizedName("powder_flux").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_flux"); - powder_fertilizer = new ItemFertilizer().setUnlocalizedName("powder_fertilizer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_fertilizer"); - powder_coltan_ore = new Item().setUnlocalizedName("powder_coltan_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan_ore"); - powder_coltan = new Item().setUnlocalizedName("powder_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan"); - powder_tektite = new Item().setUnlocalizedName("powder_tektite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tektite"); - powder_paleogenite = new Item().setUnlocalizedName("powder_paleogenite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_paleogenite"); - powder_paleogenite_tiny = new Item().setUnlocalizedName("powder_paleogenite_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_paleogenite_tiny"); - powder_impure_osmiridium = new Item().setUnlocalizedName("powder_impure_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_impure_osmiridium"); - powder_borax = new Item().setUnlocalizedName("powder_borax").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_borax"); - powder_chlorocalcite = new Item().setUnlocalizedName("powder_chlorocalcite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_chlorocalcite"); - powder_molysite = new Item().setUnlocalizedName("powder_molysite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_molysite"); - - fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium"); - fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cobalt"); - fragment_niobium = new Item().setUnlocalizedName("fragment_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_niobium"); - fragment_cerium = new Item().setUnlocalizedName("fragment_cerium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cerium"); - fragment_lanthanium = new Item().setUnlocalizedName("fragment_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_lanthanium"); - fragment_actinium = new Item().setUnlocalizedName("fragment_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_actinium"); - fragment_boron = new Item().setUnlocalizedName("fragment_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_boron"); - fragment_meteorite = new Item().setUnlocalizedName("fragment_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_meteorite"); - fragment_coltan = new Item().setUnlocalizedName("fragment_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_coltan"); - chunk_ore = new ItemEnumMulti(EnumChunkType.class, true, true).setUnlocalizedName("chunk_ore").setCreativeTab(MainRegistry.partsTab); - - biomass = new Item().setUnlocalizedName("biomass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass"); - biomass_compressed = new Item().setUnlocalizedName("biomass_compressed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass_compressed"); - bio_wafer = new ItemLemon(4, 2F, false).setUnlocalizedName("bio_wafer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bio_wafer"); - plant_item = new ItemEnumMulti(EnumPlantType.class, true, true).setUnlocalizedName("plant_item").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plant_item"); - - coil_copper = new Item().setUnlocalizedName("coil_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_copper"); - coil_copper_torus = new Item().setUnlocalizedName("coil_copper_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_copper_torus"); - coil_tungsten = new Item().setUnlocalizedName("coil_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_tungsten"); - tank_steel = new Item().setUnlocalizedName("tank_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":tank_steel"); - 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"); - motor_bismuth = new Item().setUnlocalizedName("motor_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_bismuth"); - centrifuge_element = new Item().setUnlocalizedName("centrifuge_element").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_element"); - 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"); - levitation_unit = new Item().setUnlocalizedName("levitation_unit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":levitation_unit"); - 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"); - component_limiter = new Item().setUnlocalizedName("component_limiter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_limiter"); - component_emitter = new Item().setUnlocalizedName("component_emitter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_emitter"); - chlorine_pinwheel = new ItemInfiniteFluid(Fluids.CHLORINE, 1, 2).setUnlocalizedName("chlorine_pinwheel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chlorine_pinwheel"); - FluidTank.noDualUnload.add(chlorine_pinwheel); - ring_starmetal = new Item().setUnlocalizedName("ring_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ring_starmetal"); - flywheel_beryllium = new Item().setUnlocalizedName("flywheel_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flywheel_beryllium"); - deuterium_filter = new Item().setUnlocalizedName("deuterium_filter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":deuterium_filter"); - parts_legendary = new ItemEnumMulti(EnumLegendaryType.class, false, true).setUnlocalizedName("parts_legendary").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":parts_legendary"); - - gear_large = new ItemGear().setUnlocalizedName("gear_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gear_large"); - sawblade = new Item().setUnlocalizedName("sawblade").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sawblade"); - - shell = new ItemAutogen(MaterialShapes.SHELL).oun("shellntm").setUnlocalizedName("shell").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shell"); - pipe = new ItemAutogen(MaterialShapes.PIPE).oun("pipentm").setUnlocalizedName("pipe").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipe"); - fins_flat = new Item().setUnlocalizedName("fins_flat").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_flat"); - fins_small_steel = new Item().setUnlocalizedName("fins_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_small_steel"); - fins_big_steel = new Item().setUnlocalizedName("fins_big_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_big_steel"); - fins_tri_steel = new Item().setUnlocalizedName("fins_tri_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_tri_steel"); - fins_quad_titanium = new Item().setUnlocalizedName("fins_quad_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_quad_titanium"); - sphere_steel = new Item().setUnlocalizedName("sphere_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sphere_steel"); - pedestal_steel = new Item().setUnlocalizedName("pedestal_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pedestal_steel"); - dysfunctional_reactor = new Item().setUnlocalizedName("dysfunctional_reactor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dysfunctional_reactor"); - blade_titanium = new Item().setUnlocalizedName("blade_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_titanium"); - turbine_titanium = new Item().setUnlocalizedName("turbine_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":turbine_titanium"); - blade_tungsten = new Item().setUnlocalizedName("blade_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_tungsten"); - turbine_tungsten = new Item().setUnlocalizedName("turbine_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":turbine_tungsten"); - - toothpicks = new Item().setUnlocalizedName("toothpicks").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":toothpicks"); - ducttape = new Item().setUnlocalizedName("ducttape").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ducttape"); - catalyst_clay = new Item().setUnlocalizedName("catalyst_clay").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":catalyst_clay"); - - warhead_generic_small = new Item().setUnlocalizedName("warhead_generic_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_generic_small"); - warhead_generic_medium = new Item().setUnlocalizedName("warhead_generic_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_generic_medium"); - warhead_generic_large = new Item().setUnlocalizedName("warhead_generic_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_generic_large"); - warhead_incendiary_small = new Item().setUnlocalizedName("warhead_incendiary_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_incendiary_small"); - warhead_incendiary_medium = new Item().setUnlocalizedName("warhead_incendiary_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_incendiary_medium"); - warhead_incendiary_large = new Item().setUnlocalizedName("warhead_incendiary_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_incendiary_large"); - warhead_cluster_small = new Item().setUnlocalizedName("warhead_cluster_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_cluster_small"); - warhead_cluster_medium = new Item().setUnlocalizedName("warhead_cluster_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_cluster_medium"); - warhead_cluster_large = new Item().setUnlocalizedName("warhead_cluster_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_cluster_large"); - warhead_buster_small = new Item().setUnlocalizedName("warhead_buster_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_small"); - warhead_buster_medium = new Item().setUnlocalizedName("warhead_buster_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_medium"); - warhead_buster_large = new Item().setUnlocalizedName("warhead_buster_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_large"); - warhead_nuclear = new Item().setUnlocalizedName("warhead_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_nuclear"); - warhead_mirv = new Item().setUnlocalizedName("warhead_mirv").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_mirv"); - warhead_volcano = new Item().setUnlocalizedName("warhead_volcano").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_volcano"); - - fuel_tank_small = new Item().setUnlocalizedName("fuel_tank_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_small"); - fuel_tank_medium = new Item().setUnlocalizedName("fuel_tank_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_medium"); - fuel_tank_large = new Item().setUnlocalizedName("fuel_tank_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_large"); - - thruster_small = new Item().setUnlocalizedName("thruster_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_small"); - thruster_medium = new Item().setUnlocalizedName("thruster_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_medium"); - thruster_large = new Item().setUnlocalizedName("thruster_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_large"); - - sat_head_mapper = new Item().setUnlocalizedName("sat_head_mapper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_mapper"); - sat_head_scanner = new Item().setUnlocalizedName("sat_head_scanner").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_scanner"); - sat_head_radar = new Item().setUnlocalizedName("sat_head_radar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_radar"); - sat_head_laser = new Item().setUnlocalizedName("sat_head_laser").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_laser"); - sat_head_resonator = new Item().setUnlocalizedName("sat_head_resonator").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_resonator"); - - seg_10 = new Item().setUnlocalizedName("seg_10").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":seg_10"); - seg_15 = new Item().setUnlocalizedName("seg_15").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":seg_15"); - seg_20 = new Item().setUnlocalizedName("seg_20").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":seg_20"); - - chopper_head = new Item().setUnlocalizedName("chopper_head").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_head"); - chopper_gun = new Item().setUnlocalizedName("chopper_gun").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_gun"); - chopper_torso = new Item().setUnlocalizedName("chopper_torso").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_torso"); - chopper_tail = new Item().setUnlocalizedName("chopper_tail").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_tail"); - chopper_wing = new Item().setUnlocalizedName("chopper_wing").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_wing"); - chopper_blades = new Item().setUnlocalizedName("chopper_blades").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_blades"); - combine_scrap = new Item().setUnlocalizedName("combine_scrap").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":combine_scrap"); - - shimmer_head = new Item().setUnlocalizedName("shimmer_head").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_head_original"); - shimmer_axe_head = new Item().setUnlocalizedName("shimmer_axe_head").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_axe_head"); - shimmer_handle = new Item().setUnlocalizedName("shimmer_handle").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_handle"); - - entanglement_kit = new ItemCustomLore().setUnlocalizedName("entanglement_kit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":entanglement_kit"); - - circuit = new ItemCircuit().setUnlocalizedName("circuit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit"); - crt_display = new Item().setUnlocalizedName("crt_display").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crt_display"); - circuit_star_piece = (ItemEnumMulti) new ItemEnumMulti(ScrapType.class, true, true).setUnlocalizedName("circuit_star_piece").setCreativeTab(null); - circuit_star_component = (ItemEnumMulti) new ItemCircuitStarComponent().setUnlocalizedName("circuit_star_component").setCreativeTab(null); - circuit_star = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_star").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_star"); - assembly_nuke = new Item().setUnlocalizedName("assembly_nuke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nuke"); - casing = new ItemEnumMulti(ItemEnums.EnumCasingType.class, true, true).setUnlocalizedName("casing").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing"); - - wiring_red_copper = new ItemWiring().setUnlocalizedName("wiring_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wiring_red_copper"); - - pellet_rtg_depleted = new ItemRTGPelletDepleted().setContainerItem(plate_iron).setUnlocalizedName("pellet_rtg_depleted").setCreativeTab(MainRegistry.controlTab); - - pellet_rtg_radium = new ItemRTGPellet(3).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(16.0F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_radium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_radium"); - pellet_rtg_weak = new ItemRTGPellet(5).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(1.0F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_weak").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_weak"); - pellet_rtg = new ItemRTGPellet(10).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(87.7F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg"); - pellet_rtg_strontium = new ItemRTGPellet(15).setDecays(DepletedRTGMaterial.ZIRCONIUM, (long) (RTGUtil.getLifespan(29.0F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg_strontium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_strontium"); - pellet_rtg_cobalt = new ItemRTGPellet(15).setDecays(DepletedRTGMaterial.NICKEL, (long) (RTGUtil.getLifespan(5.3F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg_cobalt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_cobalt"); - pellet_rtg_actinium = new ItemRTGPellet(20).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(21.8F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg_actinium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_actinium"); - pellet_rtg_americium = new ItemRTGPellet(20).setDecays(DepletedRTGMaterial.NEPTUNIUM, (long) (RTGUtil.getLifespan(4.7F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_americium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_americium"); - pellet_rtg_polonium = new ItemRTGPellet(50).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(138.0F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_polonium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_polonium"); - pellet_rtg_gold = new ItemRTGPellet(VersatileConfig.rtgDecay() ? 200 : 100).setDecays(DepletedRTGMaterial.MERCURY, (long) (RTGUtil.getLifespan(2.7F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_gold").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_gold"); - pellet_rtg_lead = new ItemRTGPellet(VersatileConfig.rtgDecay() ? 600 : 200).setDecays(DepletedRTGMaterial.BISMUTH, (long) (RTGUtil.getLifespan(0.3F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_lead").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_lead"); - - tritium_deuterium_cake = new ItemCustomLore().setUnlocalizedName("tritium_deuterium_cake").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":tritium_deuterium_cake"); - - piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":piston_selenium"); - piston_set = new ItemPistons().setUnlocalizedName("piston_set").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); - drillbit = new ItemDrillbit().setUnlocalizedName("drillbit").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); - - rune_blank = new ItemCustomLore().setEffect().setUnlocalizedName("rune_blank").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_blank"); - rune_isa = new ItemCustomLore().setEffect().setUnlocalizedName("rune_isa").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_isa"); - rune_dagaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_dagaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_dagaz"); - rune_hagalaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_hagalaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_hagalaz"); - rune_jera = new ItemCustomLore().setEffect().setUnlocalizedName("rune_jera").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_jera"); - rune_thurisaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_thurisaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_thurisaz"); - - ams_catalyst_blank = new Item().setUnlocalizedName("ams_catalyst_blank").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_blank"); - ams_catalyst_aluminium = new ItemCatalyst(0xCCCCCC, 1000000, 1.15F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_aluminium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_aluminium"); - ams_catalyst_beryllium = new ItemCatalyst(0x97978B, 0, 1.25F, 0.95F, 1.05F).setUnlocalizedName("ams_catalyst_beryllium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_beryllium"); - ams_catalyst_caesium = new ItemCatalyst(0x6400FF, 2500000, 1.00F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_caesium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_caesium"); - ams_catalyst_cerium = new ItemCatalyst(0x1D3FFF, 1000000, 1.15F, 1.15F, 0.85F).setUnlocalizedName("ams_catalyst_cerium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_cerium"); - ams_catalyst_cobalt = new ItemCatalyst(0x789BBE, 0, 1.25F, 1.05F, 0.95F).setUnlocalizedName("ams_catalyst_cobalt").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_cobalt"); - ams_catalyst_copper = new ItemCatalyst(0xAADE29, 0, 1.25F, 1.00F, 1.00F).setUnlocalizedName("ams_catalyst_copper").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_copper"); - ams_catalyst_dineutronium = new ItemCatalyst(0x334077, 2500000, 1.00F, 1.15F, 0.85F).setUnlocalizedName("ams_catalyst_dineutronium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_dineutronium"); - ams_catalyst_euphemium = new ItemCatalyst(0xFF9CD2, 2500000, 1.00F, 1.00F, 1.00F).setUnlocalizedName("ams_catalyst_euphemium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_euphemium"); - ams_catalyst_iron = new ItemCatalyst(0xFF7E22, 1000000, 1.15F, 0.95F, 1.05F).setUnlocalizedName("ams_catalyst_iron").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_iron"); - ams_catalyst_lithium = new ItemCatalyst(0xFF2727, 0, 1.25F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_lithium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_lithium"); - ams_catalyst_niobium = new ItemCatalyst(0x3BF1B6, 1000000, 1.15F, 1.05F, 0.95F).setUnlocalizedName("ams_catalyst_niobium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_niobium"); - ams_catalyst_schrabidium = new ItemCatalyst(0x32FFFF, 2500000, 1.00F, 1.05F, 0.95F).setUnlocalizedName("ams_catalyst_schrabidium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_schrabidium"); - ams_catalyst_strontium = new ItemCatalyst(0xDD0D35, 1000000, 1.15F, 1.00F, 1.00F).setUnlocalizedName("ams_catalyst_strontium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_strontium"); - ams_catalyst_thorium = new ItemCatalyst(0x653B22, 2500000, 1.00F, 0.95F, 1.05F).setUnlocalizedName("ams_catalyst_thorium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_thorium"); - ams_catalyst_tungsten = new ItemCatalyst(0xF5FF48, 0, 1.25F, 1.15F, 0.85F).setUnlocalizedName("ams_catalyst_tungsten").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_tungsten"); - - cell_empty = new Item().setUnlocalizedName("cell_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cell_empty"); - cell_uf6 = new Item().setUnlocalizedName("cell_uf6").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_uf6"); - cell_puf6 = new Item().setUnlocalizedName("cell_puf6").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_puf6"); - cell_antimatter = new ItemDrop().setUnlocalizedName("cell_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_antimatter"); - cell_deuterium = new Item().setUnlocalizedName("cell_deuterium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_deuterium"); - cell_tritium = new Item().setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium"); - cell_sas3 = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("cell_sas3").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_sas3"); - cell_anti_schrabidium = new ItemDrop().setUnlocalizedName("cell_anti_schrabidium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_anti_schrabidium"); - cell_balefire = new Item().setUnlocalizedName("cell_balefire").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_balefire"); - - demon_core_open = new ItemDemonCore().setUnlocalizedName("demon_core_open").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_open"); - demon_core_closed = new Item().setUnlocalizedName("demon_core_closed").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_closed"); - - pa_coil = new ItemPACoil().setUnlocalizedName("pa_coil").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pa_coil"); - - particle_empty = new Item().setUnlocalizedName("particle_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":particle_empty"); - particle_hydrogen = new Item().setUnlocalizedName("particle_hydrogen").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_hydrogen"); - particle_copper = new Item().setUnlocalizedName("particle_copper").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_copper"); - particle_lead = new Item().setUnlocalizedName("particle_lead").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_lead"); - particle_aproton = new Item().setUnlocalizedName("particle_aproton").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_aproton"); - particle_aelectron = new Item().setUnlocalizedName("particle_aelectron").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_aelectron"); - particle_amat = new Item().setUnlocalizedName("particle_amat").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_amat"); - particle_aschrab = new Item().setUnlocalizedName("particle_aschrab").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_aschrab"); - particle_higgs = new Item().setUnlocalizedName("particle_higgs").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_higgs"); - particle_muon = new Item().setUnlocalizedName("particle_muon").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_muon"); - particle_tachyon = new Item().setUnlocalizedName("particle_tachyon").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_tachyon"); - particle_strange = new Item().setUnlocalizedName("particle_strange").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_strange"); - particle_dark = new Item().setUnlocalizedName("particle_dark").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_dark"); - particle_sparkticle = new Item().setUnlocalizedName("particle_sparkticle").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_sparkticle"); - particle_digamma = new ItemDigamma(60).setUnlocalizedName("particle_digamma").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_digamma"); - particle_lutece = new Item().setUnlocalizedName("particle_lutece").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_lutece"); - - singularity = new ItemDrop().setUnlocalizedName("singularity").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity"); - singularity_counter_resonant = new ItemDrop().setUnlocalizedName("singularity_counter_resonant").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_alt"); - singularity_super_heated = new ItemDrop().setUnlocalizedName("singularity_super_heated").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_5"); - black_hole = new ItemDrop().setUnlocalizedName("black_hole").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_4"); - singularity_spark = new ItemDrop().setUnlocalizedName("singularity_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_spark_alt"); - pellet_antimatter = new ItemDrop().setUnlocalizedName("pellet_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":pellet_antimatter"); - crystal_xen = new ItemDrop().setUnlocalizedName("crystal_xen").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":crystal_xen"); - - stamp_stone_flat = new ItemStamp(32, StampType.FLAT).setUnlocalizedName("stamp_stone_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_flat"); - stamp_stone_plate = new ItemStamp(32, StampType.PLATE).setUnlocalizedName("stamp_stone_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_plate"); - stamp_stone_wire = new ItemStamp(32, StampType.WIRE).setUnlocalizedName("stamp_stone_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_wire"); - stamp_stone_circuit = new ItemStamp(32, StampType.CIRCUIT).setUnlocalizedName("stamp_stone_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_circuit"); - stamp_iron_flat = new ItemStamp(64, StampType.FLAT).setUnlocalizedName("stamp_iron_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_flat"); - stamp_iron_plate = new ItemStamp(64, StampType.PLATE).setUnlocalizedName("stamp_iron_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_plate"); - stamp_iron_wire = new ItemStamp(64, StampType.WIRE).setUnlocalizedName("stamp_iron_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_wire"); - stamp_iron_circuit = new ItemStamp(64, StampType.CIRCUIT).setUnlocalizedName("stamp_iron_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_circuit"); - stamp_steel_flat = new ItemStamp(192, StampType.FLAT).setUnlocalizedName("stamp_steel_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_flat"); - stamp_steel_plate = new ItemStamp(192, StampType.PLATE).setUnlocalizedName("stamp_steel_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_plate"); - stamp_steel_wire = new ItemStamp(192, StampType.WIRE).setUnlocalizedName("stamp_steel_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_wire"); - stamp_steel_circuit = new ItemStamp(192, StampType.CIRCUIT).setUnlocalizedName("stamp_steel_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_circuit"); - stamp_titanium_flat = new ItemStamp(256, StampType.FLAT).setUnlocalizedName("stamp_titanium_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_flat"); - stamp_titanium_plate = new ItemStamp(256, StampType.PLATE).setUnlocalizedName("stamp_titanium_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_plate"); - stamp_titanium_wire = new ItemStamp(256, StampType.WIRE).setUnlocalizedName("stamp_titanium_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_wire"); - stamp_titanium_circuit = new ItemStamp(256, StampType.CIRCUIT).setUnlocalizedName("stamp_titanium_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_circuit"); - stamp_obsidian_flat = new ItemStamp(512, StampType.FLAT).setUnlocalizedName("stamp_obsidian_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_flat"); - stamp_obsidian_plate = new ItemStamp(512, StampType.PLATE).setUnlocalizedName("stamp_obsidian_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_plate"); - stamp_obsidian_wire = new ItemStamp(512, StampType.WIRE).setUnlocalizedName("stamp_obsidian_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_wire"); - stamp_obsidian_circuit = new ItemStamp(512, StampType.CIRCUIT).setUnlocalizedName("stamp_obsidian_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_circuit"); - stamp_desh_flat = new ItemStamp(0, StampType.FLAT).setUnlocalizedName("stamp_desh_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_flat"); - stamp_desh_plate = new ItemStamp(0, StampType.PLATE).setUnlocalizedName("stamp_desh_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_plate"); - stamp_desh_wire = new ItemStamp(0, StampType.WIRE).setUnlocalizedName("stamp_desh_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_wire"); - stamp_desh_circuit = new ItemStamp(0, StampType.CIRCUIT).setUnlocalizedName("stamp_desh_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_circuit"); - stamp_357 = new ItemStamp(1000, StampType.C357).setUnlocalizedName("stamp_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357"); - stamp_44 = new ItemStamp(1000, StampType.C44).setUnlocalizedName("stamp_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44"); - stamp_9 = new ItemStamp(1000, StampType.C9).setUnlocalizedName("stamp_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9"); - stamp_50 = new ItemStamp(1000, StampType.C50).setUnlocalizedName("stamp_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50"); - stamp_book = new ItemStampBook().setUnlocalizedName("stamp_book").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":stamp_book"); - - stamp_desh_357 = new ItemStamp(0, StampType.C357).setUnlocalizedName("stamp_desh_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357_desh"); - stamp_desh_44 = new ItemStamp(0, StampType.C44).setUnlocalizedName("stamp_desh_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44_desh"); - stamp_desh_9 = new ItemStamp(0, StampType.C9).setUnlocalizedName("stamp_desh_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9_desh"); - stamp_desh_50 = new ItemStamp(0, StampType.C50).setUnlocalizedName("stamp_desh_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50_desh"); - - blades_steel = new ItemBlades(200).setUnlocalizedName("blades_steel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_steel"); - blades_titanium = new ItemBlades(350).setUnlocalizedName("blades_titanium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_titanium"); - blades_advanced_alloy = new ItemBlades(700).setUnlocalizedName("blades_advanced_alloy").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_advanced_alloy"); - blades_desh = new ItemBlades(0).setUnlocalizedName("blades_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_desh"); - - mold_base = new Item().setUnlocalizedName("mold_base").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":mold_base"); - mold = new ItemMold().setUnlocalizedName("mold").setCreativeTab(MainRegistry.controlTab); - scraps = new ItemScraps().aot(Mats.MAT_BISMUTH, "scraps_bismuth").setUnlocalizedName("scraps").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scraps"); - ingot_raw = new ItemAutogen(MaterialShapes.INGOT).setUnlocalizedName("ingot_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_raw"); - plate_cast = new ItemAutogen(MaterialShapes.CASTPLATE).aot(Mats.MAT_BISMUTH, "plate_cast_bismuth").setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); - plate_welded = new ItemAutogen(MaterialShapes.WELDEDPLATE).setUnlocalizedName("plate_welded").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_welded"); - heavy_component = new ItemAutogen(MaterialShapes.HEAVY_COMPONENT).setUnlocalizedName("heavy_component").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":heavy_component"); - wire_fine = new ItemAutogen(MaterialShapes.WIRE) - .aot(Mats.MAT_ALUMINIUM, "wire_aluminium").aot(Mats.MAT_COPPER, "wire_copper") - .aot(Mats.MAT_MINGRADE, "wire_red_copper").aot(Mats.MAT_GOLD, "wire_gold") - .aot(Mats.MAT_TUNGSTEN, "wire_tungsten").aot(Mats.MAT_ALLOY, "wire_advanced_alloy") - .aot(Mats.MAT_CARBON, "wire_carbon").aot(Mats.MAT_SCHRABIDIUM, "wire_schrabidium") - .aot(Mats.MAT_MAGTUNG, "wire_magnetized_tungsten").setUnlocalizedName("wire_fine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_fine"); - wire_dense = new ItemAutogen(MaterialShapes.DENSEWIRE).setUnlocalizedName("wire_dense").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_dense"); - - part_barrel_light = new ItemAutogen(MaterialShapes.LIGHTBARREL).setUnlocalizedName("part_barrel_light").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_barrel_light"); - part_barrel_heavy = new ItemAutogen(MaterialShapes.HEAVYBARREL).setUnlocalizedName("part_barrel_heavy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_barrel_heavy"); - part_receiver_light = new ItemAutogen(MaterialShapes.LIGHTRECEIVER).setUnlocalizedName("part_receiver_light").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_receiver_light"); - part_receiver_heavy = new ItemAutogen(MaterialShapes.HEAVYRECEIVER).setUnlocalizedName("part_receiver_heavy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_receiver_heavy"); - part_mechanism = new ItemAutogen(MaterialShapes.MECHANISM).setUnlocalizedName("part_mechanism").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_mechanism"); - part_stock = new ItemAutogen(MaterialShapes.STOCK).setUnlocalizedName("part_stock").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_stock"); - part_grip = new ItemAutogen(MaterialShapes.GRIP).setUnlocalizedName("part_grip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_grip"); - - part_lithium = new Item().setUnlocalizedName("part_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_lithium"); - part_beryllium = new Item().setUnlocalizedName("part_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_beryllium"); - part_carbon = new Item().setUnlocalizedName("part_carbon").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_carbon"); - part_copper = new Item().setUnlocalizedName("part_copper").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_copper"); - part_plutonium = new Item().setUnlocalizedName("part_plutonium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_plutonium"); - - laser_crystal_co2 = new ItemFELCrystal(EnumWavelengths.IR).setUnlocalizedName("laser_crystal_co2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_co2"); - laser_crystal_bismuth = new ItemFELCrystal(EnumWavelengths.VISIBLE).setUnlocalizedName("laser_crystal_bismuth").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_bismuth"); - laser_crystal_cmb = new ItemFELCrystal(EnumWavelengths.UV).setUnlocalizedName("laser_crystal_cmb").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_cmb"); - laser_crystal_dnt = new ItemFELCrystal(EnumWavelengths.GAMMA).setUnlocalizedName("laser_crystal_dnt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_dnt"); - 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"); - catalytic_converter = new Item().setUnlocalizedName("catalytic_converter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":catalytic_converter"); - - fuel_additive = new ItemEnumMulti(ItemEnums.EnumFuelAdditive.class, true, true).setUnlocalizedName("fuel_additive").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuel_additive"); - - canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":canister_empty"); - canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_empty"); - canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); - gas_empty = new Item().setUnlocalizedName("gas_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":gas_empty"); - gas_full = new ItemGasTank().setUnlocalizedName("gas_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_empty"); - - ItemSimpleConsumable.init(); - - //TODO: move all this crap to ItemSimpleConsumable - syringe_empty = new Item().setUnlocalizedName("syringe_empty").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_empty"); - syringe_metal_empty = new Item().setUnlocalizedName("syringe_metal_empty").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_empty"); - syringe_metal_stimpak = new ItemSyringe().setUnlocalizedName("syringe_metal_stimpak").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_stimpak"); - syringe_metal_medx = new ItemSyringe().setUnlocalizedName("syringe_metal_medx").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_medx"); - syringe_metal_psycho = new ItemSyringe().setUnlocalizedName("syringe_metal_psycho").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_psycho"); - syringe_metal_super = new ItemSyringe().setUnlocalizedName("syringe_metal_super").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_super"); - syringe_taint = new ItemSyringe().setUnlocalizedName("syringe_taint").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_taint"); - syringe_mkunicorn = new ItemSyringe().setUnlocalizedName("syringe_mkunicorn").setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":syringe_mkunicorn"); - - med_bag = new ItemSyringe().setUnlocalizedName("med_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_bag"); - radx = new ItemPill(0).setUnlocalizedName("radx").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radx"); - siox = new ItemPill(0).setUnlocalizedName("siox").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":siox"); - pill_herbal = new ItemPill(0).setUnlocalizedName("pill_herbal").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pill_herbal"); - xanax = new ItemPill(0).setUnlocalizedName("xanax").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":xanax_2"); - fmn = new ItemPill(0).setUnlocalizedName("fmn").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":tablet"); - five_htp = new ItemPill(0).setUnlocalizedName("five_htp").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":5htp"); - pill_iodine = new ItemPill(0).setUnlocalizedName("pill_iodine").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pill_iodine"); - plan_c = new ItemPill(0).setUnlocalizedName("plan_c").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plan_c"); - pill_red = new ItemPill(0).setUnlocalizedName("pill_red").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pill_red"); - stealth_boy = new ItemStarterKit().setUnlocalizedName("stealth_boy").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":stealth_boy"); - gas_mask_filter = new ItemFilter().setUnlocalizedName("gas_mask_filter").setTextureName(RefStrings.MODID + ":gas_mask_filter"); - gas_mask_filter_mono = new ItemFilter().setUnlocalizedName("gas_mask_filter_mono").setTextureName(RefStrings.MODID + ":gas_mask_filter_mono"); - gas_mask_filter_combo = new ItemFilter().setUnlocalizedName("gas_mask_filter_combo").setTextureName(RefStrings.MODID + ":gas_mask_filter_combo"); - gas_mask_filter_rag = new ItemFilter().setUnlocalizedName("gas_mask_filter_rag").setTextureName(RefStrings.MODID + ":gas_mask_filter_rag"); - gas_mask_filter_piss = new ItemFilter().setUnlocalizedName("gas_mask_filter_piss").setTextureName(RefStrings.MODID + ":gas_mask_filter_piss"); - jetpack_tank = new ItemSyringe().setUnlocalizedName("jetpack_tank").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":jetpack_tank"); - gun_kit_1 = new ItemRepairKit(10).setUnlocalizedName("gun_kit_1").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_1"); - gun_kit_2 = new ItemRepairKit(100).setUnlocalizedName("gun_kit_2").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_2"); - cbt_device = new ItemSyringe().setUnlocalizedName("cbt_device").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":cbt_device"); - cigarette = new ItemCigarette().setUnlocalizedName("cigarette").setFull3D().setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cigarette"); - crackpipe = new ItemCigarette().setUnlocalizedName("crackpipe").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crackpipe"); - bdcl = new ItemBDCL().setUnlocalizedName("bdcl").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bdcl"); - - attachment_mask = new ItemModGasmask().setUnlocalizedName("attachment_mask").setTextureName(RefStrings.MODID + ":attachment_mask"); - attachment_mask_mono = new ItemModGasmask().setUnlocalizedName("attachment_mask_mono").setTextureName(RefStrings.MODID + ":attachment_mask_mono"); - back_tesla = new ItemModTesla().setUnlocalizedName("back_tesla").setTextureName(RefStrings.MODID + ":back_tesla"); - servo_set = new ItemModServos().setUnlocalizedName("servo_set").setTextureName(RefStrings.MODID + ":servo_set"); - servo_set_desh = new ItemModServos().setUnlocalizedName("servo_set_desh").setTextureName(RefStrings.MODID + ":servo_set_desh"); - pads_rubber = new ItemModPads(0.5F).setUnlocalizedName("pads_rubber").setTextureName(RefStrings.MODID + ":pads_rubber"); - pads_slime = new ItemModPads(0.25F).setUnlocalizedName("pads_slime").setTextureName(RefStrings.MODID + ":pads_slime"); - pads_static = new ItemModPads(0.75F).setUnlocalizedName("pads_static").setTextureName(RefStrings.MODID + ":pads_static"); - cladding_paint = new ItemModCladding(0.025).setUnlocalizedName("cladding_paint").setTextureName(RefStrings.MODID + ":cladding_paint"); - cladding_rubber = new ItemModCladding(0.005).setUnlocalizedName("cladding_rubber").setTextureName(RefStrings.MODID + ":cladding_rubber"); - cladding_lead = new ItemModCladding(0.1).setUnlocalizedName("cladding_lead").setTextureName(RefStrings.MODID + ":cladding_lead"); - cladding_desh = new ItemModCladding(0.2).setUnlocalizedName("cladding_desh").setTextureName(RefStrings.MODID + ":cladding_desh"); - cladding_ghiorsium = new ItemModCladding(0.5).setUnlocalizedName("cladding_ghiorsium").setTextureName(RefStrings.MODID + ":cladding_ghiorsium"); - cladding_iron = new ItemModIron().setUnlocalizedName("cladding_iron").setTextureName(RefStrings.MODID + ":cladding_iron"); - cladding_obsidian = new ItemModObsidian().setUnlocalizedName("cladding_obsidian").setTextureName(RefStrings.MODID + ":cladding_obsidian"); - insert_kevlar = new ItemModInsert(1500, 1F, 0.9F, 1F, 1F).setUnlocalizedName("insert_kevlar").setTextureName(RefStrings.MODID + ":insert_kevlar"); - insert_sapi = new ItemModInsert(1750, 1F, 0.85F, 1F, 1F).setUnlocalizedName("insert_sapi").setTextureName(RefStrings.MODID + ":insert_sapi"); - insert_esapi = new ItemModInsert(2000, 0.95F, 0.8F, 1F, 1F).setUnlocalizedName("insert_esapi").setTextureName(RefStrings.MODID + ":insert_esapi"); - insert_xsapi = new ItemModInsert(2500, 0.9F, 0.75F, 1F, 1F).setUnlocalizedName("insert_xsapi").setTextureName(RefStrings.MODID + ":insert_xsapi"); - insert_steel = new ItemModInsert(1000, 1F, 0.95F, 0.75F, 0.95F).setUnlocalizedName("insert_steel").setTextureName(RefStrings.MODID + ":insert_steel"); - insert_du = new ItemModInsert(1500, 0.9F, 0.85F, 0.5F, 0.9F).setUnlocalizedName("insert_du").setTextureName(RefStrings.MODID + ":insert_du"); - insert_polonium = new ItemModInsert(500, 0.9F, 1F, 0.95F, 0.9F).setUnlocalizedName("insert_polonium").setTextureName(RefStrings.MODID + ":insert_polonium"); - insert_ghiorsium = new ItemModInsert(2000, 0.8F, 0.75F, 0.35F, 0.9F).setUnlocalizedName("insert_ghiorsium").setTextureName(RefStrings.MODID + ":insert_ghiorsium"); - insert_era = new ItemModInsert(25, 0.5F, 1F, 0.25F, 1F).setUnlocalizedName("insert_era").setTextureName(RefStrings.MODID + ":insert_era"); - insert_yharonite = new ItemModInsert(9999, 0.01F, 1F, 1F, 1F).setUnlocalizedName("insert_yharonite").setTextureName(RefStrings.MODID + ":insert_yharonite"); - insert_doxium = new ItemModInsert(9999, 5.0F, 1F, 1F, 1F).setUnlocalizedName("insert_doxium").setTextureName(RefStrings.MODID + ":insert_doxium"); - armor_polish = new ItemModPolish().setUnlocalizedName("armor_polish").setTextureName(RefStrings.MODID + ":armor_polish"); - bandaid = new ItemModBandaid().setUnlocalizedName("bandaid").setTextureName(RefStrings.MODID + ":bandaid"); - serum = new ItemModSerum().setUnlocalizedName("serum").setTextureName(RefStrings.MODID + ":serum"); - quartz_plutonium = new ItemModQuartz().setUnlocalizedName("quartz_plutonium").setTextureName(RefStrings.MODID + ":quartz_plutonium"); - morning_glory = new ItemModMorningGlory().setUnlocalizedName("morning_glory").setTextureName(RefStrings.MODID + ":morning_glory"); - lodestone = new ItemModLodestone(5).setUnlocalizedName("lodestone").setTextureName(RefStrings.MODID + ":lodestone"); - horseshoe_magnet = new ItemModLodestone(8).setUnlocalizedName("horseshoe_magnet").setTextureName(RefStrings.MODID + ":horseshoe_magnet"); - industrial_magnet = new ItemModLodestone(12).setUnlocalizedName("industrial_magnet").setTextureName(RefStrings.MODID + ":industrial_magnet"); - bathwater = new ItemModBathwater().setUnlocalizedName("bathwater").setTextureName(RefStrings.MODID + ":bathwater"); - bathwater_mk2 = new ItemModBathwater().setUnlocalizedName("bathwater_mk2").setTextureName(RefStrings.MODID + ":bathwater_mk2"); - spider_milk = new ItemModMilk().setUnlocalizedName("spider_milk").setTextureName(RefStrings.MODID + ":spider_milk"); - ink = new ItemModInk().setUnlocalizedName("ink").setTextureName(RefStrings.MODID + ":ink"); - heart_piece = new ItemModHealth(5F).setUnlocalizedName("heart_piece").setTextureName(RefStrings.MODID + ":heart_piece"); - heart_container = new ItemModHealth(20F).setUnlocalizedName("heart_container").setTextureName(RefStrings.MODID + ":heart_container"); - heart_booster = new ItemModHealth(40F).setUnlocalizedName("heart_booster").setTextureName(RefStrings.MODID + ":heart_booster"); - heart_fab = new ItemModHealth(60F).setUnlocalizedName("heart_fab").setTextureName(RefStrings.MODID + ":heart_fab"); - black_diamond = new ItemModHealth(40F).setUnlocalizedName("black_diamond").setTextureName(RefStrings.MODID + ":black_diamond"); - wd40 = new ItemModWD40().setUnlocalizedName("wd40").setTextureName(RefStrings.MODID + ":wd40"); - scrumpy = new ItemModRevive(1).setUnlocalizedName("scrumpy").setTextureName(RefStrings.MODID + ":scrumpy"); - wild_p = new ItemModRevive(3).setUnlocalizedName("wild_p").setTextureName(RefStrings.MODID + ":wild_p"); - fabsols_vodka = new ItemModRevive(9999).setUnlocalizedName("fabsols_vodka").setTextureName(RefStrings.MODID + ":fabsols_vodka"); - shackles = new ItemModShackles().setUnlocalizedName("shackles").setTextureName(RefStrings.MODID + ":shackles"); - injector_5htp = new ItemModAuto().setUnlocalizedName("injector_5htp").setTextureName(RefStrings.MODID + ":injector_5htp"); - injector_knife = new ItemModKnife().setUnlocalizedName("injector_knife").setTextureName(RefStrings.MODID + ":injector_knife"); - medal_liquidator = new ItemModMedal().setUnlocalizedName("medal_liquidator").setTextureName(RefStrings.MODID + ":medal_liquidator"); - bottled_cloud = new ItemModCloud().setUnlocalizedName("bottled_cloud").setTextureName(RefStrings.MODID + ":bottled_cloud"); - protection_charm = new ItemModCharm().setUnlocalizedName("protection_charm").setTextureName(RefStrings.MODID + ":protection_charm"); - meteor_charm = new ItemModCharm().setUnlocalizedName("meteor_charm").setTextureName(RefStrings.MODID + ":meteor_charm"); - neutrino_lens = new ItemModLens().setUnlocalizedName("neutrino_lens").setTextureName(RefStrings.MODID + ":neutrino_lens"); - gas_tester = new ItemModSensor().setUnlocalizedName("gas_tester").setTextureName(RefStrings.MODID + ":gas_tester"); - defuser_gold = new ItemModDefuser().setUnlocalizedName("defuser_gold").setTextureName(RefStrings.MODID + ":defuser_gold"); - ballistic_gauntlet = new ItemModTwoKick().setUnlocalizedName("ballistic_gauntlet").setTextureName(RefStrings.MODID + ":ballistic_gauntlet"); - night_vision = new ItemModNightVision().setUnlocalizedName("night_vision").setTextureName(RefStrings.MODID + ":night_vision"); - card_aos = new ItemModCard().setUnlocalizedName("card_aos").setTextureName(RefStrings.MODID + ":card_aos"); - card_qos = new ItemModCard().setUnlocalizedName("card_qos").setTextureName(RefStrings.MODID + ":card_qos"); - australium_iii = new ItemModShield(25F).setUnlocalizedName("australium_iii").setTextureName(RefStrings.MODID + ":australium_iii"); - armor_battery = new ItemModBattery(1.25D).setUnlocalizedName("armor_battery").setTextureName(RefStrings.MODID + ":armor_battery"); - armor_battery_mk2 = new ItemModBattery(1.5D).setUnlocalizedName("armor_battery_mk2").setTextureName(RefStrings.MODID + ":armor_battery_mk2"); - armor_battery_mk3 = new ItemModBattery(2D).setUnlocalizedName("armor_battery_mk3").setTextureName(RefStrings.MODID + ":armor_battery_mk3"); - - cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); - cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); - cap_sparkle = new Item().setUnlocalizedName("cap_sparkle").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_sparkle"); - cap_rad = new Item().setUnlocalizedName("cap_rad").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_rad"); - cap_korl = new Item().setUnlocalizedName("cap_korl").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_korl"); - cap_fritz = new Item().setUnlocalizedName("cap_fritz").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_fritz"); - ring_pull = new Item().setUnlocalizedName("ring_pull").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ring_pull"); - - can_empty = new Item().setUnlocalizedName("can_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_empty"); - can_smart = new ItemEnergy().makeCan().setUnlocalizedName("can_smart").setTextureName(RefStrings.MODID + ":can_smart"); - can_creature = new ItemEnergy().makeCan().setUnlocalizedName("can_creature").setTextureName(RefStrings.MODID + ":can_creature"); - can_redbomb = new ItemEnergy().makeCan().setUnlocalizedName("can_redbomb").setTextureName(RefStrings.MODID + ":can_redbomb"); - can_mrsugar = new ItemEnergy().makeCan().setUnlocalizedName("can_mrsugar").setTextureName(RefStrings.MODID + ":can_mrsugar"); - can_overcharge = new ItemEnergy().makeCan().setUnlocalizedName("can_overcharge").setTextureName(RefStrings.MODID + ":can_overcharge"); - can_luna = new ItemEnergy().makeCan().setUnlocalizedName("can_luna").setTextureName(RefStrings.MODID + ":can_luna"); - can_bepis = new ItemEnergy().makeCan().setUnlocalizedName("can_bepis").setTextureName(RefStrings.MODID + ":can_bepis"); - can_breen = new ItemEnergy().makeCan().setUnlocalizedName("can_breen").setTextureName(RefStrings.MODID + ":can_breen"); - can_mug = new ItemEnergy().makeCan().setUnlocalizedName("can_mug").setTextureName(RefStrings.MODID + ":can_mug"); - bottle_empty = new Item().setUnlocalizedName("bottle_empty").setTextureName(RefStrings.MODID + ":bottle_empty"); - bottle_nuka = new ItemEnergy().makeBottle(bottle_empty, cap_nuka).setUnlocalizedName("bottle_nuka").setTextureName(RefStrings.MODID + ":bottle_nuka"); - bottle_cherry = new ItemEnergy().makeBottle(bottle_empty, cap_nuka).setUnlocalizedName("bottle_cherry").setContainerItem(ModItems.bottle_empty).setTextureName(RefStrings.MODID + ":bottle_cherry"); - bottle_quantum = new ItemEnergy().makeBottle(bottle_empty, cap_quantum).setUnlocalizedName("bottle_quantum").setContainerItem(ModItems.bottle_empty).setTextureName(RefStrings.MODID + ":bottle_quantum"); - bottle_sparkle = new ItemEnergy().makeBottle(bottle_empty, cap_sparkle).setUnlocalizedName("bottle_sparkle").setContainerItem(ModItems.bottle_empty).setTextureName(RefStrings.MODID + ":bottle_sparkle"); - bottle_rad = new ItemEnergy().makeBottle(bottle_empty, cap_rad).setUnlocalizedName("bottle_rad").setContainerItem(ModItems.bottle_empty).setTextureName(RefStrings.MODID + ":bottle_rad"); - bottle2_empty = new Item().setUnlocalizedName("bottle2_empty").setTextureName(RefStrings.MODID + ":bottle2_empty"); - bottle2_korl = new ItemEnergy().makeBottle(bottle2_empty, cap_korl).setUnlocalizedName("bottle2_korl").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_korl"); - bottle2_fritz = new ItemEnergy().makeBottle(bottle2_empty, cap_fritz).setUnlocalizedName("bottle2_fritz").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_fritz"); - bottle2_korl_special = new ItemEnergy().makeBottle(bottle2_empty, cap_korl).setUnlocalizedName("bottle2_korl_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_korl"); - bottle2_fritz_special = new ItemEnergy().makeBottle(bottle2_empty, cap_fritz).setUnlocalizedName("bottle2_fritz_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_fritz"); - flask_infusion = new ItemFlask().setUnlocalizedName("flask_infusion").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":flask"); - chocolate_milk = new ItemEnergy().setUnlocalizedName("chocolate_milk").setTextureName(RefStrings.MODID + ":chocolate_milk"); - coffee = new ItemEnergy().setUnlocalizedName("coffee").setTextureName(RefStrings.MODID + ":coffee"); - coffee_radium = new ItemEnergy().setUnlocalizedName("coffee_radium").setTextureName(RefStrings.MODID + ":coffee_radium"); - chocolate = new ItemPill(0).setUnlocalizedName("chocolate").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":chocolate"); - canned_conserve = (ItemEnumMulti) new ItemConserve().setUnlocalizedName("canned_conserve").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned"); - can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); - - boat_rubber = new ItemBoatRubber().setUnlocalizedName("boat_rubber").setTextureName(RefStrings.MODID + ":boat_rubber"); - cart = new ItemModMinecart().setUnlocalizedName("cart"); - train = new ItemTrain().setUnlocalizedName("train"); - drone = new ItemDrone().setUnlocalizedName("drone"); - - coin_creeper = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_creeper").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_creeper"); - coin_radiation = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_radiation").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_radiation"); - coin_maskman = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_maskman").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_maskman"); - coin_worm = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_worm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_worm"); - coin_ufo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_ufo").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_ufo"); - - rod_empty = new Item().setUnlocalizedName("rod_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_empty"); - rod = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod").setContainerItem(ModItems.rod_empty).setCreativeTab(MainRegistry.controlTab); - rod_dual_empty = new Item().setUnlocalizedName("rod_dual_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_dual_empty"); - rod_dual = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod_dual").setContainerItem(ModItems.rod_dual_empty).setCreativeTab(MainRegistry.controlTab); - rod_quad_empty = new Item().setUnlocalizedName("rod_quad_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_quad_empty"); - rod_quad = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod_quad").setContainerItem(ModItems.rod_quad_empty).setCreativeTab(MainRegistry.controlTab); - - rod_zirnox_empty = new Item().setUnlocalizedName("rod_zirnox_empty").setMaxStackSize(64).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_empty"); - //rod_zirnox_natural_uranium_fuel = new ItemZirnoxRodDeprecated(250000, 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 ItemZirnoxRodDeprecated(200000, 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 ItemZirnoxRodDeprecated(200000, 40).setUnlocalizedName("rod_zirnox_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel"); - //rod_zirnox_mox_fuel = new ItemZirnoxRodDeprecated(165000, 75).setUnlocalizedName("rod_zirnox_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel"); - //rod_zirnox_plutonium_fuel = new ItemZirnoxRodDeprecated(175000, 65).setUnlocalizedName("rod_zirnox_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel"); - //rod_zirnox_u233_fuel = new ItemZirnoxRodDeprecated(150000, 100).setUnlocalizedName("rod_zirnox_u233_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel"); - //rod_zirnox_u235_fuel = new ItemZirnoxRodDeprecated(165000, 85).setUnlocalizedName("rod_zirnox_u235_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel"); - //rod_zirnox_les_fuel = new ItemZirnoxRodDeprecated(150000, 150).setUnlocalizedName("rod_zirnox_les_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel"); - //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_zfb_mox = new ItemZirnoxRodDeprecated(50000, 35).setUnlocalizedName("rod_zirnox_zfb_mox").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_zfb_mox"); - rod_zirnox = (ItemEnumMulti) new ItemZirnoxRod().setUnlocalizedName("rod_zirnox").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox"); - - 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"); - rod_zirnox_uranium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_uranium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel_depleted"); - rod_zirnox_thorium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_thorium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel_depleted"); - rod_zirnox_mox_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_mox_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel_depleted"); - rod_zirnox_plutonium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_plutonium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel_depleted"); - rod_zirnox_u233_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_u233_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel_depleted"); - rod_zirnox_u235_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_u235_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel_depleted"); - rod_zirnox_les_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_les_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel_depleted"); - rod_zirnox_zfb_mox_depleted = new Item().setUnlocalizedName("rod_zirnox_zfb_mox_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_zfb_mox_depleted"); - - waste_natural_uranium = new ItemDepletedFuel().setUnlocalizedName("waste_natural_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); - waste_uranium = new ItemDepletedFuel().setUnlocalizedName("waste_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); - waste_thorium = new ItemDepletedFuel().setUnlocalizedName("waste_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_thorium"); - waste_mox = new ItemDepletedFuel().setUnlocalizedName("waste_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_mox"); - waste_plutonium = new ItemDepletedFuel().setUnlocalizedName("waste_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plutonium"); - waste_u233 = new ItemDepletedFuel().setUnlocalizedName("waste_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); - waste_u235 = new ItemDepletedFuel().setUnlocalizedName("waste_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); - waste_schrabidium = new ItemDepletedFuel().setUnlocalizedName("waste_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_schrabidium"); - waste_zfb_mox = new ItemDepletedFuel().setUnlocalizedName("waste_zfb_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_zfb_mox"); - - waste_plate_u233 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_uranium"); - waste_plate_u235 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_uranium"); - waste_plate_mox = new ItemDepletedFuel().setUnlocalizedName("waste_plate_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_mox"); - waste_plate_pu239 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_mox"); - waste_plate_sa326 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_sa326").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_sa326"); - waste_plate_ra226be = new ItemDepletedFuel().setUnlocalizedName("waste_plate_ra226be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_ra226be"); - waste_plate_pu238be = new ItemDepletedFuel().setUnlocalizedName("waste_plate_pu238be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_pu238be"); - - pile_rod_uranium = new ItemPileRod().setUnlocalizedName("pile_rod_uranium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_uranium"); - pile_rod_pu239 = new ItemPileRod().setUnlocalizedName("pile_rod_pu239").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_pu239"); - pile_rod_plutonium = new ItemPileRod().setUnlocalizedName("pile_rod_plutonium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_plutonium"); - pile_rod_source = new ItemPileRod().setUnlocalizedName("pile_rod_source").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_source"); - pile_rod_boron = new ItemPileRod().setUnlocalizedName("pile_rod_boron").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_boron"); - pile_rod_lithium = new ItemPileRod().setUnlocalizedName("pile_rod_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_lithium"); - pile_rod_detector = new ItemPileRod().setUnlocalizedName("pile_rod_detector").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_detector"); - - plate_fuel_u233 = new ItemPlateFuel(2200000).setFunction(FunctionEnum.SQUARE_ROOT, 50).setUnlocalizedName("plate_fuel_u233").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_u233"); - plate_fuel_u235 = new ItemPlateFuel(2200000).setFunction(FunctionEnum.SQUARE_ROOT, 40).setUnlocalizedName("plate_fuel_u235").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_u235"); - plate_fuel_mox = new ItemPlateFuel(2400000).setFunction(FunctionEnum.LOGARITHM, 50).setUnlocalizedName("plate_fuel_mox").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_mox"); - plate_fuel_pu239 = new ItemPlateFuel(2000000).setFunction(FunctionEnum.NEGATIVE_QUADRATIC, 50).setUnlocalizedName("plate_fuel_pu239").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_pu239"); - plate_fuel_sa326 = new ItemPlateFuel(2000000).setFunction(FunctionEnum.LINEAR, 80).setUnlocalizedName("plate_fuel_sa326").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_sa326"); - plate_fuel_ra226be = new ItemPlateFuel(1300000).setFunction(FunctionEnum.PASSIVE, 30).setUnlocalizedName("plate_fuel_ra226be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_ra226be"); - plate_fuel_pu238be = new ItemPlateFuel(1000000).setFunction(FunctionEnum.PASSIVE, 50).setUnlocalizedName("plate_fuel_pu238be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_pu238be"); - - pwr_fuel = new ItemPWRFuel().setUnlocalizedName("pwr_fuel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel"); - pwr_fuel_hot = new ItemEnumMulti(EnumPWRFuel.class, true, false).setUnlocalizedName("pwr_fuel_hot").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel_hot"); - pwr_fuel_depleted = new ItemEnumMulti(EnumPWRFuel.class, true, false).setUnlocalizedName("pwr_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel_depleted"); - - rbmk_lid = new ItemRBMKLid().setUnlocalizedName("rbmk_lid").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid"); - rbmk_lid_glass = new ItemRBMKLid().setUnlocalizedName("rbmk_lid_glass").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid_glass"); - - rbmk_pellet_ueu = (ItemRBMKPellet) new ItemRBMKPellet("Unenriched Uranium").setUnlocalizedName("rbmk_pellet_ueu").setTextureName(RefStrings.MODID + ":rbmk_pellet_ueu"); - rbmk_pellet_meu = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Uranium-235").setUnlocalizedName("rbmk_pellet_meu").setTextureName(RefStrings.MODID + ":rbmk_pellet_meu"); - rbmk_pellet_heu233 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Uranium-233").setUnlocalizedName("rbmk_pellet_heu233").setTextureName(RefStrings.MODID + ":rbmk_pellet_heu233"); - rbmk_pellet_heu235 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Uranium-235").setUnlocalizedName("rbmk_pellet_heu235").setTextureName(RefStrings.MODID + ":rbmk_pellet_heu235"); - rbmk_pellet_thmeu = (ItemRBMKPellet) new ItemRBMKPellet("Thorium with MEU Driver Fuel").setUnlocalizedName("rbmk_pellet_thmeu").setTextureName(RefStrings.MODID + ":rbmk_pellet_thmeu"); - rbmk_pellet_lep = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Plutonium-239").setUnlocalizedName("rbmk_pellet_lep").setTextureName(RefStrings.MODID + ":rbmk_pellet_lep"); - rbmk_pellet_mep = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Plutonium-239").setUnlocalizedName("rbmk_pellet_mep").setTextureName(RefStrings.MODID + ":rbmk_pellet_mep"); - rbmk_pellet_hep239 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Plutonium-239").setUnlocalizedName("rbmk_pellet_hep239").setTextureName(RefStrings.MODID + ":rbmk_pellet_hep239"); - rbmk_pellet_hep241 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Plutonium-241").setUnlocalizedName("rbmk_pellet_hep241").setTextureName(RefStrings.MODID + ":rbmk_pellet_hep241"); - rbmk_pellet_lea = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Americium-242").setUnlocalizedName("rbmk_pellet_lea").setTextureName(RefStrings.MODID + ":rbmk_pellet_lea"); - rbmk_pellet_mea = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Americium-242").setUnlocalizedName("rbmk_pellet_mea").setTextureName(RefStrings.MODID + ":rbmk_pellet_mea"); - rbmk_pellet_hea241 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Americium-241").setUnlocalizedName("rbmk_pellet_hea241").setTextureName(RefStrings.MODID + ":rbmk_pellet_hea241"); - 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 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"); - rbmk_pellet_leaus = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Australium (Tasmanite)").setUnlocalizedName("rbmk_pellet_leaus").setTextureName(RefStrings.MODID + ":rbmk_pellet_leaus"); - rbmk_pellet_heaus = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Australium (Ayerite)").setUnlocalizedName("rbmk_pellet_heaus").setTextureName(RefStrings.MODID + ":rbmk_pellet_heaus"); - rbmk_pellet_po210be = (ItemRBMKPellet) new ItemRBMKPellet("Polonium-210 & Beryllium Neutron Source").disableXenon().setUnlocalizedName("rbmk_pellet_po210be").setTextureName(RefStrings.MODID + ":rbmk_pellet_po210be"); - rbmk_pellet_ra226be = (ItemRBMKPellet) new ItemRBMKPellet("Radium-226 & Beryllium Neutron Source").disableXenon().setUnlocalizedName("rbmk_pellet_ra226be").setTextureName(RefStrings.MODID + ":rbmk_pellet_ra226be"); - rbmk_pellet_pu238be = (ItemRBMKPellet) new ItemRBMKPellet("Plutonium-238 & Beryllium Neutron Source").setUnlocalizedName("rbmk_pellet_pu238be").setTextureName(RefStrings.MODID + ":rbmk_pellet_pu238be"); - rbmk_pellet_balefire_gold = (ItemRBMKPellet) new ItemRBMKPellet("Antihydrogen in a Magnetized Gold-198 Lattice").disableXenon().setUnlocalizedName("rbmk_pellet_balefire_gold").setTextureName(RefStrings.MODID + ":rbmk_pellet_balefire_gold"); - rbmk_pellet_flashlead = (ItemRBMKPellet) new ItemRBMKPellet("Antihydrogen confined by a Magnetized Gold-198 and Lead-209 Lattice").disableXenon().setUnlocalizedName("rbmk_pellet_flashlead").setTextureName(RefStrings.MODID + ":rbmk_pellet_flashlead"); - rbmk_pellet_balefire = (ItemRBMKPellet) new ItemRBMKPellet("Draconic Flames").disableXenon().setUnlocalizedName("rbmk_pellet_balefire").setTextureName(RefStrings.MODID + ":rbmk_pellet_balefire"); - rbmk_pellet_zfb_bismuth = (ItemRBMKPellet) new ItemRBMKPellet("Zirconium Fast Breeder - LEU/HEP-241#Bi").setUnlocalizedName("rbmk_pellet_zfb_bismuth").setTextureName(RefStrings.MODID + ":rbmk_pellet_zfb_bismuth"); - rbmk_pellet_zfb_pu241 = (ItemRBMKPellet) new ItemRBMKPellet("Zirconium Fast Breeder - HEU-235/HEP-240#Pu-241").setUnlocalizedName("rbmk_pellet_zfb_pu241").setTextureName(RefStrings.MODID + ":rbmk_pellet_zfb_pu241"); - rbmk_pellet_zfb_am_mix = (ItemRBMKPellet) new ItemRBMKPellet("Zirconium Fast Breeder - HEP-241#MEA").setUnlocalizedName("rbmk_pellet_zfb_am_mix").setTextureName(RefStrings.MODID + ":rbmk_pellet_zfb_am_mix"); - rbmk_pellet_drx = (ItemRBMKPellet) new ItemRBMKPellet(EnumChatFormatting.OBFUSCATED + "can't you hear, can't you hear the thunder?").setUnlocalizedName("rbmk_pellet_drx").setTextureName(RefStrings.MODID + ":rbmk_pellet_drx"); - - rbmk_fuel_empty = new Item().setUnlocalizedName("rbmk_fuel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_fuel_empty"); - rbmk_fuel_ueu = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_ueu) - .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(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(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(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) - .setFunction(EnumBurnFunc.SQUARE_ROOT) - .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.25D) - .setMeltingPoint(2744) - .setUnlocalizedName("rbmk_fuel_hep").setTextureName(RefStrings.MODID + ":rbmk_fuel_hep"); - rbmk_fuel_hep241 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hep241) - .setYield(100000000D) - .setStats(40) - .setFunction(EnumBurnFunc.LINEAR) - .setHeat(1.75D) - .setMeltingPoint(2744) - .setUnlocalizedName("rbmk_fuel_hep241").setTextureName(RefStrings.MODID + ":rbmk_fuel_hep241"); - rbmk_fuel_lea = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_lea) - .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"); - rbmk_fuel_mea = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mea) - .setYield(100000000D) - .setStats(35D, 20) - .setFunction(EnumBurnFunc.ARCH) - .setHeat(1.75D) - .setMeltingPoint(2386) - .setUnlocalizedName("rbmk_fuel_mea").setTextureName(RefStrings.MODID + ":rbmk_fuel_mea"); - rbmk_fuel_hea241 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hea241) - .setYield(100000000D) - .setStats(65, 15) - .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setHeat(1.85D) - .setMeltingPoint(2386) - .setNeutronTypes(NType.FAST, NType.FAST) - .setUnlocalizedName("rbmk_fuel_hea241").setTextureName(RefStrings.MODID + ":rbmk_fuel_hea241"); - rbmk_fuel_hea242 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hea242) - .setYield(100000000D) - .setStats(45) - .setFunction(EnumBurnFunc.LINEAR) - .setHeat(2D) - .setMeltingPoint(2386) - .setUnlocalizedName("rbmk_fuel_hea242").setTextureName(RefStrings.MODID + ":rbmk_fuel_hea242"); - rbmk_fuel_men = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_men) - .setYield(100000000D) - .setStats(30) - .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) - .setHeat(0.75) - .setMeltingPoint(2800) - .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) - .setStats(40) - .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setMeltingPoint(2800) - .setNeutronTypes(NType.FAST, NType.FAST) - .setUnlocalizedName("rbmk_fuel_hen").setTextureName(RefStrings.MODID + ":rbmk_fuel_hen"); - rbmk_fuel_mox = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mox) - .setYield(100000000D) - .setStats(40) - .setFunction(EnumBurnFunc.LOG_TEN) - .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) - .setYield(100000000D) - .setStats(50) - .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) - .setStats(75D) - .setFunction(EnumBurnFunc.ARCH) - .setHeat(1.5D) - .setMeltingPoint(2750) - .setUnlocalizedName("rbmk_fuel_mes").setTextureName(RefStrings.MODID + ":rbmk_fuel_mes"); - rbmk_fuel_hes = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hes) - .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"); - rbmk_fuel_leaus = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_leaus) - .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"); - rbmk_fuel_heaus = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_heaus) - .setYield(100000000D) - .setStats(35) - .setFunction(EnumBurnFunc.LINEAR) - .setXenon(0.05D, 50D) - .setHeat(1.5D) - .setMeltingPoint(5211).setUnlocalizedName("rbmk_fuel_heaus").setTextureName(RefStrings.MODID + ":rbmk_fuel_heaus"); - rbmk_fuel_po210be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_po210be) - .setYield(25000000D) - .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(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"); - rbmk_fuel_flashlead = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_flashlead) - .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"); - rbmk_fuel_balefire = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_balefire) - .setYield(100000000D) - .setStats(100, 35) - .setFunction(EnumBurnFunc.LINEAR) - .setXenon(0.0D, 50D) - .setHeat(3D) - .setMeltingPoint(3652) - .setUnlocalizedName("rbmk_fuel_balefire").setTextureName(RefStrings.MODID + ":rbmk_fuel_balefire"); - rbmk_fuel_zfb_bismuth = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_zfb_bismuth) - .setYield(50000000D) - .setStats(20) - .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setHeat(1.75D) - .setMeltingPoint(2744) - .setUnlocalizedName("rbmk_fuel_zfb_bismuth").setTextureName(RefStrings.MODID + ":rbmk_fuel_zfb_bismuth"); - rbmk_fuel_zfb_pu241 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_zfb_pu241) - .setYield(50000000D) - .setStats(20) - .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setMeltingPoint(2865) - .setUnlocalizedName("rbmk_fuel_zfb_pu241").setTextureName(RefStrings.MODID + ":rbmk_fuel_zfb_pu241"); - rbmk_fuel_zfb_am_mix = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_zfb_am_mix) - .setYield(50000000D) - .setStats(20) - .setFunction(EnumBurnFunc.LINEAR) - .setHeat(1.75D) - .setMeltingPoint(2744) - .setUnlocalizedName("rbmk_fuel_zfb_am_mix").setTextureName(RefStrings.MODID + ":rbmk_fuel_zfb_am_mix"); - rbmk_fuel_drx = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_drx) - .setYield(10000000D) - .setStats(1000, 10) - .setFunction(EnumBurnFunc.QUADRATIC) - .setHeat(0.1D) - .setMeltingPoint(100000) - .setUnlocalizedName("rbmk_fuel_drx").setTextureName(RefStrings.MODID + ":rbmk_fuel_drx"); - rbmk_fuel_test = (ItemRBMKRod) new ItemRBMKRod("THE VOICES") - .setYield(1000000D) - .setStats(100) - .setFunction(EnumBurnFunc.EXPERIMENTAL) - .setHeat(1.0D) - .setMeltingPoint(100000) - .setUnlocalizedName("rbmk_fuel_test").setTextureName(RefStrings.MODID + ":rbmk_fuel_test"); - /* Experimental flux curve shit - rbmk_fuel_curve = (ItemRBMKRod) new ItemRBMKRod("3D Flux Curve Test") - .setFluxCurve(true) - .setOutputFluxCurve((fluxQuantity, fluxRatio) -> fluxQuantity * (1 - Math.pow(fluxRatio, 2))) - .setDepletionOutputRatioCurve((ratioIn, depletion) -> Math.pow(ratioIn, 2) * depletion) - .setYield(1000000D) - .setStats(75) - .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setHeat(1.5D) - .setMeltingPoint(100000) - .setUnlocalizedName("rbmk_fuel_curve").setTextureName(RefStrings.MODID + ":rbmk_fuel_curve"); - */ - - watz_pellet = new ItemWatzPellet().setUnlocalizedName("watz_pellet").setTextureName(RefStrings.MODID + ":watz_pellet"); - watz_pellet_depleted = new ItemWatzPellet().setUnlocalizedName("watz_pellet_depleted").setTextureName(RefStrings.MODID + ":watz_pellet"); - - icf_pellet_empty = new Item().setUnlocalizedName("icf_pellet_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet_empty"); - icf_pellet = new ItemICFPellet().setUnlocalizedName("icf_pellet").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet"); - icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":icf_pellet_depleted"); - - trinitite = new ItemNuclearWaste().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); - nuclear_waste_long = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); - nuclear_waste_long_tiny = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_tiny"); - nuclear_waste_short = new ItemWasteShort().setUnlocalizedName("nuclear_waste_short").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short"); - nuclear_waste_short_tiny = new ItemWasteShort().setUnlocalizedName("nuclear_waste_short_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_tiny"); - nuclear_waste_long_depleted = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted"); - nuclear_waste_long_depleted_tiny = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted_tiny"); - nuclear_waste_short_depleted = new ItemWasteShort().setUnlocalizedName("nuclear_waste_short_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted"); - nuclear_waste_short_depleted_tiny = new ItemWasteShort().setUnlocalizedName("nuclear_waste_short_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted_tiny"); - nuclear_waste = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste"); - nuclear_waste_tiny = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_tiny"); - nuclear_waste_vitrified = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_vitrified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified"); - nuclear_waste_vitrified_tiny = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_vitrified_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified_tiny"); - scrap_plastic = new ItemPlasticScrap().setUnlocalizedName("scrap_plastic").setTextureName(RefStrings.MODID + ":scrap_plastic"); - scrap = new Item().setUnlocalizedName("scrap").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap"); - scrap_oil = new Item().setUnlocalizedName("scrap_oil").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_oil"); - scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear"); - containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":containment_box"); - plastic_bag = new ItemPlasticBag().setUnlocalizedName("plastic_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plastic_bag"); - - ammo_bag = new ItemAmmoBag().setUnlocalizedName("ammo_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ammo_bag"); - ammo_bag_infinite = new ItemAmmoBag().setUnlocalizedName("ammo_bag_infinite").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ammo_bag_infinite"); - casing_bag = new ItemCasingBag().setUnlocalizedName("casing_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":casing_bag"); - - debris_graphite = new Item().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite"); - debris_metal = new Item().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal"); - debris_fuel = new Item().setUnlocalizedName("debris_fuel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_fuel"); - debris_concrete = new Item().setUnlocalizedName("debris_concrete").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_concrete"); - debris_exchanger = new Item().setUnlocalizedName("debris_exchanger").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_exchanger"); - debris_shrapnel =new Item().setUnlocalizedName("debris_shrapnel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_shrapnel"); - debris_element =new Item().setUnlocalizedName("debris_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_element"); - - pellet_cluster = new ItemCustomLore().setUnlocalizedName("pellet_cluster").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_cluster"); - powder_fire = new ItemCustomLore().setUnlocalizedName("powder_fire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_red_phosphorus"); - powder_ice = new ItemCustomLore().setUnlocalizedName("powder_ice").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ice"); - powder_poison = new ItemCustomLore().setUnlocalizedName("powder_poison").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_poison"); - powder_thermite = new ItemCustomLore().setUnlocalizedName("powder_thermite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_thermite"); - cordite = new Item().setUnlocalizedName("cordite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cordite"); - ballistite = new Item().setUnlocalizedName("ballistite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ballistite"); - ball_dynamite = new Item().setUnlocalizedName("ball_dynamite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_dynamite"); - ball_tnt = new Item().setUnlocalizedName("ball_tnt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_tnt"); - ball_tatb = new Item().setUnlocalizedName("ball_tatb").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_tatb"); - ball_fireclay = new Item().setUnlocalizedName("ball_fireclay").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_fireclay"); - pellet_gas = new ItemCustomLore().setUnlocalizedName("pellet_gas").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_gas"); - magnetron = new ItemCustomLore().setUnlocalizedName("magnetron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnetron_alt"); - pellet_buckshot = new Item().setUnlocalizedName("pellet_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_lead"); - pellet_charged = new Item().setUnlocalizedName("pellet_charged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_charged"); - - 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"); - launch_code_piece = new Item().setUnlocalizedName("launch_code_piece").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code_piece"); - launch_code = new Item().setUnlocalizedName("launch_code").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code"); - launch_key = new Item().setUnlocalizedName("launch_key").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_key"); - missile_assembly = new Item().setUnlocalizedName("missile_assembly").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":missile_assembly"); - missile_generic = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic"); - missile_anti_ballistic = new ItemMissile(MissileFormFactor.ABM, MissileTier.TIER1).setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); - missile_incendiary = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary"); - missile_cluster = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster"); - missile_buster = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster"); - missile_decoy = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_decoy").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_decoy"); - missile_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_strong"); - missile_incendiary_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary_strong"); - missile_cluster_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster_strong"); - missile_buster_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_buster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster_strong"); - missile_emp_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_emp_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp_strong"); - missile_burst = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_burst").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_burst"); - missile_inferno = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_inferno").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_inferno"); - missile_rain = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_rain").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_rain"); - missile_drill = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_drill").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_drill"); - missile_nuclear = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear"); - missile_nuclear_cluster = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear_cluster"); - missile_volcano = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_volcano"); - missile_doomsday = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); - missile_doomsday_rusted = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).notLaunchable().setUnlocalizedName("missile_doomsday_rusted").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); - missile_taint = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_taint"); - missile_micro = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_micro"); - missile_bhole = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_bhole").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_bhole"); - missile_schrabidium = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); - missile_emp = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); - missile_shuttle = new ItemMissile(MissileFormFactor.OTHER, MissileTier.TIER3, MissileFuel.KEROSENE_PEROXIDE).setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); - missile_stealth = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER1).setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); - missile_test = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_test").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_micro"); - missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); - missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); - missile_custom = new ItemCustomMissile().setUnlocalizedName("missile_custom").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_custom"); - sat_mapper = new ItemSatChip().setUnlocalizedName("sat_mapper").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_mapper"); - sat_scanner = new ItemSatChip().setUnlocalizedName("sat_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_scanner"); - sat_radar = new ItemSatChip().setUnlocalizedName("sat_radar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_radar"); - sat_laser = new ItemSatChip().setUnlocalizedName("sat_laser").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_laser"); - sat_foeq = new ItemSatChip().setUnlocalizedName("sat_foeq").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_foeq"); - sat_resonator = new ItemSatChip().setUnlocalizedName("sat_resonator").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_resonator"); - sat_miner = new ItemSatChip().setUnlocalizedName("sat_miner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_miner"); - sat_lunar_miner = new ItemSatChip().setUnlocalizedName("sat_lunar_miner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_lunar_miner"); - sat_gerald = new ItemSatChip().setUnlocalizedName("sat_gerald").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_gerald"); - sat_chip = new ItemSatChip().setUnlocalizedName("sat_chip").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_chip"); - sat_interface = new ItemSatInterface().setUnlocalizedName("sat_interface").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_interface"); - sat_coord = new ItemSatInterface().setUnlocalizedName("sat_coord").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_coord"); - sat_designator = new ItemSatDesignator().setUnlocalizedName("sat_designator").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_designator"); - sat_relay = new ItemSatChip().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay"); - - mp_thruster_10_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); - mp_thruster_10_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec"); - mp_thruster_10_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F) .setUnlocalizedName("mp_thruster_10_solid"); - mp_thruster_10_xenon = new ItemCustomMissilePart().makeThruster(FuelType.XENON, 1F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_thruster_10_xenon"); - mp_thruster_15_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene"); - mp_thruster_15_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_15_kerosene_tec"); - mp_thruster_15_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_dual"); - mp_thruster_15_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_triple"); - mp_thruster_15_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_solid"); - mp_thruster_15_solid_hexdecuple = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(25F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_solid_hexdecuple"); - mp_thruster_15_hydrogen = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_hydrogen"); - mp_thruster_15_hydrogen_dual = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_hydrogen_dual"); - mp_thruster_15_balefire_short = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire_short"); - mp_thruster_15_balefire = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire"); - mp_thruster_15_balefire_large = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setHealth(35F) .setUnlocalizedName("mp_thruster_15_balefire_large"); - mp_thruster_15_balefire_large_rad = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setAuthor("The Master").setHealth(35F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_balefire_large_rad"); - mp_thruster_20_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene"); - mp_thruster_20_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_dual"); - mp_thruster_20_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_triple"); - mp_thruster_20_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("It's basically just a big hole at the end of the fuel tank.").setUnlocalizedName("mp_thruster_20_solid"); - mp_thruster_20_solid_multi = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F) .setUnlocalizedName("mp_thruster_20_solid_multi"); - mp_thruster_20_solid_multier = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("Did I miscount? Hope not.").setUnlocalizedName("mp_thruster_20_solid_multier"); - - mp_stability_10_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_stability_10_flat"); - mp_stability_10_cruise = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_stability_10_cruise"); - mp_stability_10_space = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_10).setHealth(5F).setRarity(Rarity.COMMON).setWittyText("Standing there alone, the ship is waiting / All systems are go, are you sure?") .setUnlocalizedName("mp_stability_10_space"); - mp_stability_15_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); - mp_stability_15_thin = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); - mp_stability_15_soyuz = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("Союз!").setUnlocalizedName("mp_stability_15_soyuz"); - mp_stability_20_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20"); - - mp_fuselage_10_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(20F).setUnlocalizedName("mp_fuselage_10_kerosene"); - mp_fuselage_10_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_kerosene_camo"); - mp_fuselage_10_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_kerosene_desert"); - mp_fuselage_10_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_kerosene_sky"); - mp_fuselage_10_kerosene_flames = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_kerosene_flames"); - mp_fuselage_10_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(25F).setUnlocalizedName("mp_fuselage_10_kerosene_insulation"); - mp_fuselage_10_kerosene_sleek = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_kerosene_sleek"); - mp_fuselage_10_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Bolted Metal").setHealth(30F).setAuthor("Hoboy").setUnlocalizedName("mp_fuselage_10_kerosene_metal"); - mp_fuselage_10_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_kerosene_taint"); - - mp_fuselage_10_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(25F) .setUnlocalizedName("mp_fuselage_10_solid"); - mp_fuselage_10_solid_flames = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_solid_flames"); - mp_fuselage_10_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(30F).setUnlocalizedName("mp_fuselage_10_solid_insulation"); - mp_fuselage_10_solid_sleek = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_solid_sleek"); - mp_fuselage_10_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(35F).setTitle("Soviet Glory").setUnlocalizedName("mp_fuselage_10_solid_soviet_glory"); - mp_fuselage_10_solid_cathedral = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Satan").setTitle("Unholy Cathedral").setWittyText("Quakeesque!").setUnlocalizedName("mp_fuselage_10_solid_cathedral"); - mp_fuselage_10_solid_moonlit = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master & Hoboy").setTitle("Moonlit").setUnlocalizedName("mp_fuselage_10_solid_moonlit"); - mp_fuselage_10_solid_battery = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("wolfmonster222").setHealth(30F).setTitle("Ecstatic").setWittyText("I got caught eating batteries again :(").setUnlocalizedName("mp_fuselage_10_solid_battery"); - mp_fuselage_10_solid_duracell = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Duracell").setHealth(30F).setWittyText("The crunchiest battery on the market!").setUnlocalizedName("mp_fuselage_10_solid_duracell"); - - mp_fuselage_10_xenon = new ItemCustomMissilePart().makeFuselage(FuelType.XENON, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(20F) .setUnlocalizedName("mp_fuselage_10_xenon"); - mp_fuselage_10_xenon_bhole = ((ItemCustomMissilePart) mp_fuselage_10_xenon).copy().setRarity(Rarity.RARE).setAuthor("Sten89").setTitle("Morceus-1457").setUnlocalizedName("mp_fuselage_10_xenon_bhole"); - - mp_fuselage_10_long_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(30F).setUnlocalizedName("mp_fuselage_10_long_kerosene"); - mp_fuselage_10_long_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_camo"); - mp_fuselage_10_long_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_desert"); - mp_fuselage_10_long_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_sky"); - mp_fuselage_10_long_kerosene_flames = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_kerosene_flames"); - mp_fuselage_10_long_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_insulation"); - mp_fuselage_10_long_kerosene_sleek = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_kerosene_sleek"); - mp_fuselage_10_long_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_metal"); - mp_fuselage_10_long_kerosene_dash = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Sam").setTitle("Dash").setWittyText("I wash my hands of it.").setCreativeTab(null).setUnlocalizedName("mp_fuselage_10_long_kerosene_dash"); - mp_fuselage_10_long_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_long_kerosene_taint"); - mp_fuselage_10_long_kerosene_vap = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("VT-6/24").setTitle("Minty Contrail").setWittyText("Upper rivet!").setUnlocalizedName("mp_fuselage_10_long_kerosene_vap"); - - mp_fuselage_10_long_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(35F) .setUnlocalizedName("mp_fuselage_10_long_solid"); - mp_fuselage_10_long_solid_flames = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_solid_flames"); - mp_fuselage_10_long_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_solid_insulation"); - mp_fuselage_10_long_solid_sleek = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(45F).setUnlocalizedName("mp_fuselage_10_long_solid_sleek"); - mp_fuselage_10_long_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(45F).setTitle("Soviet Glory").setWittyText("Fully Automated Luxury Gay Space Communism!").setUnlocalizedName("mp_fuselage_10_long_solid_soviet_glory"); - mp_fuselage_10_long_solid_bullet = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setAuthor("Sam").setTitle("Bullet Bill").setUnlocalizedName("mp_fuselage_10_long_solid_bullet"); - mp_fuselage_10_long_solid_silvermoonlight = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_10_long_solid_silvermoonlight"); - - mp_fuselage_10_15_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_kerosene"); - mp_fuselage_10_15_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F) .setUnlocalizedName("mp_fuselage_10_15_solid"); - mp_fuselage_10_15_hydrogen = new ItemCustomMissilePart().makeFuselage(FuelType.HYDROGEN, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_hydrogen"); - mp_fuselage_10_15_balefire = new ItemCustomMissilePart().makeFuselage(FuelType.BALEFIRE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_balefire"); - - mp_fuselage_15_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setAuthor("Hoboy").setHealth(50F).setUnlocalizedName("mp_fuselage_15_kerosene"); - mp_fuselage_15_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_15_kerosene_camo"); - mp_fuselage_15_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_15_kerosene_desert"); - mp_fuselage_15_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_15_kerosene_sky"); - mp_fuselage_15_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(55F).setWittyText("Rest in spaghetti Columbia :(").setUnlocalizedName("mp_fuselage_15_kerosene_insulation"); - mp_fuselage_15_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bolted Metal").setHealth(60F).setWittyText("Metal frame with metal plating reinforced with bolted metal sheets and metal.").setUnlocalizedName("mp_fuselage_15_kerosene_metal"); - mp_fuselage_15_kerosene_decorated = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Decorated").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_decorated"); - mp_fuselage_15_kerosene_steampunk = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Steampunk").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_steampunk"); - mp_fuselage_15_kerosene_polite = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setAuthor("Hoboy").setTitle("Polite").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_polite"); - mp_fuselage_15_kerosene_blackjack = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setTitle("Queen Whiskey").setHealth(100F).setUnlocalizedName("mp_fuselage_15_kerosene_blackjack"); - mp_fuselage_15_kerosene_lambda = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("Lambda Complex").setHealth(75F).setWittyText("MAGNIFICENT MICROWAVE CASSEROLE").setUnlocalizedName("mp_fuselage_15_kerosene_lambda"); - mp_fuselage_15_kerosene_minuteman = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Spexta").setTitle("MX 1702").setUnlocalizedName("mp_fuselage_15_kerosene_minuteman"); - mp_fuselage_15_kerosene_pip = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("The Doctor").setTitle("LittlePip").setWittyText("31!").setCreativeTab(null).setUnlocalizedName("mp_fuselage_15_kerosene_pip"); - mp_fuselage_15_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setWittyText("DUN-DUN!").setUnlocalizedName("mp_fuselage_15_kerosene_taint"); - mp_fuselage_15_kerosene_yuck = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Flesh").setWittyText("Note: Never clean DNA vials with your own spit.").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_yuck"); - - mp_fuselage_15_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(60F) .setUnlocalizedName("mp_fuselage_15_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(65F).setUnlocalizedName("mp_fuselage_15_solid_insulation"); - mp_fuselage_15_solid_desh = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Desh Plating").setHealth(80F).setUnlocalizedName("mp_fuselage_15_solid_desh"); - mp_fuselage_15_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Soviet Glory").setHealth(70F).setUnlocalizedName("mp_fuselage_15_solid_soviet_glory"); - mp_fuselage_15_solid_soviet_stank = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Soviet Stank").setHealth(15F).setWittyText("Aged like a fine wine! Well, almost.").setUnlocalizedName("mp_fuselage_15_solid_soviet_stank"); - mp_fuselage_15_solid_faust = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.LEGENDARY).setAuthor("Dr.Nostalgia").setTitle("Mighty Lauren").setHealth(250F).setWittyText("Welcome to Subway, may I take your order?").setUnlocalizedName("mp_fuselage_15_solid_faust"); - mp_fuselage_15_solid_silvermoonlight = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_15_solid_silvermoonlight"); - mp_fuselage_15_solid_snowy = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Dr.Nostalgia").setTitle("Chilly Day").setUnlocalizedName("mp_fuselage_15_solid_snowy"); - mp_fuselage_15_solid_panorama = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Panorama").setUnlocalizedName("mp_fuselage_15_solid_panorama"); - mp_fuselage_15_solid_roses = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bed of roses").setUnlocalizedName("mp_fuselage_15_solid_roses"); - mp_fuselage_15_solid_mimi = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setTitle("Mimi-chan").setUnlocalizedName("mp_fuselage_15_solid_mimi"); - - mp_fuselage_15_hydrogen = new ItemCustomMissilePart().makeFuselage(FuelType.HYDROGEN, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(50F) .setUnlocalizedName("mp_fuselage_15_hydrogen").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_hydrogen_cathedral = ((ItemCustomMissilePart) mp_fuselage_15_hydrogen).copy().setRarity(Rarity.UNCOMMON).setAuthor("Satan").setTitle("Unholy Cathedral").setUnlocalizedName("mp_fuselage_15_hydrogen_cathedral"); - - mp_fuselage_15_balefire = new ItemCustomMissilePart().makeFuselage(FuelType.BALEFIRE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(75F) .setUnlocalizedName("mp_fuselage_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - - mp_fuselage_15_20_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setAuthor("Hoboy").setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_15_20_kerosene_magnusson = ((ItemCustomMissilePart)mp_fuselage_15_20_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("White Forest Rocket").setWittyText("And get your cranio-conjugal parasite away from my nose cone!").setUnlocalizedName("mp_fuselage_15_20_kerosene_magnusson"); - mp_fuselage_15_20_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - - mp_fuselage_20_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_20, PartSize.SIZE_20) .setUnlocalizedName("mp_f_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - - mp_warhead_10_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_incendiary = new ItemCustomMissilePart().makeWarhead(WarheadType.INC, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_buster = new ItemCustomMissilePart().makeWarhead(WarheadType.BUSTER, 5F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_nuclear = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 35F, 1.5F, PartSize.SIZE_10).setTitle("Tater Tot").setHealth(10F).setUnlocalizedName("mp_warhead_10_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_nuclear_large = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 75F, 2.5F, PartSize.SIZE_10).setTitle("Chernobyl Boris").setHealth(15F).setUnlocalizedName("mp_warhead_10_nuclear_large").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_taint = new ItemCustomMissilePart().makeWarhead(WarheadType.TAINT, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.UNCOMMON).setWittyText("Eat my taint! Bureaucracy is dead and we killed it!").setUnlocalizedName("mp_warhead_10_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_10_cloud = new ItemCustomMissilePart().makeWarhead(WarheadType.CLOUD, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_10_cloud").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 50F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_incendiary = new ItemCustomMissilePart().makeWarhead(WarheadType.INC, 35F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_nuclear = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 125F, 5F, PartSize.SIZE_15).setTitle("Auntie Bertha").setHealth(15F).setUnlocalizedName("mp_warhead_15_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_nuclear_shark = ((ItemCustomMissilePart) mp_warhead_15_nuclear).copy().setRarity(Rarity.UNCOMMON).setTitle("Discount Bullet Bill").setWittyText("Nose art on a cannon bullet? Who does that?").setUnlocalizedName("mp_warhead_15_nuclear_shark"); - mp_warhead_15_nuclear_mimi = ((ItemCustomMissilePart) mp_warhead_15_nuclear).copy().setRarity(Rarity.RARE).setTitle("FASHIONABLE MISSILE").setUnlocalizedName("mp_warhead_15_nuclear_mimi"); - mp_warhead_15_boxcar = new ItemCustomMissilePart().makeWarhead(WarheadType.TX, 250F, 7.5F, PartSize.SIZE_15).setWittyText("?!?!").setHealth(35F).setRarity(Rarity.LEGENDARY).setUnlocalizedName("mp_warhead_15_boxcar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_n2 = new ItemCustomMissilePart().makeWarhead(WarheadType.N2, 100F, 5F, PartSize.SIZE_15).setWittyText("[screams geometrically]").setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_15_n2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_balefire = new ItemCustomMissilePart().makeWarhead(WarheadType.BALEFIRE, 100F, 7.5F, PartSize.SIZE_15).setRarity(Rarity.LEGENDARY).setAuthor("VT-6/24").setHealth(15F).setWittyText("Hightower, never forgetti.").setUnlocalizedName("mp_warhead_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_15_turbine = new ItemCustomMissilePart().makeWarhead(WarheadType.TURBINE, 200F, 5F, PartSize.SIZE_15).setRarity(Rarity.SEWS_CLOTHES_AND_SUCKS_HORSE_COCK).setHealth(250F).setUnlocalizedName("mp_warhead_15_turbine").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - mp_warhead_20_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1F, PartSize.SIZE_20) .setUnlocalizedName("mp_w_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); - - mp_chip_1 = new ItemCustomMissilePart().makeChip(0.1F) .setUnlocalizedName("mp_c_1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_1"); - mp_chip_2 = new ItemCustomMissilePart().makeChip(0.05F) .setUnlocalizedName("mp_c_2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_2"); - mp_chip_3 = new ItemCustomMissilePart().makeChip(0.01F) .setUnlocalizedName("mp_c_3").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_3"); - mp_chip_4 = new ItemCustomMissilePart().makeChip(0.005F) .setUnlocalizedName("mp_c_4").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_4"); - mp_chip_5 = new ItemCustomMissilePart().makeChip(0.0F) .setUnlocalizedName("mp_c_5").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_5"); - - missile_skin_camo = new ItemCustomLore().setUnlocalizedName("missile_skin_camo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_camo"); - missile_skin_desert = new ItemCustomLore().setUnlocalizedName("missile_skin_desert").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_desert"); - missile_skin_flames = new ItemCustomLore().setUnlocalizedName("missile_skin_flames").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_flames"); - missile_skin_manly_pink = new ItemCustomLore().setUnlocalizedName("missile_skin_manly_pink").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_manly_pink"); - missile_skin_orange_insulation = new ItemCustomLore().setUnlocalizedName("missile_skin_orange_insulation").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_orange_insulation"); - missile_skin_sleek = new ItemCustomLore().setUnlocalizedName("missile_skin_sleek").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_sleek"); - missile_skin_soviet_glory = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_glory").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_glory"); - missile_skin_soviet_stank = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_stank").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_stank"); - missile_skin_metal = new ItemCustomLore().setUnlocalizedName("missile_skin_metal").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_metal"); - - ammo_shell = (ItemEnumMulti) new ItemAmmo(Ammo240Shell.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_shell"); - ammo_dgk = new ItemCustomLore().setUnlocalizedName("ammo_dgk").setCreativeTab(MainRegistry.weaponTab); - ammo_fireext = (ItemEnumMulti) new ItemAmmo(AmmoFireExt.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_fireext"); - ammo_misc = new ItemAmmo(AmmoMisc.class).setUnlocalizedName("ammo_misc"); - ammo_arty = new ItemAmmoArty().setUnlocalizedName("ammo_arty"); - ammo_himars = new ItemAmmoHIMARS().setUnlocalizedName("ammo_himars"); - - gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt"); - gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92"); - gun_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext"); - - ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0); - crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); - - stick_dynamite = new ItemGrenade(3).setUnlocalizedName("stick_dynamite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_dynamite"); - stick_dynamite_fishing = new ItemGrenadeFishing(3).setUnlocalizedName("stick_dynamite_fishing").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_dynamite_fishing"); - stick_tnt = new Item().setUnlocalizedName("stick_tnt").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_tnt"); - stick_semtex = new Item().setUnlocalizedName("stick_semtex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_semtex"); - stick_c4 = new Item().setUnlocalizedName("stick_c4").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_c4"); - - grenade_generic = new ItemGrenade(4).setUnlocalizedName("grenade_generic").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_generic"); - grenade_strong = new ItemGrenade(5).setUnlocalizedName("grenade_strong").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_strong"); - grenade_frag = new ItemGrenade(4).setUnlocalizedName("grenade_frag").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_frag_alt"); - grenade_fire = new ItemGrenade(4).setUnlocalizedName("grenade_fire").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_fire_alt"); - grenade_shrapnel = new ItemGrenade(4).setUnlocalizedName("grenade_shrapnel").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_shrapnel"); - grenade_cluster = new ItemGrenade(5).setUnlocalizedName("grenade_cluster").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_cluster_alt"); - grenade_flare = new ItemGrenade(0).setUnlocalizedName("grenade_flare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_flare_alt"); - grenade_electric = new ItemGrenade(5).setUnlocalizedName("grenade_electric").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_electric_alt"); - grenade_poison = new ItemGrenade(4).setUnlocalizedName("grenade_poison").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_poison_alt"); - grenade_gas = new ItemGrenade(4).setUnlocalizedName("grenade_gas").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_gas_alt"); - grenade_pulse = new ItemGrenade(4).setUnlocalizedName("grenade_pulse").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_pulse"); - grenade_plasma = new ItemGrenade(5).setUnlocalizedName("grenade_plasma").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_plasma_alt"); - grenade_tau = new ItemGrenade(5).setUnlocalizedName("grenade_tau").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_tau_alt"); - grenade_schrabidium = new ItemGrenade(7).setUnlocalizedName("grenade_schrabidium").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_schrabidium_alt"); - grenade_lemon = new ItemGrenade(4).setUnlocalizedName("grenade_lemon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_lemon"); - grenade_gascan = new ItemGrenade(-1).setUnlocalizedName("grenade_gascan").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_gascan"); - grenade_kyiv = new ItemGrenadeKyiv(-1).setUnlocalizedName("grenade_kyiv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_kyiv"); - grenade_mk2 = new ItemGrenade(5).setUnlocalizedName("grenade_mk2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_mk2_alt"); - grenade_aschrab = new ItemGrenade(-1).setUnlocalizedName("grenade_aschrab").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_aschrab"); - grenade_nuke = new ItemGrenade(-1).setUnlocalizedName("grenade_nuke").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_nuke_alt"); - grenade_nuclear = new ItemGrenade(7).setUnlocalizedName("grenade_nuclear").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_nuclear"); - grenade_zomg = new ItemGrenade(7).setUnlocalizedName("grenade_zomg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_zomg"); - grenade_black_hole = new ItemGrenade(7).setUnlocalizedName("grenade_black_hole").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_black_hole"); - grenade_cloud = new ItemGrenade(-1).setUnlocalizedName("grenade_cloud").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_cloud"); - grenade_pink_cloud = new ItemGrenade(-1).setUnlocalizedName("grenade_pink_cloud").setCreativeTab(null).setTextureName(RefStrings.MODID + ":grenade_pink_cloud"); - ullapool_caber = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("ullapool_caber").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ullapool_caber"); - - grenade_if_generic = new ItemGrenade(4).setUnlocalizedName("grenade_if_generic").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_generic"); - grenade_if_he = new ItemGrenade(5).setUnlocalizedName("grenade_if_he").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_he"); - grenade_if_bouncy = new ItemGrenade(4).setUnlocalizedName("grenade_if_bouncy").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_bouncy"); - grenade_if_sticky = new ItemGrenade(4).setUnlocalizedName("grenade_if_sticky").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_sticky"); - grenade_if_impact = new ItemGrenade(-1).setUnlocalizedName("grenade_if_impact").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_impact"); - grenade_if_incendiary = new ItemGrenade(4).setUnlocalizedName("grenade_if_incendiary").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_incendiary"); - grenade_if_toxic = new ItemGrenade(4).setUnlocalizedName("grenade_if_toxic").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_toxic"); - grenade_if_concussion = new ItemGrenade(4).setUnlocalizedName("grenade_if_concussion").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_concussion"); - grenade_if_brimstone = new ItemGrenade(5).setUnlocalizedName("grenade_if_brimstone").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_brimstone"); - grenade_if_mystery = new ItemGrenade(5).setUnlocalizedName("grenade_if_mystery").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_mystery"); - grenade_if_spark = new ItemGrenade(7).setUnlocalizedName("grenade_if_spark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_spark"); - grenade_if_hopwire = new ItemGrenade(7).setUnlocalizedName("grenade_if_hopwire").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_hopwire"); - grenade_if_null = new ItemGrenade(7).setUnlocalizedName("grenade_if_null").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_null"); - - grenade_smart = new ItemGrenade(-1).setUnlocalizedName("grenade_smart").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_smart"); - grenade_mirv = new ItemGrenade(1).setUnlocalizedName("grenade_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_mirv"); - grenade_breach = new ItemGrenade(-1).setUnlocalizedName("grenade_breach").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_breach"); - grenade_burst = new ItemGrenade(1).setUnlocalizedName("grenade_burst").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_burst"); - nuclear_waste_pearl = new ItemGrenade(-1).setUnlocalizedName("nuclear_waste_pearl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":nuclear_waste_pearl"); - - weaponized_starblaster_cell = new WeaponizedCell().setUnlocalizedName("weaponized_starblaster_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_weaponized"); - - bomb_waffle = new ItemWaffle(20, false).setUnlocalizedName("bomb_waffle").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bomb_waffle"); - schnitzel_vegan = new ItemSchnitzelVegan(0, true).setUnlocalizedName("schnitzel_vegan").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":schnitzel_vegan"); - cotton_candy = new ItemCottonCandy(5, false).setUnlocalizedName("cotton_candy").setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":cotton_candy"); - apple_lead = new ItemAppleSchrabidium(5, 0, false).setUnlocalizedName("apple_lead").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":apple_lead"); - apple_schrabidium = new ItemAppleSchrabidium(20, 100, false).setUnlocalizedName("apple_schrabidium").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":apple_schrabidium"); - tem_flakes = new ItemTemFlakes(0, 0, false).setUnlocalizedName("tem_flakes").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":tem_flakes"); - glowing_stew = new ItemSoup(6).setUnlocalizedName("glowing_stew").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glowing_stew"); - balefire_scrambled = new ItemSoup(6).setUnlocalizedName("balefire_scrambled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_scrambled"); - balefire_and_ham = new ItemSoup(6).setUnlocalizedName("balefire_and_ham").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_and_ham"); - lemon = new ItemLemon(3, 0.5F, false).setUnlocalizedName("lemon").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":lemon"); - definitelyfood = new ItemLemon(3, 0.5F, false).setUnlocalizedName("definitelyfood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":definitelyfood"); - med_ipecac = new ItemLemon(0, 0, false).setUnlocalizedName("med_ipecac").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ipecac_new"); - med_ptsd = new ItemLemon(0, 0, false).setUnlocalizedName("med_ptsd").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ptsd_new"); - med_schizophrenia = new ItemLemon(0, 0, false).setUnlocalizedName("med_schizophrenia").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_schizophrenia_new"); - loops = new ItemLemon(4, 0.25F, false).setUnlocalizedName("loops").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loops"); - loop_stew = new ItemLemon(10, 0.5F, false).setUnlocalizedName("loop_stew").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loop_stew"); - spongebob_macaroni = new ItemLemon(5, 1F, false).setUnlocalizedName("spongebob_macaroni").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spongebob_macaroni"); - fooditem = new ItemLemon(2, 5F, false).setUnlocalizedName("fooditem").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fooditem"); - twinkie = new ItemLemon(3, 0.25F, false).setUnlocalizedName("twinkie").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":twinkie"); - static_sandwich = new ItemLemon(6, 1F, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich"); - pudding = new ItemLemon(6, 1F, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding"); - canteen_vodka = new ItemCanteen(3 * 60).setUnlocalizedName("canteen_vodka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_vodka"); - canteen_fab = new ItemCanteen(2 * 60).setUnlocalizedName("canteen_fab").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_fab"); - pancake = new ItemPancake(20, 20, false).setUnlocalizedName("pancake").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pancake"); - nugget = new ItemLemon(200, 1F, false).setUnlocalizedName("nugget").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nugget"); - peas = new ItemPeas().setUnlocalizedName("peas").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":peas"); - marshmallow = new ItemMarshmallow().setUnlocalizedName("marshmallow").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":marshmallow"); - cheese = new ItemLemon(5, 0.75F, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese"); - quesadilla = new ItemLemon(8, 1F, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla"); - mucho_mango = new ItemMuchoMango(10).setUnlocalizedName("mucho_mango").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mucho_mango"); - glyphid_meat = new ItemLemon(3, 0.5F, true).setUnlocalizedName("glyphid_meat").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat"); - glyphid_meat_grilled = new ItemLemon(8, 0.75F, true).setPotionEffect(Potion.damageBoost.id, 180, 1, 1F).setUnlocalizedName("glyphid_meat_grilled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat_grilled"); - egg_glyphid = new Item().setUnlocalizedName("egg_glyphid").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":egg_glyphid"); - - defuser = new ItemTooling(ToolType.DEFUSER, 100).setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser"); - reacher = new Item().setUnlocalizedName("reacher").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":reacher"); - bismuth_tool = new ItemAmatExtractor().setUnlocalizedName("bismuth_tool").setMaxStackSize(1).setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":bismuth_tool"); - meltdown_tool = new ItemDyatlov().setUnlocalizedName("meltdown_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":meltdown_tool"); - - flame_pony = new ItemCustomLore().setUnlocalizedName("flame_pony").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_pony"); - flame_conspiracy = new ItemCustomLore().setUnlocalizedName("flame_conspiracy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_conspiracy"); - 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"); - 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 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_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 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 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"); - fleija_core = new ItemFleija().setUnlocalizedName("fleija_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":fleija_core"); - - solinium_igniter = new ItemSolinium().setUnlocalizedName("solinium_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":solinium_igniter"); - solinium_propellant = new ItemSolinium().setUnlocalizedName("solinium_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":solinium_propellant"); - solinium_core = new ItemSolinium().setUnlocalizedName("solinium_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":solinium_core"); - - n2_charge = new ItemN2().setUnlocalizedName("n2_charge").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":n2_charge"); - - egg_balefire_shard = new Item().setUnlocalizedName("egg_balefire_shard").setMaxStackSize(16).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":egg_balefire_shard"); - egg_balefire = new Item().setUnlocalizedName("egg_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":egg_balefire"); - - custom_tnt = new ItemCustomLore().setUnlocalizedName("custom_tnt").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_tnt"); - custom_nuke = new ItemCustomLore().setUnlocalizedName("custom_nuke").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_nuke"); - custom_hydro = new ItemCustomLore().setUnlocalizedName("custom_hydro").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_hydro"); - custom_amat = new ItemCustomLore().setUnlocalizedName("custom_amat").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_amat"); - custom_dirty = new ItemCustomLore().setUnlocalizedName("custom_dirty").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_dirty"); - custom_schrab = new ItemCustomLore().setUnlocalizedName("custom_schrab").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_schrab"); - custom_fall = new ItemCustomLore().setUnlocalizedName("custom_fall").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_fall"); - - battery_generic = new ItemBattery(5000, 100, 100).setUnlocalizedName("battery_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_generic_new"); - battery_advanced = new ItemBattery(20000, 500, 500).setUnlocalizedName("battery_advanced").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_new"); - battery_lithium = new ItemBattery(250000, 1000, 1000).setUnlocalizedName("battery_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium"); - battery_schrabidium = new ItemBattery(1000000, 5000, 5000).setUnlocalizedName("battery_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_new"); - battery_spark = new ItemBattery(100000000, 2000000, 2000000).setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark"); - battery_trixite = new ItemBattery(5000000, 40000, 200000).setUnlocalizedName("battery_trixite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_trixite"); - battery_creative = new Item().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new"); - - battery_red_cell = new ItemBattery(15000, 100, 100).setUnlocalizedName("battery_red_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_red_cell"); - battery_red_cell_6 = new ItemBattery(15000 * 6, 100, 100).setUnlocalizedName("battery_red_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_red_cell_6"); - battery_red_cell_24 = new ItemBattery(15000 * 24, 100, 100).setUnlocalizedName("battery_red_cell_24").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_red_cell_24"); - battery_advanced_cell = new ItemBattery(60000, 500, 500).setUnlocalizedName("battery_advanced_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_cell"); - battery_advanced_cell_4 = new ItemBattery(60000 * 4, 500, 500).setUnlocalizedName("battery_advanced_cell_4").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_cell_4"); - battery_advanced_cell_12 = new ItemBattery(60000 * 12, 500, 500).setUnlocalizedName("battery_advanced_cell_12").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_cell_12"); - battery_lithium_cell = new ItemBattery(750000, 1000, 1000).setUnlocalizedName("battery_lithium_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium_cell"); - battery_lithium_cell_3 = new ItemBattery(750000 * 3, 1000, 1000).setUnlocalizedName("battery_lithium_cell_3").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium_cell_3"); - battery_lithium_cell_6 = new ItemBattery(750000 * 6, 1000, 1000).setUnlocalizedName("battery_lithium_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium_cell_6"); - battery_schrabidium_cell = new ItemBattery(3000000, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell"); - battery_schrabidium_cell_2 = new ItemBattery(3000000 * 2, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell_2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell_2"); - battery_schrabidium_cell_4 = new ItemBattery(3000000 * 4, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell_4").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell_4"); - battery_spark_cell_6 = new ItemBattery(100000000L * 6L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_6"); - battery_spark_cell_25 = new ItemBattery(100000000L * 25L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_25").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_25"); - battery_spark_cell_100 = new ItemBattery(100000000L * 100L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_100").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_100"); - battery_spark_cell_1000 = new ItemBattery(100000000L * 1000L, 20000000, 20000000).setUnlocalizedName("battery_spark_cell_1000").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_1000"); - battery_spark_cell_2500 = new ItemBattery(100000000L * 2500L, 20000000, 20000000).setUnlocalizedName("battery_spark_cell_2500").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_2500"); - battery_spark_cell_10000 = new ItemBattery(100000000L * 10000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_10000").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_10000"); - battery_spark_cell_power = new ItemBattery(100000000L * 1000000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_power"); - cube_power = new ItemBattery(1000000000000000000L, 1000000000000000L, 1000000000000000L).setUnlocalizedName("cube_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cube_power"); - - battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_uranium"); - battery_sc_technetium = new ItemSelfcharger(25).setUnlocalizedName("battery_sc_technetium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_technetium"); - battery_sc_plutonium = new ItemSelfcharger(100).setUnlocalizedName("battery_sc_plutonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_plutonium"); - battery_sc_polonium = new ItemSelfcharger(500).setUnlocalizedName("battery_sc_polonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_polonium"); - battery_sc_gold = new ItemSelfcharger(2500).setUnlocalizedName("battery_sc_gold").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_gold"); - battery_sc_lead = new ItemSelfcharger(5000).setUnlocalizedName("battery_sc_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_lead"); - battery_sc_americium = new ItemSelfcharger(10000).setUnlocalizedName("battery_sc_americium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_americium"); - - battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato"); - battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); - hev_battery = new ItemFusionCore(150000).setUnlocalizedName("hev_battery").setMaxStackSize(4).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hev_battery"); - fusion_core = new ItemFusionCore(2500000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core"); - fusion_core_infinite = new Item().setUnlocalizedName("fusion_core_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core_infinite"); - energy_core = new ItemBattery(10000000, 0, 1000).setUnlocalizedName("energy_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":energy_core"); - fuse = new ItemCustomLore().setUnlocalizedName("fuse").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); - redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); - euphemium_capacitor = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("euphemium_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor_euphemium"); - screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver"); - screwdriver_desh = new ItemTooling(ToolType.SCREWDRIVER, 0).setUnlocalizedName("screwdriver_desh"); - hand_drill = new ItemTooling(ToolType.HAND_DRILL, 100).setUnlocalizedName("hand_drill"); - hand_drill_desh = new ItemTooling(ToolType.HAND_DRILL, 0).setUnlocalizedName("hand_drill_desh"); - wrench_archineer = new ItemToolingWeapon(ToolType.WRENCH, 1000, 12F).setUnlocalizedName("wrench_archineer").setTextureName(RefStrings.MODID + ":wrench_archineer_hd"); - chemistry_set = new ItemCraftingDegradation(100).setUnlocalizedName("chemistry_set"); - chemistry_set_boron = new ItemCraftingDegradation(0).setUnlocalizedName("chemistry_set_boron"); - blowtorch = new ItemBlowtorch().setUnlocalizedName("blowtorch"); - acetylene_torch = new ItemBlowtorch().setUnlocalizedName("acetylene_torch"); - boltgun = new ItemBoltgun().setUnlocalizedName("boltgun"); - overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse"); - arc_electrode = new ItemArcElectrode().setUnlocalizedName("arc_electrode").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":arc_electrode"); - arc_electrode_burnt = new ItemArcElectrodeBurnt().setUnlocalizedName("arc_electrode_burnt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":arc_electrode_burnt"); - - ams_focus_blank = new Item().setUnlocalizedName("ams_focus_blank").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_blank"); - ams_focus_limiter = new ItemCustomLore().setUnlocalizedName("ams_focus_limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_limiter"); - ams_focus_booster = new ItemCustomLore().setUnlocalizedName("ams_focus_booster").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_booster"); - ams_muzzle = new ItemCustomLore().setUnlocalizedName("ams_muzzle").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_muzzle"); - ams_lens = new ItemLens(60 * 60 * 60 * 20 * 100).setUnlocalizedName("ams_lens").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_lens"); - ams_core_sing = new ItemAMSCore(1000000000L, 200, 10).setUnlocalizedName("ams_core_sing").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_core_sing"); - ams_core_wormhole = new ItemAMSCore(1500000000L, 200, 15).setUnlocalizedName("ams_core_wormhole").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_core_wormhole"); - ams_core_eyeofharmony = new ItemAMSCore(2500000000L, 300, 10).setUnlocalizedName("ams_core_eyeofharmony").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_core_eyeofharmony"); - ams_core_thingy = new ItemAMSCore(5000000000L, 250, 5).setUnlocalizedName("ams_core_thingy").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":ams_core_thingy"); - - fusion_shield_tungsten = new ItemFusionShield(60 * 60 * 60 * 5, 3500).setUnlocalizedName("fusion_shield_tungsten").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_tungsten"); - fusion_shield_desh = new ItemFusionShield(60 * 60 * 60 * 10, 4500).setUnlocalizedName("fusion_shield_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_desh"); - fusion_shield_chlorophyte = new ItemFusionShield(60 * 60 * 60 * 15, 9000).setUnlocalizedName("fusion_shield_chlorophyte").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_chlorophyte"); - fusion_shield_vaporwave = new ItemFusionShield(60 * 60 * 60 * 10, 1916169).setUnlocalizedName("fusion_shield_vaporwave").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_vaporwave"); - - upgrade_muffler = new ItemMuffler().setUnlocalizedName("upgrade_muffler").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_muffler"); - - upgrade_template = new ItemCustomLore().setUnlocalizedName("upgrade_template").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_template"); - upgrade_speed_1 = new ItemMachineUpgrade(UpgradeType.SPEED, 1).setUnlocalizedName("upgrade_speed_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_1"); - upgrade_speed_2 = new ItemMachineUpgrade(UpgradeType.SPEED, 2).setUnlocalizedName("upgrade_speed_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_2"); - upgrade_speed_3 = new ItemMachineUpgrade(UpgradeType.SPEED, 3).setUnlocalizedName("upgrade_speed_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_3"); - upgrade_effect_1 = new ItemMachineUpgrade(UpgradeType.EFFECT, 1).setUnlocalizedName("upgrade_effect_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_effect_1"); - upgrade_effect_2 = new ItemMachineUpgrade(UpgradeType.EFFECT, 2).setUnlocalizedName("upgrade_effect_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_effect_2"); - upgrade_effect_3 = new ItemMachineUpgrade(UpgradeType.EFFECT, 3).setUnlocalizedName("upgrade_effect_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_effect_3"); - upgrade_power_1 = new ItemMachineUpgrade(UpgradeType.POWER, 1).setUnlocalizedName("upgrade_power_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_power_1"); - upgrade_power_2 = new ItemMachineUpgrade(UpgradeType.POWER, 2).setUnlocalizedName("upgrade_power_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_power_2"); - upgrade_power_3 = new ItemMachineUpgrade(UpgradeType.POWER, 3).setUnlocalizedName("upgrade_power_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_power_3"); - upgrade_fortune_1 = new ItemMachineUpgrade(UpgradeType.FORTUNE, 1).setUnlocalizedName("upgrade_fortune_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_fortune_1"); - upgrade_fortune_2 = new ItemMachineUpgrade(UpgradeType.FORTUNE, 2).setUnlocalizedName("upgrade_fortune_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_fortune_2"); - upgrade_fortune_3 = new ItemMachineUpgrade(UpgradeType.FORTUNE, 3).setUnlocalizedName("upgrade_fortune_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_fortune_3"); - upgrade_afterburn_1 = new ItemMachineUpgrade(UpgradeType.AFTERBURN, 1).setUnlocalizedName("upgrade_afterburn_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_afterburn_1"); - upgrade_afterburn_2 = new ItemMachineUpgrade(UpgradeType.AFTERBURN, 2).setUnlocalizedName("upgrade_afterburn_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_afterburn_2"); - upgrade_afterburn_3 = new ItemMachineUpgrade(UpgradeType.AFTERBURN, 3).setUnlocalizedName("upgrade_afterburn_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_afterburn_3"); - upgrade_overdrive_1 = new ItemMachineUpgrade(UpgradeType.OVERDRIVE, 1).setUnlocalizedName("upgrade_overdrive_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_overdrive_1"); - upgrade_overdrive_2 = new ItemMachineUpgrade(UpgradeType.OVERDRIVE, 2).setUnlocalizedName("upgrade_overdrive_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_overdrive_2"); - upgrade_overdrive_3 = new ItemMachineUpgrade(UpgradeType.OVERDRIVE, 3).setUnlocalizedName("upgrade_overdrive_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_overdrive_3"); - upgrade_radius = new ItemMachineUpgrade().setUnlocalizedName("upgrade_radius").setMaxStackSize(16).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_radius"); - upgrade_health = new ItemMachineUpgrade().setUnlocalizedName("upgrade_health").setMaxStackSize(16).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_health"); - upgrade_smelter = new ItemMachineUpgrade().setUnlocalizedName("upgrade_smelter").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_smelter"); - upgrade_shredder = new ItemMachineUpgrade().setUnlocalizedName("upgrade_shredder").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_shredder"); - upgrade_centrifuge = new ItemMachineUpgrade().setUnlocalizedName("upgrade_centrifuge").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_centrifuge"); - upgrade_crystallizer = new ItemMachineUpgrade().setUnlocalizedName("upgrade_crystallizer").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_crystallizer"); - upgrade_nullifier = new ItemMachineUpgrade().setUnlocalizedName("upgrade_nullifier").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_nullifier"); - 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"); - wand_d = new ItemWandD().setUnlocalizedName("wand_d").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":wand_d"); - - structure_single = new ItemStructureSingle().setUnlocalizedName("structure_single").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_single"); - structure_solid = new ItemStructureSolid().setUnlocalizedName("structure_solid").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_solid"); - structure_pattern = new ItemStructurePattern().setUnlocalizedName("structure_pattern").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_pattern"); - structure_randomized = new ItemStructureRandomized().setUnlocalizedName("structure_randomized").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomized"); - structure_randomly = new ItemStructureRandomly().setUnlocalizedName("structure_randomly").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomly"); - structure_custommachine = new ItemCMStructure().setUnlocalizedName("structure_custommachine").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":structure_custommachine"); - - rod_of_discord = new ItemDiscord().setUnlocalizedName("rod_of_discord").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":rod_of_discord"); - - nuke_starter_kit = new ItemStarterKit().setUnlocalizedName("nuke_starter_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_starter_kit"); - nuke_advanced_kit = new ItemStarterKit().setUnlocalizedName("nuke_advanced_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_advanced_kit"); - nuke_commercially_kit = new ItemStarterKit().setUnlocalizedName("nuke_commercially_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_commercially_kit"); - nuke_electric_kit = new ItemStarterKit().setUnlocalizedName("nuke_electric_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_electric_kit"); - gadget_kit = new ItemStarterKit().setUnlocalizedName("gadget_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_kit"); - boy_kit = new ItemStarterKit().setUnlocalizedName("boy_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_kit"); - man_kit = new ItemStarterKit().setUnlocalizedName("man_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_kit"); - mike_kit = new ItemStarterKit().setUnlocalizedName("mike_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_kit"); - tsar_kit = new ItemStarterKit().setUnlocalizedName("tsar_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":tsar_kit"); - multi_kit = new ItemStarterKit().setUnlocalizedName("multi_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":multi_kit"); - custom_kit = new ItemStarterKit().setUnlocalizedName("custom_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_kit"); - grenade_kit = new ItemStarterKit().setUnlocalizedName("grenade_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_kit"); - fleija_kit = new ItemStarterKit().setUnlocalizedName("fleija_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":fleija_kit"); - prototype_kit = new ItemStarterKit().setUnlocalizedName("prototype_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":prototype_kit"); - missile_kit = new ItemStarterKit().setUnlocalizedName("missile_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_kit"); - t45_kit = new ItemStarterKit().setUnlocalizedName("t45_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":t45_kit"); - euphemium_kit = new ItemStarterKit().setUnlocalizedName("euphemium_kit").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":code"); - solinium_kit = new ItemStarterKit().setUnlocalizedName("solinium_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":solinium_kit"); - hazmat_kit = new ItemStarterKit().setUnlocalizedName("hazmat_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_kit"); - hazmat_red_kit = new ItemStarterKit().setUnlocalizedName("hazmat_red_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_red_kit"); - hazmat_grey_kit = new ItemStarterKit().setUnlocalizedName("hazmat_grey_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_grey_kit"); - kit_custom = new ItemKitCustom().setUnlocalizedName("kit_custom").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit"); - toolbox = new ItemToolBox().setUnlocalizedName("toolbox").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit_toolbox"); - legacy_toolbox = new ItemKitNBT().setUnlocalizedName("toolbox_legacy").setContainerItem(toolbox).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit_toolbox"); - - loot_10 = new ItemLootCrate().setUnlocalizedName("loot_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_10"); - loot_15 = new ItemLootCrate().setUnlocalizedName("loot_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_15"); - loot_misc = new ItemLootCrate().setUnlocalizedName("loot_misc").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_misc"); - - ammo_container = new ItemAmmoContainer().setUnlocalizedName("ammo_container").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_container"); - - ingot_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_euphemium"); - nugget_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_euphemium"); - watch = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("watch").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":watch"); - apple_euphemium = new ItemAppleEuphemium(20, 100, false).setUnlocalizedName("apple_euphemium").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":apple_euphemium"); - - igniter = new ItemCustomLore().setUnlocalizedName("igniter").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":trigger"); - detonator = new ItemDetonator().setUnlocalizedName("detonator").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator"); - detonator_multi = new ItemMultiDetonator().setUnlocalizedName("detonator_multi").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_multi"); - detonator_laser = new ItemLaserDetonator().setUnlocalizedName("detonator_laser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_laser"); - detonator_deadman = new ItemDrop().setUnlocalizedName("detonator_deadman").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_deadman"); - detonator_de = new ItemDrop().setUnlocalizedName("detonator_de").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_de"); - bomb_caller = new ItemBombCaller().setUnlocalizedName("bomb_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bomb_caller"); - meteor_remote = new ItemMeteorRemote().setUnlocalizedName("meteor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":meteor_remote"); - anchor_remote = new ItemAnchorRemote().setUnlocalizedName("anchor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":anchor_remote"); - spawn_chopper = new ItemChopper().setUnlocalizedName("chopper").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":chopper"); - spawn_worm = new ItemChopper().setUnlocalizedName("spawn_worm").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spawn_worm"); - spawn_ufo = new ItemChopper().setUnlocalizedName("spawn_ufo").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spawn_ufo"); - spawn_duck = new ItemChopper().setUnlocalizedName("spawn_duck").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spawn_duck"); - linker = new ItemTeleLink().setUnlocalizedName("linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":linker"); - reactor_sensor = new ItemReactorSensor().setUnlocalizedName("reactor_sensor").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":reactor_sensor"); - 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"); - 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"); - pollution_detector = new ItemPollutionDetector().setUnlocalizedName("pollution_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pollution_detector"); - ore_density_scanner = new ItemOreDensityScanner().setUnlocalizedName("ore_density_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ore_density_scanner"); - survey_scanner = new ItemSurveyScanner().setUnlocalizedName("survey_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":survey_scanner"); - mirror_tool = new ItemMirrorTool().setUnlocalizedName("mirror_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mirror_tool"); - rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); - coltan_tool = new ItemColtanCompass().setUnlocalizedName("coltan_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coltass"); - power_net_tool = new ItemPowerNetTool().setUnlocalizedName("power_net_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":power_net_tool"); - analysis_tool = new ItemAnalysisTool().setUnlocalizedName("analysis_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":analysis_tool"); - coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool"); - drone_linker = new ItemDroneLinker().setUnlocalizedName("drone_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":drone_linker"); - radar_linker = new ItemRadarLinker().setUnlocalizedName("radar_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radar_linker"); - settings_tool = new ItemSettingsTool().setUnlocalizedName("settings_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":settings_tool"); - - key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); - key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); - key_red_cracked = new ItemCustomLore().setUnlocalizedName("key_red_cracked").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red_cracked"); - key_kit = new ItemCounterfitKeys().setUnlocalizedName("key_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_pair"); - key_fake = new ItemKey().setUnlocalizedName("key_fake").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_gold"); - pin = new ItemCustomLore().setUnlocalizedName("pin").setMaxStackSize(8).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pin"); - padlock_rusty = new ItemLock(1).setUnlocalizedName("padlock_rusty").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":padlock_rusty"); - padlock = new ItemLock(0.1).setUnlocalizedName("padlock").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":padlock"); - padlock_reinforced = new ItemLock(0.02).setUnlocalizedName("padlock_reinforced").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":padlock_reinforced"); - padlock_unbreakable = new ItemLock(0).setUnlocalizedName("padlock_unbreakable").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":padlock_unbreakable"); - - mech_key = new ItemCustomLore().setUnlocalizedName("mech_key").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":mech_key"); - - template_folder = new ItemTemplateFolder().setUnlocalizedName("template_folder").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":template_folder"); - journal_pip = new ItemTemplateFolder().setUnlocalizedName("journal_pip").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":journal_pip"); - journal_bj = new ItemTemplateFolder().setUnlocalizedName("journal_bj").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":journal_bj"); - journal_silver = new ItemTemplateFolder().setUnlocalizedName("journal_silver").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":journal_silver"); - assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":assembly_template"); - chemistry_template = new ItemChemistryTemplate().setUnlocalizedName("chemistry_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":chemistry_template"); - chemistry_icon = new ItemChemistryIcon().setUnlocalizedName("chemistry_icon").setMaxStackSize(1).setCreativeTab(null); - crucible_template = new ItemCrucibleTemplate().setUnlocalizedName("crucible_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":crucible_template"); - fluid_identifier = new ItemFluidIdentifier().setUnlocalizedName("fluid_identifier").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":fluid_identifier"); - fluid_identifier_multi = new ItemFluidIDMulti().setUnlocalizedName("fluid_identifier_multi").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":fluid_identifier_multi"); - fluid_icon = new ItemFluidIcon().setUnlocalizedName("fluid_icon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":fluid_icon"); - fluid_tank_empty = new Item().setUnlocalizedName("fluid_tank_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); - fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); - fluid_tank_lead_empty = new Item().setUnlocalizedName("fluid_tank_lead_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); - fluid_tank_lead_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_lead_full").setContainerItem(ModItems.fluid_tank_lead_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); - fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); - fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); - fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); - pipette = new ItemPipette().setUnlocalizedName("pipette").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette"); - pipette_boron = new ItemPipette().setUnlocalizedName("pipette_boron").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_boron"); - pipette_laboratory = new ItemPipette().setUnlocalizedName("pipette_laboratory").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_laboratory"); - siphon = new ItemFluidSiphon().setUnlocalizedName("siphon").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":siphon"); - inf_water = new ItemInfiniteFluid(Fluids.WATER, 50).setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water"); - inf_water_mk2 = new ItemInfiniteFluid(Fluids.WATER, 500).setUnlocalizedName("inf_water_mk2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water_mk2"); - - FluidTank.noDualUnload.add(fluid_barrel_infinite); - FluidTank.noDualUnload.add(inf_water); - FluidTank.noDualUnload.add(inf_water_mk2); - - disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); - disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); - - glyphid_gland_empty = new Item().setUnlocalizedName("glyphid_gland_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); - glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); - - siren_track = new ItemCassette().setUnlocalizedName("siren_track").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":cassette"); - fluid_duct = new ItemFluidDuct().setUnlocalizedName("fluid_duct").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":duct"); - - bobmazon = new ItemCatalog().setUnlocalizedName("bobmazon").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bobmazon"); - bobmazon_hidden = new ItemCatalog().setUnlocalizedName("bobmazon_hidden").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":bobmazon_special"); - - euphemium_helmet = new ArmorEuphemium(MainRegistry.aMatEuph, 0).setUnlocalizedName("euphemium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_helmet"); - euphemium_plate = new ArmorEuphemium(MainRegistry.aMatEuph, 1).setUnlocalizedName("euphemium_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_plate"); - euphemium_legs = new ArmorEuphemium(MainRegistry.aMatEuph, 2).setUnlocalizedName("euphemium_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_legs"); - euphemium_boots = new ArmorEuphemium(MainRegistry.aMatEuph, 3).setUnlocalizedName("euphemium_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_boots"); - - ArmorMaterial aMatRags = EnumHelper.addArmorMaterial("HBM_RAGS", 150, new int[] { 1, 1, 1, 1 }, 0); - aMatRags.customCraftingMaterial = ModItems.rag; - - goggles = new ArmorModel(ArmorMaterial.IRON, 0).setUnlocalizedName("goggles").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":goggles"); - ashglasses = new ArmorAshGlasses(ArmorMaterial.IRON, 0).setUnlocalizedName("ashglasses").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ashglasses"); - gas_mask = new ArmorGasMask().setUnlocalizedName("gas_mask").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":gas_mask"); - gas_mask_m65 = new ArmorGasMask().setUnlocalizedName("gas_mask_m65").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":gas_mask_m65"); - gas_mask_mono = new ArmorGasMask().setUnlocalizedName("gas_mask_mono").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":gas_mask_mono"); - gas_mask_olde = new ArmorGasMask().setUnlocalizedName("gas_mask_olde").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":gas_mask_olde"); - mask_rag = new ModArmor(aMatRags, 0).setUnlocalizedName("mask_rag").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_rag"); - mask_piss = new ModArmor(aMatRags, 0).setUnlocalizedName("mask_piss").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_piss"); - hat = new ArmorHat(MainRegistry.aMatAlloy, 0).setUnlocalizedName("nossy_hat").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hat"); - no9 = new ArmorNo9(MainRegistry.aMatSteel, 0).setUnlocalizedName("no9").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":no9"); - beta = new ItemDrop().setUnlocalizedName("beta").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":beta"); - //oxy_mask = new ArmorModel(ArmorMaterial.IRON, 7, 0).setUnlocalizedName("oxy_mask").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":oxy_mask"); - - schrabidium_helmet = new ArmorFSB(MainRegistry.aMatSchrab, 0, RefStrings.MODID + ":textures/armor/schrabidium_1.png") - .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2)) - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) - .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) - .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) - .setUnlocalizedName("schrabidium_helmet").setTextureName(RefStrings.MODID + ":schrabidium_helmet"); - schrabidium_plate = new ArmorFSB(MainRegistry.aMatSchrab, 1, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_plate").setTextureName(RefStrings.MODID + ":schrabidium_plate"); - schrabidium_legs = new ArmorFSB(MainRegistry.aMatSchrab, 2, RefStrings.MODID + ":textures/armor/schrabidium_2.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_legs").setTextureName(RefStrings.MODID + ":schrabidium_legs"); - schrabidium_boots = new ArmorFSB(MainRegistry.aMatSchrab, 3, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_boots").setTextureName(RefStrings.MODID + ":schrabidium_boots"); - bismuth_helmet = new ArmorBismuth(MainRegistry.aMatBismuth, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") - .addEffect(new PotionEffect(Potion.jump.id, 20, 6)) - .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 6)) - .addEffect(new PotionEffect(Potion.regeneration.id, 20, 1)) - .addEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)) - .setDashCount(3) - .setUnlocalizedName("bismuth_helmet").setTextureName(RefStrings.MODID + ":bismuth_helmet"); - bismuth_plate = new ArmorBismuth(MainRegistry.aMatBismuth, 1, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_plate").setTextureName(RefStrings.MODID + ":bismuth_plate"); - bismuth_legs = new ArmorBismuth(MainRegistry.aMatBismuth, 2, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_legs").setTextureName(RefStrings.MODID + ":bismuth_legs"); - bismuth_boots = new ArmorBismuth(MainRegistry.aMatBismuth, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_boots").setTextureName(RefStrings.MODID + ":bismuth_boots"); - titanium_helmet = new ArmorFSB(MainRegistry.aMatTitan, 0, RefStrings.MODID + ":textures/armor/titanium_1.png").setUnlocalizedName("titanium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_helmet"); - titanium_plate = new ArmorFSB(MainRegistry.aMatTitan, 1, RefStrings.MODID + ":textures/armor/titanium_1.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_plate"); - titanium_legs = new ArmorFSB(MainRegistry.aMatTitan, 2, RefStrings.MODID + ":textures/armor/titanium_2.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_legs"); - titanium_boots = new ArmorFSB(MainRegistry.aMatTitan, 3, RefStrings.MODID + ":textures/armor/titanium_1.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_boots").setTextureName(RefStrings.MODID + ":titanium_boots"); - steel_helmet = new ArmorFSB(MainRegistry.aMatSteel, 0, RefStrings.MODID + ":textures/armor/steel_1.png").setUnlocalizedName("steel_helmet").setTextureName(RefStrings.MODID + ":steel_helmet"); - steel_plate = new ArmorFSB(MainRegistry.aMatSteel, 1, RefStrings.MODID + ":textures/armor/steel_1.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_plate").setTextureName(RefStrings.MODID + ":steel_plate"); - steel_legs = new ArmorFSB(MainRegistry.aMatSteel, 2, RefStrings.MODID + ":textures/armor/steel_2.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_legs").setTextureName(RefStrings.MODID + ":steel_legs"); - steel_boots = new ArmorFSB(MainRegistry.aMatSteel, 3, RefStrings.MODID + ":textures/armor/steel_1.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_boots").setTextureName(RefStrings.MODID + ":steel_boots"); - alloy_helmet = new ArmorFSB(MainRegistry.aMatAlloy, 0, RefStrings.MODID + ":textures/armor/alloy_1.png").setUnlocalizedName("alloy_helmet").setTextureName(RefStrings.MODID + ":alloy_helmet"); - alloy_plate = new ArmorFSB(MainRegistry.aMatAlloy, 1, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_plate").setTextureName(RefStrings.MODID + ":alloy_plate"); - alloy_legs = new ArmorFSB(MainRegistry.aMatAlloy, 2, RefStrings.MODID + ":textures/armor/alloy_2.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_legs").setTextureName(RefStrings.MODID + ":alloy_legs"); - alloy_boots = new ArmorFSB(MainRegistry.aMatAlloy, 3, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_boots").setTextureName(RefStrings.MODID + ":alloy_boots"); - cmb_helmet = new ArmorFSB(MainRegistry.aMatCMB, 0, RefStrings.MODID + ":textures/armor/cmb_1.png") - .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) - .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2)) - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 4)) - .setUnlocalizedName("cmb_helmet").setTextureName(RefStrings.MODID + ":cmb_helmet"); - cmb_plate = new ArmorFSB(MainRegistry.aMatCMB, 1, RefStrings.MODID + ":textures/armor/cmb_1.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_plate").setTextureName(RefStrings.MODID + ":cmb_plate"); - cmb_legs = new ArmorFSB(MainRegistry.aMatCMB, 2, RefStrings.MODID + ":textures/armor/cmb_2.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_legs").setTextureName(RefStrings.MODID + ":cmb_legs"); - cmb_boots = new ArmorFSB(MainRegistry.aMatCMB, 3, RefStrings.MODID + ":textures/armor/cmb_1.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_boots").setTextureName(RefStrings.MODID + ":cmb_boots"); - paa_plate = new ArmorFSB(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/paa_1.png").setNoHelmet(true) - .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 0)).setUnlocalizedName("paa_plate").setTextureName(RefStrings.MODID + ":paa_plate"); - paa_legs = new ArmorFSB(MainRegistry.aMatPaa, 2, RefStrings.MODID + ":textures/armor/paa_2.png").cloneStats((ArmorFSB) paa_plate).setUnlocalizedName("paa_legs").setTextureName(RefStrings.MODID + ":paa_legs"); - paa_boots = new ArmorFSB(MainRegistry.aMatPaa, 3, RefStrings.MODID + ":textures/armor/paa_1.png").cloneStats((ArmorFSB) paa_plate).setUnlocalizedName("paa_boots").setTextureName(RefStrings.MODID + ":paa_boots"); - asbestos_helmet = new ArmorFSB(MainRegistry.aMatAsbestos, 0, RefStrings.MODID + ":textures/armor/asbestos_1.png").setOverlay(RefStrings.MODID + ":textures/misc/overlay_asbestos.png").setUnlocalizedName("asbestos_helmet").setTextureName(RefStrings.MODID + ":asbestos_helmet"); - asbestos_plate = new ArmorFSB(MainRegistry.aMatAsbestos, 1, RefStrings.MODID + ":textures/armor/asbestos_1.png").setUnlocalizedName("asbestos_plate").setTextureName(RefStrings.MODID + ":asbestos_plate"); - asbestos_legs = new ArmorFSB(MainRegistry.aMatAsbestos, 2, RefStrings.MODID + ":textures/armor/asbestos_2.png").setUnlocalizedName("asbestos_legs").setTextureName(RefStrings.MODID + ":asbestos_legs"); - asbestos_boots = new ArmorFSB(MainRegistry.aMatAsbestos, 3, RefStrings.MODID + ":textures/armor/asbestos_1.png").setUnlocalizedName("asbestos_boots").setTextureName(RefStrings.MODID + ":asbestos_boots"); - security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet"); - security_plate = new ArmorFSB(MainRegistry.aMatSecurity, 1, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_plate").setTextureName(RefStrings.MODID + ":security_plate"); - security_legs = new ArmorFSB(MainRegistry.aMatSecurity, 2, RefStrings.MODID + ":textures/armor/security_2.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_legs").setTextureName(RefStrings.MODID + ":security_legs"); - security_boots = new ArmorFSB(MainRegistry.aMatSecurity, 3, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_boots").setTextureName(RefStrings.MODID + ":security_boots"); - cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); - cobalt_plate = new ArmorFSB(MainRegistry.aMatCobalt, 1, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_plate").setTextureName(RefStrings.MODID + ":cobalt_plate"); - cobalt_legs = new ArmorFSB(MainRegistry.aMatCobalt, 2, RefStrings.MODID + ":textures/armor/cobalt_2.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_legs").setTextureName(RefStrings.MODID + ":cobalt_legs"); - cobalt_boots = new ArmorFSB(MainRegistry.aMatCobalt, 3, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_boots").setTextureName(RefStrings.MODID + ":cobalt_boots"); - starmetal_helmet = new ArmorFSB(MainRegistry.aMatStarmetal, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") - .setUnlocalizedName("starmetal_helmet").setTextureName(RefStrings.MODID + ":starmetal_helmet"); - starmetal_plate = new ArmorFSB(MainRegistry.aMatStarmetal, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_plate").setTextureName(RefStrings.MODID + ":starmetal_plate"); - starmetal_legs = new ArmorFSB(MainRegistry.aMatStarmetal, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_legs").setTextureName(RefStrings.MODID + ":starmetal_legs"); - starmetal_boots = new ArmorFSB(MainRegistry.aMatStarmetal, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_boots").setTextureName(RefStrings.MODID + ":starmetal_boots"); - - robes_helmet = new ArmorFSB(ArmorMaterial.CHAIN, 0, RefStrings.MODID + ":textures/armor/robes_1.png").setUnlocalizedName("robes_helmet").setTextureName(RefStrings.MODID + ":robes_helmet"); - robes_plate = new ArmorFSB(ArmorMaterial.CHAIN, 1, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_plate").setTextureName(RefStrings.MODID + ":robes_plate"); - robes_legs = new ArmorFSB(ArmorMaterial.CHAIN, 2, RefStrings.MODID + ":textures/armor/robes_2.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_legs").setTextureName(RefStrings.MODID + ":robes_legs"); - robes_boots = new ArmorFSB(ArmorMaterial.CHAIN, 3, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_boots").setTextureName(RefStrings.MODID + ":robes_boots"); - - initializeItem2(); - } - - public static void initializeItem2() { - - ArmorMaterial aMatZirconium = EnumHelper.addArmorMaterial("HBM_ZIRCONIUM", 1000, new int[] { 2, 5, 3, 1 }, 100); - aMatZirconium.customCraftingMaterial = ModItems.ingot_zirconium; - zirconium_legs = new ArmorFSB(aMatZirconium, 2, RefStrings.MODID + ":textures/armor/zirconium_2.png").setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs"); - - ArmorMaterial aMatDNT = EnumHelper.addArmorMaterial("HBM_DNT_LOLOLOL", 3, new int[] { 1, 1, 1, 1 }, 0); - aMatDNT.customCraftingMaterial = ModItems.ingot_dineutronium; - dnt_helmet = new ArmorFSB(aMatDNT, 0, RefStrings.MODID + ":textures/armor/dnt_1.png") - .setUnlocalizedName("dnt_helmet").setTextureName(RefStrings.MODID + ":dnt_helmet"); - dnt_plate = new ArmorFSB(aMatDNT, 1, RefStrings.MODID + ":textures/armor/dnt_1.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_plate").setTextureName(RefStrings.MODID + ":dnt_plate"); - dnt_legs = new ArmorFSB(aMatDNT, 2, RefStrings.MODID + ":textures/armor/dnt_2.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_legs").setTextureName(RefStrings.MODID + ":dnt_legs"); - dnt_boots = new ArmorFSB(aMatDNT, 3, RefStrings.MODID + ":textures/armor/dnt_1.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_boots").setTextureName(RefStrings.MODID + ":dnt_boots"); - - ArmorMaterial aMatT45 = EnumHelper.addArmorMaterial("HBM_T45", 150, new int[] { 3, 8, 6, 3 }, 0); - aMatT45.customCraftingMaterial = ModItems.plate_armor_titanium; - t45_helmet = new ArmorT45(aMatT45, 0, 1000000, 10000, 1000, 5) - .enableVATS(true) - .setHasGeigerSound(true) - .setHasHardLanding(true) - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("t45_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_helmet"); - t45_plate = new ArmorT45(aMatT45, 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, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs"); - t45_boots = new ArmorT45(aMatT45, 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, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1) - .setHasHardLanding(true) - .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 4)) - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("steamsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_helmet"); - steamsuit_plate = new ArmorDesh(aMatDesh, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_plate"); - steamsuit_legs = new ArmorDesh(aMatDesh, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.STEAM, 64_000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_legs"); - steamsuit_boots = new ArmorDesh(aMatDesh, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 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, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1) - .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) - .addEffect(new PotionEffect(Potion.jump.id, 20, 2)) - .enableThermalSight(true) - .enableVATS(true) - .setUnlocalizedName("dieselsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_helmet"); - dieselsuit_plate = new ArmorDiesel(aMatDiesel, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_plate"); - dieselsuit_legs = new ArmorDiesel(aMatDiesel, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_legs"); - dieselsuit_boots = new ArmorDiesel(aMatDiesel, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 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; - ajr_helmet = new ArmorAJR(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25) - .enableVATS(true) - .setHasGeigerSound(true) - .setHasHardLanding(true) - .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) - .setStep("hbm:step.metal").setJump("hbm:step.iron_jump").setFall("hbm:step.iron_land") - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("ajr_helmet").setTextureName(RefStrings.MODID + ":ajr_helmet"); - ajr_plate = new ArmorAJR(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_plate").setTextureName(RefStrings.MODID + ":ajr_plate"); - ajr_legs = new ArmorAJR(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_legs").setTextureName(RefStrings.MODID + ":ajr_legs"); - ajr_boots = new ArmorAJR(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_boots").setTextureName(RefStrings.MODID + ":ajr_boots"); - - ajro_helmet = new ArmorAJRO(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25) - .enableVATS(true) - .setHasGeigerSound(true) - .setHasHardLanding(true) - .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) - .setStep("hbm:step.metal").setJump("hbm:step.iron_jump").setFall("hbm:step.iron_land") - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("ajro_helmet").setTextureName(RefStrings.MODID + ":ajro_helmet"); - ajro_plate = new ArmorAJRO(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_plate").setTextureName(RefStrings.MODID + ":ajro_plate"); - ajro_legs = new ArmorAJRO(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_legs").setTextureName(RefStrings.MODID + ":ajro_legs"); - ajro_boots = new ArmorAJRO(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_boots").setTextureName(RefStrings.MODID + ":ajro_boots"); - - rpa_helmet = new ArmorRPA(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25) - .enableVATS(true) - .setHasGeigerSound(true) - .setHasHardLanding(true) - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 3)) - .setStep("hbm:step.powered") - .setJump("hbm:step.powered") - .setFall("hbm:step.powered") - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("rpa_helmet").setTextureName(RefStrings.MODID + ":rpa_helmet"); - rpa_plate = new ArmorRPA(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_plate").setTextureName(RefStrings.MODID + ":rpa_plate"); - rpa_legs = new ArmorRPA(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_legs").setTextureName(RefStrings.MODID + ":rpa_legs"); - rpa_boots = new ArmorRPA(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_boots").setTextureName(RefStrings.MODID + ":rpa_boots"); - - ArmorMaterial aMatBJ = EnumHelper.addArmorMaterial("HBM_BLACKJACK", 150, new int[] { 3, 8, 6, 3 }, 100); - aMatBJ.customCraftingMaterial = ModItems.plate_armor_lunar; - bj_helmet = new ArmorBJ(aMatBJ, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100) - .enableVATS(true) - .enableThermalSight(true) - .setHasGeigerSound(true) - .setHasHardLanding(true) - .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) - .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) - .addEffect(new PotionEffect(Potion.field_76443_y.id, 20, 0)) - .addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0)) - .setStep("hbm:step.metal") - .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land").setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet"); - bj_plate = new ArmorBJ(aMatBJ, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate").setTextureName(RefStrings.MODID + ":bj_plate"); - bj_plate_jetpack = new ArmorBJJetpack(aMatBJ, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate_jetpack").setTextureName(RefStrings.MODID + ":bj_plate_jetpack"); - bj_legs = new ArmorBJ(aMatBJ, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs"); - bj_boots = new ArmorBJ(aMatBJ, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots"); - - ArmorMaterial aMatEnv = EnumHelper.addArmorMaterial("HBM_ENV", 150, new int[] { 3, 8, 6, 3 }, 100); - aMatEnv.customCraftingMaterial = ModItems.plate_armor_hev; - envsuit_helmet = new ArmorEnvsuit(aMatEnv, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0) - .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) - .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("envsuit_helmet").setTextureName(RefStrings.MODID + ":envsuit_helmet"); - envsuit_plate = new ArmorEnvsuit(aMatEnv, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_plate").setTextureName(RefStrings.MODID + ":envsuit_plate"); - envsuit_legs = new ArmorEnvsuit(aMatEnv, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_legs").setTextureName(RefStrings.MODID + ":envsuit_legs"); - envsuit_boots = new ArmorEnvsuit(aMatEnv, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_boots").setTextureName(RefStrings.MODID + ":envsuit_boots"); - - ArmorMaterial aMatHEV = EnumHelper.addArmorMaterial("HBM_HEV", 150, new int[] { 3, 8, 6, 3 }, 100); - aMatHEV.customCraftingMaterial = ModItems.plate_armor_hev; - hev_helmet = new ArmorHEV(aMatHEV, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0) - .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) - .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) - .setHasGeigerSound(true) - .setHasCustomGeiger(true) - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); - hev_plate = new ArmorHEV(aMatHEV, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate"); - hev_legs = new ArmorHEV(aMatHEV, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_legs").setTextureName(RefStrings.MODID + ":hev_legs"); - hev_boots = new ArmorHEV(aMatHEV, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_boots").setTextureName(RefStrings.MODID + ":hev_boots"); - - jackt = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt"); - jackt2 = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2"); - - ArmorMaterial aMatFau = EnumHelper.addArmorMaterial("HBM_DIGAMMA", 150, new int[] { 3, 8, 6, 3 }, 100); - aMatFau.customCraftingMaterial = ModItems.plate_armor_fau; - fau_helmet = new ArmorDigamma(aMatFau, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0) - .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) - .setHasGeigerSound(true) - .enableThermalSight(true) - .setHasHardLanding(true) - .setStep("hbm:step.metal") - .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land") - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet"); - fau_plate = new ArmorDigamma(aMatFau, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setFullSetForHide().setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate"); - fau_legs = new ArmorDigamma(aMatFau, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).hides(EnumPlayerPart.LEFT_LEG, EnumPlayerPart.RIGHT_LEG).setFullSetForHide().setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs"); - fau_boots = new ArmorDigamma(aMatFau, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots"); - - ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 100); - aMatDNS.customCraftingMaterial = ModItems.plate_armor_dnt; - dns_helmet = new ArmorDNT(aMatDNS, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115) - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 9)) - .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 7)) - .addEffect(new PotionEffect(Potion.jump.id, 20, 2)) - .setHasGeigerSound(true) - .enableVATS(true) - .enableThermalSight(true) - .setHasHardLanding(true) - .setStep("hbm:step.metal") - .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land") - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("dns_helmet").setTextureName(RefStrings.MODID + ":dns_helmet"); - dns_plate = new ArmorDNT(aMatDNS, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_plate").setTextureName(RefStrings.MODID + ":dns_plate"); - dns_legs = new ArmorDNT(aMatDNS, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_legs").setTextureName(RefStrings.MODID + ":dns_legs"); - dns_boots = new ArmorDNT(aMatDNS, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_boots").setTextureName(RefStrings.MODID + ":dns_boots"); - - ArmorMaterial aMatTaurun = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); - aMatTaurun.customCraftingMaterial = ModItems.plate_iron; - taurun_helmet = new ArmorTaurun(aMatTaurun, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) - .setStepSize(1) - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("taurun_helmet").setTextureName(RefStrings.MODID + ":taurun_helmet"); - taurun_plate = new ArmorTaurun(aMatTaurun, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) taurun_helmet).setUnlocalizedName("taurun_plate").setTextureName(RefStrings.MODID + ":taurun_plate"); - taurun_legs = new ArmorTaurun(aMatTaurun, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) taurun_helmet).setUnlocalizedName("taurun_legs").setTextureName(RefStrings.MODID + ":taurun_legs"); - taurun_boots = new ArmorTaurun(aMatTaurun, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) taurun_helmet).setUnlocalizedName("taurun_boots").setTextureName(RefStrings.MODID + ":taurun_boots"); - ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); - aMatTrench.customCraftingMaterial = ModItems.plate_iron; - trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) - .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 1)) - .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) - .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 0)) - .enableVATS(true) - .setStepSize(1) - .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("trenchmaster_helmet").setTextureName(RefStrings.MODID + ":trenchmaster_helmet"); - trenchmaster_plate = new ArmorTrenchmaster(aMatTrench, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_plate").setTextureName(RefStrings.MODID + ":trenchmaster_plate"); - trenchmaster_legs = new ArmorTrenchmaster(aMatTrench, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_legs").setTextureName(RefStrings.MODID + ":trenchmaster_legs"); - trenchmaster_boots = new ArmorTrenchmaster(aMatTrench, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_boots").setTextureName(RefStrings.MODID + ":trenchmaster_boots"); - - jackt = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt"); - jackt2 = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2"); - - chainsaw = new ItemChainsaw(25, -0.05, MainRegistry.tMatChainsaw, EnumToolType.AXE, 5000, 1, 250, - Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.KEROSENE, Fluids.BIOFUEL, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.COALGAS, Fluids.COALGAS_LEADED) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addHitAbility(new WeaponAbility.ChainsawAbility(10)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); - - schrabidium_sword = new ItemSwordAbility(75, 0, MainRegistry.tMatSchrab) - .addHitAbility(new WeaponAbility.RadiationAbility(50F)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)) - .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_sword").setTextureName(RefStrings.MODID + ":schrabidium_sword"); - - schrabidium_pickaxe = new ItemToolAbility(20, 0, MainRegistry.tMatSchrab, EnumToolType.PICKAXE) - .addHitAbility(new WeaponAbility.RadiationAbility(15F)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(10)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_pickaxe").setTextureName(RefStrings.MODID + ":schrabidium_pickaxe"); - - schrabidium_axe = new ItemToolAbility(25, 0, MainRegistry.tMatSchrab, EnumToolType.AXE) - .addHitAbility(new WeaponAbility.RadiationAbility(15F)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(10)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addHitAbility(new WeaponAbility.BeheaderAbility()) - .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_axe").setTextureName(RefStrings.MODID + ":schrabidium_axe"); - - schrabidium_shovel = new ItemToolAbility(15, 0, MainRegistry.tMatSchrab, EnumToolType.SHOVEL) - .addHitAbility(new WeaponAbility.RadiationAbility(15F)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(10)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_shovel").setTextureName(RefStrings.MODID + ":schrabidium_shovel"); - - schrabidium_hoe = new HoeSchrabidium(MainRegistry.tMatSchrab).setUnlocalizedName("schrabidium_hoe").setTextureName(RefStrings.MODID + ":schrabidium_hoe"); - - titanium_sword = new ItemSwordAbility(6.5F, 0, MainRegistry.tMatTitan).setUnlocalizedName("titanium_sword").setTextureName(RefStrings.MODID + ":titanium_sword"); - titanium_pickaxe = new ItemToolAbility(4.5F, 0, MainRegistry.tMatTitan, EnumToolType.PICKAXE).setUnlocalizedName("titanium_pickaxe").setTextureName(RefStrings.MODID + ":titanium_pickaxe"); - titanium_axe = new ItemToolAbility(5.5F, 0, MainRegistry.tMatTitan, EnumToolType.AXE) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("titanium_axe").setTextureName(RefStrings.MODID + ":titanium_axe"); - titanium_shovel = new ItemToolAbility(3.5F, 0, MainRegistry.tMatTitan, EnumToolType.SHOVEL).setUnlocalizedName("titanium_shovel").setTextureName(RefStrings.MODID + ":titanium_shovel"); - titanium_hoe = new ModHoe(MainRegistry.tMatTitan).setUnlocalizedName("titanium_hoe").setTextureName(RefStrings.MODID + ":titanium_hoe"); - steel_sword = new ItemSwordAbility(6F, 0, MainRegistry.tMatSteel).setUnlocalizedName("steel_sword").setTextureName(RefStrings.MODID + ":steel_sword"); - steel_pickaxe = new ItemToolAbility(4F, 0, MainRegistry.tMatSteel, EnumToolType.PICKAXE).setUnlocalizedName("steel_pickaxe").setTextureName(RefStrings.MODID + ":steel_pickaxe"); - steel_axe = new ItemToolAbility(5F, 0, MainRegistry.tMatSteel, EnumToolType.AXE) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("steel_axe").setTextureName(RefStrings.MODID + ":steel_axe"); - steel_shovel = new ItemToolAbility(3F, 0, MainRegistry.tMatSteel, EnumToolType.SHOVEL).setUnlocalizedName("steel_shovel").setTextureName(RefStrings.MODID + ":steel_shovel"); - steel_hoe = new ModHoe(MainRegistry.tMatSteel).setUnlocalizedName("steel_hoe").setTextureName(RefStrings.MODID + ":steel_hoe"); - - alloy_sword = new ItemSwordAbility(8F, 0, MainRegistry.tMatAlloy) - .addHitAbility(new WeaponAbility.StunAbility(2)).setUnlocalizedName("alloy_sword").setTextureName(RefStrings.MODID + ":alloy_sword"); - - alloy_pickaxe = new ItemToolAbility(5F, 0, MainRegistry.tMatAlloy, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_pickaxe").setTextureName(RefStrings.MODID + ":alloy_pickaxe"); - - alloy_axe = new ItemToolAbility(7F, 0, MainRegistry.tMatAlloy, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(3)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("alloy_axe").setTextureName(RefStrings.MODID + ":alloy_axe"); - - alloy_shovel = new ItemToolAbility(4F, 0, MainRegistry.tMatAlloy, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_shovel").setTextureName(RefStrings.MODID + ":alloy_shovel"); - - alloy_hoe = new ModHoe(MainRegistry.tMatAlloy).setUnlocalizedName("alloy_hoe").setTextureName(RefStrings.MODID + ":alloy_hoe"); - - cmb_sword = new ItemSwordAbility(35F, 0, MainRegistry.tMatCMB) - .addHitAbility(new WeaponAbility.StunAbility(2)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)).setUnlocalizedName("cmb_sword").setTextureName(RefStrings.MODID + ":cmb_sword"); - - cmb_pickaxe = new ItemToolAbility(10F, 0, MainRegistry.tMatCMB, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cmb_pickaxe").setTextureName(RefStrings.MODID + ":cmb_pickaxe"); - - cmb_axe = new ItemToolAbility(30F, 0, MainRegistry.tMatCMB, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("cmb_axe").setTextureName(RefStrings.MODID + ":cmb_axe"); - - cmb_shovel = new ItemToolAbility(8F, 0, MainRegistry.tMatCMB, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cmb_shovel").setTextureName(RefStrings.MODID + ":cmb_shovel"); - - cmb_hoe = new ModHoe(MainRegistry.tMatCMB).setUnlocalizedName("cmb_hoe").setTextureName(RefStrings.MODID + ":cmb_hoe"); - - elec_sword = new ItemSwordAbilityPower(12.5F, 0, MainRegistry.tMatElec, 500000, 1000, 100) - .addHitAbility(new WeaponAbility.StunAbility(5)).setUnlocalizedName("elec_sword").setTextureName(RefStrings.MODID + ":elec_sword_anim"); - - elec_pickaxe = new ItemToolAbilityPower(6F, 0, MainRegistry.tMatElec, EnumToolType.PICKAXE, 500000, 1000, 100) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("elec_pickaxe").setTextureName(RefStrings.MODID + ":elec_drill_anim"); - - elec_axe = new ItemToolAbilityPower(10F, 0, MainRegistry.tMatElec, EnumToolType.AXE, 500000, 1000, 100) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)) - .addHitAbility(new WeaponAbility.ChainsawAbility(15)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); - - elec_shovel = new ItemToolAbilityPower(5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("elec_shovel").setTextureName(RefStrings.MODID + ":elec_shovel_anim"); - - desh_sword = new ItemSwordAbility(12.5F, 0, MainRegistry.tMatDesh) - .addHitAbility(new WeaponAbility.StunAbility(2)).setUnlocalizedName("desh_sword").setTextureName(RefStrings.MODID + ":desh_sword"); - - desh_pickaxe = new ItemToolAbility(5F, -0.05, MainRegistry.tMatDesh, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.RecursionAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("desh_pickaxe").setTextureName(RefStrings.MODID + ":desh_pickaxe"); - - desh_axe = new ItemToolAbility(7.5F, -0.05, MainRegistry.tMatDesh, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.RecursionAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("desh_axe").setTextureName(RefStrings.MODID + ":desh_axe"); - - desh_shovel = new ItemToolAbility(4F, -0.05, MainRegistry.tMatDesh, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.RecursionAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("desh_shovel").setTextureName(RefStrings.MODID + ":desh_shovel"); - - desh_hoe = new ModHoe(MainRegistry.tMatDesh).setUnlocalizedName("desh_hoe").setTextureName(RefStrings.MODID + ":desh_hoe"); - - cobalt_sword = new ItemSwordAbility(12F, 0, MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_sword").setTextureName(RefStrings.MODID + ":cobalt_sword"); - cobalt_pickaxe = new ItemToolAbility(4F, 0, MainRegistry.tMatCobalt, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(1)).setUnlocalizedName("cobalt_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_pickaxe"); - cobalt_axe = new ItemToolAbility(6F, 0, MainRegistry.tMatCobalt, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(1)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("cobalt_axe").setTextureName(RefStrings.MODID + ":cobalt_axe"); - cobalt_shovel = new ItemToolAbility(3.5F, 0, MainRegistry.tMatCobalt, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(1)).setUnlocalizedName("cobalt_shovel").setTextureName(RefStrings.MODID + ":cobalt_shovel"); - cobalt_hoe = new ModHoe(MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_hoe").setTextureName(RefStrings.MODID + ":cobalt_hoe"); - - ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 2500, 15.0F, 2.5F, 75).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); - cobalt_decorated_sword = new ItemSwordAbility(15F, 0, matDecCobalt) - .addHitAbility(new WeaponAbility.BobbleAbility()).setUnlocalizedName("cobalt_decorated_sword").setTextureName(RefStrings.MODID + ":cobalt_decorated_sword"); - cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cobalt_decorated_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_decorated_pickaxe"); - cobalt_decorated_axe = new ItemToolAbility(8F, 0, matDecCobalt, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("cobalt_decorated_axe").setTextureName(RefStrings.MODID + ":cobalt_decorated_axe"); - cobalt_decorated_shovel = new ItemToolAbility(5F, 0, matDecCobalt, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cobalt_decorated_shovel").setTextureName(RefStrings.MODID + ":cobalt_decorated_shovel"); - cobalt_decorated_hoe = new ModHoe(matDecCobalt).setUnlocalizedName("cobalt_decorated_hoe").setTextureName(RefStrings.MODID + ":cobalt_decorated_hoe"); - - ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 3000, 20.0F, 2.5F, 100).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); - starmetal_sword = new ItemSwordAbility(25F, 0, matStarmetal) - .addHitAbility(new WeaponAbility.BeheaderAbility()) - .addHitAbility(new WeaponAbility.StunAbility(3)) - .addHitAbility(new WeaponAbility.BobbleAbility()).setUnlocalizedName("starmetal_sword").setTextureName(RefStrings.MODID + ":starmetal_sword"); - starmetal_pickaxe = new ItemToolAbility(8F, 0, matStarmetal, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(6)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_pickaxe").setTextureName(RefStrings.MODID + ":starmetal_pickaxe"); - starmetal_axe = new ItemToolAbility(12F, 0, matStarmetal, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(6)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) - .addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_axe").setTextureName(RefStrings.MODID + ":starmetal_axe"); - starmetal_shovel = new ItemToolAbility(7F, 0, matStarmetal, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(6)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_shovel").setTextureName(RefStrings.MODID + ":starmetal_shovel"); - starmetal_hoe = new ModHoe(matStarmetal).setUnlocalizedName("starmetal_hoe").setTextureName(RefStrings.MODID + ":starmetal_hoe"); - - centri_stick = new ItemToolAbility(3F, 0, MainRegistry.tMatElec, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.CentrifugeAbility()).setMaxDamage(50).setUnlocalizedName("centri_stick").setTextureName(RefStrings.MODID + ":centri_stick"); - smashing_hammer = new ItemToolAbility(12F, -0.1, MainRegistry.tMatSteel, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.ShredderAbility()).setMaxDamage(2500).setUnlocalizedName("smashing_hammer").setTextureName(RefStrings.MODID + ":smashing_hammer"); - drax = new ItemToolAbilityPower(10F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 500000000, 100000, 5000) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(2)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("drax").setTextureName(RefStrings.MODID + ":drax"); - drax_mk2 = new ItemToolAbilityPower(15F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 1000000000, 250000, 7500) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.CentrifugeAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(3)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.HammerAbility(3)) - .addBreakAbility(new ToolAbility.RecursionAbility(7)).setUnlocalizedName("drax_mk2").setTextureName(RefStrings.MODID + ":drax_mk2"); - drax_mk3 = new ItemToolAbilityPower(20F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 2500000000L, 500000, 10000) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.CentrifugeAbility()) - .addBreakAbility(new ToolAbility.CrystallizerAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(4)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.HammerAbility(3)) - .addBreakAbility(new ToolAbility.HammerAbility(4)) - .addBreakAbility(new ToolAbility.RecursionAbility(9)).setUnlocalizedName("drax_mk3").setTextureName(RefStrings.MODID + ":drax_mk3"); - - ToolMaterial matBismuth = EnumHelper.addToolMaterial("HBM_BISMUTH", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); - bismuth_pickaxe = new ItemToolAbility(15F, 0, matBismuth, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.StunAbility(5)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) - .setDepthRockBreaker().setUnlocalizedName("bismuth_pickaxe").setTextureName(RefStrings.MODID + ":bismuth_pickaxe"); - bismuth_axe = new ItemToolAbility(25F, 0, matBismuth, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.StunAbility(10)) - .addHitAbility(new WeaponAbility.VampireAbility(3F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("bismuth_axe").setTextureName(RefStrings.MODID + ":bismuth_axe"); - - - ToolMaterial matVolcano = EnumHelper.addToolMaterial("HBM_VOLCANIC", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); - volcanic_pickaxe = new ItemToolAbility(15F, 0, matVolcano, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.FireAbility(5)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) - .setDepthRockBreaker().setUnlocalizedName("volcanic_pickaxe").setTextureName(RefStrings.MODID + ":volcanic_pickaxe"); - volcanic_axe = new ItemToolAbility(25F, 0, matVolcano, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.FireAbility(10)) - .addHitAbility(new WeaponAbility.VampireAbility(3F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("volcanic_axe").setTextureName(RefStrings.MODID + ":volcanic_axe"); - - ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 75F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte)); - chlorophyte_pickaxe = new ItemToolAbility(20F, 0, matChlorophyte, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.LuckAbility(4)) - .addBreakAbility(new ToolAbility.CentrifugeAbility()) - .addBreakAbility(new ToolAbility.MercuryAbility()) - .addHitAbility(new WeaponAbility.StunAbility(10)) - .addHitAbility(new WeaponAbility.VampireAbility(5F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) - .setDepthRockBreaker().setUnlocalizedName("chlorophyte_pickaxe").setTextureName(RefStrings.MODID + ":chlorophyte_pickaxe"); - chlorophyte_axe = new ItemToolAbility(50F, 0, matChlorophyte, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.LuckAbility(4)) - .addHitAbility(new WeaponAbility.StunAbility(15)) - .addHitAbility(new WeaponAbility.VampireAbility(10F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("chlorophyte_axe").setTextureName(RefStrings.MODID + ":chlorophyte_axe"); - - ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); - mese_pickaxe = new ItemToolAbility(35F, 0, matMese, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(3)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.CrystallizerAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(9)) - .addBreakAbility(new ToolAbility.ExplosionAbility(2.5F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(5F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(10F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(15F)) - .addHitAbility(new WeaponAbility.StunAbility(10)) - .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) - .setDepthRockBreaker().setUnlocalizedName("mese_pickaxe").setTextureName(RefStrings.MODID + ":mese_pickaxe"); - mese_axe = new ItemToolAbility(75F, 0, matMese, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(3)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(9)) - .addBreakAbility(new ToolAbility.ExplosionAbility(2.5F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(5F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(10F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(15F)) - .addHitAbility(new WeaponAbility.StunAbility(15)) - .addHitAbility(new WeaponAbility.PhosphorusAbility(90)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("mese_axe").setTextureName(RefStrings.MODID + ":mese_axe"); - - dnt_sword = new ItemSwordAbility(12F, 0, matMese).setUnlocalizedName("dnt_sword").setTextureName(RefStrings.MODID + ":dnt_sword"); - - ToolMaterial matDwarf = EnumHelper.addToolMaterial("HBM_DWARVEN", 2, 0, 4F, 0.0F, 10).setRepairItem(new ItemStack(ModItems.ingot_copper)); - dwarven_pickaxe = new ItemToolAbility(5F, -0.1, matDwarf, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(1)).setUnlocalizedName("dwarven_pickaxe").setMaxDamage(250).setTextureName(RefStrings.MODID + ":dwarven_pickaxe"); - - ToolMaterial matMeteorite = EnumHelper.addToolMaterial("HBM_METEORITE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); - meteorite_sword = new ItemSwordMeteorite(9F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_seared = new ItemSwordMeteorite(10F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_seared").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_reforged = new ItemSwordMeteorite(12.5F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_reforged").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_hardened = new ItemSwordMeteorite(15F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_hardened").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_alloyed = new ItemSwordMeteorite(17.5F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_alloyed").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_machined = new ItemSwordMeteorite(20F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_machined").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_treated = new ItemSwordMeteorite(22.5F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_treated").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_etched = new ItemSwordMeteorite(25F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_etched").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_bred = new ItemSwordMeteorite(30F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_bred").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_irradiated = new ItemSwordMeteorite(35F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_irradiated").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_fused = new ItemSwordMeteorite(50F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_fused").setTextureName(RefStrings.MODID + ":meteorite_sword"); - meteorite_sword_baleful = new ItemSwordMeteorite(75F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_baleful").setTextureName(RefStrings.MODID + ":meteorite_sword"); - - mask_of_infamy = new MaskOfInfamy(ArmorMaterial.IRON, 0).setUnlocalizedName("mask_of_infamy").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_of_infamy"); - - hazmat_helmet = new ArmorHazmatMask(MainRegistry.aMatHaz, 0, RefStrings.MODID + ":textures/armor/hazmat_1.png").setUnlocalizedName("hazmat_helmet").setTextureName(RefStrings.MODID + ":hazmat_helmet"); - hazmat_plate = new ArmorHazmat(MainRegistry.aMatHaz, 1, RefStrings.MODID + ":textures/armor/hazmat_1.png").setUnlocalizedName("hazmat_plate").setTextureName(RefStrings.MODID + ":hazmat_plate"); - hazmat_legs = new ArmorHazmat(MainRegistry.aMatHaz, 2, RefStrings.MODID + ":textures/armor/hazmat_2.png").setUnlocalizedName("hazmat_legs").setTextureName(RefStrings.MODID + ":hazmat_legs"); - hazmat_boots = new ArmorHazmat(MainRegistry.aMatHaz, 3, RefStrings.MODID + ":textures/armor/hazmat_1.png").setUnlocalizedName("hazmat_boots").setTextureName(RefStrings.MODID + ":hazmat_boots"); - hazmat_helmet_red = new ArmorHazmatMask(MainRegistry.aMatHaz2, 0, "hbm:textures/models/ModelHazRed.png").setUnlocalizedName("hazmat_helmet_red").setTextureName(RefStrings.MODID + ":hazmat_helmet_red"); - hazmat_plate_red = new ArmorHazmat(MainRegistry.aMatHaz2, 1, RefStrings.MODID + ":textures/armor/hazmat_1_red.png").setUnlocalizedName("hazmat_plate_red").setTextureName(RefStrings.MODID + ":hazmat_plate_red"); - hazmat_legs_red = new ArmorHazmat(MainRegistry.aMatHaz2, 2, RefStrings.MODID + ":textures/armor/hazmat_2_red.png").setUnlocalizedName("hazmat_legs_red").setTextureName(RefStrings.MODID + ":hazmat_legs_red"); - hazmat_boots_red = new ArmorHazmat(MainRegistry.aMatHaz2, 3, RefStrings.MODID + ":textures/armor/hazmat_1_red.png").setUnlocalizedName("hazmat_boots_red").setTextureName(RefStrings.MODID + ":hazmat_boots_red"); - hazmat_helmet_grey = new ArmorHazmatMask(MainRegistry.aMatHaz3, 0, "hbm:textures/models/ModelHazGrey.png") - .setUnlocalizedName("hazmat_helmet_grey").setTextureName(RefStrings.MODID + ":hazmat_helmet_grey"); - hazmat_plate_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 1, RefStrings.MODID + ":textures/armor/hazmat_1_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_plate_grey").setTextureName(RefStrings.MODID + ":hazmat_plate_grey"); - hazmat_legs_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 2, RefStrings.MODID + ":textures/armor/hazmat_2_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_legs_grey").setTextureName(RefStrings.MODID + ":hazmat_legs_grey"); - hazmat_boots_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 3, RefStrings.MODID + ":textures/armor/hazmat_1_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_boots_grey").setTextureName(RefStrings.MODID + ":hazmat_boots_grey"); - hazmat_paa_helmet = new ArmorHazmatMask(MainRegistry.aMatPaa, 0, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png") - .setUnlocalizedName("hazmat_paa_helmet").setTextureName(RefStrings.MODID + ":hazmat_paa_helmet"); - hazmat_paa_plate = new ArmorHazmat(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_plate").setTextureName(RefStrings.MODID + ":hazmat_paa_plate"); - hazmat_paa_legs = new ArmorHazmat(MainRegistry.aMatPaa, 2, RefStrings.MODID + ":textures/armor/hazmat_paa_2.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_legs").setTextureName(RefStrings.MODID + ":hazmat_paa_legs"); - hazmat_paa_boots = new ArmorHazmat(MainRegistry.aMatPaa, 3, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_boots").setTextureName(RefStrings.MODID + ":hazmat_paa_boots"); - - ArmorMaterial aMatLiquidator = EnumHelper.addArmorMaterial("HBM_LIQUIDATOR", 750, new int[] { 3, 8, 6, 3 }, 10); - aMatLiquidator.customCraftingMaterial = ModItems.plate_lead; - liquidator_helmet = new ArmorLiquidatorMask(aMatLiquidator, 0, RefStrings.MODID + ":textures/armor/liquidator_helmet.png") - .setStep("hbm:step.metal") - .setJump("hbm:step.iron_jump") - .setFall("hbm:step.iron_land").setUnlocalizedName("liquidator_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_helmet"); - liquidator_plate = new ArmorLiquidator(aMatLiquidator, 1, RefStrings.MODID + ":textures/armor/liquidator_1.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_plate"); - liquidator_legs = new ArmorLiquidator(aMatLiquidator, 2, RefStrings.MODID + ":textures/armor/liquidator_2.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_legs"); - liquidator_boots = new ArmorLiquidator(aMatLiquidator, 3, RefStrings.MODID + ":textures/armor/liquidator_1.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_boots"); - - jetpack_boost = new JetpackBooster(Fluids.BALEFIRE, 32000).setUnlocalizedName("jetpack_boost").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_boost"); - jetpack_break = new JetpackBreak(Fluids.KEROSENE, 12000).setUnlocalizedName("jetpack_break").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_break"); - jetpack_fly = new JetpackRegular(Fluids.KEROSENE, 12000).setUnlocalizedName("jetpack_fly").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_fly"); - jetpack_vector = new JetpackVectorized(Fluids.KEROSENE, 16000).setUnlocalizedName("jetpack_vector").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_vector"); - wings_murk = new WingsMurk().setUnlocalizedName("wings_murk").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_murk"); - wings_limp = new WingsMurk().setUnlocalizedName("wings_limp").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_limp"); - - cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation"); - cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask"); - cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium"); - cape_hidden = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_hidden").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_unknown"); - - schrabidium_hammer = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("schrabidium_hammer").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); - shimmer_sledge = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_sledge").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_sledge_original"); - shimmer_axe = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_axe"); - bottle_opener = new WeaponSpecial(MainRegistry.enumToolMaterialBottleOpener).setUnlocalizedName("bottle_opener").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":bottle_opener"); - pch = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("pch").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); - matchstick = new ItemMatch().setUnlocalizedName("matchstick").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":matchstick"); - balefire_and_steel = new ItemBalefireMatch().setUnlocalizedName("balefire_and_steel").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":balefire_and_steel"); - crowbar = new ModSword(MainRegistry.tMatSteel).setUnlocalizedName("crowbar").setFull3D().setTextureName(RefStrings.MODID + ":crowbar"); - wrench = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("wrench").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wrench"); - wrench_flipped = new WeaponSpecial(MainRegistry.tMatElec).setUnlocalizedName("wrench_flipped").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wrench_flipped"); - memespoon = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("memespoon").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":memespoon"); - wood_gavel = new WeaponSpecial(ToolMaterial.WOOD).setUnlocalizedName("wood_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wood_gavel"); - lead_gavel = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("lead_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":lead_gavel"); - diamond_gavel = new WeaponSpecial(ToolMaterial.EMERALD).setUnlocalizedName("diamond_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":diamond_gavel"); - ToolMaterial matMeseGavel = EnumHelper.addToolMaterial("HBM_MESEGAVEL", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); - mese_gavel = new ItemSwordAbility(250, 1.5, matMeseGavel) - .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) - .addHitAbility(new WeaponAbility.RadiationAbility(500)) - .addHitAbility(new WeaponAbility.StunAbility(10)) - .addHitAbility(new WeaponAbility.VampireAbility(50)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("mese_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mese_gavel"); - - multitool_hit = new ItemMultitoolPassive().setUnlocalizedName("multitool_hit").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); - multitool_dig = new ItemMultitoolTool(4.0F, MainRegistry.enumToolMaterialMultitool, ItemMultitoolTool.getAllBlocks()).setFull3D().setUnlocalizedName("multitool_dig").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":multitool_claw"); - multitool_silk = new ItemMultitoolTool(4.0F, MainRegistry.enumToolMaterialMultitool, ItemMultitoolTool.getAllBlocks()).setFull3D().setUnlocalizedName("multitool_silk").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_claw"); - multitool_ext = new ItemMultitoolPassive().setUnlocalizedName("multitool_ext").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_open"); - multitool_miner = new ItemMultitoolPassive().setUnlocalizedName("multitool_miner").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_pointer"); - multitool_beam = new ItemMultitoolPassive().setUnlocalizedName("multitool_beam").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_pointer"); - multitool_sky= new ItemMultitoolPassive().setUnlocalizedName("multitool_sky").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_open"); - multitool_mega = new ItemMultitoolPassive().setUnlocalizedName("multitool_mega").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); - multitool_joule = new ItemMultitoolPassive().setUnlocalizedName("multitool_joule").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); - multitool_decon = new ItemMultitoolPassive().setUnlocalizedName("multitool_decon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); - - saw = new ModSword(MainRegistry.enumToolMaterialSaw).setUnlocalizedName("weapon_saw").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":saw"); - bat = new ModSword(MainRegistry.enumToolMaterialBat).setUnlocalizedName("weapon_bat").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":bat"); - bat_nail = new ModSword(MainRegistry.enumToolMaterialBatNail).setUnlocalizedName("weapon_bat_nail").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":bat_nail"); - golf_club = new ModSword(MainRegistry.enumToolMaterialGolfClub).setUnlocalizedName("weapon_golf_club").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":golf_club"); - pipe_rusty = new ModSword(MainRegistry.enumToolMaterialPipeRusty).setUnlocalizedName("weapon_pipe_rusty").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":pipe_rusty"); - pipe_lead = new ModSword(MainRegistry.enumToolMaterialPipeLead).setUnlocalizedName("weapon_pipe_lead").setFull3D().setTextureName(RefStrings.MODID + ":pipe_lead"); - reer_graar = new ModSword(MainRegistry.tMatTitan).setUnlocalizedName("reer_graar").setFull3D().setTextureName(RefStrings.MODID + ":reer_graar_hd"); - stopsign = new WeaponSpecial(MainRegistry.tMatAlloy).setUnlocalizedName("stopsign").setTextureName(RefStrings.MODID + ":stopsign"); - sopsign = new WeaponSpecial(MainRegistry.tMatAlloy).setUnlocalizedName("sopsign").setTextureName(RefStrings.MODID + ":sopsign"); - chernobylsign = new WeaponSpecial(MainRegistry.tMatAlloy).setUnlocalizedName("chernobylsign").setTextureName(RefStrings.MODID + ":chernobylsign"); - - crystal_horn = new ItemCustomLore().setUnlocalizedName("crystal_horn").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_horn"); - crystal_charred = new ItemCustomLore().setUnlocalizedName("crystal_charred").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_charred"); - - bucket_mud = new ItemModBucket(ModBlocks.mud_block).setUnlocalizedName("bucket_mud").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_mud"); - bucket_acid = new ItemModBucket(ModBlocks.acid_block).setUnlocalizedName("bucket_acid").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_acid"); - bucket_toxic = new ItemModBucket(ModBlocks.toxic_block).setUnlocalizedName("bucket_toxic").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_toxic"); - bucket_schrabidic_acid = new ItemModBucket(ModBlocks.schrabidic_block).setUnlocalizedName("bucket_schrabidic_acid").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_schrabidic_acid"); - bucket_sulfuric_acid = new ItemModBucket(ModBlocks.sulfuric_acid_block).setUnlocalizedName("bucket_sulfuric_acid").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_sulfuric_acid"); - - door_metal = new ItemModDoor().setUnlocalizedName("door_metal").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_metal"); - door_office = new ItemModDoor().setUnlocalizedName("door_office").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_office"); - door_bunker = new ItemModDoor().setUnlocalizedName("door_bunker").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_bunker"); - door_red = new ItemModDoor().setUnlocalizedName("door_red").setCreativeTab(null).setTextureName(RefStrings.MODID + ":door_red"); - - sliding_blast_door_skin = new ItemSlidingBlastDoorSkin().setUnlocalizedName("sliding_blast_door_skin").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":sliding_blast_door_default"); - - record_lc = new ItemModRecord("lc").setUnlocalizedName("record_lc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_lc"); - record_ss = new ItemModRecord("ss").setUnlocalizedName("record_ss").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_ss"); - record_vc = new ItemModRecord("vc").setUnlocalizedName("record_vc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_vc"); - record_glass = new ItemModRecord("glass").setUnlocalizedName("record_glass").setCreativeTab(null).setTextureName(RefStrings.MODID + ":record_glass"); - - book_guide = new ItemGuideBook().setUnlocalizedName("book_guide").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":book_guide"); - book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_pages"); - holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); - holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); - clay_tablet = new ItemClayTablet().setUnlocalizedName("clay_tablet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clay_tablet"); - - polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); - glitch = new ItemGlitch().setUnlocalizedName("glitch").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glitch_" + MainRegistry.polaroidID); - letter = new ItemStarterKit().setUnlocalizedName("letter").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":letter"); - book_secret = new ItemCustomLore().setUnlocalizedName("book_secret").setCreativeTab(MainRegistry.polaroidID == 11 ? MainRegistry.consumableTab : null).setTextureName(RefStrings.MODID + ":book_secret"); - book_of_ = new ItemBook().setUnlocalizedName("book_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_of_"); - page_of_ = new ItemEnumMulti(ItemEnums.EnumPages.class, true, false).setUnlocalizedName("page_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":page_of_"); - book_lemegeton = new ItemBookLemegeton().setUnlocalizedName("book_lemegeton").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_lemegeton"); - burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); - - chlorine1 = new Item().setUnlocalizedName("chlorine1").setTextureName(RefStrings.MODID + ":chlorine1"); - chlorine2 = new Item().setUnlocalizedName("chlorine2").setTextureName(RefStrings.MODID + ":chlorine2"); - chlorine3 = new Item().setUnlocalizedName("chlorine3").setTextureName(RefStrings.MODID + ":chlorine3"); - chlorine4 = new Item().setUnlocalizedName("chlorine4").setTextureName(RefStrings.MODID + ":chlorine4"); - chlorine5 = new Item().setUnlocalizedName("chlorine5").setTextureName(RefStrings.MODID + ":chlorine5"); - chlorine6 = new Item().setUnlocalizedName("chlorine6").setTextureName(RefStrings.MODID + ":chlorine6"); - chlorine7 = new Item().setUnlocalizedName("chlorine7").setTextureName(RefStrings.MODID + ":chlorine7"); - chlorine8 = new Item().setUnlocalizedName("chlorine8").setTextureName(RefStrings.MODID + ":chlorine8"); - pc1 = new Item().setUnlocalizedName("pc1").setTextureName(RefStrings.MODID + ":pc1"); - pc2 = new Item().setUnlocalizedName("pc2").setTextureName(RefStrings.MODID + ":pc2"); - pc3 = new Item().setUnlocalizedName("pc3").setTextureName(RefStrings.MODID + ":pc3"); - pc4 = new Item().setUnlocalizedName("pc4").setTextureName(RefStrings.MODID + ":pc4"); - pc5 = new Item().setUnlocalizedName("pc5").setTextureName(RefStrings.MODID + ":pc5"); - pc6 = new Item().setUnlocalizedName("pc6").setTextureName(RefStrings.MODID + ":pc6"); - pc7 = new Item().setUnlocalizedName("pc7").setTextureName(RefStrings.MODID + ":pc7"); - pc8 = new Item().setUnlocalizedName("pc8").setTextureName(RefStrings.MODID + ":pc8"); - cloud1 = new Item().setUnlocalizedName("cloud1").setTextureName(RefStrings.MODID + ":cloud1"); - cloud2 = new Item().setUnlocalizedName("cloud2").setTextureName(RefStrings.MODID + ":cloud2"); - cloud3 = new Item().setUnlocalizedName("cloud3").setTextureName(RefStrings.MODID + ":cloud3"); - cloud4 = new Item().setUnlocalizedName("cloud4").setTextureName(RefStrings.MODID + ":cloud4"); - cloud5 = new Item().setUnlocalizedName("cloud5").setTextureName(RefStrings.MODID + ":cloud5"); - cloud6 = new Item().setUnlocalizedName("cloud6").setTextureName(RefStrings.MODID + ":cloud6"); - cloud7 = new Item().setUnlocalizedName("cloud7").setTextureName(RefStrings.MODID + ":cloud7"); - cloud8 = new Item().setUnlocalizedName("cloud8").setTextureName(RefStrings.MODID + ":cloud8"); - orange1 = new Item().setUnlocalizedName("orange1").setTextureName(RefStrings.MODID + ":orange1"); - orange2 = new Item().setUnlocalizedName("orange2").setTextureName(RefStrings.MODID + ":orange2"); - orange3 = new Item().setUnlocalizedName("orange3").setTextureName(RefStrings.MODID + ":orange3"); - orange4 = new Item().setUnlocalizedName("orange4").setTextureName(RefStrings.MODID + ":orange4"); - orange5 = new Item().setUnlocalizedName("orange5").setTextureName(RefStrings.MODID + ":orange5"); - 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"); - nothing = new Item().setUnlocalizedName("nothing").setTextureName(RefStrings.MODID + ":nothing"); - - - achievement_icon = new ItemEnumMulti(ItemEnums.EnumAchievementType.class, true, true).setUnlocalizedName("achievement_icon"); - bob_metalworks = new Item().setUnlocalizedName("bob_metalworks").setTextureName(RefStrings.MODID + ":bob_metalworks"); - bob_assembly = new Item().setUnlocalizedName("bob_assembly").setTextureName(RefStrings.MODID + ":bob_assembly"); - bob_chemistry = new Item().setUnlocalizedName("bob_chemistry").setTextureName(RefStrings.MODID + ":bob_chemistry"); - bob_oil = new Item().setUnlocalizedName("bob_oil").setTextureName(RefStrings.MODID + ":bob_oil"); - bob_nuclear = new Item().setUnlocalizedName("bob_nuclear").setTextureName(RefStrings.MODID + ":bob_nuclear"); - - mysteryshovel = new ItemMS().setUnlocalizedName("mysteryshovel").setFull3D().setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cursed_shovel"); - memory = new ItemBattery(Long.MAX_VALUE / 100L, 100000000000000L, 100000000000000L).setUnlocalizedName("memory").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mo8_anim"); - - conveyor_wand = new ItemConveyorWand().setUnlocalizedName("conveyor_wand").setCreativeTab(MainRegistry.machineTab).setFull3D().setTextureName(RefStrings.MODID + ":wand_s"); - - GunFactory.init(); - - FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.mud_fluid, 1000), new ItemStack(ModItems.bucket_mud), new ItemStack(Items.bucket)); - FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.acid_fluid, 1000), new ItemStack(ModItems.bucket_acid), new ItemStack(Items.bucket)); - FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.toxic_fluid, 1000), new ItemStack(ModItems.bucket_toxic), new ItemStack(Items.bucket)); - FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.schrabidic_fluid, 1000), new ItemStack(ModItems.bucket_schrabidic_acid), new ItemStack(Items.bucket)); - FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.sulfuric_acid_fluid, 1000), new ItemStack(ModItems.bucket_sulfuric_acid), new ItemStack(Items.bucket)); - BucketHandler.INSTANCE.buckets.put(ModBlocks.mud_block, ModItems.bucket_mud); - BucketHandler.INSTANCE.buckets.put(ModBlocks.acid_block, ModItems.bucket_acid); - BucketHandler.INSTANCE.buckets.put(ModBlocks.toxic_block, ModItems.bucket_toxic); - BucketHandler.INSTANCE.buckets.put(ModBlocks.schrabidic_block, ModItems.bucket_schrabidic_acid); - BucketHandler.INSTANCE.buckets.put(ModBlocks.sulfuric_acid_block, ModItems.bucket_sulfuric_acid); - MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); - } - - private static void registerItem() { - //Weapons - GameRegistry.registerItem(redstone_sword, redstone_sword.getUnlocalizedName()); - GameRegistry.registerItem(big_sword, big_sword.getUnlocalizedName()); - - //Test Nuke - GameRegistry.registerItem(test_nuke_igniter, test_nuke_igniter.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_propellant, test_nuke_propellant.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier1_shielding, test_nuke_tier1_shielding.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier2_shielding, test_nuke_tier2_shielding.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier1_bullet, test_nuke_tier1_bullet.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier2_bullet, test_nuke_tier2_bullet.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier1_target, test_nuke_tier1_target.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier2_target, test_nuke_tier2_target.getUnlocalizedName()); - - //Ingots - GameRegistry.registerItem(ingot_uranium, ingot_uranium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_u233, ingot_u233.getUnlocalizedName()); - GameRegistry.registerItem(ingot_u235, ingot_u235.getUnlocalizedName()); - GameRegistry.registerItem(ingot_u238, ingot_u238.getUnlocalizedName()); - GameRegistry.registerItem(ingot_u238m2, ingot_u238m2.getUnlocalizedName()); - GameRegistry.registerItem(ingot_th232, ingot_th232.getUnlocalizedName()); - GameRegistry.registerItem(ingot_plutonium, ingot_plutonium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_pu238, ingot_pu238.getUnlocalizedName()); - GameRegistry.registerItem(ingot_pu239, ingot_pu239.getUnlocalizedName()); - GameRegistry.registerItem(ingot_pu240, ingot_pu240.getUnlocalizedName()); - GameRegistry.registerItem(ingot_pu241, ingot_pu241.getUnlocalizedName()); - GameRegistry.registerItem(ingot_pu_mix, ingot_pu_mix.getUnlocalizedName()); - GameRegistry.registerItem(ingot_am241, ingot_am241.getUnlocalizedName()); - GameRegistry.registerItem(ingot_am242, ingot_am242.getUnlocalizedName()); - GameRegistry.registerItem(ingot_am_mix, ingot_am_mix.getUnlocalizedName()); - GameRegistry.registerItem(ingot_neptunium, ingot_neptunium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_polonium, ingot_polonium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_technetium, ingot_technetium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_co60, ingot_co60.getUnlocalizedName()); - GameRegistry.registerItem(ingot_sr90, ingot_sr90.getUnlocalizedName()); - GameRegistry.registerItem(ingot_au198, ingot_au198.getUnlocalizedName()); - GameRegistry.registerItem(ingot_pb209, ingot_pb209.getUnlocalizedName()); - GameRegistry.registerItem(ingot_ra226, ingot_ra226.getUnlocalizedName()); - GameRegistry.registerItem(ingot_titanium, ingot_titanium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_copper, ingot_copper.getUnlocalizedName()); - GameRegistry.registerItem(ingot_red_copper, ingot_red_copper.getUnlocalizedName()); - GameRegistry.registerItem(ingot_advanced_alloy, ingot_advanced_alloy.getUnlocalizedName()); - GameRegistry.registerItem(ingot_tungsten, ingot_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(ingot_aluminium, ingot_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_steel, ingot_steel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_tcalloy, ingot_tcalloy.getUnlocalizedName()); - GameRegistry.registerItem(ingot_cdalloy, ingot_cdalloy.getUnlocalizedName()); - GameRegistry.registerItem(ingot_bismuth_bronze, ingot_bismuth_bronze.getUnlocalizedName()); - GameRegistry.registerItem(ingot_arsenic_bronze, ingot_arsenic_bronze.getUnlocalizedName()); - GameRegistry.registerItem(ingot_bscco, ingot_bscco.getUnlocalizedName()); - GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName()); - GameRegistry.registerItem(ingot_bismuth, ingot_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(ingot_arsenic, ingot_arsenic.getUnlocalizedName()); - GameRegistry.registerItem(ingot_calcium, ingot_calcium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_cadmium, ingot_cadmium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_tantalium, ingot_tantalium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_silicon, ingot_silicon.getUnlocalizedName()); - GameRegistry.registerItem(ingot_niobium, ingot_niobium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_cobalt, ingot_cobalt.getUnlocalizedName()); - GameRegistry.registerItem(ingot_boron, ingot_boron.getUnlocalizedName()); - GameRegistry.registerItem(ingot_graphite, ingot_graphite.getUnlocalizedName()); - GameRegistry.registerItem(ingot_firebrick, ingot_firebrick.getUnlocalizedName()); - GameRegistry.registerItem(ingot_dura_steel, ingot_dura_steel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_polymer, ingot_polymer.getUnlocalizedName()); - GameRegistry.registerItem(ingot_bakelite, ingot_bakelite.getUnlocalizedName()); - GameRegistry.registerItem(ingot_biorubber, ingot_biorubber.getUnlocalizedName()); - GameRegistry.registerItem(ingot_rubber, ingot_rubber.getUnlocalizedName()); - GameRegistry.registerItem(ingot_pc, ingot_pc.getUnlocalizedName()); - GameRegistry.registerItem(ingot_pvc, ingot_pvc.getUnlocalizedName()); - GameRegistry.registerItem(ingot_mud, ingot_mud.getUnlocalizedName()); - GameRegistry.registerItem(ingot_cft, ingot_cft.getUnlocalizedName()); - GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName()); - GameRegistry.registerItem(ingot_magnetized_tungsten, ingot_magnetized_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(ingot_combine_steel, ingot_combine_steel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_solinium, ingot_solinium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_gh336, ingot_gh336.getUnlocalizedName()); - GameRegistry.registerItem(ingot_uranium_fuel, ingot_uranium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_thorium_fuel, ingot_thorium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_plutonium_fuel, ingot_plutonium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_neptunium_fuel, ingot_neptunium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_mox_fuel, ingot_mox_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_americium_fuel, ingot_americium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_schrabidium_fuel, ingot_schrabidium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_hes, ingot_hes.getUnlocalizedName()); - GameRegistry.registerItem(ingot_les, ingot_les.getUnlocalizedName()); - GameRegistry.registerItem(ingot_australium, ingot_australium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_lanthanium, ingot_lanthanium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_actinium, ingot_actinium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_desh, ingot_desh.getUnlocalizedName()); - GameRegistry.registerItem(ingot_ferrouranium, ingot_ferrouranium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_starmetal, ingot_starmetal.getUnlocalizedName()); - GameRegistry.registerItem(ingot_gunmetal, ingot_gunmetal.getUnlocalizedName()); - GameRegistry.registerItem(ingot_weaponsteel, ingot_weaponsteel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_saturnite, ingot_saturnite.getUnlocalizedName()); - GameRegistry.registerItem(ingot_euphemium, ingot_euphemium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_dineutronium, ingot_dineutronium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_electronium, ingot_electronium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_smore, ingot_smore.getUnlocalizedName()); - GameRegistry.registerItem(ingot_osmiridium, ingot_osmiridium.getUnlocalizedName()); - - //Meteorite Ingots - GameRegistry.registerItem(ingot_steel_dusted, ingot_steel_dusted.getUnlocalizedName()); - GameRegistry.registerItem(ingot_chainsteel, ingot_chainsteel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_meteorite, ingot_meteorite.getUnlocalizedName()); - GameRegistry.registerItem(ingot_meteorite_forged, ingot_meteorite_forged.getUnlocalizedName()); - GameRegistry.registerItem(blade_meteorite, blade_meteorite.getUnlocalizedName()); - - //Misc Ingots - GameRegistry.registerItem(ingot_phosphorus, ingot_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(lithium, lithium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_zirconium, ingot_zirconium.getUnlocalizedName()); - GameRegistry.registerItem(ingot_semtex, ingot_semtex.getUnlocalizedName()); - GameRegistry.registerItem(ingot_c4, ingot_c4.getUnlocalizedName()); - GameRegistry.registerItem(oil_tar, oil_tar.getUnlocalizedName()); - GameRegistry.registerItem(solid_fuel, solid_fuel.getUnlocalizedName()); - GameRegistry.registerItem(solid_fuel_presto, solid_fuel_presto.getUnlocalizedName()); - GameRegistry.registerItem(solid_fuel_presto_triplet, solid_fuel_presto_triplet.getUnlocalizedName()); - GameRegistry.registerItem(solid_fuel_bf, solid_fuel_bf.getUnlocalizedName()); - GameRegistry.registerItem(solid_fuel_presto_bf, solid_fuel_presto_bf.getUnlocalizedName()); - GameRegistry.registerItem(solid_fuel_presto_triplet_bf, solid_fuel_presto_triplet_bf.getUnlocalizedName()); - GameRegistry.registerItem(rocket_fuel, rocket_fuel.getUnlocalizedName()); - GameRegistry.registerItem(ingot_fiberglass, ingot_fiberglass.getUnlocalizedName()); - GameRegistry.registerItem(ingot_asbestos, ingot_asbestos.getUnlocalizedName()); - GameRegistry.registerItem(ingot_raw, ingot_raw.getUnlocalizedName()); - - //Billets - GameRegistry.registerItem(billet_uranium, billet_uranium.getUnlocalizedName()); - GameRegistry.registerItem(billet_u233, billet_u233.getUnlocalizedName()); - GameRegistry.registerItem(billet_u235, billet_u235.getUnlocalizedName()); - GameRegistry.registerItem(billet_u238, billet_u238.getUnlocalizedName()); - GameRegistry.registerItem(billet_th232, billet_th232.getUnlocalizedName()); - GameRegistry.registerItem(billet_plutonium, billet_plutonium.getUnlocalizedName()); - GameRegistry.registerItem(billet_pu238, billet_pu238.getUnlocalizedName()); - GameRegistry.registerItem(billet_pu239, billet_pu239.getUnlocalizedName()); - GameRegistry.registerItem(billet_pu240, billet_pu240.getUnlocalizedName()); - GameRegistry.registerItem(billet_pu241, billet_pu241.getUnlocalizedName()); - GameRegistry.registerItem(billet_pu_mix, billet_pu_mix.getUnlocalizedName()); - GameRegistry.registerItem(billet_am241, billet_am241.getUnlocalizedName()); - GameRegistry.registerItem(billet_am242, billet_am242.getUnlocalizedName()); - GameRegistry.registerItem(billet_am_mix, billet_am_mix.getUnlocalizedName()); - GameRegistry.registerItem(billet_neptunium, billet_neptunium.getUnlocalizedName()); - GameRegistry.registerItem(billet_polonium, billet_polonium.getUnlocalizedName()); - GameRegistry.registerItem(billet_technetium, billet_technetium.getUnlocalizedName()); - GameRegistry.registerItem(billet_cobalt, billet_cobalt.getUnlocalizedName()); - GameRegistry.registerItem(billet_co60, billet_co60.getUnlocalizedName()); - GameRegistry.registerItem(billet_sr90, billet_sr90.getUnlocalizedName()); - GameRegistry.registerItem(billet_au198, billet_au198.getUnlocalizedName()); - GameRegistry.registerItem(billet_pb209, billet_pb209.getUnlocalizedName()); - GameRegistry.registerItem(billet_ra226, billet_ra226.getUnlocalizedName()); - GameRegistry.registerItem(billet_actinium, billet_actinium.getUnlocalizedName()); - GameRegistry.registerItem(billet_schrabidium, billet_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(billet_solinium, billet_solinium.getUnlocalizedName()); - GameRegistry.registerItem(billet_gh336, billet_gh336.getUnlocalizedName()); - GameRegistry.registerItem(billet_australium, billet_australium.getUnlocalizedName()); - GameRegistry.registerItem(billet_australium_lesser, billet_australium_lesser.getUnlocalizedName()); - GameRegistry.registerItem(billet_australium_greater, billet_australium_greater.getUnlocalizedName()); - GameRegistry.registerItem(billet_uranium_fuel, billet_uranium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(billet_thorium_fuel, billet_thorium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(billet_plutonium_fuel, billet_plutonium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(billet_neptunium_fuel, billet_neptunium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(billet_mox_fuel, billet_mox_fuel.getUnlocalizedName()); - GameRegistry.registerItem(billet_americium_fuel, billet_americium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(billet_les, billet_les.getUnlocalizedName()); - GameRegistry.registerItem(billet_schrabidium_fuel, billet_schrabidium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(billet_hes, billet_hes.getUnlocalizedName()); - GameRegistry.registerItem(billet_po210be, billet_po210be.getUnlocalizedName()); - GameRegistry.registerItem(billet_ra226be, billet_ra226be.getUnlocalizedName()); - GameRegistry.registerItem(billet_pu238be, billet_pu238be.getUnlocalizedName()); - GameRegistry.registerItem(billet_beryllium, billet_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(billet_bismuth, billet_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(billet_silicon, billet_silicon.getUnlocalizedName()); - GameRegistry.registerItem(billet_zirconium, billet_zirconium.getUnlocalizedName()); - GameRegistry.registerItem(billet_zfb_bismuth, billet_zfb_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(billet_zfb_pu241, billet_zfb_pu241.getUnlocalizedName()); - GameRegistry.registerItem(billet_zfb_am_mix, billet_zfb_am_mix.getUnlocalizedName()); - GameRegistry.registerItem(billet_yharonite, billet_yharonite.getUnlocalizedName()); - GameRegistry.registerItem(billet_balefire_gold, billet_balefire_gold.getUnlocalizedName()); - GameRegistry.registerItem(billet_flashlead, billet_flashlead.getUnlocalizedName()); - GameRegistry.registerItem(billet_nuclear_waste, billet_nuclear_waste.getUnlocalizedName()); - - //Dusts & Other - GameRegistry.registerItem(cinnebar, cinnebar.getUnlocalizedName()); - GameRegistry.registerItem(nugget_mercury, nugget_mercury.getUnlocalizedName()); - GameRegistry.registerItem(ingot_mercury, ingot_mercury.getUnlocalizedName()); - GameRegistry.registerItem(bottle_mercury, bottle_mercury.getUnlocalizedName()); - GameRegistry.registerItem(coke, coke.getUnlocalizedName()); - GameRegistry.registerItem(lignite, lignite.getUnlocalizedName()); - GameRegistry.registerItem(coal_infernal, coal_infernal.getUnlocalizedName()); - GameRegistry.registerItem(briquette, briquette.getUnlocalizedName()); - GameRegistry.registerItem(sulfur, sulfur.getUnlocalizedName()); - GameRegistry.registerItem(niter, niter.getUnlocalizedName()); - GameRegistry.registerItem(nitra, nitra.getUnlocalizedName()); - GameRegistry.registerItem(nitra_small, nitra_small.getUnlocalizedName()); - GameRegistry.registerItem(fluorite, fluorite.getUnlocalizedName()); - GameRegistry.registerItem(powder_coal, powder_coal.getUnlocalizedName()); - GameRegistry.registerItem(powder_coal_tiny, powder_coal_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_iron, powder_iron.getUnlocalizedName()); - GameRegistry.registerItem(powder_gold, powder_gold.getUnlocalizedName()); - GameRegistry.registerItem(powder_lapis, powder_lapis.getUnlocalizedName()); - GameRegistry.registerItem(powder_quartz, powder_quartz.getUnlocalizedName()); - GameRegistry.registerItem(powder_diamond, powder_diamond.getUnlocalizedName()); - GameRegistry.registerItem(powder_emerald, powder_emerald.getUnlocalizedName()); - GameRegistry.registerItem(powder_uranium, powder_uranium.getUnlocalizedName()); - GameRegistry.registerItem(powder_plutonium, powder_plutonium.getUnlocalizedName()); - GameRegistry.registerItem(powder_neptunium, powder_neptunium.getUnlocalizedName()); - GameRegistry.registerItem(powder_polonium, powder_polonium.getUnlocalizedName()); - GameRegistry.registerItem(powder_co60, powder_co60.getUnlocalizedName()); - GameRegistry.registerItem(powder_sr90, powder_sr90.getUnlocalizedName()); - GameRegistry.registerItem(powder_sr90_tiny, powder_sr90_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_i131, powder_i131.getUnlocalizedName()); - GameRegistry.registerItem(powder_i131_tiny, powder_i131_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_xe135, powder_xe135.getUnlocalizedName()); - GameRegistry.registerItem(powder_xe135_tiny, powder_xe135_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_cs137, powder_cs137.getUnlocalizedName()); - GameRegistry.registerItem(powder_cs137_tiny, powder_cs137_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_au198, powder_au198.getUnlocalizedName()); - GameRegistry.registerItem(powder_ra226, powder_ra226.getUnlocalizedName()); - GameRegistry.registerItem(powder_at209, powder_at209.getUnlocalizedName()); - GameRegistry.registerItem(powder_titanium, powder_titanium.getUnlocalizedName()); - GameRegistry.registerItem(powder_copper, powder_copper.getUnlocalizedName()); - GameRegistry.registerItem(powder_red_copper, powder_red_copper.getUnlocalizedName()); - GameRegistry.registerItem(powder_advanced_alloy, powder_advanced_alloy.getUnlocalizedName()); - GameRegistry.registerItem(powder_tungsten, powder_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(powder_aluminium, powder_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(powder_steel, powder_steel.getUnlocalizedName()); - GameRegistry.registerItem(powder_steel_tiny, powder_steel_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_tcalloy, powder_tcalloy.getUnlocalizedName()); - GameRegistry.registerItem(powder_lead, powder_lead.getUnlocalizedName()); - GameRegistry.registerItem(powder_bismuth, powder_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(powder_calcium, powder_calcium.getUnlocalizedName()); - GameRegistry.registerItem(powder_cadmium, powder_cadmium.getUnlocalizedName()); - GameRegistry.registerItem(powder_coltan_ore, powder_coltan_ore.getUnlocalizedName()); - GameRegistry.registerItem(powder_coltan, powder_coltan.getUnlocalizedName()); - GameRegistry.registerItem(powder_tantalium, powder_tantalium.getUnlocalizedName()); - GameRegistry.registerItem(powder_tektite, powder_tektite.getUnlocalizedName()); - GameRegistry.registerItem(powder_paleogenite, powder_paleogenite.getUnlocalizedName()); - GameRegistry.registerItem(powder_paleogenite_tiny, powder_paleogenite_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_impure_osmiridium, powder_impure_osmiridium.getUnlocalizedName()); - GameRegistry.registerItem(powder_borax, powder_borax.getUnlocalizedName()); - GameRegistry.registerItem(powder_chlorocalcite, powder_chlorocalcite.getUnlocalizedName()); - GameRegistry.registerItem(powder_molysite, powder_molysite.getUnlocalizedName()); - GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName()); - GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName()); - GameRegistry.registerItem(powder_polymer, powder_polymer.getUnlocalizedName()); - GameRegistry.registerItem(powder_bakelite, powder_bakelite.getUnlocalizedName()); - GameRegistry.registerItem(powder_schrabidium, powder_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(powder_schrabidate, powder_schrabidate.getUnlocalizedName()); - GameRegistry.registerItem(powder_magnetized_tungsten, powder_magnetized_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(powder_chlorophyte, powder_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(powder_combine_steel, powder_combine_steel.getUnlocalizedName()); - GameRegistry.registerItem(powder_lithium, powder_lithium.getUnlocalizedName()); - GameRegistry.registerItem(powder_lithium_tiny, powder_lithium_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_zirconium, powder_zirconium.getUnlocalizedName()); - GameRegistry.registerItem(powder_sodium, powder_sodium.getUnlocalizedName()); - GameRegistry.registerItem(powder_lignite, powder_lignite.getUnlocalizedName()); - GameRegistry.registerItem(powder_iodine, powder_iodine.getUnlocalizedName()); - GameRegistry.registerItem(powder_thorium, powder_thorium.getUnlocalizedName()); - GameRegistry.registerItem(powder_neodymium, powder_neodymium.getUnlocalizedName()); - GameRegistry.registerItem(powder_neodymium_tiny, powder_neodymium_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_astatine, powder_astatine.getUnlocalizedName()); - GameRegistry.registerItem(powder_caesium, powder_caesium.getUnlocalizedName()); - GameRegistry.registerItem(powder_australium, powder_australium.getUnlocalizedName()); - GameRegistry.registerItem(powder_strontium, powder_strontium.getUnlocalizedName()); - GameRegistry.registerItem(powder_cobalt, powder_cobalt.getUnlocalizedName()); - GameRegistry.registerItem(powder_cobalt_tiny, powder_cobalt_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_bromine, powder_bromine.getUnlocalizedName()); - GameRegistry.registerItem(powder_niobium, powder_niobium.getUnlocalizedName()); - GameRegistry.registerItem(powder_niobium_tiny, powder_niobium_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_tennessine, powder_tennessine.getUnlocalizedName()); - GameRegistry.registerItem(powder_cerium, powder_cerium.getUnlocalizedName()); - GameRegistry.registerItem(powder_cerium_tiny, powder_cerium_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_lanthanium, powder_lanthanium.getUnlocalizedName()); - GameRegistry.registerItem(powder_lanthanium_tiny, powder_lanthanium_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_actinium, powder_actinium.getUnlocalizedName()); - GameRegistry.registerItem(powder_actinium_tiny, powder_actinium_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_boron, powder_boron.getUnlocalizedName()); - GameRegistry.registerItem(powder_boron_tiny, powder_boron_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_asbestos, powder_asbestos.getUnlocalizedName()); - GameRegistry.registerItem(powder_magic, powder_magic.getUnlocalizedName()); - GameRegistry.registerItem(powder_sawdust, powder_sawdust.getUnlocalizedName()); - GameRegistry.registerItem(powder_flux, powder_flux.getUnlocalizedName()); - GameRegistry.registerItem(powder_fertilizer, powder_fertilizer.getUnlocalizedName()); - GameRegistry.registerItem(powder_balefire, powder_balefire.getUnlocalizedName()); - GameRegistry.registerItem(powder_semtex_mix, powder_semtex_mix.getUnlocalizedName()); - GameRegistry.registerItem(powder_desh_mix, powder_desh_mix.getUnlocalizedName()); - GameRegistry.registerItem(powder_desh_ready, powder_desh_ready.getUnlocalizedName()); - GameRegistry.registerItem(powder_desh, powder_desh.getUnlocalizedName()); - GameRegistry.registerItem(powder_nitan_mix, powder_nitan_mix.getUnlocalizedName()); - GameRegistry.registerItem(powder_spark_mix, powder_spark_mix.getUnlocalizedName()); - GameRegistry.registerItem(powder_meteorite, powder_meteorite.getUnlocalizedName()); - GameRegistry.registerItem(powder_meteorite_tiny, powder_meteorite_tiny.getUnlocalizedName()); - GameRegistry.registerItem(powder_euphemium, powder_euphemium.getUnlocalizedName()); - GameRegistry.registerItem(powder_dineutronium, powder_dineutronium.getUnlocalizedName()); - GameRegistry.registerItem(dust, dust.getUnlocalizedName()); - GameRegistry.registerItem(dust_tiny, dust_tiny.getUnlocalizedName()); - GameRegistry.registerItem(fallout, fallout.getUnlocalizedName()); - GameRegistry.registerItem(powder_ash, powder_ash.getUnlocalizedName()); - GameRegistry.registerItem(powder_limestone, powder_limestone.getUnlocalizedName()); - GameRegistry.registerItem(powder_cement, powder_cement.getUnlocalizedName()); - - //Powders - GameRegistry.registerItem(powder_fire, powder_fire.getUnlocalizedName()); - GameRegistry.registerItem(powder_ice, powder_ice.getUnlocalizedName()); - GameRegistry.registerItem(powder_poison, powder_poison.getUnlocalizedName()); - GameRegistry.registerItem(powder_thermite, powder_thermite.getUnlocalizedName()); - GameRegistry.registerItem(powder_power, powder_power.getUnlocalizedName()); - GameRegistry.registerItem(cordite, cordite.getUnlocalizedName()); - GameRegistry.registerItem(ballistite, ballistite.getUnlocalizedName()); - GameRegistry.registerItem(ball_dynamite, ball_dynamite.getUnlocalizedName()); - GameRegistry.registerItem(ball_tnt, ball_tnt.getUnlocalizedName()); - GameRegistry.registerItem(ball_tatb, ball_tatb.getUnlocalizedName()); - GameRegistry.registerItem(ball_resin, ball_resin.getUnlocalizedName()); - GameRegistry.registerItem(ball_fireclay, ball_fireclay.getUnlocalizedName()); - - //Ores - GameRegistry.registerItem(ore_bedrock, ore_bedrock.getUnlocalizedName()); - GameRegistry.registerItem(ore_centrifuged, ore_centrifuged.getUnlocalizedName()); - GameRegistry.registerItem(ore_cleaned, ore_cleaned.getUnlocalizedName()); - GameRegistry.registerItem(ore_separated, ore_separated.getUnlocalizedName()); - GameRegistry.registerItem(ore_purified, ore_purified.getUnlocalizedName()); - GameRegistry.registerItem(ore_nitrated, ore_nitrated.getUnlocalizedName()); - GameRegistry.registerItem(ore_nitrocrystalline, ore_nitrocrystalline.getUnlocalizedName()); - GameRegistry.registerItem(ore_deepcleaned, ore_deepcleaned.getUnlocalizedName()); - GameRegistry.registerItem(ore_seared, ore_seared.getUnlocalizedName()); - GameRegistry.registerItem(ore_enriched, ore_enriched.getUnlocalizedName()); - GameRegistry.registerItem(ore_byproduct, ore_byproduct.getUnlocalizedName()); - GameRegistry.registerItem(bedrock_ore_base, bedrock_ore_base.getUnlocalizedName()); - GameRegistry.registerItem(bedrock_ore, bedrock_ore.getUnlocalizedName()); - GameRegistry.registerItem(bedrock_ore_fragment, bedrock_ore_fragment.getUnlocalizedName()); - - //Crystals - GameRegistry.registerItem(crystal_coal, crystal_coal.getUnlocalizedName()); - GameRegistry.registerItem(crystal_iron, crystal_iron.getUnlocalizedName()); - GameRegistry.registerItem(crystal_gold, crystal_gold.getUnlocalizedName()); - GameRegistry.registerItem(crystal_redstone, crystal_redstone.getUnlocalizedName()); - GameRegistry.registerItem(crystal_lapis, crystal_lapis.getUnlocalizedName()); - GameRegistry.registerItem(crystal_diamond, crystal_diamond.getUnlocalizedName()); - GameRegistry.registerItem(crystal_uranium, crystal_uranium.getUnlocalizedName()); - GameRegistry.registerItem(crystal_thorium, crystal_thorium.getUnlocalizedName()); - GameRegistry.registerItem(crystal_plutonium, crystal_plutonium.getUnlocalizedName()); - GameRegistry.registerItem(crystal_titanium, crystal_titanium.getUnlocalizedName()); - GameRegistry.registerItem(crystal_sulfur, crystal_sulfur.getUnlocalizedName()); - GameRegistry.registerItem(crystal_niter, crystal_niter.getUnlocalizedName()); - GameRegistry.registerItem(crystal_copper, crystal_copper.getUnlocalizedName()); - GameRegistry.registerItem(crystal_tungsten, crystal_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(crystal_aluminium, crystal_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(crystal_fluorite, crystal_fluorite.getUnlocalizedName()); - GameRegistry.registerItem(crystal_beryllium, crystal_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(crystal_lead, crystal_lead.getUnlocalizedName()); - GameRegistry.registerItem(crystal_schraranium, crystal_schraranium.getUnlocalizedName()); - GameRegistry.registerItem(crystal_schrabidium, crystal_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(crystal_rare, crystal_rare.getUnlocalizedName()); - GameRegistry.registerItem(crystal_phosphorus, crystal_phosphorus.getUnlocalizedName()); - GameRegistry.registerItem(crystal_lithium, crystal_lithium.getUnlocalizedName()); - GameRegistry.registerItem(crystal_cobalt, crystal_cobalt.getUnlocalizedName()); - GameRegistry.registerItem(crystal_starmetal, crystal_starmetal.getUnlocalizedName()); - GameRegistry.registerItem(crystal_cinnebar, crystal_cinnebar.getUnlocalizedName()); - GameRegistry.registerItem(crystal_trixite, crystal_trixite.getUnlocalizedName()); - GameRegistry.registerItem(crystal_osmiridium, crystal_osmiridium.getUnlocalizedName()); - GameRegistry.registerItem(gem_sodalite, gem_sodalite.getUnlocalizedName()); - GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName()); - GameRegistry.registerItem(gem_volcanic, gem_volcanic.getUnlocalizedName()); - GameRegistry.registerItem(gem_rad, gem_rad.getUnlocalizedName()); - GameRegistry.registerItem(gem_alexandrite, gem_alexandrite.getUnlocalizedName()); - - //Fragments - GameRegistry.registerItem(fragment_neodymium, fragment_neodymium.getUnlocalizedName()); - GameRegistry.registerItem(fragment_cobalt, fragment_cobalt.getUnlocalizedName()); - GameRegistry.registerItem(fragment_niobium, fragment_niobium.getUnlocalizedName()); - GameRegistry.registerItem(fragment_cerium, fragment_cerium.getUnlocalizedName()); - GameRegistry.registerItem(fragment_lanthanium, fragment_lanthanium.getUnlocalizedName()); - GameRegistry.registerItem(fragment_actinium, fragment_actinium.getUnlocalizedName()); - GameRegistry.registerItem(fragment_boron, fragment_boron.getUnlocalizedName()); - GameRegistry.registerItem(fragment_meteorite, fragment_meteorite.getUnlocalizedName()); - GameRegistry.registerItem(fragment_coltan, fragment_coltan.getUnlocalizedName()); - GameRegistry.registerItem(chunk_ore, chunk_ore.getUnlocalizedName()); - - //Things that look like rotten flesh but aren't - GameRegistry.registerItem(biomass, biomass.getUnlocalizedName()); - GameRegistry.registerItem(biomass_compressed, biomass_compressed.getUnlocalizedName()); - //delicious! - GameRegistry.registerItem(bio_wafer, bio_wafer.getUnlocalizedName()); - - //Nuggets - GameRegistry.registerItem(nugget_uranium, nugget_uranium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_u233, nugget_u233.getUnlocalizedName()); - GameRegistry.registerItem(nugget_u235, nugget_u235.getUnlocalizedName()); - GameRegistry.registerItem(nugget_u238, nugget_u238.getUnlocalizedName()); - GameRegistry.registerItem(nugget_th232, nugget_th232.getUnlocalizedName()); - GameRegistry.registerItem(nugget_plutonium, nugget_plutonium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_pu238, nugget_pu238.getUnlocalizedName()); - GameRegistry.registerItem(nugget_pu239, nugget_pu239.getUnlocalizedName()); - GameRegistry.registerItem(nugget_pu240, nugget_pu240.getUnlocalizedName()); - GameRegistry.registerItem(nugget_pu241, nugget_pu241.getUnlocalizedName()); - GameRegistry.registerItem(nugget_pu_mix, nugget_pu_mix.getUnlocalizedName()); - GameRegistry.registerItem(nugget_am241, nugget_am241.getUnlocalizedName()); - GameRegistry.registerItem(nugget_am242, nugget_am242.getUnlocalizedName()); - GameRegistry.registerItem(nugget_am_mix, nugget_am_mix.getUnlocalizedName()); - GameRegistry.registerItem(nugget_neptunium, nugget_neptunium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_polonium, nugget_polonium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_cobalt, nugget_cobalt.getUnlocalizedName()); - GameRegistry.registerItem(nugget_co60, nugget_co60.getUnlocalizedName()); - GameRegistry.registerItem(nugget_sr90, nugget_sr90.getUnlocalizedName()); - GameRegistry.registerItem(nugget_technetium, nugget_technetium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_au198, nugget_au198.getUnlocalizedName()); - GameRegistry.registerItem(nugget_pb209, nugget_pb209.getUnlocalizedName()); - GameRegistry.registerItem(nugget_ra226, nugget_ra226.getUnlocalizedName()); - GameRegistry.registerItem(nugget_actinium, nugget_actinium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_lead, nugget_lead.getUnlocalizedName()); - GameRegistry.registerItem(nugget_bismuth, nugget_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(nugget_arsenic, nugget_arsenic.getUnlocalizedName()); - GameRegistry.registerItem(nugget_tantalium, nugget_tantalium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_silicon, nugget_silicon.getUnlocalizedName()); - GameRegistry.registerItem(nugget_niobium, nugget_niobium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_beryllium, nugget_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_schrabidium, nugget_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_solinium, nugget_solinium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_gh336, nugget_gh336.getUnlocalizedName()); - GameRegistry.registerItem(nugget_uranium_fuel, nugget_uranium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(nugget_thorium_fuel, nugget_thorium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(nugget_plutonium_fuel, nugget_plutonium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(nugget_neptunium_fuel, nugget_neptunium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(nugget_mox_fuel, nugget_mox_fuel.getUnlocalizedName()); - GameRegistry.registerItem(nugget_americium_fuel, nugget_americium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(nugget_schrabidium_fuel, nugget_schrabidium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(nugget_hes, nugget_hes.getUnlocalizedName()); - GameRegistry.registerItem(nugget_les, nugget_les.getUnlocalizedName()); - GameRegistry.registerItem(nugget_zirconium, nugget_zirconium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_australium, nugget_australium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_australium_lesser, nugget_australium_lesser.getUnlocalizedName()); - GameRegistry.registerItem(nugget_australium_greater, nugget_australium_greater.getUnlocalizedName()); - GameRegistry.registerItem(nugget_desh, nugget_desh.getUnlocalizedName()); - GameRegistry.registerItem(nugget_euphemium, nugget_euphemium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_dineutronium, nugget_dineutronium.getUnlocalizedName()); - GameRegistry.registerItem(nugget_osmiridium, nugget_osmiridium.getUnlocalizedName()); - - //Plates - GameRegistry.registerItem(plate_iron, plate_iron.getUnlocalizedName()); - GameRegistry.registerItem(plate_gold, plate_gold.getUnlocalizedName()); - GameRegistry.registerItem(plate_titanium, plate_titanium.getUnlocalizedName()); - GameRegistry.registerItem(plate_aluminium, plate_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(plate_steel, plate_steel.getUnlocalizedName()); - GameRegistry.registerItem(plate_lead, plate_lead.getUnlocalizedName()); - GameRegistry.registerItem(plate_copper, plate_copper.getUnlocalizedName()); - GameRegistry.registerItem(plate_advanced_alloy, plate_advanced_alloy.getUnlocalizedName()); - GameRegistry.registerItem(plate_dura_steel, plate_dura_steel.getUnlocalizedName()); - GameRegistry.registerItem(neutron_reflector, neutron_reflector.getUnlocalizedName()); - GameRegistry.registerItem(plate_schrabidium, plate_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(plate_combine_steel, plate_combine_steel.getUnlocalizedName()); - GameRegistry.registerItem(plate_mixed, plate_mixed.getUnlocalizedName()); - GameRegistry.registerItem(plate_gunmetal, plate_gunmetal.getUnlocalizedName()); - GameRegistry.registerItem(plate_weaponsteel, plate_weaponsteel.getUnlocalizedName()); - GameRegistry.registerItem(plate_saturnite, plate_saturnite.getUnlocalizedName()); - GameRegistry.registerItem(plate_paa, plate_paa.getUnlocalizedName()); - GameRegistry.registerItem(plate_polymer, plate_polymer.getUnlocalizedName()); - GameRegistry.registerItem(plate_kevlar, plate_kevlar.getUnlocalizedName()); - GameRegistry.registerItem(plate_dalekanium, plate_dalekanium.getUnlocalizedName()); - GameRegistry.registerItem(plate_desh, plate_desh.getUnlocalizedName()); - GameRegistry.registerItem(plate_bismuth, plate_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(plate_euphemium, plate_euphemium.getUnlocalizedName()); - GameRegistry.registerItem(plate_dineutronium, plate_dineutronium.getUnlocalizedName()); - - //Armor Plates - GameRegistry.registerItem(plate_armor_titanium, plate_armor_titanium.getUnlocalizedName()); - GameRegistry.registerItem(plate_armor_ajr, plate_armor_ajr.getUnlocalizedName()); - GameRegistry.registerItem(plate_armor_hev, plate_armor_hev.getUnlocalizedName()); - GameRegistry.registerItem(plate_armor_lunar, plate_armor_lunar.getUnlocalizedName()); - GameRegistry.registerItem(plate_armor_fau, plate_armor_fau.getUnlocalizedName()); - GameRegistry.registerItem(plate_armor_dnt, plate_armor_dnt.getUnlocalizedName()); - - //Heavy/Cast Plate - GameRegistry.registerItem(plate_cast, plate_cast.getUnlocalizedName()); - GameRegistry.registerItem(plate_welded, plate_welded.getUnlocalizedName()); - GameRegistry.registerItem(shell, shell.getUnlocalizedName()); - GameRegistry.registerItem(pipe, pipe.getUnlocalizedName()); - GameRegistry.registerItem(heavy_component, heavy_component.getUnlocalizedName()); - - //Bolts - GameRegistry.registerItem(bolt, bolt.getUnlocalizedName()); - GameRegistry.registerItem(bolt_spike, bolt_spike.getUnlocalizedName()); - - //Cloth - GameRegistry.registerItem(hazmat_cloth, hazmat_cloth.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_cloth_red, hazmat_cloth_red.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_cloth_grey, hazmat_cloth_grey.getUnlocalizedName()); - GameRegistry.registerItem(asbestos_cloth, asbestos_cloth.getUnlocalizedName()); - GameRegistry.registerItem(rag, rag.getUnlocalizedName()); - GameRegistry.registerItem(rag_damp, rag_damp.getUnlocalizedName()); - GameRegistry.registerItem(rag_piss, rag_piss.getUnlocalizedName()); - GameRegistry.registerItem(filter_coal, filter_coal.getUnlocalizedName()); - - //Wires - GameRegistry.registerItem(wire_fine, wire_fine.getUnlocalizedName()); - GameRegistry.registerItem(wire_dense, wire_dense.getUnlocalizedName()); - - //Parts - GameRegistry.registerItem(coil_copper, coil_copper.getUnlocalizedName()); - GameRegistry.registerItem(coil_copper_torus, coil_copper_torus.getUnlocalizedName()); - GameRegistry.registerItem(coil_advanced_alloy, coil_advanced_alloy.getUnlocalizedName()); - GameRegistry.registerItem(coil_advanced_torus, coil_advanced_torus.getUnlocalizedName()); - GameRegistry.registerItem(coil_gold, coil_gold.getUnlocalizedName()); - GameRegistry.registerItem(coil_gold_torus, coil_gold_torus.getUnlocalizedName()); - GameRegistry.registerItem(coil_tungsten, coil_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(coil_magnetized_tungsten, coil_magnetized_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(safety_fuse, safety_fuse.getUnlocalizedName()); - GameRegistry.registerItem(tank_steel, tank_steel.getUnlocalizedName()); - GameRegistry.registerItem(motor, motor.getUnlocalizedName()); - GameRegistry.registerItem(motor_desh, motor_desh.getUnlocalizedName()); - GameRegistry.registerItem(motor_bismuth, motor_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(centrifuge_element, centrifuge_element.getUnlocalizedName()); - GameRegistry.registerItem(reactor_core, reactor_core.getUnlocalizedName()); - GameRegistry.registerItem(rtg_unit, rtg_unit.getUnlocalizedName()); - GameRegistry.registerItem(levitation_unit, levitation_unit.getUnlocalizedName()); - GameRegistry.registerItem(pipes_steel, pipes_steel.getUnlocalizedName()); - GameRegistry.registerItem(drill_titanium, drill_titanium.getUnlocalizedName()); - GameRegistry.registerItem(photo_panel, photo_panel.getUnlocalizedName()); - GameRegistry.registerItem(chlorine_pinwheel, chlorine_pinwheel.getUnlocalizedName()); - GameRegistry.registerItem(ring_starmetal, ring_starmetal.getUnlocalizedName()); - GameRegistry.registerItem(deuterium_filter, deuterium_filter.getUnlocalizedName()); - GameRegistry.registerItem(chemical_dye, chemical_dye.getUnlocalizedName()); - GameRegistry.registerItem(crayon, crayon.getUnlocalizedName()); - GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName()); - GameRegistry.registerItem(item_secret, item_secret.getUnlocalizedName()); - GameRegistry.registerItem(ingot_metal, ingot_metal.getUnlocalizedName()); - GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); - GameRegistry.registerItem(gear_large, gear_large.getUnlocalizedName()); - GameRegistry.registerItem(sawblade, sawblade.getUnlocalizedName()); - GameRegistry.registerItem(part_barrel_light, part_barrel_light.getUnlocalizedName()); - GameRegistry.registerItem(part_barrel_heavy, part_barrel_heavy.getUnlocalizedName()); - GameRegistry.registerItem(part_receiver_light, part_receiver_light.getUnlocalizedName()); - GameRegistry.registerItem(part_receiver_heavy, part_receiver_heavy.getUnlocalizedName()); - GameRegistry.registerItem(part_mechanism, part_mechanism.getUnlocalizedName()); - GameRegistry.registerItem(part_stock, part_stock.getUnlocalizedName()); - GameRegistry.registerItem(part_grip, part_grip.getUnlocalizedName()); - - //Plant Products - GameRegistry.registerItem(plant_item, plant_item.getUnlocalizedName()); - - //Teleporter Parts - //GameRegistry.registerItem(telepad, telepad.getUnlocalizedName()); - GameRegistry.registerItem(entanglement_kit, entanglement_kit.getUnlocalizedName()); - - //AMS Parts - GameRegistry.registerItem(component_limiter, component_limiter.getUnlocalizedName()); - GameRegistry.registerItem(component_emitter, component_emitter.getUnlocalizedName()); - - //Bomb Parts - GameRegistry.registerItem(fins_flat, fins_flat.getUnlocalizedName()); - GameRegistry.registerItem(fins_small_steel, fins_small_steel.getUnlocalizedName()); - GameRegistry.registerItem(fins_big_steel, fins_big_steel.getUnlocalizedName()); - GameRegistry.registerItem(fins_tri_steel, fins_tri_steel.getUnlocalizedName()); - GameRegistry.registerItem(fins_quad_titanium, fins_quad_titanium.getUnlocalizedName()); - GameRegistry.registerItem(sphere_steel, sphere_steel.getUnlocalizedName()); - GameRegistry.registerItem(pedestal_steel, pedestal_steel.getUnlocalizedName()); - GameRegistry.registerItem(dysfunctional_reactor, dysfunctional_reactor.getUnlocalizedName()); - GameRegistry.registerItem(blade_titanium, blade_titanium.getUnlocalizedName()); - GameRegistry.registerItem(blade_tungsten, blade_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(turbine_titanium, turbine_titanium.getUnlocalizedName()); - GameRegistry.registerItem(turbine_tungsten, turbine_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(flywheel_beryllium, flywheel_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(toothpicks, toothpicks.getUnlocalizedName()); - GameRegistry.registerItem(ducttape, ducttape.getUnlocalizedName()); - GameRegistry.registerItem(catalyst_clay, catalyst_clay.getUnlocalizedName()); - GameRegistry.registerItem(missile_assembly, missile_assembly.getUnlocalizedName()); - GameRegistry.registerItem(warhead_generic_small, warhead_generic_small.getUnlocalizedName()); - GameRegistry.registerItem(warhead_generic_medium, warhead_generic_medium.getUnlocalizedName()); - GameRegistry.registerItem(warhead_generic_large, warhead_generic_large.getUnlocalizedName()); - GameRegistry.registerItem(warhead_incendiary_small, warhead_incendiary_small.getUnlocalizedName()); - GameRegistry.registerItem(warhead_incendiary_medium, warhead_incendiary_medium.getUnlocalizedName()); - GameRegistry.registerItem(warhead_incendiary_large, warhead_incendiary_large.getUnlocalizedName()); - GameRegistry.registerItem(warhead_cluster_small, warhead_cluster_small.getUnlocalizedName()); - GameRegistry.registerItem(warhead_cluster_medium, warhead_cluster_medium.getUnlocalizedName()); - GameRegistry.registerItem(warhead_cluster_large, warhead_cluster_large.getUnlocalizedName()); - GameRegistry.registerItem(warhead_buster_small, warhead_buster_small.getUnlocalizedName()); - GameRegistry.registerItem(warhead_buster_medium, warhead_buster_medium.getUnlocalizedName()); - GameRegistry.registerItem(warhead_buster_large, warhead_buster_large.getUnlocalizedName()); - GameRegistry.registerItem(warhead_nuclear, warhead_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(warhead_mirv, warhead_mirv.getUnlocalizedName()); - GameRegistry.registerItem(warhead_volcano, warhead_volcano.getUnlocalizedName()); - GameRegistry.registerItem(fuel_tank_small, fuel_tank_small.getUnlocalizedName()); - GameRegistry.registerItem(fuel_tank_medium, fuel_tank_medium.getUnlocalizedName()); - GameRegistry.registerItem(fuel_tank_large, fuel_tank_large.getUnlocalizedName()); - GameRegistry.registerItem(thruster_small, thruster_small.getUnlocalizedName()); - GameRegistry.registerItem(thruster_medium, thruster_medium.getUnlocalizedName()); - GameRegistry.registerItem(thruster_large, thruster_large.getUnlocalizedName()); - GameRegistry.registerItem(thruster_nuclear, thruster_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(sat_base, sat_base.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_mapper, sat_head_mapper.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_scanner, sat_head_scanner.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_radar, sat_head_radar.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_laser, sat_head_laser.getUnlocalizedName()); - GameRegistry.registerItem(sat_head_resonator, sat_head_resonator.getUnlocalizedName()); - GameRegistry.registerItem(seg_10, seg_10.getUnlocalizedName()); - GameRegistry.registerItem(seg_15, seg_15.getUnlocalizedName()); - GameRegistry.registerItem(seg_20, seg_20.getUnlocalizedName()); - - //Chopper parts - GameRegistry.registerItem(chopper_head, chopper_head.getUnlocalizedName()); - GameRegistry.registerItem(chopper_gun, chopper_gun.getUnlocalizedName()); - GameRegistry.registerItem(chopper_torso, chopper_torso.getUnlocalizedName()); - GameRegistry.registerItem(chopper_tail, chopper_tail.getUnlocalizedName()); - GameRegistry.registerItem(chopper_wing, chopper_wing.getUnlocalizedName()); - GameRegistry.registerItem(chopper_blades, chopper_blades.getUnlocalizedName()); - GameRegistry.registerItem(combine_scrap, combine_scrap.getUnlocalizedName()); - - //Hammer Parts - GameRegistry.registerItem(shimmer_head, shimmer_head.getUnlocalizedName()); - GameRegistry.registerItem(shimmer_axe_head, shimmer_axe_head.getUnlocalizedName()); - GameRegistry.registerItem(shimmer_handle, shimmer_handle.getUnlocalizedName()); - - //Circuits - GameRegistry.registerItem(circuit, circuit.getUnlocalizedName()); - GameRegistry.registerItem(crt_display, crt_display.getUnlocalizedName()); - GameRegistry.registerItem(circuit_star_piece, circuit_star_piece.getUnlocalizedName()); - GameRegistry.registerItem(circuit_star_component, circuit_star_component.getUnlocalizedName()); - GameRegistry.registerItem(circuit_star, circuit_star.getUnlocalizedName()); - - //Casing - GameRegistry.registerItem(casing, casing.getUnlocalizedName()); - - //Bullet Assemblies - GameRegistry.registerItem(assembly_nuke, assembly_nuke.getUnlocalizedName()); - - //Wiring - GameRegistry.registerItem(wiring_red_copper, wiring_red_copper.getUnlocalizedName()); - - //Flame War in a Box - GameRegistry.registerItem(flame_pony, flame_pony.getUnlocalizedName()); - GameRegistry.registerItem(flame_conspiracy, flame_conspiracy.getUnlocalizedName()); - GameRegistry.registerItem(flame_politics, flame_politics.getUnlocalizedName()); - GameRegistry.registerItem(flame_opinion, flame_opinion.getUnlocalizedName()); - - //Pellets - GameRegistry.registerItem(pellet_rtg_radium, pellet_rtg_radium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_weak, pellet_rtg_weak.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg, pellet_rtg.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_strontium, pellet_rtg_strontium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_cobalt, pellet_rtg_cobalt.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_actinium, pellet_rtg_actinium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_polonium, pellet_rtg_polonium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_americium, pellet_rtg_americium.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_gold, pellet_rtg_gold.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_lead, pellet_rtg_lead.getUnlocalizedName()); - GameRegistry.registerItem(pellet_rtg_depleted, pellet_rtg_depleted.getUnlocalizedName()); - GameRegistry.registerItem(tritium_deuterium_cake, tritium_deuterium_cake.getUnlocalizedName()); - GameRegistry.registerItem(pellet_cluster, pellet_cluster.getUnlocalizedName()); - GameRegistry.registerItem(pellet_buckshot, pellet_buckshot.getUnlocalizedName()); - GameRegistry.registerItem(pellet_charged, pellet_charged.getUnlocalizedName()); - GameRegistry.registerItem(pellet_gas, pellet_gas.getUnlocalizedName()); - GameRegistry.registerItem(magnetron, magnetron.getUnlocalizedName()); - - //Engine Pieces - GameRegistry.registerItem(piston_selenium, piston_selenium.getUnlocalizedName()); - GameRegistry.registerItem(piston_set, piston_set.getUnlocalizedName()); - GameRegistry.registerItem(drillbit, drillbit.getUnlocalizedName()); - - //Cells - GameRegistry.registerItem(cell_empty, cell_empty.getUnlocalizedName()); - GameRegistry.registerItem(cell_uf6, cell_uf6.getUnlocalizedName()); - GameRegistry.registerItem(cell_puf6, cell_puf6.getUnlocalizedName()); - GameRegistry.registerItem(cell_deuterium, cell_deuterium.getUnlocalizedName()); - GameRegistry.registerItem(cell_tritium, cell_tritium.getUnlocalizedName()); - GameRegistry.registerItem(cell_sas3, cell_sas3.getUnlocalizedName()); - GameRegistry.registerItem(cell_antimatter, cell_antimatter.getUnlocalizedName()); - GameRegistry.registerItem(cell_anti_schrabidium, cell_anti_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(cell_balefire, cell_balefire.getUnlocalizedName()); - - //DEMON CORE - GameRegistry.registerItem(demon_core_open, demon_core_open.getUnlocalizedName()); - GameRegistry.registerItem(demon_core_closed, demon_core_closed.getUnlocalizedName()); - - //PA - GameRegistry.registerItem(pa_coil, pa_coil.getUnlocalizedName()); - - //Particle Containers - GameRegistry.registerItem(particle_empty, particle_empty.getUnlocalizedName()); - GameRegistry.registerItem(particle_hydrogen, particle_hydrogen.getUnlocalizedName()); - GameRegistry.registerItem(particle_copper, particle_copper.getUnlocalizedName()); - GameRegistry.registerItem(particle_lead, particle_lead.getUnlocalizedName()); - GameRegistry.registerItem(particle_aproton, particle_aproton.getUnlocalizedName()); - GameRegistry.registerItem(particle_aelectron, particle_aelectron.getUnlocalizedName()); - GameRegistry.registerItem(particle_amat, particle_amat.getUnlocalizedName()); - GameRegistry.registerItem(particle_aschrab, particle_aschrab.getUnlocalizedName()); - GameRegistry.registerItem(particle_higgs, particle_higgs.getUnlocalizedName()); - GameRegistry.registerItem(particle_muon, particle_muon.getUnlocalizedName()); - GameRegistry.registerItem(particle_tachyon, particle_tachyon.getUnlocalizedName()); - GameRegistry.registerItem(particle_strange, particle_strange.getUnlocalizedName()); - GameRegistry.registerItem(particle_dark, particle_dark.getUnlocalizedName()); - GameRegistry.registerItem(particle_sparkticle, particle_sparkticle.getUnlocalizedName()); - GameRegistry.registerItem(particle_digamma, particle_digamma.getUnlocalizedName()); - GameRegistry.registerItem(particle_lutece, particle_lutece.getUnlocalizedName()); - - //Singularities, black holes and other cosmic horrors - GameRegistry.registerItem(singularity, singularity.getUnlocalizedName()); - GameRegistry.registerItem(singularity_counter_resonant, singularity_counter_resonant.getUnlocalizedName()); - GameRegistry.registerItem(singularity_super_heated, singularity_super_heated.getUnlocalizedName()); - GameRegistry.registerItem(black_hole, black_hole.getUnlocalizedName()); - GameRegistry.registerItem(singularity_spark, singularity_spark.getUnlocalizedName()); - GameRegistry.registerItem(crystal_xen, crystal_xen.getUnlocalizedName()); - GameRegistry.registerItem(pellet_antimatter, pellet_antimatter.getUnlocalizedName()); - - //Infinite Tanks - GameRegistry.registerItem(inf_water, inf_water.getUnlocalizedName()); - GameRegistry.registerItem(inf_water_mk2, inf_water_mk2.getUnlocalizedName()); - - //Canisters - GameRegistry.registerItem(fuel_additive, fuel_additive.getUnlocalizedName()); - GameRegistry.registerItem(canister_empty, canister_empty.getUnlocalizedName()); - GameRegistry.registerItem(canister_full, canister_full.getUnlocalizedName()); - GameRegistry.registerItem(canister_napalm, canister_napalm.getUnlocalizedName()); - - //Gas Tanks - GameRegistry.registerItem(gas_empty, gas_empty.getUnlocalizedName()); - GameRegistry.registerItem(gas_full, gas_full.getUnlocalizedName()); - - //Universal Tank - GameRegistry.registerItem(fluid_tank_empty, fluid_tank_empty.getUnlocalizedName()); - GameRegistry.registerItem(fluid_tank_full, fluid_tank_full.getUnlocalizedName()); - GameRegistry.registerItem(fluid_tank_lead_empty, fluid_tank_lead_empty.getUnlocalizedName()); - GameRegistry.registerItem(fluid_tank_lead_full, fluid_tank_lead_full.getUnlocalizedName()); - GameRegistry.registerItem(fluid_barrel_empty, fluid_barrel_empty.getUnlocalizedName()); - GameRegistry.registerItem(fluid_barrel_full, fluid_barrel_full.getUnlocalizedName()); - GameRegistry.registerItem(fluid_barrel_infinite, fluid_barrel_infinite.getUnlocalizedName()); - - //Pipette - GameRegistry.registerItem(pipette, pipette.getUnlocalizedName()); - GameRegistry.registerItem(pipette_boron, pipette_boron.getUnlocalizedName()); - GameRegistry.registerItem(pipette_laboratory, pipette_laboratory.getUnlocalizedName()); - - //Siphon - GameRegistry.registerItem(siphon, siphon.getUnlocalizedName()); - - //Batteries - GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName()); - GameRegistry.registerItem(battery_red_cell, battery_red_cell.getUnlocalizedName()); - GameRegistry.registerItem(battery_red_cell_6, battery_red_cell_6.getUnlocalizedName()); - GameRegistry.registerItem(battery_red_cell_24, battery_red_cell_24.getUnlocalizedName()); - GameRegistry.registerItem(battery_advanced, battery_advanced.getUnlocalizedName()); - GameRegistry.registerItem(battery_advanced_cell, battery_advanced_cell.getUnlocalizedName()); - GameRegistry.registerItem(battery_advanced_cell_4, battery_advanced_cell_4.getUnlocalizedName()); - GameRegistry.registerItem(battery_advanced_cell_12, battery_advanced_cell_12.getUnlocalizedName()); - GameRegistry.registerItem(battery_lithium, battery_lithium.getUnlocalizedName()); - GameRegistry.registerItem(battery_lithium_cell, battery_lithium_cell.getUnlocalizedName()); - GameRegistry.registerItem(battery_lithium_cell_3, battery_lithium_cell_3.getUnlocalizedName()); - GameRegistry.registerItem(battery_lithium_cell_6, battery_lithium_cell_6.getUnlocalizedName()); - GameRegistry.registerItem(battery_schrabidium, battery_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(battery_schrabidium_cell, battery_schrabidium_cell.getUnlocalizedName()); - GameRegistry.registerItem(battery_schrabidium_cell_2, battery_schrabidium_cell_2.getUnlocalizedName()); - GameRegistry.registerItem(battery_schrabidium_cell_4, battery_schrabidium_cell_4.getUnlocalizedName()); - GameRegistry.registerItem(battery_spark, battery_spark.getUnlocalizedName()); - GameRegistry.registerItem(battery_trixite, battery_trixite.getUnlocalizedName()); - GameRegistry.registerItem(battery_spark_cell_6, battery_spark_cell_6.getUnlocalizedName()); - GameRegistry.registerItem(battery_spark_cell_25, battery_spark_cell_25.getUnlocalizedName()); - GameRegistry.registerItem(battery_spark_cell_100, battery_spark_cell_100.getUnlocalizedName()); - GameRegistry.registerItem(battery_spark_cell_1000, battery_spark_cell_1000.getUnlocalizedName()); - GameRegistry.registerItem(battery_spark_cell_2500, battery_spark_cell_2500.getUnlocalizedName()); - GameRegistry.registerItem(battery_spark_cell_10000, battery_spark_cell_10000.getUnlocalizedName()); - GameRegistry.registerItem(battery_spark_cell_power, battery_spark_cell_power.getUnlocalizedName()); - GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName()); - GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName()); - GameRegistry.registerItem(battery_potato, battery_potato.getUnlocalizedName()); - GameRegistry.registerItem(battery_potatos, battery_potatos.getUnlocalizedName()); - GameRegistry.registerItem(battery_sc_uranium, battery_sc_uranium.getUnlocalizedName()); - GameRegistry.registerItem(battery_sc_technetium, battery_sc_technetium.getUnlocalizedName()); - GameRegistry.registerItem(battery_sc_plutonium, battery_sc_plutonium.getUnlocalizedName()); - GameRegistry.registerItem(battery_sc_polonium, battery_sc_polonium.getUnlocalizedName()); - GameRegistry.registerItem(battery_sc_gold, battery_sc_gold.getUnlocalizedName()); - GameRegistry.registerItem(battery_sc_lead, battery_sc_lead.getUnlocalizedName()); - GameRegistry.registerItem(battery_sc_americium, battery_sc_americium.getUnlocalizedName()); - GameRegistry.registerItem(hev_battery, hev_battery.getUnlocalizedName()); - GameRegistry.registerItem(fusion_core, fusion_core.getUnlocalizedName()); - GameRegistry.registerItem(energy_core, energy_core.getUnlocalizedName()); - GameRegistry.registerItem(fusion_core_infinite, fusion_core_infinite.getUnlocalizedName()); - - //Folders - GameRegistry.registerItem(template_folder, template_folder.getUnlocalizedName()); - GameRegistry.registerItem(journal_pip, journal_pip.getUnlocalizedName()); - GameRegistry.registerItem(journal_bj, journal_bj.getUnlocalizedName()); - GameRegistry.registerItem(journal_silver, journal_silver.getUnlocalizedName()); - GameRegistry.registerItem(bobmazon, bobmazon.getUnlocalizedName()); - GameRegistry.registerItem(bobmazon_hidden, bobmazon_hidden.getUnlocalizedName()); - - //Hydraulic Press Stamps - GameRegistry.registerItem(stamp_stone_flat, stamp_stone_flat.getUnlocalizedName()); - GameRegistry.registerItem(stamp_stone_plate, stamp_stone_plate.getUnlocalizedName()); - GameRegistry.registerItem(stamp_stone_wire, stamp_stone_wire.getUnlocalizedName()); - GameRegistry.registerItem(stamp_stone_circuit, stamp_stone_circuit.getUnlocalizedName()); - GameRegistry.registerItem(stamp_iron_flat, stamp_iron_flat.getUnlocalizedName()); - GameRegistry.registerItem(stamp_iron_plate, stamp_iron_plate.getUnlocalizedName()); - GameRegistry.registerItem(stamp_iron_wire, stamp_iron_wire.getUnlocalizedName()); - GameRegistry.registerItem(stamp_iron_circuit, stamp_iron_circuit.getUnlocalizedName()); - GameRegistry.registerItem(stamp_steel_flat, stamp_steel_flat.getUnlocalizedName()); - GameRegistry.registerItem(stamp_steel_plate, stamp_steel_plate.getUnlocalizedName()); - GameRegistry.registerItem(stamp_steel_wire, stamp_steel_wire.getUnlocalizedName()); - GameRegistry.registerItem(stamp_steel_circuit, stamp_steel_circuit.getUnlocalizedName()); - GameRegistry.registerItem(stamp_titanium_flat, stamp_titanium_flat.getUnlocalizedName()); - GameRegistry.registerItem(stamp_titanium_plate, stamp_titanium_plate.getUnlocalizedName()); - GameRegistry.registerItem(stamp_titanium_wire, stamp_titanium_wire.getUnlocalizedName()); - GameRegistry.registerItem(stamp_titanium_circuit, stamp_titanium_circuit.getUnlocalizedName()); - GameRegistry.registerItem(stamp_obsidian_flat, stamp_obsidian_flat.getUnlocalizedName()); - GameRegistry.registerItem(stamp_obsidian_plate, stamp_obsidian_plate.getUnlocalizedName()); - GameRegistry.registerItem(stamp_obsidian_wire, stamp_obsidian_wire.getUnlocalizedName()); - GameRegistry.registerItem(stamp_obsidian_circuit, stamp_obsidian_circuit.getUnlocalizedName()); - GameRegistry.registerItem(stamp_desh_flat, stamp_desh_flat.getUnlocalizedName()); - GameRegistry.registerItem(stamp_desh_plate, stamp_desh_plate.getUnlocalizedName()); - GameRegistry.registerItem(stamp_desh_wire, stamp_desh_wire.getUnlocalizedName()); - GameRegistry.registerItem(stamp_desh_circuit, stamp_desh_circuit.getUnlocalizedName()); - GameRegistry.registerItem(stamp_357, stamp_357.getUnlocalizedName()); - GameRegistry.registerItem(stamp_44, stamp_44.getUnlocalizedName()); - GameRegistry.registerItem(stamp_9, stamp_9.getUnlocalizedName()); - GameRegistry.registerItem(stamp_50, stamp_50.getUnlocalizedName()); - - GameRegistry.registerItem(stamp_desh_357, stamp_desh_357.getUnlocalizedName()); - GameRegistry.registerItem(stamp_desh_44, stamp_desh_44.getUnlocalizedName()); - GameRegistry.registerItem(stamp_desh_9, stamp_desh_9.getUnlocalizedName()); - GameRegistry.registerItem(stamp_desh_50, stamp_desh_50.getUnlocalizedName()); - GameRegistry.registerItem(stamp_book, stamp_book.getUnlocalizedName()); - - //Molds - GameRegistry.registerItem(mold_base, mold_base.getUnlocalizedName()); - GameRegistry.registerItem(mold, mold.getUnlocalizedName()); - GameRegistry.registerItem(scraps, scraps.getUnlocalizedName()); - - //Machine Upgrades - GameRegistry.registerItem(upgrade_muffler, upgrade_muffler.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_template, upgrade_template.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_speed_1, upgrade_speed_1.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_speed_2, upgrade_speed_2.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_speed_3, upgrade_speed_3.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_effect_1, upgrade_effect_1.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_effect_2, upgrade_effect_2.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_effect_3, upgrade_effect_3.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_power_1, upgrade_power_1.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_power_2, upgrade_power_2.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_power_3, upgrade_power_3.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_fortune_1, upgrade_fortune_1.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_fortune_2, upgrade_fortune_2.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_fortune_3, upgrade_fortune_3.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_afterburn_1, upgrade_afterburn_1.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_afterburn_2, upgrade_afterburn_2.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_afterburn_3, upgrade_afterburn_3.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_overdrive_1, upgrade_overdrive_1.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_overdrive_2, upgrade_overdrive_2.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_overdrive_3, upgrade_overdrive_3.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_radius, upgrade_radius.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_health, upgrade_health.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_smelter, upgrade_smelter.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_shredder, upgrade_shredder.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_centrifuge, upgrade_centrifuge.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_crystallizer, upgrade_crystallizer.getUnlocalizedName()); - GameRegistry.registerItem(upgrade_nullifier, upgrade_nullifier.getUnlocalizedName()); - 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()); - GameRegistry.registerItem(fluid_identifier, fluid_identifier.getUnlocalizedName()); - GameRegistry.registerItem(fluid_identifier_multi, fluid_identifier_multi.getUnlocalizedName()); - GameRegistry.registerItem(fluid_icon, fluid_icon.getUnlocalizedName()); - GameRegistry.registerItem(fluid_duct, fluid_duct.getUnlocalizedName()); - GameRegistry.registerItem(assembly_template, assembly_template.getUnlocalizedName()); - GameRegistry.registerItem(chemistry_template, chemistry_template.getUnlocalizedName()); - GameRegistry.registerItem(chemistry_icon, chemistry_icon.getUnlocalizedName()); - GameRegistry.registerItem(crucible_template, crucible_template.getUnlocalizedName()); - - //Machine Items - GameRegistry.registerItem(fuse, fuse.getUnlocalizedName()); - GameRegistry.registerItem(redcoil_capacitor, redcoil_capacitor.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_capacitor, euphemium_capacitor.getUnlocalizedName()); - GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName()); - GameRegistry.registerItem(screwdriver_desh, screwdriver_desh.getUnlocalizedName()); - GameRegistry.registerItem(hand_drill, hand_drill.getUnlocalizedName()); - GameRegistry.registerItem(hand_drill_desh, hand_drill_desh.getUnlocalizedName()); - GameRegistry.registerItem(chemistry_set, chemistry_set.getUnlocalizedName()); - GameRegistry.registerItem(chemistry_set_boron, chemistry_set_boron.getUnlocalizedName()); - GameRegistry.registerItem(blowtorch, blowtorch.getUnlocalizedName()); - GameRegistry.registerItem(acetylene_torch, acetylene_torch.getUnlocalizedName()); - GameRegistry.registerItem(boltgun, boltgun.getUnlocalizedName()); - GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName()); - GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName()); - GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName()); - - //Particle Collider Fuel - GameRegistry.registerItem(part_lithium, part_lithium.getUnlocalizedName()); - GameRegistry.registerItem(part_beryllium, part_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(part_carbon, part_carbon.getUnlocalizedName()); - GameRegistry.registerItem(part_copper, part_copper.getUnlocalizedName()); - GameRegistry.registerItem(part_plutonium, part_plutonium.getUnlocalizedName()); - - //FEL laser crystals - GameRegistry.registerItem(laser_crystal_co2, laser_crystal_co2.getUnlocalizedName()); - GameRegistry.registerItem(laser_crystal_bismuth, laser_crystal_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(laser_crystal_cmb, laser_crystal_cmb.getUnlocalizedName()); - GameRegistry.registerItem(laser_crystal_dnt, laser_crystal_dnt.getUnlocalizedName()); - GameRegistry.registerItem(laser_crystal_digamma, laser_crystal_digamma.getUnlocalizedName()); - - //Catalyst Rune Sigils - GameRegistry.registerItem(rune_blank, rune_blank.getUnlocalizedName()); - GameRegistry.registerItem(rune_isa, rune_isa.getUnlocalizedName()); - GameRegistry.registerItem(rune_dagaz, rune_dagaz.getUnlocalizedName()); - GameRegistry.registerItem(rune_hagalaz, rune_hagalaz.getUnlocalizedName()); - GameRegistry.registerItem(rune_jera, rune_jera.getUnlocalizedName()); - GameRegistry.registerItem(rune_thurisaz, rune_thurisaz.getUnlocalizedName()); - - //AMS Catalysts - GameRegistry.registerItem(ams_catalyst_blank, ams_catalyst_blank.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_aluminium, ams_catalyst_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_beryllium, ams_catalyst_beryllium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_caesium, ams_catalyst_caesium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_cerium, ams_catalyst_cerium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_cobalt, ams_catalyst_cobalt.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_copper, ams_catalyst_copper.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_euphemium, ams_catalyst_euphemium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_dineutronium, ams_catalyst_dineutronium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_iron, ams_catalyst_iron.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_lithium, ams_catalyst_lithium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_niobium, ams_catalyst_niobium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_schrabidium, ams_catalyst_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_strontium, ams_catalyst_strontium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_thorium, ams_catalyst_thorium.getUnlocalizedName()); - GameRegistry.registerItem(ams_catalyst_tungsten, ams_catalyst_tungsten.getUnlocalizedName()); - - //Shredder Blades - GameRegistry.registerItem(blades_steel, blades_steel.getUnlocalizedName()); - GameRegistry.registerItem(blades_titanium, blades_titanium.getUnlocalizedName()); - GameRegistry.registerItem(blades_advanced_alloy, blades_advanced_alloy.getUnlocalizedName()); - GameRegistry.registerItem(blades_desh, blades_desh.getUnlocalizedName()); - - //Generator Stuff - GameRegistry.registerItem(thermo_element, thermo_element.getUnlocalizedName()); - GameRegistry.registerItem(catalytic_converter, catalytic_converter.getUnlocalizedName()); - - //AMS Components - GameRegistry.registerItem(ams_focus_blank, ams_focus_blank.getUnlocalizedName()); - GameRegistry.registerItem(ams_focus_limiter, ams_focus_limiter.getUnlocalizedName()); - GameRegistry.registerItem(ams_focus_booster, ams_focus_booster.getUnlocalizedName()); - GameRegistry.registerItem(ams_muzzle, ams_muzzle.getUnlocalizedName()); - GameRegistry.registerItem(ams_lens, ams_lens.getUnlocalizedName()); - GameRegistry.registerItem(ams_core_sing, ams_core_sing.getUnlocalizedName()); - GameRegistry.registerItem(ams_core_wormhole, ams_core_wormhole.getUnlocalizedName()); - GameRegistry.registerItem(ams_core_eyeofharmony, ams_core_eyeofharmony.getUnlocalizedName()); - GameRegistry.registerItem(ams_core_thingy, ams_core_thingy.getUnlocalizedName()); - - //Fusion Shields - GameRegistry.registerItem(fusion_shield_tungsten, fusion_shield_tungsten.getUnlocalizedName()); - GameRegistry.registerItem(fusion_shield_desh, fusion_shield_desh.getUnlocalizedName()); - GameRegistry.registerItem(fusion_shield_chlorophyte, fusion_shield_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(fusion_shield_vaporwave, fusion_shield_vaporwave.getUnlocalizedName()); - - //Breeding Rods - GameRegistry.registerItem(rod_empty, rod_empty.getUnlocalizedName()); - GameRegistry.registerItem(rod, rod.getUnlocalizedName()); - GameRegistry.registerItem(rod_dual_empty, rod_dual_empty.getUnlocalizedName()); - GameRegistry.registerItem(rod_dual, rod_dual.getUnlocalizedName()); - GameRegistry.registerItem(rod_quad_empty, rod_quad_empty.getUnlocalizedName()); - GameRegistry.registerItem(rod_quad, rod_quad.getUnlocalizedName()); - - //ZIRNOX parts - GameRegistry.registerItem(rod_zirnox_empty, rod_zirnox_empty.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_natural_uranium_fuel, rod_zirnox_natural_uranium_fuel.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_uranium_fuel, rod_zirnox_uranium_fuel.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_th232, rod_zirnox_th232.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_thorium_fuel, rod_zirnox_thorium_fuel.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_mox_fuel, rod_zirnox_mox_fuel.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_plutonium_fuel, rod_zirnox_plutonium_fuel.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_u233_fuel, rod_zirnox_u233_fuel.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_u235_fuel, rod_zirnox_u235_fuel.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_les_fuel, rod_zirnox_les_fuel.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_lithium, rod_zirnox_lithium.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_tritium, rod_zirnox_tritium.getUnlocalizedName()); - //GameRegistry.registerItem(rod_zirnox_zfb_mox, rod_zirnox_zfb_mox.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox, rod_zirnox.getUnlocalizedName()); - - GameRegistry.registerItem(rod_zirnox_natural_uranium_fuel_depleted, rod_zirnox_natural_uranium_fuel_depleted.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_uranium_fuel_depleted, rod_zirnox_uranium_fuel_depleted.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_thorium_fuel_depleted, rod_zirnox_thorium_fuel_depleted.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_mox_fuel_depleted, rod_zirnox_mox_fuel_depleted.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_plutonium_fuel_depleted, rod_zirnox_plutonium_fuel_depleted.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_u233_fuel_depleted, rod_zirnox_u233_fuel_depleted.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_u235_fuel_depleted, rod_zirnox_u235_fuel_depleted.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_les_fuel_depleted, rod_zirnox_les_fuel_depleted.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_zfb_mox_depleted, rod_zirnox_zfb_mox_depleted.getUnlocalizedName()); - - //Depleted Fuel - GameRegistry.registerItem(waste_natural_uranium, waste_natural_uranium.getUnlocalizedName()); - GameRegistry.registerItem(waste_uranium, waste_uranium.getUnlocalizedName()); - GameRegistry.registerItem(waste_thorium, waste_thorium.getUnlocalizedName()); - GameRegistry.registerItem(waste_mox, waste_mox.getUnlocalizedName()); - GameRegistry.registerItem(waste_plutonium, waste_plutonium.getUnlocalizedName()); - GameRegistry.registerItem(waste_u233, waste_u233.getUnlocalizedName()); - GameRegistry.registerItem(waste_u235, waste_u235.getUnlocalizedName()); - GameRegistry.registerItem(waste_schrabidium, waste_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(waste_zfb_mox, waste_zfb_mox.getUnlocalizedName()); - - GameRegistry.registerItem(waste_plate_u233, waste_plate_u233.getUnlocalizedName()); - GameRegistry.registerItem(waste_plate_u235, waste_plate_u235.getUnlocalizedName()); - GameRegistry.registerItem(waste_plate_mox, waste_plate_mox.getUnlocalizedName()); - GameRegistry.registerItem(waste_plate_pu239, waste_plate_pu239.getUnlocalizedName()); - GameRegistry.registerItem(waste_plate_ra226be, waste_plate_ra226be.getUnlocalizedName()); - GameRegistry.registerItem(waste_plate_sa326, waste_plate_sa326.getUnlocalizedName()); - GameRegistry.registerItem(waste_plate_pu238be, waste_plate_pu238be.getUnlocalizedName()); - - //Pile parts - GameRegistry.registerItem(pile_rod_uranium, pile_rod_uranium.getUnlocalizedName()); - GameRegistry.registerItem(pile_rod_pu239, pile_rod_pu239.getUnlocalizedName()); - GameRegistry.registerItem(pile_rod_plutonium, pile_rod_plutonium.getUnlocalizedName()); - GameRegistry.registerItem(pile_rod_source, pile_rod_source.getUnlocalizedName()); - GameRegistry.registerItem(pile_rod_boron, pile_rod_boron.getUnlocalizedName()); - GameRegistry.registerItem(pile_rod_lithium, pile_rod_lithium.getUnlocalizedName()); - GameRegistry.registerItem(pile_rod_detector, pile_rod_detector.getUnlocalizedName()); - - //Plate Fuels - GameRegistry.registerItem(plate_fuel_u233, plate_fuel_u233.getUnlocalizedName()); - GameRegistry.registerItem(plate_fuel_u235, plate_fuel_u235.getUnlocalizedName()); - GameRegistry.registerItem(plate_fuel_mox, plate_fuel_mox.getUnlocalizedName()); - GameRegistry.registerItem(plate_fuel_pu239, plate_fuel_pu239.getUnlocalizedName()); - GameRegistry.registerItem(plate_fuel_sa326, plate_fuel_sa326.getUnlocalizedName()); - GameRegistry.registerItem(plate_fuel_ra226be, plate_fuel_ra226be.getUnlocalizedName()); - GameRegistry.registerItem(plate_fuel_pu238be, plate_fuel_pu238be.getUnlocalizedName()); - - //PWR Parts - GameRegistry.registerItem(pwr_fuel, pwr_fuel.getUnlocalizedName()); - GameRegistry.registerItem(pwr_fuel_hot, pwr_fuel_hot.getUnlocalizedName()); - GameRegistry.registerItem(pwr_fuel_depleted, pwr_fuel_depleted.getUnlocalizedName()); - - //RBMK parts - GameRegistry.registerItem(rbmk_lid, rbmk_lid.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_lid_glass, rbmk_lid_glass.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_empty, rbmk_fuel_empty.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_ueu, rbmk_fuel_ueu.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_meu, rbmk_fuel_meu.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_heu233, rbmk_fuel_heu233.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_heu235, rbmk_fuel_heu235.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_thmeu, rbmk_fuel_thmeu.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_lep, rbmk_fuel_lep.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_mep, rbmk_fuel_mep.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_hep239, rbmk_fuel_hep239.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_hep241, rbmk_fuel_hep241.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_lea, rbmk_fuel_lea.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_mea, rbmk_fuel_mea.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_hea241, rbmk_fuel_hea241.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_hea242, rbmk_fuel_hea242.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_men, rbmk_fuel_men.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_hen, rbmk_fuel_hen.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_mox, rbmk_fuel_mox.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_les, rbmk_fuel_les.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_mes, rbmk_fuel_mes.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_hes, rbmk_fuel_hes.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_leaus, rbmk_fuel_leaus.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_heaus, rbmk_fuel_heaus.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_po210be, rbmk_fuel_po210be.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_ra226be, rbmk_fuel_ra226be.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_pu238be, rbmk_fuel_pu238be.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_balefire_gold, rbmk_fuel_balefire_gold.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_flashlead, rbmk_fuel_flashlead.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_balefire, rbmk_fuel_balefire.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_zfb_bismuth, rbmk_fuel_zfb_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_zfb_pu241, rbmk_fuel_zfb_pu241.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_zfb_am_mix, rbmk_fuel_zfb_am_mix.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_drx, rbmk_fuel_drx.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_fuel_test, rbmk_fuel_test.getUnlocalizedName()); - //GameRegistry.registerItem(rbmk_fuel_curve, rbmk_fuel_curve.getUnlocalizedName()); - - GameRegistry.registerItem(rbmk_pellet_ueu, rbmk_pellet_ueu.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_meu, rbmk_pellet_meu.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_heu233, rbmk_pellet_heu233.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_heu235, rbmk_pellet_heu235.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_thmeu, rbmk_pellet_thmeu.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_lep, rbmk_pellet_lep.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_mep, rbmk_pellet_mep.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_hep239, rbmk_pellet_hep239.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_hep241, rbmk_pellet_hep241.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_lea, rbmk_pellet_lea.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_mea, rbmk_pellet_mea.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_hea241, rbmk_pellet_hea241.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_hea242, rbmk_pellet_hea242.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_men, rbmk_pellet_men.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_hen, rbmk_pellet_hen.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_mox, rbmk_pellet_mox.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_les, rbmk_pellet_les.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_hes, rbmk_pellet_hes.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_leaus, rbmk_pellet_leaus.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_heaus, rbmk_pellet_heaus.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_po210be, rbmk_pellet_po210be.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_ra226be, rbmk_pellet_ra226be.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_pu238be, rbmk_pellet_pu238be.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_balefire_gold, rbmk_pellet_balefire_gold.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_flashlead, rbmk_pellet_flashlead.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_balefire, rbmk_pellet_balefire.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_zfb_bismuth, rbmk_pellet_zfb_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_zfb_pu241, rbmk_pellet_zfb_pu241.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_zfb_am_mix, rbmk_pellet_zfb_am_mix.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_pellet_drx, rbmk_pellet_drx.getUnlocalizedName()); - - GameRegistry.registerItem(watz_pellet, watz_pellet.getUnlocalizedName()); - GameRegistry.registerItem(watz_pellet_depleted, watz_pellet_depleted.getUnlocalizedName()); - - GameRegistry.registerItem(icf_pellet_empty, icf_pellet_empty.getUnlocalizedName()); - GameRegistry.registerItem(icf_pellet, icf_pellet.getUnlocalizedName()); - GameRegistry.registerItem(icf_pellet_depleted, icf_pellet_depleted.getUnlocalizedName()); - - GameRegistry.registerItem(debris_graphite, debris_graphite.getUnlocalizedName()); - GameRegistry.registerItem(debris_metal, debris_metal.getUnlocalizedName()); - GameRegistry.registerItem(debris_fuel, debris_fuel.getUnlocalizedName()); - GameRegistry.registerItem(debris_concrete, debris_concrete.getUnlocalizedName()); - GameRegistry.registerItem(debris_exchanger, debris_exchanger.getUnlocalizedName()); - GameRegistry.registerItem(debris_shrapnel, debris_shrapnel.getUnlocalizedName()); - GameRegistry.registerItem(debris_element, debris_element.getUnlocalizedName()); - GameRegistry.registerItem(undefined, undefined.getUnlocalizedName()); - - GameRegistry.registerItem(scrap_plastic, scrap_plastic.getUnlocalizedName()); - GameRegistry.registerItem(scrap, scrap.getUnlocalizedName()); - GameRegistry.registerItem(scrap_oil, scrap_oil.getUnlocalizedName()); - GameRegistry.registerItem(scrap_nuclear, scrap_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(trinitite, trinitite.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_long, nuclear_waste_long.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_long_tiny, nuclear_waste_long_tiny.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_short, nuclear_waste_short.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_short_tiny, nuclear_waste_short_tiny.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_long_depleted, nuclear_waste_long_depleted.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_long_depleted_tiny, nuclear_waste_long_depleted_tiny.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_short_depleted, nuclear_waste_short_depleted.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_short_depleted_tiny, nuclear_waste_short_depleted_tiny.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste, nuclear_waste.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_tiny, nuclear_waste_tiny.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_vitrified, nuclear_waste_vitrified.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_vitrified_tiny, nuclear_waste_vitrified_tiny.getUnlocalizedName()); - - //Spawners - GameRegistry.registerItem(spawn_chopper, spawn_chopper.getUnlocalizedName()); - GameRegistry.registerItem(spawn_worm, spawn_worm.getUnlocalizedName()); - GameRegistry.registerItem(spawn_ufo, spawn_ufo.getUnlocalizedName()); - GameRegistry.registerItem(spawn_duck, spawn_duck.getUnlocalizedName()); - - //Computer Tools - 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_chip, turret_chip.getUnlocalizedName()); - GameRegistry.registerItem(linker, linker.getUnlocalizedName()); - GameRegistry.registerItem(reactor_sensor, reactor_sensor.getUnlocalizedName()); - GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName()); - GameRegistry.registerItem(ore_density_scanner, ore_density_scanner.getUnlocalizedName()); - GameRegistry.registerItem(survey_scanner, survey_scanner.getUnlocalizedName()); - GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName()); - GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); - GameRegistry.registerItem(drone_linker, drone_linker.getUnlocalizedName()); - GameRegistry.registerItem(radar_linker, radar_linker.getUnlocalizedName()); - GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); - GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); - GameRegistry.registerItem(analysis_tool, analysis_tool.getUnlocalizedName()); - GameRegistry.registerItem(coupling_tool, coupling_tool.getUnlocalizedName()); - GameRegistry.registerItem(settings_tool, settings_tool.getUnlocalizedName()); - GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName()); - GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); - GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); - GameRegistry.registerItem(pollution_detector, pollution_detector.getUnlocalizedName()); - GameRegistry.registerItem(containment_box, containment_box.getUnlocalizedName()); - GameRegistry.registerItem(plastic_bag, plastic_bag.getUnlocalizedName()); - - GameRegistry.registerItem(ammo_bag, ammo_bag.getUnlocalizedName()); - GameRegistry.registerItem(ammo_bag_infinite, ammo_bag_infinite.getUnlocalizedName()); - GameRegistry.registerItem(casing_bag, casing_bag.getUnlocalizedName()); - - //Keys and Locks - GameRegistry.registerItem(key, key.getUnlocalizedName()); - GameRegistry.registerItem(key_red, key_red.getUnlocalizedName()); - GameRegistry.registerItem(key_red_cracked, key_red_cracked.getUnlocalizedName()); - GameRegistry.registerItem(key_kit, key_kit.getUnlocalizedName()); - GameRegistry.registerItem(key_fake, key_fake.getUnlocalizedName()); - GameRegistry.registerItem(mech_key, mech_key.getUnlocalizedName()); - GameRegistry.registerItem(pin, pin.getUnlocalizedName()); - GameRegistry.registerItem(padlock_rusty, padlock_rusty.getUnlocalizedName()); - GameRegistry.registerItem(padlock, padlock.getUnlocalizedName()); - GameRegistry.registerItem(padlock_reinforced, padlock_reinforced.getUnlocalizedName()); - GameRegistry.registerItem(padlock_unbreakable, padlock_unbreakable.getUnlocalizedName()); - GameRegistry.registerItem(launch_code_piece, launch_code_piece.getUnlocalizedName()); - GameRegistry.registerItem(launch_code, launch_code.getUnlocalizedName()); - GameRegistry.registerItem(launch_key, launch_key.getUnlocalizedName()); - - //Missiles - //Tier 0 - GameRegistry.registerItem(missile_test, missile_test.getUnlocalizedName()); - GameRegistry.registerItem(missile_taint, missile_taint.getUnlocalizedName()); - GameRegistry.registerItem(missile_micro, missile_micro.getUnlocalizedName()); - GameRegistry.registerItem(missile_bhole, missile_bhole.getUnlocalizedName()); - GameRegistry.registerItem(missile_schrabidium, missile_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(missile_emp, missile_emp.getUnlocalizedName()); - //Tier 1 - GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); - GameRegistry.registerItem(missile_decoy, missile_decoy.getUnlocalizedName()); - GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); - GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); - GameRegistry.registerItem(missile_stealth, missile_stealth.getUnlocalizedName()); - GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); - //Tier 2 - GameRegistry.registerItem(missile_strong, missile_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_incendiary_strong, missile_incendiary_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_cluster_strong, missile_cluster_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_buster_strong, missile_buster_strong.getUnlocalizedName()); - GameRegistry.registerItem(missile_emp_strong, missile_emp_strong.getUnlocalizedName()); - //Tier 3 - GameRegistry.registerItem(missile_burst, missile_burst.getUnlocalizedName()); - GameRegistry.registerItem(missile_inferno, missile_inferno.getUnlocalizedName()); - GameRegistry.registerItem(missile_rain, missile_rain.getUnlocalizedName()); - GameRegistry.registerItem(missile_drill, missile_drill.getUnlocalizedName()); - GameRegistry.registerItem(missile_shuttle, missile_shuttle.getUnlocalizedName()); - //Tier 4 - GameRegistry.registerItem(missile_nuclear, missile_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(missile_nuclear_cluster, missile_nuclear_cluster.getUnlocalizedName()); - GameRegistry.registerItem(missile_volcano, missile_volcano.getUnlocalizedName()); - GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName()); - GameRegistry.registerItem(missile_doomsday_rusted, missile_doomsday_rusted.getUnlocalizedName()); - //Rockets - GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); - GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName()); - GameRegistry.registerItem(missile_custom, missile_custom.getUnlocalizedName()); - - //Missile Parts - GameRegistry.registerItem(mp_thruster_10_kerosene, mp_thruster_10_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_10_kerosene_tec, mp_thruster_10_kerosene_tec.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_10_solid, mp_thruster_10_solid.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_10_xenon, mp_thruster_10_xenon.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_kerosene, mp_thruster_15_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_kerosene_tec, mp_thruster_15_kerosene_tec.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_kerosene_dual, mp_thruster_15_kerosene_dual.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_kerosene_triple, mp_thruster_15_kerosene_triple.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_solid, mp_thruster_15_solid.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_solid_hexdecuple, mp_thruster_15_solid_hexdecuple.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_hydrogen, mp_thruster_15_hydrogen.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_hydrogen_dual, mp_thruster_15_hydrogen_dual.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_balefire_short, mp_thruster_15_balefire_short.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_balefire, mp_thruster_15_balefire.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_balefire_large, mp_thruster_15_balefire_large.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_15_balefire_large_rad, mp_thruster_15_balefire_large_rad.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_20_kerosene, mp_thruster_20_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_20_kerosene_dual, mp_thruster_20_kerosene_dual.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_20_kerosene_triple, mp_thruster_20_kerosene_triple.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_20_solid, mp_thruster_20_solid.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_20_solid_multi, mp_thruster_20_solid_multi.getUnlocalizedName()); - GameRegistry.registerItem(mp_thruster_20_solid_multier, mp_thruster_20_solid_multier.getUnlocalizedName()); - GameRegistry.registerItem(mp_stability_10_flat, mp_stability_10_flat.getUnlocalizedName()); - GameRegistry.registerItem(mp_stability_10_cruise, mp_stability_10_cruise.getUnlocalizedName()); - GameRegistry.registerItem(mp_stability_10_space, mp_stability_10_space.getUnlocalizedName()); - GameRegistry.registerItem(mp_stability_15_flat, mp_stability_15_flat.getUnlocalizedName()); - GameRegistry.registerItem(mp_stability_15_thin, mp_stability_15_thin.getUnlocalizedName()); - GameRegistry.registerItem(mp_stability_15_soyuz, mp_stability_15_soyuz.getUnlocalizedName()); - GameRegistry.registerItem(mp_stability_20_flat, mp_stability_20_flat.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_kerosene, mp_fuselage_10_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_kerosene_camo, mp_fuselage_10_kerosene_camo.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_kerosene_desert, mp_fuselage_10_kerosene_desert.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_kerosene_sky, mp_fuselage_10_kerosene_sky.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_kerosene_flames, mp_fuselage_10_kerosene_flames.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_kerosene_insulation, mp_fuselage_10_kerosene_insulation.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_kerosene_sleek, mp_fuselage_10_kerosene_sleek.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_kerosene_metal, mp_fuselage_10_kerosene_metal.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_kerosene_taint, mp_fuselage_10_kerosene_taint.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_solid, mp_fuselage_10_solid.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_solid_flames, mp_fuselage_10_solid_flames.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_solid_insulation, mp_fuselage_10_solid_insulation.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_solid_sleek, mp_fuselage_10_solid_sleek.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_solid_soviet_glory, mp_fuselage_10_solid_soviet_glory.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_solid_cathedral, mp_fuselage_10_solid_cathedral.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_solid_moonlit, mp_fuselage_10_solid_moonlit.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_solid_battery, mp_fuselage_10_solid_battery.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_solid_duracell, mp_fuselage_10_solid_duracell.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_xenon, mp_fuselage_10_xenon.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_xenon_bhole, mp_fuselage_10_xenon_bhole.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene, mp_fuselage_10_long_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_camo, mp_fuselage_10_long_kerosene_camo.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_desert, mp_fuselage_10_long_kerosene_desert.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_sky, mp_fuselage_10_long_kerosene_sky.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_flames, mp_fuselage_10_long_kerosene_flames.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_insulation, mp_fuselage_10_long_kerosene_insulation.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_sleek, mp_fuselage_10_long_kerosene_sleek.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_metal, mp_fuselage_10_long_kerosene_metal.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_dash, mp_fuselage_10_long_kerosene_dash.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_taint, mp_fuselage_10_long_kerosene_taint.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_kerosene_vap, mp_fuselage_10_long_kerosene_vap.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_solid, mp_fuselage_10_long_solid.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_solid_flames, mp_fuselage_10_long_solid_flames.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_solid_insulation, mp_fuselage_10_long_solid_insulation.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_solid_sleek, mp_fuselage_10_long_solid_sleek.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_solid_soviet_glory, mp_fuselage_10_long_solid_soviet_glory.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_solid_bullet, mp_fuselage_10_long_solid_bullet.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_long_solid_silvermoonlight, mp_fuselage_10_long_solid_silvermoonlight.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_15_kerosene, mp_fuselage_10_15_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_15_solid, mp_fuselage_10_15_solid.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_15_hydrogen, mp_fuselage_10_15_hydrogen.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_10_15_balefire, mp_fuselage_10_15_balefire.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene, mp_fuselage_15_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_camo, mp_fuselage_15_kerosene_camo.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_desert, mp_fuselage_15_kerosene_desert.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_sky, mp_fuselage_15_kerosene_sky.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_insulation, mp_fuselage_15_kerosene_insulation.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_metal, mp_fuselage_15_kerosene_metal.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_decorated, mp_fuselage_15_kerosene_decorated.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_steampunk, mp_fuselage_15_kerosene_steampunk.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_polite, mp_fuselage_15_kerosene_polite.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_blackjack, mp_fuselage_15_kerosene_blackjack.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_lambda, mp_fuselage_15_kerosene_lambda.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_minuteman, mp_fuselage_15_kerosene_minuteman.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_pip, mp_fuselage_15_kerosene_pip.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_taint, mp_fuselage_15_kerosene_taint.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_kerosene_yuck, mp_fuselage_15_kerosene_yuck.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid, mp_fuselage_15_solid.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_insulation, mp_fuselage_15_solid_insulation.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_desh, mp_fuselage_15_solid_desh.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_soviet_glory, mp_fuselage_15_solid_soviet_glory.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_soviet_stank, mp_fuselage_15_solid_soviet_stank.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_faust, mp_fuselage_15_solid_faust.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_silvermoonlight, mp_fuselage_15_solid_silvermoonlight.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_snowy, mp_fuselage_15_solid_snowy.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_panorama, mp_fuselage_15_solid_panorama.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_roses, mp_fuselage_15_solid_roses.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_solid_mimi, mp_fuselage_15_solid_mimi.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_hydrogen, mp_fuselage_15_hydrogen.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_hydrogen_cathedral, mp_fuselage_15_hydrogen_cathedral.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_balefire, mp_fuselage_15_balefire.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_20_kerosene, mp_fuselage_15_20_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_20_kerosene_magnusson, mp_fuselage_15_20_kerosene_magnusson.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_15_20_solid, mp_fuselage_15_20_solid.getUnlocalizedName()); - GameRegistry.registerItem(mp_fuselage_20_kerosene, mp_fuselage_20_kerosene.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_10_he, mp_warhead_10_he.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_10_incendiary, mp_warhead_10_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_10_buster, mp_warhead_10_buster.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_10_nuclear, mp_warhead_10_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_10_nuclear_large, mp_warhead_10_nuclear_large.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_10_taint, mp_warhead_10_taint.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_10_cloud, mp_warhead_10_cloud.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_15_he, mp_warhead_15_he.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_15_incendiary, mp_warhead_15_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_15_nuclear, mp_warhead_15_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_15_nuclear_shark, mp_warhead_15_nuclear_shark.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_15_nuclear_mimi, mp_warhead_15_nuclear_mimi.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_15_boxcar, mp_warhead_15_boxcar.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_15_n2, mp_warhead_15_n2.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_15_balefire, mp_warhead_15_balefire.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_15_turbine, mp_warhead_15_turbine.getUnlocalizedName()); - GameRegistry.registerItem(mp_warhead_20_he, mp_warhead_20_he.getUnlocalizedName()); - GameRegistry.registerItem(mp_chip_1, mp_chip_1.getUnlocalizedName()); - GameRegistry.registerItem(mp_chip_2, mp_chip_2.getUnlocalizedName()); - GameRegistry.registerItem(mp_chip_3, mp_chip_3.getUnlocalizedName()); - GameRegistry.registerItem(mp_chip_4, mp_chip_4.getUnlocalizedName()); - GameRegistry.registerItem(mp_chip_5, mp_chip_5.getUnlocalizedName()); - - //Satellites - GameRegistry.registerItem(sat_mapper, sat_mapper.getUnlocalizedName()); - GameRegistry.registerItem(sat_scanner, sat_scanner.getUnlocalizedName()); - GameRegistry.registerItem(sat_radar, sat_radar.getUnlocalizedName()); - GameRegistry.registerItem(sat_laser, sat_laser.getUnlocalizedName()); - GameRegistry.registerItem(sat_foeq, sat_foeq.getUnlocalizedName()); - GameRegistry.registerItem(sat_resonator, sat_resonator.getUnlocalizedName()); - GameRegistry.registerItem(sat_miner, sat_miner.getUnlocalizedName()); - GameRegistry.registerItem(sat_lunar_miner, sat_lunar_miner.getUnlocalizedName()); - GameRegistry.registerItem(sat_gerald, sat_gerald.getUnlocalizedName()); - GameRegistry.registerItem(sat_chip, sat_chip.getUnlocalizedName()); - GameRegistry.registerItem(sat_interface, sat_interface.getUnlocalizedName()); - GameRegistry.registerItem(sat_coord, sat_coord.getUnlocalizedName()); - GameRegistry.registerItem(sat_designator, sat_designator.getUnlocalizedName()); - GameRegistry.registerItem(sat_relay, sat_relay.getUnlocalizedName()); - - //Guns - GameRegistry.registerItem(gun_b92, gun_b92.getUnlocalizedName()); - GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName()); - GameRegistry.registerItem(crucible, crucible.getUnlocalizedName()); - - GameRegistry.registerItem(gun_debug, gun_debug.getUnlocalizedName()); - GameRegistry.registerItem(ammo_debug, ammo_debug.getUnlocalizedName()); - - GameRegistry.registerItem(gun_pepperbox, gun_pepperbox.getUnlocalizedName()); - GameRegistry.registerItem(gun_light_revolver, gun_light_revolver.getUnlocalizedName()); - GameRegistry.registerItem(gun_light_revolver_atlas, gun_light_revolver_atlas.getUnlocalizedName()); - GameRegistry.registerItem(gun_light_revolver_dani, gun_light_revolver_dani.getUnlocalizedName()); - GameRegistry.registerItem(gun_henry, gun_henry.getUnlocalizedName()); - GameRegistry.registerItem(gun_henry_lincoln, gun_henry_lincoln.getUnlocalizedName()); - GameRegistry.registerItem(gun_greasegun, gun_greasegun.getUnlocalizedName()); - GameRegistry.registerItem(gun_maresleg, gun_maresleg.getUnlocalizedName()); - GameRegistry.registerItem(gun_maresleg_akimbo, gun_maresleg_akimbo.getUnlocalizedName()); - GameRegistry.registerItem(gun_maresleg_broken, gun_maresleg_broken.getUnlocalizedName()); - GameRegistry.registerItem(gun_flaregun, gun_flaregun.getUnlocalizedName()); - GameRegistry.registerItem(gun_heavy_revolver, gun_heavy_revolver.getUnlocalizedName()); - GameRegistry.registerItem(gun_heavy_revolver_lilmac, gun_heavy_revolver_lilmac.getUnlocalizedName()); - GameRegistry.registerItem(gun_heavy_revolver_protege, gun_heavy_revolver_protege.getUnlocalizedName()); - GameRegistry.registerItem(gun_carbine, gun_carbine.getUnlocalizedName()); - GameRegistry.registerItem(gun_am180, gun_am180.getUnlocalizedName()); - GameRegistry.registerItem(gun_liberator, gun_liberator.getUnlocalizedName()); - GameRegistry.registerItem(gun_congolake, gun_congolake.getUnlocalizedName()); - GameRegistry.registerItem(gun_flamer, gun_flamer.getUnlocalizedName()); - GameRegistry.registerItem(gun_flamer_topaz, gun_flamer_topaz.getUnlocalizedName()); - GameRegistry.registerItem(gun_flamer_daybreaker, gun_flamer_daybreaker.getUnlocalizedName()); - GameRegistry.registerItem(gun_uzi, gun_uzi.getUnlocalizedName()); - GameRegistry.registerItem(gun_uzi_akimbo, gun_uzi_akimbo.getUnlocalizedName()); - GameRegistry.registerItem(gun_spas12, gun_spas12.getUnlocalizedName()); - GameRegistry.registerItem(gun_panzerschreck, gun_panzerschreck.getUnlocalizedName()); - GameRegistry.registerItem(gun_g3, gun_g3.getUnlocalizedName()); - GameRegistry.registerItem(gun_g3_zebra, gun_g3_zebra.getUnlocalizedName()); - GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); - GameRegistry.registerItem(gun_chemthrower, gun_chemthrower.getUnlocalizedName()); - GameRegistry.registerItem(gun_m2, gun_m2.getUnlocalizedName()); - GameRegistry.registerItem(gun_autoshotgun, gun_autoshotgun.getUnlocalizedName()); - GameRegistry.registerItem(gun_autoshotgun_shredder, gun_autoshotgun_shredder.getUnlocalizedName()); - GameRegistry.registerItem(gun_autoshotgun_sexy, gun_autoshotgun_sexy.getUnlocalizedName()); - GameRegistry.registerItem(gun_quadro, gun_quadro.getUnlocalizedName()); - GameRegistry.registerItem(gun_lag, gun_lag.getUnlocalizedName()); - GameRegistry.registerItem(gun_minigun, gun_minigun.getUnlocalizedName()); - GameRegistry.registerItem(gun_minigun_dual, gun_minigun_dual.getUnlocalizedName()); - GameRegistry.registerItem(gun_minigun_lacunae, gun_minigun_lacunae.getUnlocalizedName()); - GameRegistry.registerItem(gun_missile_launcher, gun_missile_launcher.getUnlocalizedName()); - GameRegistry.registerItem(gun_tesla_cannon, gun_tesla_cannon.getUnlocalizedName()); - GameRegistry.registerItem(gun_laser_pistol, gun_laser_pistol.getUnlocalizedName()); - GameRegistry.registerItem(gun_laser_pistol_pew_pew, gun_laser_pistol_pew_pew.getUnlocalizedName()); - GameRegistry.registerItem(gun_laser_pistol_morning_glory, gun_laser_pistol_morning_glory.getUnlocalizedName()); - GameRegistry.registerItem(gun_stg77, gun_stg77.getUnlocalizedName()); - GameRegistry.registerItem(gun_tau, gun_tau.getUnlocalizedName()); - GameRegistry.registerItem(gun_fatman, gun_fatman.getUnlocalizedName()); - GameRegistry.registerItem(gun_lasrifle, gun_lasrifle.getUnlocalizedName()); - GameRegistry.registerItem(gun_coilgun, gun_coilgun.getUnlocalizedName()); - GameRegistry.registerItem(gun_hangman, gun_hangman.getUnlocalizedName()); - GameRegistry.registerItem(gun_mas36, gun_mas36.getUnlocalizedName()); - GameRegistry.registerItem(gun_bolter, gun_bolter.getUnlocalizedName()); - GameRegistry.registerItem(gun_folly, gun_folly.getUnlocalizedName()); - GameRegistry.registerItem(gun_aberrator, gun_aberrator.getUnlocalizedName()); - GameRegistry.registerItem(gun_aberrator_eott, gun_aberrator_eott.getUnlocalizedName()); - GameRegistry.registerItem(gun_double_barrel, gun_double_barrel.getUnlocalizedName()); - GameRegistry.registerItem(gun_double_barrel_sacred_dragon, gun_double_barrel_sacred_dragon.getUnlocalizedName()); - - GameRegistry.registerItem(gun_charge_thrower, gun_charge_thrower.getUnlocalizedName()); - - GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName()); - GameRegistry.registerItem(ammo_secret, ammo_secret.getUnlocalizedName()); - - GameRegistry.registerItem(weapon_mod_test, weapon_mod_test.getUnlocalizedName()); - GameRegistry.registerItem(weapon_mod_generic, weapon_mod_generic.getUnlocalizedName()); - GameRegistry.registerItem(weapon_mod_special, weapon_mod_special.getUnlocalizedName()); - GameRegistry.registerItem(weapon_mod_caliber, weapon_mod_caliber.getUnlocalizedName()); - - //Ammo - GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); - - GameRegistry.registerItem(ammo_fireext, ammo_fireext.getUnlocalizedName()); - GameRegistry.registerItem(ammo_shell, ammo_shell.getUnlocalizedName()); - GameRegistry.registerItem(ammo_dgk, ammo_dgk.getUnlocalizedName()); - GameRegistry.registerItem(ammo_arty, ammo_arty.getUnlocalizedName()); - GameRegistry.registerItem(ammo_himars, ammo_himars.getUnlocalizedName()); - - GameRegistry.registerItem(ammo_container, ammo_container.getUnlocalizedName()); - - //Grenades - GameRegistry.registerItem(stick_dynamite, stick_dynamite.getUnlocalizedName()); //heave-ho! - GameRegistry.registerItem(stick_dynamite_fishing, stick_dynamite_fishing.getUnlocalizedName()); - GameRegistry.registerItem(stick_tnt, stick_tnt.getUnlocalizedName()); - GameRegistry.registerItem(stick_semtex, stick_semtex.getUnlocalizedName()); - GameRegistry.registerItem(stick_c4, stick_c4.getUnlocalizedName()); - GameRegistry.registerItem(grenade_generic, grenade_generic.getUnlocalizedName()); - GameRegistry.registerItem(grenade_strong, grenade_strong.getUnlocalizedName()); - GameRegistry.registerItem(grenade_frag, grenade_frag.getUnlocalizedName()); - GameRegistry.registerItem(grenade_fire, grenade_fire.getUnlocalizedName()); - GameRegistry.registerItem(grenade_shrapnel, grenade_shrapnel.getUnlocalizedName()); - GameRegistry.registerItem(grenade_cluster, grenade_cluster.getUnlocalizedName()); - GameRegistry.registerItem(grenade_flare, grenade_flare.getUnlocalizedName()); - GameRegistry.registerItem(grenade_electric, grenade_electric.getUnlocalizedName()); - GameRegistry.registerItem(grenade_poison, grenade_poison.getUnlocalizedName()); - GameRegistry.registerItem(grenade_gas, grenade_gas.getUnlocalizedName()); - GameRegistry.registerItem(grenade_cloud, grenade_cloud.getUnlocalizedName()); - GameRegistry.registerItem(grenade_pink_cloud, grenade_pink_cloud.getUnlocalizedName()); - GameRegistry.registerItem(grenade_smart, grenade_smart.getUnlocalizedName()); - GameRegistry.registerItem(grenade_mirv, grenade_mirv.getUnlocalizedName()); - GameRegistry.registerItem(grenade_breach, grenade_breach.getUnlocalizedName()); - GameRegistry.registerItem(grenade_burst, grenade_burst.getUnlocalizedName()); - GameRegistry.registerItem(grenade_pulse, grenade_pulse.getUnlocalizedName()); - GameRegistry.registerItem(grenade_plasma, grenade_plasma.getUnlocalizedName()); - GameRegistry.registerItem(grenade_tau, grenade_tau.getUnlocalizedName()); - GameRegistry.registerItem(grenade_schrabidium, grenade_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(grenade_nuke, grenade_nuke.getUnlocalizedName()); - GameRegistry.registerItem(grenade_lemon, grenade_lemon.getUnlocalizedName()); - GameRegistry.registerItem(grenade_gascan, grenade_gascan.getUnlocalizedName()); - GameRegistry.registerItem(grenade_kyiv, grenade_kyiv.getUnlocalizedName()); - GameRegistry.registerItem(grenade_mk2, grenade_mk2.getUnlocalizedName()); - GameRegistry.registerItem(grenade_aschrab, grenade_aschrab.getUnlocalizedName()); - GameRegistry.registerItem(grenade_nuclear, grenade_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(grenade_zomg, grenade_zomg.getUnlocalizedName()); - GameRegistry.registerItem(grenade_black_hole, grenade_black_hole.getUnlocalizedName()); - - GameRegistry.registerItem(grenade_if_generic, grenade_if_generic.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_he, grenade_if_he.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_bouncy, grenade_if_bouncy.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_sticky, grenade_if_sticky.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_impact, grenade_if_impact.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_incendiary, grenade_if_incendiary.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_toxic, grenade_if_toxic.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_concussion, grenade_if_concussion.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_brimstone, grenade_if_brimstone.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_mystery, grenade_if_mystery.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_spark, grenade_if_spark.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_hopwire, grenade_if_hopwire.getUnlocalizedName()); - GameRegistry.registerItem(grenade_if_null, grenade_if_null.getUnlocalizedName()); - GameRegistry.registerItem(nuclear_waste_pearl, nuclear_waste_pearl.getUnlocalizedName()); - - //Disperser Canister - GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); - GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); - GameRegistry.registerItem(glyphid_gland_empty, glyphid_gland_empty.getUnlocalizedName()); - GameRegistry.registerItem(glyphid_gland, glyphid_gland.getUnlocalizedName()); - - GameRegistry.registerItem(ullapool_caber, ullapool_caber.getUnlocalizedName()); - GameRegistry.registerItem(weaponized_starblaster_cell, weaponized_starblaster_cell.getUnlocalizedName()); - - //Capes - GameRegistry.registerItem(cape_radiation, cape_radiation.getUnlocalizedName()); - GameRegistry.registerItem(cape_gasmask, cape_gasmask.getUnlocalizedName()); - GameRegistry.registerItem(cape_schrabidium, cape_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(cape_hidden, cape_hidden.getUnlocalizedName()); - - //Tools - GameRegistry.registerItem(dwarven_pickaxe, dwarven_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_hammer, schrabidium_hammer.getUnlocalizedName()); - GameRegistry.registerItem(shimmer_sledge, shimmer_sledge.getUnlocalizedName()); - GameRegistry.registerItem(shimmer_axe, shimmer_axe.getUnlocalizedName()); - GameRegistry.registerItem(wood_gavel, wood_gavel.getUnlocalizedName()); - GameRegistry.registerItem(lead_gavel, lead_gavel.getUnlocalizedName()); - GameRegistry.registerItem(diamond_gavel, diamond_gavel.getUnlocalizedName()); - GameRegistry.registerItem(mese_gavel, mese_gavel.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_pickaxe, schrabidium_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_axe, schrabidium_axe.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_shovel, schrabidium_shovel.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_hoe, schrabidium_hoe.getUnlocalizedName()); - GameRegistry.registerItem(steel_sword, steel_sword.getUnlocalizedName()); - GameRegistry.registerItem(steel_pickaxe, steel_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(steel_axe, steel_axe.getUnlocalizedName()); - GameRegistry.registerItem(steel_shovel, steel_shovel.getUnlocalizedName()); - GameRegistry.registerItem(steel_hoe, steel_hoe.getUnlocalizedName()); - GameRegistry.registerItem(titanium_sword, titanium_sword.getUnlocalizedName()); - GameRegistry.registerItem(titanium_pickaxe, titanium_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(titanium_axe, titanium_axe.getUnlocalizedName()); - GameRegistry.registerItem(titanium_shovel, titanium_shovel.getUnlocalizedName()); - GameRegistry.registerItem(titanium_hoe, titanium_hoe.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_sword, cobalt_sword.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_pickaxe, cobalt_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_axe, cobalt_axe.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_shovel, cobalt_shovel.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_hoe, cobalt_hoe.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_decorated_sword, cobalt_decorated_sword.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_decorated_pickaxe, cobalt_decorated_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_decorated_axe, cobalt_decorated_axe.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_decorated_shovel, cobalt_decorated_shovel.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_decorated_hoe, cobalt_decorated_hoe.getUnlocalizedName()); - GameRegistry.registerItem(starmetal_sword, starmetal_sword.getUnlocalizedName()); - GameRegistry.registerItem(starmetal_pickaxe, starmetal_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(starmetal_axe, starmetal_axe.getUnlocalizedName()); - GameRegistry.registerItem(starmetal_shovel, starmetal_shovel.getUnlocalizedName()); - GameRegistry.registerItem(starmetal_hoe, starmetal_hoe.getUnlocalizedName()); - GameRegistry.registerItem(alloy_sword, alloy_sword.getUnlocalizedName()); - GameRegistry.registerItem(alloy_pickaxe, alloy_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(alloy_axe, alloy_axe.getUnlocalizedName()); - GameRegistry.registerItem(alloy_shovel, alloy_shovel.getUnlocalizedName()); - GameRegistry.registerItem(alloy_hoe, alloy_hoe.getUnlocalizedName()); - GameRegistry.registerItem(cmb_sword, cmb_sword.getUnlocalizedName()); - GameRegistry.registerItem(cmb_pickaxe, cmb_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(cmb_axe, cmb_axe.getUnlocalizedName()); - GameRegistry.registerItem(cmb_shovel, cmb_shovel.getUnlocalizedName()); - GameRegistry.registerItem(cmb_hoe, cmb_hoe.getUnlocalizedName()); - GameRegistry.registerItem(desh_sword, desh_sword.getUnlocalizedName()); - GameRegistry.registerItem(desh_pickaxe, desh_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(desh_axe, desh_axe.getUnlocalizedName()); - GameRegistry.registerItem(desh_shovel, desh_shovel.getUnlocalizedName()); - GameRegistry.registerItem(desh_hoe, desh_hoe.getUnlocalizedName()); - GameRegistry.registerItem(elec_sword, elec_sword.getUnlocalizedName()); - GameRegistry.registerItem(elec_pickaxe, elec_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(elec_axe, elec_axe.getUnlocalizedName()); - GameRegistry.registerItem(elec_shovel, elec_shovel.getUnlocalizedName()); - GameRegistry.registerItem(dnt_sword, dnt_sword.getUnlocalizedName()); - GameRegistry.registerItem(smashing_hammer, smashing_hammer.getUnlocalizedName()); - GameRegistry.registerItem(centri_stick, centri_stick.getUnlocalizedName()); - GameRegistry.registerItem(drax, drax.getUnlocalizedName()); - GameRegistry.registerItem(drax_mk2, drax_mk2.getUnlocalizedName()); - GameRegistry.registerItem(drax_mk3, drax_mk3.getUnlocalizedName()); - GameRegistry.registerItem(bismuth_pickaxe, bismuth_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(bismuth_axe, bismuth_axe.getUnlocalizedName()); - GameRegistry.registerItem(volcanic_pickaxe, volcanic_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(volcanic_axe, volcanic_axe.getUnlocalizedName()); - GameRegistry.registerItem(chlorophyte_pickaxe, chlorophyte_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(chlorophyte_axe, chlorophyte_axe.getUnlocalizedName()); - GameRegistry.registerItem(mese_pickaxe, mese_pickaxe.getUnlocalizedName()); - GameRegistry.registerItem(mese_axe, mese_axe.getUnlocalizedName()); GameRegistry.registerItem(matchstick, matchstick.getUnlocalizedName()); - GameRegistry.registerItem(balefire_and_steel, balefire_and_steel.getUnlocalizedName()); - GameRegistry.registerItem(crowbar, crowbar.getUnlocalizedName()); - GameRegistry.registerItem(wrench, wrench.getUnlocalizedName()); - GameRegistry.registerItem(wrench_archineer, wrench_archineer.getUnlocalizedName()); - GameRegistry.registerItem(wrench_flipped, wrench_flipped.getUnlocalizedName()); - GameRegistry.registerItem(memespoon, memespoon.getUnlocalizedName()); - GameRegistry.registerItem(saw, saw.getUnlocalizedName()); - GameRegistry.registerItem(bat, bat.getUnlocalizedName()); - GameRegistry.registerItem(bat_nail, bat_nail.getUnlocalizedName()); - GameRegistry.registerItem(golf_club, golf_club.getUnlocalizedName()); - GameRegistry.registerItem(pipe_rusty, pipe_rusty.getUnlocalizedName()); - GameRegistry.registerItem(pipe_lead, pipe_lead.getUnlocalizedName()); - GameRegistry.registerItem(reer_graar, reer_graar.getUnlocalizedName()); - GameRegistry.registerItem(stopsign, stopsign.getUnlocalizedName()); - GameRegistry.registerItem(sopsign, sopsign.getUnlocalizedName()); - GameRegistry.registerItem(chernobylsign, chernobylsign.getUnlocalizedName()); - - GameRegistry.registerItem(meteorite_sword, meteorite_sword.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_seared, meteorite_sword_seared.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_reforged, meteorite_sword_reforged.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_hardened, meteorite_sword_hardened.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_alloyed, meteorite_sword_alloyed.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_machined, meteorite_sword_machined.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_treated, meteorite_sword_treated.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_etched, meteorite_sword_etched.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_bred, meteorite_sword_bred.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_irradiated, meteorite_sword_irradiated.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_fused, meteorite_sword_fused.getUnlocalizedName()); - GameRegistry.registerItem(meteorite_sword_baleful, meteorite_sword_baleful.getUnlocalizedName()); - - //Multitool - GameRegistry.registerItem(multitool_hit, multitool_hit.getUnlocalizedName()); - GameRegistry.registerItem(multitool_dig, multitool_dig.getUnlocalizedName()); - GameRegistry.registerItem(multitool_silk, multitool_silk.getUnlocalizedName()); - GameRegistry.registerItem(multitool_ext, multitool_ext.getUnlocalizedName()); - GameRegistry.registerItem(multitool_miner, multitool_miner.getUnlocalizedName()); - GameRegistry.registerItem(multitool_beam, multitool_beam.getUnlocalizedName()); - GameRegistry.registerItem(multitool_sky, multitool_sky.getUnlocalizedName()); - GameRegistry.registerItem(multitool_mega, multitool_mega.getUnlocalizedName()); - GameRegistry.registerItem(multitool_joule, multitool_joule.getUnlocalizedName()); - GameRegistry.registerItem(multitool_decon, multitool_decon.getUnlocalizedName()); - - //Syringes & Pills - GameRegistry.registerItem(syringe_empty, syringe_empty.getUnlocalizedName()); - GameRegistry.registerItem(syringe_antidote, syringe_antidote.getUnlocalizedName()); - GameRegistry.registerItem(syringe_poison, syringe_poison.getUnlocalizedName()); - GameRegistry.registerItem(syringe_awesome, syringe_awesome.getUnlocalizedName()); - GameRegistry.registerItem(syringe_metal_empty, syringe_metal_empty.getUnlocalizedName()); - GameRegistry.registerItem(syringe_metal_stimpak, syringe_metal_stimpak.getUnlocalizedName()); - GameRegistry.registerItem(syringe_metal_medx, syringe_metal_medx.getUnlocalizedName()); - GameRegistry.registerItem(syringe_metal_psycho, syringe_metal_psycho.getUnlocalizedName()); - GameRegistry.registerItem(syringe_metal_super, syringe_metal_super.getUnlocalizedName()); - GameRegistry.registerItem(syringe_taint, syringe_taint.getUnlocalizedName()); - GameRegistry.registerItem(syringe_mkunicorn, syringe_mkunicorn.getUnlocalizedName()); - GameRegistry.registerItem(med_bag, med_bag.getUnlocalizedName()); - GameRegistry.registerItem(iv_empty, iv_empty.getUnlocalizedName()); - GameRegistry.registerItem(iv_blood, iv_blood.getUnlocalizedName()); - GameRegistry.registerItem(iv_xp_empty, iv_xp_empty.getUnlocalizedName()); - GameRegistry.registerItem(iv_xp, iv_xp.getUnlocalizedName()); - GameRegistry.registerItem(radaway, radaway.getUnlocalizedName()); - GameRegistry.registerItem(radaway_strong, radaway_strong.getUnlocalizedName()); - GameRegistry.registerItem(radaway_flush, radaway_flush.getUnlocalizedName()); - GameRegistry.registerItem(radx, radx.getUnlocalizedName()); - GameRegistry.registerItem(siox, siox.getUnlocalizedName()); - GameRegistry.registerItem(pill_herbal, pill_herbal.getUnlocalizedName()); - GameRegistry.registerItem(pill_iodine, pill_iodine.getUnlocalizedName()); - GameRegistry.registerItem(xanax, xanax.getUnlocalizedName()); - GameRegistry.registerItem(fmn, fmn.getUnlocalizedName()); - GameRegistry.registerItem(five_htp, five_htp.getUnlocalizedName()); - GameRegistry.registerItem(plan_c, plan_c.getUnlocalizedName()); - GameRegistry.registerItem(pill_red, pill_red.getUnlocalizedName()); - GameRegistry.registerItem(stealth_boy, stealth_boy.getUnlocalizedName()); - GameRegistry.registerItem(gas_mask_filter, gas_mask_filter.getUnlocalizedName()); - GameRegistry.registerItem(gas_mask_filter_mono, gas_mask_filter_mono.getUnlocalizedName()); - GameRegistry.registerItem(gas_mask_filter_combo, gas_mask_filter_combo.getUnlocalizedName()); - GameRegistry.registerItem(gas_mask_filter_rag, gas_mask_filter_rag.getUnlocalizedName()); - GameRegistry.registerItem(gas_mask_filter_piss, gas_mask_filter_piss.getUnlocalizedName()); - GameRegistry.registerItem(jetpack_tank, jetpack_tank.getUnlocalizedName()); - GameRegistry.registerItem(gun_kit_1, gun_kit_1.getUnlocalizedName()); - GameRegistry.registerItem(gun_kit_2, gun_kit_2.getUnlocalizedName()); - - //Food - GameRegistry.registerItem(bomb_waffle, bomb_waffle.getUnlocalizedName()); - GameRegistry.registerItem(schnitzel_vegan, schnitzel_vegan.getUnlocalizedName()); - GameRegistry.registerItem(cotton_candy, cotton_candy.getUnlocalizedName()); - GameRegistry.registerItem(apple_lead, apple_lead.getUnlocalizedName()); - GameRegistry.registerItem(apple_schrabidium, apple_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(tem_flakes, tem_flakes.getUnlocalizedName()); - GameRegistry.registerItem(glowing_stew, glowing_stew.getUnlocalizedName()); - GameRegistry.registerItem(balefire_scrambled, balefire_scrambled.getUnlocalizedName()); - GameRegistry.registerItem(balefire_and_ham, balefire_and_ham.getUnlocalizedName()); - GameRegistry.registerItem(lemon, lemon.getUnlocalizedName()); - GameRegistry.registerItem(definitelyfood, definitelyfood.getUnlocalizedName()); - GameRegistry.registerItem(loops, loops.getUnlocalizedName()); - GameRegistry.registerItem(loop_stew, loop_stew.getUnlocalizedName()); - GameRegistry.registerItem(spongebob_macaroni, spongebob_macaroni.getUnlocalizedName()); - GameRegistry.registerItem(fooditem, fooditem.getUnlocalizedName()); - GameRegistry.registerItem(twinkie, twinkie.getUnlocalizedName()); - GameRegistry.registerItem(static_sandwich, static_sandwich.getUnlocalizedName()); - GameRegistry.registerItem(pudding, pudding.getUnlocalizedName()); - GameRegistry.registerItem(pancake, pancake.getUnlocalizedName()); - GameRegistry.registerItem(nugget, nugget.getUnlocalizedName()); - GameRegistry.registerItem(peas, peas.getUnlocalizedName()); - GameRegistry.registerItem(marshmallow, marshmallow.getUnlocalizedName()); - GameRegistry.registerItem(cheese, cheese.getUnlocalizedName()); - GameRegistry.registerItem(quesadilla, quesadilla.getUnlocalizedName()); - GameRegistry.registerItem(glyphid_meat, glyphid_meat.getUnlocalizedName()); - GameRegistry.registerItem(glyphid_meat_grilled, glyphid_meat_grilled.getUnlocalizedName()); - GameRegistry.registerItem(egg_glyphid, egg_glyphid.getUnlocalizedName()); - GameRegistry.registerItem(med_ipecac, med_ipecac.getUnlocalizedName()); - GameRegistry.registerItem(med_ptsd, med_ptsd.getUnlocalizedName()); - GameRegistry.registerItem(canteen_vodka, canteen_vodka.getUnlocalizedName()); - GameRegistry.registerItem(canteen_fab, canteen_fab.getUnlocalizedName()); - GameRegistry.registerItem(mucho_mango, mucho_mango.getUnlocalizedName()); - GameRegistry.registerItem(chocolate, chocolate.getUnlocalizedName()); - - //Energy Drinks - GameRegistry.registerItem(can_empty, can_empty.getUnlocalizedName()); - GameRegistry.registerItem(can_smart, can_smart.getUnlocalizedName()); - GameRegistry.registerItem(can_creature, can_creature.getUnlocalizedName()); - GameRegistry.registerItem(can_redbomb, can_redbomb.getUnlocalizedName()); - GameRegistry.registerItem(can_mrsugar, can_mrsugar.getUnlocalizedName()); - GameRegistry.registerItem(can_overcharge, can_overcharge.getUnlocalizedName()); - GameRegistry.registerItem(can_luna, can_luna.getUnlocalizedName()); - GameRegistry.registerItem(can_bepis, can_bepis.getUnlocalizedName()); - GameRegistry.registerItem(can_breen, can_breen.getUnlocalizedName()); - GameRegistry.registerItem(can_mug, can_mug.getUnlocalizedName()); - - //Coffee - GameRegistry.registerItem(coffee, coffee.getUnlocalizedName()); - GameRegistry.registerItem(coffee_radium, coffee_radium.getUnlocalizedName()); - - //Cola - GameRegistry.registerItem(bottle_empty, bottle_empty.getUnlocalizedName()); - GameRegistry.registerItem(bottle_nuka, bottle_nuka.getUnlocalizedName()); - GameRegistry.registerItem(bottle_cherry, bottle_cherry.getUnlocalizedName()); - GameRegistry.registerItem(bottle_quantum, bottle_quantum.getUnlocalizedName()); - GameRegistry.registerItem(bottle_sparkle, bottle_sparkle.getUnlocalizedName()); - GameRegistry.registerItem(bottle_rad, bottle_rad.getUnlocalizedName()); - GameRegistry.registerItem(bottle2_empty, bottle2_empty.getUnlocalizedName()); - GameRegistry.registerItem(bottle2_korl, bottle2_korl.getUnlocalizedName()); - GameRegistry.registerItem(bottle2_fritz, bottle2_fritz.getUnlocalizedName()); - GameRegistry.registerItem(bottle2_korl_special, bottle2_korl_special.getUnlocalizedName()); - GameRegistry.registerItem(bottle2_fritz_special, bottle2_fritz_special.getUnlocalizedName()); - GameRegistry.registerItem(bottle_opener, bottle_opener.getUnlocalizedName()); - - //Flasks - GameRegistry.registerItem(flask_infusion, flask_infusion.getUnlocalizedName()); - - //Canned Food - GameRegistry.registerItem(canned_conserve, canned_conserve.getUnlocalizedName()); - - //Money - GameRegistry.registerItem(cap_nuka, cap_nuka.getUnlocalizedName()); - GameRegistry.registerItem(cap_quantum, cap_quantum.getUnlocalizedName()); - GameRegistry.registerItem(cap_sparkle, cap_sparkle.getUnlocalizedName()); - GameRegistry.registerItem(cap_rad, cap_rad.getUnlocalizedName()); - GameRegistry.registerItem(cap_korl, cap_korl.getUnlocalizedName()); - GameRegistry.registerItem(cap_fritz, cap_fritz.getUnlocalizedName()); - GameRegistry.registerItem(ring_pull, ring_pull.getUnlocalizedName()); - GameRegistry.registerItem(can_key, can_key.getUnlocalizedName()); - GameRegistry.registerItem(coin_creeper, coin_creeper.getUnlocalizedName()); - GameRegistry.registerItem(coin_radiation,coin_radiation.getUnlocalizedName()); - GameRegistry.registerItem(coin_maskman, coin_maskman.getUnlocalizedName()); - GameRegistry.registerItem(coin_worm, coin_worm.getUnlocalizedName()); - GameRegistry.registerItem(coin_ufo, coin_ufo.getUnlocalizedName()); - GameRegistry.registerItem(medal_liquidator, medal_liquidator.getUnlocalizedName()); - GameRegistry.registerItem(bottled_cloud, bottled_cloud.getUnlocalizedName()); - GameRegistry.registerItem(protection_charm, protection_charm.getUnlocalizedName()); - GameRegistry.registerItem(meteor_charm, meteor_charm.getUnlocalizedName()); - GameRegistry.registerItem(neutrino_lens, neutrino_lens.getUnlocalizedName()); - GameRegistry.registerItem(gas_tester, gas_tester.getUnlocalizedName()); - GameRegistry.registerItem(defuser_gold, defuser_gold.getUnlocalizedName()); - GameRegistry.registerItem(ballistic_gauntlet, ballistic_gauntlet.getUnlocalizedName()); - GameRegistry.registerItem(night_vision, night_vision.getUnlocalizedName()); - GameRegistry.registerItem(card_aos, card_aos.getUnlocalizedName()); - GameRegistry.registerItem(card_qos, card_qos.getUnlocalizedName()); - GameRegistry.registerItem(australium_iii, australium_iii.getUnlocalizedName()); - GameRegistry.registerItem(armor_battery, armor_battery.getUnlocalizedName()); - GameRegistry.registerItem(armor_battery_mk2, armor_battery_mk2.getUnlocalizedName()); - GameRegistry.registerItem(armor_battery_mk3, armor_battery_mk3.getUnlocalizedName()); - - //Chaos - GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); - GameRegistry.registerItem(cbt_device, cbt_device.getUnlocalizedName()); - GameRegistry.registerItem(cigarette, cigarette.getUnlocalizedName()); - GameRegistry.registerItem(crackpipe, crackpipe.getUnlocalizedName()); - GameRegistry.registerItem(bdcl, bdcl.getUnlocalizedName()); - - //Armor mods - GameRegistry.registerItem(attachment_mask, attachment_mask.getUnlocalizedName()); - GameRegistry.registerItem(attachment_mask_mono, attachment_mask_mono.getUnlocalizedName()); - GameRegistry.registerItem(back_tesla, back_tesla.getUnlocalizedName()); - GameRegistry.registerItem(servo_set, servo_set.getUnlocalizedName()); - GameRegistry.registerItem(servo_set_desh, servo_set_desh.getUnlocalizedName()); - GameRegistry.registerItem(pads_rubber, pads_rubber.getUnlocalizedName()); - GameRegistry.registerItem(pads_slime, pads_slime.getUnlocalizedName()); - GameRegistry.registerItem(pads_static, pads_static.getUnlocalizedName()); - GameRegistry.registerItem(cladding_paint, cladding_paint.getUnlocalizedName()); - GameRegistry.registerItem(cladding_rubber, cladding_rubber.getUnlocalizedName()); - GameRegistry.registerItem(cladding_lead, cladding_lead.getUnlocalizedName()); - GameRegistry.registerItem(cladding_desh, cladding_desh.getUnlocalizedName()); - GameRegistry.registerItem(cladding_ghiorsium, cladding_ghiorsium.getUnlocalizedName()); - GameRegistry.registerItem(cladding_iron, cladding_iron.getUnlocalizedName()); - GameRegistry.registerItem(cladding_obsidian, cladding_obsidian.getUnlocalizedName()); - GameRegistry.registerItem(insert_kevlar, insert_kevlar.getUnlocalizedName()); - GameRegistry.registerItem(insert_sapi, insert_sapi.getUnlocalizedName()); - GameRegistry.registerItem(insert_esapi, insert_esapi.getUnlocalizedName()); - GameRegistry.registerItem(insert_xsapi, insert_xsapi.getUnlocalizedName()); - GameRegistry.registerItem(insert_steel, insert_steel.getUnlocalizedName()); - GameRegistry.registerItem(insert_du, insert_du.getUnlocalizedName()); - GameRegistry.registerItem(insert_polonium, insert_polonium.getUnlocalizedName()); - GameRegistry.registerItem(insert_ghiorsium, insert_ghiorsium.getUnlocalizedName()); - GameRegistry.registerItem(insert_era, insert_era.getUnlocalizedName()); - GameRegistry.registerItem(insert_yharonite, insert_yharonite.getUnlocalizedName()); - GameRegistry.registerItem(insert_doxium, insert_doxium.getUnlocalizedName()); - GameRegistry.registerItem(armor_polish, armor_polish.getUnlocalizedName()); - GameRegistry.registerItem(bandaid, bandaid.getUnlocalizedName()); - GameRegistry.registerItem(serum, serum.getUnlocalizedName()); - GameRegistry.registerItem(quartz_plutonium, quartz_plutonium.getUnlocalizedName()); - GameRegistry.registerItem(morning_glory, morning_glory.getUnlocalizedName()); - GameRegistry.registerItem(lodestone, lodestone.getUnlocalizedName()); - GameRegistry.registerItem(horseshoe_magnet, horseshoe_magnet.getUnlocalizedName()); - GameRegistry.registerItem(industrial_magnet, industrial_magnet.getUnlocalizedName()); - GameRegistry.registerItem(bathwater, bathwater.getUnlocalizedName()); - GameRegistry.registerItem(bathwater_mk2, bathwater_mk2.getUnlocalizedName()); - GameRegistry.registerItem(spider_milk, spider_milk.getUnlocalizedName()); - GameRegistry.registerItem(ink, ink.getUnlocalizedName()); - GameRegistry.registerItem(heart_piece, heart_piece.getUnlocalizedName()); - GameRegistry.registerItem(heart_container, heart_container.getUnlocalizedName()); - GameRegistry.registerItem(heart_booster, heart_booster.getUnlocalizedName()); - GameRegistry.registerItem(heart_fab, heart_fab.getUnlocalizedName()); - GameRegistry.registerItem(black_diamond, black_diamond.getUnlocalizedName()); - GameRegistry.registerItem(wd40, wd40.getUnlocalizedName()); - GameRegistry.registerItem(scrumpy, scrumpy.getUnlocalizedName()); - GameRegistry.registerItem(wild_p, wild_p.getUnlocalizedName()); - GameRegistry.registerItem(fabsols_vodka, fabsols_vodka.getUnlocalizedName()); - GameRegistry.registerItem(shackles, shackles.getUnlocalizedName()); - GameRegistry.registerItem(injector_5htp, injector_5htp.getUnlocalizedName()); - GameRegistry.registerItem(injector_knife, injector_knife.getUnlocalizedName()); - - //Vehicles - GameRegistry.registerItem(boat_rubber, boat_rubber.getUnlocalizedName()); - GameRegistry.registerItem(cart, cart.getUnlocalizedName()); - GameRegistry.registerItem(train, train.getUnlocalizedName()); - GameRegistry.registerItem(drone, drone.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_wireing, gadget_wireing.getUnlocalizedName()); - GameRegistry.registerItem(gadget_core, gadget_core.getUnlocalizedName()); - - //Little Boy - GameRegistry.registerItem(boy_shielding, boy_shielding.getUnlocalizedName()); - GameRegistry.registerItem(boy_target, boy_target.getUnlocalizedName()); - GameRegistry.registerItem(boy_bullet, boy_bullet.getUnlocalizedName()); - GameRegistry.registerItem(boy_propellant, boy_propellant.getUnlocalizedName()); - GameRegistry.registerItem(boy_igniter, boy_igniter.getUnlocalizedName());; - - //Fat Man - //GameRegistry.registerItem(man_explosive, man_explosive.getUnlocalizedName()); - GameRegistry.registerItem(man_igniter, man_igniter.getUnlocalizedName()); - GameRegistry.registerItem(man_core, man_core.getUnlocalizedName()); - - //Ivy Mike - GameRegistry.registerItem(mike_core, mike_core.getUnlocalizedName()); - GameRegistry.registerItem(mike_deut, mike_deut.getUnlocalizedName()); - GameRegistry.registerItem(mike_cooling_unit, mike_cooling_unit.getUnlocalizedName()); - - //Tsar Bomba - GameRegistry.registerItem(tsar_core, tsar_core.getUnlocalizedName()); - - //FLEIJA - GameRegistry.registerItem(fleija_igniter, fleija_igniter.getUnlocalizedName()); - GameRegistry.registerItem(fleija_propellant, fleija_propellant.getUnlocalizedName()); - GameRegistry.registerItem(fleija_core, fleija_core.getUnlocalizedName()); - - //Solinium - GameRegistry.registerItem(solinium_igniter, solinium_igniter.getUnlocalizedName()); - GameRegistry.registerItem(solinium_propellant, solinium_propellant.getUnlocalizedName()); - GameRegistry.registerItem(solinium_core, solinium_core.getUnlocalizedName()); - - //N2 - GameRegistry.registerItem(n2_charge, n2_charge.getUnlocalizedName()); - - //FSTBMB - GameRegistry.registerItem(egg_balefire_shard, egg_balefire_shard.getUnlocalizedName()); - GameRegistry.registerItem(egg_balefire, egg_balefire.getUnlocalizedName()); - - //Conventional Armor - GameRegistry.registerItem(goggles, goggles.getUnlocalizedName()); - GameRegistry.registerItem(ashglasses, ashglasses.getUnlocalizedName()); - GameRegistry.registerItem(gas_mask, gas_mask.getUnlocalizedName()); - GameRegistry.registerItem(gas_mask_m65, gas_mask_m65.getUnlocalizedName()); - GameRegistry.registerItem(gas_mask_mono, gas_mask_mono.getUnlocalizedName()); - GameRegistry.registerItem(gas_mask_olde, gas_mask_olde.getUnlocalizedName()); - GameRegistry.registerItem(mask_rag, mask_rag.getUnlocalizedName()); - GameRegistry.registerItem(mask_piss, mask_piss.getUnlocalizedName()); - //GameRegistry.registerItem(oxy_mask, oxy_mask.getUnlocalizedName()); - GameRegistry.registerItem(hat, hat.getUnlocalizedName()); - GameRegistry.registerItem(beta, beta.getUnlocalizedName()); - GameRegistry.registerItem(no9, no9.getUnlocalizedName()); - - GameRegistry.registerItem(steel_helmet, steel_helmet.getUnlocalizedName()); - GameRegistry.registerItem(steel_plate, steel_plate.getUnlocalizedName()); - GameRegistry.registerItem(steel_legs, steel_legs.getUnlocalizedName()); - GameRegistry.registerItem(steel_boots, steel_boots.getUnlocalizedName()); - GameRegistry.registerItem(titanium_helmet, titanium_helmet.getUnlocalizedName()); - GameRegistry.registerItem(titanium_plate, titanium_plate.getUnlocalizedName()); - GameRegistry.registerItem(titanium_legs, titanium_legs.getUnlocalizedName()); - GameRegistry.registerItem(titanium_boots, titanium_boots.getUnlocalizedName()); - GameRegistry.registerItem(alloy_helmet, alloy_helmet.getUnlocalizedName()); - GameRegistry.registerItem(alloy_plate, alloy_plate.getUnlocalizedName()); - GameRegistry.registerItem(alloy_legs, alloy_legs.getUnlocalizedName()); - GameRegistry.registerItem(alloy_boots, alloy_boots.getUnlocalizedName()); - - //Custom Rods - GameRegistry.registerItem(custom_tnt, custom_tnt.getUnlocalizedName()); - GameRegistry.registerItem(custom_nuke, custom_nuke.getUnlocalizedName()); - GameRegistry.registerItem(custom_hydro, custom_hydro.getUnlocalizedName()); - GameRegistry.registerItem(custom_amat, custom_amat.getUnlocalizedName()); - GameRegistry.registerItem(custom_dirty, custom_dirty.getUnlocalizedName()); - GameRegistry.registerItem(custom_schrab, custom_schrab.getUnlocalizedName()); - GameRegistry.registerItem(custom_fall, custom_fall.getUnlocalizedName()); - - //Power Armor - GameRegistry.registerItem(steamsuit_helmet, steamsuit_helmet.getUnlocalizedName()); - 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()); - GameRegistry.registerItem(t45_boots, t45_boots.getUnlocalizedName()); - GameRegistry.registerItem(ajr_helmet, ajr_helmet.getUnlocalizedName()); - GameRegistry.registerItem(ajr_plate, ajr_plate.getUnlocalizedName()); - GameRegistry.registerItem(ajr_legs, ajr_legs.getUnlocalizedName()); - GameRegistry.registerItem(ajr_boots, ajr_boots.getUnlocalizedName()); - GameRegistry.registerItem(ajro_helmet, ajro_helmet.getUnlocalizedName()); - GameRegistry.registerItem(ajro_plate, ajro_plate.getUnlocalizedName()); - GameRegistry.registerItem(ajro_legs, ajro_legs.getUnlocalizedName()); - GameRegistry.registerItem(ajro_boots, ajro_boots.getUnlocalizedName()); - GameRegistry.registerItem(rpa_helmet, rpa_helmet.getUnlocalizedName()); - GameRegistry.registerItem(rpa_plate, rpa_plate.getUnlocalizedName()); - GameRegistry.registerItem(rpa_legs, rpa_legs.getUnlocalizedName()); - GameRegistry.registerItem(rpa_boots, rpa_boots.getUnlocalizedName()); - GameRegistry.registerItem(bj_helmet, bj_helmet.getUnlocalizedName()); - GameRegistry.registerItem(bj_plate, bj_plate.getUnlocalizedName()); - GameRegistry.registerItem(bj_plate_jetpack, bj_plate_jetpack.getUnlocalizedName()); - GameRegistry.registerItem(bj_legs, bj_legs.getUnlocalizedName()); - GameRegistry.registerItem(bj_boots, bj_boots.getUnlocalizedName()); - GameRegistry.registerItem(envsuit_helmet, envsuit_helmet.getUnlocalizedName()); - GameRegistry.registerItem(envsuit_plate, envsuit_plate.getUnlocalizedName()); - GameRegistry.registerItem(envsuit_legs, envsuit_legs.getUnlocalizedName()); - GameRegistry.registerItem(envsuit_boots, envsuit_boots.getUnlocalizedName()); - GameRegistry.registerItem(hev_helmet, hev_helmet.getUnlocalizedName()); - GameRegistry.registerItem(hev_plate, hev_plate.getUnlocalizedName()); - GameRegistry.registerItem(hev_legs, hev_legs.getUnlocalizedName()); - GameRegistry.registerItem(hev_boots, hev_boots.getUnlocalizedName()); - GameRegistry.registerItem(fau_helmet, fau_helmet.getUnlocalizedName()); - GameRegistry.registerItem(fau_plate, fau_plate.getUnlocalizedName()); - GameRegistry.registerItem(fau_legs, fau_legs.getUnlocalizedName()); - GameRegistry.registerItem(fau_boots, fau_boots.getUnlocalizedName()); - GameRegistry.registerItem(dns_helmet, dns_helmet.getUnlocalizedName()); - GameRegistry.registerItem(dns_plate, dns_plate.getUnlocalizedName()); - GameRegistry.registerItem(dns_legs, dns_legs.getUnlocalizedName()); - GameRegistry.registerItem(dns_boots, dns_boots.getUnlocalizedName()); - GameRegistry.registerItem(taurun_helmet, taurun_helmet.getUnlocalizedName()); - GameRegistry.registerItem(taurun_plate, taurun_plate.getUnlocalizedName()); - GameRegistry.registerItem(taurun_legs, taurun_legs.getUnlocalizedName()); - GameRegistry.registerItem(taurun_boots, taurun_boots.getUnlocalizedName()); - GameRegistry.registerItem(trenchmaster_helmet, trenchmaster_helmet.getUnlocalizedName()); - GameRegistry.registerItem(trenchmaster_plate, trenchmaster_plate.getUnlocalizedName()); - GameRegistry.registerItem(trenchmaster_legs, trenchmaster_legs.getUnlocalizedName()); - GameRegistry.registerItem(trenchmaster_boots, trenchmaster_boots.getUnlocalizedName()); - - //Nobody will ever read this anyway, so it shouldn't matter. - GameRegistry.registerItem(chainsaw, chainsaw.getUnlocalizedName()); - GameRegistry.registerItem(igniter, igniter.getUnlocalizedName()); - GameRegistry.registerItem(detonator, detonator.getUnlocalizedName()); - GameRegistry.registerItem(detonator_multi, detonator_multi.getUnlocalizedName()); - GameRegistry.registerItem(detonator_laser, detonator_laser.getUnlocalizedName()); - GameRegistry.registerItem(detonator_deadman, detonator_deadman.getUnlocalizedName()); - GameRegistry.registerItem(detonator_de, detonator_de.getUnlocalizedName()); - GameRegistry.registerItem(bomb_caller, bomb_caller.getUnlocalizedName()); - GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName()); - GameRegistry.registerItem(anchor_remote, anchor_remote.getUnlocalizedName()); - GameRegistry.registerItem(defuser, defuser.getUnlocalizedName()); - GameRegistry.registerItem(reacher, reacher.getUnlocalizedName()); - GameRegistry.registerItem(bismuth_tool, bismuth_tool.getUnlocalizedName()); - GameRegistry.registerItem(meltdown_tool, meltdown_tool.getUnlocalizedName()); - - GameRegistry.registerItem(hazmat_helmet, hazmat_helmet.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_plate, hazmat_plate.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_legs, hazmat_legs.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_boots, hazmat_boots.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_helmet_red, hazmat_helmet_red.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_plate_red, hazmat_plate_red.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_legs_red, hazmat_legs_red.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_boots_red, hazmat_boots_red.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_helmet_grey, hazmat_helmet_grey.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_plate_grey, hazmat_plate_grey.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_legs_grey, hazmat_legs_grey.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_boots_grey, hazmat_boots_grey.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_paa_helmet, hazmat_paa_helmet.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_paa_plate, hazmat_paa_plate.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_paa_legs, hazmat_paa_legs.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_paa_boots, hazmat_paa_boots.getUnlocalizedName()); - GameRegistry.registerItem(liquidator_helmet, liquidator_helmet.getUnlocalizedName()); - GameRegistry.registerItem(liquidator_plate, liquidator_plate.getUnlocalizedName()); - GameRegistry.registerItem(liquidator_legs, liquidator_legs.getUnlocalizedName()); - GameRegistry.registerItem(liquidator_boots, liquidator_boots.getUnlocalizedName()); - GameRegistry.registerItem(cmb_helmet, cmb_helmet.getUnlocalizedName()); - GameRegistry.registerItem(cmb_plate, cmb_plate.getUnlocalizedName()); - GameRegistry.registerItem(cmb_legs, cmb_legs.getUnlocalizedName()); - GameRegistry.registerItem(cmb_boots, cmb_boots.getUnlocalizedName()); - GameRegistry.registerItem(paa_plate, paa_plate.getUnlocalizedName()); - GameRegistry.registerItem(paa_legs, paa_legs.getUnlocalizedName()); - GameRegistry.registerItem(paa_boots, paa_boots.getUnlocalizedName()); - GameRegistry.registerItem(asbestos_helmet, asbestos_helmet.getUnlocalizedName()); - GameRegistry.registerItem(asbestos_plate, asbestos_plate.getUnlocalizedName()); - GameRegistry.registerItem(asbestos_legs, asbestos_legs.getUnlocalizedName()); - GameRegistry.registerItem(asbestos_boots, asbestos_boots.getUnlocalizedName()); - GameRegistry.registerItem(security_helmet, security_helmet.getUnlocalizedName()); - GameRegistry.registerItem(security_plate, security_plate.getUnlocalizedName()); - GameRegistry.registerItem(security_legs, security_legs.getUnlocalizedName()); - GameRegistry.registerItem(security_boots, security_boots.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_helmet, cobalt_helmet.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_plate, cobalt_plate.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_legs, cobalt_legs.getUnlocalizedName()); - GameRegistry.registerItem(cobalt_boots, cobalt_boots.getUnlocalizedName()); - GameRegistry.registerItem(starmetal_helmet, starmetal_helmet.getUnlocalizedName()); - GameRegistry.registerItem(starmetal_plate, starmetal_plate.getUnlocalizedName()); - GameRegistry.registerItem(starmetal_legs, starmetal_legs.getUnlocalizedName()); - GameRegistry.registerItem(starmetal_boots, starmetal_boots.getUnlocalizedName()); - GameRegistry.registerItem(zirconium_legs, zirconium_legs.getUnlocalizedName()); - GameRegistry.registerItem(dnt_helmet, dnt_helmet.getUnlocalizedName()); - GameRegistry.registerItem(dnt_plate, dnt_plate.getUnlocalizedName()); - GameRegistry.registerItem(dnt_legs, dnt_legs.getUnlocalizedName()); - GameRegistry.registerItem(dnt_boots, dnt_boots.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_helmet, schrabidium_helmet.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_plate, schrabidium_plate.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_legs, schrabidium_legs.getUnlocalizedName()); - GameRegistry.registerItem(schrabidium_boots, schrabidium_boots.getUnlocalizedName()); - GameRegistry.registerItem(bismuth_helmet, bismuth_helmet.getUnlocalizedName()); - GameRegistry.registerItem(bismuth_plate, bismuth_plate.getUnlocalizedName()); - GameRegistry.registerItem(bismuth_legs, bismuth_legs.getUnlocalizedName()); - GameRegistry.registerItem(bismuth_boots, bismuth_boots.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_helmet, euphemium_helmet.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_plate, euphemium_plate.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_legs, euphemium_legs.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_boots, euphemium_boots.getUnlocalizedName()); - GameRegistry.registerItem(robes_helmet, robes_helmet.getUnlocalizedName()); - GameRegistry.registerItem(robes_plate, robes_plate.getUnlocalizedName()); - GameRegistry.registerItem(robes_legs, robes_legs.getUnlocalizedName()); - GameRegistry.registerItem(robes_boots, robes_boots.getUnlocalizedName()); - GameRegistry.registerItem(apple_euphemium, apple_euphemium.getUnlocalizedName()); - GameRegistry.registerItem(watch, watch.getUnlocalizedName()); - GameRegistry.registerItem(mask_of_infamy, mask_of_infamy.getUnlocalizedName()); - GameRegistry.registerItem(jackt, jackt.getUnlocalizedName()); - GameRegistry.registerItem(jackt2, jackt2.getUnlocalizedName()); - GameRegistry.registerItem(jetpack_fly, jetpack_fly.getUnlocalizedName()); - GameRegistry.registerItem(jetpack_break, jetpack_break.getUnlocalizedName()); - GameRegistry.registerItem(jetpack_vector, jetpack_vector.getUnlocalizedName()); - GameRegistry.registerItem(jetpack_boost, jetpack_boost.getUnlocalizedName()); - GameRegistry.registerItem(wings_limp, wings_limp.getUnlocalizedName()); - GameRegistry.registerItem(wings_murk, wings_murk.getUnlocalizedName()); - //GameRegistry.registerItem(australium_iv, australium_iv.getUnlocalizedName()); - //GameRegistry.registerItem(australium_v, australium_v.getUnlocalizedName()); - - //Expensive Ass Shit - GameRegistry.registerItem(crystal_horn, crystal_horn.getUnlocalizedName()); - GameRegistry.registerItem(crystal_charred, crystal_charred.getUnlocalizedName()); - - //OP Tools - GameRegistry.registerItem(wand, wand.getUnlocalizedName()); - GameRegistry.registerItem(wand_s, wand_s.getUnlocalizedName()); - GameRegistry.registerItem(wand_d, wand_d.getUnlocalizedName()); - GameRegistry.registerItem(structure_single, structure_single.getUnlocalizedName()); - GameRegistry.registerItem(structure_solid, structure_solid.getUnlocalizedName()); - GameRegistry.registerItem(structure_pattern, structure_pattern.getUnlocalizedName()); - GameRegistry.registerItem(structure_randomized, structure_randomized.getUnlocalizedName()); - GameRegistry.registerItem(structure_randomly, structure_randomly.getUnlocalizedName()); - GameRegistry.registerItem(structure_custommachine, structure_custommachine.getUnlocalizedName()); - GameRegistry.registerItem(rod_of_discord, rod_of_discord.getUnlocalizedName()); - GameRegistry.registerItem(polaroid, polaroid.getUnlocalizedName()); - GameRegistry.registerItem(glitch, glitch.getUnlocalizedName()); - GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); - GameRegistry.registerItem(book_of_, book_of_.getUnlocalizedName()); - GameRegistry.registerItem(page_of_, page_of_.getUnlocalizedName()); - GameRegistry.registerItem(book_lemegeton, book_lemegeton.getUnlocalizedName()); - GameRegistry.registerItem(burnt_bark, burnt_bark.getUnlocalizedName()); - - //Kits - GameRegistry.registerItem(nuke_starter_kit, nuke_starter_kit.getUnlocalizedName()); - GameRegistry.registerItem(nuke_advanced_kit, nuke_advanced_kit.getUnlocalizedName()); - GameRegistry.registerItem(nuke_commercially_kit, nuke_commercially_kit.getUnlocalizedName()); - GameRegistry.registerItem(nuke_electric_kit, nuke_electric_kit.getUnlocalizedName()); - GameRegistry.registerItem(gadget_kit, gadget_kit.getUnlocalizedName()); - GameRegistry.registerItem(boy_kit, boy_kit.getUnlocalizedName()); - GameRegistry.registerItem(man_kit, man_kit.getUnlocalizedName()); - GameRegistry.registerItem(mike_kit, mike_kit.getUnlocalizedName()); - GameRegistry.registerItem(tsar_kit, tsar_kit.getUnlocalizedName()); - GameRegistry.registerItem(prototype_kit, prototype_kit.getUnlocalizedName()); - GameRegistry.registerItem(fleija_kit, fleija_kit.getUnlocalizedName()); - GameRegistry.registerItem(solinium_kit, solinium_kit.getUnlocalizedName()); - GameRegistry.registerItem(multi_kit, multi_kit.getUnlocalizedName()); - GameRegistry.registerItem(custom_kit, custom_kit.getUnlocalizedName()); - GameRegistry.registerItem(missile_kit, missile_kit.getUnlocalizedName()); - GameRegistry.registerItem(grenade_kit, grenade_kit.getUnlocalizedName()); - GameRegistry.registerItem(t45_kit, t45_kit.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_kit, hazmat_kit.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_red_kit, hazmat_red_kit.getUnlocalizedName()); - GameRegistry.registerItem(hazmat_grey_kit, hazmat_grey_kit.getUnlocalizedName()); - GameRegistry.registerItem(kit_custom, kit_custom.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_kit, euphemium_kit.getUnlocalizedName()); - GameRegistry.registerItem(legacy_toolbox, legacy_toolbox.getUnlocalizedName()); - GameRegistry.registerItem(toolbox, toolbox.getUnlocalizedName()); - GameRegistry.registerItem(letter, letter.getUnlocalizedName()); - - //Misile Loot Boxes - GameRegistry.registerItem(loot_10, loot_10.getUnlocalizedName()); - GameRegistry.registerItem(loot_15, loot_15.getUnlocalizedName()); - GameRegistry.registerItem(loot_misc, loot_misc.getUnlocalizedName()); - - //THIS is a bucket. - GameRegistry.registerItem(bucket_mud, bucket_mud.getUnlocalizedName()); - GameRegistry.registerItem(bucket_acid, bucket_acid.getUnlocalizedName()); - GameRegistry.registerItem(bucket_toxic, bucket_toxic.getUnlocalizedName()); - GameRegistry.registerItem(bucket_schrabidic_acid, bucket_schrabidic_acid.getUnlocalizedName()); - GameRegistry.registerItem(bucket_sulfuric_acid, bucket_sulfuric_acid.getUnlocalizedName()); - - //Door Items - GameRegistry.registerItem(door_metal, door_metal.getUnlocalizedName()); - GameRegistry.registerItem(door_office, door_office.getUnlocalizedName()); - GameRegistry.registerItem(door_bunker, door_bunker.getUnlocalizedName()); - GameRegistry.registerItem(door_red, door_red.getUnlocalizedName()); - GameRegistry.registerItem(sliding_blast_door_skin, sliding_blast_door_skin.getUnlocalizedName()); - - //Records - GameRegistry.registerItem(record_lc, record_lc.getUnlocalizedName()); - GameRegistry.registerItem(record_ss, record_ss.getUnlocalizedName()); - GameRegistry.registerItem(record_vc, record_vc.getUnlocalizedName()); - GameRegistry.registerItem(record_glass, record_glass.getUnlocalizedName()); - - //wow we're far down the item registry, is this the cellar? - GameRegistry.registerItem(book_guide, book_guide.getUnlocalizedName()); - GameRegistry.registerItem(book_lore, book_lore.getUnlocalizedName()); - GameRegistry.registerItem(holotape_image, holotape_image.getUnlocalizedName()); - GameRegistry.registerItem(holotape_damaged, holotape_damaged.getUnlocalizedName()); - GameRegistry.registerItem(clay_tablet, clay_tablet.getUnlocalizedName()); - - //Technical Items - GameRegistry.registerItem(chlorine1, chlorine1.getUnlocalizedName()); - GameRegistry.registerItem(chlorine2, chlorine2.getUnlocalizedName()); - GameRegistry.registerItem(chlorine3, chlorine3.getUnlocalizedName()); - GameRegistry.registerItem(chlorine4, chlorine4.getUnlocalizedName()); - GameRegistry.registerItem(chlorine5, chlorine5.getUnlocalizedName()); - GameRegistry.registerItem(chlorine6, chlorine6.getUnlocalizedName()); - GameRegistry.registerItem(chlorine7, chlorine7.getUnlocalizedName()); - GameRegistry.registerItem(chlorine8, chlorine8.getUnlocalizedName()); - GameRegistry.registerItem(pc1, pc1.getUnlocalizedName()); - GameRegistry.registerItem(pc2, pc2.getUnlocalizedName()); - GameRegistry.registerItem(pc3, pc3.getUnlocalizedName()); - GameRegistry.registerItem(pc4, pc4.getUnlocalizedName()); - GameRegistry.registerItem(pc5, pc5.getUnlocalizedName()); - GameRegistry.registerItem(pc6, pc6.getUnlocalizedName()); - GameRegistry.registerItem(pc7, pc7.getUnlocalizedName()); - GameRegistry.registerItem(pc8, pc8.getUnlocalizedName()); - GameRegistry.registerItem(cloud1, cloud1.getUnlocalizedName()); - GameRegistry.registerItem(cloud2, cloud2.getUnlocalizedName()); - GameRegistry.registerItem(cloud3, cloud3.getUnlocalizedName()); - GameRegistry.registerItem(cloud4, cloud4.getUnlocalizedName()); - GameRegistry.registerItem(cloud5, cloud5.getUnlocalizedName()); - GameRegistry.registerItem(cloud6, cloud6.getUnlocalizedName()); - GameRegistry.registerItem(cloud7, cloud7.getUnlocalizedName()); - GameRegistry.registerItem(cloud8, cloud8.getUnlocalizedName()); - GameRegistry.registerItem(orange1, orange1.getUnlocalizedName()); - GameRegistry.registerItem(orange2, orange2.getUnlocalizedName()); - GameRegistry.registerItem(orange3, orange3.getUnlocalizedName()); - GameRegistry.registerItem(orange4, orange4.getUnlocalizedName()); - GameRegistry.registerItem(orange5, orange5.getUnlocalizedName()); - GameRegistry.registerItem(orange6, orange6.getUnlocalizedName()); - GameRegistry.registerItem(orange7, orange7.getUnlocalizedName()); - GameRegistry.registerItem(orange8, orange8.getUnlocalizedName()); - GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); - GameRegistry.registerItem(achievement_icon, achievement_icon.getUnlocalizedName()); - GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); - GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); - GameRegistry.registerItem(bob_chemistry, bob_chemistry.getUnlocalizedName()); - GameRegistry.registerItem(bob_oil, bob_oil.getUnlocalizedName()); - GameRegistry.registerItem(bob_nuclear, bob_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); - GameRegistry.registerItem(memory, memory.getUnlocalizedName()); - GameRegistry.registerItem(conveyor_wand, conveyor_wand.getUnlocalizedName()); - } - - public static void addRemap(String unloc, Item item, Enum sub) { - addRemap(unloc, item, sub.ordinal()); - } - - public static void addRemap(String unloc, Item item, int meta) { - Item remap = new ItemRemap(item, meta).setUnlocalizedName(unloc).setTextureName(RefStrings.MODID + ":plate_armor_titanium"); - GameRegistry.registerItem(remap, remap.getUnlocalizedName()); - } -} +package com.hbm.items; + +import com.hbm.blocks.ModBlocks; +import com.hbm.config.VersatileConfig; +import com.hbm.handler.BucketHandler; +import com.hbm.handler.ToolAbility; +import com.hbm.handler.ToolAbility.LuckAbility; +import com.hbm.handler.ability.IWeaponAbility; +import com.hbm.handler.WeaponAbility; +import com.hbm.handler.guncfg.*; +import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ItemAmmoEnums.*; +import com.hbm.items.ItemEnums.*; +import com.hbm.items.armor.*; +import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; +import com.hbm.items.bomb.*; +import com.hbm.items.food.*; +import com.hbm.items.machine.*; +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.ItemPWRFuel.EnumPWRFuel; +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.*; +import com.hbm.items.special.ItemPlasticScrap.ScrapType; +import com.hbm.items.tool.*; +import com.hbm.items.tool.ItemToolAbility.EnumToolType; +import com.hbm.items.weapon.*; +import com.hbm.items.weapon.ItemCustomMissilePart.*; +import com.hbm.items.weapon.ItemMissile.MissileFormFactor; +import com.hbm.items.weapon.ItemMissile.MissileFuel; +import com.hbm.items.weapon.ItemMissile.MissileTier; +import com.hbm.items.weapon.sedna.factory.GunFactory; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.potion.HbmPotion; +import com.hbm.tileentity.machine.rbmk.IRBMKFluxReceiver.NType; +import com.hbm.util.RTGUtil; + +import api.hbm.block.IToolable.ToolType; +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Items; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemArmor.ArmorMaterial; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemSoup; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.util.EnumHelper; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; + +public class ModItems { + + public static void mainRegistry() { + initializeItem(); + registerItem(); + } + + public static Item redstone_sword; + public static Item big_sword; + + public static Item ingot_th232; + public static Item ingot_uranium; + public static Item ingot_u233; + public static Item ingot_u235; + public static Item ingot_u238; + public static Item ingot_u238m2; + public static Item ingot_plutonium; + public static Item ingot_pu238; + public static Item ingot_pu239; + public static Item ingot_pu240; + public static Item ingot_pu241; + public static Item ingot_pu_mix; + public static Item ingot_am241; + public static Item ingot_am242; + public static Item ingot_am_mix; + public static Item ingot_neptunium; + public static Item ingot_polonium; + public static Item ingot_technetium; + public static Item ingot_co60; + public static Item ingot_sr90; + public static Item ingot_au198; + public static Item ingot_pb209; + public static Item ingot_ra226; + public static Item ingot_titanium; + public static Item ingot_cobalt; + public static Item sulfur; + public static Item nitra; + public static Item nitra_small; + + public static Item coke; + public static Item lignite; + public static Item powder_lignite; + public static Item briquette; + public static Item coal_infernal; + public static Item cinnebar; + public static Item powder_ash; + public static Item powder_limestone; + public static Item powder_cement; + + public static Item niter; + public static Item ingot_copper; + public static Item ingot_red_copper; + public static Item ingot_tungsten; + public static Item ingot_aluminium; + public static Item fluorite; + public static Item ingot_beryllium; + public static Item ingot_schraranium; + public static Item ingot_schrabidium; + public static Item ingot_schrabidate; + public static Item ingot_plutonium_fuel; + public static Item ingot_neptunium_fuel; + public static Item ingot_uranium_fuel; + public static Item ingot_mox_fuel; + public static Item ingot_americium_fuel; + public static Item ingot_schrabidium_fuel; + public static Item ingot_thorium_fuel; + public static Item nugget_uranium_fuel; + public static Item nugget_thorium_fuel; + public static Item nugget_plutonium_fuel; + public static Item nugget_neptunium_fuel; + public static Item nugget_mox_fuel; + public static Item nugget_americium_fuel; + public static Item nugget_schrabidium_fuel; + public static Item ingot_advanced_alloy; + public static Item ingot_tcalloy; + public static Item ingot_cdalloy; + public static Item ingot_bismuth_bronze; + public static Item ingot_arsenic_bronze; + public static Item ingot_bscco; + public static Item lithium; + public static Item ingot_zirconium; + public static Item ingot_hes; + public static Item ingot_les; + public static Item nugget_hes; + public static Item nugget_les; + public static Item ingot_magnetized_tungsten; + public static Item ingot_combine_steel; + public static Item ingot_solinium; + public static Item nugget_solinium; + public static Item ingot_phosphorus; + public static Item ingot_semtex; + public static Item ingot_c4; + public static Item ingot_boron; + public static Item ingot_graphite; + public static Item ingot_firebrick; + public static Item ingot_smore; + + public static Item ingot_gh336; + public static Item nugget_gh336; + + public static Item ingot_australium; + public static Item nugget_australium; + public static Item nugget_australium_lesser; + public static Item nugget_australium_greater; + + public static Item ingot_desh; + public static Item nugget_desh; + public static Item ingot_dineutronium; + public static Item nugget_dineutronium; + public static Item powder_dineutronium; + public static Item ingot_tetraneutronium; + public static Item nugget_tetraneutronium; + public static Item powder_tetraneutronium; + public static Item ingot_starmetal; + public static Item ingot_gunmetal; + public static Item plate_gunmetal; + public static Item ingot_weaponsteel; + public static Item plate_weaponsteel; + public static Item ingot_saturnite; + public static Item plate_saturnite; + public static Item ingot_ferrouranium; + public static Item ingot_electronium; + public static Item nugget_zirconium; + public static Item nugget_mercury; + public static Item ingot_mercury; //It's to prevent any ambiguity, as it was treated as a full ingot in the past anyway + public static Item bottle_mercury; + + public static Item ore_byproduct; //byproduct of variable purity and quantity, can be treated as a nugget, might require shredding or acidizing, depends on the type + + public static Item ore_bedrock; + public static Item ore_centrifuged; + public static Item ore_cleaned; + public static Item ore_separated; + public static Item ore_purified; + public static Item ore_nitrated; + public static Item ore_nitrocrystalline; + public static Item ore_deepcleaned; + public static Item ore_seared; + //public static Item ore_radcleaned; + public static Item ore_enriched; //final stage + public static Item bedrock_ore_base; + public static Item bedrock_ore; + public static Item bedrock_ore_fragment; + + public static Item billet_uranium; + public static Item billet_u233; + public static Item billet_u235; + public static Item billet_u238; + public static Item billet_th232; + public static Item billet_plutonium; + public static Item billet_pu238; + public static Item billet_pu239; + public static Item billet_pu240; + public static Item billet_pu241; + public static Item billet_pu_mix; + public static Item billet_am241; + public static Item billet_am242; + public static Item billet_am_mix; + public static Item billet_neptunium; + public static Item billet_polonium; + public static Item billet_technetium; + public static Item billet_cobalt; + public static Item billet_co60; + public static Item billet_sr90; + public static Item billet_au198; + public static Item billet_pb209; + public static Item billet_ra226; + public static Item billet_actinium; + public static Item billet_schrabidium; + public static Item billet_solinium; + public static Item billet_gh336; + public static Item billet_australium; + public static Item billet_australium_lesser; + public static Item billet_australium_greater; + public static Item billet_uranium_fuel; + public static Item billet_thorium_fuel; + public static Item billet_plutonium_fuel; + public static Item billet_neptunium_fuel; + public static Item billet_mox_fuel; + public static Item billet_americium_fuel; + public static Item billet_les; + public static Item billet_schrabidium_fuel; + public static Item billet_hes; + public static Item billet_po210be; + public static Item billet_ra226be; + public static Item billet_pu238be; + public static Item billet_yharonite; + public static Item billet_balefire_gold; + public static Item billet_flashlead; + public static Item billet_zfb_bismuth; + public static Item billet_zfb_pu241; + public static Item billet_zfb_am_mix; + public static Item billet_beryllium; + public static Item billet_bismuth; + public static Item billet_zirconium; + public static Item billet_nuclear_waste; + + public static Item nugget_th232; + public static Item nugget_uranium; + public static Item nugget_u233; + public static Item nugget_u235; + public static Item nugget_u238; + public static Item nugget_plutonium; + public static Item nugget_pu238; + public static Item nugget_pu239; + public static Item nugget_pu240; + public static Item nugget_pu241; + public static Item nugget_pu_mix; + public static Item nugget_am241; + public static Item nugget_am242; + public static Item nugget_am_mix; + public static Item nugget_neptunium; + public static Item nugget_polonium; + public static Item nugget_technetium; + public static Item nugget_cobalt; + public static Item nugget_co60; + public static Item nugget_sr90; + public static Item nugget_au198; + public static Item nugget_pb209; + public static Item nugget_ra226; + public static Item nugget_actinium; + public static Item plate_titanium; + public static Item plate_aluminium; + public static Item neutron_reflector; + public static Item ingot_steel; + public static Item plate_steel; + public static Item plate_iron; + public static Item ingot_lead; + public static Item nugget_lead; + public static Item ingot_bismuth; + public static Item nugget_bismuth; + public static Item ingot_arsenic; + public static Item nugget_arsenic; + public static Item ingot_tantalium; + public static Item nugget_tantalium; + public static Item ingot_silicon; + public static Item billet_silicon; + public static Item nugget_silicon; + public static Item ingot_niobium; + public static Item nugget_niobium; + public static Item ingot_osmiridium; + public static Item nugget_osmiridium; + public static Item plate_lead; + public static Item plate_dura_steel; + public static Item nugget_schrabidium; + public static Item plate_schrabidium; + public static Item plate_copper; + public static Item nugget_beryllium; + public static Item plate_gold; + public static Item hazmat_cloth; + public static Item hazmat_cloth_red; + public static Item hazmat_cloth_grey; + public static Item asbestos_cloth; + public static Item rag; + public static Item rag_damp; + public static Item rag_piss; + public static Item filter_coal; + public static Item plate_advanced_alloy; + public static Item plate_combine_steel; + public static Item plate_mixed; + public static Item plate_paa; + public static Item pipes_steel; + public static Item drill_titanium; + public static Item plate_dalekanium; + public static Item plate_euphemium; + public static Item bolt; + public static Item bolt_spike; + public static Item plate_polymer; + public static Item plate_kevlar; + public static Item plate_dineutronium; + public static Item plate_desh; + public static Item plate_bismuth; + public static Item photo_panel; + public static Item sat_base; + public static Item thruster_nuclear; + public static Item safety_fuse; + public static Item part_generic; + public static Item item_secret; + public static Item ingot_metal; + public static Item chemical_dye; + public static Item crayon; + + public static Item undefined; + + public static Item ball_resin; + public static Item ingot_dura_steel; + public static Item ingot_polymer; + public static Item ingot_bakelite; + public static Item ingot_biorubber; + public static Item ingot_rubber; + public static Item ingot_pet; + public static Item ingot_pc; + public static Item ingot_pvc; + + public static Item ingot_fiberglass; + public static Item ingot_asbestos; + public static Item powder_asbestos; + public static Item ingot_calcium; + public static Item powder_calcium; + public static Item ingot_cadmium; + public static Item powder_cadmium; + public static Item powder_bismuth; + public static Item ingot_mud; + public static Item ingot_cft; + + public static Item ingot_lanthanium; + public static Item ingot_actinium; + + public static Item ingot_meteorite; + public static Item ingot_meteorite_forged; + public static Item blade_meteorite; + public static Item ingot_steel_dusted; + public static Item ingot_chainsteel; + + public static Item plate_armor_titanium; + public static Item plate_armor_ajr; + public static Item plate_armor_hev; + public static Item plate_armor_lunar; + public static Item plate_armor_fau; + public static Item plate_armor_dnt; + + public static Item oil_tar; + public static Item solid_fuel; + public static Item solid_fuel_presto; + public static Item solid_fuel_presto_triplet; + public static Item solid_fuel_bf; + public static Item solid_fuel_presto_bf; + public static Item solid_fuel_presto_triplet_bf; + public static Item rocket_fuel; + + public static Item crystal_coal; + public static Item crystal_iron; + public static Item crystal_gold; + public static Item crystal_redstone; + public static Item crystal_lapis; + public static Item crystal_diamond; + public static Item crystal_uranium; + public static Item crystal_thorium; + public static Item crystal_plutonium; + public static Item crystal_titanium; + public static Item crystal_sulfur; + public static Item crystal_niter; + public static Item crystal_copper; + public static Item crystal_tungsten; + public static Item crystal_aluminium; + public static Item crystal_fluorite; + public static Item crystal_beryllium; + public static Item crystal_lead; + public static Item crystal_schraranium; + public static Item crystal_schrabidium; + public static Item crystal_rare; + public static Item crystal_phosphorus; + public static Item crystal_lithium; + public static Item crystal_cobalt; + public static Item crystal_starmetal; + public static Item crystal_cinnebar; + public static Item crystal_trixite; + public static Item crystal_osmiridium; + + public static Item gem_sodalite; + public static Item gem_tantalium; + public static Item gem_volcanic; + public static Item gem_rad; + public static Item gem_alexandrite; + + public static Item powder_lead; + public static Item powder_tantalium; + public static Item powder_neptunium; + public static Item powder_polonium; + public static Item powder_co60; + public static Item powder_sr90; + public static Item powder_sr90_tiny; + public static Item powder_au198; + public static Item powder_ra226; + public static Item powder_i131; + public static Item powder_i131_tiny; + public static Item powder_xe135; + public static Item powder_xe135_tiny; + public static Item powder_cs137; + public static Item powder_cs137_tiny; + public static Item powder_at209; + public static Item powder_schrabidium; + public static Item powder_schrabidate; + + public static Item powder_aluminium; + public static Item powder_beryllium; + public static Item powder_copper; + public static Item powder_gold; + public static Item powder_iron; + public static Item powder_titanium; + public static Item powder_tungsten; + public static Item powder_uranium; + public static Item powder_plutonium; + public static Item dust; + public static Item dust_tiny; + public static Item fallout; + public static Item powder_power; + + public static Item powder_thorium; + public static Item powder_iodine; + public static Item powder_neodymium; + public static Item powder_astatine; + public static Item powder_caesium; + + public static Item powder_strontium; + public static Item powder_cobalt; + public static Item powder_bromine; + public static Item powder_niobium; + public static Item powder_tennessine; + public static Item powder_cerium; + + public static Item powder_advanced_alloy; + public static Item powder_tcalloy; + public static Item powder_coal; + public static Item powder_coal_tiny; + public static Item powder_combine_steel; + public static Item powder_diamond; + public static Item powder_emerald; + public static Item powder_lapis; + public static Item powder_quartz; + public static Item powder_magnetized_tungsten; + public static Item powder_chlorophyte; + public static Item powder_red_copper; + public static Item powder_steel; + public static Item powder_lithium; + public static Item powder_zirconium; + public static Item powder_sodium; + + public static Item powder_australium; + + public static Item powder_dura_steel; + public static Item powder_polymer; + public static Item powder_bakelite; + public static Item powder_euphemium; + public static Item powder_meteorite; + + public static Item powder_steel_tiny; + public static Item powder_lithium_tiny; + public static Item powder_neodymium_tiny; + public static Item powder_cobalt_tiny; + public static Item powder_niobium_tiny; + public static Item powder_cerium_tiny; + public static Item powder_lanthanium_tiny; + public static Item powder_actinium_tiny; + public static Item powder_boron_tiny; + public static Item powder_meteorite_tiny; + + public static Item powder_coltan_ore; + public static Item powder_coltan; + public static Item powder_tektite; + public static Item powder_paleogenite; + public static Item powder_paleogenite_tiny; + public static Item powder_impure_osmiridium; + public static Item powder_borax; + public static Item powder_chlorocalcite; + public static Item powder_molysite; + + public static Item powder_lanthanium; + public static Item powder_actinium; + public static Item powder_boron; + public static Item powder_desh; + public static Item powder_semtex_mix; + public static Item powder_desh_mix; + public static Item powder_desh_ready; + public static Item powder_nitan_mix; + public static Item powder_spark_mix; + public static Item powder_yellowcake; + public static Item powder_magic; + public static Item powder_balefire; + public static Item powder_sawdust; + public static Item powder_flux; + public static Item powder_fertilizer; + + public static Item fragment_neodymium; + public static Item fragment_cobalt; + public static Item fragment_niobium; + public static Item fragment_cerium; + public static Item fragment_lanthanium; + public static Item fragment_actinium; + public static Item fragment_boron; + public static Item fragment_meteorite; + public static Item fragment_coltan; + public static Item chunk_ore; + + public static Item biomass; + public static Item biomass_compressed; + public static Item bio_wafer; + public static Item plant_item; + + public static Item coil_copper; + public static Item coil_copper_torus; + public static Item coil_tungsten; + public static Item tank_steel; + public static Item motor; + public static Item motor_desh; + public static Item motor_bismuth; + public static Item centrifuge_element; + public static Item reactor_core; + public static Item rtg_unit; + public static Item levitation_unit; + + public static Item coil_advanced_alloy; + public static Item coil_advanced_torus; + public static Item coil_magnetized_tungsten; + public static Item coil_gold; + public static Item coil_gold_torus; + public static Item component_limiter; + public static Item component_emitter; + public static Item chlorine_pinwheel; + public static Item deuterium_filter; + + public static Item parts_legendary; + + public static Item circuit; + + public static Item crt_display; + public static ItemEnumMulti circuit_star_piece; + public static ItemEnumMulti circuit_star_component; + public static Item circuit_star; + + public static Item assembly_nuke; + + public static Item casing; + + public static Item wiring_red_copper; + public static Item shell; + public static Item pipe; + public static Item fins_flat; + public static Item fins_small_steel; + public static Item fins_big_steel; + public static Item fins_tri_steel; + public static Item fins_quad_titanium; + public static Item sphere_steel; + public static Item pedestal_steel; + public static Item dysfunctional_reactor; + public static Item blade_titanium; + public static Item turbine_titanium; + public static Item blade_tungsten; + public static Item turbine_tungsten; + public static Item ring_starmetal; + public static Item flywheel_beryllium; + + public static Item gear_large; + public static Item sawblade; + + public static Item toothpicks; + public static Item ducttape; + public static Item catalyst_clay; + + public static Item warhead_generic_small; + public static Item warhead_generic_medium; + public static Item warhead_generic_large; + public static Item warhead_incendiary_small; + public static Item warhead_incendiary_medium; + public static Item warhead_incendiary_large; + public static Item warhead_cluster_small; + public static Item warhead_cluster_medium; + public static Item warhead_cluster_large; + public static Item warhead_buster_small; + public static Item warhead_buster_medium; + public static Item warhead_buster_large; + public static Item warhead_nuclear; + public static Item warhead_mirv; + public static Item warhead_volcano; + + public static Item fuel_tank_small; + public static Item fuel_tank_medium; + public static Item fuel_tank_large; + + public static Item thruster_small; + public static Item thruster_medium; + public static Item thruster_large; + + public static Item sat_head_mapper; + public static Item sat_head_scanner; + public static Item sat_head_radar; + public static Item sat_head_laser; + public static Item sat_head_resonator; + + public static Item seg_10; + public static Item seg_15; + public static Item seg_20; + + public static Item chopper_head; + public static Item chopper_gun; + public static Item chopper_torso; + public static Item chopper_tail; + public static Item chopper_wing; + public static Item chopper_blades; + public static Item combine_scrap; + + public static Item shimmer_head; + public static Item shimmer_axe_head; + public static Item shimmer_handle; + + //public static Item telepad; + public static Item entanglement_kit; + + public static Item stamp_stone_flat; + public static Item stamp_stone_plate; + public static Item stamp_stone_wire; + public static Item stamp_stone_circuit; + public static Item stamp_iron_flat; + public static Item stamp_iron_plate; + public static Item stamp_iron_wire; + public static Item stamp_iron_circuit; + public static Item stamp_steel_flat; + public static Item stamp_steel_plate; + public static Item stamp_steel_wire; + public static Item stamp_steel_circuit; + public static Item stamp_titanium_flat; + public static Item stamp_titanium_plate; + public static Item stamp_titanium_wire; + public static Item stamp_titanium_circuit; + public static Item stamp_obsidian_flat; + public static Item stamp_obsidian_plate; + public static Item stamp_obsidian_wire; + public static Item stamp_obsidian_circuit; + public static Item stamp_desh_flat; + public static Item stamp_desh_plate; + public static Item stamp_desh_wire; + public static Item stamp_desh_circuit; + public static Item stamp_book; + + public static Item stamp_357; + public static Item stamp_44; + public static Item stamp_9; + public static Item stamp_50; + + public static Item stamp_desh_357; + public static Item stamp_desh_44; + public static Item stamp_desh_9; + public static Item stamp_desh_50; + + public static Item blades_steel; + public static Item blades_titanium; + public static Item blades_advanced_alloy; + public static Item blades_desh; + + public static Item mold_base; + public static Item mold; + public static Item scraps; + public static Item ingot_raw; + public static Item plate_cast; + public static Item plate_welded; + public static Item heavy_component; + public static Item wire_fine; + public static Item wire_dense; + public static Item part_barrel_light; + public static Item part_barrel_heavy; + public static Item part_receiver_light; + public static Item part_receiver_heavy; + public static Item part_mechanism; + public static Item part_stock; + public static Item part_grip; + + public static Item part_lithium; + public static Item part_beryllium; + public static Item part_carbon; + public static Item part_copper; + public static Item part_plutonium; + + public static Item laser_crystal_co2; + public static Item laser_crystal_bismuth; + public static Item laser_crystal_cmb; + public static Item laser_crystal_dnt; + public static Item laser_crystal_digamma; + + public static Item thermo_element; + + public static Item catalytic_converter; + public static Item crackpipe; + + public static Item pellet_rtg_depleted; + + public static Item pellet_rtg_radium; + public static Item pellet_rtg_weak; + public static Item pellet_rtg; + public static Item pellet_rtg_strontium; + public static Item pellet_rtg_cobalt; + public static Item pellet_rtg_actinium; + public static Item pellet_rtg_polonium; + public static Item pellet_rtg_americium; + public static Item pellet_rtg_gold; + public static Item pellet_rtg_lead; + + public static Item tritium_deuterium_cake; + + public static Item piston_selenium; + public static Item piston_set; + public static Item drillbit; + + //public static Item crystal_energy; + //public static Item pellet_coolant; + + public static Item rune_blank; + public static Item rune_isa; + public static Item rune_dagaz; + public static Item rune_hagalaz; + public static Item rune_jera; + public static Item rune_thurisaz; + + public static Item ams_catalyst_blank; + public static Item ams_catalyst_aluminium; + public static Item ams_catalyst_beryllium; + public static Item ams_catalyst_caesium; + public static Item ams_catalyst_cerium; + public static Item ams_catalyst_cobalt; + public static Item ams_catalyst_copper; + public static Item ams_catalyst_dineutronium; + public static Item ams_catalyst_euphemium; + public static Item ams_catalyst_iron; + public static Item ams_catalyst_lithium; + public static Item ams_catalyst_niobium; + public static Item ams_catalyst_schrabidium; + public static Item ams_catalyst_strontium; + public static Item ams_catalyst_thorium; + public static Item ams_catalyst_tungsten; + + public static Item ams_focus_blank; + public static Item ams_focus_limiter; + public static Item ams_focus_booster; + + public static Item ams_muzzle; + + public static Item ams_lens; + + public static Item ams_core_sing; + public static Item ams_core_wormhole; + public static Item ams_core_eyeofharmony; + public static Item ams_core_thingy; + + public static Item fusion_shield_tungsten; + public static Item fusion_shield_desh; + public static Item fusion_shield_chlorophyte; + public static Item fusion_shield_vaporwave; + + public static Item cell_empty; + public static Item cell_uf6; + public static Item cell_puf6; + public static Item cell_deuterium; + public static Item cell_tritium; + public static Item cell_sas3; + public static Item cell_antimatter; + public static Item cell_anti_schrabidium; + public static Item cell_balefire; + + public static Item demon_core_open; + public static Item demon_core_closed; + + public static Item pa_coil; + + public static Item particle_empty; + public static Item particle_hydrogen; + public static Item particle_copper; + public static Item particle_lead; + public static Item particle_aproton; + public static Item particle_aelectron; + public static Item particle_amat; + public static Item particle_aschrab; + public static Item particle_higgs; + public static Item particle_muon; + public static Item particle_tachyon; + public static Item particle_strange; + public static Item particle_dark; + public static Item particle_sparkticle; + public static Item particle_digamma; + public static Item particle_lutece; + + public static Item pellet_antimatter; + public static Item singularity; + public static Item singularity_counter_resonant; + public static Item singularity_super_heated; + public static Item black_hole; + public static Item singularity_spark; + public static Item crystal_xen; + public static Item inf_water; + public static Item inf_water_mk2; + + public static Item fuel_additive; + + public static Item canister_empty; + public static Item canister_full; + public static Item canister_napalm; + + public static Item gas_empty; + public static Item gas_full; + + public static Item fluid_tank_full; + public static Item fluid_tank_empty; + public static Item fluid_tank_lead_full; + public static Item fluid_tank_lead_empty; + public static Item fluid_barrel_full; + public static Item fluid_barrel_empty; + public static Item fluid_barrel_infinite; + public static Item pipette; + public static Item pipette_boron; + public static Item pipette_laboratory; + public static Item siphon; + + public static Item disperser_canister_empty; + public static Item disperser_canister; + public static Item glyphid_gland; + public static Item glyphid_gland_empty; + + public static Item syringe_empty; + public static Item syringe_antidote; + public static Item syringe_poison; + public static Item syringe_awesome; + public static Item syringe_metal_empty; + public static Item syringe_metal_stimpak; + public static Item syringe_metal_medx; + public static Item syringe_metal_psycho; + public static Item syringe_metal_super; + public static Item syringe_taint; + public static Item syringe_mkunicorn; + public static Item iv_empty; + public static Item iv_blood; + public static Item iv_xp_empty; + public static Item iv_xp; + public static Item radaway; + public static Item radaway_strong; + public static Item radaway_flush; + public static Item radx; + public static Item siox; + public static Item pill_herbal; + public static Item xanax; + public static Item fmn; + public static Item five_htp; + public static Item med_bag; + public static Item pill_iodine; + public static Item plan_c; + public static Item pill_red; + public static Item stealth_boy; + public static Item gas_mask_filter; + public static Item gas_mask_filter_mono; + public static Item gas_mask_filter_combo; + public static Item gas_mask_filter_rag; + public static Item gas_mask_filter_piss; + public static Item jetpack_tank; + public static Item gun_kit_1; + public static Item gun_kit_2; + public static Item cbt_device; + public static Item cigarette; + + public static Item can_empty; + public static Item can_smart; + public static Item can_creature; + public static Item can_redbomb; + public static Item can_mrsugar; + public static Item can_overcharge; + public static Item can_luna; + public static Item can_bepis; + public static Item can_breen; + public static Item can_mug; + public static Item mucho_mango; + public static Item bottle_empty; + public static Item bottle_nuka; + public static Item bottle_cherry; + public static Item bottle_quantum; + public static Item bottle_sparkle; + public static Item bottle_rad; + public static Item bottle2_empty; + public static Item bottle2_korl; + public static Item bottle2_fritz; + public static Item bottle2_korl_special; + public static Item bottle2_fritz_special; + public static Item flask_empty; + public static Item flask_infusion; + public static Item chocolate_milk; + public static Item coffee; + public static Item coffee_radium; + public static Item chocolate; + public static Item cap_nuka; + public static Item cap_quantum; + public static Item cap_sparkle; + public static Item cap_rad; + public static Item cap_korl; + public static Item cap_fritz; + public static Item ring_pull; + public static Item bdcl; + //public static Item canned_beef; + //public static Item canned_tuna; + //public static Item canned_mystery; + //public static Item canned_pashtet; + //public static Item canned_cheese; + //public static Item canned_jizz; + //public static Item canned_milk; + //public static Item canned_ass; + //public static Item canned_pizza; + //public static Item canned_tube; + //public static Item canned_tomato; + //public static Item canned_asbestos; + //public static Item canned_bhole; + //public static Item canned_hotdogs; + //public static Item canned_leftovers; + //public static Item canned_yogurt; + //public static Item canned_stew; + //public static Item canned_chinese; + //public static Item canned_oil; + //public static Item canned_fist; + //public static Item canned_spam; + //public static Item canned_fried; + //public static Item canned_napalm; + //public static Item canned_diesel; + //public static Item canned_kerosene; + //public static Item canned_recursion; + //public static Item canned_bark; + public static ItemEnumMulti canned_conserve; + public static Item can_key; + + public static Item boat_rubber; + public static Item cart; + public static Item train; + public static Item drone; + + public static Item coin_creeper; + public static Item coin_radiation; + public static Item coin_maskman; + public static Item coin_worm; + public static Item coin_ufo; + //public static Item coin_siege; + //public static Item source; + + public static Item rod_empty; + public static Item rod; + public static Item rod_dual_empty; + public static Item rod_dual; + public static Item rod_quad_empty; + public static Item rod_quad; + + public static Item rod_zirnox_empty; + public static Item rod_zirnox_tritium; + public static ItemEnumMulti rod_zirnox; + + public static Item rod_zirnox_natural_uranium_fuel_depleted; + public static Item rod_zirnox_uranium_fuel_depleted; + public static Item rod_zirnox_thorium_fuel_depleted; + public static Item rod_zirnox_mox_fuel_depleted; + public static Item rod_zirnox_plutonium_fuel_depleted; + public static Item rod_zirnox_u233_fuel_depleted; + public static Item rod_zirnox_u235_fuel_depleted; + public static Item rod_zirnox_les_fuel_depleted; + public static Item rod_zirnox_zfb_mox_depleted; + + public static Item waste_natural_uranium; + public static Item waste_uranium; + public static Item waste_thorium; + public static Item waste_mox; + public static Item waste_plutonium; + public static Item waste_u233; + public static Item waste_u235; + public static Item waste_schrabidium; + public static Item waste_zfb_mox; + + public static Item waste_plate_u233; + public static Item waste_plate_u235; + public static Item waste_plate_mox; + public static Item waste_plate_pu239; + public static Item waste_plate_sa326; + public static Item waste_plate_ra226be; + public static Item waste_plate_pu238be; + + public static Item pile_rod_uranium; + public static Item pile_rod_pu239; + public static Item pile_rod_plutonium; + public static Item pile_rod_source; + public static Item pile_rod_boron; + public static Item pile_rod_lithium; + public static Item pile_rod_detector; + + public static Item plate_fuel_u233; + public static Item plate_fuel_u235; + public static Item plate_fuel_mox; + public static Item plate_fuel_pu239; + public static Item plate_fuel_sa326; + public static Item plate_fuel_ra226be; + public static Item plate_fuel_pu238be; + + public static Item pwr_fuel; + public static Item pwr_fuel_hot; + public static Item pwr_fuel_depleted; + + public static Item rbmk_lid; + public static Item rbmk_lid_glass; + public static Item rbmk_fuel_empty; + public static ItemRBMKRod rbmk_fuel_ueu; + public static ItemRBMKRod rbmk_fuel_meu; + public static ItemRBMKRod rbmk_fuel_heu233; + public static ItemRBMKRod rbmk_fuel_heu235; + public static ItemRBMKRod rbmk_fuel_thmeu; + public static ItemRBMKRod rbmk_fuel_lep; + public static ItemRBMKRod rbmk_fuel_mep; + public static ItemRBMKRod rbmk_fuel_hep239; + public static ItemRBMKRod rbmk_fuel_hep241; + public static ItemRBMKRod rbmk_fuel_lea; + public static ItemRBMKRod rbmk_fuel_mea; + public static ItemRBMKRod rbmk_fuel_hea241; + public static ItemRBMKRod rbmk_fuel_hea242; + public static ItemRBMKRod rbmk_fuel_men; + public static ItemRBMKRod rbmk_fuel_hen; + public static ItemRBMKRod rbmk_fuel_mox; + public static ItemRBMKRod rbmk_fuel_les; + public static ItemRBMKRod rbmk_fuel_mes; + public static ItemRBMKRod rbmk_fuel_hes; + public static ItemRBMKRod rbmk_fuel_leaus; + public static ItemRBMKRod rbmk_fuel_heaus; + public static ItemRBMKRod rbmk_fuel_po210be; + public static ItemRBMKRod rbmk_fuel_ra226be; + public static ItemRBMKRod rbmk_fuel_pu238be; + public static ItemRBMKRod rbmk_fuel_balefire_gold; + public static ItemRBMKRod rbmk_fuel_flashlead; + public static ItemRBMKRod rbmk_fuel_balefire; + public static ItemRBMKRod rbmk_fuel_zfb_bismuth; + public static ItemRBMKRod rbmk_fuel_zfb_pu241; + public static ItemRBMKRod rbmk_fuel_zfb_am_mix; + public static ItemRBMKRod rbmk_fuel_drx; + public static ItemRBMKRod rbmk_fuel_test; + //public static ItemRBMKRod rbmk_fuel_curve; + public static ItemRBMKPellet rbmk_pellet_ueu; + public static ItemRBMKPellet rbmk_pellet_meu; + public static ItemRBMKPellet rbmk_pellet_heu233; + public static ItemRBMKPellet rbmk_pellet_heu235; + public static ItemRBMKPellet rbmk_pellet_thmeu; + public static ItemRBMKPellet rbmk_pellet_lep; + public static ItemRBMKPellet rbmk_pellet_mep; + public static ItemRBMKPellet rbmk_pellet_hep239; + public static ItemRBMKPellet rbmk_pellet_hep241; + public static ItemRBMKPellet rbmk_pellet_lea; + public static ItemRBMKPellet rbmk_pellet_mea; + public static ItemRBMKPellet rbmk_pellet_hea241; + public static ItemRBMKPellet rbmk_pellet_hea242; + public static ItemRBMKPellet rbmk_pellet_men; + public static ItemRBMKPellet rbmk_pellet_hen; + public static ItemRBMKPellet rbmk_pellet_mox; + public static ItemRBMKPellet rbmk_pellet_les; + public static ItemRBMKPellet rbmk_pellet_mes; + public static ItemRBMKPellet rbmk_pellet_hes; + public static ItemRBMKPellet rbmk_pellet_leaus; + public static ItemRBMKPellet rbmk_pellet_heaus; + public static ItemRBMKPellet rbmk_pellet_po210be; + public static ItemRBMKPellet rbmk_pellet_ra226be; + public static ItemRBMKPellet rbmk_pellet_pu238be; + public static ItemRBMKPellet rbmk_pellet_balefire_gold; + public static ItemRBMKPellet rbmk_pellet_flashlead; + public static ItemRBMKPellet rbmk_pellet_balefire; + public static ItemRBMKPellet rbmk_pellet_zfb_bismuth; + public static ItemRBMKPellet rbmk_pellet_zfb_pu241; + public static ItemRBMKPellet rbmk_pellet_zfb_am_mix; + public static ItemRBMKPellet rbmk_pellet_drx; + + public static Item watz_pellet; + public static Item watz_pellet_depleted; + + public static Item icf_pellet_empty; + public static Item icf_pellet; + public static Item icf_pellet_depleted; + + public static Item scrap_plastic; + public static Item scrap; + public static Item scrap_oil; + public static Item scrap_nuclear; + public static Item trinitite; + public static Item nuclear_waste_long; + public static Item nuclear_waste_long_tiny; + public static Item nuclear_waste_short; + public static Item nuclear_waste_short_tiny; + public static Item nuclear_waste_long_depleted; + public static Item nuclear_waste_long_depleted_tiny; + public static Item nuclear_waste_short_depleted; + public static Item nuclear_waste_short_depleted_tiny; + public static Item nuclear_waste; + public static Item nuclear_waste_tiny; + public static Item nuclear_waste_vitrified; + public static Item nuclear_waste_vitrified_tiny; + + public static Item debris_graphite; + public static Item debris_metal; + public static Item debris_fuel; + public static Item debris_concrete; + public static Item debris_exchanger; + public static Item debris_shrapnel; + public static Item debris_element; + + public static Item containment_box; + public static Item plastic_bag; + + public static Item ammo_bag; + public static Item ammo_bag_infinite; + public static Item casing_bag; + + public static Item test_nuke_igniter; + public static Item test_nuke_propellant; + public static Item test_nuke_tier1_shielding; + public static Item test_nuke_tier2_shielding; + public static Item test_nuke_tier1_bullet; + public static Item test_nuke_tier2_bullet; + public static Item test_nuke_tier1_target; + public static Item test_nuke_tier2_target; + + public static Item cordite; + public static Item ballistite; + public static Item ball_dynamite; + public static Item ball_tnt; + public static Item ball_tatb; + public static Item ball_fireclay; + + public static Item pellet_cluster; + public static Item powder_fire; + public static Item powder_ice; + public static Item powder_poison; + public static Item powder_thermite; + public static Item pellet_gas; + public static Item magnetron; + public static Item pellet_buckshot; + public static Item pellet_charged; + + 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; + public static Item dosimeter; + public static Item geiger_counter; + public static Item digamma_diagnostic; + public static Item pollution_detector; + public static Item ore_density_scanner; + public static Item survey_scanner; + public static Item mirror_tool; + public static Item rbmk_tool; + public static Item coltan_tool; + public static Item power_net_tool; + public static Item analysis_tool; + public static Item coupling_tool; + public static Item drone_linker; + public static Item radar_linker; + public static Item settings_tool; + + public static Item template_folder; + public static Item journal_pip; + public static Item journal_bj; + public static Item journal_silver; + public static Item assembly_template; + public static Item chemistry_template; + public static Item chemistry_icon; + public static Item crucible_template; + public static Item fluid_identifier; + public static Item fluid_identifier_multi; + public static Item fluid_icon; + public static Item siren_track; + public static Item fluid_duct; + + public static Item bobmazon; + public static Item bobmazon_hidden; + + public static Item launch_code_piece; + public static Item launch_code; + public static Item launch_key; + + public static Item missile_assembly; + public static Item missile_generic; + public static Item missile_anti_ballistic; + public static Item missile_incendiary; + public static Item missile_cluster; + public static Item missile_buster; + public static Item missile_decoy; + public static Item missile_strong; + public static Item missile_incendiary_strong; + public static Item missile_cluster_strong; + public static Item missile_buster_strong; + public static Item missile_emp_strong; + public static Item missile_burst; + public static Item missile_inferno; + public static Item missile_rain; + public static Item missile_drill; + public static Item missile_nuclear; + public static Item missile_nuclear_cluster; + public static Item missile_volcano; + public static Item missile_doomsday; + public static Item missile_doomsday_rusted; + public static Item missile_taint; + public static Item missile_micro; + public static Item missile_bhole; + public static Item missile_schrabidium; + public static Item missile_emp; + public static Item missile_shuttle; + public static Item missile_stealth; + public static Item missile_test; + + public static Item mp_thruster_10_kerosene; + public static Item mp_thruster_10_kerosene_tec; + public static Item mp_thruster_10_solid; + public static Item mp_thruster_10_xenon; + public static Item mp_thruster_15_kerosene; + public static Item mp_thruster_15_kerosene_tec; + public static Item mp_thruster_15_kerosene_dual; + public static Item mp_thruster_15_kerosene_triple; + public static Item mp_thruster_15_solid; + public static Item mp_thruster_15_solid_hexdecuple; + public static Item mp_thruster_15_hydrogen; + public static Item mp_thruster_15_hydrogen_dual; + public static Item mp_thruster_15_balefire_short; + public static Item mp_thruster_15_balefire; + public static Item mp_thruster_15_balefire_large; + public static Item mp_thruster_15_balefire_large_rad; + public static Item mp_thruster_20_kerosene; + public static Item mp_thruster_20_kerosene_dual; + public static Item mp_thruster_20_kerosene_triple; + public static Item mp_thruster_20_solid; + public static Item mp_thruster_20_solid_multi; + public static Item mp_thruster_20_solid_multier; + + public static Item mp_stability_10_flat; + public static Item mp_stability_10_cruise; + public static Item mp_stability_10_space; + public static Item mp_stability_15_flat; + public static Item mp_stability_15_thin; + public static Item mp_stability_15_soyuz; + public static Item mp_stability_20_flat; + + public static Item mp_fuselage_10_kerosene; + public static Item mp_fuselage_10_kerosene_camo; + public static Item mp_fuselage_10_kerosene_desert; + public static Item mp_fuselage_10_kerosene_sky; + public static Item mp_fuselage_10_kerosene_flames; + public static Item mp_fuselage_10_kerosene_insulation; + public static Item mp_fuselage_10_kerosene_sleek; + public static Item mp_fuselage_10_kerosene_metal; + public static Item mp_fuselage_10_kerosene_taint; + + public static Item mp_fuselage_10_solid; + public static Item mp_fuselage_10_solid_flames; + public static Item mp_fuselage_10_solid_insulation; + public static Item mp_fuselage_10_solid_sleek; + public static Item mp_fuselage_10_solid_soviet_glory; + public static Item mp_fuselage_10_solid_cathedral; + public static Item mp_fuselage_10_solid_moonlit; + public static Item mp_fuselage_10_solid_battery; + public static Item mp_fuselage_10_solid_duracell; + + public static Item mp_fuselage_10_xenon; + public static Item mp_fuselage_10_xenon_bhole; + + public static Item mp_fuselage_10_long_kerosene; + public static Item mp_fuselage_10_long_kerosene_camo; + public static Item mp_fuselage_10_long_kerosene_desert; + public static Item mp_fuselage_10_long_kerosene_sky; + public static Item mp_fuselage_10_long_kerosene_flames; + public static Item mp_fuselage_10_long_kerosene_insulation; + public static Item mp_fuselage_10_long_kerosene_sleek; + public static Item mp_fuselage_10_long_kerosene_metal; + public static Item mp_fuselage_10_long_kerosene_taint; + public static Item mp_fuselage_10_long_kerosene_dash; + public static Item mp_fuselage_10_long_kerosene_vap; + + public static Item mp_fuselage_10_long_solid; + public static Item mp_fuselage_10_long_solid_flames; + public static Item mp_fuselage_10_long_solid_insulation; + public static Item mp_fuselage_10_long_solid_sleek; + public static Item mp_fuselage_10_long_solid_soviet_glory; + public static Item mp_fuselage_10_long_solid_bullet; + public static Item mp_fuselage_10_long_solid_silvermoonlight; + + public static Item mp_fuselage_10_15_kerosene; + public static Item mp_fuselage_10_15_solid; + public static Item mp_fuselage_10_15_hydrogen; + public static Item mp_fuselage_10_15_balefire; + + public static Item mp_fuselage_15_kerosene; + public static Item mp_fuselage_15_kerosene_camo; + public static Item mp_fuselage_15_kerosene_desert; + public static Item mp_fuselage_15_kerosene_sky; + public static Item mp_fuselage_15_kerosene_insulation; + public static Item mp_fuselage_15_kerosene_metal; + public static Item mp_fuselage_15_kerosene_decorated; + public static Item mp_fuselage_15_kerosene_steampunk; + public static Item mp_fuselage_15_kerosene_polite; + public static Item mp_fuselage_15_kerosene_blackjack; + public static Item mp_fuselage_15_kerosene_lambda; + public static Item mp_fuselage_15_kerosene_minuteman; + public static Item mp_fuselage_15_kerosene_pip; + public static Item mp_fuselage_15_kerosene_taint; + public static Item mp_fuselage_15_kerosene_yuck; + + public static Item mp_fuselage_15_solid; + public static Item mp_fuselage_15_solid_insulation; + public static Item mp_fuselage_15_solid_desh; + public static Item mp_fuselage_15_solid_soviet_glory; + public static Item mp_fuselage_15_solid_soviet_stank; + public static Item mp_fuselage_15_solid_faust; + public static Item mp_fuselage_15_solid_silvermoonlight; + public static Item mp_fuselage_15_solid_snowy; + public static Item mp_fuselage_15_solid_panorama; + public static Item mp_fuselage_15_solid_roses; + public static Item mp_fuselage_15_solid_mimi; + + public static Item mp_fuselage_15_hydrogen; + public static Item mp_fuselage_15_hydrogen_cathedral; + + public static Item mp_fuselage_15_balefire; + + public static Item mp_fuselage_15_20_kerosene; + public static Item mp_fuselage_15_20_kerosene_magnusson; + public static Item mp_fuselage_15_20_solid; + + public static Item mp_fuselage_20_kerosene; + + public static Item mp_warhead_10_he; + public static Item mp_warhead_10_incendiary; + public static Item mp_warhead_10_buster; + public static Item mp_warhead_10_nuclear; + public static Item mp_warhead_10_nuclear_large; + public static Item mp_warhead_10_taint; + public static Item mp_warhead_10_cloud; + public static Item mp_warhead_15_he; + public static Item mp_warhead_15_incendiary; + public static Item mp_warhead_15_nuclear; + public static Item mp_warhead_15_nuclear_shark; + public static Item mp_warhead_15_nuclear_mimi; + public static Item mp_warhead_15_boxcar; + public static Item mp_warhead_15_n2; + public static Item mp_warhead_15_balefire; + public static Item mp_warhead_15_turbine; + public static Item mp_warhead_20_he; + + public static Item mp_chip_1; + public static Item mp_chip_2; + public static Item mp_chip_3; + public static Item mp_chip_4; + public static Item mp_chip_5; + + public static Item missile_skin_camo; + public static Item missile_skin_desert; + public static Item missile_skin_flames; + public static Item missile_skin_manly_pink; + public static Item missile_skin_orange_insulation; + public static Item missile_skin_sleek; + public static Item missile_skin_soviet_glory; + public static Item missile_skin_soviet_stank; + public static Item missile_skin_metal; + + public static Item missile_custom; + + public static Item missile_soyuz; + public static Item missile_soyuz_lander; + public static Item sat_mapper; + public static Item sat_scanner; + public static Item sat_radar; + public static Item sat_laser; + public static Item sat_foeq; + public static Item sat_resonator; + public static Item sat_miner; + public static Item sat_lunar_miner; + public static Item sat_gerald; + public static Item sat_chip; + public static Item sat_interface; + public static Item sat_coord; + public static Item sat_designator; + public static Item sat_relay; + + public static ItemEnumMulti ammo_misc; + public static ItemEnumMulti ammo_shell; + public static ItemEnumMulti ammo_fireext; + + public static Item ammo_dgk; + public static Item ammo_arty; + public static Item ammo_himars; + + public static Item gun_b92; + public static Item gun_b92_ammo; + public static Item gun_fireext; + + public static Item gun_debug; + public static Item ammo_debug; + + public static Item gun_pepperbox; + public static Item gun_light_revolver; + public static Item gun_light_revolver_atlas; + public static Item gun_light_revolver_dani; + public static Item gun_henry; + public static Item gun_henry_lincoln; + public static Item gun_greasegun; + public static Item gun_maresleg; + public static Item gun_maresleg_akimbo; + public static Item gun_maresleg_broken; + public static Item gun_flaregun; + public static Item gun_heavy_revolver; + public static Item gun_heavy_revolver_lilmac; + public static Item gun_heavy_revolver_protege; + public static Item gun_carbine; + public static Item gun_am180; + public static Item gun_liberator; + public static Item gun_congolake; + public static Item gun_flamer; + public static Item gun_flamer_topaz; + public static Item gun_flamer_daybreaker; + public static Item gun_uzi; + public static Item gun_uzi_akimbo; + public static Item gun_spas12; + public static Item gun_panzerschreck; + public static Item gun_g3; + public static Item gun_g3_zebra; + public static Item gun_stinger; + public static Item gun_chemthrower; + public static Item gun_m2; + public static Item gun_autoshotgun; + public static Item gun_autoshotgun_shredder; + public static Item gun_autoshotgun_sexy; + public static Item gun_quadro; + public static Item gun_lag; + public static Item gun_minigun; + public static Item gun_minigun_dual; + public static Item gun_minigun_lacunae; + public static Item gun_missile_launcher; + public static Item gun_tesla_cannon; + public static Item gun_laser_pistol; + public static Item gun_laser_pistol_pew_pew; + public static Item gun_laser_pistol_morning_glory; + public static Item gun_stg77; + public static Item gun_tau; + public static Item gun_fatman; + public static Item gun_lasrifle; + public static Item gun_coilgun; + public static Item gun_hangman; + public static Item gun_mas36; + public static Item gun_bolter; + public static Item gun_folly; + public static Item gun_aberrator; + public static Item gun_aberrator_eott; + public static Item gun_double_barrel; + public static Item gun_double_barrel_sacred_dragon; + + public static Item gun_charge_thrower; + + public static Item ammo_standard; + public static Item ammo_secret; + + public static Item weapon_mod_test; + public static Item weapon_mod_generic; + public static Item weapon_mod_special; + public static Item weapon_mod_caliber; + + public static Item crucible; + + public static Item stick_dynamite; + public static Item stick_dynamite_fishing; + public static Item stick_tnt; + public static Item stick_semtex; + public static Item stick_c4; + + public static Item grenade_generic; + public static Item grenade_strong; + public static Item grenade_frag; + public static Item grenade_fire; + public static Item grenade_shrapnel; + public static Item grenade_cluster; + public static Item grenade_flare; + public static Item grenade_electric; + public static Item grenade_poison; + public static Item grenade_gas; + public static Item grenade_pulse; + public static Item grenade_plasma; + public static Item grenade_tau; + public static Item grenade_schrabidium; + public static Item grenade_lemon; + public static Item grenade_gascan; + public static Item grenade_kyiv; + public static Item grenade_mk2; + public static Item grenade_aschrab; + public static Item grenade_nuke; + public static Item grenade_nuclear; + public static Item grenade_zomg; + public static Item grenade_black_hole; + public static Item grenade_cloud; + public static Item grenade_pink_cloud; + public static Item ullapool_caber; + + public static Item grenade_if_generic; + public static Item grenade_if_he; + public static Item grenade_if_bouncy; + public static Item grenade_if_sticky; + public static Item grenade_if_impact; + public static Item grenade_if_incendiary; + public static Item grenade_if_toxic; + public static Item grenade_if_concussion; + public static Item grenade_if_brimstone; + public static Item grenade_if_mystery; + public static Item grenade_if_spark; + public static Item grenade_if_hopwire; + public static Item grenade_if_null; + + public static Item grenade_smart; + public static Item grenade_mirv; + public static Item grenade_breach; + public static Item grenade_burst; + + public static Item nuclear_waste_pearl; + + public static Item weaponized_starblaster_cell; + + public static Item bomb_waffle; + public static Item schnitzel_vegan; + public static Item cotton_candy; + public static Item apple_lead; + public static Item apple_schrabidium; + public static Item tem_flakes; + public static Item glowing_stew; + public static Item balefire_scrambled; + public static Item balefire_and_ham; + public static Item lemon; + public static Item definitelyfood; + public static Item loops; + public static Item loop_stew; + public static Item spongebob_macaroni; + public static Item fooditem; + public static Item twinkie; + public static Item static_sandwich; + public static Item pudding; + public static Item pancake; + public static Item nugget; + public static Item peas; + public static Item marshmallow; + public static Item cheese; + public static Item quesadilla; + public static Item glyphid_meat; + public static Item glyphid_meat_grilled; + public static Item egg_glyphid; + + public static Item med_ipecac; + public static Item med_ptsd; + public static Item med_schizophrenia; + + public static Item canteen_vodka; + public static Item canteen_fab; + + public static Item defuser; + public static Item reacher; + public static Item bismuth_tool; + public static Item meltdown_tool; + + public static Item flame_pony; + public static Item flame_conspiracy; + public static Item flame_politics; + public static Item flame_opinion; + + //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; + public static Item boy_propellant; + public static Item boy_bullet; + public static Item boy_target; + public static Item boy_shielding; + //public static Item man_explosive; + public static Item man_igniter; + public static Item man_core; + public static Item mike_core; + public static Item mike_deut; + public static Item mike_cooling_unit; + public static Item tsar_core; + public static Item fleija_igniter; + public static Item fleija_propellant; + public static Item fleija_core; + public static Item solinium_igniter; + public static Item solinium_propellant; + public static Item solinium_core; + public static Item n2_charge; + public static Item egg_balefire_shard; + public static Item egg_balefire; + + public static Item custom_tnt; + public static Item custom_nuke; + public static Item custom_hydro; + public static Item custom_amat; + public static Item custom_dirty; + public static Item custom_schrab; + public static Item custom_fall; + + public static Item battery_generic; + public static Item battery_advanced; + public static Item battery_lithium; + public static Item battery_schrabidium; + public static Item battery_spark; + public static Item battery_trixite; + public static Item battery_creative; + + public static Item battery_red_cell; + public static Item battery_red_cell_6; + public static Item battery_red_cell_24; + public static Item battery_advanced_cell; + public static Item battery_advanced_cell_4; + public static Item battery_advanced_cell_12; + public static Item battery_lithium_cell; + public static Item battery_lithium_cell_3; + public static Item battery_lithium_cell_6; + public static Item battery_schrabidium_cell; + public static Item battery_schrabidium_cell_2; + public static Item battery_schrabidium_cell_4; + public static Item battery_spark_cell_6; + public static Item battery_spark_cell_25; + public static Item battery_spark_cell_100; + public static Item battery_spark_cell_1000; + public static Item battery_spark_cell_2500; + public static Item battery_spark_cell_10000; + public static Item battery_spark_cell_power; + public static Item cube_power; + + public static Item battery_sc_uranium; + public static Item battery_sc_technetium; + public static Item battery_sc_plutonium; + public static Item battery_sc_polonium; + public static Item battery_sc_gold; + public static Item battery_sc_lead; + public static Item battery_sc_americium; + + public static Item battery_potato; + public static Item battery_potatos; + public static Item hev_battery; + public static Item fusion_core; + public static Item fusion_core_infinite; + public static Item energy_core; + public static Item fuse; + public static Item redcoil_capacitor; + public static Item euphemium_capacitor; + //by using these in crafting table recipes, i'm running the risk of making my recipes too greg-ian (which i don't like) + //in the event that i forget about the meaning of the word "sparingly", please throw a brick at my head + public static Item screwdriver; + public static Item screwdriver_desh; + public static Item hand_drill; + public static Item hand_drill_desh; + public static Item wrench_archineer; + public static Item chemistry_set; + public static Item chemistry_set_boron; + public static Item blowtorch; + public static Item acetylene_torch; + public static Item boltgun; + public static Item overfuse; + public static Item arc_electrode; + public static Item arc_electrode_burnt; + + public static Item upgrade_muffler; + + public static Item upgrade_template; + public static Item upgrade_speed_1; + public static Item upgrade_speed_2; + public static Item upgrade_speed_3; + public static Item upgrade_effect_1; + public static Item upgrade_effect_2; + public static Item upgrade_effect_3; + public static Item upgrade_power_1; + public static Item upgrade_power_2; + public static Item upgrade_power_3; + public static Item upgrade_fortune_1; + public static Item upgrade_fortune_2; + public static Item upgrade_fortune_3; + public static Item upgrade_afterburn_1; + public static Item upgrade_afterburn_2; + public static Item upgrade_afterburn_3; + public static Item upgrade_overdrive_1; + public static Item upgrade_overdrive_2; + public static Item upgrade_overdrive_3; + public static Item upgrade_radius; + public static Item upgrade_health; + public static Item upgrade_smelter; + public static Item upgrade_shredder; + public static Item upgrade_centrifuge; + public static Item upgrade_crystallizer; + public static Item upgrade_nullifier; + 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; + public static Item euphemium_helmet; + public static Item euphemium_plate; + public static Item euphemium_legs; + public static Item euphemium_boots; + public static Item apple_euphemium; + public static Item watch; + + public static Item goggles; + public static Item ashglasses; + public static Item gas_mask; + public static Item gas_mask_m65; + public static Item gas_mask_mono; + public static Item gas_mask_olde; + public static Item mask_rag; + public static Item mask_piss; + public static Item hat; + public static Item beta; + public static Item no9; + + public static Item t45_helmet; + public static Item t45_plate; + public static Item t45_legs; + public static Item t45_boots; + public static Item steamsuit_helmet; + 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; + + public static Item schrabidium_helmet; + public static Item schrabidium_plate; + public static Item schrabidium_legs; + public static Item schrabidium_boots; + public static Item titanium_helmet; + public static Item titanium_plate; + public static Item titanium_legs; + public static Item titanium_boots; + public static Item steel_helmet; + public static Item steel_plate; + public static Item steel_legs; + public static Item steel_boots; + public static Item alloy_helmet; + public static Item alloy_plate; + public static Item alloy_legs; + public static Item alloy_boots; + public static Item cmb_helmet; + public static Item cmb_plate; + public static Item cmb_legs; + public static Item cmb_boots; + public static Item paa_plate; + public static Item paa_legs; + public static Item paa_boots; + public static Item asbestos_helmet; + public static Item asbestos_plate; + public static Item asbestos_legs; + public static Item asbestos_boots; + public static Item security_helmet; + public static Item security_plate; + public static Item security_legs; + public static Item security_boots; + public static Item cobalt_helmet; + public static Item cobalt_plate; + public static Item cobalt_legs; + public static Item cobalt_boots; + public static Item starmetal_helmet; + public static Item starmetal_plate; + public static Item starmetal_legs; + public static Item starmetal_boots; + public static Item dnt_helmet; + public static Item dnt_plate; + public static Item dnt_legs; + public static Item dnt_boots; + public static Item ajr_helmet; + public static Item ajr_plate; + public static Item ajr_legs; + public static Item ajr_boots; + public static Item ajro_helmet; + public static Item ajro_plate; + public static Item ajro_legs; + public static Item ajro_boots; + public static Item rpa_helmet; + public static Item rpa_plate; + public static Item rpa_legs; + public static Item rpa_boots; + public static Item bismuth_helmet; + public static Item bismuth_plate; + public static Item bismuth_legs; + public static Item bismuth_boots; + public static Item bj_helmet; + public static Item bj_plate; + public static Item bj_plate_jetpack; + public static Item bj_legs; + public static Item bj_boots; + public static Item envsuit_helmet; + public static Item envsuit_plate; + public static Item envsuit_legs; + public static Item envsuit_boots; + public static Item hev_helmet; + public static Item hev_plate; + public static Item hev_legs; + public static Item hev_boots; + public static Item fau_helmet; + public static Item fau_plate; + public static Item fau_legs; + public static Item fau_boots; + public static Item dns_helmet; + public static Item dns_plate; + public static Item dns_legs; + public static Item dns_boots; + public static Item taurun_helmet; + public static Item taurun_plate; + public static Item taurun_legs; + public static Item taurun_boots; + public static Item trenchmaster_helmet; + public static Item trenchmaster_plate; + public static Item trenchmaster_legs; + public static Item trenchmaster_boots; + public static Item zirconium_legs; + public static Item robes_helmet; + public static Item robes_plate; + public static Item robes_legs; + public static Item robes_boots; + + public static Item jetpack_boost; + public static Item jetpack_break; + public static Item jetpack_fly; + public static Item jetpack_vector; + public static Item wings_limp; + public static Item wings_murk; + + public static Item jackt; + public static Item jackt2; + + public static Item schrabidium_sword; + public static Item schrabidium_pickaxe; + public static Item schrabidium_axe; + public static Item schrabidium_shovel; + public static Item schrabidium_hoe; + public static Item titanium_sword; + public static Item titanium_pickaxe; + public static Item titanium_axe; + public static Item titanium_shovel; + public static Item titanium_hoe; + public static Item steel_sword; + public static Item steel_pickaxe; + public static Item steel_axe; + public static Item steel_shovel; + public static Item steel_hoe; + public static Item alloy_sword; + public static Item alloy_pickaxe; + public static Item alloy_axe; + public static Item alloy_shovel; + public static Item alloy_hoe; + public static Item cmb_sword; + public static Item cmb_pickaxe; + public static Item cmb_axe; + public static Item cmb_shovel; + public static Item cmb_hoe; + public static Item elec_sword; + public static Item elec_pickaxe; + public static Item elec_axe; + public static Item elec_shovel; + public static Item desh_sword; + public static Item desh_pickaxe; + public static Item desh_axe; + public static Item desh_shovel; + public static Item desh_hoe; + public static Item cobalt_sword; + public static Item cobalt_pickaxe; + public static Item cobalt_axe; + public static Item cobalt_shovel; + public static Item cobalt_hoe; + public static Item cobalt_decorated_sword; + public static Item cobalt_decorated_pickaxe; + public static Item cobalt_decorated_axe; + public static Item cobalt_decorated_shovel; + public static Item cobalt_decorated_hoe; + public static Item starmetal_sword; + public static Item starmetal_pickaxe; + public static Item starmetal_axe; + public static Item starmetal_shovel; + public static Item starmetal_hoe; + public static Item smashing_hammer; + public static Item centri_stick; + public static Item drax; + public static Item drax_mk2; + public static Item drax_mk3; + public static Item bismuth_pickaxe; + public static Item bismuth_axe; + public static Item volcanic_pickaxe; + public static Item volcanic_axe; + public static Item chlorophyte_pickaxe; + public static Item chlorophyte_axe; + public static Item mese_pickaxe; + public static Item mese_axe; + public static Item dnt_sword; + public static Item dwarven_pickaxe; + + public static Item meteorite_sword; + public static Item meteorite_sword_seared; + public static Item meteorite_sword_reforged; + public static Item meteorite_sword_hardened; + public static Item meteorite_sword_alloyed; + public static Item meteorite_sword_machined; + public static Item meteorite_sword_treated; + public static Item meteorite_sword_etched; + public static Item meteorite_sword_bred; + public static Item meteorite_sword_irradiated; + public static Item meteorite_sword_fused; + public static Item meteorite_sword_baleful; + + public static Item matchstick; + public static Item balefire_and_steel; + + public static Item mask_of_infamy; + + public static Item schrabidium_hammer; + public static Item shimmer_sledge; + public static Item shimmer_axe; + public static Item bottle_opener; + public static Item pch; //for compat please do not hit me + public static Item wood_gavel; + public static Item lead_gavel; + public static Item diamond_gavel; + public static Item mese_gavel; + + public static Item crowbar; + + public static Item wrench; + public static Item wrench_flipped; + public static Item memespoon; + + public static Item multitool_hit; + public static Item multitool_dig; + public static Item multitool_silk; + public static Item multitool_ext; + public static Item multitool_miner; + public static Item multitool_beam; + public static Item multitool_sky; + public static Item multitool_mega; + public static Item multitool_joule; + public static Item multitool_decon; + + public static Item saw; + public static Item bat; + public static Item bat_nail; + public static Item golf_club; + public static Item pipe_rusty; + public static Item pipe_lead; + public static Item reer_graar; + public static Item stopsign; + public static Item sopsign; + public static Item chernobylsign; + + public static Item crystal_horn; + public static Item crystal_charred; + + public static Item attachment_mask; + public static Item attachment_mask_mono; + public static Item back_tesla; + public static Item servo_set; + public static Item servo_set_desh; + public static Item pads_rubber; + public static Item pads_slime; + public static Item pads_static; + public static Item cladding_paint; + public static Item cladding_rubber; + public static Item cladding_lead; + public static Item cladding_desh; + public static Item cladding_ghiorsium; + public static Item cladding_iron; + public static Item cladding_obsidian; + public static Item insert_kevlar; + public static Item insert_sapi; + public static Item insert_esapi; + public static Item insert_xsapi; + public static Item insert_steel; + public static Item insert_du; + public static Item insert_polonium; + public static Item insert_ghiorsium; + public static Item insert_era; + public static Item insert_yharonite; + public static Item insert_doxium; + public static Item armor_polish; + public static Item bandaid; + public static Item serum; + public static Item quartz_plutonium; + public static Item morning_glory; + public static Item lodestone; + public static Item horseshoe_magnet; + public static Item industrial_magnet; + public static Item bathwater; + public static Item bathwater_mk2; + public static Item spider_milk; + public static Item ink; + public static Item heart_piece; + public static Item heart_container; + public static Item heart_booster; + public static Item heart_fab; + public static Item black_diamond; + public static Item wd40; + public static Item scrumpy; + public static Item wild_p; + public static Item fabsols_vodka; + public static Item shackles; + public static Item injector_5htp; + public static Item injector_knife; + public static Item medal_liquidator; + public static Item bottled_cloud; + public static Item protection_charm; + public static Item meteor_charm; + public static Item neutrino_lens; + public static Item gas_tester; + public static Item defuser_gold; + public static Item ballistic_gauntlet; + public static Item night_vision; + public static Item card_aos; + public static Item card_qos; + public static Item australium_iii; + public static Item armor_battery; + public static Item armor_battery_mk2; + public static Item armor_battery_mk3; + + public static Item hazmat_helmet; + public static Item hazmat_plate; + public static Item hazmat_legs; + public static Item hazmat_boots; + public static Item hazmat_helmet_red; + public static Item hazmat_plate_red; + public static Item hazmat_legs_red; + public static Item hazmat_boots_red; + public static Item hazmat_helmet_grey; + public static Item hazmat_plate_grey; + public static Item hazmat_legs_grey; + public static Item hazmat_boots_grey; + public static Item liquidator_helmet; + public static Item liquidator_plate; + public static Item liquidator_legs; + public static Item liquidator_boots; + + public static Item hazmat_paa_helmet; + public static Item hazmat_paa_plate; + public static Item hazmat_paa_legs; + public static Item hazmat_paa_boots; + + public static Item wand; + public static Item wand_s; + public static Item wand_d; + + public static Item structure_single; + public static Item structure_solid; + public static Item structure_pattern; + public static Item structure_randomized; + public static Item structure_randomly; + public static Item structure_custommachine; + + public static Item rod_of_discord; + + public static Item cape_radiation; + public static Item cape_gasmask; + public static Item cape_schrabidium; + public static Item cape_hidden; + + public static Item nuke_starter_kit; + public static Item nuke_advanced_kit; + public static Item nuke_commercially_kit; + public static Item nuke_electric_kit; + public static Item gadget_kit; + public static Item boy_kit; + public static Item man_kit; + public static Item mike_kit; + public static Item tsar_kit; + public static Item multi_kit; + public static Item custom_kit; + public static Item grenade_kit; + public static Item fleija_kit; + public static Item prototype_kit; + public static Item missile_kit; + public static Item t45_kit; + public static Item euphemium_kit; + public static Item solinium_kit; + public static Item hazmat_kit; + public static Item hazmat_red_kit; + public static Item hazmat_grey_kit; + public static Item kit_custom; + + public static Item legacy_toolbox; + public static Item toolbox; + + public static Item loot_10; + public static Item loot_15; + public static Item loot_misc; + + public static Item ammo_container; + + public static Item igniter; + public static Item detonator; + public static Item detonator_multi; + public static Item detonator_laser; + public static Item detonator_deadman; + public static Item detonator_de; + public static Item bomb_caller; + public static Item meteor_remote; + public static Item anchor_remote; + public static Item remote; + //public static Item turret_control; + public static Item turret_chip; + //public static Item turret_biometry; + + public static Item spawn_chopper; + public static Item spawn_worm; + public static Item spawn_ufo; + public static Item spawn_duck; + + public static Item key; + public static Item key_red; + public static Item key_red_cracked; + public static Item key_kit; + public static Item key_fake; + public static Item pin; + public static Item padlock_rusty; + public static Item padlock; + public static Item padlock_reinforced; + public static Item padlock_unbreakable; + + public static Item mech_key; + + public static Item bucket_mud; + public static Item bucket_acid; + public static Item bucket_toxic; + public static Item bucket_schrabidic_acid; + public static Item bucket_sulfuric_acid; + + public static Item door_metal; + public static Item door_office; + public static Item door_bunker; + public static Item door_red; + + public static Item sliding_blast_door_skin; + + public static Item record_lc; + public static Item record_ss; + public static Item record_vc; + public static Item record_glass; + + public static Item book_guide; + public static Item book_lore; + public static Item holotape_image; + public static Item holotape_damaged; + public static Item clay_tablet; + + public static Item polaroid; + public static Item glitch; + public static Item letter; + public static Item book_secret; + public static Item book_of_; + public static Item page_of_; + public static Item book_lemegeton; + public static Item burnt_bark; + + public static Item chlorine1; + public static Item chlorine2; + public static Item chlorine3; + public static Item chlorine4; + public static Item chlorine5; + public static Item chlorine6; + public static Item chlorine7; + public static Item chlorine8; + public static Item pc1; + public static Item pc2; + public static Item pc3; + public static Item pc4; + public static Item pc5; + public static Item pc6; + public static Item pc7; + public static Item pc8; + public static Item cloud1; + public static Item cloud2; + public static Item cloud3; + public static Item cloud4; + public static Item cloud5; + public static Item cloud6; + public static Item cloud7; + public static Item cloud8; + public static Item orange1; + public static Item orange2; + public static Item orange3; + public static Item orange4; + public static Item orange5; + public static Item orange6; + public static Item orange7; + public static Item orange8; + public static Item nothing; + + public static Item achievement_icon; + public static Item bob_metalworks; + public static Item bob_assembly; + public static Item bob_chemistry; + public static Item bob_oil; + public static Item bob_nuclear; + + public static Item mysteryshovel; + public static Item memory; + + public static Item conveyor_wand; + + public static void initializeItem() { + + redstone_sword = new RedstoneSword(ToolMaterial.STONE).setUnlocalizedName("redstone_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":redstone_sword"); + big_sword = new BigSword(ToolMaterial.EMERALD).setUnlocalizedName("big_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":big_sword"); + + test_nuke_igniter = new Item().setUnlocalizedName("test_nuke_igniter").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_igniter"); + test_nuke_propellant = new Item().setUnlocalizedName("test_nuke_propellant").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_propellant"); + test_nuke_tier1_shielding = new Item().setUnlocalizedName("test_nuke_tier1_shielding").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_shielding"); + test_nuke_tier2_shielding = new Item().setUnlocalizedName("test_nuke_tier2_shielding").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_shielding"); + test_nuke_tier1_bullet = new Item().setUnlocalizedName("test_nuke_tier1_bullet").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_bullet"); + test_nuke_tier2_bullet = new Item().setUnlocalizedName("test_nuke_tier2_bullet").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_bullet"); + test_nuke_tier1_target = new Item().setUnlocalizedName("test_nuke_tier1_target").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_target"); + test_nuke_tier2_target = new Item().setUnlocalizedName("test_nuke_tier2_target").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_target"); + + ingot_th232 = new Item().setUnlocalizedName("ingot_th232").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_th232"); + ingot_uranium = new Item().setUnlocalizedName("ingot_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_uranium"); + ingot_u233 = new Item().setUnlocalizedName("ingot_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_u233"); + ingot_u235 = new Item().setUnlocalizedName("ingot_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_u235"); + ingot_u238 = new Item().setUnlocalizedName("ingot_u238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_u238"); + ingot_u238m2 = new ItemUnstable(350, 200).setUnlocalizedName("ingot_u238m2").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_u238m2"); + ingot_plutonium = new Item().setUnlocalizedName("ingot_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_plutonium"); + ingot_pu238 = new Item().setUnlocalizedName("ingot_pu238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu238"); + ingot_pu239 = new Item().setUnlocalizedName("ingot_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu239"); + ingot_pu240 = new Item().setUnlocalizedName("ingot_pu240").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu240"); + ingot_pu241 = new Item().setUnlocalizedName("ingot_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu241"); + ingot_pu_mix = new Item().setUnlocalizedName("ingot_pu_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pu_mix"); + ingot_am241 = new Item().setUnlocalizedName("ingot_am241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_am241"); + ingot_am242 = new Item().setUnlocalizedName("ingot_am242").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_am242"); + ingot_am_mix = new Item().setUnlocalizedName("ingot_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_am_mix"); + ingot_neptunium = new ItemCustomLore().setUnlocalizedName("ingot_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_neptunium"); + ingot_polonium = new Item().setUnlocalizedName("ingot_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polonium"); + ingot_technetium = new Item().setUnlocalizedName("ingot_technetium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_technetium"); + ingot_co60 = new Item().setUnlocalizedName("ingot_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_co60"); + ingot_sr90 = new Item().setUnlocalizedName("ingot_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_sr90"); + ingot_au198 = new Item().setUnlocalizedName("ingot_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_au198"); + ingot_pb209 = new Item().setUnlocalizedName("ingot_pb209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pb209"); + ingot_ra226 = new Item().setUnlocalizedName("ingot_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_ra226"); + ingot_titanium = new Item().setUnlocalizedName("ingot_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_titanium"); + ingot_cobalt = new Item().setUnlocalizedName("ingot_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cobalt"); + ingot_boron = new Item().setUnlocalizedName("ingot_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_boron"); + ingot_graphite = new Item().setUnlocalizedName("ingot_graphite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_graphite"); + ingot_firebrick = new Item().setUnlocalizedName("ingot_firebrick").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_firebrick"); + ingot_smore = new ItemFood(10, 20F, false).setUnlocalizedName("ingot_smore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_smore"); + sulfur = new Item().setUnlocalizedName("sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sulfur"); + nitra = new Item().setUnlocalizedName("nitra").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra"); + nitra_small = new Item().setUnlocalizedName("nitra_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra_small"); + + ingot_uranium_fuel = new Item().setUnlocalizedName("ingot_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_uranium_fuel"); + ingot_plutonium_fuel = new Item().setUnlocalizedName("ingot_plutonium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_plutonium_fuel"); + ingot_neptunium_fuel = new Item().setUnlocalizedName("ingot_neptunium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_neptunium_fuel"); + ingot_mox_fuel = new Item().setUnlocalizedName("ingot_mox_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_mox_fuel"); + ingot_americium_fuel = new Item().setUnlocalizedName("ingot_americium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_americium_fuel"); + ingot_schrabidium_fuel = new Item().setUnlocalizedName("ingot_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidium_fuel"); + ingot_thorium_fuel = new Item().setUnlocalizedName("ingot_thorium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_thorium_fuel"); + nugget_uranium_fuel = new Item().setUnlocalizedName("nugget_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_uranium_fuel"); + nugget_thorium_fuel = new Item().setUnlocalizedName("nugget_thorium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_thorium_fuel"); + nugget_plutonium_fuel = new Item().setUnlocalizedName("nugget_plutonium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_plutonium_fuel"); + nugget_neptunium_fuel = new Item().setUnlocalizedName("nugget_neptunium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_neptunium_fuel"); + nugget_mox_fuel = new Item().setUnlocalizedName("nugget_mox_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mox_fuel"); + nugget_americium_fuel = new Item().setUnlocalizedName("nugget_americium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_americium_fuel"); + nugget_schrabidium_fuel = new Item().setUnlocalizedName("nugget_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium_fuel"); + ingot_advanced_alloy = new Item().setUnlocalizedName("ingot_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_advanced_alloy"); + ingot_tcalloy = new Item().setUnlocalizedName("ingot_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tcalloy"); + ingot_cdalloy = new Item().setUnlocalizedName("ingot_cdalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cdalloy"); + ingot_bismuth_bronze = new Item().setUnlocalizedName("ingot_bismuth_bronze").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth_bronze"); + ingot_arsenic_bronze = new Item().setUnlocalizedName("ingot_arsenic_bronze").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_arsenic_bronze"); + ingot_bscco = new Item().setUnlocalizedName("ingot_bscco").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bscco"); + + niter = new Item().setUnlocalizedName("niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":salpeter"); + ingot_copper = new Item().setUnlocalizedName("ingot_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_copper"); + ingot_red_copper = new Item().setUnlocalizedName("ingot_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_red_copper"); + ingot_tungsten = new Item().setUnlocalizedName("ingot_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tungsten"); + ingot_aluminium = new Item().setUnlocalizedName("ingot_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_aluminium"); + fluorite = new Item().setUnlocalizedName("fluorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fluorite"); + ingot_beryllium = new Item().setUnlocalizedName("ingot_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_beryllium"); + ingot_steel = new Item().setUnlocalizedName("ingot_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_steel"); + plate_steel = new Item().setUnlocalizedName("plate_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_steel"); + plate_iron = new Item().setUnlocalizedName("plate_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_iron"); + ingot_lead = new Item().setUnlocalizedName("ingot_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lead"); + plate_lead = new Item().setUnlocalizedName("plate_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_lead"); + plate_dura_steel = new Item().setUnlocalizedName("plate_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dura_steel"); + ingot_schraranium = new ItemSchraranium().setUnlocalizedName("ingot_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schraranium"); + ingot_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidium"); + ingot_schrabidate = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidate"); + plate_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("plate_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_schrabidium"); + plate_copper = new Item().setUnlocalizedName("plate_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_copper"); + plate_gold = new Item().setUnlocalizedName("plate_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_gold"); + plate_advanced_alloy = new Item().setUnlocalizedName("plate_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_advanced_alloy"); + lithium = new Item().setUnlocalizedName("lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":lithium"); + ingot_zirconium = new Item().setUnlocalizedName("ingot_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_zirconium"); + ingot_semtex = new ItemLemon(4, 5, true).setUnlocalizedName("ingot_semtex").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_semtex"); + ingot_c4 = new Item().setUnlocalizedName("ingot_c4").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_c4"); + ingot_phosphorus = new Item().setUnlocalizedName("ingot_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_phosphorus"); + coil_advanced_alloy = new Item().setUnlocalizedName("coil_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_advanced_alloy"); + coil_advanced_torus = new Item().setUnlocalizedName("coil_advanced_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_advanced_torus"); + ingot_magnetized_tungsten = new Item().setUnlocalizedName("ingot_magnetized_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_magnetized_tungsten"); + ingot_combine_steel = new ItemCustomLore().setUnlocalizedName("ingot_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_combine_steel"); + plate_mixed = new Item().setUnlocalizedName("plate_mixed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_mixed"); + plate_paa = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_paa"); + pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel"); + drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium"); + plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium"); + plate_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium"); + bolt = new ItemAutogen(MaterialShapes.BOLT).oun("boltntm").setUnlocalizedName("bolt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt"); + bolt_spike = new ItemCustomLore().setUnlocalizedName("bolt_spike").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_spike"); + plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_polymer"); + plate_kevlar = new Item().setUnlocalizedName("plate_kevlar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_kevlar"); + plate_dineutronium = new Item().setUnlocalizedName("plate_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dineutronium"); + plate_desh = new Item().setUnlocalizedName("plate_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_desh"); + plate_bismuth = new ItemCustomLore().setUnlocalizedName("plate_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_bismuth"); + ingot_solinium = new Item().setUnlocalizedName("ingot_solinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_solinium"); + nugget_solinium = new Item().setUnlocalizedName("nugget_solinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_solinium"); + photo_panel = new Item().setUnlocalizedName("photo_panel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":photo_panel"); + 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"); + item_secret = new ItemEnumMulti(EnumSecretType.class, true, true).setUnlocalizedName("item_secret").setCreativeTab(null).setTextureName(RefStrings.MODID + ":item_secret"); + ingot_metal = new ItemEnumMulti(EnumIngotMetal.class, true, true).setUnlocalizedName("ingot_metal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":ingot_metal"); + chemical_dye = new ItemChemicalDye().setUnlocalizedName("chemical_dye").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chemical_dye"); + crayon = new ItemCrayon().setUnlocalizedName("crayon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crayon"); + + undefined = new ItemCustomLore().setUnlocalizedName("undefined").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":undefined"); + + billet_uranium = new Item().setUnlocalizedName("billet_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_uranium"); + billet_u233 = new Item().setUnlocalizedName("billet_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_u233"); + billet_u235 = new Item().setUnlocalizedName("billet_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_u235"); + billet_u238 = new Item().setUnlocalizedName("billet_u238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_u238"); + billet_th232 = new Item().setUnlocalizedName("billet_th232").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_th232"); + billet_plutonium = new Item().setUnlocalizedName("billet_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_plutonium"); + billet_pu238 = new Item().setUnlocalizedName("billet_pu238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu238"); + billet_pu239 = new Item().setUnlocalizedName("billet_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu239"); + billet_pu240 = new Item().setUnlocalizedName("billet_pu240").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu240"); + billet_pu241 = new Item().setUnlocalizedName("billet_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu241"); + billet_pu_mix = new Item().setUnlocalizedName("billet_pu_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu_mix"); + billet_am241 = new Item().setUnlocalizedName("billet_am241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_am241"); + billet_am242 = new Item().setUnlocalizedName("billet_am242").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_am242"); + billet_am_mix = new Item().setUnlocalizedName("billet_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_am_mix"); + billet_neptunium = new Item().setUnlocalizedName("billet_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_neptunium"); + billet_polonium = new Item().setUnlocalizedName("billet_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_polonium"); + billet_technetium = new Item().setUnlocalizedName("billet_technetium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_technetium"); + billet_cobalt = new Item().setUnlocalizedName("billet_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_cobalt"); + billet_co60 = new Item().setUnlocalizedName("billet_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_co60"); + billet_sr90 = new Item().setUnlocalizedName("billet_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_sr90"); + billet_au198 = new Item().setUnlocalizedName("billet_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_au198"); + billet_pb209 = new Item().setUnlocalizedName("billet_pb209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pb209"); + billet_ra226 = new Item().setUnlocalizedName("billet_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_ra226"); + billet_actinium = new Item().setUnlocalizedName("billet_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_actinium"); + billet_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("billet_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_schrabidium"); + billet_solinium = new Item().setUnlocalizedName("billet_solinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_solinium"); + billet_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("billet_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_gh336"); + billet_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_australium"); + billet_australium_lesser = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_australium_lesser").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_australium_lesser"); + billet_australium_greater = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_australium_greater").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_australium_greater"); + billet_uranium_fuel = new Item().setUnlocalizedName("billet_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_uranium_fuel"); + billet_thorium_fuel = new Item().setUnlocalizedName("billet_thorium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_thorium_fuel"); + billet_plutonium_fuel = new Item().setUnlocalizedName("billet_plutonium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_plutonium_fuel"); + billet_neptunium_fuel = new Item().setUnlocalizedName("billet_neptunium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_neptunium_fuel"); + billet_mox_fuel = new Item().setUnlocalizedName("billet_mox_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_mox_fuel"); + billet_americium_fuel = new Item().setUnlocalizedName("billet_americium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_americium_fuel"); + billet_les = new Item().setUnlocalizedName("billet_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_les"); + billet_schrabidium_fuel = new Item().setUnlocalizedName("billet_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_schrabidium_fuel"); + billet_hes = new Item().setUnlocalizedName("billet_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_hes"); + billet_po210be = new Item().setUnlocalizedName("billet_po210be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_po210be"); + billet_ra226be = new Item().setUnlocalizedName("billet_ra226be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_ra226be"); + billet_pu238be = new Item().setUnlocalizedName("billet_pu238be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu238be"); + billet_beryllium = new Item().setUnlocalizedName("billet_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_beryllium"); + billet_bismuth = new Item().setUnlocalizedName("billet_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_bismuth"); + billet_zirconium = new Item().setUnlocalizedName("billet_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zirconium"); + billet_yharonite = new Item().setUnlocalizedName("billet_yharonite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_yharonite"); + billet_balefire_gold = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_balefire_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_balefire_gold"); + billet_flashlead = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("billet_flashlead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_flashlead"); + billet_zfb_bismuth = new Item().setUnlocalizedName("billet_zfb_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_bismuth"); + billet_zfb_pu241 = new Item().setUnlocalizedName("billet_zfb_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_pu241"); + billet_zfb_am_mix = new Item().setUnlocalizedName("billet_zfb_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_am_mix"); + billet_nuclear_waste = new Item().setUnlocalizedName("billet_nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_nuclear_waste"); + + ball_resin = new ItemCustomLore().setUnlocalizedName("ball_resin").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_resin"); + ingot_dura_steel = new ItemCustomLore().setUnlocalizedName("ingot_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dura_steel"); + ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polymer"); + ingot_bakelite = new ItemCustomLore().setUnlocalizedName("ingot_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bakelite"); + ingot_biorubber = new ItemCustomLore().setUnlocalizedName("ingot_biorubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_biorubber"); + ingot_rubber = new ItemCustomLore().setUnlocalizedName("ingot_rubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_rubber"); + ingot_pc = new ItemCustomLore().setUnlocalizedName("ingot_pc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pc"); + ingot_pvc = new ItemCustomLore().setUnlocalizedName("ingot_pvc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pvc"); + ingot_desh = new ItemCustomLore().setUnlocalizedName("ingot_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_desh"); + nugget_desh = new ItemCustomLore().setUnlocalizedName("nugget_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_desh"); + ingot_dineutronium = new ItemCustomLore().setUnlocalizedName("ingot_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dineutronium"); + nugget_dineutronium = new ItemCustomLore().setUnlocalizedName("nugget_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_dineutronium"); + powder_dineutronium = new ItemCustomLore().setUnlocalizedName("powder_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_dineutronium"); + ingot_starmetal = new ItemStarmetal().setUnlocalizedName("ingot_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_starmetal"); + ingot_gunmetal = new Item().setUnlocalizedName("ingot_gunmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gunmetal"); + plate_gunmetal = new Item().setUnlocalizedName("plate_gunmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_gunmetal"); + ingot_weaponsteel = new Item().setUnlocalizedName("ingot_weaponsteel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gunsteel"); + plate_weaponsteel = new Item().setUnlocalizedName("plate_weaponsteel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_gunsteel"); + ingot_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_saturnite"); + plate_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("plate_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_saturnite"); + ingot_ferrouranium = new ItemCustomLore().setUnlocalizedName("ingot_ferrouranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_ferrouranium"); + ingot_fiberglass = new ItemCustomLore().setUnlocalizedName("ingot_fiberglass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_fiberglass"); + ingot_asbestos = new ItemCustomLore().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos"); + powder_asbestos = new ItemCustomLore().setUnlocalizedName("powder_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_asbestos"); + ingot_electronium = new ItemCustomLore().setUnlocalizedName("ingot_electronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_electronium"); + nugget_zirconium = new ItemCustomLore().setUnlocalizedName("nugget_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_zirconium"); + nugget_mercury = new Item().setUnlocalizedName("nugget_mercury_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury_tiny"); + ingot_mercury = new ItemCustomLore().setUnlocalizedName("nugget_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury"); + bottle_mercury = new ItemCustomLore().setUnlocalizedName("bottle_mercury").setContainerItem(Items.glass_bottle).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bottle_mercury"); + ingot_calcium = new Item().setUnlocalizedName("ingot_calcium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_calcium"); + powder_calcium = new Item().setUnlocalizedName("powder_calcium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_calcium"); + ingot_cadmium = new Item().setUnlocalizedName("ingot_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cadmium"); + powder_cadmium = new Item().setUnlocalizedName("powder_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cadmium"); + powder_bismuth = new Item().setUnlocalizedName("powder_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bismuth"); + ingot_mud = new Item().setUnlocalizedName("ingot_mud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_mud"); + ingot_cft = new Item().setUnlocalizedName("ingot_cft").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cft"); + + ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct"); + + ore_bedrock = new ItemBedrockOre().setUnlocalizedName("ore_bedrock").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_bedrock"); + ore_centrifuged = new ItemBedrockOre().setUnlocalizedName("ore_centrifuged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_centrifuged"); + ore_cleaned = new ItemBedrockOre().setUnlocalizedName("ore_cleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_cleaned"); + ore_separated = new ItemBedrockOre().setUnlocalizedName("ore_separated").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_separated"); + ore_purified = new ItemBedrockOre().setUnlocalizedName("ore_purified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_purified"); + ore_nitrated = new ItemBedrockOre().setUnlocalizedName("ore_nitrated").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrated"); + ore_nitrocrystalline = new ItemBedrockOre().setUnlocalizedName("ore_nitrocrystalline").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrocrystalline"); + ore_deepcleaned = new ItemBedrockOre().setUnlocalizedName("ore_deepcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_deepcleaned"); + ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared"); + ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); + bedrock_ore_base = new ItemBedrockOreBase().setUnlocalizedName("bedrock_ore_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); + bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); + bedrock_ore_fragment = new ItemAutogen(MaterialShapes.FRAGMENT).aot(Mats.MAT_BISMUTH, "bedrock_ore_fragment_bismuth").setUnlocalizedName("bedrock_ore_fragment").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_fragment"); + + ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); + ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); + + ingot_meteorite = new ItemHot(200).setUnlocalizedName("ingot_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite"); + ingot_meteorite_forged = new ItemHot(200).setUnlocalizedName("ingot_meteorite_forged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite_forged"); + blade_meteorite = new ItemHot(200).setUnlocalizedName("blade_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_meteorite"); + ingot_steel_dusted = new ItemHotDusted(200).setUnlocalizedName("ingot_steel_dusted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_steel_dusted"); + ingot_chainsteel = new ItemHot(100).setUnlocalizedName("ingot_chainsteel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_chainsteel"); + + plate_armor_titanium = new Item().setUnlocalizedName("plate_armor_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_titanium"); + plate_armor_ajr = new Item().setUnlocalizedName("plate_armor_ajr").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_ajr"); + plate_armor_hev = new Item().setUnlocalizedName("plate_armor_hev").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_hev"); + plate_armor_lunar = new Item().setUnlocalizedName("plate_armor_lunar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_lunar"); + plate_armor_fau = new Item().setUnlocalizedName("plate_armor_fau").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_fau"); + plate_armor_dnt = new Item().setUnlocalizedName("plate_armor_dnt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_dnt"); + + oil_tar = new ItemEnumMulti(EnumTarType.class, true, true).setUnlocalizedName("oil_tar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":oil_tar"); + solid_fuel = new Item().setUnlocalizedName("solid_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel"); + solid_fuel_presto = new Item().setUnlocalizedName("solid_fuel_presto").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto"); + solid_fuel_presto_triplet = new Item().setUnlocalizedName("solid_fuel_presto_triplet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_triplet"); + solid_fuel_bf = new Item().setUnlocalizedName("solid_fuel_bf").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_bf"); + solid_fuel_presto_bf = new Item().setUnlocalizedName("solid_fuel_presto_bf").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_bf"); + solid_fuel_presto_triplet_bf = new Item().setUnlocalizedName("solid_fuel_presto_triplet_bf").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":solid_fuel_presto_triplet_bf"); + rocket_fuel = new Item().setUnlocalizedName("rocket_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rocket_fuel"); + coke = new ItemEnumMulti(EnumCokeType.class, true, true).setUnlocalizedName("coke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coke"); + lignite = new Item().setUnlocalizedName("lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":lignite"); + briquette = new ItemEnumMulti(EnumBriquetteType.class, true, true).setUnlocalizedName("briquette").setCreativeTab(MainRegistry.partsTab); + powder_lignite = new Item().setUnlocalizedName("powder_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lignite"); + coal_infernal = new Item().setUnlocalizedName("coal_infernal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coal_infernal"); + cinnebar = new Item().setUnlocalizedName("cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cinnebar"); + powder_ash = new ItemEnumMulti(EnumAshType.class, true, true).setUnlocalizedName("powder_ash").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ash"); + powder_limestone = new Item().setUnlocalizedName("powder_limestone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_limestone"); + powder_cement = new ItemLemon(2, 0.5F, false).setUnlocalizedName("powder_cement").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cement"); + + ingot_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gh336"); + nugget_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_gh336"); + + ingot_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("ingot_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_australium"); + nugget_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_australium"); + nugget_australium_lesser = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_australium_lesser").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_australium_lesser"); + nugget_australium_greater = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("nugget_australium_greater").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_australium_greater"); + + nugget_th232 = new Item().setUnlocalizedName("nugget_th232").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_th232"); + nugget_uranium = new Item().setUnlocalizedName("nugget_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_uranium"); + nugget_u233 = new Item().setUnlocalizedName("nugget_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_u233"); + nugget_u235 = new Item().setUnlocalizedName("nugget_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_u235"); + nugget_u238 = new Item().setUnlocalizedName("nugget_u238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_u238"); + nugget_plutonium = new Item().setUnlocalizedName("nugget_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_plutonium"); + nugget_pu238 = new Item().setUnlocalizedName("nugget_pu238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu238"); + nugget_pu239 = new Item().setUnlocalizedName("nugget_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu239"); + nugget_pu240 = new Item().setUnlocalizedName("nugget_pu240").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu240"); + nugget_pu241 = new Item().setUnlocalizedName("nugget_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu241"); + nugget_pu_mix = new Item().setUnlocalizedName("nugget_pu_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pu_mix"); + nugget_am241 = new Item().setUnlocalizedName("nugget_am241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_am241"); + nugget_am242 = new Item().setUnlocalizedName("nugget_am242").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_am242"); + nugget_am_mix = new Item().setUnlocalizedName("nugget_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_am_mix"); + nugget_neptunium = new Item().setUnlocalizedName("nugget_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_neptunium"); + nugget_polonium = new Item().setUnlocalizedName("nugget_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_polonium"); + nugget_technetium = new Item().setUnlocalizedName("nugget_technetium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_technetium"); + nugget_cobalt = new Item().setUnlocalizedName("nugget_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_cobalt"); + nugget_co60 = new Item().setUnlocalizedName("nugget_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_co60"); + nugget_sr90 = new Item().setUnlocalizedName("nugget_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_sr90"); + nugget_au198 = new Item().setUnlocalizedName("nugget_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_au198"); + nugget_pb209 = new Item().setUnlocalizedName("nugget_pb209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pb209"); + nugget_ra226 = new Item().setUnlocalizedName("nugget_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_ra226"); + nugget_actinium = new Item().setUnlocalizedName("nugget_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_actinium"); + plate_titanium = new Item().setUnlocalizedName("plate_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_titanium"); + plate_aluminium = new Item().setUnlocalizedName("plate_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_aluminium"); + neutron_reflector = new Item().setUnlocalizedName("neutron_reflector").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":neutron_reflector"); + nugget_lead = new Item().setUnlocalizedName("nugget_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_lead"); + ingot_bismuth = new ItemCustomLore().setUnlocalizedName("ingot_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bismuth"); + nugget_bismuth = new Item().setUnlocalizedName("nugget_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_bismuth"); + ingot_arsenic = new ItemCustomLore().setUnlocalizedName("ingot_arsenic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_arsenic"); + nugget_arsenic = new Item().setUnlocalizedName("nugget_arsenic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_arsenic"); + ingot_tantalium = new ItemCustomLore().setUnlocalizedName("ingot_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tantalium"); + nugget_tantalium = new ItemCustomLore().setUnlocalizedName("nugget_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_tantalium"); + ingot_silicon = new Item().setUnlocalizedName("ingot_silicon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_silicon"); + billet_silicon = new Item().setUnlocalizedName("billet_silicon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_silicon"); + nugget_silicon = new Item().setUnlocalizedName("nugget_silicon").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_silicon"); + ingot_niobium = new Item().setUnlocalizedName("ingot_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_niobium"); + nugget_niobium = new Item().setUnlocalizedName("nugget_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_niobium"); + ingot_osmiridium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_osmiridium"); + nugget_osmiridium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("nugget_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_osmiridium"); + nugget_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("nugget_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium"); + nugget_beryllium = new Item().setUnlocalizedName("nugget_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_beryllium"); + hazmat_cloth = new Item().setUnlocalizedName("hazmat_cloth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth"); + hazmat_cloth_red = new Item().setUnlocalizedName("hazmat_cloth_red").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth_red"); + hazmat_cloth_grey = new Item().setUnlocalizedName("hazmat_cloth_grey").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth_grey"); + asbestos_cloth = new Item().setUnlocalizedName("asbestos_cloth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":asbestos_cloth"); + rag = new ItemRag().setUnlocalizedName("rag").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rag"); + rag_damp = new Item().setUnlocalizedName("rag_damp").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rag_damp"); + rag_piss = new Item().setUnlocalizedName("rag_piss").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rag_piss"); + filter_coal = new Item().setUnlocalizedName("filter_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":filter_coal"); + ingot_hes = new Item().setUnlocalizedName("ingot_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_hes"); + ingot_les = new Item().setUnlocalizedName("ingot_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_les"); + nugget_hes = new Item().setUnlocalizedName("nugget_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_hes"); + nugget_les = new Item().setUnlocalizedName("nugget_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_les"); + plate_combine_steel = new Item().setUnlocalizedName("plate_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_combine_steel"); + + crystal_coal = new Item().setUnlocalizedName("crystal_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_coal"); + crystal_iron = new Item().setUnlocalizedName("crystal_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_iron"); + crystal_gold = new Item().setUnlocalizedName("crystal_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_gold"); + crystal_redstone = new Item().setUnlocalizedName("crystal_redstone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_redstone"); + crystal_lapis = new Item().setUnlocalizedName("crystal_lapis").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lapis"); + crystal_diamond = new Item().setUnlocalizedName("crystal_diamond").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_diamond"); + crystal_uranium = new Item().setUnlocalizedName("crystal_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_uranium"); + crystal_thorium = new Item().setUnlocalizedName("crystal_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_thorium"); + crystal_plutonium = new Item().setUnlocalizedName("crystal_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_plutonium"); + crystal_titanium = new Item().setUnlocalizedName("crystal_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_titanium"); + crystal_sulfur = new Item().setUnlocalizedName("crystal_sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_sulfur"); + crystal_niter = new Item().setUnlocalizedName("crystal_niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_niter"); + crystal_copper = new Item().setUnlocalizedName("crystal_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_copper"); + crystal_tungsten = new Item().setUnlocalizedName("crystal_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_tungsten"); + crystal_aluminium = new Item().setUnlocalizedName("crystal_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_aluminium"); + crystal_fluorite = new Item().setUnlocalizedName("crystal_fluorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_fluorite"); + crystal_beryllium = new Item().setUnlocalizedName("crystal_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_beryllium"); + crystal_lead = new Item().setUnlocalizedName("crystal_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lead"); + crystal_schraranium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("crystal_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schraranium"); + crystal_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("crystal_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schrabidium"); + crystal_rare = new Item().setUnlocalizedName("crystal_rare").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_rare"); + crystal_phosphorus = new Item().setUnlocalizedName("crystal_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_phosphorus"); + crystal_lithium = new Item().setUnlocalizedName("crystal_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lithium"); + crystal_cobalt = new Item().setUnlocalizedName("crystal_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_cobalt"); + crystal_starmetal = new Item().setUnlocalizedName("crystal_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_starmetal"); + crystal_cinnebar = new Item().setUnlocalizedName("crystal_cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_cinnebar"); + crystal_trixite = new Item().setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite"); + crystal_osmiridium = new Item().setUnlocalizedName("crystal_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_osmiridium"); + gem_sodalite = new ItemCustomLore().setUnlocalizedName("gem_sodalite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_sodalite"); + gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); + gem_volcanic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_volcanic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_volcanic"); + gem_rad = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_rad").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_rad"); + gem_alexandrite = new ItemAlexandrite().setUnlocalizedName("gem_alexandrite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_alexandrite"); + + powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); + powder_tantalium = new ItemCustomLore().setUnlocalizedName("powder_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tantalium"); + powder_neptunium = new Item().setUnlocalizedName("powder_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neptunium"); + powder_polonium = new Item().setUnlocalizedName("powder_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_polonium"); + powder_co60 = new Item().setUnlocalizedName("powder_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_co60"); + powder_sr90 = new Item().setUnlocalizedName("powder_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sr90"); + powder_sr90_tiny = new Item().setUnlocalizedName("powder_sr90_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sr90_tiny"); + powder_i131 = new Item().setUnlocalizedName("powder_i131").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_i131"); + powder_i131_tiny = new Item().setUnlocalizedName("powder_i131_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_i131_tiny"); + powder_xe135 = new Item().setUnlocalizedName("powder_xe135").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_xe135"); + powder_xe135_tiny = new Item().setUnlocalizedName("powder_xe135_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_xe135_tiny"); + powder_cs137 = new Item().setUnlocalizedName("powder_cs137").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137"); + powder_cs137_tiny = new Item().setUnlocalizedName("powder_cs137_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137_tiny"); + powder_au198 = new Item().setUnlocalizedName("powder_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_au198"); + powder_ra226 = new Item().setUnlocalizedName("powder_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ra226"); + powder_at209 = new Item().setUnlocalizedName("powder_at209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_at209"); + powder_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("powder_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidium"); + powder_schrabidate = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("powder_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidate"); + powder_aluminium = new Item().setUnlocalizedName("powder_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_aluminium"); + powder_beryllium = new Item().setUnlocalizedName("powder_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_beryllium"); + powder_copper = new Item().setUnlocalizedName("powder_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_copper"); + powder_gold = new Item().setUnlocalizedName("powder_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_gold"); + powder_iron = new Item().setUnlocalizedName("powder_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_iron"); + powder_titanium = new Item().setUnlocalizedName("powder_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_titanium"); + powder_tungsten = new Item().setUnlocalizedName("powder_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tungsten"); + powder_uranium = new Item().setUnlocalizedName("powder_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_uranium"); + powder_plutonium = new Item().setUnlocalizedName("powder_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_plutonium"); + dust = new ItemCustomLore().setUnlocalizedName("dust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dust"); + dust_tiny = new Item().setUnlocalizedName("dust_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dust_tiny"); + fallout = new Item().setUnlocalizedName("fallout").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fallout"); + powder_advanced_alloy = new Item().setUnlocalizedName("powder_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_advanced_alloy"); + powder_tcalloy = new Item().setUnlocalizedName("powder_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tcalloy"); + powder_coal = new Item().setUnlocalizedName("powder_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal"); + powder_coal_tiny = new Item().setUnlocalizedName("powder_coal_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal_tiny"); + powder_combine_steel = new Item().setUnlocalizedName("powder_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_combine_steel"); + powder_diamond = new Item().setUnlocalizedName("powder_diamond").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_diamond"); + powder_emerald = new Item().setUnlocalizedName("powder_emerald").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_emerald"); + powder_lapis = new Item().setUnlocalizedName("powder_lapis").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lapis"); + powder_quartz = new Item().setUnlocalizedName("powder_quartz").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_quartz"); + powder_magnetized_tungsten = new Item().setUnlocalizedName("powder_magnetized_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_magnetized_tungsten"); + powder_chlorophyte = new Item().setUnlocalizedName("powder_chlorophyte").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_chlorophyte"); + powder_red_copper = new Item().setUnlocalizedName("powder_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_red_copper"); + powder_steel = new Item().setUnlocalizedName("powder_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_steel"); + powder_lithium = new Item().setUnlocalizedName("powder_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium"); + powder_zirconium = new Item().setUnlocalizedName("powder_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_zirconium"); + powder_sodium = new Item().setUnlocalizedName("powder_sodium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sodium"); + powder_power = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_power").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_energy_alt"); + powder_iodine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_iodine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_iodine"); + powder_thorium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_thorium"); + powder_neodymium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neodymium"); + powder_astatine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_astatine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_astatine"); + powder_caesium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_caesium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_caesium"); + powder_australium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_australium"); + powder_strontium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_strontium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_strontium"); + powder_cobalt = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cobalt"); + powder_bromine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_bromine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bromine"); + powder_niobium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_niobium"); + powder_tennessine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_tennessine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tennessine"); + powder_cerium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_cerium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cerium"); + powder_dura_steel = new ItemCustomLore().setUnlocalizedName("powder_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_dura_steel"); + powder_polymer = new ItemCustomLore().setUnlocalizedName("powder_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_polymer"); + powder_bakelite = new ItemCustomLore().setUnlocalizedName("powder_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bakelite"); + powder_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_euphemium"); + powder_meteorite = new Item().setUnlocalizedName("powder_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_meteorite"); + powder_lanthanium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lanthanium"); + powder_actinium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_actinium"); + powder_boron = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_boron"); + powder_semtex_mix = new Item().setUnlocalizedName("powder_semtex_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_semtex_mix"); + powder_desh_mix = new Item().setUnlocalizedName("powder_desh_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_desh_mix"); + powder_desh_ready = new Item().setUnlocalizedName("powder_desh_ready").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_desh_ready"); + powder_nitan_mix = new Item().setUnlocalizedName("powder_nitan_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_nitan_mix"); + powder_spark_mix = new Item().setUnlocalizedName("powder_spark_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_spark_mix"); + powder_desh = new Item().setUnlocalizedName("powder_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_desh"); + powder_steel_tiny = new Item().setUnlocalizedName("powder_steel_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_steel_tiny"); + powder_lithium_tiny = new Item().setUnlocalizedName("powder_lithium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium_tiny"); + powder_neodymium_tiny = new Item().setUnlocalizedName("powder_neodymium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neodymium_tiny"); + powder_cobalt_tiny = new Item().setUnlocalizedName("powder_cobalt_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cobalt_tiny"); + powder_niobium_tiny = new Item().setUnlocalizedName("powder_niobium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_niobium_tiny"); + powder_cerium_tiny = new Item().setUnlocalizedName("powder_cerium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cerium_tiny"); + powder_lanthanium_tiny = new Item().setUnlocalizedName("powder_lanthanium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lanthanium_tiny"); + powder_actinium_tiny = new Item().setUnlocalizedName("powder_actinium_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_actinium_tiny"); + powder_boron_tiny = new Item().setUnlocalizedName("powder_boron_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_boron_tiny"); + powder_meteorite_tiny = new Item().setUnlocalizedName("powder_meteorite_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_meteorite_tiny"); + powder_yellowcake = new Item().setUnlocalizedName("powder_yellowcake").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_yellowcake"); + powder_magic = new Item().setUnlocalizedName("powder_magic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_magic"); + powder_balefire = new Item().setUnlocalizedName("powder_balefire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_balefire"); + powder_sawdust = new Item().setUnlocalizedName("powder_sawdust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sawdust"); + powder_flux = new Item().setUnlocalizedName("powder_flux").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_flux"); + powder_fertilizer = new ItemFertilizer().setUnlocalizedName("powder_fertilizer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_fertilizer"); + powder_coltan_ore = new Item().setUnlocalizedName("powder_coltan_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan_ore"); + powder_coltan = new Item().setUnlocalizedName("powder_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan"); + powder_tektite = new Item().setUnlocalizedName("powder_tektite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tektite"); + powder_paleogenite = new Item().setUnlocalizedName("powder_paleogenite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_paleogenite"); + powder_paleogenite_tiny = new Item().setUnlocalizedName("powder_paleogenite_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_paleogenite_tiny"); + powder_impure_osmiridium = new Item().setUnlocalizedName("powder_impure_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_impure_osmiridium"); + powder_borax = new Item().setUnlocalizedName("powder_borax").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_borax"); + powder_chlorocalcite = new Item().setUnlocalizedName("powder_chlorocalcite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_chlorocalcite"); + powder_molysite = new Item().setUnlocalizedName("powder_molysite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_molysite"); + + fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium"); + fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cobalt"); + fragment_niobium = new Item().setUnlocalizedName("fragment_niobium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_niobium"); + fragment_cerium = new Item().setUnlocalizedName("fragment_cerium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cerium"); + fragment_lanthanium = new Item().setUnlocalizedName("fragment_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_lanthanium"); + fragment_actinium = new Item().setUnlocalizedName("fragment_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_actinium"); + fragment_boron = new Item().setUnlocalizedName("fragment_boron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_boron"); + fragment_meteorite = new Item().setUnlocalizedName("fragment_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_meteorite"); + fragment_coltan = new Item().setUnlocalizedName("fragment_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_coltan"); + chunk_ore = new ItemEnumMulti(EnumChunkType.class, true, true).setUnlocalizedName("chunk_ore").setCreativeTab(MainRegistry.partsTab); + + biomass = new Item().setUnlocalizedName("biomass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass"); + biomass_compressed = new Item().setUnlocalizedName("biomass_compressed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass_compressed"); + bio_wafer = new ItemLemon(4, 2F, false).setUnlocalizedName("bio_wafer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bio_wafer"); + plant_item = new ItemEnumMulti(EnumPlantType.class, true, true).setUnlocalizedName("plant_item").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plant_item"); + + coil_copper = new Item().setUnlocalizedName("coil_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_copper"); + coil_copper_torus = new Item().setUnlocalizedName("coil_copper_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_copper_torus"); + coil_tungsten = new Item().setUnlocalizedName("coil_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_tungsten"); + tank_steel = new Item().setUnlocalizedName("tank_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":tank_steel"); + 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"); + motor_bismuth = new Item().setUnlocalizedName("motor_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_bismuth"); + centrifuge_element = new Item().setUnlocalizedName("centrifuge_element").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_element"); + 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"); + levitation_unit = new Item().setUnlocalizedName("levitation_unit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":levitation_unit"); + 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"); + component_limiter = new Item().setUnlocalizedName("component_limiter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_limiter"); + component_emitter = new Item().setUnlocalizedName("component_emitter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_emitter"); + chlorine_pinwheel = new ItemInfiniteFluid(Fluids.CHLORINE, 1, 2).setUnlocalizedName("chlorine_pinwheel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chlorine_pinwheel"); + FluidTank.noDualUnload.add(chlorine_pinwheel); + ring_starmetal = new Item().setUnlocalizedName("ring_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ring_starmetal"); + flywheel_beryllium = new Item().setUnlocalizedName("flywheel_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flywheel_beryllium"); + deuterium_filter = new Item().setUnlocalizedName("deuterium_filter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":deuterium_filter"); + parts_legendary = new ItemEnumMulti(EnumLegendaryType.class, false, true).setUnlocalizedName("parts_legendary").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":parts_legendary"); + + gear_large = new ItemGear().setUnlocalizedName("gear_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gear_large"); + sawblade = new Item().setUnlocalizedName("sawblade").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sawblade"); + + shell = new ItemAutogen(MaterialShapes.SHELL).oun("shellntm").setUnlocalizedName("shell").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shell"); + pipe = new ItemAutogen(MaterialShapes.PIPE).oun("pipentm").setUnlocalizedName("pipe").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipe"); + fins_flat = new Item().setUnlocalizedName("fins_flat").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_flat"); + fins_small_steel = new Item().setUnlocalizedName("fins_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_small_steel"); + fins_big_steel = new Item().setUnlocalizedName("fins_big_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_big_steel"); + fins_tri_steel = new Item().setUnlocalizedName("fins_tri_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_tri_steel"); + fins_quad_titanium = new Item().setUnlocalizedName("fins_quad_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fins_quad_titanium"); + sphere_steel = new Item().setUnlocalizedName("sphere_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sphere_steel"); + pedestal_steel = new Item().setUnlocalizedName("pedestal_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pedestal_steel"); + dysfunctional_reactor = new Item().setUnlocalizedName("dysfunctional_reactor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dysfunctional_reactor"); + blade_titanium = new Item().setUnlocalizedName("blade_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_titanium"); + turbine_titanium = new Item().setUnlocalizedName("turbine_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":turbine_titanium"); + blade_tungsten = new Item().setUnlocalizedName("blade_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_tungsten"); + turbine_tungsten = new Item().setUnlocalizedName("turbine_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":turbine_tungsten"); + + toothpicks = new Item().setUnlocalizedName("toothpicks").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":toothpicks"); + ducttape = new Item().setUnlocalizedName("ducttape").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ducttape"); + catalyst_clay = new Item().setUnlocalizedName("catalyst_clay").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":catalyst_clay"); + + warhead_generic_small = new Item().setUnlocalizedName("warhead_generic_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_generic_small"); + warhead_generic_medium = new Item().setUnlocalizedName("warhead_generic_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_generic_medium"); + warhead_generic_large = new Item().setUnlocalizedName("warhead_generic_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_generic_large"); + warhead_incendiary_small = new Item().setUnlocalizedName("warhead_incendiary_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_incendiary_small"); + warhead_incendiary_medium = new Item().setUnlocalizedName("warhead_incendiary_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_incendiary_medium"); + warhead_incendiary_large = new Item().setUnlocalizedName("warhead_incendiary_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_incendiary_large"); + warhead_cluster_small = new Item().setUnlocalizedName("warhead_cluster_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_cluster_small"); + warhead_cluster_medium = new Item().setUnlocalizedName("warhead_cluster_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_cluster_medium"); + warhead_cluster_large = new Item().setUnlocalizedName("warhead_cluster_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_cluster_large"); + warhead_buster_small = new Item().setUnlocalizedName("warhead_buster_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_small"); + warhead_buster_medium = new Item().setUnlocalizedName("warhead_buster_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_medium"); + warhead_buster_large = new Item().setUnlocalizedName("warhead_buster_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_buster_large"); + warhead_nuclear = new Item().setUnlocalizedName("warhead_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_nuclear"); + warhead_mirv = new Item().setUnlocalizedName("warhead_mirv").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_mirv"); + warhead_volcano = new Item().setUnlocalizedName("warhead_volcano").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":warhead_volcano"); + + fuel_tank_small = new Item().setUnlocalizedName("fuel_tank_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_small"); + fuel_tank_medium = new Item().setUnlocalizedName("fuel_tank_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_medium"); + fuel_tank_large = new Item().setUnlocalizedName("fuel_tank_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fuel_tank_large"); + + thruster_small = new Item().setUnlocalizedName("thruster_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_small"); + thruster_medium = new Item().setUnlocalizedName("thruster_medium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_medium"); + thruster_large = new Item().setUnlocalizedName("thruster_large").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_large"); + + sat_head_mapper = new Item().setUnlocalizedName("sat_head_mapper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_mapper"); + sat_head_scanner = new Item().setUnlocalizedName("sat_head_scanner").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_scanner"); + sat_head_radar = new Item().setUnlocalizedName("sat_head_radar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_radar"); + sat_head_laser = new Item().setUnlocalizedName("sat_head_laser").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_laser"); + sat_head_resonator = new Item().setUnlocalizedName("sat_head_resonator").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_head_resonator"); + + seg_10 = new Item().setUnlocalizedName("seg_10").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":seg_10"); + seg_15 = new Item().setUnlocalizedName("seg_15").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":seg_15"); + seg_20 = new Item().setUnlocalizedName("seg_20").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":seg_20"); + + chopper_head = new Item().setUnlocalizedName("chopper_head").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_head"); + chopper_gun = new Item().setUnlocalizedName("chopper_gun").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_gun"); + chopper_torso = new Item().setUnlocalizedName("chopper_torso").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_torso"); + chopper_tail = new Item().setUnlocalizedName("chopper_tail").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_tail"); + chopper_wing = new Item().setUnlocalizedName("chopper_wing").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_wing"); + chopper_blades = new Item().setUnlocalizedName("chopper_blades").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chopper_blades"); + combine_scrap = new Item().setUnlocalizedName("combine_scrap").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":combine_scrap"); + + shimmer_head = new Item().setUnlocalizedName("shimmer_head").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_head_original"); + shimmer_axe_head = new Item().setUnlocalizedName("shimmer_axe_head").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_axe_head"); + shimmer_handle = new Item().setUnlocalizedName("shimmer_handle").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":shimmer_handle"); + + entanglement_kit = new ItemCustomLore().setUnlocalizedName("entanglement_kit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":entanglement_kit"); + + circuit = new ItemCircuit().setUnlocalizedName("circuit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit"); + crt_display = new Item().setUnlocalizedName("crt_display").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crt_display"); + circuit_star_piece = (ItemEnumMulti) new ItemEnumMulti(ScrapType.class, true, true).setUnlocalizedName("circuit_star_piece").setCreativeTab(null); + circuit_star_component = (ItemEnumMulti) new ItemCircuitStarComponent().setUnlocalizedName("circuit_star_component").setCreativeTab(null); + circuit_star = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_star").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_star"); + assembly_nuke = new Item().setUnlocalizedName("assembly_nuke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nuke"); + casing = new ItemEnumMulti(ItemEnums.EnumCasingType.class, true, true).setUnlocalizedName("casing").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing"); + + wiring_red_copper = new ItemWiring().setUnlocalizedName("wiring_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wiring_red_copper"); + + pellet_rtg_depleted = new ItemRTGPelletDepleted().setContainerItem(plate_iron).setUnlocalizedName("pellet_rtg_depleted").setCreativeTab(MainRegistry.controlTab); + + pellet_rtg_radium = new ItemRTGPellet(3).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(16.0F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_radium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_radium"); + pellet_rtg_weak = new ItemRTGPellet(5).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(1.0F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_weak").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_weak"); + pellet_rtg = new ItemRTGPellet(10).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(87.7F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg"); + pellet_rtg_strontium = new ItemRTGPellet(15).setDecays(DepletedRTGMaterial.ZIRCONIUM, (long) (RTGUtil.getLifespan(29.0F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg_strontium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_strontium"); + pellet_rtg_cobalt = new ItemRTGPellet(15).setDecays(DepletedRTGMaterial.NICKEL, (long) (RTGUtil.getLifespan(5.3F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg_cobalt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_cobalt"); + pellet_rtg_actinium = new ItemRTGPellet(20).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(21.8F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg_actinium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_actinium"); + pellet_rtg_americium = new ItemRTGPellet(20).setDecays(DepletedRTGMaterial.NEPTUNIUM, (long) (RTGUtil.getLifespan(4.7F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_americium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_americium"); + pellet_rtg_polonium = new ItemRTGPellet(50).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(138.0F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_polonium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_polonium"); + pellet_rtg_gold = new ItemRTGPellet(VersatileConfig.rtgDecay() ? 200 : 100).setDecays(DepletedRTGMaterial.MERCURY, (long) (RTGUtil.getLifespan(2.7F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_gold").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_gold"); + pellet_rtg_lead = new ItemRTGPellet(VersatileConfig.rtgDecay() ? 600 : 200).setDecays(DepletedRTGMaterial.BISMUTH, (long) (RTGUtil.getLifespan(0.3F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_lead").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_lead"); + + tritium_deuterium_cake = new ItemCustomLore().setUnlocalizedName("tritium_deuterium_cake").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":tritium_deuterium_cake"); + + piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":piston_selenium"); + piston_set = new ItemPistons().setUnlocalizedName("piston_set").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); + drillbit = new ItemDrillbit().setUnlocalizedName("drillbit").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1); + + rune_blank = new ItemCustomLore().setEffect().setUnlocalizedName("rune_blank").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_blank"); + rune_isa = new ItemCustomLore().setEffect().setUnlocalizedName("rune_isa").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_isa"); + rune_dagaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_dagaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_dagaz"); + rune_hagalaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_hagalaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_hagalaz"); + rune_jera = new ItemCustomLore().setEffect().setUnlocalizedName("rune_jera").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_jera"); + rune_thurisaz = new ItemCustomLore().setEffect().setUnlocalizedName("rune_thurisaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_thurisaz"); + + ams_catalyst_blank = new Item().setUnlocalizedName("ams_catalyst_blank").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_blank"); + ams_catalyst_aluminium = new ItemCatalyst(0xCCCCCC, 1000000, 1.15F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_aluminium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_aluminium"); + ams_catalyst_beryllium = new ItemCatalyst(0x97978B, 0, 1.25F, 0.95F, 1.05F).setUnlocalizedName("ams_catalyst_beryllium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_beryllium"); + ams_catalyst_caesium = new ItemCatalyst(0x6400FF, 2500000, 1.00F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_caesium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_caesium"); + ams_catalyst_cerium = new ItemCatalyst(0x1D3FFF, 1000000, 1.15F, 1.15F, 0.85F).setUnlocalizedName("ams_catalyst_cerium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_cerium"); + ams_catalyst_cobalt = new ItemCatalyst(0x789BBE, 0, 1.25F, 1.05F, 0.95F).setUnlocalizedName("ams_catalyst_cobalt").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_cobalt"); + ams_catalyst_copper = new ItemCatalyst(0xAADE29, 0, 1.25F, 1.00F, 1.00F).setUnlocalizedName("ams_catalyst_copper").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_copper"); + ams_catalyst_dineutronium = new ItemCatalyst(0x334077, 2500000, 1.00F, 1.15F, 0.85F).setUnlocalizedName("ams_catalyst_dineutronium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_dineutronium"); + ams_catalyst_euphemium = new ItemCatalyst(0xFF9CD2, 2500000, 1.00F, 1.00F, 1.00F).setUnlocalizedName("ams_catalyst_euphemium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_euphemium"); + ams_catalyst_iron = new ItemCatalyst(0xFF7E22, 1000000, 1.15F, 0.95F, 1.05F).setUnlocalizedName("ams_catalyst_iron").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_iron"); + ams_catalyst_lithium = new ItemCatalyst(0xFF2727, 0, 1.25F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_lithium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_lithium"); + ams_catalyst_niobium = new ItemCatalyst(0x3BF1B6, 1000000, 1.15F, 1.05F, 0.95F).setUnlocalizedName("ams_catalyst_niobium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_niobium"); + ams_catalyst_schrabidium = new ItemCatalyst(0x32FFFF, 2500000, 1.00F, 1.05F, 0.95F).setUnlocalizedName("ams_catalyst_schrabidium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_schrabidium"); + ams_catalyst_strontium = new ItemCatalyst(0xDD0D35, 1000000, 1.15F, 1.00F, 1.00F).setUnlocalizedName("ams_catalyst_strontium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_strontium"); + ams_catalyst_thorium = new ItemCatalyst(0x653B22, 2500000, 1.00F, 0.95F, 1.05F).setUnlocalizedName("ams_catalyst_thorium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_thorium"); + ams_catalyst_tungsten = new ItemCatalyst(0xF5FF48, 0, 1.25F, 1.15F, 0.85F).setUnlocalizedName("ams_catalyst_tungsten").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_tungsten"); + + cell_empty = new Item().setUnlocalizedName("cell_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cell_empty"); + cell_uf6 = new Item().setUnlocalizedName("cell_uf6").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_uf6"); + cell_puf6 = new Item().setUnlocalizedName("cell_puf6").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_puf6"); + cell_antimatter = new ItemDrop().setUnlocalizedName("cell_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_antimatter"); + cell_deuterium = new Item().setUnlocalizedName("cell_deuterium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_deuterium"); + cell_tritium = new Item().setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium"); + cell_sas3 = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("cell_sas3").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_sas3"); + cell_anti_schrabidium = new ItemDrop().setUnlocalizedName("cell_anti_schrabidium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_anti_schrabidium"); + cell_balefire = new Item().setUnlocalizedName("cell_balefire").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_balefire"); + + demon_core_open = new ItemDemonCore().setUnlocalizedName("demon_core_open").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_open"); + demon_core_closed = new Item().setUnlocalizedName("demon_core_closed").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_closed"); + + pa_coil = new ItemPACoil().setUnlocalizedName("pa_coil").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pa_coil"); + + particle_empty = new Item().setUnlocalizedName("particle_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":particle_empty"); + particle_hydrogen = new Item().setUnlocalizedName("particle_hydrogen").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_hydrogen"); + particle_copper = new Item().setUnlocalizedName("particle_copper").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_copper"); + particle_lead = new Item().setUnlocalizedName("particle_lead").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_lead"); + particle_aproton = new Item().setUnlocalizedName("particle_aproton").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_aproton"); + particle_aelectron = new Item().setUnlocalizedName("particle_aelectron").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_aelectron"); + particle_amat = new Item().setUnlocalizedName("particle_amat").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_amat"); + particle_aschrab = new Item().setUnlocalizedName("particle_aschrab").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_aschrab"); + particle_higgs = new Item().setUnlocalizedName("particle_higgs").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_higgs"); + particle_muon = new Item().setUnlocalizedName("particle_muon").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_muon"); + particle_tachyon = new Item().setUnlocalizedName("particle_tachyon").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_tachyon"); + particle_strange = new Item().setUnlocalizedName("particle_strange").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_strange"); + particle_dark = new Item().setUnlocalizedName("particle_dark").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_dark"); + particle_sparkticle = new Item().setUnlocalizedName("particle_sparkticle").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_sparkticle"); + particle_digamma = new ItemDigamma(60).setUnlocalizedName("particle_digamma").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_digamma"); + particle_lutece = new Item().setUnlocalizedName("particle_lutece").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_lutece"); + + singularity = new ItemDrop().setUnlocalizedName("singularity").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity"); + singularity_counter_resonant = new ItemDrop().setUnlocalizedName("singularity_counter_resonant").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_alt"); + singularity_super_heated = new ItemDrop().setUnlocalizedName("singularity_super_heated").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_5"); + black_hole = new ItemDrop().setUnlocalizedName("black_hole").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_4"); + singularity_spark = new ItemDrop().setUnlocalizedName("singularity_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_spark_alt"); + pellet_antimatter = new ItemDrop().setUnlocalizedName("pellet_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":pellet_antimatter"); + crystal_xen = new ItemDrop().setUnlocalizedName("crystal_xen").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":crystal_xen"); + + stamp_stone_flat = new ItemStamp(32, StampType.FLAT).setUnlocalizedName("stamp_stone_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_flat"); + stamp_stone_plate = new ItemStamp(32, StampType.PLATE).setUnlocalizedName("stamp_stone_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_plate"); + stamp_stone_wire = new ItemStamp(32, StampType.WIRE).setUnlocalizedName("stamp_stone_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_wire"); + stamp_stone_circuit = new ItemStamp(32, StampType.CIRCUIT).setUnlocalizedName("stamp_stone_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_circuit"); + stamp_iron_flat = new ItemStamp(64, StampType.FLAT).setUnlocalizedName("stamp_iron_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_flat"); + stamp_iron_plate = new ItemStamp(64, StampType.PLATE).setUnlocalizedName("stamp_iron_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_plate"); + stamp_iron_wire = new ItemStamp(64, StampType.WIRE).setUnlocalizedName("stamp_iron_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_wire"); + stamp_iron_circuit = new ItemStamp(64, StampType.CIRCUIT).setUnlocalizedName("stamp_iron_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_iron_circuit"); + stamp_steel_flat = new ItemStamp(192, StampType.FLAT).setUnlocalizedName("stamp_steel_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_flat"); + stamp_steel_plate = new ItemStamp(192, StampType.PLATE).setUnlocalizedName("stamp_steel_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_plate"); + stamp_steel_wire = new ItemStamp(192, StampType.WIRE).setUnlocalizedName("stamp_steel_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_wire"); + stamp_steel_circuit = new ItemStamp(192, StampType.CIRCUIT).setUnlocalizedName("stamp_steel_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_steel_circuit"); + stamp_titanium_flat = new ItemStamp(256, StampType.FLAT).setUnlocalizedName("stamp_titanium_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_flat"); + stamp_titanium_plate = new ItemStamp(256, StampType.PLATE).setUnlocalizedName("stamp_titanium_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_plate"); + stamp_titanium_wire = new ItemStamp(256, StampType.WIRE).setUnlocalizedName("stamp_titanium_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_wire"); + stamp_titanium_circuit = new ItemStamp(256, StampType.CIRCUIT).setUnlocalizedName("stamp_titanium_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_titanium_circuit"); + stamp_obsidian_flat = new ItemStamp(512, StampType.FLAT).setUnlocalizedName("stamp_obsidian_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_flat"); + stamp_obsidian_plate = new ItemStamp(512, StampType.PLATE).setUnlocalizedName("stamp_obsidian_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_plate"); + stamp_obsidian_wire = new ItemStamp(512, StampType.WIRE).setUnlocalizedName("stamp_obsidian_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_wire"); + stamp_obsidian_circuit = new ItemStamp(512, StampType.CIRCUIT).setUnlocalizedName("stamp_obsidian_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_obsidian_circuit"); + stamp_desh_flat = new ItemStamp(0, StampType.FLAT).setUnlocalizedName("stamp_desh_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_flat"); + stamp_desh_plate = new ItemStamp(0, StampType.PLATE).setUnlocalizedName("stamp_desh_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_plate"); + stamp_desh_wire = new ItemStamp(0, StampType.WIRE).setUnlocalizedName("stamp_desh_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_wire"); + stamp_desh_circuit = new ItemStamp(0, StampType.CIRCUIT).setUnlocalizedName("stamp_desh_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_desh_circuit"); + stamp_357 = new ItemStamp(1000, StampType.C357).setUnlocalizedName("stamp_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357"); + stamp_44 = new ItemStamp(1000, StampType.C44).setUnlocalizedName("stamp_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44"); + stamp_9 = new ItemStamp(1000, StampType.C9).setUnlocalizedName("stamp_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9"); + stamp_50 = new ItemStamp(1000, StampType.C50).setUnlocalizedName("stamp_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50"); + stamp_book = new ItemStampBook().setUnlocalizedName("stamp_book").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":stamp_book"); + + stamp_desh_357 = new ItemStamp(0, StampType.C357).setUnlocalizedName("stamp_desh_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357_desh"); + stamp_desh_44 = new ItemStamp(0, StampType.C44).setUnlocalizedName("stamp_desh_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44_desh"); + stamp_desh_9 = new ItemStamp(0, StampType.C9).setUnlocalizedName("stamp_desh_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9_desh"); + stamp_desh_50 = new ItemStamp(0, StampType.C50).setUnlocalizedName("stamp_desh_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50_desh"); + + blades_steel = new ItemBlades(200).setUnlocalizedName("blades_steel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_steel"); + blades_titanium = new ItemBlades(350).setUnlocalizedName("blades_titanium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_titanium"); + blades_advanced_alloy = new ItemBlades(700).setUnlocalizedName("blades_advanced_alloy").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_advanced_alloy"); + blades_desh = new ItemBlades(0).setUnlocalizedName("blades_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_desh"); + + mold_base = new Item().setUnlocalizedName("mold_base").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":mold_base"); + mold = new ItemMold().setUnlocalizedName("mold").setCreativeTab(MainRegistry.controlTab); + scraps = new ItemScraps().aot(Mats.MAT_BISMUTH, "scraps_bismuth").setUnlocalizedName("scraps").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scraps"); + ingot_raw = new ItemAutogen(MaterialShapes.INGOT).setUnlocalizedName("ingot_raw").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_raw"); + plate_cast = new ItemAutogen(MaterialShapes.CASTPLATE).aot(Mats.MAT_BISMUTH, "plate_cast_bismuth").setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); + plate_welded = new ItemAutogen(MaterialShapes.WELDEDPLATE).setUnlocalizedName("plate_welded").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_welded"); + heavy_component = new ItemAutogen(MaterialShapes.HEAVY_COMPONENT).setUnlocalizedName("heavy_component").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":heavy_component"); + wire_fine = new ItemAutogen(MaterialShapes.WIRE) + .aot(Mats.MAT_ALUMINIUM, "wire_aluminium").aot(Mats.MAT_COPPER, "wire_copper") + .aot(Mats.MAT_MINGRADE, "wire_red_copper").aot(Mats.MAT_GOLD, "wire_gold") + .aot(Mats.MAT_TUNGSTEN, "wire_tungsten").aot(Mats.MAT_ALLOY, "wire_advanced_alloy") + .aot(Mats.MAT_CARBON, "wire_carbon").aot(Mats.MAT_SCHRABIDIUM, "wire_schrabidium") + .aot(Mats.MAT_MAGTUNG, "wire_magnetized_tungsten").setUnlocalizedName("wire_fine").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_fine"); + wire_dense = new ItemAutogen(MaterialShapes.DENSEWIRE).setUnlocalizedName("wire_dense").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_dense"); + + part_barrel_light = new ItemAutogen(MaterialShapes.LIGHTBARREL).setUnlocalizedName("part_barrel_light").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_barrel_light"); + part_barrel_heavy = new ItemAutogen(MaterialShapes.HEAVYBARREL).setUnlocalizedName("part_barrel_heavy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_barrel_heavy"); + part_receiver_light = new ItemAutogen(MaterialShapes.LIGHTRECEIVER).setUnlocalizedName("part_receiver_light").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_receiver_light"); + part_receiver_heavy = new ItemAutogen(MaterialShapes.HEAVYRECEIVER).setUnlocalizedName("part_receiver_heavy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_receiver_heavy"); + part_mechanism = new ItemAutogen(MaterialShapes.MECHANISM).setUnlocalizedName("part_mechanism").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_mechanism"); + part_stock = new ItemAutogen(MaterialShapes.STOCK).setUnlocalizedName("part_stock").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_stock"); + part_grip = new ItemAutogen(MaterialShapes.GRIP).setUnlocalizedName("part_grip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_grip"); + + part_lithium = new Item().setUnlocalizedName("part_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_lithium"); + part_beryllium = new Item().setUnlocalizedName("part_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_beryllium"); + part_carbon = new Item().setUnlocalizedName("part_carbon").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_carbon"); + part_copper = new Item().setUnlocalizedName("part_copper").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_copper"); + part_plutonium = new Item().setUnlocalizedName("part_plutonium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_plutonium"); + + laser_crystal_co2 = new ItemFELCrystal(EnumWavelengths.IR).setUnlocalizedName("laser_crystal_co2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_co2"); + laser_crystal_bismuth = new ItemFELCrystal(EnumWavelengths.VISIBLE).setUnlocalizedName("laser_crystal_bismuth").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_bismuth"); + laser_crystal_cmb = new ItemFELCrystal(EnumWavelengths.UV).setUnlocalizedName("laser_crystal_cmb").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_cmb"); + laser_crystal_dnt = new ItemFELCrystal(EnumWavelengths.GAMMA).setUnlocalizedName("laser_crystal_dnt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_dnt"); + 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"); + catalytic_converter = new Item().setUnlocalizedName("catalytic_converter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":catalytic_converter"); + + fuel_additive = new ItemEnumMulti(ItemEnums.EnumFuelAdditive.class, true, true).setUnlocalizedName("fuel_additive").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuel_additive"); + + canister_empty = new ItemCustomLore().setUnlocalizedName("canister_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":canister_empty"); + canister_full = new ItemCanister().setUnlocalizedName("canister_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_empty"); + canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm"); + gas_empty = new Item().setUnlocalizedName("gas_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":gas_empty"); + gas_full = new ItemGasTank().setUnlocalizedName("gas_full").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_empty"); + + ItemSimpleConsumable.init(); + + //TODO: move all this crap to ItemSimpleConsumable + syringe_empty = new Item().setUnlocalizedName("syringe_empty").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_empty"); + syringe_metal_empty = new Item().setUnlocalizedName("syringe_metal_empty").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_empty"); + syringe_metal_stimpak = new ItemSyringe().setUnlocalizedName("syringe_metal_stimpak").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_stimpak"); + syringe_metal_medx = new ItemSyringe().setUnlocalizedName("syringe_metal_medx").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_medx"); + syringe_metal_psycho = new ItemSyringe().setUnlocalizedName("syringe_metal_psycho").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_psycho"); + syringe_metal_super = new ItemSyringe().setUnlocalizedName("syringe_metal_super").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_super"); + syringe_taint = new ItemSyringe().setUnlocalizedName("syringe_taint").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_taint"); + syringe_mkunicorn = new ItemSyringe().setUnlocalizedName("syringe_mkunicorn").setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":syringe_mkunicorn"); + + med_bag = new ItemSyringe().setUnlocalizedName("med_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_bag"); + radx = new ItemPill(0).setUnlocalizedName("radx").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radx"); + siox = new ItemPill(0).setUnlocalizedName("siox").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":siox"); + pill_herbal = new ItemPill(0).setUnlocalizedName("pill_herbal").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pill_herbal"); + xanax = new ItemPill(0).setUnlocalizedName("xanax").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":xanax_2"); + fmn = new ItemPill(0).setUnlocalizedName("fmn").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":tablet"); + five_htp = new ItemPill(0).setUnlocalizedName("five_htp").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":5htp"); + pill_iodine = new ItemPill(0).setUnlocalizedName("pill_iodine").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pill_iodine"); + plan_c = new ItemPill(0).setUnlocalizedName("plan_c").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plan_c"); + pill_red = new ItemPill(0).setUnlocalizedName("pill_red").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pill_red"); + stealth_boy = new ItemStarterKit().setUnlocalizedName("stealth_boy").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":stealth_boy"); + gas_mask_filter = new ItemFilter().setUnlocalizedName("gas_mask_filter").setTextureName(RefStrings.MODID + ":gas_mask_filter"); + gas_mask_filter_mono = new ItemFilter().setUnlocalizedName("gas_mask_filter_mono").setTextureName(RefStrings.MODID + ":gas_mask_filter_mono"); + gas_mask_filter_combo = new ItemFilter().setUnlocalizedName("gas_mask_filter_combo").setTextureName(RefStrings.MODID + ":gas_mask_filter_combo"); + gas_mask_filter_rag = new ItemFilter().setUnlocalizedName("gas_mask_filter_rag").setTextureName(RefStrings.MODID + ":gas_mask_filter_rag"); + gas_mask_filter_piss = new ItemFilter().setUnlocalizedName("gas_mask_filter_piss").setTextureName(RefStrings.MODID + ":gas_mask_filter_piss"); + jetpack_tank = new ItemSyringe().setUnlocalizedName("jetpack_tank").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":jetpack_tank"); + gun_kit_1 = new ItemRepairKit(10).setUnlocalizedName("gun_kit_1").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_1"); + gun_kit_2 = new ItemRepairKit(100).setUnlocalizedName("gun_kit_2").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":gun_kit_2"); + cbt_device = new ItemSyringe().setUnlocalizedName("cbt_device").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":cbt_device"); + cigarette = new ItemCigarette().setUnlocalizedName("cigarette").setFull3D().setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cigarette"); + crackpipe = new ItemCigarette().setUnlocalizedName("crackpipe").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crackpipe"); + bdcl = new ItemBDCL().setUnlocalizedName("bdcl").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bdcl"); + + attachment_mask = new ItemModGasmask().setUnlocalizedName("attachment_mask").setTextureName(RefStrings.MODID + ":attachment_mask"); + attachment_mask_mono = new ItemModGasmask().setUnlocalizedName("attachment_mask_mono").setTextureName(RefStrings.MODID + ":attachment_mask_mono"); + back_tesla = new ItemModTesla().setUnlocalizedName("back_tesla").setTextureName(RefStrings.MODID + ":back_tesla"); + servo_set = new ItemModServos().setUnlocalizedName("servo_set").setTextureName(RefStrings.MODID + ":servo_set"); + servo_set_desh = new ItemModServos().setUnlocalizedName("servo_set_desh").setTextureName(RefStrings.MODID + ":servo_set_desh"); + pads_rubber = new ItemModPads(0.5F).setUnlocalizedName("pads_rubber").setTextureName(RefStrings.MODID + ":pads_rubber"); + pads_slime = new ItemModPads(0.25F).setUnlocalizedName("pads_slime").setTextureName(RefStrings.MODID + ":pads_slime"); + pads_static = new ItemModPads(0.75F).setUnlocalizedName("pads_static").setTextureName(RefStrings.MODID + ":pads_static"); + cladding_paint = new ItemModCladding(0.025).setUnlocalizedName("cladding_paint").setTextureName(RefStrings.MODID + ":cladding_paint"); + cladding_rubber = new ItemModCladding(0.005).setUnlocalizedName("cladding_rubber").setTextureName(RefStrings.MODID + ":cladding_rubber"); + cladding_lead = new ItemModCladding(0.1).setUnlocalizedName("cladding_lead").setTextureName(RefStrings.MODID + ":cladding_lead"); + cladding_desh = new ItemModCladding(0.2).setUnlocalizedName("cladding_desh").setTextureName(RefStrings.MODID + ":cladding_desh"); + cladding_ghiorsium = new ItemModCladding(0.5).setUnlocalizedName("cladding_ghiorsium").setTextureName(RefStrings.MODID + ":cladding_ghiorsium"); + cladding_iron = new ItemModIron().setUnlocalizedName("cladding_iron").setTextureName(RefStrings.MODID + ":cladding_iron"); + cladding_obsidian = new ItemModObsidian().setUnlocalizedName("cladding_obsidian").setTextureName(RefStrings.MODID + ":cladding_obsidian"); + insert_kevlar = new ItemModInsert(1500, 1F, 0.9F, 1F, 1F).setUnlocalizedName("insert_kevlar").setTextureName(RefStrings.MODID + ":insert_kevlar"); + insert_sapi = new ItemModInsert(1750, 1F, 0.85F, 1F, 1F).setUnlocalizedName("insert_sapi").setTextureName(RefStrings.MODID + ":insert_sapi"); + insert_esapi = new ItemModInsert(2000, 0.95F, 0.8F, 1F, 1F).setUnlocalizedName("insert_esapi").setTextureName(RefStrings.MODID + ":insert_esapi"); + insert_xsapi = new ItemModInsert(2500, 0.9F, 0.75F, 1F, 1F).setUnlocalizedName("insert_xsapi").setTextureName(RefStrings.MODID + ":insert_xsapi"); + insert_steel = new ItemModInsert(1000, 1F, 0.95F, 0.75F, 0.95F).setUnlocalizedName("insert_steel").setTextureName(RefStrings.MODID + ":insert_steel"); + insert_du = new ItemModInsert(1500, 0.9F, 0.85F, 0.5F, 0.9F).setUnlocalizedName("insert_du").setTextureName(RefStrings.MODID + ":insert_du"); + insert_polonium = new ItemModInsert(500, 0.9F, 1F, 0.95F, 0.9F).setUnlocalizedName("insert_polonium").setTextureName(RefStrings.MODID + ":insert_polonium"); + insert_ghiorsium = new ItemModInsert(2000, 0.8F, 0.75F, 0.35F, 0.9F).setUnlocalizedName("insert_ghiorsium").setTextureName(RefStrings.MODID + ":insert_ghiorsium"); + insert_era = new ItemModInsert(25, 0.5F, 1F, 0.25F, 1F).setUnlocalizedName("insert_era").setTextureName(RefStrings.MODID + ":insert_era"); + insert_yharonite = new ItemModInsert(9999, 0.01F, 1F, 1F, 1F).setUnlocalizedName("insert_yharonite").setTextureName(RefStrings.MODID + ":insert_yharonite"); + insert_doxium = new ItemModInsert(9999, 5.0F, 1F, 1F, 1F).setUnlocalizedName("insert_doxium").setTextureName(RefStrings.MODID + ":insert_doxium"); + armor_polish = new ItemModPolish().setUnlocalizedName("armor_polish").setTextureName(RefStrings.MODID + ":armor_polish"); + bandaid = new ItemModBandaid().setUnlocalizedName("bandaid").setTextureName(RefStrings.MODID + ":bandaid"); + serum = new ItemModSerum().setUnlocalizedName("serum").setTextureName(RefStrings.MODID + ":serum"); + quartz_plutonium = new ItemModQuartz().setUnlocalizedName("quartz_plutonium").setTextureName(RefStrings.MODID + ":quartz_plutonium"); + morning_glory = new ItemModMorningGlory().setUnlocalizedName("morning_glory").setTextureName(RefStrings.MODID + ":morning_glory"); + lodestone = new ItemModLodestone(5).setUnlocalizedName("lodestone").setTextureName(RefStrings.MODID + ":lodestone"); + horseshoe_magnet = new ItemModLodestone(8).setUnlocalizedName("horseshoe_magnet").setTextureName(RefStrings.MODID + ":horseshoe_magnet"); + industrial_magnet = new ItemModLodestone(12).setUnlocalizedName("industrial_magnet").setTextureName(RefStrings.MODID + ":industrial_magnet"); + bathwater = new ItemModBathwater().setUnlocalizedName("bathwater").setTextureName(RefStrings.MODID + ":bathwater"); + bathwater_mk2 = new ItemModBathwater().setUnlocalizedName("bathwater_mk2").setTextureName(RefStrings.MODID + ":bathwater_mk2"); + spider_milk = new ItemModMilk().setUnlocalizedName("spider_milk").setTextureName(RefStrings.MODID + ":spider_milk"); + ink = new ItemModInk().setUnlocalizedName("ink").setTextureName(RefStrings.MODID + ":ink"); + heart_piece = new ItemModHealth(5F).setUnlocalizedName("heart_piece").setTextureName(RefStrings.MODID + ":heart_piece"); + heart_container = new ItemModHealth(20F).setUnlocalizedName("heart_container").setTextureName(RefStrings.MODID + ":heart_container"); + heart_booster = new ItemModHealth(40F).setUnlocalizedName("heart_booster").setTextureName(RefStrings.MODID + ":heart_booster"); + heart_fab = new ItemModHealth(60F).setUnlocalizedName("heart_fab").setTextureName(RefStrings.MODID + ":heart_fab"); + black_diamond = new ItemModHealth(40F).setUnlocalizedName("black_diamond").setTextureName(RefStrings.MODID + ":black_diamond"); + wd40 = new ItemModWD40().setUnlocalizedName("wd40").setTextureName(RefStrings.MODID + ":wd40"); + scrumpy = new ItemModRevive(1).setUnlocalizedName("scrumpy").setTextureName(RefStrings.MODID + ":scrumpy"); + wild_p = new ItemModRevive(3).setUnlocalizedName("wild_p").setTextureName(RefStrings.MODID + ":wild_p"); + fabsols_vodka = new ItemModRevive(9999).setUnlocalizedName("fabsols_vodka").setTextureName(RefStrings.MODID + ":fabsols_vodka"); + shackles = new ItemModShackles().setUnlocalizedName("shackles").setTextureName(RefStrings.MODID + ":shackles"); + injector_5htp = new ItemModAuto().setUnlocalizedName("injector_5htp").setTextureName(RefStrings.MODID + ":injector_5htp"); + injector_knife = new ItemModKnife().setUnlocalizedName("injector_knife").setTextureName(RefStrings.MODID + ":injector_knife"); + medal_liquidator = new ItemModMedal().setUnlocalizedName("medal_liquidator").setTextureName(RefStrings.MODID + ":medal_liquidator"); + bottled_cloud = new ItemModCloud().setUnlocalizedName("bottled_cloud").setTextureName(RefStrings.MODID + ":bottled_cloud"); + protection_charm = new ItemModCharm().setUnlocalizedName("protection_charm").setTextureName(RefStrings.MODID + ":protection_charm"); + meteor_charm = new ItemModCharm().setUnlocalizedName("meteor_charm").setTextureName(RefStrings.MODID + ":meteor_charm"); + neutrino_lens = new ItemModLens().setUnlocalizedName("neutrino_lens").setTextureName(RefStrings.MODID + ":neutrino_lens"); + gas_tester = new ItemModSensor().setUnlocalizedName("gas_tester").setTextureName(RefStrings.MODID + ":gas_tester"); + defuser_gold = new ItemModDefuser().setUnlocalizedName("defuser_gold").setTextureName(RefStrings.MODID + ":defuser_gold"); + ballistic_gauntlet = new ItemModTwoKick().setUnlocalizedName("ballistic_gauntlet").setTextureName(RefStrings.MODID + ":ballistic_gauntlet"); + night_vision = new ItemModNightVision().setUnlocalizedName("night_vision").setTextureName(RefStrings.MODID + ":night_vision"); + card_aos = new ItemModCard().setUnlocalizedName("card_aos").setTextureName(RefStrings.MODID + ":card_aos"); + card_qos = new ItemModCard().setUnlocalizedName("card_qos").setTextureName(RefStrings.MODID + ":card_qos"); + australium_iii = new ItemModShield(25F).setUnlocalizedName("australium_iii").setTextureName(RefStrings.MODID + ":australium_iii"); + armor_battery = new ItemModBattery(1.25D).setUnlocalizedName("armor_battery").setTextureName(RefStrings.MODID + ":armor_battery"); + armor_battery_mk2 = new ItemModBattery(1.5D).setUnlocalizedName("armor_battery_mk2").setTextureName(RefStrings.MODID + ":armor_battery_mk2"); + armor_battery_mk3 = new ItemModBattery(2D).setUnlocalizedName("armor_battery_mk3").setTextureName(RefStrings.MODID + ":armor_battery_mk3"); + + cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); + cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); + cap_sparkle = new Item().setUnlocalizedName("cap_sparkle").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_sparkle"); + cap_rad = new Item().setUnlocalizedName("cap_rad").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_rad"); + cap_korl = new Item().setUnlocalizedName("cap_korl").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_korl"); + cap_fritz = new Item().setUnlocalizedName("cap_fritz").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_fritz"); + ring_pull = new Item().setUnlocalizedName("ring_pull").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ring_pull"); + + can_empty = new Item().setUnlocalizedName("can_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_empty"); + can_smart = new ItemEnergy().makeCan().setUnlocalizedName("can_smart").setTextureName(RefStrings.MODID + ":can_smart"); + can_creature = new ItemEnergy().makeCan().setUnlocalizedName("can_creature").setTextureName(RefStrings.MODID + ":can_creature"); + can_redbomb = new ItemEnergy().makeCan().setUnlocalizedName("can_redbomb").setTextureName(RefStrings.MODID + ":can_redbomb"); + can_mrsugar = new ItemEnergy().makeCan().setUnlocalizedName("can_mrsugar").setTextureName(RefStrings.MODID + ":can_mrsugar"); + can_overcharge = new ItemEnergy().makeCan().setUnlocalizedName("can_overcharge").setTextureName(RefStrings.MODID + ":can_overcharge"); + can_luna = new ItemEnergy().makeCan().setUnlocalizedName("can_luna").setTextureName(RefStrings.MODID + ":can_luna"); + can_bepis = new ItemEnergy().makeCan().setUnlocalizedName("can_bepis").setTextureName(RefStrings.MODID + ":can_bepis"); + can_breen = new ItemEnergy().makeCan().setUnlocalizedName("can_breen").setTextureName(RefStrings.MODID + ":can_breen"); + can_mug = new ItemEnergy().makeCan().setUnlocalizedName("can_mug").setTextureName(RefStrings.MODID + ":can_mug"); + bottle_empty = new Item().setUnlocalizedName("bottle_empty").setTextureName(RefStrings.MODID + ":bottle_empty"); + bottle_nuka = new ItemEnergy().makeBottle(bottle_empty, cap_nuka).setUnlocalizedName("bottle_nuka").setTextureName(RefStrings.MODID + ":bottle_nuka"); + bottle_cherry = new ItemEnergy().makeBottle(bottle_empty, cap_nuka).setUnlocalizedName("bottle_cherry").setContainerItem(ModItems.bottle_empty).setTextureName(RefStrings.MODID + ":bottle_cherry"); + bottle_quantum = new ItemEnergy().makeBottle(bottle_empty, cap_quantum).setUnlocalizedName("bottle_quantum").setContainerItem(ModItems.bottle_empty).setTextureName(RefStrings.MODID + ":bottle_quantum"); + bottle_sparkle = new ItemEnergy().makeBottle(bottle_empty, cap_sparkle).setUnlocalizedName("bottle_sparkle").setContainerItem(ModItems.bottle_empty).setTextureName(RefStrings.MODID + ":bottle_sparkle"); + bottle_rad = new ItemEnergy().makeBottle(bottle_empty, cap_rad).setUnlocalizedName("bottle_rad").setContainerItem(ModItems.bottle_empty).setTextureName(RefStrings.MODID + ":bottle_rad"); + bottle2_empty = new Item().setUnlocalizedName("bottle2_empty").setTextureName(RefStrings.MODID + ":bottle2_empty"); + bottle2_korl = new ItemEnergy().makeBottle(bottle2_empty, cap_korl).setUnlocalizedName("bottle2_korl").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_korl"); + bottle2_fritz = new ItemEnergy().makeBottle(bottle2_empty, cap_fritz).setUnlocalizedName("bottle2_fritz").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_fritz"); + bottle2_korl_special = new ItemEnergy().makeBottle(bottle2_empty, cap_korl).setUnlocalizedName("bottle2_korl_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_korl"); + bottle2_fritz_special = new ItemEnergy().makeBottle(bottle2_empty, cap_fritz).setUnlocalizedName("bottle2_fritz_special").setContainerItem(ModItems.bottle2_empty).setTextureName(RefStrings.MODID + ":bottle2_fritz"); + flask_infusion = new ItemFlask().setUnlocalizedName("flask_infusion").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":flask"); + chocolate_milk = new ItemEnergy().setUnlocalizedName("chocolate_milk").setTextureName(RefStrings.MODID + ":chocolate_milk"); + coffee = new ItemEnergy().setUnlocalizedName("coffee").setTextureName(RefStrings.MODID + ":coffee"); + coffee_radium = new ItemEnergy().setUnlocalizedName("coffee_radium").setTextureName(RefStrings.MODID + ":coffee_radium"); + chocolate = new ItemPill(0).setUnlocalizedName("chocolate").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":chocolate"); + canned_conserve = (ItemEnumMulti) new ItemConserve().setUnlocalizedName("canned_conserve").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned"); + can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); + + boat_rubber = new ItemBoatRubber().setUnlocalizedName("boat_rubber").setTextureName(RefStrings.MODID + ":boat_rubber"); + cart = new ItemModMinecart().setUnlocalizedName("cart"); + train = new ItemTrain().setUnlocalizedName("train"); + drone = new ItemDrone().setUnlocalizedName("drone"); + + coin_creeper = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_creeper").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_creeper"); + coin_radiation = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_radiation").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_radiation"); + coin_maskman = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_maskman").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_maskman"); + coin_worm = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_worm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_worm"); + coin_ufo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_ufo").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_ufo"); + + rod_empty = new Item().setUnlocalizedName("rod_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_empty"); + rod = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod").setContainerItem(ModItems.rod_empty).setCreativeTab(MainRegistry.controlTab); + rod_dual_empty = new Item().setUnlocalizedName("rod_dual_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_dual_empty"); + rod_dual = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod_dual").setContainerItem(ModItems.rod_dual_empty).setCreativeTab(MainRegistry.controlTab); + rod_quad_empty = new Item().setUnlocalizedName("rod_quad_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_quad_empty"); + rod_quad = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod_quad").setContainerItem(ModItems.rod_quad_empty).setCreativeTab(MainRegistry.controlTab); + + rod_zirnox_empty = new Item().setUnlocalizedName("rod_zirnox_empty").setMaxStackSize(64).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_empty"); + //rod_zirnox_natural_uranium_fuel = new ItemZirnoxRodDeprecated(250000, 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 ItemZirnoxRodDeprecated(200000, 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 ItemZirnoxRodDeprecated(200000, 40).setUnlocalizedName("rod_zirnox_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel"); + //rod_zirnox_mox_fuel = new ItemZirnoxRodDeprecated(165000, 75).setUnlocalizedName("rod_zirnox_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel"); + //rod_zirnox_plutonium_fuel = new ItemZirnoxRodDeprecated(175000, 65).setUnlocalizedName("rod_zirnox_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel"); + //rod_zirnox_u233_fuel = new ItemZirnoxRodDeprecated(150000, 100).setUnlocalizedName("rod_zirnox_u233_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel"); + //rod_zirnox_u235_fuel = new ItemZirnoxRodDeprecated(165000, 85).setUnlocalizedName("rod_zirnox_u235_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel"); + //rod_zirnox_les_fuel = new ItemZirnoxRodDeprecated(150000, 150).setUnlocalizedName("rod_zirnox_les_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel"); + //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_zfb_mox = new ItemZirnoxRodDeprecated(50000, 35).setUnlocalizedName("rod_zirnox_zfb_mox").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_zfb_mox"); + rod_zirnox = (ItemEnumMulti) new ItemZirnoxRod().setUnlocalizedName("rod_zirnox").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox"); + + 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"); + rod_zirnox_uranium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_uranium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel_depleted"); + rod_zirnox_thorium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_thorium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel_depleted"); + rod_zirnox_mox_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_mox_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel_depleted"); + rod_zirnox_plutonium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_plutonium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel_depleted"); + rod_zirnox_u233_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_u233_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel_depleted"); + rod_zirnox_u235_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_u235_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel_depleted"); + rod_zirnox_les_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_les_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel_depleted"); + rod_zirnox_zfb_mox_depleted = new Item().setUnlocalizedName("rod_zirnox_zfb_mox_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_zfb_mox_depleted"); + + waste_natural_uranium = new ItemDepletedFuel().setUnlocalizedName("waste_natural_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); + waste_uranium = new ItemDepletedFuel().setUnlocalizedName("waste_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); + waste_thorium = new ItemDepletedFuel().setUnlocalizedName("waste_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_thorium"); + waste_mox = new ItemDepletedFuel().setUnlocalizedName("waste_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_mox"); + waste_plutonium = new ItemDepletedFuel().setUnlocalizedName("waste_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plutonium"); + waste_u233 = new ItemDepletedFuel().setUnlocalizedName("waste_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); + waste_u235 = new ItemDepletedFuel().setUnlocalizedName("waste_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); + waste_schrabidium = new ItemDepletedFuel().setUnlocalizedName("waste_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_schrabidium"); + waste_zfb_mox = new ItemDepletedFuel().setUnlocalizedName("waste_zfb_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_zfb_mox"); + + waste_plate_u233 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_uranium"); + waste_plate_u235 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_uranium"); + waste_plate_mox = new ItemDepletedFuel().setUnlocalizedName("waste_plate_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_mox"); + waste_plate_pu239 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_mox"); + waste_plate_sa326 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_sa326").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_sa326"); + waste_plate_ra226be = new ItemDepletedFuel().setUnlocalizedName("waste_plate_ra226be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_ra226be"); + waste_plate_pu238be = new ItemDepletedFuel().setUnlocalizedName("waste_plate_pu238be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_pu238be"); + + pile_rod_uranium = new ItemPileRod().setUnlocalizedName("pile_rod_uranium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_uranium"); + pile_rod_pu239 = new ItemPileRod().setUnlocalizedName("pile_rod_pu239").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_pu239"); + pile_rod_plutonium = new ItemPileRod().setUnlocalizedName("pile_rod_plutonium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_plutonium"); + pile_rod_source = new ItemPileRod().setUnlocalizedName("pile_rod_source").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_source"); + pile_rod_boron = new ItemPileRod().setUnlocalizedName("pile_rod_boron").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_boron"); + pile_rod_lithium = new ItemPileRod().setUnlocalizedName("pile_rod_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_lithium"); + pile_rod_detector = new ItemPileRod().setUnlocalizedName("pile_rod_detector").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_detector"); + + plate_fuel_u233 = new ItemPlateFuel(2200000).setFunction(FunctionEnum.SQUARE_ROOT, 50).setUnlocalizedName("plate_fuel_u233").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_u233"); + plate_fuel_u235 = new ItemPlateFuel(2200000).setFunction(FunctionEnum.SQUARE_ROOT, 40).setUnlocalizedName("plate_fuel_u235").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_u235"); + plate_fuel_mox = new ItemPlateFuel(2400000).setFunction(FunctionEnum.LOGARITHM, 50).setUnlocalizedName("plate_fuel_mox").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_mox"); + plate_fuel_pu239 = new ItemPlateFuel(2000000).setFunction(FunctionEnum.NEGATIVE_QUADRATIC, 50).setUnlocalizedName("plate_fuel_pu239").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_pu239"); + plate_fuel_sa326 = new ItemPlateFuel(2000000).setFunction(FunctionEnum.LINEAR, 80).setUnlocalizedName("plate_fuel_sa326").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_sa326"); + plate_fuel_ra226be = new ItemPlateFuel(1300000).setFunction(FunctionEnum.PASSIVE, 30).setUnlocalizedName("plate_fuel_ra226be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_ra226be"); + plate_fuel_pu238be = new ItemPlateFuel(1000000).setFunction(FunctionEnum.PASSIVE, 50).setUnlocalizedName("plate_fuel_pu238be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_pu238be"); + + pwr_fuel = new ItemPWRFuel().setUnlocalizedName("pwr_fuel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel"); + pwr_fuel_hot = new ItemEnumMulti(EnumPWRFuel.class, true, false).setUnlocalizedName("pwr_fuel_hot").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel_hot"); + pwr_fuel_depleted = new ItemEnumMulti(EnumPWRFuel.class, true, false).setUnlocalizedName("pwr_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel_depleted"); + + rbmk_lid = new ItemRBMKLid().setUnlocalizedName("rbmk_lid").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid"); + rbmk_lid_glass = new ItemRBMKLid().setUnlocalizedName("rbmk_lid_glass").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid_glass"); + + rbmk_pellet_ueu = (ItemRBMKPellet) new ItemRBMKPellet("Unenriched Uranium").setUnlocalizedName("rbmk_pellet_ueu").setTextureName(RefStrings.MODID + ":rbmk_pellet_ueu"); + rbmk_pellet_meu = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Uranium-235").setUnlocalizedName("rbmk_pellet_meu").setTextureName(RefStrings.MODID + ":rbmk_pellet_meu"); + rbmk_pellet_heu233 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Uranium-233").setUnlocalizedName("rbmk_pellet_heu233").setTextureName(RefStrings.MODID + ":rbmk_pellet_heu233"); + rbmk_pellet_heu235 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Uranium-235").setUnlocalizedName("rbmk_pellet_heu235").setTextureName(RefStrings.MODID + ":rbmk_pellet_heu235"); + rbmk_pellet_thmeu = (ItemRBMKPellet) new ItemRBMKPellet("Thorium with MEU Driver Fuel").setUnlocalizedName("rbmk_pellet_thmeu").setTextureName(RefStrings.MODID + ":rbmk_pellet_thmeu"); + rbmk_pellet_lep = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Plutonium-239").setUnlocalizedName("rbmk_pellet_lep").setTextureName(RefStrings.MODID + ":rbmk_pellet_lep"); + rbmk_pellet_mep = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Plutonium-239").setUnlocalizedName("rbmk_pellet_mep").setTextureName(RefStrings.MODID + ":rbmk_pellet_mep"); + rbmk_pellet_hep239 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Plutonium-239").setUnlocalizedName("rbmk_pellet_hep239").setTextureName(RefStrings.MODID + ":rbmk_pellet_hep239"); + rbmk_pellet_hep241 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Plutonium-241").setUnlocalizedName("rbmk_pellet_hep241").setTextureName(RefStrings.MODID + ":rbmk_pellet_hep241"); + rbmk_pellet_lea = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Americium-242").setUnlocalizedName("rbmk_pellet_lea").setTextureName(RefStrings.MODID + ":rbmk_pellet_lea"); + rbmk_pellet_mea = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Americium-242").setUnlocalizedName("rbmk_pellet_mea").setTextureName(RefStrings.MODID + ":rbmk_pellet_mea"); + rbmk_pellet_hea241 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Americium-241").setUnlocalizedName("rbmk_pellet_hea241").setTextureName(RefStrings.MODID + ":rbmk_pellet_hea241"); + 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 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"); + rbmk_pellet_leaus = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Australium (Tasmanite)").setUnlocalizedName("rbmk_pellet_leaus").setTextureName(RefStrings.MODID + ":rbmk_pellet_leaus"); + rbmk_pellet_heaus = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Australium (Ayerite)").setUnlocalizedName("rbmk_pellet_heaus").setTextureName(RefStrings.MODID + ":rbmk_pellet_heaus"); + rbmk_pellet_po210be = (ItemRBMKPellet) new ItemRBMKPellet("Polonium-210 & Beryllium Neutron Source").disableXenon().setUnlocalizedName("rbmk_pellet_po210be").setTextureName(RefStrings.MODID + ":rbmk_pellet_po210be"); + rbmk_pellet_ra226be = (ItemRBMKPellet) new ItemRBMKPellet("Radium-226 & Beryllium Neutron Source").disableXenon().setUnlocalizedName("rbmk_pellet_ra226be").setTextureName(RefStrings.MODID + ":rbmk_pellet_ra226be"); + rbmk_pellet_pu238be = (ItemRBMKPellet) new ItemRBMKPellet("Plutonium-238 & Beryllium Neutron Source").setUnlocalizedName("rbmk_pellet_pu238be").setTextureName(RefStrings.MODID + ":rbmk_pellet_pu238be"); + rbmk_pellet_balefire_gold = (ItemRBMKPellet) new ItemRBMKPellet("Antihydrogen in a Magnetized Gold-198 Lattice").disableXenon().setUnlocalizedName("rbmk_pellet_balefire_gold").setTextureName(RefStrings.MODID + ":rbmk_pellet_balefire_gold"); + rbmk_pellet_flashlead = (ItemRBMKPellet) new ItemRBMKPellet("Antihydrogen confined by a Magnetized Gold-198 and Lead-209 Lattice").disableXenon().setUnlocalizedName("rbmk_pellet_flashlead").setTextureName(RefStrings.MODID + ":rbmk_pellet_flashlead"); + rbmk_pellet_balefire = (ItemRBMKPellet) new ItemRBMKPellet("Draconic Flames").disableXenon().setUnlocalizedName("rbmk_pellet_balefire").setTextureName(RefStrings.MODID + ":rbmk_pellet_balefire"); + rbmk_pellet_zfb_bismuth = (ItemRBMKPellet) new ItemRBMKPellet("Zirconium Fast Breeder - LEU/HEP-241#Bi").setUnlocalizedName("rbmk_pellet_zfb_bismuth").setTextureName(RefStrings.MODID + ":rbmk_pellet_zfb_bismuth"); + rbmk_pellet_zfb_pu241 = (ItemRBMKPellet) new ItemRBMKPellet("Zirconium Fast Breeder - HEU-235/HEP-240#Pu-241").setUnlocalizedName("rbmk_pellet_zfb_pu241").setTextureName(RefStrings.MODID + ":rbmk_pellet_zfb_pu241"); + rbmk_pellet_zfb_am_mix = (ItemRBMKPellet) new ItemRBMKPellet("Zirconium Fast Breeder - HEP-241#MEA").setUnlocalizedName("rbmk_pellet_zfb_am_mix").setTextureName(RefStrings.MODID + ":rbmk_pellet_zfb_am_mix"); + rbmk_pellet_drx = (ItemRBMKPellet) new ItemRBMKPellet(EnumChatFormatting.OBFUSCATED + "can't you hear, can't you hear the thunder?").setUnlocalizedName("rbmk_pellet_drx").setTextureName(RefStrings.MODID + ":rbmk_pellet_drx"); + + rbmk_fuel_empty = new Item().setUnlocalizedName("rbmk_fuel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_fuel_empty"); + rbmk_fuel_ueu = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_ueu) + .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(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(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(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) + .setFunction(EnumBurnFunc.SQUARE_ROOT) + .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.25D) + .setMeltingPoint(2744) + .setUnlocalizedName("rbmk_fuel_hep").setTextureName(RefStrings.MODID + ":rbmk_fuel_hep"); + rbmk_fuel_hep241 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hep241) + .setYield(100000000D) + .setStats(40) + .setFunction(EnumBurnFunc.LINEAR) + .setHeat(1.75D) + .setMeltingPoint(2744) + .setUnlocalizedName("rbmk_fuel_hep241").setTextureName(RefStrings.MODID + ":rbmk_fuel_hep241"); + rbmk_fuel_lea = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_lea) + .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"); + rbmk_fuel_mea = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mea) + .setYield(100000000D) + .setStats(35D, 20) + .setFunction(EnumBurnFunc.ARCH) + .setHeat(1.75D) + .setMeltingPoint(2386) + .setUnlocalizedName("rbmk_fuel_mea").setTextureName(RefStrings.MODID + ":rbmk_fuel_mea"); + rbmk_fuel_hea241 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hea241) + .setYield(100000000D) + .setStats(65, 15) + .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setHeat(1.85D) + .setMeltingPoint(2386) + .setNeutronTypes(NType.FAST, NType.FAST) + .setUnlocalizedName("rbmk_fuel_hea241").setTextureName(RefStrings.MODID + ":rbmk_fuel_hea241"); + rbmk_fuel_hea242 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hea242) + .setYield(100000000D) + .setStats(45) + .setFunction(EnumBurnFunc.LINEAR) + .setHeat(2D) + .setMeltingPoint(2386) + .setUnlocalizedName("rbmk_fuel_hea242").setTextureName(RefStrings.MODID + ":rbmk_fuel_hea242"); + rbmk_fuel_men = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_men) + .setYield(100000000D) + .setStats(30) + .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) + .setHeat(0.75) + .setMeltingPoint(2800) + .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) + .setStats(40) + .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setMeltingPoint(2800) + .setNeutronTypes(NType.FAST, NType.FAST) + .setUnlocalizedName("rbmk_fuel_hen").setTextureName(RefStrings.MODID + ":rbmk_fuel_hen"); + rbmk_fuel_mox = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mox) + .setYield(100000000D) + .setStats(40) + .setFunction(EnumBurnFunc.LOG_TEN) + .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) + .setYield(100000000D) + .setStats(50) + .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) + .setStats(75D) + .setFunction(EnumBurnFunc.ARCH) + .setHeat(1.5D) + .setMeltingPoint(2750) + .setUnlocalizedName("rbmk_fuel_mes").setTextureName(RefStrings.MODID + ":rbmk_fuel_mes"); + rbmk_fuel_hes = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hes) + .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"); + rbmk_fuel_leaus = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_leaus) + .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"); + rbmk_fuel_heaus = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_heaus) + .setYield(100000000D) + .setStats(35) + .setFunction(EnumBurnFunc.LINEAR) + .setXenon(0.05D, 50D) + .setHeat(1.5D) + .setMeltingPoint(5211).setUnlocalizedName("rbmk_fuel_heaus").setTextureName(RefStrings.MODID + ":rbmk_fuel_heaus"); + rbmk_fuel_po210be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_po210be) + .setYield(25000000D) + .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(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"); + rbmk_fuel_flashlead = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_flashlead) + .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"); + rbmk_fuel_balefire = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_balefire) + .setYield(100000000D) + .setStats(100, 35) + .setFunction(EnumBurnFunc.LINEAR) + .setXenon(0.0D, 50D) + .setHeat(3D) + .setMeltingPoint(3652) + .setUnlocalizedName("rbmk_fuel_balefire").setTextureName(RefStrings.MODID + ":rbmk_fuel_balefire"); + rbmk_fuel_zfb_bismuth = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_zfb_bismuth) + .setYield(50000000D) + .setStats(20) + .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setHeat(1.75D) + .setMeltingPoint(2744) + .setUnlocalizedName("rbmk_fuel_zfb_bismuth").setTextureName(RefStrings.MODID + ":rbmk_fuel_zfb_bismuth"); + rbmk_fuel_zfb_pu241 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_zfb_pu241) + .setYield(50000000D) + .setStats(20) + .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setMeltingPoint(2865) + .setUnlocalizedName("rbmk_fuel_zfb_pu241").setTextureName(RefStrings.MODID + ":rbmk_fuel_zfb_pu241"); + rbmk_fuel_zfb_am_mix = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_zfb_am_mix) + .setYield(50000000D) + .setStats(20) + .setFunction(EnumBurnFunc.LINEAR) + .setHeat(1.75D) + .setMeltingPoint(2744) + .setUnlocalizedName("rbmk_fuel_zfb_am_mix").setTextureName(RefStrings.MODID + ":rbmk_fuel_zfb_am_mix"); + rbmk_fuel_drx = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_drx) + .setYield(10000000D) + .setStats(1000, 10) + .setFunction(EnumBurnFunc.QUADRATIC) + .setHeat(0.1D) + .setMeltingPoint(100000) + .setUnlocalizedName("rbmk_fuel_drx").setTextureName(RefStrings.MODID + ":rbmk_fuel_drx"); + rbmk_fuel_test = (ItemRBMKRod) new ItemRBMKRod("THE VOICES") + .setYield(1000000D) + .setStats(100) + .setFunction(EnumBurnFunc.EXPERIMENTAL) + .setHeat(1.0D) + .setMeltingPoint(100000) + .setUnlocalizedName("rbmk_fuel_test").setTextureName(RefStrings.MODID + ":rbmk_fuel_test"); + /* Experimental flux curve shit + rbmk_fuel_curve = (ItemRBMKRod) new ItemRBMKRod("3D Flux Curve Test") + .setFluxCurve(true) + .setOutputFluxCurve((fluxQuantity, fluxRatio) -> fluxQuantity * (1 - Math.pow(fluxRatio, 2))) + .setDepletionOutputRatioCurve((ratioIn, depletion) -> Math.pow(ratioIn, 2) * depletion) + .setYield(1000000D) + .setStats(75) + .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setHeat(1.5D) + .setMeltingPoint(100000) + .setUnlocalizedName("rbmk_fuel_curve").setTextureName(RefStrings.MODID + ":rbmk_fuel_curve"); + */ + + watz_pellet = new ItemWatzPellet().setUnlocalizedName("watz_pellet").setTextureName(RefStrings.MODID + ":watz_pellet"); + watz_pellet_depleted = new ItemWatzPellet().setUnlocalizedName("watz_pellet_depleted").setTextureName(RefStrings.MODID + ":watz_pellet"); + + icf_pellet_empty = new Item().setUnlocalizedName("icf_pellet_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet_empty"); + icf_pellet = new ItemICFPellet().setUnlocalizedName("icf_pellet").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet"); + icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":icf_pellet_depleted"); + + trinitite = new ItemNuclearWaste().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new"); + nuclear_waste_long = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long"); + nuclear_waste_long_tiny = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_tiny"); + nuclear_waste_short = new ItemWasteShort().setUnlocalizedName("nuclear_waste_short").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short"); + nuclear_waste_short_tiny = new ItemWasteShort().setUnlocalizedName("nuclear_waste_short_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_tiny"); + nuclear_waste_long_depleted = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted"); + nuclear_waste_long_depleted_tiny = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long_depleted_tiny"); + nuclear_waste_short_depleted = new ItemWasteShort().setUnlocalizedName("nuclear_waste_short_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted"); + nuclear_waste_short_depleted_tiny = new ItemWasteShort().setUnlocalizedName("nuclear_waste_short_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted_tiny"); + nuclear_waste = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste"); + nuclear_waste_tiny = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_tiny"); + nuclear_waste_vitrified = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_vitrified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified"); + nuclear_waste_vitrified_tiny = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_vitrified_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified_tiny"); + scrap_plastic = new ItemPlasticScrap().setUnlocalizedName("scrap_plastic").setTextureName(RefStrings.MODID + ":scrap_plastic"); + scrap = new Item().setUnlocalizedName("scrap").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap"); + scrap_oil = new Item().setUnlocalizedName("scrap_oil").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_oil"); + scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear"); + containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":containment_box"); + plastic_bag = new ItemPlasticBag().setUnlocalizedName("plastic_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plastic_bag"); + + ammo_bag = new ItemAmmoBag().setUnlocalizedName("ammo_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ammo_bag"); + ammo_bag_infinite = new ItemAmmoBag().setUnlocalizedName("ammo_bag_infinite").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ammo_bag_infinite"); + casing_bag = new ItemCasingBag().setUnlocalizedName("casing_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":casing_bag"); + + debris_graphite = new Item().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite"); + debris_metal = new Item().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal"); + debris_fuel = new Item().setUnlocalizedName("debris_fuel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_fuel"); + debris_concrete = new Item().setUnlocalizedName("debris_concrete").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_concrete"); + debris_exchanger = new Item().setUnlocalizedName("debris_exchanger").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_exchanger"); + debris_shrapnel =new Item().setUnlocalizedName("debris_shrapnel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_shrapnel"); + debris_element =new Item().setUnlocalizedName("debris_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_element"); + + pellet_cluster = new ItemCustomLore().setUnlocalizedName("pellet_cluster").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_cluster"); + powder_fire = new ItemCustomLore().setUnlocalizedName("powder_fire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_red_phosphorus"); + powder_ice = new ItemCustomLore().setUnlocalizedName("powder_ice").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ice"); + powder_poison = new ItemCustomLore().setUnlocalizedName("powder_poison").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_poison"); + powder_thermite = new ItemCustomLore().setUnlocalizedName("powder_thermite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_thermite"); + cordite = new Item().setUnlocalizedName("cordite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cordite"); + ballistite = new Item().setUnlocalizedName("ballistite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ballistite"); + ball_dynamite = new Item().setUnlocalizedName("ball_dynamite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_dynamite"); + ball_tnt = new Item().setUnlocalizedName("ball_tnt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_tnt"); + ball_tatb = new Item().setUnlocalizedName("ball_tatb").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_tatb"); + ball_fireclay = new Item().setUnlocalizedName("ball_fireclay").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_fireclay"); + pellet_gas = new ItemCustomLore().setUnlocalizedName("pellet_gas").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_gas"); + magnetron = new ItemCustomLore().setUnlocalizedName("magnetron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnetron_alt"); + pellet_buckshot = new Item().setUnlocalizedName("pellet_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_lead"); + pellet_charged = new Item().setUnlocalizedName("pellet_charged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_charged"); + + 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"); + launch_code_piece = new Item().setUnlocalizedName("launch_code_piece").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code_piece"); + launch_code = new Item().setUnlocalizedName("launch_code").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_code"); + launch_key = new Item().setUnlocalizedName("launch_key").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":launch_key"); + missile_assembly = new Item().setUnlocalizedName("missile_assembly").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":missile_assembly"); + missile_generic = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic"); + missile_anti_ballistic = new ItemMissile(MissileFormFactor.ABM, MissileTier.TIER1).setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); + missile_incendiary = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary"); + missile_cluster = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster"); + missile_buster = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster"); + missile_decoy = new ItemMissile(MissileFormFactor.V2, MissileTier.TIER1).setUnlocalizedName("missile_decoy").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_decoy"); + missile_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_strong"); + missile_incendiary_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary_strong"); + missile_cluster_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster_strong"); + missile_buster_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_buster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster_strong"); + missile_emp_strong = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER2).setUnlocalizedName("missile_emp_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp_strong"); + missile_burst = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_burst").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_burst"); + missile_inferno = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_inferno").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_inferno"); + missile_rain = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_rain").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_rain"); + missile_drill = new ItemMissile(MissileFormFactor.HUGE, MissileTier.TIER3).setUnlocalizedName("missile_drill").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_drill"); + missile_nuclear = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear"); + missile_nuclear_cluster = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_nuclear_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_nuclear_cluster"); + missile_volcano = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_volcano").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_volcano"); + missile_doomsday = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); + missile_doomsday_rusted = new ItemMissile(MissileFormFactor.ATLAS, MissileTier.TIER4).notLaunchable().setUnlocalizedName("missile_doomsday_rusted").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_doomsday"); + missile_taint = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_taint"); + missile_micro = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_micro"); + missile_bhole = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_bhole").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_bhole"); + missile_schrabidium = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); + missile_emp = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); + missile_shuttle = new ItemMissile(MissileFormFactor.OTHER, MissileTier.TIER3, MissileFuel.KEROSENE_PEROXIDE).setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); + missile_stealth = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER1).setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); + missile_test = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_test").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_micro"); + missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); + missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); + missile_custom = new ItemCustomMissile().setUnlocalizedName("missile_custom").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_custom"); + sat_mapper = new ItemSatChip().setUnlocalizedName("sat_mapper").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_mapper"); + sat_scanner = new ItemSatChip().setUnlocalizedName("sat_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_scanner"); + sat_radar = new ItemSatChip().setUnlocalizedName("sat_radar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_radar"); + sat_laser = new ItemSatChip().setUnlocalizedName("sat_laser").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_laser"); + sat_foeq = new ItemSatChip().setUnlocalizedName("sat_foeq").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_foeq"); + sat_resonator = new ItemSatChip().setUnlocalizedName("sat_resonator").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_resonator"); + sat_miner = new ItemSatChip().setUnlocalizedName("sat_miner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_miner"); + sat_lunar_miner = new ItemSatChip().setUnlocalizedName("sat_lunar_miner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_lunar_miner"); + sat_gerald = new ItemSatChip().setUnlocalizedName("sat_gerald").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_gerald"); + sat_chip = new ItemSatChip().setUnlocalizedName("sat_chip").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_chip"); + sat_interface = new ItemSatInterface().setUnlocalizedName("sat_interface").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_interface"); + sat_coord = new ItemSatInterface().setUnlocalizedName("sat_coord").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_coord"); + sat_designator = new ItemSatDesignator().setUnlocalizedName("sat_designator").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_designator"); + sat_relay = new ItemSatChip().setUnlocalizedName("sat_relay").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_relay"); + + mp_thruster_10_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_thruster_10_kerosene"); + mp_thruster_10_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_10_kerosene_tec"); + mp_thruster_10_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 1.5F, PartSize.SIZE_10).setHealth(15F) .setUnlocalizedName("mp_thruster_10_solid"); + mp_thruster_10_xenon = new ItemCustomMissilePart().makeThruster(FuelType.XENON, 1F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_thruster_10_xenon"); + mp_thruster_15_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene"); + mp_thruster_15_kerosene_tec = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F).setRarity(Rarity.COMMON).setUnlocalizedName("mp_thruster_15_kerosene_tec"); + mp_thruster_15_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_dual"); + mp_thruster_15_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_kerosene_triple"); + mp_thruster_15_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_solid"); + mp_thruster_15_solid_hexdecuple = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 5F, PartSize.SIZE_15).setHealth(25F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_solid_hexdecuple"); + mp_thruster_15_hydrogen = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 7.5F, PartSize.SIZE_15).setHealth(20F) .setUnlocalizedName("mp_thruster_15_hydrogen"); + mp_thruster_15_hydrogen_dual = new ItemCustomMissilePart().makeThruster(FuelType.HYDROGEN, 1F, 2.5F, PartSize.SIZE_15).setHealth(15F) .setUnlocalizedName("mp_thruster_15_hydrogen_dual"); + mp_thruster_15_balefire_short = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire_short"); + mp_thruster_15_balefire = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 5F, PartSize.SIZE_15).setHealth(25F) .setUnlocalizedName("mp_thruster_15_balefire"); + mp_thruster_15_balefire_large = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setHealth(35F) .setUnlocalizedName("mp_thruster_15_balefire_large"); + mp_thruster_15_balefire_large_rad = new ItemCustomMissilePart().makeThruster(FuelType.BALEFIRE, 1F, 7.5F, PartSize.SIZE_15).setAuthor("The Master").setHealth(35F).setRarity(Rarity.UNCOMMON).setUnlocalizedName("mp_thruster_15_balefire_large_rad"); + mp_thruster_20_kerosene = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene"); + mp_thruster_20_kerosene_dual = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_dual"); + mp_thruster_20_kerosene_triple = new ItemCustomMissilePart().makeThruster(FuelType.KEROSENE, 1F, 100F, PartSize.SIZE_20).setHealth(30F) .setUnlocalizedName("mp_thruster_20_kerosene_triple"); + mp_thruster_20_solid = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("It's basically just a big hole at the end of the fuel tank.").setUnlocalizedName("mp_thruster_20_solid"); + mp_thruster_20_solid_multi = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F) .setUnlocalizedName("mp_thruster_20_solid_multi"); + mp_thruster_20_solid_multier = new ItemCustomMissilePart().makeThruster(FuelType.SOLID, 1F, 100F, PartSize.SIZE_20).setHealth(35F).setWittyText("Did I miscount? Hope not.").setUnlocalizedName("mp_thruster_20_solid_multier"); + + mp_stability_10_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_10).setHealth(10F) .setUnlocalizedName("mp_stability_10_flat"); + mp_stability_10_cruise = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_stability_10_cruise"); + mp_stability_10_space = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_10).setHealth(5F).setRarity(Rarity.COMMON).setWittyText("Standing there alone, the ship is waiting / All systems are go, are you sure?") .setUnlocalizedName("mp_stability_10_space"); + mp_stability_15_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_stability_15_flat"); + mp_stability_15_thin = new ItemCustomMissilePart().makeStability(0.35F, PartSize.SIZE_15).setHealth(5F) .setUnlocalizedName("mp_stability_15_thin"); + mp_stability_15_soyuz = new ItemCustomMissilePart().makeStability(0.25F, PartSize.SIZE_15).setHealth(15F).setRarity(Rarity.COMMON).setWittyText("Союз!").setUnlocalizedName("mp_stability_15_soyuz"); + mp_stability_20_flat = new ItemCustomMissilePart().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20"); + + mp_fuselage_10_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(20F).setUnlocalizedName("mp_fuselage_10_kerosene"); + mp_fuselage_10_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_kerosene_camo"); + mp_fuselage_10_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_kerosene_desert"); + mp_fuselage_10_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_kerosene_sky"); + mp_fuselage_10_kerosene_flames = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_kerosene_flames"); + mp_fuselage_10_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(25F).setUnlocalizedName("mp_fuselage_10_kerosene_insulation"); + mp_fuselage_10_kerosene_sleek = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_kerosene_sleek"); + mp_fuselage_10_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Bolted Metal").setHealth(30F).setAuthor("Hoboy").setUnlocalizedName("mp_fuselage_10_kerosene_metal"); + mp_fuselage_10_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_10_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_kerosene_taint"); + + mp_fuselage_10_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 2500F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(25F) .setUnlocalizedName("mp_fuselage_10_solid"); + mp_fuselage_10_solid_flames = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_solid_flames"); + mp_fuselage_10_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(30F).setUnlocalizedName("mp_fuselage_10_solid_insulation"); + mp_fuselage_10_solid_sleek = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(35F).setUnlocalizedName("mp_fuselage_10_solid_sleek"); + mp_fuselage_10_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(35F).setTitle("Soviet Glory").setUnlocalizedName("mp_fuselage_10_solid_soviet_glory"); + mp_fuselage_10_solid_cathedral = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Satan").setTitle("Unholy Cathedral").setWittyText("Quakeesque!").setUnlocalizedName("mp_fuselage_10_solid_cathedral"); + mp_fuselage_10_solid_moonlit = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master & Hoboy").setTitle("Moonlit").setUnlocalizedName("mp_fuselage_10_solid_moonlit"); + mp_fuselage_10_solid_battery = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("wolfmonster222").setHealth(30F).setTitle("Ecstatic").setWittyText("I got caught eating batteries again :(").setUnlocalizedName("mp_fuselage_10_solid_battery"); + mp_fuselage_10_solid_duracell = ((ItemCustomMissilePart) mp_fuselage_10_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Duracell").setHealth(30F).setWittyText("The crunchiest battery on the market!").setUnlocalizedName("mp_fuselage_10_solid_duracell"); + + mp_fuselage_10_xenon = new ItemCustomMissilePart().makeFuselage(FuelType.XENON, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(20F) .setUnlocalizedName("mp_fuselage_10_xenon"); + mp_fuselage_10_xenon_bhole = ((ItemCustomMissilePart) mp_fuselage_10_xenon).copy().setRarity(Rarity.RARE).setAuthor("Sten89").setTitle("Morceus-1457").setUnlocalizedName("mp_fuselage_10_xenon_bhole"); + + mp_fuselage_10_long_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setAuthor("Hoboy").setHealth(30F).setUnlocalizedName("mp_fuselage_10_long_kerosene"); + mp_fuselage_10_long_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_camo"); + mp_fuselage_10_long_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_desert"); + mp_fuselage_10_long_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_10_long_kerosene_sky"); + mp_fuselage_10_long_kerosene_flames = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_kerosene_flames"); + mp_fuselage_10_long_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_insulation"); + mp_fuselage_10_long_kerosene_sleek = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_kerosene_sleek"); + mp_fuselage_10_long_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setHealth(35F).setUnlocalizedName("mp_fuselage_10_long_kerosene_metal"); + mp_fuselage_10_long_kerosene_dash = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Sam").setTitle("Dash").setWittyText("I wash my hands of it.").setCreativeTab(null).setUnlocalizedName("mp_fuselage_10_long_kerosene_dash"); + mp_fuselage_10_long_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setUnlocalizedName("mp_fuselage_10_long_kerosene_taint"); + mp_fuselage_10_long_kerosene_vap = ((ItemCustomMissilePart) mp_fuselage_10_long_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("VT-6/24").setTitle("Minty Contrail").setWittyText("Upper rivet!").setUnlocalizedName("mp_fuselage_10_long_kerosene_vap"); + + mp_fuselage_10_long_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 5000F, PartSize.SIZE_10, PartSize.SIZE_10).setHealth(35F) .setUnlocalizedName("mp_fuselage_10_long_solid"); + mp_fuselage_10_long_solid_flames = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setTitle("Sick Flames").setUnlocalizedName("mp_fuselage_10_long_solid_flames"); + mp_fuselage_10_long_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(40F).setUnlocalizedName("mp_fuselage_10_long_solid_insulation"); + mp_fuselage_10_long_solid_sleek = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.RARE).setTitle("IF-R&D").setHealth(45F).setUnlocalizedName("mp_fuselage_10_long_solid_sleek"); + mp_fuselage_10_long_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setHealth(45F).setTitle("Soviet Glory").setWittyText("Fully Automated Luxury Gay Space Communism!").setUnlocalizedName("mp_fuselage_10_long_solid_soviet_glory"); + mp_fuselage_10_long_solid_bullet = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.COMMON).setAuthor("Sam").setTitle("Bullet Bill").setUnlocalizedName("mp_fuselage_10_long_solid_bullet"); + mp_fuselage_10_long_solid_silvermoonlight = ((ItemCustomMissilePart) mp_fuselage_10_long_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_10_long_solid_silvermoonlight"); + + mp_fuselage_10_15_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_kerosene"); + mp_fuselage_10_15_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F) .setUnlocalizedName("mp_fuselage_10_15_solid"); + mp_fuselage_10_15_hydrogen = new ItemCustomMissilePart().makeFuselage(FuelType.HYDROGEN, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_hydrogen"); + mp_fuselage_10_15_balefire = new ItemCustomMissilePart().makeFuselage(FuelType.BALEFIRE, 10000F, PartSize.SIZE_10, PartSize.SIZE_15).setHealth(40F).setUnlocalizedName("mp_fuselage_10_15_balefire"); + + mp_fuselage_15_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setAuthor("Hoboy").setHealth(50F).setUnlocalizedName("mp_fuselage_15_kerosene"); + mp_fuselage_15_kerosene_camo = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Camo").setUnlocalizedName("mp_fuselage_15_kerosene_camo"); + mp_fuselage_15_kerosene_desert = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Desert Camo").setUnlocalizedName("mp_fuselage_15_kerosene_desert"); + mp_fuselage_15_kerosene_sky = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Sky Camo").setUnlocalizedName("mp_fuselage_15_kerosene_sky"); + mp_fuselage_15_kerosene_insulation = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(55F).setWittyText("Rest in spaghetti Columbia :(").setUnlocalizedName("mp_fuselage_15_kerosene_insulation"); + mp_fuselage_15_kerosene_metal = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bolted Metal").setHealth(60F).setWittyText("Metal frame with metal plating reinforced with bolted metal sheets and metal.").setUnlocalizedName("mp_fuselage_15_kerosene_metal"); + mp_fuselage_15_kerosene_decorated = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Decorated").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_decorated"); + mp_fuselage_15_kerosene_steampunk = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Steampunk").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_steampunk"); + mp_fuselage_15_kerosene_polite = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setAuthor("Hoboy").setTitle("Polite").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_polite"); + mp_fuselage_15_kerosene_blackjack = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.LEGENDARY).setTitle("Queen Whiskey").setHealth(100F).setUnlocalizedName("mp_fuselage_15_kerosene_blackjack"); + mp_fuselage_15_kerosene_lambda = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("Lambda Complex").setHealth(75F).setWittyText("MAGNIFICENT MICROWAVE CASSEROLE").setUnlocalizedName("mp_fuselage_15_kerosene_lambda"); + mp_fuselage_15_kerosene_minuteman = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Spexta").setTitle("MX 1702").setUnlocalizedName("mp_fuselage_15_kerosene_minuteman"); + mp_fuselage_15_kerosene_pip = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("The Doctor").setTitle("LittlePip").setWittyText("31!").setCreativeTab(null).setUnlocalizedName("mp_fuselage_15_kerosene_pip"); + mp_fuselage_15_kerosene_taint = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.UNCOMMON).setAuthor("Sam").setTitle("Tainted").setWittyText("DUN-DUN!").setUnlocalizedName("mp_fuselage_15_kerosene_taint"); + mp_fuselage_15_kerosene_yuck = ((ItemCustomMissilePart) mp_fuselage_15_kerosene).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Flesh").setWittyText("Note: Never clean DNA vials with your own spit.").setHealth(60F).setUnlocalizedName("mp_fuselage_15_kerosene_yuck"); + + mp_fuselage_15_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(60F) .setUnlocalizedName("mp_fuselage_15_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_solid_insulation = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.COMMON).setTitle("Orange Insulation").setHealth(65F).setUnlocalizedName("mp_fuselage_15_solid_insulation"); + mp_fuselage_15_solid_desh = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Desh Plating").setHealth(80F).setUnlocalizedName("mp_fuselage_15_solid_desh"); + mp_fuselage_15_solid_soviet_glory = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Soviet Glory").setHealth(70F).setUnlocalizedName("mp_fuselage_15_solid_soviet_glory"); + mp_fuselage_15_solid_soviet_stank = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.EPIC).setAuthor("Hoboy").setTitle("Soviet Stank").setHealth(15F).setWittyText("Aged like a fine wine! Well, almost.").setUnlocalizedName("mp_fuselage_15_solid_soviet_stank"); + mp_fuselage_15_solid_faust = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.LEGENDARY).setAuthor("Dr.Nostalgia").setTitle("Mighty Lauren").setHealth(250F).setWittyText("Welcome to Subway, may I take your order?").setUnlocalizedName("mp_fuselage_15_solid_faust"); + mp_fuselage_15_solid_silvermoonlight = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("The Master").setTitle("Silver Moonlight").setUnlocalizedName("mp_fuselage_15_solid_silvermoonlight"); + mp_fuselage_15_solid_snowy = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Dr.Nostalgia").setTitle("Chilly Day").setUnlocalizedName("mp_fuselage_15_solid_snowy"); + mp_fuselage_15_solid_panorama = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setAuthor("Hoboy").setTitle("Panorama").setUnlocalizedName("mp_fuselage_15_solid_panorama"); + mp_fuselage_15_solid_roses = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.UNCOMMON).setAuthor("Hoboy").setTitle("Bed of roses").setUnlocalizedName("mp_fuselage_15_solid_roses"); + mp_fuselage_15_solid_mimi = ((ItemCustomMissilePart) mp_fuselage_15_solid).copy().setRarity(Rarity.RARE).setTitle("Mimi-chan").setUnlocalizedName("mp_fuselage_15_solid_mimi"); + + mp_fuselage_15_hydrogen = new ItemCustomMissilePart().makeFuselage(FuelType.HYDROGEN, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(50F) .setUnlocalizedName("mp_fuselage_15_hydrogen").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_hydrogen_cathedral = ((ItemCustomMissilePart) mp_fuselage_15_hydrogen).copy().setRarity(Rarity.UNCOMMON).setAuthor("Satan").setTitle("Unholy Cathedral").setUnlocalizedName("mp_fuselage_15_hydrogen_cathedral"); + + mp_fuselage_15_balefire = new ItemCustomMissilePart().makeFuselage(FuelType.BALEFIRE, 15000F, PartSize.SIZE_15, PartSize.SIZE_15).setHealth(75F) .setUnlocalizedName("mp_fuselage_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + + mp_fuselage_15_20_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setAuthor("Hoboy").setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_20_kerosene_magnusson = ((ItemCustomMissilePart)mp_fuselage_15_20_kerosene).copy().setRarity(Rarity.RARE).setAuthor("VT-6/24").setTitle("White Forest Rocket").setWittyText("And get your cranio-conjugal parasite away from my nose cone!").setUnlocalizedName("mp_fuselage_15_20_kerosene_magnusson"); + mp_fuselage_15_20_solid = new ItemCustomMissilePart().makeFuselage(FuelType.SOLID, 20000, PartSize.SIZE_15, PartSize.SIZE_20).setHealth(70F).setUnlocalizedName("mp_fuselage_15_20_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + + mp_fuselage_20_kerosene = new ItemCustomMissilePart().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_20, PartSize.SIZE_20) .setUnlocalizedName("mp_f_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + + mp_warhead_10_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_incendiary = new ItemCustomMissilePart().makeWarhead(WarheadType.INC, 15F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_buster = new ItemCustomMissilePart().makeWarhead(WarheadType.BUSTER, 5F, 1.5F, PartSize.SIZE_10).setHealth(5F) .setUnlocalizedName("mp_warhead_10_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_nuclear = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 35F, 1.5F, PartSize.SIZE_10).setTitle("Tater Tot").setHealth(10F).setUnlocalizedName("mp_warhead_10_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_nuclear_large = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 75F, 2.5F, PartSize.SIZE_10).setTitle("Chernobyl Boris").setHealth(15F).setUnlocalizedName("mp_warhead_10_nuclear_large").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_taint = new ItemCustomMissilePart().makeWarhead(WarheadType.TAINT, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.UNCOMMON).setWittyText("Eat my taint! Bureaucracy is dead and we killed it!").setUnlocalizedName("mp_warhead_10_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_10_cloud = new ItemCustomMissilePart().makeWarhead(WarheadType.CLOUD, 15F, 1.5F, PartSize.SIZE_10).setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_10_cloud").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 50F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_he").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_incendiary = new ItemCustomMissilePart().makeWarhead(WarheadType.INC, 35F, 2.5F, PartSize.SIZE_15).setHealth(10F) .setUnlocalizedName("mp_warhead_15_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_nuclear = new ItemCustomMissilePart().makeWarhead(WarheadType.NUCLEAR, 125F, 5F, PartSize.SIZE_15).setTitle("Auntie Bertha").setHealth(15F).setUnlocalizedName("mp_warhead_15_nuclear").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_nuclear_shark = ((ItemCustomMissilePart) mp_warhead_15_nuclear).copy().setRarity(Rarity.UNCOMMON).setTitle("Discount Bullet Bill").setWittyText("Nose art on a cannon bullet? Who does that?").setUnlocalizedName("mp_warhead_15_nuclear_shark"); + mp_warhead_15_nuclear_mimi = ((ItemCustomMissilePart) mp_warhead_15_nuclear).copy().setRarity(Rarity.RARE).setTitle("FASHIONABLE MISSILE").setUnlocalizedName("mp_warhead_15_nuclear_mimi"); + mp_warhead_15_boxcar = new ItemCustomMissilePart().makeWarhead(WarheadType.TX, 250F, 7.5F, PartSize.SIZE_15).setWittyText("?!?!").setHealth(35F).setRarity(Rarity.LEGENDARY).setUnlocalizedName("mp_warhead_15_boxcar").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_n2 = new ItemCustomMissilePart().makeWarhead(WarheadType.N2, 100F, 5F, PartSize.SIZE_15).setWittyText("[screams geometrically]").setHealth(20F).setRarity(Rarity.RARE).setUnlocalizedName("mp_warhead_15_n2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_balefire = new ItemCustomMissilePart().makeWarhead(WarheadType.BALEFIRE, 100F, 7.5F, PartSize.SIZE_15).setRarity(Rarity.LEGENDARY).setAuthor("VT-6/24").setHealth(15F).setWittyText("Hightower, never forgetti.").setUnlocalizedName("mp_warhead_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_15_turbine = new ItemCustomMissilePart().makeWarhead(WarheadType.TURBINE, 200F, 5F, PartSize.SIZE_15).setRarity(Rarity.SEWS_CLOTHES_AND_SUCKS_HORSE_COCK).setHealth(250F).setUnlocalizedName("mp_warhead_15_turbine").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + mp_warhead_20_he = new ItemCustomMissilePart().makeWarhead(WarheadType.HE, 15F, 1F, PartSize.SIZE_20) .setUnlocalizedName("mp_w_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_warhead"); + + mp_chip_1 = new ItemCustomMissilePart().makeChip(0.1F) .setUnlocalizedName("mp_c_1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_1"); + mp_chip_2 = new ItemCustomMissilePart().makeChip(0.05F) .setUnlocalizedName("mp_c_2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_2"); + mp_chip_3 = new ItemCustomMissilePart().makeChip(0.01F) .setUnlocalizedName("mp_c_3").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_3"); + mp_chip_4 = new ItemCustomMissilePart().makeChip(0.005F) .setUnlocalizedName("mp_c_4").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_4"); + mp_chip_5 = new ItemCustomMissilePart().makeChip(0.0F) .setUnlocalizedName("mp_c_5").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_5"); + + missile_skin_camo = new ItemCustomLore().setUnlocalizedName("missile_skin_camo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_camo"); + missile_skin_desert = new ItemCustomLore().setUnlocalizedName("missile_skin_desert").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_desert"); + missile_skin_flames = new ItemCustomLore().setUnlocalizedName("missile_skin_flames").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_flames"); + missile_skin_manly_pink = new ItemCustomLore().setUnlocalizedName("missile_skin_manly_pink").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_manly_pink"); + missile_skin_orange_insulation = new ItemCustomLore().setUnlocalizedName("missile_skin_orange_insulation").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_orange_insulation"); + missile_skin_sleek = new ItemCustomLore().setUnlocalizedName("missile_skin_sleek").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_sleek"); + missile_skin_soviet_glory = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_glory").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_glory"); + missile_skin_soviet_stank = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_stank").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_stank"); + missile_skin_metal = new ItemCustomLore().setUnlocalizedName("missile_skin_metal").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_metal"); + + ammo_shell = (ItemEnumMulti) new ItemAmmo(Ammo240Shell.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_shell"); + ammo_dgk = new ItemCustomLore().setUnlocalizedName("ammo_dgk").setCreativeTab(MainRegistry.weaponTab); + ammo_fireext = (ItemEnumMulti) new ItemAmmo(AmmoFireExt.class).setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_fireext"); + ammo_misc = new ItemAmmo(AmmoMisc.class).setUnlocalizedName("ammo_misc"); + ammo_arty = new ItemAmmoArty().setUnlocalizedName("ammo_arty"); + ammo_himars = new ItemAmmoHIMARS().setUnlocalizedName("ammo_himars"); + + gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt"); + gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92"); + gun_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext"); + + ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0); + crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); + + stick_dynamite = new ItemGrenade(3).setUnlocalizedName("stick_dynamite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_dynamite"); + stick_dynamite_fishing = new ItemGrenadeFishing(3).setUnlocalizedName("stick_dynamite_fishing").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_dynamite_fishing"); + stick_tnt = new Item().setUnlocalizedName("stick_tnt").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_tnt"); + stick_semtex = new Item().setUnlocalizedName("stick_semtex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_semtex"); + stick_c4 = new Item().setUnlocalizedName("stick_c4").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_c4"); + + grenade_generic = new ItemGrenade(4).setUnlocalizedName("grenade_generic").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_generic"); + grenade_strong = new ItemGrenade(5).setUnlocalizedName("grenade_strong").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_strong"); + grenade_frag = new ItemGrenade(4).setUnlocalizedName("grenade_frag").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_frag_alt"); + grenade_fire = new ItemGrenade(4).setUnlocalizedName("grenade_fire").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_fire_alt"); + grenade_shrapnel = new ItemGrenade(4).setUnlocalizedName("grenade_shrapnel").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_shrapnel"); + grenade_cluster = new ItemGrenade(5).setUnlocalizedName("grenade_cluster").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_cluster_alt"); + grenade_flare = new ItemGrenade(0).setUnlocalizedName("grenade_flare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_flare_alt"); + grenade_electric = new ItemGrenade(5).setUnlocalizedName("grenade_electric").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_electric_alt"); + grenade_poison = new ItemGrenade(4).setUnlocalizedName("grenade_poison").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_poison_alt"); + grenade_gas = new ItemGrenade(4).setUnlocalizedName("grenade_gas").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_gas_alt"); + grenade_pulse = new ItemGrenade(4).setUnlocalizedName("grenade_pulse").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_pulse"); + grenade_plasma = new ItemGrenade(5).setUnlocalizedName("grenade_plasma").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_plasma_alt"); + grenade_tau = new ItemGrenade(5).setUnlocalizedName("grenade_tau").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_tau_alt"); + grenade_schrabidium = new ItemGrenade(7).setUnlocalizedName("grenade_schrabidium").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_schrabidium_alt"); + grenade_lemon = new ItemGrenade(4).setUnlocalizedName("grenade_lemon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_lemon"); + grenade_gascan = new ItemGrenade(-1).setUnlocalizedName("grenade_gascan").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_gascan"); + grenade_kyiv = new ItemGrenadeKyiv(-1).setUnlocalizedName("grenade_kyiv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_kyiv"); + grenade_mk2 = new ItemGrenade(5).setUnlocalizedName("grenade_mk2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_mk2_alt"); + grenade_aschrab = new ItemGrenade(-1).setUnlocalizedName("grenade_aschrab").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_aschrab"); + grenade_nuke = new ItemGrenade(-1).setUnlocalizedName("grenade_nuke").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_nuke_alt"); + grenade_nuclear = new ItemGrenade(7).setUnlocalizedName("grenade_nuclear").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_nuclear"); + grenade_zomg = new ItemGrenade(7).setUnlocalizedName("grenade_zomg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_zomg"); + grenade_black_hole = new ItemGrenade(7).setUnlocalizedName("grenade_black_hole").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_black_hole"); + grenade_cloud = new ItemGrenade(-1).setUnlocalizedName("grenade_cloud").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_cloud"); + grenade_pink_cloud = new ItemGrenade(-1).setUnlocalizedName("grenade_pink_cloud").setCreativeTab(null).setTextureName(RefStrings.MODID + ":grenade_pink_cloud"); + ullapool_caber = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("ullapool_caber").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ullapool_caber"); + + grenade_if_generic = new ItemGrenade(4).setUnlocalizedName("grenade_if_generic").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_generic"); + grenade_if_he = new ItemGrenade(5).setUnlocalizedName("grenade_if_he").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_he"); + grenade_if_bouncy = new ItemGrenade(4).setUnlocalizedName("grenade_if_bouncy").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_bouncy"); + grenade_if_sticky = new ItemGrenade(4).setUnlocalizedName("grenade_if_sticky").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_sticky"); + grenade_if_impact = new ItemGrenade(-1).setUnlocalizedName("grenade_if_impact").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_impact"); + grenade_if_incendiary = new ItemGrenade(4).setUnlocalizedName("grenade_if_incendiary").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_incendiary"); + grenade_if_toxic = new ItemGrenade(4).setUnlocalizedName("grenade_if_toxic").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_toxic"); + grenade_if_concussion = new ItemGrenade(4).setUnlocalizedName("grenade_if_concussion").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_concussion"); + grenade_if_brimstone = new ItemGrenade(5).setUnlocalizedName("grenade_if_brimstone").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_brimstone"); + grenade_if_mystery = new ItemGrenade(5).setUnlocalizedName("grenade_if_mystery").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_mystery"); + grenade_if_spark = new ItemGrenade(7).setUnlocalizedName("grenade_if_spark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_spark"); + grenade_if_hopwire = new ItemGrenade(7).setUnlocalizedName("grenade_if_hopwire").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_hopwire"); + grenade_if_null = new ItemGrenade(7).setUnlocalizedName("grenade_if_null").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_if_null"); + + grenade_smart = new ItemGrenade(-1).setUnlocalizedName("grenade_smart").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_smart"); + grenade_mirv = new ItemGrenade(1).setUnlocalizedName("grenade_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_mirv"); + grenade_breach = new ItemGrenade(-1).setUnlocalizedName("grenade_breach").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_breach"); + grenade_burst = new ItemGrenade(1).setUnlocalizedName("grenade_burst").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_burst"); + nuclear_waste_pearl = new ItemGrenade(-1).setUnlocalizedName("nuclear_waste_pearl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":nuclear_waste_pearl"); + + weaponized_starblaster_cell = new WeaponizedCell().setUnlocalizedName("weaponized_starblaster_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_weaponized"); + + bomb_waffle = new ItemWaffle(20, false).setUnlocalizedName("bomb_waffle").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bomb_waffle"); + schnitzel_vegan = new ItemSchnitzelVegan(0, true).setUnlocalizedName("schnitzel_vegan").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":schnitzel_vegan"); + cotton_candy = new ItemCottonCandy(5, false).setUnlocalizedName("cotton_candy").setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":cotton_candy"); + apple_lead = new ItemAppleSchrabidium(5, 0, false).setUnlocalizedName("apple_lead").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":apple_lead"); + apple_schrabidium = new ItemAppleSchrabidium(20, 100, false).setUnlocalizedName("apple_schrabidium").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":apple_schrabidium"); + tem_flakes = new ItemTemFlakes(0, 0, false).setUnlocalizedName("tem_flakes").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":tem_flakes"); + glowing_stew = new ItemSoup(6).setUnlocalizedName("glowing_stew").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glowing_stew"); + balefire_scrambled = new ItemSoup(6).setUnlocalizedName("balefire_scrambled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_scrambled"); + balefire_and_ham = new ItemSoup(6).setUnlocalizedName("balefire_and_ham").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":balefire_and_ham"); + lemon = new ItemLemon(3, 0.5F, false).setUnlocalizedName("lemon").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":lemon"); + definitelyfood = new ItemLemon(3, 0.5F, false).setUnlocalizedName("definitelyfood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":definitelyfood"); + med_ipecac = new ItemLemon(0, 0, false).setUnlocalizedName("med_ipecac").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ipecac_new"); + med_ptsd = new ItemLemon(0, 0, false).setUnlocalizedName("med_ptsd").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ptsd_new"); + med_schizophrenia = new ItemLemon(0, 0, false).setUnlocalizedName("med_schizophrenia").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_schizophrenia_new"); + loops = new ItemLemon(4, 0.25F, false).setUnlocalizedName("loops").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loops"); + loop_stew = new ItemLemon(10, 0.5F, false).setUnlocalizedName("loop_stew").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":loop_stew"); + spongebob_macaroni = new ItemLemon(5, 1F, false).setUnlocalizedName("spongebob_macaroni").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spongebob_macaroni"); + fooditem = new ItemLemon(2, 5F, false).setUnlocalizedName("fooditem").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fooditem"); + twinkie = new ItemLemon(3, 0.25F, false).setUnlocalizedName("twinkie").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":twinkie"); + static_sandwich = new ItemLemon(6, 1F, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich"); + pudding = new ItemLemon(6, 1F, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding"); + canteen_vodka = new ItemCanteen(3 * 60).setUnlocalizedName("canteen_vodka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_vodka"); + canteen_fab = new ItemCanteen(2 * 60).setUnlocalizedName("canteen_fab").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_fab"); + pancake = new ItemPancake(20, 20, false).setUnlocalizedName("pancake").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pancake"); + nugget = new ItemLemon(200, 1F, false).setUnlocalizedName("nugget").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nugget"); + peas = new ItemPeas().setUnlocalizedName("peas").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":peas"); + marshmallow = new ItemMarshmallow().setUnlocalizedName("marshmallow").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":marshmallow"); + cheese = new ItemLemon(5, 0.75F, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese"); + quesadilla = new ItemLemon(8, 1F, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla"); + mucho_mango = new ItemMuchoMango(10).setUnlocalizedName("mucho_mango").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mucho_mango"); + glyphid_meat = new ItemLemon(3, 0.5F, true).setUnlocalizedName("glyphid_meat").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat"); + glyphid_meat_grilled = new ItemLemon(8, 0.75F, true).setPotionEffect(Potion.damageBoost.id, 180, 1, 1F).setUnlocalizedName("glyphid_meat_grilled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat_grilled"); + egg_glyphid = new Item().setUnlocalizedName("egg_glyphid").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":egg_glyphid"); + + defuser = new ItemTooling(ToolType.DEFUSER, 100).setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser"); + reacher = new Item().setUnlocalizedName("reacher").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":reacher"); + bismuth_tool = new ItemAmatExtractor().setUnlocalizedName("bismuth_tool").setMaxStackSize(1).setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":bismuth_tool"); + meltdown_tool = new ItemDyatlov().setUnlocalizedName("meltdown_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":meltdown_tool"); + + flame_pony = new ItemCustomLore().setUnlocalizedName("flame_pony").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_pony"); + flame_conspiracy = new ItemCustomLore().setUnlocalizedName("flame_conspiracy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_conspiracy"); + 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"); + 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 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_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 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 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"); + fleija_core = new ItemFleija().setUnlocalizedName("fleija_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":fleija_core"); + + solinium_igniter = new ItemSolinium().setUnlocalizedName("solinium_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":solinium_igniter"); + solinium_propellant = new ItemSolinium().setUnlocalizedName("solinium_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":solinium_propellant"); + solinium_core = new ItemSolinium().setUnlocalizedName("solinium_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":solinium_core"); + + n2_charge = new ItemN2().setUnlocalizedName("n2_charge").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":n2_charge"); + + egg_balefire_shard = new Item().setUnlocalizedName("egg_balefire_shard").setMaxStackSize(16).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":egg_balefire_shard"); + egg_balefire = new Item().setUnlocalizedName("egg_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":egg_balefire"); + + custom_tnt = new ItemCustomLore().setUnlocalizedName("custom_tnt").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_tnt"); + custom_nuke = new ItemCustomLore().setUnlocalizedName("custom_nuke").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_nuke"); + custom_hydro = new ItemCustomLore().setUnlocalizedName("custom_hydro").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_hydro"); + custom_amat = new ItemCustomLore().setUnlocalizedName("custom_amat").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_amat"); + custom_dirty = new ItemCustomLore().setUnlocalizedName("custom_dirty").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_dirty"); + custom_schrab = new ItemCustomLore().setUnlocalizedName("custom_schrab").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_schrab"); + custom_fall = new ItemCustomLore().setUnlocalizedName("custom_fall").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_fall"); + + battery_generic = new ItemBattery(5000, 100, 100).setUnlocalizedName("battery_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_generic_new"); + battery_advanced = new ItemBattery(20000, 500, 500).setUnlocalizedName("battery_advanced").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_new"); + battery_lithium = new ItemBattery(250000, 1000, 1000).setUnlocalizedName("battery_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium"); + battery_schrabidium = new ItemBattery(1000000, 5000, 5000).setUnlocalizedName("battery_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_new"); + battery_spark = new ItemBattery(100000000, 2000000, 2000000).setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark"); + battery_trixite = new ItemBattery(5000000, 40000, 200000).setUnlocalizedName("battery_trixite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_trixite"); + battery_creative = new Item().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new"); + + battery_red_cell = new ItemBattery(15000, 100, 100).setUnlocalizedName("battery_red_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_red_cell"); + battery_red_cell_6 = new ItemBattery(15000 * 6, 100, 100).setUnlocalizedName("battery_red_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_red_cell_6"); + battery_red_cell_24 = new ItemBattery(15000 * 24, 100, 100).setUnlocalizedName("battery_red_cell_24").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_red_cell_24"); + battery_advanced_cell = new ItemBattery(60000, 500, 500).setUnlocalizedName("battery_advanced_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_cell"); + battery_advanced_cell_4 = new ItemBattery(60000 * 4, 500, 500).setUnlocalizedName("battery_advanced_cell_4").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_cell_4"); + battery_advanced_cell_12 = new ItemBattery(60000 * 12, 500, 500).setUnlocalizedName("battery_advanced_cell_12").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_cell_12"); + battery_lithium_cell = new ItemBattery(750000, 1000, 1000).setUnlocalizedName("battery_lithium_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium_cell"); + battery_lithium_cell_3 = new ItemBattery(750000 * 3, 1000, 1000).setUnlocalizedName("battery_lithium_cell_3").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium_cell_3"); + battery_lithium_cell_6 = new ItemBattery(750000 * 6, 1000, 1000).setUnlocalizedName("battery_lithium_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium_cell_6"); + battery_schrabidium_cell = new ItemBattery(3000000, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell"); + battery_schrabidium_cell_2 = new ItemBattery(3000000 * 2, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell_2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell_2"); + battery_schrabidium_cell_4 = new ItemBattery(3000000 * 4, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell_4").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell_4"); + battery_spark_cell_6 = new ItemBattery(100000000L * 6L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_6"); + battery_spark_cell_25 = new ItemBattery(100000000L * 25L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_25").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_25"); + battery_spark_cell_100 = new ItemBattery(100000000L * 100L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_100").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_100"); + battery_spark_cell_1000 = new ItemBattery(100000000L * 1000L, 20000000, 20000000).setUnlocalizedName("battery_spark_cell_1000").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_1000"); + battery_spark_cell_2500 = new ItemBattery(100000000L * 2500L, 20000000, 20000000).setUnlocalizedName("battery_spark_cell_2500").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_2500"); + battery_spark_cell_10000 = new ItemBattery(100000000L * 10000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_10000").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_10000"); + battery_spark_cell_power = new ItemBattery(100000000L * 1000000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_power"); + cube_power = new ItemBattery(1000000000000000000L, 1000000000000000L, 1000000000000000L).setUnlocalizedName("cube_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cube_power"); + + battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_uranium"); + battery_sc_technetium = new ItemSelfcharger(25).setUnlocalizedName("battery_sc_technetium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_technetium"); + battery_sc_plutonium = new ItemSelfcharger(100).setUnlocalizedName("battery_sc_plutonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_plutonium"); + battery_sc_polonium = new ItemSelfcharger(500).setUnlocalizedName("battery_sc_polonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_polonium"); + battery_sc_gold = new ItemSelfcharger(2500).setUnlocalizedName("battery_sc_gold").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_gold"); + battery_sc_lead = new ItemSelfcharger(5000).setUnlocalizedName("battery_sc_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_lead"); + battery_sc_americium = new ItemSelfcharger(10000).setUnlocalizedName("battery_sc_americium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_americium"); + + battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato"); + battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); + hev_battery = new ItemFusionCore(150000).setUnlocalizedName("hev_battery").setMaxStackSize(4).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hev_battery"); + fusion_core = new ItemFusionCore(2500000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core"); + fusion_core_infinite = new Item().setUnlocalizedName("fusion_core_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core_infinite"); + energy_core = new ItemBattery(10000000, 0, 1000).setUnlocalizedName("energy_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":energy_core"); + fuse = new ItemCustomLore().setUnlocalizedName("fuse").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); + redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); + euphemium_capacitor = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("euphemium_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor_euphemium"); + screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver"); + screwdriver_desh = new ItemTooling(ToolType.SCREWDRIVER, 0).setUnlocalizedName("screwdriver_desh"); + hand_drill = new ItemTooling(ToolType.HAND_DRILL, 100).setUnlocalizedName("hand_drill"); + hand_drill_desh = new ItemTooling(ToolType.HAND_DRILL, 0).setUnlocalizedName("hand_drill_desh"); + wrench_archineer = new ItemToolingWeapon(ToolType.WRENCH, 1000, 12F).setUnlocalizedName("wrench_archineer").setTextureName(RefStrings.MODID + ":wrench_archineer_hd"); + chemistry_set = new ItemCraftingDegradation(100).setUnlocalizedName("chemistry_set"); + chemistry_set_boron = new ItemCraftingDegradation(0).setUnlocalizedName("chemistry_set_boron"); + blowtorch = new ItemBlowtorch().setUnlocalizedName("blowtorch"); + acetylene_torch = new ItemBlowtorch().setUnlocalizedName("acetylene_torch"); + boltgun = new ItemBoltgun().setUnlocalizedName("boltgun"); + overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse"); + arc_electrode = new ItemArcElectrode().setUnlocalizedName("arc_electrode").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":arc_electrode"); + arc_electrode_burnt = new ItemArcElectrodeBurnt().setUnlocalizedName("arc_electrode_burnt").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":arc_electrode_burnt"); + + ams_focus_blank = new Item().setUnlocalizedName("ams_focus_blank").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_blank"); + ams_focus_limiter = new ItemCustomLore().setUnlocalizedName("ams_focus_limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_limiter"); + ams_focus_booster = new ItemCustomLore().setUnlocalizedName("ams_focus_booster").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_focus_booster"); + ams_muzzle = new ItemCustomLore().setUnlocalizedName("ams_muzzle").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_muzzle"); + ams_lens = new ItemLens(60 * 60 * 60 * 20 * 100).setUnlocalizedName("ams_lens").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_lens"); + ams_core_sing = new ItemAMSCore(1000000000L, 200, 10).setUnlocalizedName("ams_core_sing").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_core_sing"); + ams_core_wormhole = new ItemAMSCore(1500000000L, 200, 15).setUnlocalizedName("ams_core_wormhole").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_core_wormhole"); + ams_core_eyeofharmony = new ItemAMSCore(2500000000L, 300, 10).setUnlocalizedName("ams_core_eyeofharmony").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":ams_core_eyeofharmony"); + ams_core_thingy = new ItemAMSCore(5000000000L, 250, 5).setUnlocalizedName("ams_core_thingy").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":ams_core_thingy"); + + fusion_shield_tungsten = new ItemFusionShield(60 * 60 * 60 * 5, 3500).setUnlocalizedName("fusion_shield_tungsten").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_tungsten"); + fusion_shield_desh = new ItemFusionShield(60 * 60 * 60 * 10, 4500).setUnlocalizedName("fusion_shield_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_desh"); + fusion_shield_chlorophyte = new ItemFusionShield(60 * 60 * 60 * 15, 9000).setUnlocalizedName("fusion_shield_chlorophyte").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_chlorophyte"); + fusion_shield_vaporwave = new ItemFusionShield(60 * 60 * 60 * 10, 1916169).setUnlocalizedName("fusion_shield_vaporwave").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_vaporwave"); + + upgrade_muffler = new ItemMuffler().setUnlocalizedName("upgrade_muffler").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_muffler"); + + upgrade_template = new ItemCustomLore().setUnlocalizedName("upgrade_template").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_template"); + upgrade_speed_1 = new ItemMachineUpgrade(UpgradeType.SPEED, 1).setUnlocalizedName("upgrade_speed_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_1"); + upgrade_speed_2 = new ItemMachineUpgrade(UpgradeType.SPEED, 2).setUnlocalizedName("upgrade_speed_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_2"); + upgrade_speed_3 = new ItemMachineUpgrade(UpgradeType.SPEED, 3).setUnlocalizedName("upgrade_speed_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_3"); + upgrade_effect_1 = new ItemMachineUpgrade(UpgradeType.EFFECT, 1).setUnlocalizedName("upgrade_effect_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_effect_1"); + upgrade_effect_2 = new ItemMachineUpgrade(UpgradeType.EFFECT, 2).setUnlocalizedName("upgrade_effect_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_effect_2"); + upgrade_effect_3 = new ItemMachineUpgrade(UpgradeType.EFFECT, 3).setUnlocalizedName("upgrade_effect_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_effect_3"); + upgrade_power_1 = new ItemMachineUpgrade(UpgradeType.POWER, 1).setUnlocalizedName("upgrade_power_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_power_1"); + upgrade_power_2 = new ItemMachineUpgrade(UpgradeType.POWER, 2).setUnlocalizedName("upgrade_power_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_power_2"); + upgrade_power_3 = new ItemMachineUpgrade(UpgradeType.POWER, 3).setUnlocalizedName("upgrade_power_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_power_3"); + upgrade_fortune_1 = new ItemMachineUpgrade(UpgradeType.FORTUNE, 1).setUnlocalizedName("upgrade_fortune_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_fortune_1"); + upgrade_fortune_2 = new ItemMachineUpgrade(UpgradeType.FORTUNE, 2).setUnlocalizedName("upgrade_fortune_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_fortune_2"); + upgrade_fortune_3 = new ItemMachineUpgrade(UpgradeType.FORTUNE, 3).setUnlocalizedName("upgrade_fortune_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_fortune_3"); + upgrade_afterburn_1 = new ItemMachineUpgrade(UpgradeType.AFTERBURN, 1).setUnlocalizedName("upgrade_afterburn_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_afterburn_1"); + upgrade_afterburn_2 = new ItemMachineUpgrade(UpgradeType.AFTERBURN, 2).setUnlocalizedName("upgrade_afterburn_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_afterburn_2"); + upgrade_afterburn_3 = new ItemMachineUpgrade(UpgradeType.AFTERBURN, 3).setUnlocalizedName("upgrade_afterburn_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_afterburn_3"); + upgrade_overdrive_1 = new ItemMachineUpgrade(UpgradeType.OVERDRIVE, 1).setUnlocalizedName("upgrade_overdrive_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_overdrive_1"); + upgrade_overdrive_2 = new ItemMachineUpgrade(UpgradeType.OVERDRIVE, 2).setUnlocalizedName("upgrade_overdrive_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_overdrive_2"); + upgrade_overdrive_3 = new ItemMachineUpgrade(UpgradeType.OVERDRIVE, 3).setUnlocalizedName("upgrade_overdrive_3").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_overdrive_3"); + upgrade_radius = new ItemMachineUpgrade().setUnlocalizedName("upgrade_radius").setMaxStackSize(16).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_radius"); + upgrade_health = new ItemMachineUpgrade().setUnlocalizedName("upgrade_health").setMaxStackSize(16).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_health"); + upgrade_smelter = new ItemMachineUpgrade().setUnlocalizedName("upgrade_smelter").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_smelter"); + upgrade_shredder = new ItemMachineUpgrade().setUnlocalizedName("upgrade_shredder").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_shredder"); + upgrade_centrifuge = new ItemMachineUpgrade().setUnlocalizedName("upgrade_centrifuge").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_centrifuge"); + upgrade_crystallizer = new ItemMachineUpgrade().setUnlocalizedName("upgrade_crystallizer").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_crystallizer"); + upgrade_nullifier = new ItemMachineUpgrade().setUnlocalizedName("upgrade_nullifier").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_nullifier"); + 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"); + wand_d = new ItemWandD().setUnlocalizedName("wand_d").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":wand_d"); + + structure_single = new ItemStructureSingle().setUnlocalizedName("structure_single").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_single"); + structure_solid = new ItemStructureSolid().setUnlocalizedName("structure_solid").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_solid"); + structure_pattern = new ItemStructurePattern().setUnlocalizedName("structure_pattern").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_pattern"); + structure_randomized = new ItemStructureRandomized().setUnlocalizedName("structure_randomized").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomized"); + structure_randomly = new ItemStructureRandomly().setUnlocalizedName("structure_randomly").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomly"); + structure_custommachine = new ItemCMStructure().setUnlocalizedName("structure_custommachine").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":structure_custommachine"); + + rod_of_discord = new ItemDiscord().setUnlocalizedName("rod_of_discord").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":rod_of_discord"); + + nuke_starter_kit = new ItemStarterKit().setUnlocalizedName("nuke_starter_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_starter_kit"); + nuke_advanced_kit = new ItemStarterKit().setUnlocalizedName("nuke_advanced_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_advanced_kit"); + nuke_commercially_kit = new ItemStarterKit().setUnlocalizedName("nuke_commercially_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_commercially_kit"); + nuke_electric_kit = new ItemStarterKit().setUnlocalizedName("nuke_electric_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_electric_kit"); + gadget_kit = new ItemStarterKit().setUnlocalizedName("gadget_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_kit"); + boy_kit = new ItemStarterKit().setUnlocalizedName("boy_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_kit"); + man_kit = new ItemStarterKit().setUnlocalizedName("man_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_kit"); + mike_kit = new ItemStarterKit().setUnlocalizedName("mike_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_kit"); + tsar_kit = new ItemStarterKit().setUnlocalizedName("tsar_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":tsar_kit"); + multi_kit = new ItemStarterKit().setUnlocalizedName("multi_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":multi_kit"); + custom_kit = new ItemStarterKit().setUnlocalizedName("custom_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_kit"); + grenade_kit = new ItemStarterKit().setUnlocalizedName("grenade_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_kit"); + fleija_kit = new ItemStarterKit().setUnlocalizedName("fleija_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":fleija_kit"); + prototype_kit = new ItemStarterKit().setUnlocalizedName("prototype_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":prototype_kit"); + missile_kit = new ItemStarterKit().setUnlocalizedName("missile_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_kit"); + t45_kit = new ItemStarterKit().setUnlocalizedName("t45_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":t45_kit"); + euphemium_kit = new ItemStarterKit().setUnlocalizedName("euphemium_kit").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":code"); + solinium_kit = new ItemStarterKit().setUnlocalizedName("solinium_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":solinium_kit"); + hazmat_kit = new ItemStarterKit().setUnlocalizedName("hazmat_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_kit"); + hazmat_red_kit = new ItemStarterKit().setUnlocalizedName("hazmat_red_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_red_kit"); + hazmat_grey_kit = new ItemStarterKit().setUnlocalizedName("hazmat_grey_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_grey_kit"); + kit_custom = new ItemKitCustom().setUnlocalizedName("kit_custom").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit"); + toolbox = new ItemToolBox().setUnlocalizedName("toolbox").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit_toolbox"); + legacy_toolbox = new ItemKitNBT().setUnlocalizedName("toolbox_legacy").setContainerItem(toolbox).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit_toolbox"); + + loot_10 = new ItemLootCrate().setUnlocalizedName("loot_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_10"); + loot_15 = new ItemLootCrate().setUnlocalizedName("loot_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_15"); + loot_misc = new ItemLootCrate().setUnlocalizedName("loot_misc").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_misc"); + + ammo_container = new ItemAmmoContainer().setUnlocalizedName("ammo_container").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_container"); + + ingot_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_euphemium"); + nugget_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_euphemium"); + watch = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("watch").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":watch"); + apple_euphemium = new ItemAppleEuphemium(20, 100, false).setUnlocalizedName("apple_euphemium").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":apple_euphemium"); + + igniter = new ItemCustomLore().setUnlocalizedName("igniter").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":trigger"); + detonator = new ItemDetonator().setUnlocalizedName("detonator").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator"); + detonator_multi = new ItemMultiDetonator().setUnlocalizedName("detonator_multi").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_multi"); + detonator_laser = new ItemLaserDetonator().setUnlocalizedName("detonator_laser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_laser"); + detonator_deadman = new ItemDrop().setUnlocalizedName("detonator_deadman").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_deadman"); + detonator_de = new ItemDrop().setUnlocalizedName("detonator_de").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_de"); + bomb_caller = new ItemBombCaller().setUnlocalizedName("bomb_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bomb_caller"); + meteor_remote = new ItemMeteorRemote().setUnlocalizedName("meteor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":meteor_remote"); + anchor_remote = new ItemAnchorRemote().setUnlocalizedName("anchor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":anchor_remote"); + spawn_chopper = new ItemChopper().setUnlocalizedName("chopper").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":chopper"); + spawn_worm = new ItemChopper().setUnlocalizedName("spawn_worm").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spawn_worm"); + spawn_ufo = new ItemChopper().setUnlocalizedName("spawn_ufo").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spawn_ufo"); + spawn_duck = new ItemChopper().setUnlocalizedName("spawn_duck").setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":spawn_duck"); + linker = new ItemTeleLink().setUnlocalizedName("linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":linker"); + reactor_sensor = new ItemReactorSensor().setUnlocalizedName("reactor_sensor").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":reactor_sensor"); + 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"); + 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"); + pollution_detector = new ItemPollutionDetector().setUnlocalizedName("pollution_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pollution_detector"); + ore_density_scanner = new ItemOreDensityScanner().setUnlocalizedName("ore_density_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ore_density_scanner"); + survey_scanner = new ItemSurveyScanner().setUnlocalizedName("survey_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":survey_scanner"); + mirror_tool = new ItemMirrorTool().setUnlocalizedName("mirror_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mirror_tool"); + rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); + coltan_tool = new ItemColtanCompass().setUnlocalizedName("coltan_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coltass"); + power_net_tool = new ItemPowerNetTool().setUnlocalizedName("power_net_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":power_net_tool"); + analysis_tool = new ItemAnalysisTool().setUnlocalizedName("analysis_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":analysis_tool"); + coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool"); + drone_linker = new ItemDroneLinker().setUnlocalizedName("drone_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":drone_linker"); + radar_linker = new ItemRadarLinker().setUnlocalizedName("radar_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radar_linker"); + settings_tool = new ItemSettingsTool().setUnlocalizedName("settings_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":settings_tool"); + + key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); + key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); + key_red_cracked = new ItemCustomLore().setUnlocalizedName("key_red_cracked").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red_cracked"); + key_kit = new ItemCounterfitKeys().setUnlocalizedName("key_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_pair"); + key_fake = new ItemKey().setUnlocalizedName("key_fake").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key_gold"); + pin = new ItemCustomLore().setUnlocalizedName("pin").setMaxStackSize(8).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pin"); + padlock_rusty = new ItemLock(1).setUnlocalizedName("padlock_rusty").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":padlock_rusty"); + padlock = new ItemLock(0.1).setUnlocalizedName("padlock").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":padlock"); + padlock_reinforced = new ItemLock(0.02).setUnlocalizedName("padlock_reinforced").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":padlock_reinforced"); + padlock_unbreakable = new ItemLock(0).setUnlocalizedName("padlock_unbreakable").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":padlock_unbreakable"); + + mech_key = new ItemCustomLore().setUnlocalizedName("mech_key").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":mech_key"); + + template_folder = new ItemTemplateFolder().setUnlocalizedName("template_folder").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":template_folder"); + journal_pip = new ItemTemplateFolder().setUnlocalizedName("journal_pip").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":journal_pip"); + journal_bj = new ItemTemplateFolder().setUnlocalizedName("journal_bj").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":journal_bj"); + journal_silver = new ItemTemplateFolder().setUnlocalizedName("journal_silver").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":journal_silver"); + assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":assembly_template"); + chemistry_template = new ItemChemistryTemplate().setUnlocalizedName("chemistry_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":chemistry_template"); + chemistry_icon = new ItemChemistryIcon().setUnlocalizedName("chemistry_icon").setMaxStackSize(1).setCreativeTab(null); + crucible_template = new ItemCrucibleTemplate().setUnlocalizedName("crucible_template").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":crucible_template"); + fluid_identifier = new ItemFluidIdentifier().setUnlocalizedName("fluid_identifier").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":fluid_identifier"); + fluid_identifier_multi = new ItemFluidIDMulti().setUnlocalizedName("fluid_identifier_multi").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":fluid_identifier_multi"); + fluid_icon = new ItemFluidIcon().setUnlocalizedName("fluid_icon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":fluid_icon"); + fluid_tank_empty = new Item().setUnlocalizedName("fluid_tank_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); + fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setContainerItem(ModItems.fluid_tank_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank"); + fluid_tank_lead_empty = new Item().setUnlocalizedName("fluid_tank_lead_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); + fluid_tank_lead_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_lead_full").setContainerItem(ModItems.fluid_tank_lead_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_tank_lead"); + fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); + fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setContainerItem(ModItems.fluid_barrel_empty).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel"); + fluid_barrel_infinite = new ItemInfiniteFluid(null, 1_000_000_000).setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); + pipette = new ItemPipette().setUnlocalizedName("pipette").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette"); + pipette_boron = new ItemPipette().setUnlocalizedName("pipette_boron").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_boron"); + pipette_laboratory = new ItemPipette().setUnlocalizedName("pipette_laboratory").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pipette_laboratory"); + siphon = new ItemFluidSiphon().setUnlocalizedName("siphon").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":siphon"); + inf_water = new ItemInfiniteFluid(Fluids.WATER, 50).setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water"); + inf_water_mk2 = new ItemInfiniteFluid(Fluids.WATER, 500).setUnlocalizedName("inf_water_mk2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water_mk2"); + + FluidTank.noDualUnload.add(fluid_barrel_infinite); + FluidTank.noDualUnload.add(inf_water); + FluidTank.noDualUnload.add(inf_water_mk2); + + disperser_canister_empty = new Item().setUnlocalizedName("disperser_canister_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); + disperser_canister = new ItemDisperser().setUnlocalizedName("disperser_canister").setContainerItem(ModItems.disperser_canister_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":disperser_canister"); + + glyphid_gland_empty = new Item().setUnlocalizedName("glyphid_gland_empty").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); + glyphid_gland = new ItemDisperser().setUnlocalizedName("glyphid_gland").setContainerItem(ModItems.glyphid_gland_empty).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":glyphid_gland"); + + siren_track = new ItemCassette().setUnlocalizedName("siren_track").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":cassette"); + fluid_duct = new ItemFluidDuct().setUnlocalizedName("fluid_duct").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":duct"); + + bobmazon = new ItemCatalog().setUnlocalizedName("bobmazon").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bobmazon"); + bobmazon_hidden = new ItemCatalog().setUnlocalizedName("bobmazon_hidden").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":bobmazon_special"); + + euphemium_helmet = new ArmorEuphemium(MainRegistry.aMatEuph, 0).setUnlocalizedName("euphemium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_helmet"); + euphemium_plate = new ArmorEuphemium(MainRegistry.aMatEuph, 1).setUnlocalizedName("euphemium_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_plate"); + euphemium_legs = new ArmorEuphemium(MainRegistry.aMatEuph, 2).setUnlocalizedName("euphemium_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_legs"); + euphemium_boots = new ArmorEuphemium(MainRegistry.aMatEuph, 3).setUnlocalizedName("euphemium_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_boots"); + + ArmorMaterial aMatRags = EnumHelper.addArmorMaterial("HBM_RAGS", 150, new int[] { 1, 1, 1, 1 }, 0); + aMatRags.customCraftingMaterial = ModItems.rag; + + goggles = new ArmorModel(ArmorMaterial.IRON, 0).setUnlocalizedName("goggles").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":goggles"); + ashglasses = new ArmorAshGlasses(ArmorMaterial.IRON, 0).setUnlocalizedName("ashglasses").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ashglasses"); + gas_mask = new ArmorGasMask().setUnlocalizedName("gas_mask").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":gas_mask"); + gas_mask_m65 = new ArmorGasMask().setUnlocalizedName("gas_mask_m65").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":gas_mask_m65"); + gas_mask_mono = new ArmorGasMask().setUnlocalizedName("gas_mask_mono").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":gas_mask_mono"); + gas_mask_olde = new ArmorGasMask().setUnlocalizedName("gas_mask_olde").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":gas_mask_olde"); + mask_rag = new ModArmor(aMatRags, 0).setUnlocalizedName("mask_rag").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_rag"); + mask_piss = new ModArmor(aMatRags, 0).setUnlocalizedName("mask_piss").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_piss"); + hat = new ArmorHat(MainRegistry.aMatAlloy, 0).setUnlocalizedName("nossy_hat").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hat"); + no9 = new ArmorNo9(MainRegistry.aMatSteel, 0).setUnlocalizedName("no9").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":no9"); + beta = new ItemDrop().setUnlocalizedName("beta").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":beta"); + //oxy_mask = new ArmorModel(ArmorMaterial.IRON, 7, 0).setUnlocalizedName("oxy_mask").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":oxy_mask"); + + schrabidium_helmet = new ArmorFSB(MainRegistry.aMatSchrab, 0, RefStrings.MODID + ":textures/armor/schrabidium_1.png") + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2)) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) + .setUnlocalizedName("schrabidium_helmet").setTextureName(RefStrings.MODID + ":schrabidium_helmet"); + schrabidium_plate = new ArmorFSB(MainRegistry.aMatSchrab, 1, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_plate").setTextureName(RefStrings.MODID + ":schrabidium_plate"); + schrabidium_legs = new ArmorFSB(MainRegistry.aMatSchrab, 2, RefStrings.MODID + ":textures/armor/schrabidium_2.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_legs").setTextureName(RefStrings.MODID + ":schrabidium_legs"); + schrabidium_boots = new ArmorFSB(MainRegistry.aMatSchrab, 3, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_boots").setTextureName(RefStrings.MODID + ":schrabidium_boots"); + bismuth_helmet = new ArmorBismuth(MainRegistry.aMatBismuth, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") + .addEffect(new PotionEffect(Potion.jump.id, 20, 6)) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 6)) + .addEffect(new PotionEffect(Potion.regeneration.id, 20, 1)) + .addEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)) + .setDashCount(3) + .setUnlocalizedName("bismuth_helmet").setTextureName(RefStrings.MODID + ":bismuth_helmet"); + bismuth_plate = new ArmorBismuth(MainRegistry.aMatBismuth, 1, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_plate").setTextureName(RefStrings.MODID + ":bismuth_plate"); + bismuth_legs = new ArmorBismuth(MainRegistry.aMatBismuth, 2, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_legs").setTextureName(RefStrings.MODID + ":bismuth_legs"); + bismuth_boots = new ArmorBismuth(MainRegistry.aMatBismuth, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_boots").setTextureName(RefStrings.MODID + ":bismuth_boots"); + titanium_helmet = new ArmorFSB(MainRegistry.aMatTitan, 0, RefStrings.MODID + ":textures/armor/titanium_1.png").setUnlocalizedName("titanium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_helmet"); + titanium_plate = new ArmorFSB(MainRegistry.aMatTitan, 1, RefStrings.MODID + ":textures/armor/titanium_1.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_plate"); + titanium_legs = new ArmorFSB(MainRegistry.aMatTitan, 2, RefStrings.MODID + ":textures/armor/titanium_2.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_legs"); + titanium_boots = new ArmorFSB(MainRegistry.aMatTitan, 3, RefStrings.MODID + ":textures/armor/titanium_1.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_boots").setTextureName(RefStrings.MODID + ":titanium_boots"); + steel_helmet = new ArmorFSB(MainRegistry.aMatSteel, 0, RefStrings.MODID + ":textures/armor/steel_1.png").setUnlocalizedName("steel_helmet").setTextureName(RefStrings.MODID + ":steel_helmet"); + steel_plate = new ArmorFSB(MainRegistry.aMatSteel, 1, RefStrings.MODID + ":textures/armor/steel_1.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_plate").setTextureName(RefStrings.MODID + ":steel_plate"); + steel_legs = new ArmorFSB(MainRegistry.aMatSteel, 2, RefStrings.MODID + ":textures/armor/steel_2.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_legs").setTextureName(RefStrings.MODID + ":steel_legs"); + steel_boots = new ArmorFSB(MainRegistry.aMatSteel, 3, RefStrings.MODID + ":textures/armor/steel_1.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_boots").setTextureName(RefStrings.MODID + ":steel_boots"); + alloy_helmet = new ArmorFSB(MainRegistry.aMatAlloy, 0, RefStrings.MODID + ":textures/armor/alloy_1.png").setUnlocalizedName("alloy_helmet").setTextureName(RefStrings.MODID + ":alloy_helmet"); + alloy_plate = new ArmorFSB(MainRegistry.aMatAlloy, 1, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_plate").setTextureName(RefStrings.MODID + ":alloy_plate"); + alloy_legs = new ArmorFSB(MainRegistry.aMatAlloy, 2, RefStrings.MODID + ":textures/armor/alloy_2.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_legs").setTextureName(RefStrings.MODID + ":alloy_legs"); + alloy_boots = new ArmorFSB(MainRegistry.aMatAlloy, 3, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_boots").setTextureName(RefStrings.MODID + ":alloy_boots"); + cmb_helmet = new ArmorFSB(MainRegistry.aMatCMB, 0, RefStrings.MODID + ":textures/armor/cmb_1.png") + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2)) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 4)) + .setUnlocalizedName("cmb_helmet").setTextureName(RefStrings.MODID + ":cmb_helmet"); + cmb_plate = new ArmorFSB(MainRegistry.aMatCMB, 1, RefStrings.MODID + ":textures/armor/cmb_1.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_plate").setTextureName(RefStrings.MODID + ":cmb_plate"); + cmb_legs = new ArmorFSB(MainRegistry.aMatCMB, 2, RefStrings.MODID + ":textures/armor/cmb_2.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_legs").setTextureName(RefStrings.MODID + ":cmb_legs"); + cmb_boots = new ArmorFSB(MainRegistry.aMatCMB, 3, RefStrings.MODID + ":textures/armor/cmb_1.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_boots").setTextureName(RefStrings.MODID + ":cmb_boots"); + paa_plate = new ArmorFSB(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/paa_1.png").setNoHelmet(true) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 0)).setUnlocalizedName("paa_plate").setTextureName(RefStrings.MODID + ":paa_plate"); + paa_legs = new ArmorFSB(MainRegistry.aMatPaa, 2, RefStrings.MODID + ":textures/armor/paa_2.png").cloneStats((ArmorFSB) paa_plate).setUnlocalizedName("paa_legs").setTextureName(RefStrings.MODID + ":paa_legs"); + paa_boots = new ArmorFSB(MainRegistry.aMatPaa, 3, RefStrings.MODID + ":textures/armor/paa_1.png").cloneStats((ArmorFSB) paa_plate).setUnlocalizedName("paa_boots").setTextureName(RefStrings.MODID + ":paa_boots"); + asbestos_helmet = new ArmorFSB(MainRegistry.aMatAsbestos, 0, RefStrings.MODID + ":textures/armor/asbestos_1.png").setOverlay(RefStrings.MODID + ":textures/misc/overlay_asbestos.png").setUnlocalizedName("asbestos_helmet").setTextureName(RefStrings.MODID + ":asbestos_helmet"); + asbestos_plate = new ArmorFSB(MainRegistry.aMatAsbestos, 1, RefStrings.MODID + ":textures/armor/asbestos_1.png").setUnlocalizedName("asbestos_plate").setTextureName(RefStrings.MODID + ":asbestos_plate"); + asbestos_legs = new ArmorFSB(MainRegistry.aMatAsbestos, 2, RefStrings.MODID + ":textures/armor/asbestos_2.png").setUnlocalizedName("asbestos_legs").setTextureName(RefStrings.MODID + ":asbestos_legs"); + asbestos_boots = new ArmorFSB(MainRegistry.aMatAsbestos, 3, RefStrings.MODID + ":textures/armor/asbestos_1.png").setUnlocalizedName("asbestos_boots").setTextureName(RefStrings.MODID + ":asbestos_boots"); + security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet"); + security_plate = new ArmorFSB(MainRegistry.aMatSecurity, 1, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_plate").setTextureName(RefStrings.MODID + ":security_plate"); + security_legs = new ArmorFSB(MainRegistry.aMatSecurity, 2, RefStrings.MODID + ":textures/armor/security_2.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_legs").setTextureName(RefStrings.MODID + ":security_legs"); + security_boots = new ArmorFSB(MainRegistry.aMatSecurity, 3, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_boots").setTextureName(RefStrings.MODID + ":security_boots"); + cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); + cobalt_plate = new ArmorFSB(MainRegistry.aMatCobalt, 1, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_plate").setTextureName(RefStrings.MODID + ":cobalt_plate"); + cobalt_legs = new ArmorFSB(MainRegistry.aMatCobalt, 2, RefStrings.MODID + ":textures/armor/cobalt_2.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_legs").setTextureName(RefStrings.MODID + ":cobalt_legs"); + cobalt_boots = new ArmorFSB(MainRegistry.aMatCobalt, 3, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_boots").setTextureName(RefStrings.MODID + ":cobalt_boots"); + starmetal_helmet = new ArmorFSB(MainRegistry.aMatStarmetal, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") + .setUnlocalizedName("starmetal_helmet").setTextureName(RefStrings.MODID + ":starmetal_helmet"); + starmetal_plate = new ArmorFSB(MainRegistry.aMatStarmetal, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_plate").setTextureName(RefStrings.MODID + ":starmetal_plate"); + starmetal_legs = new ArmorFSB(MainRegistry.aMatStarmetal, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_legs").setTextureName(RefStrings.MODID + ":starmetal_legs"); + starmetal_boots = new ArmorFSB(MainRegistry.aMatStarmetal, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_boots").setTextureName(RefStrings.MODID + ":starmetal_boots"); + + robes_helmet = new ArmorFSB(ArmorMaterial.CHAIN, 0, RefStrings.MODID + ":textures/armor/robes_1.png").setUnlocalizedName("robes_helmet").setTextureName(RefStrings.MODID + ":robes_helmet"); + robes_plate = new ArmorFSB(ArmorMaterial.CHAIN, 1, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_plate").setTextureName(RefStrings.MODID + ":robes_plate"); + robes_legs = new ArmorFSB(ArmorMaterial.CHAIN, 2, RefStrings.MODID + ":textures/armor/robes_2.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_legs").setTextureName(RefStrings.MODID + ":robes_legs"); + robes_boots = new ArmorFSB(ArmorMaterial.CHAIN, 3, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_boots").setTextureName(RefStrings.MODID + ":robes_boots"); + + initializeItem2(); + } + + public static void initializeItem2() { + + ArmorMaterial aMatZirconium = EnumHelper.addArmorMaterial("HBM_ZIRCONIUM", 1000, new int[] { 2, 5, 3, 1 }, 100); + aMatZirconium.customCraftingMaterial = ModItems.ingot_zirconium; + zirconium_legs = new ArmorFSB(aMatZirconium, 2, RefStrings.MODID + ":textures/armor/zirconium_2.png").setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs"); + + ArmorMaterial aMatDNT = EnumHelper.addArmorMaterial("HBM_DNT_LOLOLOL", 3, new int[] { 1, 1, 1, 1 }, 0); + aMatDNT.customCraftingMaterial = ModItems.ingot_dineutronium; + dnt_helmet = new ArmorFSB(aMatDNT, 0, RefStrings.MODID + ":textures/armor/dnt_1.png") + .setUnlocalizedName("dnt_helmet").setTextureName(RefStrings.MODID + ":dnt_helmet"); + dnt_plate = new ArmorFSB(aMatDNT, 1, RefStrings.MODID + ":textures/armor/dnt_1.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_plate").setTextureName(RefStrings.MODID + ":dnt_plate"); + dnt_legs = new ArmorFSB(aMatDNT, 2, RefStrings.MODID + ":textures/armor/dnt_2.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_legs").setTextureName(RefStrings.MODID + ":dnt_legs"); + dnt_boots = new ArmorFSB(aMatDNT, 3, RefStrings.MODID + ":textures/armor/dnt_1.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_boots").setTextureName(RefStrings.MODID + ":dnt_boots"); + + ArmorMaterial aMatT45 = EnumHelper.addArmorMaterial("HBM_T45", 150, new int[] { 3, 8, 6, 3 }, 0); + aMatT45.customCraftingMaterial = ModItems.plate_armor_titanium; + t45_helmet = new ArmorT45(aMatT45, 0, 1000000, 10000, 1000, 5) + .enableVATS(true) + .setHasGeigerSound(true) + .setHasHardLanding(true) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("t45_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_helmet"); + t45_plate = new ArmorT45(aMatT45, 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, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs"); + t45_boots = new ArmorT45(aMatT45, 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, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1) + .setHasHardLanding(true) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 4)) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("steamsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_helmet"); + steamsuit_plate = new ArmorDesh(aMatDesh, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_plate"); + steamsuit_legs = new ArmorDesh(aMatDesh, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.STEAM, 64_000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_legs"); + steamsuit_boots = new ArmorDesh(aMatDesh, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 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, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 2)) + .enableThermalSight(true) + .enableVATS(true) + .setUnlocalizedName("dieselsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_helmet"); + dieselsuit_plate = new ArmorDiesel(aMatDiesel, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_plate"); + dieselsuit_legs = new ArmorDiesel(aMatDiesel, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_legs"); + dieselsuit_boots = new ArmorDiesel(aMatDiesel, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 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; + ajr_helmet = new ArmorAJR(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25) + .enableVATS(true) + .setHasGeigerSound(true) + .setHasHardLanding(true) + .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) + .setStep("hbm:step.metal").setJump("hbm:step.iron_jump").setFall("hbm:step.iron_land") + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("ajr_helmet").setTextureName(RefStrings.MODID + ":ajr_helmet"); + ajr_plate = new ArmorAJR(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_plate").setTextureName(RefStrings.MODID + ":ajr_plate"); + ajr_legs = new ArmorAJR(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_legs").setTextureName(RefStrings.MODID + ":ajr_legs"); + ajr_boots = new ArmorAJR(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_boots").setTextureName(RefStrings.MODID + ":ajr_boots"); + + ajro_helmet = new ArmorAJRO(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25) + .enableVATS(true) + .setHasGeigerSound(true) + .setHasHardLanding(true) + .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) + .setStep("hbm:step.metal").setJump("hbm:step.iron_jump").setFall("hbm:step.iron_land") + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("ajro_helmet").setTextureName(RefStrings.MODID + ":ajro_helmet"); + ajro_plate = new ArmorAJRO(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_plate").setTextureName(RefStrings.MODID + ":ajro_plate"); + ajro_legs = new ArmorAJRO(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_legs").setTextureName(RefStrings.MODID + ":ajro_legs"); + ajro_boots = new ArmorAJRO(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_boots").setTextureName(RefStrings.MODID + ":ajro_boots"); + + rpa_helmet = new ArmorRPA(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25) + .enableVATS(true) + .setHasGeigerSound(true) + .setHasHardLanding(true) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 3)) + .setStep("hbm:step.powered") + .setJump("hbm:step.powered") + .setFall("hbm:step.powered") + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("rpa_helmet").setTextureName(RefStrings.MODID + ":rpa_helmet"); + rpa_plate = new ArmorRPA(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_plate").setTextureName(RefStrings.MODID + ":rpa_plate"); + rpa_legs = new ArmorRPA(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_legs").setTextureName(RefStrings.MODID + ":rpa_legs"); + rpa_boots = new ArmorRPA(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_boots").setTextureName(RefStrings.MODID + ":rpa_boots"); + + ArmorMaterial aMatBJ = EnumHelper.addArmorMaterial("HBM_BLACKJACK", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatBJ.customCraftingMaterial = ModItems.plate_armor_lunar; + bj_helmet = new ArmorBJ(aMatBJ, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100) + .enableVATS(true) + .enableThermalSight(true) + .setHasGeigerSound(true) + .setHasHardLanding(true) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) + .addEffect(new PotionEffect(Potion.field_76443_y.id, 20, 0)) + .addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0)) + .setStep("hbm:step.metal") + .setJump("hbm:step.iron_jump") + .setFall("hbm:step.iron_land").setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet"); + bj_plate = new ArmorBJ(aMatBJ, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate").setTextureName(RefStrings.MODID + ":bj_plate"); + bj_plate_jetpack = new ArmorBJJetpack(aMatBJ, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate_jetpack").setTextureName(RefStrings.MODID + ":bj_plate_jetpack"); + bj_legs = new ArmorBJ(aMatBJ, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs"); + bj_boots = new ArmorBJ(aMatBJ, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots"); + + ArmorMaterial aMatEnv = EnumHelper.addArmorMaterial("HBM_ENV", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatEnv.customCraftingMaterial = ModItems.plate_armor_hev; + envsuit_helmet = new ArmorEnvsuit(aMatEnv, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("envsuit_helmet").setTextureName(RefStrings.MODID + ":envsuit_helmet"); + envsuit_plate = new ArmorEnvsuit(aMatEnv, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_plate").setTextureName(RefStrings.MODID + ":envsuit_plate"); + envsuit_legs = new ArmorEnvsuit(aMatEnv, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_legs").setTextureName(RefStrings.MODID + ":envsuit_legs"); + envsuit_boots = new ArmorEnvsuit(aMatEnv, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_boots").setTextureName(RefStrings.MODID + ":envsuit_boots"); + + ArmorMaterial aMatHEV = EnumHelper.addArmorMaterial("HBM_HEV", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatHEV.customCraftingMaterial = ModItems.plate_armor_hev; + hev_helmet = new ArmorHEV(aMatHEV, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) + .setHasGeigerSound(true) + .setHasCustomGeiger(true) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); + hev_plate = new ArmorHEV(aMatHEV, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate"); + hev_legs = new ArmorHEV(aMatHEV, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_legs").setTextureName(RefStrings.MODID + ":hev_legs"); + hev_boots = new ArmorHEV(aMatHEV, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_boots").setTextureName(RefStrings.MODID + ":hev_boots"); + + jackt = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt"); + jackt2 = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2"); + + ArmorMaterial aMatFau = EnumHelper.addArmorMaterial("HBM_DIGAMMA", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatFau.customCraftingMaterial = ModItems.plate_armor_fau; + fau_helmet = new ArmorDigamma(aMatFau, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0) + .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) + .setHasGeigerSound(true) + .enableThermalSight(true) + .setHasHardLanding(true) + .setStep("hbm:step.metal") + .setJump("hbm:step.iron_jump") + .setFall("hbm:step.iron_land") + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet"); + fau_plate = new ArmorDigamma(aMatFau, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setFullSetForHide().setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate"); + fau_legs = new ArmorDigamma(aMatFau, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).hides(EnumPlayerPart.LEFT_LEG, EnumPlayerPart.RIGHT_LEG).setFullSetForHide().setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs"); + fau_boots = new ArmorDigamma(aMatFau, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots"); + + ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatDNS.customCraftingMaterial = ModItems.plate_armor_dnt; + dns_helmet = new ArmorDNT(aMatDNS, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 9)) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 7)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 2)) + .setHasGeigerSound(true) + .enableVATS(true) + .enableThermalSight(true) + .setHasHardLanding(true) + .setStep("hbm:step.metal") + .setJump("hbm:step.iron_jump") + .setFall("hbm:step.iron_land") + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("dns_helmet").setTextureName(RefStrings.MODID + ":dns_helmet"); + dns_plate = new ArmorDNT(aMatDNS, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_plate").setTextureName(RefStrings.MODID + ":dns_plate"); + dns_legs = new ArmorDNT(aMatDNS, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_legs").setTextureName(RefStrings.MODID + ":dns_legs"); + dns_boots = new ArmorDNT(aMatDNS, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_boots").setTextureName(RefStrings.MODID + ":dns_boots"); + + ArmorMaterial aMatTaurun = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatTaurun.customCraftingMaterial = ModItems.plate_iron; + taurun_helmet = new ArmorTaurun(aMatTaurun, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0)) + .setStepSize(1) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("taurun_helmet").setTextureName(RefStrings.MODID + ":taurun_helmet"); + taurun_plate = new ArmorTaurun(aMatTaurun, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) taurun_helmet).setUnlocalizedName("taurun_plate").setTextureName(RefStrings.MODID + ":taurun_plate"); + taurun_legs = new ArmorTaurun(aMatTaurun, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) taurun_helmet).setUnlocalizedName("taurun_legs").setTextureName(RefStrings.MODID + ":taurun_legs"); + taurun_boots = new ArmorTaurun(aMatTaurun, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) taurun_helmet).setUnlocalizedName("taurun_boots").setTextureName(RefStrings.MODID + ":taurun_boots"); + ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatTrench.customCraftingMaterial = ModItems.plate_iron; + trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 1)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 0)) + .enableVATS(true) + .setStepSize(1) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("trenchmaster_helmet").setTextureName(RefStrings.MODID + ":trenchmaster_helmet"); + trenchmaster_plate = new ArmorTrenchmaster(aMatTrench, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_plate").setTextureName(RefStrings.MODID + ":trenchmaster_plate"); + trenchmaster_legs = new ArmorTrenchmaster(aMatTrench, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_legs").setTextureName(RefStrings.MODID + ":trenchmaster_legs"); + trenchmaster_boots = new ArmorTrenchmaster(aMatTrench, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_boots").setTextureName(RefStrings.MODID + ":trenchmaster_boots"); + + jackt = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt"); + jackt2 = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2"); + + chainsaw = new ItemChainsaw(25, -0.05, MainRegistry.tMatChainsaw, EnumToolType.AXE, 5000, 1, 250, + Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.KEROSENE, Fluids.BIOFUEL, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.COALGAS, Fluids.COALGAS_LEADED) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addHitAbility(new WeaponAbility.ChainsawAbility(10)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); + + schrabidium_sword = new ItemSwordAbility(75, 0, MainRegistry.tMatSchrab) + .addHitAbility(IWeaponAbility.RADIATION, 1) + .addHitAbility(IWeaponAbility.VAMPIRE, 0) + .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_sword").setTextureName(RefStrings.MODID + ":schrabidium_sword"); + + schrabidium_pickaxe = new ItemToolAbility(20, 0, MainRegistry.tMatSchrab, EnumToolType.PICKAXE) + .addHitAbility(new WeaponAbility.RadiationAbility(15F)) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(10)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(5)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_pickaxe").setTextureName(RefStrings.MODID + ":schrabidium_pickaxe"); + + schrabidium_axe = new ItemToolAbility(25, 0, MainRegistry.tMatSchrab, EnumToolType.AXE) + .addHitAbility(new WeaponAbility.RadiationAbility(15F)) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(10)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(5)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .addHitAbility(new WeaponAbility.BeheaderAbility()) + .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_axe").setTextureName(RefStrings.MODID + ":schrabidium_axe"); + + schrabidium_shovel = new ItemToolAbility(15, 0, MainRegistry.tMatSchrab, EnumToolType.SHOVEL) + .addHitAbility(new WeaponAbility.RadiationAbility(15F)) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(10)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(5)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_shovel").setTextureName(RefStrings.MODID + ":schrabidium_shovel"); + + schrabidium_hoe = new HoeSchrabidium(MainRegistry.tMatSchrab).setUnlocalizedName("schrabidium_hoe").setTextureName(RefStrings.MODID + ":schrabidium_hoe"); + + titanium_sword = new ItemSwordAbility(6.5F, 0, MainRegistry.tMatTitan).setUnlocalizedName("titanium_sword").setTextureName(RefStrings.MODID + ":titanium_sword"); + titanium_pickaxe = new ItemToolAbility(4.5F, 0, MainRegistry.tMatTitan, EnumToolType.PICKAXE).setUnlocalizedName("titanium_pickaxe").setTextureName(RefStrings.MODID + ":titanium_pickaxe"); + titanium_axe = new ItemToolAbility(5.5F, 0, MainRegistry.tMatTitan, EnumToolType.AXE) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("titanium_axe").setTextureName(RefStrings.MODID + ":titanium_axe"); + titanium_shovel = new ItemToolAbility(3.5F, 0, MainRegistry.tMatTitan, EnumToolType.SHOVEL).setUnlocalizedName("titanium_shovel").setTextureName(RefStrings.MODID + ":titanium_shovel"); + titanium_hoe = new ModHoe(MainRegistry.tMatTitan).setUnlocalizedName("titanium_hoe").setTextureName(RefStrings.MODID + ":titanium_hoe"); + steel_sword = new ItemSwordAbility(6F, 0, MainRegistry.tMatSteel).setUnlocalizedName("steel_sword").setTextureName(RefStrings.MODID + ":steel_sword"); + steel_pickaxe = new ItemToolAbility(4F, 0, MainRegistry.tMatSteel, EnumToolType.PICKAXE).setUnlocalizedName("steel_pickaxe").setTextureName(RefStrings.MODID + ":steel_pickaxe"); + steel_axe = new ItemToolAbility(5F, 0, MainRegistry.tMatSteel, EnumToolType.AXE) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("steel_axe").setTextureName(RefStrings.MODID + ":steel_axe"); + steel_shovel = new ItemToolAbility(3F, 0, MainRegistry.tMatSteel, EnumToolType.SHOVEL).setUnlocalizedName("steel_shovel").setTextureName(RefStrings.MODID + ":steel_shovel"); + steel_hoe = new ModHoe(MainRegistry.tMatSteel).setUnlocalizedName("steel_hoe").setTextureName(RefStrings.MODID + ":steel_hoe"); + + alloy_sword = new ItemSwordAbility(8F, 0, MainRegistry.tMatAlloy) + .addHitAbility(IWeaponAbility.STUN, 0).setUnlocalizedName("alloy_sword").setTextureName(RefStrings.MODID + ":alloy_sword"); + + alloy_pickaxe = new ItemToolAbility(5F, 0, MainRegistry.tMatAlloy, EnumToolType.PICKAXE) + .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_pickaxe").setTextureName(RefStrings.MODID + ":alloy_pickaxe"); + + alloy_axe = new ItemToolAbility(7F, 0, MainRegistry.tMatAlloy, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.RecursionAbility(3)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("alloy_axe").setTextureName(RefStrings.MODID + ":alloy_axe"); + + alloy_shovel = new ItemToolAbility(4F, 0, MainRegistry.tMatAlloy, EnumToolType.SHOVEL) + .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_shovel").setTextureName(RefStrings.MODID + ":alloy_shovel"); + + alloy_hoe = new ModHoe(MainRegistry.tMatAlloy).setUnlocalizedName("alloy_hoe").setTextureName(RefStrings.MODID + ":alloy_hoe"); + + cmb_sword = new ItemSwordAbility(35F, 0, MainRegistry.tMatCMB) + .addHitAbility(IWeaponAbility.STUN, 0) + .addHitAbility(IWeaponAbility.VAMPIRE, 0).setUnlocalizedName("cmb_sword").setTextureName(RefStrings.MODID + ":cmb_sword"); + + cmb_pickaxe = new ItemToolAbility(10F, 0, MainRegistry.tMatCMB, EnumToolType.PICKAXE) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cmb_pickaxe").setTextureName(RefStrings.MODID + ":cmb_pickaxe"); + + cmb_axe = new ItemToolAbility(30F, 0, MainRegistry.tMatCMB, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(3)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("cmb_axe").setTextureName(RefStrings.MODID + ":cmb_axe"); + + cmb_shovel = new ItemToolAbility(8F, 0, MainRegistry.tMatCMB, EnumToolType.SHOVEL) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cmb_shovel").setTextureName(RefStrings.MODID + ":cmb_shovel"); + + cmb_hoe = new ModHoe(MainRegistry.tMatCMB).setUnlocalizedName("cmb_hoe").setTextureName(RefStrings.MODID + ":cmb_hoe"); + + elec_sword = new ItemSwordAbilityPower(12.5F, 0, MainRegistry.tMatElec, 500000, 1000, 100) + .addHitAbility(IWeaponAbility.STUN, 2).setUnlocalizedName("elec_sword").setTextureName(RefStrings.MODID + ":elec_sword_anim"); + + elec_pickaxe = new ItemToolAbilityPower(6F, 0, MainRegistry.tMatElec, EnumToolType.PICKAXE, 500000, 1000, 100) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("elec_pickaxe").setTextureName(RefStrings.MODID + ":elec_drill_anim"); + + elec_axe = new ItemToolAbilityPower(10F, 0, MainRegistry.tMatElec, EnumToolType.AXE, 500000, 1000, 100) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(2)) + .addHitAbility(new WeaponAbility.ChainsawAbility(15)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); + + elec_shovel = new ItemToolAbilityPower(5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("elec_shovel").setTextureName(RefStrings.MODID + ":elec_shovel_anim"); + + desh_sword = new ItemSwordAbility(12.5F, 0, MainRegistry.tMatDesh) + .addHitAbility(IWeaponAbility.STUN, 0).setUnlocalizedName("desh_sword").setTextureName(RefStrings.MODID + ":desh_sword"); + + desh_pickaxe = new ItemToolAbility(5F, -0.05, MainRegistry.tMatDesh, EnumToolType.PICKAXE) + .addBreakAbility(new ToolAbility.HammerAbility(1)) + .addBreakAbility(new ToolAbility.RecursionAbility(3)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("desh_pickaxe").setTextureName(RefStrings.MODID + ":desh_pickaxe"); + + desh_axe = new ItemToolAbility(7.5F, -0.05, MainRegistry.tMatDesh, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(1)) + .addBreakAbility(new ToolAbility.RecursionAbility(3)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(2)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("desh_axe").setTextureName(RefStrings.MODID + ":desh_axe"); + + desh_shovel = new ItemToolAbility(4F, -0.05, MainRegistry.tMatDesh, EnumToolType.SHOVEL) + .addBreakAbility(new ToolAbility.HammerAbility(1)) + .addBreakAbility(new ToolAbility.RecursionAbility(3)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("desh_shovel").setTextureName(RefStrings.MODID + ":desh_shovel"); + + desh_hoe = new ModHoe(MainRegistry.tMatDesh).setUnlocalizedName("desh_hoe").setTextureName(RefStrings.MODID + ":desh_hoe"); + + cobalt_sword = new ItemSwordAbility(12F, 0, MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_sword").setTextureName(RefStrings.MODID + ":cobalt_sword"); + cobalt_pickaxe = new ItemToolAbility(4F, 0, MainRegistry.tMatCobalt, EnumToolType.PICKAXE) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(1)).setUnlocalizedName("cobalt_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_pickaxe"); + cobalt_axe = new ItemToolAbility(6F, 0, MainRegistry.tMatCobalt, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(1)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("cobalt_axe").setTextureName(RefStrings.MODID + ":cobalt_axe"); + cobalt_shovel = new ItemToolAbility(3.5F, 0, MainRegistry.tMatCobalt, EnumToolType.SHOVEL) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(1)).setUnlocalizedName("cobalt_shovel").setTextureName(RefStrings.MODID + ":cobalt_shovel"); + cobalt_hoe = new ModHoe(MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_hoe").setTextureName(RefStrings.MODID + ":cobalt_hoe"); + + ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 2500, 15.0F, 2.5F, 75).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); + cobalt_decorated_sword = new ItemSwordAbility(15F, 0, matDecCobalt) + .addHitAbility(IWeaponAbility.BOBBLE, 0).setUnlocalizedName("cobalt_decorated_sword").setTextureName(RefStrings.MODID + ":cobalt_decorated_sword"); + cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.HammerAbility(1)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cobalt_decorated_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_decorated_pickaxe"); + cobalt_decorated_axe = new ItemToolAbility(8F, 0, matDecCobalt, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.HammerAbility(1)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(3)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("cobalt_decorated_axe").setTextureName(RefStrings.MODID + ":cobalt_decorated_axe"); + cobalt_decorated_shovel = new ItemToolAbility(5F, 0, matDecCobalt, EnumToolType.SHOVEL) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.HammerAbility(1)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cobalt_decorated_shovel").setTextureName(RefStrings.MODID + ":cobalt_decorated_shovel"); + cobalt_decorated_hoe = new ModHoe(matDecCobalt).setUnlocalizedName("cobalt_decorated_hoe").setTextureName(RefStrings.MODID + ":cobalt_decorated_hoe"); + + ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 3000, 20.0F, 2.5F, 100).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); + starmetal_sword = new ItemSwordAbility(25F, 0, matStarmetal) + .addHitAbility(IWeaponAbility.BEHEADER, 0) + .addHitAbility(IWeaponAbility.STUN, 1) + .addHitAbility(IWeaponAbility.BOBBLE, 0).setUnlocalizedName("starmetal_sword").setTextureName(RefStrings.MODID + ":starmetal_sword"); + starmetal_pickaxe = new ItemToolAbility(8F, 0, matStarmetal, EnumToolType.PICKAXE) + .addBreakAbility(new ToolAbility.RecursionAbility(6)) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(5)) + .addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_pickaxe").setTextureName(RefStrings.MODID + ":starmetal_pickaxe"); + starmetal_axe = new ItemToolAbility(12F, 0, matStarmetal, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.RecursionAbility(6)) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(5)) + .addHitAbility(new WeaponAbility.BeheaderAbility()) + .addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_axe").setTextureName(RefStrings.MODID + ":starmetal_axe"); + starmetal_shovel = new ItemToolAbility(7F, 0, matStarmetal, EnumToolType.SHOVEL) + .addBreakAbility(new ToolAbility.RecursionAbility(6)) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new LuckAbility(5)) + .addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_shovel").setTextureName(RefStrings.MODID + ":starmetal_shovel"); + starmetal_hoe = new ModHoe(matStarmetal).setUnlocalizedName("starmetal_hoe").setTextureName(RefStrings.MODID + ":starmetal_hoe"); + + centri_stick = new ItemToolAbility(3F, 0, MainRegistry.tMatElec, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.CentrifugeAbility()).setMaxDamage(50).setUnlocalizedName("centri_stick").setTextureName(RefStrings.MODID + ":centri_stick"); + smashing_hammer = new ItemToolAbility(12F, -0.1, MainRegistry.tMatSteel, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.ShredderAbility()).setMaxDamage(2500).setUnlocalizedName("smashing_hammer").setTextureName(RefStrings.MODID + ":smashing_hammer"); + drax = new ItemToolAbilityPower(10F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 500000000, 100000, 5000) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(2)) + .addBreakAbility(new ToolAbility.HammerAbility(1)) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("drax").setTextureName(RefStrings.MODID + ":drax"); + drax_mk2 = new ItemToolAbilityPower(15F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 1000000000, 250000, 7500) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .addBreakAbility(new ToolAbility.CentrifugeAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(3)) + .addBreakAbility(new ToolAbility.HammerAbility(1)) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.HammerAbility(3)) + .addBreakAbility(new ToolAbility.RecursionAbility(7)).setUnlocalizedName("drax_mk2").setTextureName(RefStrings.MODID + ":drax_mk2"); + drax_mk3 = new ItemToolAbilityPower(20F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 2500000000L, 500000, 10000) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .addBreakAbility(new ToolAbility.CentrifugeAbility()) + .addBreakAbility(new ToolAbility.CrystallizerAbility()) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(4)) + .addBreakAbility(new ToolAbility.HammerAbility(1)) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.HammerAbility(3)) + .addBreakAbility(new ToolAbility.HammerAbility(4)) + .addBreakAbility(new ToolAbility.RecursionAbility(9)).setUnlocalizedName("drax_mk3").setTextureName(RefStrings.MODID + ":drax_mk3"); + + ToolMaterial matBismuth = EnumHelper.addToolMaterial("HBM_BISMUTH", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); + bismuth_pickaxe = new ItemToolAbility(15F, 0, matBismuth, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(2)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addHitAbility(new WeaponAbility.StunAbility(5)) + .addHitAbility(new WeaponAbility.VampireAbility(2F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()) + .setDepthRockBreaker().setUnlocalizedName("bismuth_pickaxe").setTextureName(RefStrings.MODID + ":bismuth_pickaxe"); + bismuth_axe = new ItemToolAbility(25F, 0, matBismuth, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.ShredderAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(2)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addHitAbility(new WeaponAbility.StunAbility(10)) + .addHitAbility(new WeaponAbility.VampireAbility(3F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("bismuth_axe").setTextureName(RefStrings.MODID + ":bismuth_axe"); + + + ToolMaterial matVolcano = EnumHelper.addToolMaterial("HBM_VOLCANIC", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); + volcanic_pickaxe = new ItemToolAbility(15F, 0, matVolcano, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(3)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addHitAbility(new WeaponAbility.FireAbility(5)) + .addHitAbility(new WeaponAbility.VampireAbility(2F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()) + .setDepthRockBreaker().setUnlocalizedName("volcanic_pickaxe").setTextureName(RefStrings.MODID + ":volcanic_pickaxe"); + volcanic_axe = new ItemToolAbility(25F, 0, matVolcano, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(3)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addHitAbility(new WeaponAbility.FireAbility(10)) + .addHitAbility(new WeaponAbility.VampireAbility(3F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("volcanic_axe").setTextureName(RefStrings.MODID + ":volcanic_axe"); + + ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 75F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte)); + chlorophyte_pickaxe = new ItemToolAbility(20F, 0, matChlorophyte, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.LuckAbility(4)) + .addBreakAbility(new ToolAbility.CentrifugeAbility()) + .addBreakAbility(new ToolAbility.MercuryAbility()) + .addHitAbility(new WeaponAbility.StunAbility(10)) + .addHitAbility(new WeaponAbility.VampireAbility(5F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()) + .setDepthRockBreaker().setUnlocalizedName("chlorophyte_pickaxe").setTextureName(RefStrings.MODID + ":chlorophyte_pickaxe"); + chlorophyte_axe = new ItemToolAbility(50F, 0, matChlorophyte, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.LuckAbility(4)) + .addHitAbility(new WeaponAbility.StunAbility(15)) + .addHitAbility(new WeaponAbility.VampireAbility(10F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("chlorophyte_axe").setTextureName(RefStrings.MODID + ":chlorophyte_axe"); + + ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); + mese_pickaxe = new ItemToolAbility(35F, 0, matMese, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.HammerAbility(3)) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.CrystallizerAbility()) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(9)) + .addBreakAbility(new ToolAbility.ExplosionAbility(2.5F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(5F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(10F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(15F)) + .addHitAbility(new WeaponAbility.StunAbility(10)) + .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) + .addHitAbility(new WeaponAbility.BeheaderAbility()) + .setDepthRockBreaker().setUnlocalizedName("mese_pickaxe").setTextureName(RefStrings.MODID + ":mese_pickaxe"); + mese_axe = new ItemToolAbility(75F, 0, matMese, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.HammerAbility(3)) + .addBreakAbility(new ToolAbility.RecursionAbility(5)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(9)) + .addBreakAbility(new ToolAbility.ExplosionAbility(2.5F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(5F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(10F)) + .addBreakAbility(new ToolAbility.ExplosionAbility(15F)) + .addHitAbility(new WeaponAbility.StunAbility(15)) + .addHitAbility(new WeaponAbility.PhosphorusAbility(90)) + .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("mese_axe").setTextureName(RefStrings.MODID + ":mese_axe"); + + dnt_sword = new ItemSwordAbility(12F, 0, matMese).setUnlocalizedName("dnt_sword").setTextureName(RefStrings.MODID + ":dnt_sword"); + + ToolMaterial matDwarf = EnumHelper.addToolMaterial("HBM_DWARVEN", 2, 0, 4F, 0.0F, 10).setRepairItem(new ItemStack(ModItems.ingot_copper)); + dwarven_pickaxe = new ItemToolAbility(5F, -0.1, matDwarf, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.HammerAbility(1)).setUnlocalizedName("dwarven_pickaxe").setMaxDamage(250).setTextureName(RefStrings.MODID + ":dwarven_pickaxe"); + + ToolMaterial matMeteorite = EnumHelper.addToolMaterial("HBM_METEORITE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); + meteorite_sword = new ItemSwordMeteorite(9F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_seared = new ItemSwordMeteorite(10F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_seared").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_reforged = new ItemSwordMeteorite(12.5F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_reforged").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_hardened = new ItemSwordMeteorite(15F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_hardened").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_alloyed = new ItemSwordMeteorite(17.5F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_alloyed").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_machined = new ItemSwordMeteorite(20F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_machined").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_treated = new ItemSwordMeteorite(22.5F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_treated").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_etched = new ItemSwordMeteorite(25F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_etched").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_bred = new ItemSwordMeteorite(30F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_bred").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_irradiated = new ItemSwordMeteorite(35F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_irradiated").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_fused = new ItemSwordMeteorite(50F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_fused").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_baleful = new ItemSwordMeteorite(75F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_baleful").setTextureName(RefStrings.MODID + ":meteorite_sword"); + + mask_of_infamy = new MaskOfInfamy(ArmorMaterial.IRON, 0).setUnlocalizedName("mask_of_infamy").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_of_infamy"); + + hazmat_helmet = new ArmorHazmatMask(MainRegistry.aMatHaz, 0, RefStrings.MODID + ":textures/armor/hazmat_1.png").setUnlocalizedName("hazmat_helmet").setTextureName(RefStrings.MODID + ":hazmat_helmet"); + hazmat_plate = new ArmorHazmat(MainRegistry.aMatHaz, 1, RefStrings.MODID + ":textures/armor/hazmat_1.png").setUnlocalizedName("hazmat_plate").setTextureName(RefStrings.MODID + ":hazmat_plate"); + hazmat_legs = new ArmorHazmat(MainRegistry.aMatHaz, 2, RefStrings.MODID + ":textures/armor/hazmat_2.png").setUnlocalizedName("hazmat_legs").setTextureName(RefStrings.MODID + ":hazmat_legs"); + hazmat_boots = new ArmorHazmat(MainRegistry.aMatHaz, 3, RefStrings.MODID + ":textures/armor/hazmat_1.png").setUnlocalizedName("hazmat_boots").setTextureName(RefStrings.MODID + ":hazmat_boots"); + hazmat_helmet_red = new ArmorHazmatMask(MainRegistry.aMatHaz2, 0, "hbm:textures/models/ModelHazRed.png").setUnlocalizedName("hazmat_helmet_red").setTextureName(RefStrings.MODID + ":hazmat_helmet_red"); + hazmat_plate_red = new ArmorHazmat(MainRegistry.aMatHaz2, 1, RefStrings.MODID + ":textures/armor/hazmat_1_red.png").setUnlocalizedName("hazmat_plate_red").setTextureName(RefStrings.MODID + ":hazmat_plate_red"); + hazmat_legs_red = new ArmorHazmat(MainRegistry.aMatHaz2, 2, RefStrings.MODID + ":textures/armor/hazmat_2_red.png").setUnlocalizedName("hazmat_legs_red").setTextureName(RefStrings.MODID + ":hazmat_legs_red"); + hazmat_boots_red = new ArmorHazmat(MainRegistry.aMatHaz2, 3, RefStrings.MODID + ":textures/armor/hazmat_1_red.png").setUnlocalizedName("hazmat_boots_red").setTextureName(RefStrings.MODID + ":hazmat_boots_red"); + hazmat_helmet_grey = new ArmorHazmatMask(MainRegistry.aMatHaz3, 0, "hbm:textures/models/ModelHazGrey.png") + .setUnlocalizedName("hazmat_helmet_grey").setTextureName(RefStrings.MODID + ":hazmat_helmet_grey"); + hazmat_plate_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 1, RefStrings.MODID + ":textures/armor/hazmat_1_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_plate_grey").setTextureName(RefStrings.MODID + ":hazmat_plate_grey"); + hazmat_legs_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 2, RefStrings.MODID + ":textures/armor/hazmat_2_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_legs_grey").setTextureName(RefStrings.MODID + ":hazmat_legs_grey"); + hazmat_boots_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 3, RefStrings.MODID + ":textures/armor/hazmat_1_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_boots_grey").setTextureName(RefStrings.MODID + ":hazmat_boots_grey"); + hazmat_paa_helmet = new ArmorHazmatMask(MainRegistry.aMatPaa, 0, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png") + .setUnlocalizedName("hazmat_paa_helmet").setTextureName(RefStrings.MODID + ":hazmat_paa_helmet"); + hazmat_paa_plate = new ArmorHazmat(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_plate").setTextureName(RefStrings.MODID + ":hazmat_paa_plate"); + hazmat_paa_legs = new ArmorHazmat(MainRegistry.aMatPaa, 2, RefStrings.MODID + ":textures/armor/hazmat_paa_2.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_legs").setTextureName(RefStrings.MODID + ":hazmat_paa_legs"); + hazmat_paa_boots = new ArmorHazmat(MainRegistry.aMatPaa, 3, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_boots").setTextureName(RefStrings.MODID + ":hazmat_paa_boots"); + + ArmorMaterial aMatLiquidator = EnumHelper.addArmorMaterial("HBM_LIQUIDATOR", 750, new int[] { 3, 8, 6, 3 }, 10); + aMatLiquidator.customCraftingMaterial = ModItems.plate_lead; + liquidator_helmet = new ArmorLiquidatorMask(aMatLiquidator, 0, RefStrings.MODID + ":textures/armor/liquidator_helmet.png") + .setStep("hbm:step.metal") + .setJump("hbm:step.iron_jump") + .setFall("hbm:step.iron_land").setUnlocalizedName("liquidator_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_helmet"); + liquidator_plate = new ArmorLiquidator(aMatLiquidator, 1, RefStrings.MODID + ":textures/armor/liquidator_1.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_plate"); + liquidator_legs = new ArmorLiquidator(aMatLiquidator, 2, RefStrings.MODID + ":textures/armor/liquidator_2.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_legs"); + liquidator_boots = new ArmorLiquidator(aMatLiquidator, 3, RefStrings.MODID + ":textures/armor/liquidator_1.png").cloneStats((ArmorFSB) liquidator_helmet).setUnlocalizedName("liquidator_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_boots"); + + jetpack_boost = new JetpackBooster(Fluids.BALEFIRE, 32000).setUnlocalizedName("jetpack_boost").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_boost"); + jetpack_break = new JetpackBreak(Fluids.KEROSENE, 12000).setUnlocalizedName("jetpack_break").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_break"); + jetpack_fly = new JetpackRegular(Fluids.KEROSENE, 12000).setUnlocalizedName("jetpack_fly").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_fly"); + jetpack_vector = new JetpackVectorized(Fluids.KEROSENE, 16000).setUnlocalizedName("jetpack_vector").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":jetpack_vector"); + wings_murk = new WingsMurk().setUnlocalizedName("wings_murk").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_murk"); + wings_limp = new WingsMurk().setUnlocalizedName("wings_limp").setCreativeTab(CreativeTabs.tabCombat).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wings_limp"); + + cape_radiation = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_radiation").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_radiation"); + cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask"); + cape_schrabidium = new ArmorModel(MainRegistry.aMatSchrab, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium"); + cape_hidden = new ArmorModel(ArmorMaterial.CHAIN, 1).setUnlocalizedName("cape_hidden").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_unknown"); + + schrabidium_hammer = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("schrabidium_hammer").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); + shimmer_sledge = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_sledge").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_sledge_original"); + shimmer_axe = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_axe"); + bottle_opener = new WeaponSpecial(MainRegistry.enumToolMaterialBottleOpener).setUnlocalizedName("bottle_opener").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":bottle_opener"); + pch = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("pch").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); + matchstick = new ItemMatch().setUnlocalizedName("matchstick").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":matchstick"); + balefire_and_steel = new ItemBalefireMatch().setUnlocalizedName("balefire_and_steel").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":balefire_and_steel"); + crowbar = new ModSword(MainRegistry.tMatSteel).setUnlocalizedName("crowbar").setFull3D().setTextureName(RefStrings.MODID + ":crowbar"); + wrench = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("wrench").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wrench"); + wrench_flipped = new WeaponSpecial(MainRegistry.tMatElec).setUnlocalizedName("wrench_flipped").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wrench_flipped"); + memespoon = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("memespoon").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":memespoon"); + wood_gavel = new WeaponSpecial(ToolMaterial.WOOD).setUnlocalizedName("wood_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wood_gavel"); + lead_gavel = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("lead_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":lead_gavel"); + diamond_gavel = new WeaponSpecial(ToolMaterial.EMERALD).setUnlocalizedName("diamond_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":diamond_gavel"); + ToolMaterial matMeseGavel = EnumHelper.addToolMaterial("HBM_MESEGAVEL", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); + mese_gavel = new ItemSwordAbility(250, 1.5, matMeseGavel) + .addHitAbility(IWeaponAbility.PHOSPHORUS, 0) + .addHitAbility(IWeaponAbility.RADIATION, 2) + .addHitAbility(IWeaponAbility.STUN, 3) + .addHitAbility(IWeaponAbility.VAMPIRE, 4) + .addHitAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("mese_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mese_gavel"); + + multitool_hit = new ItemMultitoolPassive().setUnlocalizedName("multitool_hit").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); + multitool_dig = new ItemMultitoolTool(4.0F, MainRegistry.enumToolMaterialMultitool, ItemMultitoolTool.getAllBlocks()).setFull3D().setUnlocalizedName("multitool_dig").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":multitool_claw"); + multitool_silk = new ItemMultitoolTool(4.0F, MainRegistry.enumToolMaterialMultitool, ItemMultitoolTool.getAllBlocks()).setFull3D().setUnlocalizedName("multitool_silk").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_claw"); + multitool_ext = new ItemMultitoolPassive().setUnlocalizedName("multitool_ext").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_open"); + multitool_miner = new ItemMultitoolPassive().setUnlocalizedName("multitool_miner").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_pointer"); + multitool_beam = new ItemMultitoolPassive().setUnlocalizedName("multitool_beam").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_pointer"); + multitool_sky= new ItemMultitoolPassive().setUnlocalizedName("multitool_sky").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_open"); + multitool_mega = new ItemMultitoolPassive().setUnlocalizedName("multitool_mega").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); + multitool_joule = new ItemMultitoolPassive().setUnlocalizedName("multitool_joule").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); + multitool_decon = new ItemMultitoolPassive().setUnlocalizedName("multitool_decon").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); + + saw = new ModSword(MainRegistry.enumToolMaterialSaw).setUnlocalizedName("weapon_saw").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":saw"); + bat = new ModSword(MainRegistry.enumToolMaterialBat).setUnlocalizedName("weapon_bat").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":bat"); + bat_nail = new ModSword(MainRegistry.enumToolMaterialBatNail).setUnlocalizedName("weapon_bat_nail").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":bat_nail"); + golf_club = new ModSword(MainRegistry.enumToolMaterialGolfClub).setUnlocalizedName("weapon_golf_club").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":golf_club"); + pipe_rusty = new ModSword(MainRegistry.enumToolMaterialPipeRusty).setUnlocalizedName("weapon_pipe_rusty").setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":pipe_rusty"); + pipe_lead = new ModSword(MainRegistry.enumToolMaterialPipeLead).setUnlocalizedName("weapon_pipe_lead").setFull3D().setTextureName(RefStrings.MODID + ":pipe_lead"); + reer_graar = new ModSword(MainRegistry.tMatTitan).setUnlocalizedName("reer_graar").setFull3D().setTextureName(RefStrings.MODID + ":reer_graar_hd"); + stopsign = new WeaponSpecial(MainRegistry.tMatAlloy).setUnlocalizedName("stopsign").setTextureName(RefStrings.MODID + ":stopsign"); + sopsign = new WeaponSpecial(MainRegistry.tMatAlloy).setUnlocalizedName("sopsign").setTextureName(RefStrings.MODID + ":sopsign"); + chernobylsign = new WeaponSpecial(MainRegistry.tMatAlloy).setUnlocalizedName("chernobylsign").setTextureName(RefStrings.MODID + ":chernobylsign"); + + crystal_horn = new ItemCustomLore().setUnlocalizedName("crystal_horn").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_horn"); + crystal_charred = new ItemCustomLore().setUnlocalizedName("crystal_charred").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_charred"); + + bucket_mud = new ItemModBucket(ModBlocks.mud_block).setUnlocalizedName("bucket_mud").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_mud"); + bucket_acid = new ItemModBucket(ModBlocks.acid_block).setUnlocalizedName("bucket_acid").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_acid"); + bucket_toxic = new ItemModBucket(ModBlocks.toxic_block).setUnlocalizedName("bucket_toxic").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_toxic"); + bucket_schrabidic_acid = new ItemModBucket(ModBlocks.schrabidic_block).setUnlocalizedName("bucket_schrabidic_acid").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_schrabidic_acid"); + bucket_sulfuric_acid = new ItemModBucket(ModBlocks.sulfuric_acid_block).setUnlocalizedName("bucket_sulfuric_acid").setContainerItem(Items.bucket).setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":bucket_sulfuric_acid"); + + door_metal = new ItemModDoor().setUnlocalizedName("door_metal").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_metal"); + door_office = new ItemModDoor().setUnlocalizedName("door_office").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_office"); + door_bunker = new ItemModDoor().setUnlocalizedName("door_bunker").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_bunker"); + door_red = new ItemModDoor().setUnlocalizedName("door_red").setCreativeTab(null).setTextureName(RefStrings.MODID + ":door_red"); + + sliding_blast_door_skin = new ItemSlidingBlastDoorSkin().setUnlocalizedName("sliding_blast_door_skin").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":sliding_blast_door_default"); + + record_lc = new ItemModRecord("lc").setUnlocalizedName("record_lc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_lc"); + record_ss = new ItemModRecord("ss").setUnlocalizedName("record_ss").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_ss"); + record_vc = new ItemModRecord("vc").setUnlocalizedName("record_vc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_vc"); + record_glass = new ItemModRecord("glass").setUnlocalizedName("record_glass").setCreativeTab(null).setTextureName(RefStrings.MODID + ":record_glass"); + + book_guide = new ItemGuideBook().setUnlocalizedName("book_guide").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":book_guide"); + book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_pages"); + holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); + holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); + clay_tablet = new ItemClayTablet().setUnlocalizedName("clay_tablet").setCreativeTab(null).setTextureName(RefStrings.MODID + ":clay_tablet"); + + polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); + glitch = new ItemGlitch().setUnlocalizedName("glitch").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glitch_" + MainRegistry.polaroidID); + letter = new ItemStarterKit().setUnlocalizedName("letter").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":letter"); + book_secret = new ItemCustomLore().setUnlocalizedName("book_secret").setCreativeTab(MainRegistry.polaroidID == 11 ? MainRegistry.consumableTab : null).setTextureName(RefStrings.MODID + ":book_secret"); + book_of_ = new ItemBook().setUnlocalizedName("book_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_of_"); + page_of_ = new ItemEnumMulti(ItemEnums.EnumPages.class, true, false).setUnlocalizedName("page_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":page_of_"); + book_lemegeton = new ItemBookLemegeton().setUnlocalizedName("book_lemegeton").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_lemegeton"); + burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); + + chlorine1 = new Item().setUnlocalizedName("chlorine1").setTextureName(RefStrings.MODID + ":chlorine1"); + chlorine2 = new Item().setUnlocalizedName("chlorine2").setTextureName(RefStrings.MODID + ":chlorine2"); + chlorine3 = new Item().setUnlocalizedName("chlorine3").setTextureName(RefStrings.MODID + ":chlorine3"); + chlorine4 = new Item().setUnlocalizedName("chlorine4").setTextureName(RefStrings.MODID + ":chlorine4"); + chlorine5 = new Item().setUnlocalizedName("chlorine5").setTextureName(RefStrings.MODID + ":chlorine5"); + chlorine6 = new Item().setUnlocalizedName("chlorine6").setTextureName(RefStrings.MODID + ":chlorine6"); + chlorine7 = new Item().setUnlocalizedName("chlorine7").setTextureName(RefStrings.MODID + ":chlorine7"); + chlorine8 = new Item().setUnlocalizedName("chlorine8").setTextureName(RefStrings.MODID + ":chlorine8"); + pc1 = new Item().setUnlocalizedName("pc1").setTextureName(RefStrings.MODID + ":pc1"); + pc2 = new Item().setUnlocalizedName("pc2").setTextureName(RefStrings.MODID + ":pc2"); + pc3 = new Item().setUnlocalizedName("pc3").setTextureName(RefStrings.MODID + ":pc3"); + pc4 = new Item().setUnlocalizedName("pc4").setTextureName(RefStrings.MODID + ":pc4"); + pc5 = new Item().setUnlocalizedName("pc5").setTextureName(RefStrings.MODID + ":pc5"); + pc6 = new Item().setUnlocalizedName("pc6").setTextureName(RefStrings.MODID + ":pc6"); + pc7 = new Item().setUnlocalizedName("pc7").setTextureName(RefStrings.MODID + ":pc7"); + pc8 = new Item().setUnlocalizedName("pc8").setTextureName(RefStrings.MODID + ":pc8"); + cloud1 = new Item().setUnlocalizedName("cloud1").setTextureName(RefStrings.MODID + ":cloud1"); + cloud2 = new Item().setUnlocalizedName("cloud2").setTextureName(RefStrings.MODID + ":cloud2"); + cloud3 = new Item().setUnlocalizedName("cloud3").setTextureName(RefStrings.MODID + ":cloud3"); + cloud4 = new Item().setUnlocalizedName("cloud4").setTextureName(RefStrings.MODID + ":cloud4"); + cloud5 = new Item().setUnlocalizedName("cloud5").setTextureName(RefStrings.MODID + ":cloud5"); + cloud6 = new Item().setUnlocalizedName("cloud6").setTextureName(RefStrings.MODID + ":cloud6"); + cloud7 = new Item().setUnlocalizedName("cloud7").setTextureName(RefStrings.MODID + ":cloud7"); + cloud8 = new Item().setUnlocalizedName("cloud8").setTextureName(RefStrings.MODID + ":cloud8"); + orange1 = new Item().setUnlocalizedName("orange1").setTextureName(RefStrings.MODID + ":orange1"); + orange2 = new Item().setUnlocalizedName("orange2").setTextureName(RefStrings.MODID + ":orange2"); + orange3 = new Item().setUnlocalizedName("orange3").setTextureName(RefStrings.MODID + ":orange3"); + orange4 = new Item().setUnlocalizedName("orange4").setTextureName(RefStrings.MODID + ":orange4"); + orange5 = new Item().setUnlocalizedName("orange5").setTextureName(RefStrings.MODID + ":orange5"); + 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"); + nothing = new Item().setUnlocalizedName("nothing").setTextureName(RefStrings.MODID + ":nothing"); + + + achievement_icon = new ItemEnumMulti(ItemEnums.EnumAchievementType.class, true, true).setUnlocalizedName("achievement_icon"); + bob_metalworks = new Item().setUnlocalizedName("bob_metalworks").setTextureName(RefStrings.MODID + ":bob_metalworks"); + bob_assembly = new Item().setUnlocalizedName("bob_assembly").setTextureName(RefStrings.MODID + ":bob_assembly"); + bob_chemistry = new Item().setUnlocalizedName("bob_chemistry").setTextureName(RefStrings.MODID + ":bob_chemistry"); + bob_oil = new Item().setUnlocalizedName("bob_oil").setTextureName(RefStrings.MODID + ":bob_oil"); + bob_nuclear = new Item().setUnlocalizedName("bob_nuclear").setTextureName(RefStrings.MODID + ":bob_nuclear"); + + mysteryshovel = new ItemMS().setUnlocalizedName("mysteryshovel").setFull3D().setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cursed_shovel"); + memory = new ItemBattery(Long.MAX_VALUE / 100L, 100000000000000L, 100000000000000L).setUnlocalizedName("memory").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mo8_anim"); + + conveyor_wand = new ItemConveyorWand().setUnlocalizedName("conveyor_wand").setCreativeTab(MainRegistry.machineTab).setFull3D().setTextureName(RefStrings.MODID + ":wand_s"); + + GunFactory.init(); + + FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.mud_fluid, 1000), new ItemStack(ModItems.bucket_mud), new ItemStack(Items.bucket)); + FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.acid_fluid, 1000), new ItemStack(ModItems.bucket_acid), new ItemStack(Items.bucket)); + FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.toxic_fluid, 1000), new ItemStack(ModItems.bucket_toxic), new ItemStack(Items.bucket)); + FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.schrabidic_fluid, 1000), new ItemStack(ModItems.bucket_schrabidic_acid), new ItemStack(Items.bucket)); + FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.sulfuric_acid_fluid, 1000), new ItemStack(ModItems.bucket_sulfuric_acid), new ItemStack(Items.bucket)); + BucketHandler.INSTANCE.buckets.put(ModBlocks.mud_block, ModItems.bucket_mud); + BucketHandler.INSTANCE.buckets.put(ModBlocks.acid_block, ModItems.bucket_acid); + BucketHandler.INSTANCE.buckets.put(ModBlocks.toxic_block, ModItems.bucket_toxic); + BucketHandler.INSTANCE.buckets.put(ModBlocks.schrabidic_block, ModItems.bucket_schrabidic_acid); + BucketHandler.INSTANCE.buckets.put(ModBlocks.sulfuric_acid_block, ModItems.bucket_sulfuric_acid); + MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); + } + + private static void registerItem() { + //Weapons + GameRegistry.registerItem(redstone_sword, redstone_sword.getUnlocalizedName()); + GameRegistry.registerItem(big_sword, big_sword.getUnlocalizedName()); + + //Test Nuke + GameRegistry.registerItem(test_nuke_igniter, test_nuke_igniter.getUnlocalizedName()); + GameRegistry.registerItem(test_nuke_propellant, test_nuke_propellant.getUnlocalizedName()); + GameRegistry.registerItem(test_nuke_tier1_shielding, test_nuke_tier1_shielding.getUnlocalizedName()); + GameRegistry.registerItem(test_nuke_tier2_shielding, test_nuke_tier2_shielding.getUnlocalizedName()); + GameRegistry.registerItem(test_nuke_tier1_bullet, test_nuke_tier1_bullet.getUnlocalizedName()); + GameRegistry.registerItem(test_nuke_tier2_bullet, test_nuke_tier2_bullet.getUnlocalizedName()); + GameRegistry.registerItem(test_nuke_tier1_target, test_nuke_tier1_target.getUnlocalizedName()); + GameRegistry.registerItem(test_nuke_tier2_target, test_nuke_tier2_target.getUnlocalizedName()); + + //Ingots + GameRegistry.registerItem(ingot_uranium, ingot_uranium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_u233, ingot_u233.getUnlocalizedName()); + GameRegistry.registerItem(ingot_u235, ingot_u235.getUnlocalizedName()); + GameRegistry.registerItem(ingot_u238, ingot_u238.getUnlocalizedName()); + GameRegistry.registerItem(ingot_u238m2, ingot_u238m2.getUnlocalizedName()); + GameRegistry.registerItem(ingot_th232, ingot_th232.getUnlocalizedName()); + GameRegistry.registerItem(ingot_plutonium, ingot_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pu238, ingot_pu238.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pu239, ingot_pu239.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pu240, ingot_pu240.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pu241, ingot_pu241.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pu_mix, ingot_pu_mix.getUnlocalizedName()); + GameRegistry.registerItem(ingot_am241, ingot_am241.getUnlocalizedName()); + GameRegistry.registerItem(ingot_am242, ingot_am242.getUnlocalizedName()); + GameRegistry.registerItem(ingot_am_mix, ingot_am_mix.getUnlocalizedName()); + GameRegistry.registerItem(ingot_neptunium, ingot_neptunium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_polonium, ingot_polonium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_technetium, ingot_technetium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_co60, ingot_co60.getUnlocalizedName()); + GameRegistry.registerItem(ingot_sr90, ingot_sr90.getUnlocalizedName()); + GameRegistry.registerItem(ingot_au198, ingot_au198.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pb209, ingot_pb209.getUnlocalizedName()); + GameRegistry.registerItem(ingot_ra226, ingot_ra226.getUnlocalizedName()); + GameRegistry.registerItem(ingot_titanium, ingot_titanium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_copper, ingot_copper.getUnlocalizedName()); + GameRegistry.registerItem(ingot_red_copper, ingot_red_copper.getUnlocalizedName()); + GameRegistry.registerItem(ingot_advanced_alloy, ingot_advanced_alloy.getUnlocalizedName()); + GameRegistry.registerItem(ingot_tungsten, ingot_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(ingot_aluminium, ingot_aluminium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_steel, ingot_steel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_tcalloy, ingot_tcalloy.getUnlocalizedName()); + GameRegistry.registerItem(ingot_cdalloy, ingot_cdalloy.getUnlocalizedName()); + GameRegistry.registerItem(ingot_bismuth_bronze, ingot_bismuth_bronze.getUnlocalizedName()); + GameRegistry.registerItem(ingot_arsenic_bronze, ingot_arsenic_bronze.getUnlocalizedName()); + GameRegistry.registerItem(ingot_bscco, ingot_bscco.getUnlocalizedName()); + GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName()); + GameRegistry.registerItem(ingot_bismuth, ingot_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(ingot_arsenic, ingot_arsenic.getUnlocalizedName()); + GameRegistry.registerItem(ingot_calcium, ingot_calcium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_cadmium, ingot_cadmium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_tantalium, ingot_tantalium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_silicon, ingot_silicon.getUnlocalizedName()); + GameRegistry.registerItem(ingot_niobium, ingot_niobium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_cobalt, ingot_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(ingot_boron, ingot_boron.getUnlocalizedName()); + GameRegistry.registerItem(ingot_graphite, ingot_graphite.getUnlocalizedName()); + GameRegistry.registerItem(ingot_firebrick, ingot_firebrick.getUnlocalizedName()); + GameRegistry.registerItem(ingot_dura_steel, ingot_dura_steel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_polymer, ingot_polymer.getUnlocalizedName()); + GameRegistry.registerItem(ingot_bakelite, ingot_bakelite.getUnlocalizedName()); + GameRegistry.registerItem(ingot_biorubber, ingot_biorubber.getUnlocalizedName()); + GameRegistry.registerItem(ingot_rubber, ingot_rubber.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pc, ingot_pc.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pvc, ingot_pvc.getUnlocalizedName()); + GameRegistry.registerItem(ingot_mud, ingot_mud.getUnlocalizedName()); + GameRegistry.registerItem(ingot_cft, ingot_cft.getUnlocalizedName()); + GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName()); + GameRegistry.registerItem(ingot_magnetized_tungsten, ingot_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(ingot_combine_steel, ingot_combine_steel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_solinium, ingot_solinium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_gh336, ingot_gh336.getUnlocalizedName()); + GameRegistry.registerItem(ingot_uranium_fuel, ingot_uranium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_thorium_fuel, ingot_thorium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_plutonium_fuel, ingot_plutonium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_neptunium_fuel, ingot_neptunium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_mox_fuel, ingot_mox_fuel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_americium_fuel, ingot_americium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_schrabidium_fuel, ingot_schrabidium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_hes, ingot_hes.getUnlocalizedName()); + GameRegistry.registerItem(ingot_les, ingot_les.getUnlocalizedName()); + GameRegistry.registerItem(ingot_australium, ingot_australium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_lanthanium, ingot_lanthanium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_actinium, ingot_actinium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_desh, ingot_desh.getUnlocalizedName()); + GameRegistry.registerItem(ingot_ferrouranium, ingot_ferrouranium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_starmetal, ingot_starmetal.getUnlocalizedName()); + GameRegistry.registerItem(ingot_gunmetal, ingot_gunmetal.getUnlocalizedName()); + GameRegistry.registerItem(ingot_weaponsteel, ingot_weaponsteel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_saturnite, ingot_saturnite.getUnlocalizedName()); + GameRegistry.registerItem(ingot_euphemium, ingot_euphemium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_dineutronium, ingot_dineutronium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_electronium, ingot_electronium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_smore, ingot_smore.getUnlocalizedName()); + GameRegistry.registerItem(ingot_osmiridium, ingot_osmiridium.getUnlocalizedName()); + + //Meteorite Ingots + GameRegistry.registerItem(ingot_steel_dusted, ingot_steel_dusted.getUnlocalizedName()); + GameRegistry.registerItem(ingot_chainsteel, ingot_chainsteel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_meteorite, ingot_meteorite.getUnlocalizedName()); + GameRegistry.registerItem(ingot_meteorite_forged, ingot_meteorite_forged.getUnlocalizedName()); + GameRegistry.registerItem(blade_meteorite, blade_meteorite.getUnlocalizedName()); + + //Misc Ingots + GameRegistry.registerItem(ingot_phosphorus, ingot_phosphorus.getUnlocalizedName()); + GameRegistry.registerItem(lithium, lithium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_zirconium, ingot_zirconium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_semtex, ingot_semtex.getUnlocalizedName()); + GameRegistry.registerItem(ingot_c4, ingot_c4.getUnlocalizedName()); + GameRegistry.registerItem(oil_tar, oil_tar.getUnlocalizedName()); + GameRegistry.registerItem(solid_fuel, solid_fuel.getUnlocalizedName()); + GameRegistry.registerItem(solid_fuel_presto, solid_fuel_presto.getUnlocalizedName()); + GameRegistry.registerItem(solid_fuel_presto_triplet, solid_fuel_presto_triplet.getUnlocalizedName()); + GameRegistry.registerItem(solid_fuel_bf, solid_fuel_bf.getUnlocalizedName()); + GameRegistry.registerItem(solid_fuel_presto_bf, solid_fuel_presto_bf.getUnlocalizedName()); + GameRegistry.registerItem(solid_fuel_presto_triplet_bf, solid_fuel_presto_triplet_bf.getUnlocalizedName()); + GameRegistry.registerItem(rocket_fuel, rocket_fuel.getUnlocalizedName()); + GameRegistry.registerItem(ingot_fiberglass, ingot_fiberglass.getUnlocalizedName()); + GameRegistry.registerItem(ingot_asbestos, ingot_asbestos.getUnlocalizedName()); + GameRegistry.registerItem(ingot_raw, ingot_raw.getUnlocalizedName()); + + //Billets + GameRegistry.registerItem(billet_uranium, billet_uranium.getUnlocalizedName()); + GameRegistry.registerItem(billet_u233, billet_u233.getUnlocalizedName()); + GameRegistry.registerItem(billet_u235, billet_u235.getUnlocalizedName()); + GameRegistry.registerItem(billet_u238, billet_u238.getUnlocalizedName()); + GameRegistry.registerItem(billet_th232, billet_th232.getUnlocalizedName()); + GameRegistry.registerItem(billet_plutonium, billet_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(billet_pu238, billet_pu238.getUnlocalizedName()); + GameRegistry.registerItem(billet_pu239, billet_pu239.getUnlocalizedName()); + GameRegistry.registerItem(billet_pu240, billet_pu240.getUnlocalizedName()); + GameRegistry.registerItem(billet_pu241, billet_pu241.getUnlocalizedName()); + GameRegistry.registerItem(billet_pu_mix, billet_pu_mix.getUnlocalizedName()); + GameRegistry.registerItem(billet_am241, billet_am241.getUnlocalizedName()); + GameRegistry.registerItem(billet_am242, billet_am242.getUnlocalizedName()); + GameRegistry.registerItem(billet_am_mix, billet_am_mix.getUnlocalizedName()); + GameRegistry.registerItem(billet_neptunium, billet_neptunium.getUnlocalizedName()); + GameRegistry.registerItem(billet_polonium, billet_polonium.getUnlocalizedName()); + GameRegistry.registerItem(billet_technetium, billet_technetium.getUnlocalizedName()); + GameRegistry.registerItem(billet_cobalt, billet_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(billet_co60, billet_co60.getUnlocalizedName()); + GameRegistry.registerItem(billet_sr90, billet_sr90.getUnlocalizedName()); + GameRegistry.registerItem(billet_au198, billet_au198.getUnlocalizedName()); + GameRegistry.registerItem(billet_pb209, billet_pb209.getUnlocalizedName()); + GameRegistry.registerItem(billet_ra226, billet_ra226.getUnlocalizedName()); + GameRegistry.registerItem(billet_actinium, billet_actinium.getUnlocalizedName()); + GameRegistry.registerItem(billet_schrabidium, billet_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(billet_solinium, billet_solinium.getUnlocalizedName()); + GameRegistry.registerItem(billet_gh336, billet_gh336.getUnlocalizedName()); + GameRegistry.registerItem(billet_australium, billet_australium.getUnlocalizedName()); + GameRegistry.registerItem(billet_australium_lesser, billet_australium_lesser.getUnlocalizedName()); + GameRegistry.registerItem(billet_australium_greater, billet_australium_greater.getUnlocalizedName()); + GameRegistry.registerItem(billet_uranium_fuel, billet_uranium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(billet_thorium_fuel, billet_thorium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(billet_plutonium_fuel, billet_plutonium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(billet_neptunium_fuel, billet_neptunium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(billet_mox_fuel, billet_mox_fuel.getUnlocalizedName()); + GameRegistry.registerItem(billet_americium_fuel, billet_americium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(billet_les, billet_les.getUnlocalizedName()); + GameRegistry.registerItem(billet_schrabidium_fuel, billet_schrabidium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(billet_hes, billet_hes.getUnlocalizedName()); + GameRegistry.registerItem(billet_po210be, billet_po210be.getUnlocalizedName()); + GameRegistry.registerItem(billet_ra226be, billet_ra226be.getUnlocalizedName()); + GameRegistry.registerItem(billet_pu238be, billet_pu238be.getUnlocalizedName()); + GameRegistry.registerItem(billet_beryllium, billet_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(billet_bismuth, billet_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(billet_silicon, billet_silicon.getUnlocalizedName()); + GameRegistry.registerItem(billet_zirconium, billet_zirconium.getUnlocalizedName()); + GameRegistry.registerItem(billet_zfb_bismuth, billet_zfb_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(billet_zfb_pu241, billet_zfb_pu241.getUnlocalizedName()); + GameRegistry.registerItem(billet_zfb_am_mix, billet_zfb_am_mix.getUnlocalizedName()); + GameRegistry.registerItem(billet_yharonite, billet_yharonite.getUnlocalizedName()); + GameRegistry.registerItem(billet_balefire_gold, billet_balefire_gold.getUnlocalizedName()); + GameRegistry.registerItem(billet_flashlead, billet_flashlead.getUnlocalizedName()); + GameRegistry.registerItem(billet_nuclear_waste, billet_nuclear_waste.getUnlocalizedName()); + + //Dusts & Other + GameRegistry.registerItem(cinnebar, cinnebar.getUnlocalizedName()); + GameRegistry.registerItem(nugget_mercury, nugget_mercury.getUnlocalizedName()); + GameRegistry.registerItem(ingot_mercury, ingot_mercury.getUnlocalizedName()); + GameRegistry.registerItem(bottle_mercury, bottle_mercury.getUnlocalizedName()); + GameRegistry.registerItem(coke, coke.getUnlocalizedName()); + GameRegistry.registerItem(lignite, lignite.getUnlocalizedName()); + GameRegistry.registerItem(coal_infernal, coal_infernal.getUnlocalizedName()); + GameRegistry.registerItem(briquette, briquette.getUnlocalizedName()); + GameRegistry.registerItem(sulfur, sulfur.getUnlocalizedName()); + GameRegistry.registerItem(niter, niter.getUnlocalizedName()); + GameRegistry.registerItem(nitra, nitra.getUnlocalizedName()); + GameRegistry.registerItem(nitra_small, nitra_small.getUnlocalizedName()); + GameRegistry.registerItem(fluorite, fluorite.getUnlocalizedName()); + GameRegistry.registerItem(powder_coal, powder_coal.getUnlocalizedName()); + GameRegistry.registerItem(powder_coal_tiny, powder_coal_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_iron, powder_iron.getUnlocalizedName()); + GameRegistry.registerItem(powder_gold, powder_gold.getUnlocalizedName()); + GameRegistry.registerItem(powder_lapis, powder_lapis.getUnlocalizedName()); + GameRegistry.registerItem(powder_quartz, powder_quartz.getUnlocalizedName()); + GameRegistry.registerItem(powder_diamond, powder_diamond.getUnlocalizedName()); + GameRegistry.registerItem(powder_emerald, powder_emerald.getUnlocalizedName()); + GameRegistry.registerItem(powder_uranium, powder_uranium.getUnlocalizedName()); + GameRegistry.registerItem(powder_plutonium, powder_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(powder_neptunium, powder_neptunium.getUnlocalizedName()); + GameRegistry.registerItem(powder_polonium, powder_polonium.getUnlocalizedName()); + GameRegistry.registerItem(powder_co60, powder_co60.getUnlocalizedName()); + GameRegistry.registerItem(powder_sr90, powder_sr90.getUnlocalizedName()); + GameRegistry.registerItem(powder_sr90_tiny, powder_sr90_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_i131, powder_i131.getUnlocalizedName()); + GameRegistry.registerItem(powder_i131_tiny, powder_i131_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_xe135, powder_xe135.getUnlocalizedName()); + GameRegistry.registerItem(powder_xe135_tiny, powder_xe135_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_cs137, powder_cs137.getUnlocalizedName()); + GameRegistry.registerItem(powder_cs137_tiny, powder_cs137_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_au198, powder_au198.getUnlocalizedName()); + GameRegistry.registerItem(powder_ra226, powder_ra226.getUnlocalizedName()); + GameRegistry.registerItem(powder_at209, powder_at209.getUnlocalizedName()); + GameRegistry.registerItem(powder_titanium, powder_titanium.getUnlocalizedName()); + GameRegistry.registerItem(powder_copper, powder_copper.getUnlocalizedName()); + GameRegistry.registerItem(powder_red_copper, powder_red_copper.getUnlocalizedName()); + GameRegistry.registerItem(powder_advanced_alloy, powder_advanced_alloy.getUnlocalizedName()); + GameRegistry.registerItem(powder_tungsten, powder_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(powder_aluminium, powder_aluminium.getUnlocalizedName()); + GameRegistry.registerItem(powder_steel, powder_steel.getUnlocalizedName()); + GameRegistry.registerItem(powder_steel_tiny, powder_steel_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_tcalloy, powder_tcalloy.getUnlocalizedName()); + GameRegistry.registerItem(powder_lead, powder_lead.getUnlocalizedName()); + GameRegistry.registerItem(powder_bismuth, powder_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(powder_calcium, powder_calcium.getUnlocalizedName()); + GameRegistry.registerItem(powder_cadmium, powder_cadmium.getUnlocalizedName()); + GameRegistry.registerItem(powder_coltan_ore, powder_coltan_ore.getUnlocalizedName()); + GameRegistry.registerItem(powder_coltan, powder_coltan.getUnlocalizedName()); + GameRegistry.registerItem(powder_tantalium, powder_tantalium.getUnlocalizedName()); + GameRegistry.registerItem(powder_tektite, powder_tektite.getUnlocalizedName()); + GameRegistry.registerItem(powder_paleogenite, powder_paleogenite.getUnlocalizedName()); + GameRegistry.registerItem(powder_paleogenite_tiny, powder_paleogenite_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_impure_osmiridium, powder_impure_osmiridium.getUnlocalizedName()); + GameRegistry.registerItem(powder_borax, powder_borax.getUnlocalizedName()); + GameRegistry.registerItem(powder_chlorocalcite, powder_chlorocalcite.getUnlocalizedName()); + GameRegistry.registerItem(powder_molysite, powder_molysite.getUnlocalizedName()); + GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName()); + GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName()); + GameRegistry.registerItem(powder_polymer, powder_polymer.getUnlocalizedName()); + GameRegistry.registerItem(powder_bakelite, powder_bakelite.getUnlocalizedName()); + GameRegistry.registerItem(powder_schrabidium, powder_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(powder_schrabidate, powder_schrabidate.getUnlocalizedName()); + GameRegistry.registerItem(powder_magnetized_tungsten, powder_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(powder_chlorophyte, powder_chlorophyte.getUnlocalizedName()); + GameRegistry.registerItem(powder_combine_steel, powder_combine_steel.getUnlocalizedName()); + GameRegistry.registerItem(powder_lithium, powder_lithium.getUnlocalizedName()); + GameRegistry.registerItem(powder_lithium_tiny, powder_lithium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_zirconium, powder_zirconium.getUnlocalizedName()); + GameRegistry.registerItem(powder_sodium, powder_sodium.getUnlocalizedName()); + GameRegistry.registerItem(powder_lignite, powder_lignite.getUnlocalizedName()); + GameRegistry.registerItem(powder_iodine, powder_iodine.getUnlocalizedName()); + GameRegistry.registerItem(powder_thorium, powder_thorium.getUnlocalizedName()); + GameRegistry.registerItem(powder_neodymium, powder_neodymium.getUnlocalizedName()); + GameRegistry.registerItem(powder_neodymium_tiny, powder_neodymium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_astatine, powder_astatine.getUnlocalizedName()); + GameRegistry.registerItem(powder_caesium, powder_caesium.getUnlocalizedName()); + GameRegistry.registerItem(powder_australium, powder_australium.getUnlocalizedName()); + GameRegistry.registerItem(powder_strontium, powder_strontium.getUnlocalizedName()); + GameRegistry.registerItem(powder_cobalt, powder_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(powder_cobalt_tiny, powder_cobalt_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_bromine, powder_bromine.getUnlocalizedName()); + GameRegistry.registerItem(powder_niobium, powder_niobium.getUnlocalizedName()); + GameRegistry.registerItem(powder_niobium_tiny, powder_niobium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_tennessine, powder_tennessine.getUnlocalizedName()); + GameRegistry.registerItem(powder_cerium, powder_cerium.getUnlocalizedName()); + GameRegistry.registerItem(powder_cerium_tiny, powder_cerium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_lanthanium, powder_lanthanium.getUnlocalizedName()); + GameRegistry.registerItem(powder_lanthanium_tiny, powder_lanthanium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_actinium, powder_actinium.getUnlocalizedName()); + GameRegistry.registerItem(powder_actinium_tiny, powder_actinium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_boron, powder_boron.getUnlocalizedName()); + GameRegistry.registerItem(powder_boron_tiny, powder_boron_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_asbestos, powder_asbestos.getUnlocalizedName()); + GameRegistry.registerItem(powder_magic, powder_magic.getUnlocalizedName()); + GameRegistry.registerItem(powder_sawdust, powder_sawdust.getUnlocalizedName()); + GameRegistry.registerItem(powder_flux, powder_flux.getUnlocalizedName()); + GameRegistry.registerItem(powder_fertilizer, powder_fertilizer.getUnlocalizedName()); + GameRegistry.registerItem(powder_balefire, powder_balefire.getUnlocalizedName()); + GameRegistry.registerItem(powder_semtex_mix, powder_semtex_mix.getUnlocalizedName()); + GameRegistry.registerItem(powder_desh_mix, powder_desh_mix.getUnlocalizedName()); + GameRegistry.registerItem(powder_desh_ready, powder_desh_ready.getUnlocalizedName()); + GameRegistry.registerItem(powder_desh, powder_desh.getUnlocalizedName()); + GameRegistry.registerItem(powder_nitan_mix, powder_nitan_mix.getUnlocalizedName()); + GameRegistry.registerItem(powder_spark_mix, powder_spark_mix.getUnlocalizedName()); + GameRegistry.registerItem(powder_meteorite, powder_meteorite.getUnlocalizedName()); + GameRegistry.registerItem(powder_meteorite_tiny, powder_meteorite_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_euphemium, powder_euphemium.getUnlocalizedName()); + GameRegistry.registerItem(powder_dineutronium, powder_dineutronium.getUnlocalizedName()); + GameRegistry.registerItem(dust, dust.getUnlocalizedName()); + GameRegistry.registerItem(dust_tiny, dust_tiny.getUnlocalizedName()); + GameRegistry.registerItem(fallout, fallout.getUnlocalizedName()); + GameRegistry.registerItem(powder_ash, powder_ash.getUnlocalizedName()); + GameRegistry.registerItem(powder_limestone, powder_limestone.getUnlocalizedName()); + GameRegistry.registerItem(powder_cement, powder_cement.getUnlocalizedName()); + + //Powders + GameRegistry.registerItem(powder_fire, powder_fire.getUnlocalizedName()); + GameRegistry.registerItem(powder_ice, powder_ice.getUnlocalizedName()); + GameRegistry.registerItem(powder_poison, powder_poison.getUnlocalizedName()); + GameRegistry.registerItem(powder_thermite, powder_thermite.getUnlocalizedName()); + GameRegistry.registerItem(powder_power, powder_power.getUnlocalizedName()); + GameRegistry.registerItem(cordite, cordite.getUnlocalizedName()); + GameRegistry.registerItem(ballistite, ballistite.getUnlocalizedName()); + GameRegistry.registerItem(ball_dynamite, ball_dynamite.getUnlocalizedName()); + GameRegistry.registerItem(ball_tnt, ball_tnt.getUnlocalizedName()); + GameRegistry.registerItem(ball_tatb, ball_tatb.getUnlocalizedName()); + GameRegistry.registerItem(ball_resin, ball_resin.getUnlocalizedName()); + GameRegistry.registerItem(ball_fireclay, ball_fireclay.getUnlocalizedName()); + + //Ores + GameRegistry.registerItem(ore_bedrock, ore_bedrock.getUnlocalizedName()); + GameRegistry.registerItem(ore_centrifuged, ore_centrifuged.getUnlocalizedName()); + GameRegistry.registerItem(ore_cleaned, ore_cleaned.getUnlocalizedName()); + GameRegistry.registerItem(ore_separated, ore_separated.getUnlocalizedName()); + GameRegistry.registerItem(ore_purified, ore_purified.getUnlocalizedName()); + GameRegistry.registerItem(ore_nitrated, ore_nitrated.getUnlocalizedName()); + GameRegistry.registerItem(ore_nitrocrystalline, ore_nitrocrystalline.getUnlocalizedName()); + GameRegistry.registerItem(ore_deepcleaned, ore_deepcleaned.getUnlocalizedName()); + GameRegistry.registerItem(ore_seared, ore_seared.getUnlocalizedName()); + GameRegistry.registerItem(ore_enriched, ore_enriched.getUnlocalizedName()); + GameRegistry.registerItem(ore_byproduct, ore_byproduct.getUnlocalizedName()); + GameRegistry.registerItem(bedrock_ore_base, bedrock_ore_base.getUnlocalizedName()); + GameRegistry.registerItem(bedrock_ore, bedrock_ore.getUnlocalizedName()); + GameRegistry.registerItem(bedrock_ore_fragment, bedrock_ore_fragment.getUnlocalizedName()); + + //Crystals + GameRegistry.registerItem(crystal_coal, crystal_coal.getUnlocalizedName()); + GameRegistry.registerItem(crystal_iron, crystal_iron.getUnlocalizedName()); + GameRegistry.registerItem(crystal_gold, crystal_gold.getUnlocalizedName()); + GameRegistry.registerItem(crystal_redstone, crystal_redstone.getUnlocalizedName()); + GameRegistry.registerItem(crystal_lapis, crystal_lapis.getUnlocalizedName()); + GameRegistry.registerItem(crystal_diamond, crystal_diamond.getUnlocalizedName()); + GameRegistry.registerItem(crystal_uranium, crystal_uranium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_thorium, crystal_thorium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_plutonium, crystal_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_titanium, crystal_titanium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_sulfur, crystal_sulfur.getUnlocalizedName()); + GameRegistry.registerItem(crystal_niter, crystal_niter.getUnlocalizedName()); + GameRegistry.registerItem(crystal_copper, crystal_copper.getUnlocalizedName()); + GameRegistry.registerItem(crystal_tungsten, crystal_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(crystal_aluminium, crystal_aluminium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_fluorite, crystal_fluorite.getUnlocalizedName()); + GameRegistry.registerItem(crystal_beryllium, crystal_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_lead, crystal_lead.getUnlocalizedName()); + GameRegistry.registerItem(crystal_schraranium, crystal_schraranium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_schrabidium, crystal_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_rare, crystal_rare.getUnlocalizedName()); + GameRegistry.registerItem(crystal_phosphorus, crystal_phosphorus.getUnlocalizedName()); + GameRegistry.registerItem(crystal_lithium, crystal_lithium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_cobalt, crystal_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(crystal_starmetal, crystal_starmetal.getUnlocalizedName()); + GameRegistry.registerItem(crystal_cinnebar, crystal_cinnebar.getUnlocalizedName()); + GameRegistry.registerItem(crystal_trixite, crystal_trixite.getUnlocalizedName()); + GameRegistry.registerItem(crystal_osmiridium, crystal_osmiridium.getUnlocalizedName()); + GameRegistry.registerItem(gem_sodalite, gem_sodalite.getUnlocalizedName()); + GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName()); + GameRegistry.registerItem(gem_volcanic, gem_volcanic.getUnlocalizedName()); + GameRegistry.registerItem(gem_rad, gem_rad.getUnlocalizedName()); + GameRegistry.registerItem(gem_alexandrite, gem_alexandrite.getUnlocalizedName()); + + //Fragments + GameRegistry.registerItem(fragment_neodymium, fragment_neodymium.getUnlocalizedName()); + GameRegistry.registerItem(fragment_cobalt, fragment_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(fragment_niobium, fragment_niobium.getUnlocalizedName()); + GameRegistry.registerItem(fragment_cerium, fragment_cerium.getUnlocalizedName()); + GameRegistry.registerItem(fragment_lanthanium, fragment_lanthanium.getUnlocalizedName()); + GameRegistry.registerItem(fragment_actinium, fragment_actinium.getUnlocalizedName()); + GameRegistry.registerItem(fragment_boron, fragment_boron.getUnlocalizedName()); + GameRegistry.registerItem(fragment_meteorite, fragment_meteorite.getUnlocalizedName()); + GameRegistry.registerItem(fragment_coltan, fragment_coltan.getUnlocalizedName()); + GameRegistry.registerItem(chunk_ore, chunk_ore.getUnlocalizedName()); + + //Things that look like rotten flesh but aren't + GameRegistry.registerItem(biomass, biomass.getUnlocalizedName()); + GameRegistry.registerItem(biomass_compressed, biomass_compressed.getUnlocalizedName()); + //delicious! + GameRegistry.registerItem(bio_wafer, bio_wafer.getUnlocalizedName()); + + //Nuggets + GameRegistry.registerItem(nugget_uranium, nugget_uranium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_u233, nugget_u233.getUnlocalizedName()); + GameRegistry.registerItem(nugget_u235, nugget_u235.getUnlocalizedName()); + GameRegistry.registerItem(nugget_u238, nugget_u238.getUnlocalizedName()); + GameRegistry.registerItem(nugget_th232, nugget_th232.getUnlocalizedName()); + GameRegistry.registerItem(nugget_plutonium, nugget_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_pu238, nugget_pu238.getUnlocalizedName()); + GameRegistry.registerItem(nugget_pu239, nugget_pu239.getUnlocalizedName()); + GameRegistry.registerItem(nugget_pu240, nugget_pu240.getUnlocalizedName()); + GameRegistry.registerItem(nugget_pu241, nugget_pu241.getUnlocalizedName()); + GameRegistry.registerItem(nugget_pu_mix, nugget_pu_mix.getUnlocalizedName()); + GameRegistry.registerItem(nugget_am241, nugget_am241.getUnlocalizedName()); + GameRegistry.registerItem(nugget_am242, nugget_am242.getUnlocalizedName()); + GameRegistry.registerItem(nugget_am_mix, nugget_am_mix.getUnlocalizedName()); + GameRegistry.registerItem(nugget_neptunium, nugget_neptunium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_polonium, nugget_polonium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_cobalt, nugget_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(nugget_co60, nugget_co60.getUnlocalizedName()); + GameRegistry.registerItem(nugget_sr90, nugget_sr90.getUnlocalizedName()); + GameRegistry.registerItem(nugget_technetium, nugget_technetium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_au198, nugget_au198.getUnlocalizedName()); + GameRegistry.registerItem(nugget_pb209, nugget_pb209.getUnlocalizedName()); + GameRegistry.registerItem(nugget_ra226, nugget_ra226.getUnlocalizedName()); + GameRegistry.registerItem(nugget_actinium, nugget_actinium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_lead, nugget_lead.getUnlocalizedName()); + GameRegistry.registerItem(nugget_bismuth, nugget_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(nugget_arsenic, nugget_arsenic.getUnlocalizedName()); + GameRegistry.registerItem(nugget_tantalium, nugget_tantalium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_silicon, nugget_silicon.getUnlocalizedName()); + GameRegistry.registerItem(nugget_niobium, nugget_niobium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_beryllium, nugget_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_schrabidium, nugget_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_solinium, nugget_solinium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_gh336, nugget_gh336.getUnlocalizedName()); + GameRegistry.registerItem(nugget_uranium_fuel, nugget_uranium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(nugget_thorium_fuel, nugget_thorium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(nugget_plutonium_fuel, nugget_plutonium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(nugget_neptunium_fuel, nugget_neptunium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(nugget_mox_fuel, nugget_mox_fuel.getUnlocalizedName()); + GameRegistry.registerItem(nugget_americium_fuel, nugget_americium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(nugget_schrabidium_fuel, nugget_schrabidium_fuel.getUnlocalizedName()); + GameRegistry.registerItem(nugget_hes, nugget_hes.getUnlocalizedName()); + GameRegistry.registerItem(nugget_les, nugget_les.getUnlocalizedName()); + GameRegistry.registerItem(nugget_zirconium, nugget_zirconium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_australium, nugget_australium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_australium_lesser, nugget_australium_lesser.getUnlocalizedName()); + GameRegistry.registerItem(nugget_australium_greater, nugget_australium_greater.getUnlocalizedName()); + GameRegistry.registerItem(nugget_desh, nugget_desh.getUnlocalizedName()); + GameRegistry.registerItem(nugget_euphemium, nugget_euphemium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_dineutronium, nugget_dineutronium.getUnlocalizedName()); + GameRegistry.registerItem(nugget_osmiridium, nugget_osmiridium.getUnlocalizedName()); + + //Plates + GameRegistry.registerItem(plate_iron, plate_iron.getUnlocalizedName()); + GameRegistry.registerItem(plate_gold, plate_gold.getUnlocalizedName()); + GameRegistry.registerItem(plate_titanium, plate_titanium.getUnlocalizedName()); + GameRegistry.registerItem(plate_aluminium, plate_aluminium.getUnlocalizedName()); + GameRegistry.registerItem(plate_steel, plate_steel.getUnlocalizedName()); + GameRegistry.registerItem(plate_lead, plate_lead.getUnlocalizedName()); + GameRegistry.registerItem(plate_copper, plate_copper.getUnlocalizedName()); + GameRegistry.registerItem(plate_advanced_alloy, plate_advanced_alloy.getUnlocalizedName()); + GameRegistry.registerItem(plate_dura_steel, plate_dura_steel.getUnlocalizedName()); + GameRegistry.registerItem(neutron_reflector, neutron_reflector.getUnlocalizedName()); + GameRegistry.registerItem(plate_schrabidium, plate_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(plate_combine_steel, plate_combine_steel.getUnlocalizedName()); + GameRegistry.registerItem(plate_mixed, plate_mixed.getUnlocalizedName()); + GameRegistry.registerItem(plate_gunmetal, plate_gunmetal.getUnlocalizedName()); + GameRegistry.registerItem(plate_weaponsteel, plate_weaponsteel.getUnlocalizedName()); + GameRegistry.registerItem(plate_saturnite, plate_saturnite.getUnlocalizedName()); + GameRegistry.registerItem(plate_paa, plate_paa.getUnlocalizedName()); + GameRegistry.registerItem(plate_polymer, plate_polymer.getUnlocalizedName()); + GameRegistry.registerItem(plate_kevlar, plate_kevlar.getUnlocalizedName()); + GameRegistry.registerItem(plate_dalekanium, plate_dalekanium.getUnlocalizedName()); + GameRegistry.registerItem(plate_desh, plate_desh.getUnlocalizedName()); + GameRegistry.registerItem(plate_bismuth, plate_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(plate_euphemium, plate_euphemium.getUnlocalizedName()); + GameRegistry.registerItem(plate_dineutronium, plate_dineutronium.getUnlocalizedName()); + + //Armor Plates + GameRegistry.registerItem(plate_armor_titanium, plate_armor_titanium.getUnlocalizedName()); + GameRegistry.registerItem(plate_armor_ajr, plate_armor_ajr.getUnlocalizedName()); + GameRegistry.registerItem(plate_armor_hev, plate_armor_hev.getUnlocalizedName()); + GameRegistry.registerItem(plate_armor_lunar, plate_armor_lunar.getUnlocalizedName()); + GameRegistry.registerItem(plate_armor_fau, plate_armor_fau.getUnlocalizedName()); + GameRegistry.registerItem(plate_armor_dnt, plate_armor_dnt.getUnlocalizedName()); + + //Heavy/Cast Plate + GameRegistry.registerItem(plate_cast, plate_cast.getUnlocalizedName()); + GameRegistry.registerItem(plate_welded, plate_welded.getUnlocalizedName()); + GameRegistry.registerItem(shell, shell.getUnlocalizedName()); + GameRegistry.registerItem(pipe, pipe.getUnlocalizedName()); + GameRegistry.registerItem(heavy_component, heavy_component.getUnlocalizedName()); + + //Bolts + GameRegistry.registerItem(bolt, bolt.getUnlocalizedName()); + GameRegistry.registerItem(bolt_spike, bolt_spike.getUnlocalizedName()); + + //Cloth + GameRegistry.registerItem(hazmat_cloth, hazmat_cloth.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_cloth_red, hazmat_cloth_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_cloth_grey, hazmat_cloth_grey.getUnlocalizedName()); + GameRegistry.registerItem(asbestos_cloth, asbestos_cloth.getUnlocalizedName()); + GameRegistry.registerItem(rag, rag.getUnlocalizedName()); + GameRegistry.registerItem(rag_damp, rag_damp.getUnlocalizedName()); + GameRegistry.registerItem(rag_piss, rag_piss.getUnlocalizedName()); + GameRegistry.registerItem(filter_coal, filter_coal.getUnlocalizedName()); + + //Wires + GameRegistry.registerItem(wire_fine, wire_fine.getUnlocalizedName()); + GameRegistry.registerItem(wire_dense, wire_dense.getUnlocalizedName()); + + //Parts + GameRegistry.registerItem(coil_copper, coil_copper.getUnlocalizedName()); + GameRegistry.registerItem(coil_copper_torus, coil_copper_torus.getUnlocalizedName()); + GameRegistry.registerItem(coil_advanced_alloy, coil_advanced_alloy.getUnlocalizedName()); + GameRegistry.registerItem(coil_advanced_torus, coil_advanced_torus.getUnlocalizedName()); + GameRegistry.registerItem(coil_gold, coil_gold.getUnlocalizedName()); + GameRegistry.registerItem(coil_gold_torus, coil_gold_torus.getUnlocalizedName()); + GameRegistry.registerItem(coil_tungsten, coil_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(coil_magnetized_tungsten, coil_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(safety_fuse, safety_fuse.getUnlocalizedName()); + GameRegistry.registerItem(tank_steel, tank_steel.getUnlocalizedName()); + GameRegistry.registerItem(motor, motor.getUnlocalizedName()); + GameRegistry.registerItem(motor_desh, motor_desh.getUnlocalizedName()); + GameRegistry.registerItem(motor_bismuth, motor_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(centrifuge_element, centrifuge_element.getUnlocalizedName()); + GameRegistry.registerItem(reactor_core, reactor_core.getUnlocalizedName()); + GameRegistry.registerItem(rtg_unit, rtg_unit.getUnlocalizedName()); + GameRegistry.registerItem(levitation_unit, levitation_unit.getUnlocalizedName()); + GameRegistry.registerItem(pipes_steel, pipes_steel.getUnlocalizedName()); + GameRegistry.registerItem(drill_titanium, drill_titanium.getUnlocalizedName()); + GameRegistry.registerItem(photo_panel, photo_panel.getUnlocalizedName()); + GameRegistry.registerItem(chlorine_pinwheel, chlorine_pinwheel.getUnlocalizedName()); + GameRegistry.registerItem(ring_starmetal, ring_starmetal.getUnlocalizedName()); + GameRegistry.registerItem(deuterium_filter, deuterium_filter.getUnlocalizedName()); + GameRegistry.registerItem(chemical_dye, chemical_dye.getUnlocalizedName()); + GameRegistry.registerItem(crayon, crayon.getUnlocalizedName()); + GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName()); + GameRegistry.registerItem(item_secret, item_secret.getUnlocalizedName()); + GameRegistry.registerItem(ingot_metal, ingot_metal.getUnlocalizedName()); + GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); + GameRegistry.registerItem(gear_large, gear_large.getUnlocalizedName()); + GameRegistry.registerItem(sawblade, sawblade.getUnlocalizedName()); + GameRegistry.registerItem(part_barrel_light, part_barrel_light.getUnlocalizedName()); + GameRegistry.registerItem(part_barrel_heavy, part_barrel_heavy.getUnlocalizedName()); + GameRegistry.registerItem(part_receiver_light, part_receiver_light.getUnlocalizedName()); + GameRegistry.registerItem(part_receiver_heavy, part_receiver_heavy.getUnlocalizedName()); + GameRegistry.registerItem(part_mechanism, part_mechanism.getUnlocalizedName()); + GameRegistry.registerItem(part_stock, part_stock.getUnlocalizedName()); + GameRegistry.registerItem(part_grip, part_grip.getUnlocalizedName()); + + //Plant Products + GameRegistry.registerItem(plant_item, plant_item.getUnlocalizedName()); + + //Teleporter Parts + //GameRegistry.registerItem(telepad, telepad.getUnlocalizedName()); + GameRegistry.registerItem(entanglement_kit, entanglement_kit.getUnlocalizedName()); + + //AMS Parts + GameRegistry.registerItem(component_limiter, component_limiter.getUnlocalizedName()); + GameRegistry.registerItem(component_emitter, component_emitter.getUnlocalizedName()); + + //Bomb Parts + GameRegistry.registerItem(fins_flat, fins_flat.getUnlocalizedName()); + GameRegistry.registerItem(fins_small_steel, fins_small_steel.getUnlocalizedName()); + GameRegistry.registerItem(fins_big_steel, fins_big_steel.getUnlocalizedName()); + GameRegistry.registerItem(fins_tri_steel, fins_tri_steel.getUnlocalizedName()); + GameRegistry.registerItem(fins_quad_titanium, fins_quad_titanium.getUnlocalizedName()); + GameRegistry.registerItem(sphere_steel, sphere_steel.getUnlocalizedName()); + GameRegistry.registerItem(pedestal_steel, pedestal_steel.getUnlocalizedName()); + GameRegistry.registerItem(dysfunctional_reactor, dysfunctional_reactor.getUnlocalizedName()); + GameRegistry.registerItem(blade_titanium, blade_titanium.getUnlocalizedName()); + GameRegistry.registerItem(blade_tungsten, blade_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(turbine_titanium, turbine_titanium.getUnlocalizedName()); + GameRegistry.registerItem(turbine_tungsten, turbine_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(flywheel_beryllium, flywheel_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(toothpicks, toothpicks.getUnlocalizedName()); + GameRegistry.registerItem(ducttape, ducttape.getUnlocalizedName()); + GameRegistry.registerItem(catalyst_clay, catalyst_clay.getUnlocalizedName()); + GameRegistry.registerItem(missile_assembly, missile_assembly.getUnlocalizedName()); + GameRegistry.registerItem(warhead_generic_small, warhead_generic_small.getUnlocalizedName()); + GameRegistry.registerItem(warhead_generic_medium, warhead_generic_medium.getUnlocalizedName()); + GameRegistry.registerItem(warhead_generic_large, warhead_generic_large.getUnlocalizedName()); + GameRegistry.registerItem(warhead_incendiary_small, warhead_incendiary_small.getUnlocalizedName()); + GameRegistry.registerItem(warhead_incendiary_medium, warhead_incendiary_medium.getUnlocalizedName()); + GameRegistry.registerItem(warhead_incendiary_large, warhead_incendiary_large.getUnlocalizedName()); + GameRegistry.registerItem(warhead_cluster_small, warhead_cluster_small.getUnlocalizedName()); + GameRegistry.registerItem(warhead_cluster_medium, warhead_cluster_medium.getUnlocalizedName()); + GameRegistry.registerItem(warhead_cluster_large, warhead_cluster_large.getUnlocalizedName()); + GameRegistry.registerItem(warhead_buster_small, warhead_buster_small.getUnlocalizedName()); + GameRegistry.registerItem(warhead_buster_medium, warhead_buster_medium.getUnlocalizedName()); + GameRegistry.registerItem(warhead_buster_large, warhead_buster_large.getUnlocalizedName()); + GameRegistry.registerItem(warhead_nuclear, warhead_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(warhead_mirv, warhead_mirv.getUnlocalizedName()); + GameRegistry.registerItem(warhead_volcano, warhead_volcano.getUnlocalizedName()); + GameRegistry.registerItem(fuel_tank_small, fuel_tank_small.getUnlocalizedName()); + GameRegistry.registerItem(fuel_tank_medium, fuel_tank_medium.getUnlocalizedName()); + GameRegistry.registerItem(fuel_tank_large, fuel_tank_large.getUnlocalizedName()); + GameRegistry.registerItem(thruster_small, thruster_small.getUnlocalizedName()); + GameRegistry.registerItem(thruster_medium, thruster_medium.getUnlocalizedName()); + GameRegistry.registerItem(thruster_large, thruster_large.getUnlocalizedName()); + GameRegistry.registerItem(thruster_nuclear, thruster_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(sat_base, sat_base.getUnlocalizedName()); + GameRegistry.registerItem(sat_head_mapper, sat_head_mapper.getUnlocalizedName()); + GameRegistry.registerItem(sat_head_scanner, sat_head_scanner.getUnlocalizedName()); + GameRegistry.registerItem(sat_head_radar, sat_head_radar.getUnlocalizedName()); + GameRegistry.registerItem(sat_head_laser, sat_head_laser.getUnlocalizedName()); + GameRegistry.registerItem(sat_head_resonator, sat_head_resonator.getUnlocalizedName()); + GameRegistry.registerItem(seg_10, seg_10.getUnlocalizedName()); + GameRegistry.registerItem(seg_15, seg_15.getUnlocalizedName()); + GameRegistry.registerItem(seg_20, seg_20.getUnlocalizedName()); + + //Chopper parts + GameRegistry.registerItem(chopper_head, chopper_head.getUnlocalizedName()); + GameRegistry.registerItem(chopper_gun, chopper_gun.getUnlocalizedName()); + GameRegistry.registerItem(chopper_torso, chopper_torso.getUnlocalizedName()); + GameRegistry.registerItem(chopper_tail, chopper_tail.getUnlocalizedName()); + GameRegistry.registerItem(chopper_wing, chopper_wing.getUnlocalizedName()); + GameRegistry.registerItem(chopper_blades, chopper_blades.getUnlocalizedName()); + GameRegistry.registerItem(combine_scrap, combine_scrap.getUnlocalizedName()); + + //Hammer Parts + GameRegistry.registerItem(shimmer_head, shimmer_head.getUnlocalizedName()); + GameRegistry.registerItem(shimmer_axe_head, shimmer_axe_head.getUnlocalizedName()); + GameRegistry.registerItem(shimmer_handle, shimmer_handle.getUnlocalizedName()); + + //Circuits + GameRegistry.registerItem(circuit, circuit.getUnlocalizedName()); + GameRegistry.registerItem(crt_display, crt_display.getUnlocalizedName()); + GameRegistry.registerItem(circuit_star_piece, circuit_star_piece.getUnlocalizedName()); + GameRegistry.registerItem(circuit_star_component, circuit_star_component.getUnlocalizedName()); + GameRegistry.registerItem(circuit_star, circuit_star.getUnlocalizedName()); + + //Casing + GameRegistry.registerItem(casing, casing.getUnlocalizedName()); + + //Bullet Assemblies + GameRegistry.registerItem(assembly_nuke, assembly_nuke.getUnlocalizedName()); + + //Wiring + GameRegistry.registerItem(wiring_red_copper, wiring_red_copper.getUnlocalizedName()); + + //Flame War in a Box + GameRegistry.registerItem(flame_pony, flame_pony.getUnlocalizedName()); + GameRegistry.registerItem(flame_conspiracy, flame_conspiracy.getUnlocalizedName()); + GameRegistry.registerItem(flame_politics, flame_politics.getUnlocalizedName()); + GameRegistry.registerItem(flame_opinion, flame_opinion.getUnlocalizedName()); + + //Pellets + GameRegistry.registerItem(pellet_rtg_radium, pellet_rtg_radium.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_weak, pellet_rtg_weak.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg, pellet_rtg.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_strontium, pellet_rtg_strontium.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_cobalt, pellet_rtg_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_actinium, pellet_rtg_actinium.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_polonium, pellet_rtg_polonium.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_americium, pellet_rtg_americium.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_gold, pellet_rtg_gold.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_lead, pellet_rtg_lead.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_depleted, pellet_rtg_depleted.getUnlocalizedName()); + GameRegistry.registerItem(tritium_deuterium_cake, tritium_deuterium_cake.getUnlocalizedName()); + GameRegistry.registerItem(pellet_cluster, pellet_cluster.getUnlocalizedName()); + GameRegistry.registerItem(pellet_buckshot, pellet_buckshot.getUnlocalizedName()); + GameRegistry.registerItem(pellet_charged, pellet_charged.getUnlocalizedName()); + GameRegistry.registerItem(pellet_gas, pellet_gas.getUnlocalizedName()); + GameRegistry.registerItem(magnetron, magnetron.getUnlocalizedName()); + + //Engine Pieces + GameRegistry.registerItem(piston_selenium, piston_selenium.getUnlocalizedName()); + GameRegistry.registerItem(piston_set, piston_set.getUnlocalizedName()); + GameRegistry.registerItem(drillbit, drillbit.getUnlocalizedName()); + + //Cells + GameRegistry.registerItem(cell_empty, cell_empty.getUnlocalizedName()); + GameRegistry.registerItem(cell_uf6, cell_uf6.getUnlocalizedName()); + GameRegistry.registerItem(cell_puf6, cell_puf6.getUnlocalizedName()); + GameRegistry.registerItem(cell_deuterium, cell_deuterium.getUnlocalizedName()); + GameRegistry.registerItem(cell_tritium, cell_tritium.getUnlocalizedName()); + GameRegistry.registerItem(cell_sas3, cell_sas3.getUnlocalizedName()); + GameRegistry.registerItem(cell_antimatter, cell_antimatter.getUnlocalizedName()); + GameRegistry.registerItem(cell_anti_schrabidium, cell_anti_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(cell_balefire, cell_balefire.getUnlocalizedName()); + + //DEMON CORE + GameRegistry.registerItem(demon_core_open, demon_core_open.getUnlocalizedName()); + GameRegistry.registerItem(demon_core_closed, demon_core_closed.getUnlocalizedName()); + + //PA + GameRegistry.registerItem(pa_coil, pa_coil.getUnlocalizedName()); + + //Particle Containers + GameRegistry.registerItem(particle_empty, particle_empty.getUnlocalizedName()); + GameRegistry.registerItem(particle_hydrogen, particle_hydrogen.getUnlocalizedName()); + GameRegistry.registerItem(particle_copper, particle_copper.getUnlocalizedName()); + GameRegistry.registerItem(particle_lead, particle_lead.getUnlocalizedName()); + GameRegistry.registerItem(particle_aproton, particle_aproton.getUnlocalizedName()); + GameRegistry.registerItem(particle_aelectron, particle_aelectron.getUnlocalizedName()); + GameRegistry.registerItem(particle_amat, particle_amat.getUnlocalizedName()); + GameRegistry.registerItem(particle_aschrab, particle_aschrab.getUnlocalizedName()); + GameRegistry.registerItem(particle_higgs, particle_higgs.getUnlocalizedName()); + GameRegistry.registerItem(particle_muon, particle_muon.getUnlocalizedName()); + GameRegistry.registerItem(particle_tachyon, particle_tachyon.getUnlocalizedName()); + GameRegistry.registerItem(particle_strange, particle_strange.getUnlocalizedName()); + GameRegistry.registerItem(particle_dark, particle_dark.getUnlocalizedName()); + GameRegistry.registerItem(particle_sparkticle, particle_sparkticle.getUnlocalizedName()); + GameRegistry.registerItem(particle_digamma, particle_digamma.getUnlocalizedName()); + GameRegistry.registerItem(particle_lutece, particle_lutece.getUnlocalizedName()); + + //Singularities, black holes and other cosmic horrors + GameRegistry.registerItem(singularity, singularity.getUnlocalizedName()); + GameRegistry.registerItem(singularity_counter_resonant, singularity_counter_resonant.getUnlocalizedName()); + GameRegistry.registerItem(singularity_super_heated, singularity_super_heated.getUnlocalizedName()); + GameRegistry.registerItem(black_hole, black_hole.getUnlocalizedName()); + GameRegistry.registerItem(singularity_spark, singularity_spark.getUnlocalizedName()); + GameRegistry.registerItem(crystal_xen, crystal_xen.getUnlocalizedName()); + GameRegistry.registerItem(pellet_antimatter, pellet_antimatter.getUnlocalizedName()); + + //Infinite Tanks + GameRegistry.registerItem(inf_water, inf_water.getUnlocalizedName()); + GameRegistry.registerItem(inf_water_mk2, inf_water_mk2.getUnlocalizedName()); + + //Canisters + GameRegistry.registerItem(fuel_additive, fuel_additive.getUnlocalizedName()); + GameRegistry.registerItem(canister_empty, canister_empty.getUnlocalizedName()); + GameRegistry.registerItem(canister_full, canister_full.getUnlocalizedName()); + GameRegistry.registerItem(canister_napalm, canister_napalm.getUnlocalizedName()); + + //Gas Tanks + GameRegistry.registerItem(gas_empty, gas_empty.getUnlocalizedName()); + GameRegistry.registerItem(gas_full, gas_full.getUnlocalizedName()); + + //Universal Tank + GameRegistry.registerItem(fluid_tank_empty, fluid_tank_empty.getUnlocalizedName()); + GameRegistry.registerItem(fluid_tank_full, fluid_tank_full.getUnlocalizedName()); + GameRegistry.registerItem(fluid_tank_lead_empty, fluid_tank_lead_empty.getUnlocalizedName()); + GameRegistry.registerItem(fluid_tank_lead_full, fluid_tank_lead_full.getUnlocalizedName()); + GameRegistry.registerItem(fluid_barrel_empty, fluid_barrel_empty.getUnlocalizedName()); + GameRegistry.registerItem(fluid_barrel_full, fluid_barrel_full.getUnlocalizedName()); + GameRegistry.registerItem(fluid_barrel_infinite, fluid_barrel_infinite.getUnlocalizedName()); + + //Pipette + GameRegistry.registerItem(pipette, pipette.getUnlocalizedName()); + GameRegistry.registerItem(pipette_boron, pipette_boron.getUnlocalizedName()); + GameRegistry.registerItem(pipette_laboratory, pipette_laboratory.getUnlocalizedName()); + + //Siphon + GameRegistry.registerItem(siphon, siphon.getUnlocalizedName()); + + //Batteries + GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName()); + GameRegistry.registerItem(battery_red_cell, battery_red_cell.getUnlocalizedName()); + GameRegistry.registerItem(battery_red_cell_6, battery_red_cell_6.getUnlocalizedName()); + GameRegistry.registerItem(battery_red_cell_24, battery_red_cell_24.getUnlocalizedName()); + GameRegistry.registerItem(battery_advanced, battery_advanced.getUnlocalizedName()); + GameRegistry.registerItem(battery_advanced_cell, battery_advanced_cell.getUnlocalizedName()); + GameRegistry.registerItem(battery_advanced_cell_4, battery_advanced_cell_4.getUnlocalizedName()); + GameRegistry.registerItem(battery_advanced_cell_12, battery_advanced_cell_12.getUnlocalizedName()); + GameRegistry.registerItem(battery_lithium, battery_lithium.getUnlocalizedName()); + GameRegistry.registerItem(battery_lithium_cell, battery_lithium_cell.getUnlocalizedName()); + GameRegistry.registerItem(battery_lithium_cell_3, battery_lithium_cell_3.getUnlocalizedName()); + GameRegistry.registerItem(battery_lithium_cell_6, battery_lithium_cell_6.getUnlocalizedName()); + GameRegistry.registerItem(battery_schrabidium, battery_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(battery_schrabidium_cell, battery_schrabidium_cell.getUnlocalizedName()); + GameRegistry.registerItem(battery_schrabidium_cell_2, battery_schrabidium_cell_2.getUnlocalizedName()); + GameRegistry.registerItem(battery_schrabidium_cell_4, battery_schrabidium_cell_4.getUnlocalizedName()); + GameRegistry.registerItem(battery_spark, battery_spark.getUnlocalizedName()); + GameRegistry.registerItem(battery_trixite, battery_trixite.getUnlocalizedName()); + GameRegistry.registerItem(battery_spark_cell_6, battery_spark_cell_6.getUnlocalizedName()); + GameRegistry.registerItem(battery_spark_cell_25, battery_spark_cell_25.getUnlocalizedName()); + GameRegistry.registerItem(battery_spark_cell_100, battery_spark_cell_100.getUnlocalizedName()); + GameRegistry.registerItem(battery_spark_cell_1000, battery_spark_cell_1000.getUnlocalizedName()); + GameRegistry.registerItem(battery_spark_cell_2500, battery_spark_cell_2500.getUnlocalizedName()); + GameRegistry.registerItem(battery_spark_cell_10000, battery_spark_cell_10000.getUnlocalizedName()); + GameRegistry.registerItem(battery_spark_cell_power, battery_spark_cell_power.getUnlocalizedName()); + GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName()); + GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName()); + GameRegistry.registerItem(battery_potato, battery_potato.getUnlocalizedName()); + GameRegistry.registerItem(battery_potatos, battery_potatos.getUnlocalizedName()); + GameRegistry.registerItem(battery_sc_uranium, battery_sc_uranium.getUnlocalizedName()); + GameRegistry.registerItem(battery_sc_technetium, battery_sc_technetium.getUnlocalizedName()); + GameRegistry.registerItem(battery_sc_plutonium, battery_sc_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(battery_sc_polonium, battery_sc_polonium.getUnlocalizedName()); + GameRegistry.registerItem(battery_sc_gold, battery_sc_gold.getUnlocalizedName()); + GameRegistry.registerItem(battery_sc_lead, battery_sc_lead.getUnlocalizedName()); + GameRegistry.registerItem(battery_sc_americium, battery_sc_americium.getUnlocalizedName()); + GameRegistry.registerItem(hev_battery, hev_battery.getUnlocalizedName()); + GameRegistry.registerItem(fusion_core, fusion_core.getUnlocalizedName()); + GameRegistry.registerItem(energy_core, energy_core.getUnlocalizedName()); + GameRegistry.registerItem(fusion_core_infinite, fusion_core_infinite.getUnlocalizedName()); + + //Folders + GameRegistry.registerItem(template_folder, template_folder.getUnlocalizedName()); + GameRegistry.registerItem(journal_pip, journal_pip.getUnlocalizedName()); + GameRegistry.registerItem(journal_bj, journal_bj.getUnlocalizedName()); + GameRegistry.registerItem(journal_silver, journal_silver.getUnlocalizedName()); + GameRegistry.registerItem(bobmazon, bobmazon.getUnlocalizedName()); + GameRegistry.registerItem(bobmazon_hidden, bobmazon_hidden.getUnlocalizedName()); + + //Hydraulic Press Stamps + GameRegistry.registerItem(stamp_stone_flat, stamp_stone_flat.getUnlocalizedName()); + GameRegistry.registerItem(stamp_stone_plate, stamp_stone_plate.getUnlocalizedName()); + GameRegistry.registerItem(stamp_stone_wire, stamp_stone_wire.getUnlocalizedName()); + GameRegistry.registerItem(stamp_stone_circuit, stamp_stone_circuit.getUnlocalizedName()); + GameRegistry.registerItem(stamp_iron_flat, stamp_iron_flat.getUnlocalizedName()); + GameRegistry.registerItem(stamp_iron_plate, stamp_iron_plate.getUnlocalizedName()); + GameRegistry.registerItem(stamp_iron_wire, stamp_iron_wire.getUnlocalizedName()); + GameRegistry.registerItem(stamp_iron_circuit, stamp_iron_circuit.getUnlocalizedName()); + GameRegistry.registerItem(stamp_steel_flat, stamp_steel_flat.getUnlocalizedName()); + GameRegistry.registerItem(stamp_steel_plate, stamp_steel_plate.getUnlocalizedName()); + GameRegistry.registerItem(stamp_steel_wire, stamp_steel_wire.getUnlocalizedName()); + GameRegistry.registerItem(stamp_steel_circuit, stamp_steel_circuit.getUnlocalizedName()); + GameRegistry.registerItem(stamp_titanium_flat, stamp_titanium_flat.getUnlocalizedName()); + GameRegistry.registerItem(stamp_titanium_plate, stamp_titanium_plate.getUnlocalizedName()); + GameRegistry.registerItem(stamp_titanium_wire, stamp_titanium_wire.getUnlocalizedName()); + GameRegistry.registerItem(stamp_titanium_circuit, stamp_titanium_circuit.getUnlocalizedName()); + GameRegistry.registerItem(stamp_obsidian_flat, stamp_obsidian_flat.getUnlocalizedName()); + GameRegistry.registerItem(stamp_obsidian_plate, stamp_obsidian_plate.getUnlocalizedName()); + GameRegistry.registerItem(stamp_obsidian_wire, stamp_obsidian_wire.getUnlocalizedName()); + GameRegistry.registerItem(stamp_obsidian_circuit, stamp_obsidian_circuit.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_flat, stamp_desh_flat.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_plate, stamp_desh_plate.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_wire, stamp_desh_wire.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_circuit, stamp_desh_circuit.getUnlocalizedName()); + GameRegistry.registerItem(stamp_357, stamp_357.getUnlocalizedName()); + GameRegistry.registerItem(stamp_44, stamp_44.getUnlocalizedName()); + GameRegistry.registerItem(stamp_9, stamp_9.getUnlocalizedName()); + GameRegistry.registerItem(stamp_50, stamp_50.getUnlocalizedName()); + + GameRegistry.registerItem(stamp_desh_357, stamp_desh_357.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_44, stamp_desh_44.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_9, stamp_desh_9.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_50, stamp_desh_50.getUnlocalizedName()); + GameRegistry.registerItem(stamp_book, stamp_book.getUnlocalizedName()); + + //Molds + GameRegistry.registerItem(mold_base, mold_base.getUnlocalizedName()); + GameRegistry.registerItem(mold, mold.getUnlocalizedName()); + GameRegistry.registerItem(scraps, scraps.getUnlocalizedName()); + + //Machine Upgrades + GameRegistry.registerItem(upgrade_muffler, upgrade_muffler.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_template, upgrade_template.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_speed_1, upgrade_speed_1.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_speed_2, upgrade_speed_2.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_speed_3, upgrade_speed_3.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_effect_1, upgrade_effect_1.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_effect_2, upgrade_effect_2.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_effect_3, upgrade_effect_3.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_power_1, upgrade_power_1.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_power_2, upgrade_power_2.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_power_3, upgrade_power_3.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_fortune_1, upgrade_fortune_1.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_fortune_2, upgrade_fortune_2.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_fortune_3, upgrade_fortune_3.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_afterburn_1, upgrade_afterburn_1.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_afterburn_2, upgrade_afterburn_2.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_afterburn_3, upgrade_afterburn_3.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_overdrive_1, upgrade_overdrive_1.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_overdrive_2, upgrade_overdrive_2.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_overdrive_3, upgrade_overdrive_3.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_radius, upgrade_radius.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_health, upgrade_health.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_smelter, upgrade_smelter.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_shredder, upgrade_shredder.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_centrifuge, upgrade_centrifuge.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_crystallizer, upgrade_crystallizer.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_nullifier, upgrade_nullifier.getUnlocalizedName()); + 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()); + GameRegistry.registerItem(fluid_identifier, fluid_identifier.getUnlocalizedName()); + GameRegistry.registerItem(fluid_identifier_multi, fluid_identifier_multi.getUnlocalizedName()); + GameRegistry.registerItem(fluid_icon, fluid_icon.getUnlocalizedName()); + GameRegistry.registerItem(fluid_duct, fluid_duct.getUnlocalizedName()); + GameRegistry.registerItem(assembly_template, assembly_template.getUnlocalizedName()); + GameRegistry.registerItem(chemistry_template, chemistry_template.getUnlocalizedName()); + GameRegistry.registerItem(chemistry_icon, chemistry_icon.getUnlocalizedName()); + GameRegistry.registerItem(crucible_template, crucible_template.getUnlocalizedName()); + + //Machine Items + GameRegistry.registerItem(fuse, fuse.getUnlocalizedName()); + GameRegistry.registerItem(redcoil_capacitor, redcoil_capacitor.getUnlocalizedName()); + GameRegistry.registerItem(euphemium_capacitor, euphemium_capacitor.getUnlocalizedName()); + GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName()); + GameRegistry.registerItem(screwdriver_desh, screwdriver_desh.getUnlocalizedName()); + GameRegistry.registerItem(hand_drill, hand_drill.getUnlocalizedName()); + GameRegistry.registerItem(hand_drill_desh, hand_drill_desh.getUnlocalizedName()); + GameRegistry.registerItem(chemistry_set, chemistry_set.getUnlocalizedName()); + GameRegistry.registerItem(chemistry_set_boron, chemistry_set_boron.getUnlocalizedName()); + GameRegistry.registerItem(blowtorch, blowtorch.getUnlocalizedName()); + GameRegistry.registerItem(acetylene_torch, acetylene_torch.getUnlocalizedName()); + GameRegistry.registerItem(boltgun, boltgun.getUnlocalizedName()); + GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName()); + GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName()); + GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName()); + + //Particle Collider Fuel + GameRegistry.registerItem(part_lithium, part_lithium.getUnlocalizedName()); + GameRegistry.registerItem(part_beryllium, part_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(part_carbon, part_carbon.getUnlocalizedName()); + GameRegistry.registerItem(part_copper, part_copper.getUnlocalizedName()); + GameRegistry.registerItem(part_plutonium, part_plutonium.getUnlocalizedName()); + + //FEL laser crystals + GameRegistry.registerItem(laser_crystal_co2, laser_crystal_co2.getUnlocalizedName()); + GameRegistry.registerItem(laser_crystal_bismuth, laser_crystal_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(laser_crystal_cmb, laser_crystal_cmb.getUnlocalizedName()); + GameRegistry.registerItem(laser_crystal_dnt, laser_crystal_dnt.getUnlocalizedName()); + GameRegistry.registerItem(laser_crystal_digamma, laser_crystal_digamma.getUnlocalizedName()); + + //Catalyst Rune Sigils + GameRegistry.registerItem(rune_blank, rune_blank.getUnlocalizedName()); + GameRegistry.registerItem(rune_isa, rune_isa.getUnlocalizedName()); + GameRegistry.registerItem(rune_dagaz, rune_dagaz.getUnlocalizedName()); + GameRegistry.registerItem(rune_hagalaz, rune_hagalaz.getUnlocalizedName()); + GameRegistry.registerItem(rune_jera, rune_jera.getUnlocalizedName()); + GameRegistry.registerItem(rune_thurisaz, rune_thurisaz.getUnlocalizedName()); + + //AMS Catalysts + GameRegistry.registerItem(ams_catalyst_blank, ams_catalyst_blank.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_aluminium, ams_catalyst_aluminium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_beryllium, ams_catalyst_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_caesium, ams_catalyst_caesium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_cerium, ams_catalyst_cerium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_cobalt, ams_catalyst_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_copper, ams_catalyst_copper.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_euphemium, ams_catalyst_euphemium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_dineutronium, ams_catalyst_dineutronium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_iron, ams_catalyst_iron.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_lithium, ams_catalyst_lithium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_niobium, ams_catalyst_niobium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_schrabidium, ams_catalyst_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_strontium, ams_catalyst_strontium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_thorium, ams_catalyst_thorium.getUnlocalizedName()); + GameRegistry.registerItem(ams_catalyst_tungsten, ams_catalyst_tungsten.getUnlocalizedName()); + + //Shredder Blades + GameRegistry.registerItem(blades_steel, blades_steel.getUnlocalizedName()); + GameRegistry.registerItem(blades_titanium, blades_titanium.getUnlocalizedName()); + GameRegistry.registerItem(blades_advanced_alloy, blades_advanced_alloy.getUnlocalizedName()); + GameRegistry.registerItem(blades_desh, blades_desh.getUnlocalizedName()); + + //Generator Stuff + GameRegistry.registerItem(thermo_element, thermo_element.getUnlocalizedName()); + GameRegistry.registerItem(catalytic_converter, catalytic_converter.getUnlocalizedName()); + + //AMS Components + GameRegistry.registerItem(ams_focus_blank, ams_focus_blank.getUnlocalizedName()); + GameRegistry.registerItem(ams_focus_limiter, ams_focus_limiter.getUnlocalizedName()); + GameRegistry.registerItem(ams_focus_booster, ams_focus_booster.getUnlocalizedName()); + GameRegistry.registerItem(ams_muzzle, ams_muzzle.getUnlocalizedName()); + GameRegistry.registerItem(ams_lens, ams_lens.getUnlocalizedName()); + GameRegistry.registerItem(ams_core_sing, ams_core_sing.getUnlocalizedName()); + GameRegistry.registerItem(ams_core_wormhole, ams_core_wormhole.getUnlocalizedName()); + GameRegistry.registerItem(ams_core_eyeofharmony, ams_core_eyeofharmony.getUnlocalizedName()); + GameRegistry.registerItem(ams_core_thingy, ams_core_thingy.getUnlocalizedName()); + + //Fusion Shields + GameRegistry.registerItem(fusion_shield_tungsten, fusion_shield_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(fusion_shield_desh, fusion_shield_desh.getUnlocalizedName()); + GameRegistry.registerItem(fusion_shield_chlorophyte, fusion_shield_chlorophyte.getUnlocalizedName()); + GameRegistry.registerItem(fusion_shield_vaporwave, fusion_shield_vaporwave.getUnlocalizedName()); + + //Breeding Rods + GameRegistry.registerItem(rod_empty, rod_empty.getUnlocalizedName()); + GameRegistry.registerItem(rod, rod.getUnlocalizedName()); + GameRegistry.registerItem(rod_dual_empty, rod_dual_empty.getUnlocalizedName()); + GameRegistry.registerItem(rod_dual, rod_dual.getUnlocalizedName()); + GameRegistry.registerItem(rod_quad_empty, rod_quad_empty.getUnlocalizedName()); + GameRegistry.registerItem(rod_quad, rod_quad.getUnlocalizedName()); + + //ZIRNOX parts + GameRegistry.registerItem(rod_zirnox_empty, rod_zirnox_empty.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_natural_uranium_fuel, rod_zirnox_natural_uranium_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_uranium_fuel, rod_zirnox_uranium_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_th232, rod_zirnox_th232.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_thorium_fuel, rod_zirnox_thorium_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_mox_fuel, rod_zirnox_mox_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_plutonium_fuel, rod_zirnox_plutonium_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_u233_fuel, rod_zirnox_u233_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_u235_fuel, rod_zirnox_u235_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_les_fuel, rod_zirnox_les_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_lithium, rod_zirnox_lithium.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox_tritium, rod_zirnox_tritium.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_zfb_mox, rod_zirnox_zfb_mox.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox, rod_zirnox.getUnlocalizedName()); + + GameRegistry.registerItem(rod_zirnox_natural_uranium_fuel_depleted, rod_zirnox_natural_uranium_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox_uranium_fuel_depleted, rod_zirnox_uranium_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox_thorium_fuel_depleted, rod_zirnox_thorium_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox_mox_fuel_depleted, rod_zirnox_mox_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox_plutonium_fuel_depleted, rod_zirnox_plutonium_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox_u233_fuel_depleted, rod_zirnox_u233_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox_u235_fuel_depleted, rod_zirnox_u235_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox_les_fuel_depleted, rod_zirnox_les_fuel_depleted.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox_zfb_mox_depleted, rod_zirnox_zfb_mox_depleted.getUnlocalizedName()); + + //Depleted Fuel + GameRegistry.registerItem(waste_natural_uranium, waste_natural_uranium.getUnlocalizedName()); + GameRegistry.registerItem(waste_uranium, waste_uranium.getUnlocalizedName()); + GameRegistry.registerItem(waste_thorium, waste_thorium.getUnlocalizedName()); + GameRegistry.registerItem(waste_mox, waste_mox.getUnlocalizedName()); + GameRegistry.registerItem(waste_plutonium, waste_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(waste_u233, waste_u233.getUnlocalizedName()); + GameRegistry.registerItem(waste_u235, waste_u235.getUnlocalizedName()); + GameRegistry.registerItem(waste_schrabidium, waste_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(waste_zfb_mox, waste_zfb_mox.getUnlocalizedName()); + + GameRegistry.registerItem(waste_plate_u233, waste_plate_u233.getUnlocalizedName()); + GameRegistry.registerItem(waste_plate_u235, waste_plate_u235.getUnlocalizedName()); + GameRegistry.registerItem(waste_plate_mox, waste_plate_mox.getUnlocalizedName()); + GameRegistry.registerItem(waste_plate_pu239, waste_plate_pu239.getUnlocalizedName()); + GameRegistry.registerItem(waste_plate_ra226be, waste_plate_ra226be.getUnlocalizedName()); + GameRegistry.registerItem(waste_plate_sa326, waste_plate_sa326.getUnlocalizedName()); + GameRegistry.registerItem(waste_plate_pu238be, waste_plate_pu238be.getUnlocalizedName()); + + //Pile parts + GameRegistry.registerItem(pile_rod_uranium, pile_rod_uranium.getUnlocalizedName()); + GameRegistry.registerItem(pile_rod_pu239, pile_rod_pu239.getUnlocalizedName()); + GameRegistry.registerItem(pile_rod_plutonium, pile_rod_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(pile_rod_source, pile_rod_source.getUnlocalizedName()); + GameRegistry.registerItem(pile_rod_boron, pile_rod_boron.getUnlocalizedName()); + GameRegistry.registerItem(pile_rod_lithium, pile_rod_lithium.getUnlocalizedName()); + GameRegistry.registerItem(pile_rod_detector, pile_rod_detector.getUnlocalizedName()); + + //Plate Fuels + GameRegistry.registerItem(plate_fuel_u233, plate_fuel_u233.getUnlocalizedName()); + GameRegistry.registerItem(plate_fuel_u235, plate_fuel_u235.getUnlocalizedName()); + GameRegistry.registerItem(plate_fuel_mox, plate_fuel_mox.getUnlocalizedName()); + GameRegistry.registerItem(plate_fuel_pu239, plate_fuel_pu239.getUnlocalizedName()); + GameRegistry.registerItem(plate_fuel_sa326, plate_fuel_sa326.getUnlocalizedName()); + GameRegistry.registerItem(plate_fuel_ra226be, plate_fuel_ra226be.getUnlocalizedName()); + GameRegistry.registerItem(plate_fuel_pu238be, plate_fuel_pu238be.getUnlocalizedName()); + + //PWR Parts + GameRegistry.registerItem(pwr_fuel, pwr_fuel.getUnlocalizedName()); + GameRegistry.registerItem(pwr_fuel_hot, pwr_fuel_hot.getUnlocalizedName()); + GameRegistry.registerItem(pwr_fuel_depleted, pwr_fuel_depleted.getUnlocalizedName()); + + //RBMK parts + GameRegistry.registerItem(rbmk_lid, rbmk_lid.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_lid_glass, rbmk_lid_glass.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_empty, rbmk_fuel_empty.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_ueu, rbmk_fuel_ueu.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_meu, rbmk_fuel_meu.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_heu233, rbmk_fuel_heu233.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_heu235, rbmk_fuel_heu235.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_thmeu, rbmk_fuel_thmeu.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_lep, rbmk_fuel_lep.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_mep, rbmk_fuel_mep.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_hep239, rbmk_fuel_hep239.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_hep241, rbmk_fuel_hep241.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_lea, rbmk_fuel_lea.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_mea, rbmk_fuel_mea.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_hea241, rbmk_fuel_hea241.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_hea242, rbmk_fuel_hea242.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_men, rbmk_fuel_men.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_hen, rbmk_fuel_hen.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_mox, rbmk_fuel_mox.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_les, rbmk_fuel_les.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_mes, rbmk_fuel_mes.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_hes, rbmk_fuel_hes.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_leaus, rbmk_fuel_leaus.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_heaus, rbmk_fuel_heaus.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_po210be, rbmk_fuel_po210be.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_ra226be, rbmk_fuel_ra226be.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_pu238be, rbmk_fuel_pu238be.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_balefire_gold, rbmk_fuel_balefire_gold.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_flashlead, rbmk_fuel_flashlead.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_balefire, rbmk_fuel_balefire.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_zfb_bismuth, rbmk_fuel_zfb_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_zfb_pu241, rbmk_fuel_zfb_pu241.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_zfb_am_mix, rbmk_fuel_zfb_am_mix.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_drx, rbmk_fuel_drx.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_fuel_test, rbmk_fuel_test.getUnlocalizedName()); + //GameRegistry.registerItem(rbmk_fuel_curve, rbmk_fuel_curve.getUnlocalizedName()); + + GameRegistry.registerItem(rbmk_pellet_ueu, rbmk_pellet_ueu.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_meu, rbmk_pellet_meu.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_heu233, rbmk_pellet_heu233.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_heu235, rbmk_pellet_heu235.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_thmeu, rbmk_pellet_thmeu.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_lep, rbmk_pellet_lep.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_mep, rbmk_pellet_mep.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_hep239, rbmk_pellet_hep239.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_hep241, rbmk_pellet_hep241.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_lea, rbmk_pellet_lea.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_mea, rbmk_pellet_mea.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_hea241, rbmk_pellet_hea241.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_hea242, rbmk_pellet_hea242.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_men, rbmk_pellet_men.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_hen, rbmk_pellet_hen.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_mox, rbmk_pellet_mox.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_les, rbmk_pellet_les.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_mes, rbmk_pellet_mes.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_hes, rbmk_pellet_hes.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_leaus, rbmk_pellet_leaus.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_heaus, rbmk_pellet_heaus.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_po210be, rbmk_pellet_po210be.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_ra226be, rbmk_pellet_ra226be.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_pu238be, rbmk_pellet_pu238be.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_balefire_gold, rbmk_pellet_balefire_gold.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_flashlead, rbmk_pellet_flashlead.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_balefire, rbmk_pellet_balefire.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_zfb_bismuth, rbmk_pellet_zfb_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_zfb_pu241, rbmk_pellet_zfb_pu241.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_zfb_am_mix, rbmk_pellet_zfb_am_mix.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_pellet_drx, rbmk_pellet_drx.getUnlocalizedName()); + + GameRegistry.registerItem(watz_pellet, watz_pellet.getUnlocalizedName()); + GameRegistry.registerItem(watz_pellet_depleted, watz_pellet_depleted.getUnlocalizedName()); + + GameRegistry.registerItem(icf_pellet_empty, icf_pellet_empty.getUnlocalizedName()); + GameRegistry.registerItem(icf_pellet, icf_pellet.getUnlocalizedName()); + GameRegistry.registerItem(icf_pellet_depleted, icf_pellet_depleted.getUnlocalizedName()); + + GameRegistry.registerItem(debris_graphite, debris_graphite.getUnlocalizedName()); + GameRegistry.registerItem(debris_metal, debris_metal.getUnlocalizedName()); + GameRegistry.registerItem(debris_fuel, debris_fuel.getUnlocalizedName()); + GameRegistry.registerItem(debris_concrete, debris_concrete.getUnlocalizedName()); + GameRegistry.registerItem(debris_exchanger, debris_exchanger.getUnlocalizedName()); + GameRegistry.registerItem(debris_shrapnel, debris_shrapnel.getUnlocalizedName()); + GameRegistry.registerItem(debris_element, debris_element.getUnlocalizedName()); + GameRegistry.registerItem(undefined, undefined.getUnlocalizedName()); + + GameRegistry.registerItem(scrap_plastic, scrap_plastic.getUnlocalizedName()); + GameRegistry.registerItem(scrap, scrap.getUnlocalizedName()); + GameRegistry.registerItem(scrap_oil, scrap_oil.getUnlocalizedName()); + GameRegistry.registerItem(scrap_nuclear, scrap_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(trinitite, trinitite.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_long, nuclear_waste_long.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_long_tiny, nuclear_waste_long_tiny.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_short, nuclear_waste_short.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_short_tiny, nuclear_waste_short_tiny.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_long_depleted, nuclear_waste_long_depleted.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_long_depleted_tiny, nuclear_waste_long_depleted_tiny.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_short_depleted, nuclear_waste_short_depleted.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_short_depleted_tiny, nuclear_waste_short_depleted_tiny.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste, nuclear_waste.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_tiny, nuclear_waste_tiny.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_vitrified, nuclear_waste_vitrified.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_vitrified_tiny, nuclear_waste_vitrified_tiny.getUnlocalizedName()); + + //Spawners + GameRegistry.registerItem(spawn_chopper, spawn_chopper.getUnlocalizedName()); + GameRegistry.registerItem(spawn_worm, spawn_worm.getUnlocalizedName()); + GameRegistry.registerItem(spawn_ufo, spawn_ufo.getUnlocalizedName()); + GameRegistry.registerItem(spawn_duck, spawn_duck.getUnlocalizedName()); + + //Computer Tools + 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_chip, turret_chip.getUnlocalizedName()); + GameRegistry.registerItem(linker, linker.getUnlocalizedName()); + GameRegistry.registerItem(reactor_sensor, reactor_sensor.getUnlocalizedName()); + GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName()); + GameRegistry.registerItem(ore_density_scanner, ore_density_scanner.getUnlocalizedName()); + GameRegistry.registerItem(survey_scanner, survey_scanner.getUnlocalizedName()); + GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName()); + GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); + GameRegistry.registerItem(drone_linker, drone_linker.getUnlocalizedName()); + GameRegistry.registerItem(radar_linker, radar_linker.getUnlocalizedName()); + GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); + GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); + GameRegistry.registerItem(analysis_tool, analysis_tool.getUnlocalizedName()); + GameRegistry.registerItem(coupling_tool, coupling_tool.getUnlocalizedName()); + GameRegistry.registerItem(settings_tool, settings_tool.getUnlocalizedName()); + GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName()); + GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); + GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); + GameRegistry.registerItem(pollution_detector, pollution_detector.getUnlocalizedName()); + GameRegistry.registerItem(containment_box, containment_box.getUnlocalizedName()); + GameRegistry.registerItem(plastic_bag, plastic_bag.getUnlocalizedName()); + + GameRegistry.registerItem(ammo_bag, ammo_bag.getUnlocalizedName()); + GameRegistry.registerItem(ammo_bag_infinite, ammo_bag_infinite.getUnlocalizedName()); + GameRegistry.registerItem(casing_bag, casing_bag.getUnlocalizedName()); + + //Keys and Locks + GameRegistry.registerItem(key, key.getUnlocalizedName()); + GameRegistry.registerItem(key_red, key_red.getUnlocalizedName()); + GameRegistry.registerItem(key_red_cracked, key_red_cracked.getUnlocalizedName()); + GameRegistry.registerItem(key_kit, key_kit.getUnlocalizedName()); + GameRegistry.registerItem(key_fake, key_fake.getUnlocalizedName()); + GameRegistry.registerItem(mech_key, mech_key.getUnlocalizedName()); + GameRegistry.registerItem(pin, pin.getUnlocalizedName()); + GameRegistry.registerItem(padlock_rusty, padlock_rusty.getUnlocalizedName()); + GameRegistry.registerItem(padlock, padlock.getUnlocalizedName()); + GameRegistry.registerItem(padlock_reinforced, padlock_reinforced.getUnlocalizedName()); + GameRegistry.registerItem(padlock_unbreakable, padlock_unbreakable.getUnlocalizedName()); + GameRegistry.registerItem(launch_code_piece, launch_code_piece.getUnlocalizedName()); + GameRegistry.registerItem(launch_code, launch_code.getUnlocalizedName()); + GameRegistry.registerItem(launch_key, launch_key.getUnlocalizedName()); + + //Missiles + //Tier 0 + GameRegistry.registerItem(missile_test, missile_test.getUnlocalizedName()); + GameRegistry.registerItem(missile_taint, missile_taint.getUnlocalizedName()); + GameRegistry.registerItem(missile_micro, missile_micro.getUnlocalizedName()); + GameRegistry.registerItem(missile_bhole, missile_bhole.getUnlocalizedName()); + GameRegistry.registerItem(missile_schrabidium, missile_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(missile_emp, missile_emp.getUnlocalizedName()); + //Tier 1 + GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); + GameRegistry.registerItem(missile_decoy, missile_decoy.getUnlocalizedName()); + GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); + GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); + GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); + GameRegistry.registerItem(missile_stealth, missile_stealth.getUnlocalizedName()); + GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); + //Tier 2 + GameRegistry.registerItem(missile_strong, missile_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_incendiary_strong, missile_incendiary_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_cluster_strong, missile_cluster_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_buster_strong, missile_buster_strong.getUnlocalizedName()); + GameRegistry.registerItem(missile_emp_strong, missile_emp_strong.getUnlocalizedName()); + //Tier 3 + GameRegistry.registerItem(missile_burst, missile_burst.getUnlocalizedName()); + GameRegistry.registerItem(missile_inferno, missile_inferno.getUnlocalizedName()); + GameRegistry.registerItem(missile_rain, missile_rain.getUnlocalizedName()); + GameRegistry.registerItem(missile_drill, missile_drill.getUnlocalizedName()); + GameRegistry.registerItem(missile_shuttle, missile_shuttle.getUnlocalizedName()); + //Tier 4 + GameRegistry.registerItem(missile_nuclear, missile_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(missile_nuclear_cluster, missile_nuclear_cluster.getUnlocalizedName()); + GameRegistry.registerItem(missile_volcano, missile_volcano.getUnlocalizedName()); + GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName()); + GameRegistry.registerItem(missile_doomsday_rusted, missile_doomsday_rusted.getUnlocalizedName()); + //Rockets + GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); + GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName()); + GameRegistry.registerItem(missile_custom, missile_custom.getUnlocalizedName()); + + //Missile Parts + GameRegistry.registerItem(mp_thruster_10_kerosene, mp_thruster_10_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_10_kerosene_tec, mp_thruster_10_kerosene_tec.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_10_solid, mp_thruster_10_solid.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_10_xenon, mp_thruster_10_xenon.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_kerosene, mp_thruster_15_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_kerosene_tec, mp_thruster_15_kerosene_tec.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_kerosene_dual, mp_thruster_15_kerosene_dual.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_kerosene_triple, mp_thruster_15_kerosene_triple.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_solid, mp_thruster_15_solid.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_solid_hexdecuple, mp_thruster_15_solid_hexdecuple.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_hydrogen, mp_thruster_15_hydrogen.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_hydrogen_dual, mp_thruster_15_hydrogen_dual.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_balefire_short, mp_thruster_15_balefire_short.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_balefire, mp_thruster_15_balefire.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_balefire_large, mp_thruster_15_balefire_large.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_balefire_large_rad, mp_thruster_15_balefire_large_rad.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_20_kerosene, mp_thruster_20_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_20_kerosene_dual, mp_thruster_20_kerosene_dual.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_20_kerosene_triple, mp_thruster_20_kerosene_triple.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_20_solid, mp_thruster_20_solid.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_20_solid_multi, mp_thruster_20_solid_multi.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_20_solid_multier, mp_thruster_20_solid_multier.getUnlocalizedName()); + GameRegistry.registerItem(mp_stability_10_flat, mp_stability_10_flat.getUnlocalizedName()); + GameRegistry.registerItem(mp_stability_10_cruise, mp_stability_10_cruise.getUnlocalizedName()); + GameRegistry.registerItem(mp_stability_10_space, mp_stability_10_space.getUnlocalizedName()); + GameRegistry.registerItem(mp_stability_15_flat, mp_stability_15_flat.getUnlocalizedName()); + GameRegistry.registerItem(mp_stability_15_thin, mp_stability_15_thin.getUnlocalizedName()); + GameRegistry.registerItem(mp_stability_15_soyuz, mp_stability_15_soyuz.getUnlocalizedName()); + GameRegistry.registerItem(mp_stability_20_flat, mp_stability_20_flat.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene, mp_fuselage_10_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_camo, mp_fuselage_10_kerosene_camo.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_desert, mp_fuselage_10_kerosene_desert.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_sky, mp_fuselage_10_kerosene_sky.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_flames, mp_fuselage_10_kerosene_flames.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_insulation, mp_fuselage_10_kerosene_insulation.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_sleek, mp_fuselage_10_kerosene_sleek.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_metal, mp_fuselage_10_kerosene_metal.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_taint, mp_fuselage_10_kerosene_taint.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_solid, mp_fuselage_10_solid.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_solid_flames, mp_fuselage_10_solid_flames.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_solid_insulation, mp_fuselage_10_solid_insulation.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_solid_sleek, mp_fuselage_10_solid_sleek.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_solid_soviet_glory, mp_fuselage_10_solid_soviet_glory.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_solid_cathedral, mp_fuselage_10_solid_cathedral.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_solid_moonlit, mp_fuselage_10_solid_moonlit.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_solid_battery, mp_fuselage_10_solid_battery.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_solid_duracell, mp_fuselage_10_solid_duracell.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_xenon, mp_fuselage_10_xenon.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_xenon_bhole, mp_fuselage_10_xenon_bhole.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene, mp_fuselage_10_long_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_camo, mp_fuselage_10_long_kerosene_camo.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_desert, mp_fuselage_10_long_kerosene_desert.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_sky, mp_fuselage_10_long_kerosene_sky.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_flames, mp_fuselage_10_long_kerosene_flames.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_insulation, mp_fuselage_10_long_kerosene_insulation.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_sleek, mp_fuselage_10_long_kerosene_sleek.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_metal, mp_fuselage_10_long_kerosene_metal.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_dash, mp_fuselage_10_long_kerosene_dash.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_taint, mp_fuselage_10_long_kerosene_taint.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_vap, mp_fuselage_10_long_kerosene_vap.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_solid, mp_fuselage_10_long_solid.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_solid_flames, mp_fuselage_10_long_solid_flames.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_solid_insulation, mp_fuselage_10_long_solid_insulation.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_solid_sleek, mp_fuselage_10_long_solid_sleek.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_solid_soviet_glory, mp_fuselage_10_long_solid_soviet_glory.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_solid_bullet, mp_fuselage_10_long_solid_bullet.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_solid_silvermoonlight, mp_fuselage_10_long_solid_silvermoonlight.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_15_kerosene, mp_fuselage_10_15_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_15_solid, mp_fuselage_10_15_solid.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_15_hydrogen, mp_fuselage_10_15_hydrogen.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_15_balefire, mp_fuselage_10_15_balefire.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene, mp_fuselage_15_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_camo, mp_fuselage_15_kerosene_camo.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_desert, mp_fuselage_15_kerosene_desert.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_sky, mp_fuselage_15_kerosene_sky.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_insulation, mp_fuselage_15_kerosene_insulation.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_metal, mp_fuselage_15_kerosene_metal.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_decorated, mp_fuselage_15_kerosene_decorated.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_steampunk, mp_fuselage_15_kerosene_steampunk.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_polite, mp_fuselage_15_kerosene_polite.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_blackjack, mp_fuselage_15_kerosene_blackjack.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_lambda, mp_fuselage_15_kerosene_lambda.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_minuteman, mp_fuselage_15_kerosene_minuteman.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_pip, mp_fuselage_15_kerosene_pip.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_taint, mp_fuselage_15_kerosene_taint.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_yuck, mp_fuselage_15_kerosene_yuck.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid, mp_fuselage_15_solid.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_insulation, mp_fuselage_15_solid_insulation.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_desh, mp_fuselage_15_solid_desh.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_soviet_glory, mp_fuselage_15_solid_soviet_glory.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_soviet_stank, mp_fuselage_15_solid_soviet_stank.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_faust, mp_fuselage_15_solid_faust.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_silvermoonlight, mp_fuselage_15_solid_silvermoonlight.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_snowy, mp_fuselage_15_solid_snowy.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_panorama, mp_fuselage_15_solid_panorama.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_roses, mp_fuselage_15_solid_roses.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_mimi, mp_fuselage_15_solid_mimi.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_hydrogen, mp_fuselage_15_hydrogen.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_hydrogen_cathedral, mp_fuselage_15_hydrogen_cathedral.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_balefire, mp_fuselage_15_balefire.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_20_kerosene, mp_fuselage_15_20_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_20_kerosene_magnusson, mp_fuselage_15_20_kerosene_magnusson.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_20_solid, mp_fuselage_15_20_solid.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_20_kerosene, mp_fuselage_20_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_10_he, mp_warhead_10_he.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_10_incendiary, mp_warhead_10_incendiary.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_10_buster, mp_warhead_10_buster.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_10_nuclear, mp_warhead_10_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_10_nuclear_large, mp_warhead_10_nuclear_large.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_10_taint, mp_warhead_10_taint.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_10_cloud, mp_warhead_10_cloud.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_he, mp_warhead_15_he.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_incendiary, mp_warhead_15_incendiary.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_nuclear, mp_warhead_15_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_nuclear_shark, mp_warhead_15_nuclear_shark.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_nuclear_mimi, mp_warhead_15_nuclear_mimi.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_boxcar, mp_warhead_15_boxcar.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_n2, mp_warhead_15_n2.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_balefire, mp_warhead_15_balefire.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_15_turbine, mp_warhead_15_turbine.getUnlocalizedName()); + GameRegistry.registerItem(mp_warhead_20_he, mp_warhead_20_he.getUnlocalizedName()); + GameRegistry.registerItem(mp_chip_1, mp_chip_1.getUnlocalizedName()); + GameRegistry.registerItem(mp_chip_2, mp_chip_2.getUnlocalizedName()); + GameRegistry.registerItem(mp_chip_3, mp_chip_3.getUnlocalizedName()); + GameRegistry.registerItem(mp_chip_4, mp_chip_4.getUnlocalizedName()); + GameRegistry.registerItem(mp_chip_5, mp_chip_5.getUnlocalizedName()); + + //Satellites + GameRegistry.registerItem(sat_mapper, sat_mapper.getUnlocalizedName()); + GameRegistry.registerItem(sat_scanner, sat_scanner.getUnlocalizedName()); + GameRegistry.registerItem(sat_radar, sat_radar.getUnlocalizedName()); + GameRegistry.registerItem(sat_laser, sat_laser.getUnlocalizedName()); + GameRegistry.registerItem(sat_foeq, sat_foeq.getUnlocalizedName()); + GameRegistry.registerItem(sat_resonator, sat_resonator.getUnlocalizedName()); + GameRegistry.registerItem(sat_miner, sat_miner.getUnlocalizedName()); + GameRegistry.registerItem(sat_lunar_miner, sat_lunar_miner.getUnlocalizedName()); + GameRegistry.registerItem(sat_gerald, sat_gerald.getUnlocalizedName()); + GameRegistry.registerItem(sat_chip, sat_chip.getUnlocalizedName()); + GameRegistry.registerItem(sat_interface, sat_interface.getUnlocalizedName()); + GameRegistry.registerItem(sat_coord, sat_coord.getUnlocalizedName()); + GameRegistry.registerItem(sat_designator, sat_designator.getUnlocalizedName()); + GameRegistry.registerItem(sat_relay, sat_relay.getUnlocalizedName()); + + //Guns + GameRegistry.registerItem(gun_b92, gun_b92.getUnlocalizedName()); + GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName()); + GameRegistry.registerItem(crucible, crucible.getUnlocalizedName()); + + GameRegistry.registerItem(gun_debug, gun_debug.getUnlocalizedName()); + GameRegistry.registerItem(ammo_debug, ammo_debug.getUnlocalizedName()); + + GameRegistry.registerItem(gun_pepperbox, gun_pepperbox.getUnlocalizedName()); + GameRegistry.registerItem(gun_light_revolver, gun_light_revolver.getUnlocalizedName()); + GameRegistry.registerItem(gun_light_revolver_atlas, gun_light_revolver_atlas.getUnlocalizedName()); + GameRegistry.registerItem(gun_light_revolver_dani, gun_light_revolver_dani.getUnlocalizedName()); + GameRegistry.registerItem(gun_henry, gun_henry.getUnlocalizedName()); + GameRegistry.registerItem(gun_henry_lincoln, gun_henry_lincoln.getUnlocalizedName()); + GameRegistry.registerItem(gun_greasegun, gun_greasegun.getUnlocalizedName()); + GameRegistry.registerItem(gun_maresleg, gun_maresleg.getUnlocalizedName()); + GameRegistry.registerItem(gun_maresleg_akimbo, gun_maresleg_akimbo.getUnlocalizedName()); + GameRegistry.registerItem(gun_maresleg_broken, gun_maresleg_broken.getUnlocalizedName()); + GameRegistry.registerItem(gun_flaregun, gun_flaregun.getUnlocalizedName()); + GameRegistry.registerItem(gun_heavy_revolver, gun_heavy_revolver.getUnlocalizedName()); + GameRegistry.registerItem(gun_heavy_revolver_lilmac, gun_heavy_revolver_lilmac.getUnlocalizedName()); + GameRegistry.registerItem(gun_heavy_revolver_protege, gun_heavy_revolver_protege.getUnlocalizedName()); + GameRegistry.registerItem(gun_carbine, gun_carbine.getUnlocalizedName()); + GameRegistry.registerItem(gun_am180, gun_am180.getUnlocalizedName()); + GameRegistry.registerItem(gun_liberator, gun_liberator.getUnlocalizedName()); + GameRegistry.registerItem(gun_congolake, gun_congolake.getUnlocalizedName()); + GameRegistry.registerItem(gun_flamer, gun_flamer.getUnlocalizedName()); + GameRegistry.registerItem(gun_flamer_topaz, gun_flamer_topaz.getUnlocalizedName()); + GameRegistry.registerItem(gun_flamer_daybreaker, gun_flamer_daybreaker.getUnlocalizedName()); + GameRegistry.registerItem(gun_uzi, gun_uzi.getUnlocalizedName()); + GameRegistry.registerItem(gun_uzi_akimbo, gun_uzi_akimbo.getUnlocalizedName()); + GameRegistry.registerItem(gun_spas12, gun_spas12.getUnlocalizedName()); + GameRegistry.registerItem(gun_panzerschreck, gun_panzerschreck.getUnlocalizedName()); + GameRegistry.registerItem(gun_g3, gun_g3.getUnlocalizedName()); + GameRegistry.registerItem(gun_g3_zebra, gun_g3_zebra.getUnlocalizedName()); + GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); + GameRegistry.registerItem(gun_chemthrower, gun_chemthrower.getUnlocalizedName()); + GameRegistry.registerItem(gun_m2, gun_m2.getUnlocalizedName()); + GameRegistry.registerItem(gun_autoshotgun, gun_autoshotgun.getUnlocalizedName()); + GameRegistry.registerItem(gun_autoshotgun_shredder, gun_autoshotgun_shredder.getUnlocalizedName()); + GameRegistry.registerItem(gun_autoshotgun_sexy, gun_autoshotgun_sexy.getUnlocalizedName()); + GameRegistry.registerItem(gun_quadro, gun_quadro.getUnlocalizedName()); + GameRegistry.registerItem(gun_lag, gun_lag.getUnlocalizedName()); + GameRegistry.registerItem(gun_minigun, gun_minigun.getUnlocalizedName()); + GameRegistry.registerItem(gun_minigun_dual, gun_minigun_dual.getUnlocalizedName()); + GameRegistry.registerItem(gun_minigun_lacunae, gun_minigun_lacunae.getUnlocalizedName()); + GameRegistry.registerItem(gun_missile_launcher, gun_missile_launcher.getUnlocalizedName()); + GameRegistry.registerItem(gun_tesla_cannon, gun_tesla_cannon.getUnlocalizedName()); + GameRegistry.registerItem(gun_laser_pistol, gun_laser_pistol.getUnlocalizedName()); + GameRegistry.registerItem(gun_laser_pistol_pew_pew, gun_laser_pistol_pew_pew.getUnlocalizedName()); + GameRegistry.registerItem(gun_laser_pistol_morning_glory, gun_laser_pistol_morning_glory.getUnlocalizedName()); + GameRegistry.registerItem(gun_stg77, gun_stg77.getUnlocalizedName()); + GameRegistry.registerItem(gun_tau, gun_tau.getUnlocalizedName()); + GameRegistry.registerItem(gun_fatman, gun_fatman.getUnlocalizedName()); + GameRegistry.registerItem(gun_lasrifle, gun_lasrifle.getUnlocalizedName()); + GameRegistry.registerItem(gun_coilgun, gun_coilgun.getUnlocalizedName()); + GameRegistry.registerItem(gun_hangman, gun_hangman.getUnlocalizedName()); + GameRegistry.registerItem(gun_mas36, gun_mas36.getUnlocalizedName()); + GameRegistry.registerItem(gun_bolter, gun_bolter.getUnlocalizedName()); + GameRegistry.registerItem(gun_folly, gun_folly.getUnlocalizedName()); + GameRegistry.registerItem(gun_aberrator, gun_aberrator.getUnlocalizedName()); + GameRegistry.registerItem(gun_aberrator_eott, gun_aberrator_eott.getUnlocalizedName()); + GameRegistry.registerItem(gun_double_barrel, gun_double_barrel.getUnlocalizedName()); + GameRegistry.registerItem(gun_double_barrel_sacred_dragon, gun_double_barrel_sacred_dragon.getUnlocalizedName()); + + GameRegistry.registerItem(gun_charge_thrower, gun_charge_thrower.getUnlocalizedName()); + + GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName()); + GameRegistry.registerItem(ammo_secret, ammo_secret.getUnlocalizedName()); + + GameRegistry.registerItem(weapon_mod_test, weapon_mod_test.getUnlocalizedName()); + GameRegistry.registerItem(weapon_mod_generic, weapon_mod_generic.getUnlocalizedName()); + GameRegistry.registerItem(weapon_mod_special, weapon_mod_special.getUnlocalizedName()); + GameRegistry.registerItem(weapon_mod_caliber, weapon_mod_caliber.getUnlocalizedName()); + + //Ammo + GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); + + GameRegistry.registerItem(ammo_fireext, ammo_fireext.getUnlocalizedName()); + GameRegistry.registerItem(ammo_shell, ammo_shell.getUnlocalizedName()); + GameRegistry.registerItem(ammo_dgk, ammo_dgk.getUnlocalizedName()); + GameRegistry.registerItem(ammo_arty, ammo_arty.getUnlocalizedName()); + GameRegistry.registerItem(ammo_himars, ammo_himars.getUnlocalizedName()); + + GameRegistry.registerItem(ammo_container, ammo_container.getUnlocalizedName()); + + //Grenades + GameRegistry.registerItem(stick_dynamite, stick_dynamite.getUnlocalizedName()); //heave-ho! + GameRegistry.registerItem(stick_dynamite_fishing, stick_dynamite_fishing.getUnlocalizedName()); + GameRegistry.registerItem(stick_tnt, stick_tnt.getUnlocalizedName()); + GameRegistry.registerItem(stick_semtex, stick_semtex.getUnlocalizedName()); + GameRegistry.registerItem(stick_c4, stick_c4.getUnlocalizedName()); + GameRegistry.registerItem(grenade_generic, grenade_generic.getUnlocalizedName()); + GameRegistry.registerItem(grenade_strong, grenade_strong.getUnlocalizedName()); + GameRegistry.registerItem(grenade_frag, grenade_frag.getUnlocalizedName()); + GameRegistry.registerItem(grenade_fire, grenade_fire.getUnlocalizedName()); + GameRegistry.registerItem(grenade_shrapnel, grenade_shrapnel.getUnlocalizedName()); + GameRegistry.registerItem(grenade_cluster, grenade_cluster.getUnlocalizedName()); + GameRegistry.registerItem(grenade_flare, grenade_flare.getUnlocalizedName()); + GameRegistry.registerItem(grenade_electric, grenade_electric.getUnlocalizedName()); + GameRegistry.registerItem(grenade_poison, grenade_poison.getUnlocalizedName()); + GameRegistry.registerItem(grenade_gas, grenade_gas.getUnlocalizedName()); + GameRegistry.registerItem(grenade_cloud, grenade_cloud.getUnlocalizedName()); + GameRegistry.registerItem(grenade_pink_cloud, grenade_pink_cloud.getUnlocalizedName()); + GameRegistry.registerItem(grenade_smart, grenade_smart.getUnlocalizedName()); + GameRegistry.registerItem(grenade_mirv, grenade_mirv.getUnlocalizedName()); + GameRegistry.registerItem(grenade_breach, grenade_breach.getUnlocalizedName()); + GameRegistry.registerItem(grenade_burst, grenade_burst.getUnlocalizedName()); + GameRegistry.registerItem(grenade_pulse, grenade_pulse.getUnlocalizedName()); + GameRegistry.registerItem(grenade_plasma, grenade_plasma.getUnlocalizedName()); + GameRegistry.registerItem(grenade_tau, grenade_tau.getUnlocalizedName()); + GameRegistry.registerItem(grenade_schrabidium, grenade_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(grenade_nuke, grenade_nuke.getUnlocalizedName()); + GameRegistry.registerItem(grenade_lemon, grenade_lemon.getUnlocalizedName()); + GameRegistry.registerItem(grenade_gascan, grenade_gascan.getUnlocalizedName()); + GameRegistry.registerItem(grenade_kyiv, grenade_kyiv.getUnlocalizedName()); + GameRegistry.registerItem(grenade_mk2, grenade_mk2.getUnlocalizedName()); + GameRegistry.registerItem(grenade_aschrab, grenade_aschrab.getUnlocalizedName()); + GameRegistry.registerItem(grenade_nuclear, grenade_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(grenade_zomg, grenade_zomg.getUnlocalizedName()); + GameRegistry.registerItem(grenade_black_hole, grenade_black_hole.getUnlocalizedName()); + + GameRegistry.registerItem(grenade_if_generic, grenade_if_generic.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_he, grenade_if_he.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_bouncy, grenade_if_bouncy.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_sticky, grenade_if_sticky.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_impact, grenade_if_impact.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_incendiary, grenade_if_incendiary.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_toxic, grenade_if_toxic.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_concussion, grenade_if_concussion.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_brimstone, grenade_if_brimstone.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_mystery, grenade_if_mystery.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_spark, grenade_if_spark.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_hopwire, grenade_if_hopwire.getUnlocalizedName()); + GameRegistry.registerItem(grenade_if_null, grenade_if_null.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_pearl, nuclear_waste_pearl.getUnlocalizedName()); + + //Disperser Canister + GameRegistry.registerItem(disperser_canister_empty, disperser_canister_empty.getUnlocalizedName()); + GameRegistry.registerItem(disperser_canister, disperser_canister.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland_empty, glyphid_gland_empty.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_gland, glyphid_gland.getUnlocalizedName()); + + GameRegistry.registerItem(ullapool_caber, ullapool_caber.getUnlocalizedName()); + GameRegistry.registerItem(weaponized_starblaster_cell, weaponized_starblaster_cell.getUnlocalizedName()); + + //Capes + GameRegistry.registerItem(cape_radiation, cape_radiation.getUnlocalizedName()); + GameRegistry.registerItem(cape_gasmask, cape_gasmask.getUnlocalizedName()); + GameRegistry.registerItem(cape_schrabidium, cape_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(cape_hidden, cape_hidden.getUnlocalizedName()); + + //Tools + GameRegistry.registerItem(dwarven_pickaxe, dwarven_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_hammer, schrabidium_hammer.getUnlocalizedName()); + GameRegistry.registerItem(shimmer_sledge, shimmer_sledge.getUnlocalizedName()); + GameRegistry.registerItem(shimmer_axe, shimmer_axe.getUnlocalizedName()); + GameRegistry.registerItem(wood_gavel, wood_gavel.getUnlocalizedName()); + GameRegistry.registerItem(lead_gavel, lead_gavel.getUnlocalizedName()); + GameRegistry.registerItem(diamond_gavel, diamond_gavel.getUnlocalizedName()); + GameRegistry.registerItem(mese_gavel, mese_gavel.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_pickaxe, schrabidium_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_axe, schrabidium_axe.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_shovel, schrabidium_shovel.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_hoe, schrabidium_hoe.getUnlocalizedName()); + GameRegistry.registerItem(steel_sword, steel_sword.getUnlocalizedName()); + GameRegistry.registerItem(steel_pickaxe, steel_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(steel_axe, steel_axe.getUnlocalizedName()); + GameRegistry.registerItem(steel_shovel, steel_shovel.getUnlocalizedName()); + GameRegistry.registerItem(steel_hoe, steel_hoe.getUnlocalizedName()); + GameRegistry.registerItem(titanium_sword, titanium_sword.getUnlocalizedName()); + GameRegistry.registerItem(titanium_pickaxe, titanium_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(titanium_axe, titanium_axe.getUnlocalizedName()); + GameRegistry.registerItem(titanium_shovel, titanium_shovel.getUnlocalizedName()); + GameRegistry.registerItem(titanium_hoe, titanium_hoe.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_sword, cobalt_sword.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_pickaxe, cobalt_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_axe, cobalt_axe.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_shovel, cobalt_shovel.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_hoe, cobalt_hoe.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_decorated_sword, cobalt_decorated_sword.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_decorated_pickaxe, cobalt_decorated_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_decorated_axe, cobalt_decorated_axe.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_decorated_shovel, cobalt_decorated_shovel.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_decorated_hoe, cobalt_decorated_hoe.getUnlocalizedName()); + GameRegistry.registerItem(starmetal_sword, starmetal_sword.getUnlocalizedName()); + GameRegistry.registerItem(starmetal_pickaxe, starmetal_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(starmetal_axe, starmetal_axe.getUnlocalizedName()); + GameRegistry.registerItem(starmetal_shovel, starmetal_shovel.getUnlocalizedName()); + GameRegistry.registerItem(starmetal_hoe, starmetal_hoe.getUnlocalizedName()); + GameRegistry.registerItem(alloy_sword, alloy_sword.getUnlocalizedName()); + GameRegistry.registerItem(alloy_pickaxe, alloy_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(alloy_axe, alloy_axe.getUnlocalizedName()); + GameRegistry.registerItem(alloy_shovel, alloy_shovel.getUnlocalizedName()); + GameRegistry.registerItem(alloy_hoe, alloy_hoe.getUnlocalizedName()); + GameRegistry.registerItem(cmb_sword, cmb_sword.getUnlocalizedName()); + GameRegistry.registerItem(cmb_pickaxe, cmb_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(cmb_axe, cmb_axe.getUnlocalizedName()); + GameRegistry.registerItem(cmb_shovel, cmb_shovel.getUnlocalizedName()); + GameRegistry.registerItem(cmb_hoe, cmb_hoe.getUnlocalizedName()); + GameRegistry.registerItem(desh_sword, desh_sword.getUnlocalizedName()); + GameRegistry.registerItem(desh_pickaxe, desh_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(desh_axe, desh_axe.getUnlocalizedName()); + GameRegistry.registerItem(desh_shovel, desh_shovel.getUnlocalizedName()); + GameRegistry.registerItem(desh_hoe, desh_hoe.getUnlocalizedName()); + GameRegistry.registerItem(elec_sword, elec_sword.getUnlocalizedName()); + GameRegistry.registerItem(elec_pickaxe, elec_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(elec_axe, elec_axe.getUnlocalizedName()); + GameRegistry.registerItem(elec_shovel, elec_shovel.getUnlocalizedName()); + GameRegistry.registerItem(dnt_sword, dnt_sword.getUnlocalizedName()); + GameRegistry.registerItem(smashing_hammer, smashing_hammer.getUnlocalizedName()); + GameRegistry.registerItem(centri_stick, centri_stick.getUnlocalizedName()); + GameRegistry.registerItem(drax, drax.getUnlocalizedName()); + GameRegistry.registerItem(drax_mk2, drax_mk2.getUnlocalizedName()); + GameRegistry.registerItem(drax_mk3, drax_mk3.getUnlocalizedName()); + GameRegistry.registerItem(bismuth_pickaxe, bismuth_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(bismuth_axe, bismuth_axe.getUnlocalizedName()); + GameRegistry.registerItem(volcanic_pickaxe, volcanic_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(volcanic_axe, volcanic_axe.getUnlocalizedName()); + GameRegistry.registerItem(chlorophyte_pickaxe, chlorophyte_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(chlorophyte_axe, chlorophyte_axe.getUnlocalizedName()); + GameRegistry.registerItem(mese_pickaxe, mese_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(mese_axe, mese_axe.getUnlocalizedName()); GameRegistry.registerItem(matchstick, matchstick.getUnlocalizedName()); + GameRegistry.registerItem(balefire_and_steel, balefire_and_steel.getUnlocalizedName()); + GameRegistry.registerItem(crowbar, crowbar.getUnlocalizedName()); + GameRegistry.registerItem(wrench, wrench.getUnlocalizedName()); + GameRegistry.registerItem(wrench_archineer, wrench_archineer.getUnlocalizedName()); + GameRegistry.registerItem(wrench_flipped, wrench_flipped.getUnlocalizedName()); + GameRegistry.registerItem(memespoon, memespoon.getUnlocalizedName()); + GameRegistry.registerItem(saw, saw.getUnlocalizedName()); + GameRegistry.registerItem(bat, bat.getUnlocalizedName()); + GameRegistry.registerItem(bat_nail, bat_nail.getUnlocalizedName()); + GameRegistry.registerItem(golf_club, golf_club.getUnlocalizedName()); + GameRegistry.registerItem(pipe_rusty, pipe_rusty.getUnlocalizedName()); + GameRegistry.registerItem(pipe_lead, pipe_lead.getUnlocalizedName()); + GameRegistry.registerItem(reer_graar, reer_graar.getUnlocalizedName()); + GameRegistry.registerItem(stopsign, stopsign.getUnlocalizedName()); + GameRegistry.registerItem(sopsign, sopsign.getUnlocalizedName()); + GameRegistry.registerItem(chernobylsign, chernobylsign.getUnlocalizedName()); + + GameRegistry.registerItem(meteorite_sword, meteorite_sword.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_seared, meteorite_sword_seared.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_reforged, meteorite_sword_reforged.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_hardened, meteorite_sword_hardened.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_alloyed, meteorite_sword_alloyed.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_machined, meteorite_sword_machined.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_treated, meteorite_sword_treated.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_etched, meteorite_sword_etched.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_bred, meteorite_sword_bred.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_irradiated, meteorite_sword_irradiated.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_fused, meteorite_sword_fused.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_baleful, meteorite_sword_baleful.getUnlocalizedName()); + + //Multitool + GameRegistry.registerItem(multitool_hit, multitool_hit.getUnlocalizedName()); + GameRegistry.registerItem(multitool_dig, multitool_dig.getUnlocalizedName()); + GameRegistry.registerItem(multitool_silk, multitool_silk.getUnlocalizedName()); + GameRegistry.registerItem(multitool_ext, multitool_ext.getUnlocalizedName()); + GameRegistry.registerItem(multitool_miner, multitool_miner.getUnlocalizedName()); + GameRegistry.registerItem(multitool_beam, multitool_beam.getUnlocalizedName()); + GameRegistry.registerItem(multitool_sky, multitool_sky.getUnlocalizedName()); + GameRegistry.registerItem(multitool_mega, multitool_mega.getUnlocalizedName()); + GameRegistry.registerItem(multitool_joule, multitool_joule.getUnlocalizedName()); + GameRegistry.registerItem(multitool_decon, multitool_decon.getUnlocalizedName()); + + //Syringes & Pills + GameRegistry.registerItem(syringe_empty, syringe_empty.getUnlocalizedName()); + GameRegistry.registerItem(syringe_antidote, syringe_antidote.getUnlocalizedName()); + GameRegistry.registerItem(syringe_poison, syringe_poison.getUnlocalizedName()); + GameRegistry.registerItem(syringe_awesome, syringe_awesome.getUnlocalizedName()); + GameRegistry.registerItem(syringe_metal_empty, syringe_metal_empty.getUnlocalizedName()); + GameRegistry.registerItem(syringe_metal_stimpak, syringe_metal_stimpak.getUnlocalizedName()); + GameRegistry.registerItem(syringe_metal_medx, syringe_metal_medx.getUnlocalizedName()); + GameRegistry.registerItem(syringe_metal_psycho, syringe_metal_psycho.getUnlocalizedName()); + GameRegistry.registerItem(syringe_metal_super, syringe_metal_super.getUnlocalizedName()); + GameRegistry.registerItem(syringe_taint, syringe_taint.getUnlocalizedName()); + GameRegistry.registerItem(syringe_mkunicorn, syringe_mkunicorn.getUnlocalizedName()); + GameRegistry.registerItem(med_bag, med_bag.getUnlocalizedName()); + GameRegistry.registerItem(iv_empty, iv_empty.getUnlocalizedName()); + GameRegistry.registerItem(iv_blood, iv_blood.getUnlocalizedName()); + GameRegistry.registerItem(iv_xp_empty, iv_xp_empty.getUnlocalizedName()); + GameRegistry.registerItem(iv_xp, iv_xp.getUnlocalizedName()); + GameRegistry.registerItem(radaway, radaway.getUnlocalizedName()); + GameRegistry.registerItem(radaway_strong, radaway_strong.getUnlocalizedName()); + GameRegistry.registerItem(radaway_flush, radaway_flush.getUnlocalizedName()); + GameRegistry.registerItem(radx, radx.getUnlocalizedName()); + GameRegistry.registerItem(siox, siox.getUnlocalizedName()); + GameRegistry.registerItem(pill_herbal, pill_herbal.getUnlocalizedName()); + GameRegistry.registerItem(pill_iodine, pill_iodine.getUnlocalizedName()); + GameRegistry.registerItem(xanax, xanax.getUnlocalizedName()); + GameRegistry.registerItem(fmn, fmn.getUnlocalizedName()); + GameRegistry.registerItem(five_htp, five_htp.getUnlocalizedName()); + GameRegistry.registerItem(plan_c, plan_c.getUnlocalizedName()); + GameRegistry.registerItem(pill_red, pill_red.getUnlocalizedName()); + GameRegistry.registerItem(stealth_boy, stealth_boy.getUnlocalizedName()); + GameRegistry.registerItem(gas_mask_filter, gas_mask_filter.getUnlocalizedName()); + GameRegistry.registerItem(gas_mask_filter_mono, gas_mask_filter_mono.getUnlocalizedName()); + GameRegistry.registerItem(gas_mask_filter_combo, gas_mask_filter_combo.getUnlocalizedName()); + GameRegistry.registerItem(gas_mask_filter_rag, gas_mask_filter_rag.getUnlocalizedName()); + GameRegistry.registerItem(gas_mask_filter_piss, gas_mask_filter_piss.getUnlocalizedName()); + GameRegistry.registerItem(jetpack_tank, jetpack_tank.getUnlocalizedName()); + GameRegistry.registerItem(gun_kit_1, gun_kit_1.getUnlocalizedName()); + GameRegistry.registerItem(gun_kit_2, gun_kit_2.getUnlocalizedName()); + + //Food + GameRegistry.registerItem(bomb_waffle, bomb_waffle.getUnlocalizedName()); + GameRegistry.registerItem(schnitzel_vegan, schnitzel_vegan.getUnlocalizedName()); + GameRegistry.registerItem(cotton_candy, cotton_candy.getUnlocalizedName()); + GameRegistry.registerItem(apple_lead, apple_lead.getUnlocalizedName()); + GameRegistry.registerItem(apple_schrabidium, apple_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(tem_flakes, tem_flakes.getUnlocalizedName()); + GameRegistry.registerItem(glowing_stew, glowing_stew.getUnlocalizedName()); + GameRegistry.registerItem(balefire_scrambled, balefire_scrambled.getUnlocalizedName()); + GameRegistry.registerItem(balefire_and_ham, balefire_and_ham.getUnlocalizedName()); + GameRegistry.registerItem(lemon, lemon.getUnlocalizedName()); + GameRegistry.registerItem(definitelyfood, definitelyfood.getUnlocalizedName()); + GameRegistry.registerItem(loops, loops.getUnlocalizedName()); + GameRegistry.registerItem(loop_stew, loop_stew.getUnlocalizedName()); + GameRegistry.registerItem(spongebob_macaroni, spongebob_macaroni.getUnlocalizedName()); + GameRegistry.registerItem(fooditem, fooditem.getUnlocalizedName()); + GameRegistry.registerItem(twinkie, twinkie.getUnlocalizedName()); + GameRegistry.registerItem(static_sandwich, static_sandwich.getUnlocalizedName()); + GameRegistry.registerItem(pudding, pudding.getUnlocalizedName()); + GameRegistry.registerItem(pancake, pancake.getUnlocalizedName()); + GameRegistry.registerItem(nugget, nugget.getUnlocalizedName()); + GameRegistry.registerItem(peas, peas.getUnlocalizedName()); + GameRegistry.registerItem(marshmallow, marshmallow.getUnlocalizedName()); + GameRegistry.registerItem(cheese, cheese.getUnlocalizedName()); + GameRegistry.registerItem(quesadilla, quesadilla.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_meat, glyphid_meat.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_meat_grilled, glyphid_meat_grilled.getUnlocalizedName()); + GameRegistry.registerItem(egg_glyphid, egg_glyphid.getUnlocalizedName()); + GameRegistry.registerItem(med_ipecac, med_ipecac.getUnlocalizedName()); + GameRegistry.registerItem(med_ptsd, med_ptsd.getUnlocalizedName()); + GameRegistry.registerItem(canteen_vodka, canteen_vodka.getUnlocalizedName()); + GameRegistry.registerItem(canteen_fab, canteen_fab.getUnlocalizedName()); + GameRegistry.registerItem(mucho_mango, mucho_mango.getUnlocalizedName()); + GameRegistry.registerItem(chocolate, chocolate.getUnlocalizedName()); + + //Energy Drinks + GameRegistry.registerItem(can_empty, can_empty.getUnlocalizedName()); + GameRegistry.registerItem(can_smart, can_smart.getUnlocalizedName()); + GameRegistry.registerItem(can_creature, can_creature.getUnlocalizedName()); + GameRegistry.registerItem(can_redbomb, can_redbomb.getUnlocalizedName()); + GameRegistry.registerItem(can_mrsugar, can_mrsugar.getUnlocalizedName()); + GameRegistry.registerItem(can_overcharge, can_overcharge.getUnlocalizedName()); + GameRegistry.registerItem(can_luna, can_luna.getUnlocalizedName()); + GameRegistry.registerItem(can_bepis, can_bepis.getUnlocalizedName()); + GameRegistry.registerItem(can_breen, can_breen.getUnlocalizedName()); + GameRegistry.registerItem(can_mug, can_mug.getUnlocalizedName()); + + //Coffee + GameRegistry.registerItem(coffee, coffee.getUnlocalizedName()); + GameRegistry.registerItem(coffee_radium, coffee_radium.getUnlocalizedName()); + + //Cola + GameRegistry.registerItem(bottle_empty, bottle_empty.getUnlocalizedName()); + GameRegistry.registerItem(bottle_nuka, bottle_nuka.getUnlocalizedName()); + GameRegistry.registerItem(bottle_cherry, bottle_cherry.getUnlocalizedName()); + GameRegistry.registerItem(bottle_quantum, bottle_quantum.getUnlocalizedName()); + GameRegistry.registerItem(bottle_sparkle, bottle_sparkle.getUnlocalizedName()); + GameRegistry.registerItem(bottle_rad, bottle_rad.getUnlocalizedName()); + GameRegistry.registerItem(bottle2_empty, bottle2_empty.getUnlocalizedName()); + GameRegistry.registerItem(bottle2_korl, bottle2_korl.getUnlocalizedName()); + GameRegistry.registerItem(bottle2_fritz, bottle2_fritz.getUnlocalizedName()); + GameRegistry.registerItem(bottle2_korl_special, bottle2_korl_special.getUnlocalizedName()); + GameRegistry.registerItem(bottle2_fritz_special, bottle2_fritz_special.getUnlocalizedName()); + GameRegistry.registerItem(bottle_opener, bottle_opener.getUnlocalizedName()); + + //Flasks + GameRegistry.registerItem(flask_infusion, flask_infusion.getUnlocalizedName()); + + //Canned Food + GameRegistry.registerItem(canned_conserve, canned_conserve.getUnlocalizedName()); + + //Money + GameRegistry.registerItem(cap_nuka, cap_nuka.getUnlocalizedName()); + GameRegistry.registerItem(cap_quantum, cap_quantum.getUnlocalizedName()); + GameRegistry.registerItem(cap_sparkle, cap_sparkle.getUnlocalizedName()); + GameRegistry.registerItem(cap_rad, cap_rad.getUnlocalizedName()); + GameRegistry.registerItem(cap_korl, cap_korl.getUnlocalizedName()); + GameRegistry.registerItem(cap_fritz, cap_fritz.getUnlocalizedName()); + GameRegistry.registerItem(ring_pull, ring_pull.getUnlocalizedName()); + GameRegistry.registerItem(can_key, can_key.getUnlocalizedName()); + GameRegistry.registerItem(coin_creeper, coin_creeper.getUnlocalizedName()); + GameRegistry.registerItem(coin_radiation,coin_radiation.getUnlocalizedName()); + GameRegistry.registerItem(coin_maskman, coin_maskman.getUnlocalizedName()); + GameRegistry.registerItem(coin_worm, coin_worm.getUnlocalizedName()); + GameRegistry.registerItem(coin_ufo, coin_ufo.getUnlocalizedName()); + GameRegistry.registerItem(medal_liquidator, medal_liquidator.getUnlocalizedName()); + GameRegistry.registerItem(bottled_cloud, bottled_cloud.getUnlocalizedName()); + GameRegistry.registerItem(protection_charm, protection_charm.getUnlocalizedName()); + GameRegistry.registerItem(meteor_charm, meteor_charm.getUnlocalizedName()); + GameRegistry.registerItem(neutrino_lens, neutrino_lens.getUnlocalizedName()); + GameRegistry.registerItem(gas_tester, gas_tester.getUnlocalizedName()); + GameRegistry.registerItem(defuser_gold, defuser_gold.getUnlocalizedName()); + GameRegistry.registerItem(ballistic_gauntlet, ballistic_gauntlet.getUnlocalizedName()); + GameRegistry.registerItem(night_vision, night_vision.getUnlocalizedName()); + GameRegistry.registerItem(card_aos, card_aos.getUnlocalizedName()); + GameRegistry.registerItem(card_qos, card_qos.getUnlocalizedName()); + GameRegistry.registerItem(australium_iii, australium_iii.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery, armor_battery.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery_mk2, armor_battery_mk2.getUnlocalizedName()); + GameRegistry.registerItem(armor_battery_mk3, armor_battery_mk3.getUnlocalizedName()); + + //Chaos + GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); + GameRegistry.registerItem(cbt_device, cbt_device.getUnlocalizedName()); + GameRegistry.registerItem(cigarette, cigarette.getUnlocalizedName()); + GameRegistry.registerItem(crackpipe, crackpipe.getUnlocalizedName()); + GameRegistry.registerItem(bdcl, bdcl.getUnlocalizedName()); + + //Armor mods + GameRegistry.registerItem(attachment_mask, attachment_mask.getUnlocalizedName()); + GameRegistry.registerItem(attachment_mask_mono, attachment_mask_mono.getUnlocalizedName()); + GameRegistry.registerItem(back_tesla, back_tesla.getUnlocalizedName()); + GameRegistry.registerItem(servo_set, servo_set.getUnlocalizedName()); + GameRegistry.registerItem(servo_set_desh, servo_set_desh.getUnlocalizedName()); + GameRegistry.registerItem(pads_rubber, pads_rubber.getUnlocalizedName()); + GameRegistry.registerItem(pads_slime, pads_slime.getUnlocalizedName()); + GameRegistry.registerItem(pads_static, pads_static.getUnlocalizedName()); + GameRegistry.registerItem(cladding_paint, cladding_paint.getUnlocalizedName()); + GameRegistry.registerItem(cladding_rubber, cladding_rubber.getUnlocalizedName()); + GameRegistry.registerItem(cladding_lead, cladding_lead.getUnlocalizedName()); + GameRegistry.registerItem(cladding_desh, cladding_desh.getUnlocalizedName()); + GameRegistry.registerItem(cladding_ghiorsium, cladding_ghiorsium.getUnlocalizedName()); + GameRegistry.registerItem(cladding_iron, cladding_iron.getUnlocalizedName()); + GameRegistry.registerItem(cladding_obsidian, cladding_obsidian.getUnlocalizedName()); + GameRegistry.registerItem(insert_kevlar, insert_kevlar.getUnlocalizedName()); + GameRegistry.registerItem(insert_sapi, insert_sapi.getUnlocalizedName()); + GameRegistry.registerItem(insert_esapi, insert_esapi.getUnlocalizedName()); + GameRegistry.registerItem(insert_xsapi, insert_xsapi.getUnlocalizedName()); + GameRegistry.registerItem(insert_steel, insert_steel.getUnlocalizedName()); + GameRegistry.registerItem(insert_du, insert_du.getUnlocalizedName()); + GameRegistry.registerItem(insert_polonium, insert_polonium.getUnlocalizedName()); + GameRegistry.registerItem(insert_ghiorsium, insert_ghiorsium.getUnlocalizedName()); + GameRegistry.registerItem(insert_era, insert_era.getUnlocalizedName()); + GameRegistry.registerItem(insert_yharonite, insert_yharonite.getUnlocalizedName()); + GameRegistry.registerItem(insert_doxium, insert_doxium.getUnlocalizedName()); + GameRegistry.registerItem(armor_polish, armor_polish.getUnlocalizedName()); + GameRegistry.registerItem(bandaid, bandaid.getUnlocalizedName()); + GameRegistry.registerItem(serum, serum.getUnlocalizedName()); + GameRegistry.registerItem(quartz_plutonium, quartz_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(morning_glory, morning_glory.getUnlocalizedName()); + GameRegistry.registerItem(lodestone, lodestone.getUnlocalizedName()); + GameRegistry.registerItem(horseshoe_magnet, horseshoe_magnet.getUnlocalizedName()); + GameRegistry.registerItem(industrial_magnet, industrial_magnet.getUnlocalizedName()); + GameRegistry.registerItem(bathwater, bathwater.getUnlocalizedName()); + GameRegistry.registerItem(bathwater_mk2, bathwater_mk2.getUnlocalizedName()); + GameRegistry.registerItem(spider_milk, spider_milk.getUnlocalizedName()); + GameRegistry.registerItem(ink, ink.getUnlocalizedName()); + GameRegistry.registerItem(heart_piece, heart_piece.getUnlocalizedName()); + GameRegistry.registerItem(heart_container, heart_container.getUnlocalizedName()); + GameRegistry.registerItem(heart_booster, heart_booster.getUnlocalizedName()); + GameRegistry.registerItem(heart_fab, heart_fab.getUnlocalizedName()); + GameRegistry.registerItem(black_diamond, black_diamond.getUnlocalizedName()); + GameRegistry.registerItem(wd40, wd40.getUnlocalizedName()); + GameRegistry.registerItem(scrumpy, scrumpy.getUnlocalizedName()); + GameRegistry.registerItem(wild_p, wild_p.getUnlocalizedName()); + GameRegistry.registerItem(fabsols_vodka, fabsols_vodka.getUnlocalizedName()); + GameRegistry.registerItem(shackles, shackles.getUnlocalizedName()); + GameRegistry.registerItem(injector_5htp, injector_5htp.getUnlocalizedName()); + GameRegistry.registerItem(injector_knife, injector_knife.getUnlocalizedName()); + + //Vehicles + GameRegistry.registerItem(boat_rubber, boat_rubber.getUnlocalizedName()); + GameRegistry.registerItem(cart, cart.getUnlocalizedName()); + GameRegistry.registerItem(train, train.getUnlocalizedName()); + GameRegistry.registerItem(drone, drone.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_wireing, gadget_wireing.getUnlocalizedName()); + GameRegistry.registerItem(gadget_core, gadget_core.getUnlocalizedName()); + + //Little Boy + GameRegistry.registerItem(boy_shielding, boy_shielding.getUnlocalizedName()); + GameRegistry.registerItem(boy_target, boy_target.getUnlocalizedName()); + GameRegistry.registerItem(boy_bullet, boy_bullet.getUnlocalizedName()); + GameRegistry.registerItem(boy_propellant, boy_propellant.getUnlocalizedName()); + GameRegistry.registerItem(boy_igniter, boy_igniter.getUnlocalizedName());; + + //Fat Man + //GameRegistry.registerItem(man_explosive, man_explosive.getUnlocalizedName()); + GameRegistry.registerItem(man_igniter, man_igniter.getUnlocalizedName()); + GameRegistry.registerItem(man_core, man_core.getUnlocalizedName()); + + //Ivy Mike + GameRegistry.registerItem(mike_core, mike_core.getUnlocalizedName()); + GameRegistry.registerItem(mike_deut, mike_deut.getUnlocalizedName()); + GameRegistry.registerItem(mike_cooling_unit, mike_cooling_unit.getUnlocalizedName()); + + //Tsar Bomba + GameRegistry.registerItem(tsar_core, tsar_core.getUnlocalizedName()); + + //FLEIJA + GameRegistry.registerItem(fleija_igniter, fleija_igniter.getUnlocalizedName()); + GameRegistry.registerItem(fleija_propellant, fleija_propellant.getUnlocalizedName()); + GameRegistry.registerItem(fleija_core, fleija_core.getUnlocalizedName()); + + //Solinium + GameRegistry.registerItem(solinium_igniter, solinium_igniter.getUnlocalizedName()); + GameRegistry.registerItem(solinium_propellant, solinium_propellant.getUnlocalizedName()); + GameRegistry.registerItem(solinium_core, solinium_core.getUnlocalizedName()); + + //N2 + GameRegistry.registerItem(n2_charge, n2_charge.getUnlocalizedName()); + + //FSTBMB + GameRegistry.registerItem(egg_balefire_shard, egg_balefire_shard.getUnlocalizedName()); + GameRegistry.registerItem(egg_balefire, egg_balefire.getUnlocalizedName()); + + //Conventional Armor + GameRegistry.registerItem(goggles, goggles.getUnlocalizedName()); + GameRegistry.registerItem(ashglasses, ashglasses.getUnlocalizedName()); + GameRegistry.registerItem(gas_mask, gas_mask.getUnlocalizedName()); + GameRegistry.registerItem(gas_mask_m65, gas_mask_m65.getUnlocalizedName()); + GameRegistry.registerItem(gas_mask_mono, gas_mask_mono.getUnlocalizedName()); + GameRegistry.registerItem(gas_mask_olde, gas_mask_olde.getUnlocalizedName()); + GameRegistry.registerItem(mask_rag, mask_rag.getUnlocalizedName()); + GameRegistry.registerItem(mask_piss, mask_piss.getUnlocalizedName()); + //GameRegistry.registerItem(oxy_mask, oxy_mask.getUnlocalizedName()); + GameRegistry.registerItem(hat, hat.getUnlocalizedName()); + GameRegistry.registerItem(beta, beta.getUnlocalizedName()); + GameRegistry.registerItem(no9, no9.getUnlocalizedName()); + + GameRegistry.registerItem(steel_helmet, steel_helmet.getUnlocalizedName()); + GameRegistry.registerItem(steel_plate, steel_plate.getUnlocalizedName()); + GameRegistry.registerItem(steel_legs, steel_legs.getUnlocalizedName()); + GameRegistry.registerItem(steel_boots, steel_boots.getUnlocalizedName()); + GameRegistry.registerItem(titanium_helmet, titanium_helmet.getUnlocalizedName()); + GameRegistry.registerItem(titanium_plate, titanium_plate.getUnlocalizedName()); + GameRegistry.registerItem(titanium_legs, titanium_legs.getUnlocalizedName()); + GameRegistry.registerItem(titanium_boots, titanium_boots.getUnlocalizedName()); + GameRegistry.registerItem(alloy_helmet, alloy_helmet.getUnlocalizedName()); + GameRegistry.registerItem(alloy_plate, alloy_plate.getUnlocalizedName()); + GameRegistry.registerItem(alloy_legs, alloy_legs.getUnlocalizedName()); + GameRegistry.registerItem(alloy_boots, alloy_boots.getUnlocalizedName()); + + //Custom Rods + GameRegistry.registerItem(custom_tnt, custom_tnt.getUnlocalizedName()); + GameRegistry.registerItem(custom_nuke, custom_nuke.getUnlocalizedName()); + GameRegistry.registerItem(custom_hydro, custom_hydro.getUnlocalizedName()); + GameRegistry.registerItem(custom_amat, custom_amat.getUnlocalizedName()); + GameRegistry.registerItem(custom_dirty, custom_dirty.getUnlocalizedName()); + GameRegistry.registerItem(custom_schrab, custom_schrab.getUnlocalizedName()); + GameRegistry.registerItem(custom_fall, custom_fall.getUnlocalizedName()); + + //Power Armor + GameRegistry.registerItem(steamsuit_helmet, steamsuit_helmet.getUnlocalizedName()); + 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()); + GameRegistry.registerItem(t45_boots, t45_boots.getUnlocalizedName()); + GameRegistry.registerItem(ajr_helmet, ajr_helmet.getUnlocalizedName()); + GameRegistry.registerItem(ajr_plate, ajr_plate.getUnlocalizedName()); + GameRegistry.registerItem(ajr_legs, ajr_legs.getUnlocalizedName()); + GameRegistry.registerItem(ajr_boots, ajr_boots.getUnlocalizedName()); + GameRegistry.registerItem(ajro_helmet, ajro_helmet.getUnlocalizedName()); + GameRegistry.registerItem(ajro_plate, ajro_plate.getUnlocalizedName()); + GameRegistry.registerItem(ajro_legs, ajro_legs.getUnlocalizedName()); + GameRegistry.registerItem(ajro_boots, ajro_boots.getUnlocalizedName()); + GameRegistry.registerItem(rpa_helmet, rpa_helmet.getUnlocalizedName()); + GameRegistry.registerItem(rpa_plate, rpa_plate.getUnlocalizedName()); + GameRegistry.registerItem(rpa_legs, rpa_legs.getUnlocalizedName()); + GameRegistry.registerItem(rpa_boots, rpa_boots.getUnlocalizedName()); + GameRegistry.registerItem(bj_helmet, bj_helmet.getUnlocalizedName()); + GameRegistry.registerItem(bj_plate, bj_plate.getUnlocalizedName()); + GameRegistry.registerItem(bj_plate_jetpack, bj_plate_jetpack.getUnlocalizedName()); + GameRegistry.registerItem(bj_legs, bj_legs.getUnlocalizedName()); + GameRegistry.registerItem(bj_boots, bj_boots.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_helmet, envsuit_helmet.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_plate, envsuit_plate.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_legs, envsuit_legs.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_boots, envsuit_boots.getUnlocalizedName()); + GameRegistry.registerItem(hev_helmet, hev_helmet.getUnlocalizedName()); + GameRegistry.registerItem(hev_plate, hev_plate.getUnlocalizedName()); + GameRegistry.registerItem(hev_legs, hev_legs.getUnlocalizedName()); + GameRegistry.registerItem(hev_boots, hev_boots.getUnlocalizedName()); + GameRegistry.registerItem(fau_helmet, fau_helmet.getUnlocalizedName()); + GameRegistry.registerItem(fau_plate, fau_plate.getUnlocalizedName()); + GameRegistry.registerItem(fau_legs, fau_legs.getUnlocalizedName()); + GameRegistry.registerItem(fau_boots, fau_boots.getUnlocalizedName()); + GameRegistry.registerItem(dns_helmet, dns_helmet.getUnlocalizedName()); + GameRegistry.registerItem(dns_plate, dns_plate.getUnlocalizedName()); + GameRegistry.registerItem(dns_legs, dns_legs.getUnlocalizedName()); + GameRegistry.registerItem(dns_boots, dns_boots.getUnlocalizedName()); + GameRegistry.registerItem(taurun_helmet, taurun_helmet.getUnlocalizedName()); + GameRegistry.registerItem(taurun_plate, taurun_plate.getUnlocalizedName()); + GameRegistry.registerItem(taurun_legs, taurun_legs.getUnlocalizedName()); + GameRegistry.registerItem(taurun_boots, taurun_boots.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_helmet, trenchmaster_helmet.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_plate, trenchmaster_plate.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_legs, trenchmaster_legs.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_boots, trenchmaster_boots.getUnlocalizedName()); + + //Nobody will ever read this anyway, so it shouldn't matter. + GameRegistry.registerItem(chainsaw, chainsaw.getUnlocalizedName()); + GameRegistry.registerItem(igniter, igniter.getUnlocalizedName()); + GameRegistry.registerItem(detonator, detonator.getUnlocalizedName()); + GameRegistry.registerItem(detonator_multi, detonator_multi.getUnlocalizedName()); + GameRegistry.registerItem(detonator_laser, detonator_laser.getUnlocalizedName()); + GameRegistry.registerItem(detonator_deadman, detonator_deadman.getUnlocalizedName()); + GameRegistry.registerItem(detonator_de, detonator_de.getUnlocalizedName()); + GameRegistry.registerItem(bomb_caller, bomb_caller.getUnlocalizedName()); + GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName()); + GameRegistry.registerItem(anchor_remote, anchor_remote.getUnlocalizedName()); + GameRegistry.registerItem(defuser, defuser.getUnlocalizedName()); + GameRegistry.registerItem(reacher, reacher.getUnlocalizedName()); + GameRegistry.registerItem(bismuth_tool, bismuth_tool.getUnlocalizedName()); + GameRegistry.registerItem(meltdown_tool, meltdown_tool.getUnlocalizedName()); + + GameRegistry.registerItem(hazmat_helmet, hazmat_helmet.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_plate, hazmat_plate.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_legs, hazmat_legs.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_boots, hazmat_boots.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_helmet_red, hazmat_helmet_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_plate_red, hazmat_plate_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_legs_red, hazmat_legs_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_boots_red, hazmat_boots_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_helmet_grey, hazmat_helmet_grey.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_plate_grey, hazmat_plate_grey.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_legs_grey, hazmat_legs_grey.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_boots_grey, hazmat_boots_grey.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_paa_helmet, hazmat_paa_helmet.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_paa_plate, hazmat_paa_plate.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_paa_legs, hazmat_paa_legs.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_paa_boots, hazmat_paa_boots.getUnlocalizedName()); + GameRegistry.registerItem(liquidator_helmet, liquidator_helmet.getUnlocalizedName()); + GameRegistry.registerItem(liquidator_plate, liquidator_plate.getUnlocalizedName()); + GameRegistry.registerItem(liquidator_legs, liquidator_legs.getUnlocalizedName()); + GameRegistry.registerItem(liquidator_boots, liquidator_boots.getUnlocalizedName()); + GameRegistry.registerItem(cmb_helmet, cmb_helmet.getUnlocalizedName()); + GameRegistry.registerItem(cmb_plate, cmb_plate.getUnlocalizedName()); + GameRegistry.registerItem(cmb_legs, cmb_legs.getUnlocalizedName()); + GameRegistry.registerItem(cmb_boots, cmb_boots.getUnlocalizedName()); + GameRegistry.registerItem(paa_plate, paa_plate.getUnlocalizedName()); + GameRegistry.registerItem(paa_legs, paa_legs.getUnlocalizedName()); + GameRegistry.registerItem(paa_boots, paa_boots.getUnlocalizedName()); + GameRegistry.registerItem(asbestos_helmet, asbestos_helmet.getUnlocalizedName()); + GameRegistry.registerItem(asbestos_plate, asbestos_plate.getUnlocalizedName()); + GameRegistry.registerItem(asbestos_legs, asbestos_legs.getUnlocalizedName()); + GameRegistry.registerItem(asbestos_boots, asbestos_boots.getUnlocalizedName()); + GameRegistry.registerItem(security_helmet, security_helmet.getUnlocalizedName()); + GameRegistry.registerItem(security_plate, security_plate.getUnlocalizedName()); + GameRegistry.registerItem(security_legs, security_legs.getUnlocalizedName()); + GameRegistry.registerItem(security_boots, security_boots.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_helmet, cobalt_helmet.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_plate, cobalt_plate.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_legs, cobalt_legs.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_boots, cobalt_boots.getUnlocalizedName()); + GameRegistry.registerItem(starmetal_helmet, starmetal_helmet.getUnlocalizedName()); + GameRegistry.registerItem(starmetal_plate, starmetal_plate.getUnlocalizedName()); + GameRegistry.registerItem(starmetal_legs, starmetal_legs.getUnlocalizedName()); + GameRegistry.registerItem(starmetal_boots, starmetal_boots.getUnlocalizedName()); + GameRegistry.registerItem(zirconium_legs, zirconium_legs.getUnlocalizedName()); + GameRegistry.registerItem(dnt_helmet, dnt_helmet.getUnlocalizedName()); + GameRegistry.registerItem(dnt_plate, dnt_plate.getUnlocalizedName()); + GameRegistry.registerItem(dnt_legs, dnt_legs.getUnlocalizedName()); + GameRegistry.registerItem(dnt_boots, dnt_boots.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_helmet, schrabidium_helmet.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_plate, schrabidium_plate.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_legs, schrabidium_legs.getUnlocalizedName()); + GameRegistry.registerItem(schrabidium_boots, schrabidium_boots.getUnlocalizedName()); + GameRegistry.registerItem(bismuth_helmet, bismuth_helmet.getUnlocalizedName()); + GameRegistry.registerItem(bismuth_plate, bismuth_plate.getUnlocalizedName()); + GameRegistry.registerItem(bismuth_legs, bismuth_legs.getUnlocalizedName()); + GameRegistry.registerItem(bismuth_boots, bismuth_boots.getUnlocalizedName()); + GameRegistry.registerItem(euphemium_helmet, euphemium_helmet.getUnlocalizedName()); + GameRegistry.registerItem(euphemium_plate, euphemium_plate.getUnlocalizedName()); + GameRegistry.registerItem(euphemium_legs, euphemium_legs.getUnlocalizedName()); + GameRegistry.registerItem(euphemium_boots, euphemium_boots.getUnlocalizedName()); + GameRegistry.registerItem(robes_helmet, robes_helmet.getUnlocalizedName()); + GameRegistry.registerItem(robes_plate, robes_plate.getUnlocalizedName()); + GameRegistry.registerItem(robes_legs, robes_legs.getUnlocalizedName()); + GameRegistry.registerItem(robes_boots, robes_boots.getUnlocalizedName()); + GameRegistry.registerItem(apple_euphemium, apple_euphemium.getUnlocalizedName()); + GameRegistry.registerItem(watch, watch.getUnlocalizedName()); + GameRegistry.registerItem(mask_of_infamy, mask_of_infamy.getUnlocalizedName()); + GameRegistry.registerItem(jackt, jackt.getUnlocalizedName()); + GameRegistry.registerItem(jackt2, jackt2.getUnlocalizedName()); + GameRegistry.registerItem(jetpack_fly, jetpack_fly.getUnlocalizedName()); + GameRegistry.registerItem(jetpack_break, jetpack_break.getUnlocalizedName()); + GameRegistry.registerItem(jetpack_vector, jetpack_vector.getUnlocalizedName()); + GameRegistry.registerItem(jetpack_boost, jetpack_boost.getUnlocalizedName()); + GameRegistry.registerItem(wings_limp, wings_limp.getUnlocalizedName()); + GameRegistry.registerItem(wings_murk, wings_murk.getUnlocalizedName()); + //GameRegistry.registerItem(australium_iv, australium_iv.getUnlocalizedName()); + //GameRegistry.registerItem(australium_v, australium_v.getUnlocalizedName()); + + //Expensive Ass Shit + GameRegistry.registerItem(crystal_horn, crystal_horn.getUnlocalizedName()); + GameRegistry.registerItem(crystal_charred, crystal_charred.getUnlocalizedName()); + + //OP Tools + GameRegistry.registerItem(wand, wand.getUnlocalizedName()); + GameRegistry.registerItem(wand_s, wand_s.getUnlocalizedName()); + GameRegistry.registerItem(wand_d, wand_d.getUnlocalizedName()); + GameRegistry.registerItem(structure_single, structure_single.getUnlocalizedName()); + GameRegistry.registerItem(structure_solid, structure_solid.getUnlocalizedName()); + GameRegistry.registerItem(structure_pattern, structure_pattern.getUnlocalizedName()); + GameRegistry.registerItem(structure_randomized, structure_randomized.getUnlocalizedName()); + GameRegistry.registerItem(structure_randomly, structure_randomly.getUnlocalizedName()); + GameRegistry.registerItem(structure_custommachine, structure_custommachine.getUnlocalizedName()); + GameRegistry.registerItem(rod_of_discord, rod_of_discord.getUnlocalizedName()); + GameRegistry.registerItem(polaroid, polaroid.getUnlocalizedName()); + GameRegistry.registerItem(glitch, glitch.getUnlocalizedName()); + GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); + GameRegistry.registerItem(book_of_, book_of_.getUnlocalizedName()); + GameRegistry.registerItem(page_of_, page_of_.getUnlocalizedName()); + GameRegistry.registerItem(book_lemegeton, book_lemegeton.getUnlocalizedName()); + GameRegistry.registerItem(burnt_bark, burnt_bark.getUnlocalizedName()); + + //Kits + GameRegistry.registerItem(nuke_starter_kit, nuke_starter_kit.getUnlocalizedName()); + GameRegistry.registerItem(nuke_advanced_kit, nuke_advanced_kit.getUnlocalizedName()); + GameRegistry.registerItem(nuke_commercially_kit, nuke_commercially_kit.getUnlocalizedName()); + GameRegistry.registerItem(nuke_electric_kit, nuke_electric_kit.getUnlocalizedName()); + GameRegistry.registerItem(gadget_kit, gadget_kit.getUnlocalizedName()); + GameRegistry.registerItem(boy_kit, boy_kit.getUnlocalizedName()); + GameRegistry.registerItem(man_kit, man_kit.getUnlocalizedName()); + GameRegistry.registerItem(mike_kit, mike_kit.getUnlocalizedName()); + GameRegistry.registerItem(tsar_kit, tsar_kit.getUnlocalizedName()); + GameRegistry.registerItem(prototype_kit, prototype_kit.getUnlocalizedName()); + GameRegistry.registerItem(fleija_kit, fleija_kit.getUnlocalizedName()); + GameRegistry.registerItem(solinium_kit, solinium_kit.getUnlocalizedName()); + GameRegistry.registerItem(multi_kit, multi_kit.getUnlocalizedName()); + GameRegistry.registerItem(custom_kit, custom_kit.getUnlocalizedName()); + GameRegistry.registerItem(missile_kit, missile_kit.getUnlocalizedName()); + GameRegistry.registerItem(grenade_kit, grenade_kit.getUnlocalizedName()); + GameRegistry.registerItem(t45_kit, t45_kit.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_kit, hazmat_kit.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_red_kit, hazmat_red_kit.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_grey_kit, hazmat_grey_kit.getUnlocalizedName()); + GameRegistry.registerItem(kit_custom, kit_custom.getUnlocalizedName()); + GameRegistry.registerItem(euphemium_kit, euphemium_kit.getUnlocalizedName()); + GameRegistry.registerItem(legacy_toolbox, legacy_toolbox.getUnlocalizedName()); + GameRegistry.registerItem(toolbox, toolbox.getUnlocalizedName()); + GameRegistry.registerItem(letter, letter.getUnlocalizedName()); + + //Misile Loot Boxes + GameRegistry.registerItem(loot_10, loot_10.getUnlocalizedName()); + GameRegistry.registerItem(loot_15, loot_15.getUnlocalizedName()); + GameRegistry.registerItem(loot_misc, loot_misc.getUnlocalizedName()); + + //THIS is a bucket. + GameRegistry.registerItem(bucket_mud, bucket_mud.getUnlocalizedName()); + GameRegistry.registerItem(bucket_acid, bucket_acid.getUnlocalizedName()); + GameRegistry.registerItem(bucket_toxic, bucket_toxic.getUnlocalizedName()); + GameRegistry.registerItem(bucket_schrabidic_acid, bucket_schrabidic_acid.getUnlocalizedName()); + GameRegistry.registerItem(bucket_sulfuric_acid, bucket_sulfuric_acid.getUnlocalizedName()); + + //Door Items + GameRegistry.registerItem(door_metal, door_metal.getUnlocalizedName()); + GameRegistry.registerItem(door_office, door_office.getUnlocalizedName()); + GameRegistry.registerItem(door_bunker, door_bunker.getUnlocalizedName()); + GameRegistry.registerItem(door_red, door_red.getUnlocalizedName()); + GameRegistry.registerItem(sliding_blast_door_skin, sliding_blast_door_skin.getUnlocalizedName()); + + //Records + GameRegistry.registerItem(record_lc, record_lc.getUnlocalizedName()); + GameRegistry.registerItem(record_ss, record_ss.getUnlocalizedName()); + GameRegistry.registerItem(record_vc, record_vc.getUnlocalizedName()); + GameRegistry.registerItem(record_glass, record_glass.getUnlocalizedName()); + + //wow we're far down the item registry, is this the cellar? + GameRegistry.registerItem(book_guide, book_guide.getUnlocalizedName()); + GameRegistry.registerItem(book_lore, book_lore.getUnlocalizedName()); + GameRegistry.registerItem(holotape_image, holotape_image.getUnlocalizedName()); + GameRegistry.registerItem(holotape_damaged, holotape_damaged.getUnlocalizedName()); + GameRegistry.registerItem(clay_tablet, clay_tablet.getUnlocalizedName()); + + //Technical Items + GameRegistry.registerItem(chlorine1, chlorine1.getUnlocalizedName()); + GameRegistry.registerItem(chlorine2, chlorine2.getUnlocalizedName()); + GameRegistry.registerItem(chlorine3, chlorine3.getUnlocalizedName()); + GameRegistry.registerItem(chlorine4, chlorine4.getUnlocalizedName()); + GameRegistry.registerItem(chlorine5, chlorine5.getUnlocalizedName()); + GameRegistry.registerItem(chlorine6, chlorine6.getUnlocalizedName()); + GameRegistry.registerItem(chlorine7, chlorine7.getUnlocalizedName()); + GameRegistry.registerItem(chlorine8, chlorine8.getUnlocalizedName()); + GameRegistry.registerItem(pc1, pc1.getUnlocalizedName()); + GameRegistry.registerItem(pc2, pc2.getUnlocalizedName()); + GameRegistry.registerItem(pc3, pc3.getUnlocalizedName()); + GameRegistry.registerItem(pc4, pc4.getUnlocalizedName()); + GameRegistry.registerItem(pc5, pc5.getUnlocalizedName()); + GameRegistry.registerItem(pc6, pc6.getUnlocalizedName()); + GameRegistry.registerItem(pc7, pc7.getUnlocalizedName()); + GameRegistry.registerItem(pc8, pc8.getUnlocalizedName()); + GameRegistry.registerItem(cloud1, cloud1.getUnlocalizedName()); + GameRegistry.registerItem(cloud2, cloud2.getUnlocalizedName()); + GameRegistry.registerItem(cloud3, cloud3.getUnlocalizedName()); + GameRegistry.registerItem(cloud4, cloud4.getUnlocalizedName()); + GameRegistry.registerItem(cloud5, cloud5.getUnlocalizedName()); + GameRegistry.registerItem(cloud6, cloud6.getUnlocalizedName()); + GameRegistry.registerItem(cloud7, cloud7.getUnlocalizedName()); + GameRegistry.registerItem(cloud8, cloud8.getUnlocalizedName()); + GameRegistry.registerItem(orange1, orange1.getUnlocalizedName()); + GameRegistry.registerItem(orange2, orange2.getUnlocalizedName()); + GameRegistry.registerItem(orange3, orange3.getUnlocalizedName()); + GameRegistry.registerItem(orange4, orange4.getUnlocalizedName()); + GameRegistry.registerItem(orange5, orange5.getUnlocalizedName()); + GameRegistry.registerItem(orange6, orange6.getUnlocalizedName()); + GameRegistry.registerItem(orange7, orange7.getUnlocalizedName()); + GameRegistry.registerItem(orange8, orange8.getUnlocalizedName()); + GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); + GameRegistry.registerItem(achievement_icon, achievement_icon.getUnlocalizedName()); + GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); + GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); + GameRegistry.registerItem(bob_chemistry, bob_chemistry.getUnlocalizedName()); + GameRegistry.registerItem(bob_oil, bob_oil.getUnlocalizedName()); + GameRegistry.registerItem(bob_nuclear, bob_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); + GameRegistry.registerItem(memory, memory.getUnlocalizedName()); + GameRegistry.registerItem(conveyor_wand, conveyor_wand.getUnlocalizedName()); + } + + public static void addRemap(String unloc, Item item, Enum sub) { + addRemap(unloc, item, sub.ordinal()); + } + + public static void addRemap(String unloc, Item item, int meta) { + Item remap = new ItemRemap(item, meta).setUnlocalizedName(unloc).setTextureName(RefStrings.MODID + ":plate_armor_titanium"); + GameRegistry.registerItem(remap, remap.getUnlocalizedName()); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java index f54f47446..de6cafdb4 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java @@ -1,11 +1,11 @@ package com.hbm.items.tool; -import java.util.ArrayList; import java.util.List; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; -import com.hbm.handler.WeaponAbility; +import com.hbm.handler.ability.AvailableAbilities; +import com.hbm.handler.ability.IWeaponAbility; import com.hbm.items.ModItems; import cpw.mods.fml.relauncher.Side; @@ -19,13 +19,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.util.EnumChatFormatting; -public class ItemSwordAbility extends ItemSword implements IItemWithAbility { +public class ItemSwordAbility extends ItemSword { private EnumRarity rarity = EnumRarity.common; // was there a reason for this to be private? protected float damage; protected double movement; - private List hitAbility = new ArrayList(); + private AvailableAbilities hitAbilities = new AvailableAbilities(); public ItemSwordAbility(float damage, double movement, ToolMaterial material) { super(material); @@ -33,8 +33,8 @@ public class ItemSwordAbility extends ItemSword implements IItemWithAbility { this.movement = movement; } - public ItemSwordAbility addHitAbility(WeaponAbility weaponAbility) { - this.hitAbility.add(weaponAbility); + public ItemSwordAbility addHitAbility(IWeaponAbility weaponAbility, int level) { + this.hitAbilities.addAbility(weaponAbility, level); return this; } @@ -50,15 +50,15 @@ public class ItemSwordAbility extends ItemSword implements IItemWithAbility { public boolean hitEntity(ItemStack stack, EntityLivingBase victim, EntityLivingBase attacker) { - if(!attacker.worldObj.isRemote && !this.hitAbility.isEmpty() && attacker instanceof EntityPlayer && canOperate(stack)) { + if(!attacker.worldObj.isRemote && attacker instanceof EntityPlayer && canOperate(stack)) { // hacky hacky hack if(this == ModItems.mese_gavel) attacker.worldObj.playSoundAtEntity(victim, "hbm:weapon.whack", 3.0F, 1.F); - for(WeaponAbility ability : this.hitAbility) { - ability.onHit(attacker.worldObj, (EntityPlayer) attacker, victim, this); - } + this.hitAbilities.get().forEach((ability, level) -> { + ((IWeaponAbility)ability).onHit(level, attacker.worldObj, (EntityPlayer) attacker, victim, this); + }); } stack.damageItem(1, attacker); @@ -77,23 +77,10 @@ public class ItemSwordAbility extends ItemSword implements IItemWithAbility { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - if(!this.hitAbility.isEmpty()) { - - list.add("Weapon modifiers: "); - - for(WeaponAbility ability : this.hitAbility) { - list.add(" " + EnumChatFormatting.RED + ability.getFullName()); - } - } + hitAbilities.addInformation(list); } protected boolean canOperate(ItemStack stack) { return true; } - - @Override - public boolean isShears(ItemStack stack) { - return false; - } } diff --git a/src/main/resources/assets/hbm/textures/gui/tool/gui_tool_ability.png b/src/main/resources/assets/hbm/textures/gui/tool/gui_tool_ability.png index 04e94e87826698d1ddda65718545601c72a63bb8..6b1a5c68b8894c7926c73afd222f60f424a217b9 100644 GIT binary patch literal 4455 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 literal 4131 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 Y+%?sns|xME13Sgm%F&W|!SCkZ0a)dVX8-^I From c1908637852f5896c628eb49ed173187eb4086b7 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sat, 17 May 2025 21:55:23 +0300 Subject: [PATCH 035/181] Reimplement ItemToolAbility I'll be very impressed if it works correctly right away. But, to my credit, it does compile --- .../java/com/hbm/handler/ToolAbility.java | 622 ------------------ .../java/com/hbm/handler/WeaponAbility.java | 369 ----------- .../handler/ability/AvailableAbilities.java | 43 +- .../hbm/handler/ability/IToolAreaAbility.java | 28 +- .../handler/ability/IToolHarvestAbility.java | 16 +- .../hbm/handler/ability/IWeaponAbility.java | 12 +- .../com/hbm/handler/ability/ToolPreset.java | 76 ++- .../inventory/gui/GUIScreenToolAbility.java | 203 +++--- src/main/java/com/hbm/items/ModItems.java | 451 ++++++------- .../com/hbm/items/tool/IItemWithAbility.java | 181 ----- .../com/hbm/items/tool/ItemSwordAbility.java | 12 +- .../com/hbm/items/tool/ItemToolAbility.java | 369 ++++++++--- 12 files changed, 730 insertions(+), 1652 deletions(-) delete mode 100644 src/main/java/com/hbm/handler/ToolAbility.java delete mode 100644 src/main/java/com/hbm/handler/WeaponAbility.java delete mode 100644 src/main/java/com/hbm/items/tool/IItemWithAbility.java diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java deleted file mode 100644 index e41813af1..000000000 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ /dev/null @@ -1,622 +0,0 @@ -package com.hbm.handler; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import com.hbm.config.ToolConfig; -import com.hbm.explosion.ExplosionNT; -import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.recipes.CentrifugeRecipes; -import com.hbm.inventory.recipes.CrystallizerRecipes; -import com.hbm.inventory.recipes.CrystallizerRecipes.CrystallizerRecipe; -import com.hbm.inventory.recipes.ShredderRecipes; -import com.hbm.items.ModItems; -import com.hbm.items.tool.IItemWithAbility; -import com.hbm.util.EnchantmentUtil; - -import net.minecraft.block.Block; -import net.minecraft.client.resources.I18n; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public abstract class ToolAbility { - - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { return false; } - public abstract String getName(); - public abstract String getFullName(); - public abstract String getExtension(); - public abstract boolean isAllowed(); - - public static class RecursionAbility extends ToolAbility { - - int radius; - - public RecursionAbility(int radius) { - this.radius = radius; - } - - private Set pos = new HashSet(); - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - Block b = world.getBlock(x, y, z); - - if(b == Blocks.stone && !ToolConfig.recursiveStone) - return false; - if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) - return false; - - pos.clear(); - - recurse(world, x, y, z, x, y, z, player, tool, 0); - - return false; - } - - private static final List offsets = new ArrayList<>(3*3*3-1); - - static { - for (int dx = -1; dx <= 1; dx++) { - for (int dy = -1; dy <= 1; dy++) { - for (int dz = -1; dz <= 1; dz++) { - if (dx != 0 || dy != 0 || dz != 0) { - offsets.add(new ThreeInts(dx, dy, dz)); - } - } - } - } - } - - private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth) { - - List shuffledOffsets = new ArrayList<>(offsets); - Collections.shuffle(shuffledOffsets); - - for(ThreeInts offset : shuffledOffsets) { - breakExtra(world, x + offset.x, y + offset.y, z + offset.z, refX, refY, refZ, player, tool, depth); - } - } - - private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth) { - - if(pos.contains(new ThreeInts(x, y, z))) - return; - - depth += 1; - - if(depth > ToolConfig.recursionDepth) - return; - - pos.add(new ThreeInts(x, y, z)); - - //don't lose the ref block just yet - if(x == refX && y == refY && z == refZ) - return; - - if(Vec3.createVectorHelper(x - refX, y - refY, z - refZ).lengthVector() > radius) - return; - - Block b = world.getBlock(x, y, z); - Block ref = world.getBlock(refX, refY, refZ); - int meta = world.getBlockMetadata(x, y, z); - int refMeta = world.getBlockMetadata(refX, refY, refZ); - - if(!isSameBlock(b, ref)) - return; - - if(meta != refMeta) - return; - - if(player.getHeldItem() == null) - return; - - tool.breakExtraBlock(world, x, y, z, player, refX, refY, refZ); - - recurse(world, x, y, z, refX, refY, refZ, player, tool, depth); - } - - 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() { - return "tool.ability.recursion"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + getExtension(); - } - - @Override - public String getExtension() { - return " (" + radius + ")"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityVein; - } - } - - public static class HammerAbility extends ToolAbility { - - int range; - - public HammerAbility(int range) { - this.range = range; - } - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - for(int a = x - range; a <= x + range; a++) { - for(int b = y - range; b <= y + range; b++) { - for(int c = z - range; c <= z + range; c++) { - - if(a == x && b == y && c == z) - continue; - - tool.breakExtraBlock(world, a, b ,c, player, x, y, z); - } - } - } - - return false; - } - - @Override - public String getName() { - return "tool.ability.hammer"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + getExtension(); - } - - @Override - public String getExtension() { - return " (" + range + ")"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityHammer; - } - } - - public static class HammerSilkAbility extends ToolAbility { - - int range; - - public HammerSilkAbility(int range) { - this.range = range; - } - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - if(EnchantmentHelper.getSilkTouchModifier(player) || player.getHeldItem() == null) - return false; - - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1); - - for(int a = x - range; a <= x + range; a++) { - for(int b = y - range; b <= y + range; b++) { - for(int c = z - range; c <= z + range; c++) { - - if(a == x && b == y && c == z) - continue; - - tool.breakExtraBlock(world, a, b ,c, player, x, y, z); - } - } - } - if(player instanceof EntityPlayerMP) - IItemWithAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); - - EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); - - return false; - - } - - @Override - public String getName() { - return "tool.ability.hammersilk"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + getExtension(); - } - - @Override - public String getExtension() { - return " (" + range + ")"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityHammer; - } - } - - public static class SilkAbility extends ToolAbility { - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - if(EnchantmentHelper.getSilkTouchModifier(player) || player.getHeldItem() == null) - return false; - - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1); - - if(player instanceof EntityPlayerMP) - IItemWithAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); - - EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); - - return true; - } - - @Override - public String getName() { - return "tool.ability.silktouch"; - } - - @Override - public String getFullName() { - return I18n.format(getName()); - } - - @Override - public String getExtension() { - return ""; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilitySilk; - } - } - - public static class LuckAbility extends ToolAbility { - - int luck; - - public LuckAbility(int luck) { - this.luck = luck; - } - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - if(EnchantmentHelper.getFortuneModifier(player) > 0 || player.getHeldItem() == null) - return false; - - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, luck); - - if(player instanceof EntityPlayerMP) - IItemWithAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); - - EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); - - return true; - } - - @Override - public String getName() { - return "tool.ability.luck"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + getExtension(); - } - - @Override - public String getExtension() { - return " (" + luck + ")"; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityLuck; - } - } - - public static class SmelterAbility extends ToolAbility { - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - List drops = block.getDrops(world, x, y, z, world.getBlockMetadata(x, y, z), 0); - - boolean doesSmelt = false; - - for(int i = 0; i < drops.size(); i++) { - ItemStack stack = drops.get(i).copy(); - ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(stack); - - if(result != null) { - result = result.copy(); - result.stackSize *= stack.stackSize; - drops.set(i, result); - doesSmelt = true; - } - } - - if(doesSmelt) { - world.setBlockToAir(x, y, z); - player.getHeldItem().damageItem(1, player); - - for(ItemStack stack : drops) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); - } - - return false; - } - - @Override - public String getName() { - return "tool.ability.smelter"; - } - - @Override - public String getFullName() { - return I18n.format(getName()); - } - - @Override - public String getExtension() { - return ""; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityFurnace; - } - } - - public static class ShredderAbility extends ToolAbility { - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - ItemStack stack = new ItemStack(block, 1, meta); - ItemStack result = ShredderRecipes.getShredderResult(stack); - - if(result != null && result.getItem() != ModItems.scrap) { - world.setBlockToAir(x, y, z); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); - player.getHeldItem().damageItem(1, player); - } - - return false; - } - - @Override - public String getName() { - return "tool.ability.shredder"; - } - - @Override - public String getFullName() { - return I18n.format(getName()); - } - - @Override - public String getExtension() { - return ""; - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityShredder; - } - } - - public static class CentrifugeAbility extends ToolAbility { - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - ItemStack stack = new ItemStack(block, 1, meta); - ItemStack[] result = CentrifugeRecipes.getOutput(stack); - - if(result != null) { - world.setBlockToAir(x, y, z); - player.getHeldItem().damageItem(1, player); - - for(ItemStack st : result) { - if(st != null) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, st.copy())); - } - } - - return false; - } - - @Override - public String getExtension() { - return ""; - } - - @Override - public String getName() { - return "tool.ability.centrifuge"; - } - - @Override - public String getFullName() { - return I18n.format(getName()); - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityCentrifuge; - } - } - - public static class CrystallizerAbility extends ToolAbility { - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - ItemStack stack = new ItemStack(block, 1, meta); - CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.PEROXIDE); - - if(result != null) { - world.setBlockToAir(x, y, z); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.output.copy())); - player.getHeldItem().damageItem(1, player); - } - - return false; - } - - @Override - public String getExtension() { - return ""; - } - - @Override - public String getName() { - return "tool.ability.crystallizer"; - } - - @Override - public String getFullName() { - return I18n.format(getName()); - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityCrystallizer; - } - } - - public static class MercuryAbility extends ToolAbility { - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - int mercury = 0; - - if(block == Blocks.redstone_ore) - mercury = player.getRNG().nextInt(5) + 4; - if(block == Blocks.redstone_block) - mercury = player.getRNG().nextInt(7) + 8; - - if(mercury > 0) { - world.setBlockToAir(x, y, z); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury))); - player.getHeldItem().damageItem(1, player); - } - - return false; - } - - @Override - public String getExtension() { - return ""; - } - - @Override - public String getName() { - return "tool.ability.mercury"; - } - - @Override - public String getFullName() { - return I18n.format(getName()); - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityMercury; - } - } - - public static class ExplosionAbility extends ToolAbility { - - float strength; - - public ExplosionAbility(float strength) { - this.strength = strength; - } - - @Override - public boolean onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, IItemWithAbility tool) { - - ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); - ex.addAttrib(ExAttrib.ALLDROP); - ex.addAttrib(ExAttrib.NOHURT); - ex.addAttrib(ExAttrib.NOPARTICLE); - ex.doExplosionA(); - ex.doExplosionB(false); - - player.worldObj.createExplosion(player, x + 0.5, y + 0.5, z + 0.5, 0.1F, false); - - return true; - } - - @Override - public String getExtension() { - return " (" + strength + ")"; - } - - @Override - public String getName() { - return "tool.ability.explosion"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + getExtension(); - } - - @Override - public boolean isAllowed() { - return ToolConfig.abilityExplosion; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java deleted file mode 100644 index 54f490b46..000000000 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ /dev/null @@ -1,369 +0,0 @@ -package com.hbm.handler; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockBobble.BobbleType; -import com.hbm.handler.threading.PacketThreading; -import com.hbm.items.ModItems; -import com.hbm.items.tool.IItemWithAbility; -import com.hbm.lib.ModDamageSource; -import com.hbm.packet.toclient.AuxParticlePacketNT; -import com.hbm.potion.HbmPotion; -import com.hbm.util.ContaminationUtil; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; - -import com.hbm.util.ContaminationUtil.ContaminationType; -import com.hbm.util.ContaminationUtil.HazardType; - -import net.minecraft.block.Block; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityXPOrb; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityMagmaCube; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.monster.EntitySkeleton; -import net.minecraft.entity.monster.EntitySlime; -import net.minecraft.entity.monster.EntityZombie; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public abstract class WeaponAbility { - - public abstract void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool); - public abstract String getName(); - public abstract String getFullName(); - - public static class RadiationAbility extends WeaponAbility { - - float rad; - - public RadiationAbility(float rad) { - this.rad = rad; - } - - @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - - if(victim instanceof EntityLivingBase) - ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, rad); - } - - @Override - public String getName() { - return "weapon.ability.radiation"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + " (" + rad + ")"; - } - } - - public static class VampireAbility extends WeaponAbility { - - float amount; - - public VampireAbility(float amount) { - this.amount = amount; - } - - @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - - if(victim instanceof EntityLivingBase) { - - EntityLivingBase living = (EntityLivingBase) victim; - if(living.getHealth() <= 0) return; - living.setHealth(living.getHealth() - amount); - if(living.getHealth() <= 0) living.onDeath(DamageSource.magic); - player.heal(amount); - } - } - - @Override - public String getName() { - return "weapon.ability.vampire"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + " (" + amount + ")"; - } - } - - public static class StunAbility extends WeaponAbility { - - int duration; - - public StunAbility(int duration) { - this.duration = duration; - } - - @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - - if(victim instanceof EntityLivingBase) { - - EntityLivingBase living = (EntityLivingBase) victim; - - living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, duration * 20, 4)); - living.addPotionEffect(new PotionEffect(Potion.weakness.id, duration * 20, 4)); - } - } - - @Override - public String getName() { - return "weapon.ability.stun"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + " (" + duration + ")"; - } - } - - public static class BlendAbility extends WeaponAbility { - - int divider; - - public BlendAbility(int divider) { - this.divider = divider; - } - - @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - - if(victim instanceof EntityLivingBase) { - - EntityLivingBase living = (EntityLivingBase) victim; - - - if(living.getHealth() <= 0.0F) { - int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health - world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "mob.zombie.woodbreak", 0.5F, 1.0F); - victim.attackEntityFrom(ModDamageSource.turbofan, 100); - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "giblets"); - data.setInteger("count", count * 4); - data.setInteger("ent", victim.getEntityId()); - data.setInteger("cDiv", 5); - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, victim.posX, victim.posY + victim.height * 0.5, victim.posZ), new TargetPoint(victim.dimension, victim.posX, victim.posY + victim.height * 0.5, victim.posZ, 150)); - living.entityDropItem(new ItemStack(ModItems.flesh, 10, 0), 0.0F); - } - } - } - - - - @Override - public String getName() { - return "weapon.ability.blender"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + " (1:" + divider + ")"; - } - } - - public static class PhosphorusAbility extends WeaponAbility { - - int duration; - - public PhosphorusAbility(int duration) { - this.duration = duration; - } - - @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - - if(victim instanceof EntityLivingBase) { - - EntityLivingBase living = (EntityLivingBase) victim; - - living.addPotionEffect(new PotionEffect(HbmPotion.phosphorus.id, duration * 20, 4)); - } - } - - @Override - public String getName() { - return "weapon.ability.phosphorus"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + " (" + duration + ")"; - } - } - - public static class FireAbility extends WeaponAbility { - - int duration; - - public FireAbility(int duration) { - this.duration = duration; - } - - @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - - if(victim instanceof EntityLivingBase) { - victim.setFire(duration); - } - } - - @Override - public String getName() { - return "weapon.ability.fire"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + " (" + duration + ")"; - } - } - - public static class ChainsawAbility extends WeaponAbility { - - int divider; - - public ChainsawAbility(int divider) { - this.divider = divider; - } - - @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - - if(victim instanceof EntityLivingBase) { - - EntityLivingBase living = (EntityLivingBase) victim; - - if(living.getHealth() <= 0.0F) { - - int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health - - for(int i = 0; i < count; i++) { - living.entityDropItem(new ItemStack(ModItems.nitra_small), 1); - world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); - } - - if(player instanceof EntityPlayerMP) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setInteger("count", count * 4); - data.setDouble("motion", 0.1D); - data.setString("mode", "blockdust"); - data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, living.posX, living.posY + living.height * 0.5, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); - } - - world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "hbm:weapon.chainsaw", 0.5F, 1.0F); - } - } - } - - @Override - public String getName() { - return "weapon.ability.chainsaw"; - } - - @Override - public String getFullName() { - return I18n.format(getName()) + " (1:" + divider + ")"; - } - } - - public static class BeheaderAbility extends WeaponAbility { - - @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - - if(victim instanceof EntityLivingBase && ((EntityLivingBase) victim).getHealth() <= 0.0F) { - - EntityLivingBase living = (EntityLivingBase) victim; - - if(living instanceof EntitySkeleton) { - - if(((EntitySkeleton)living).getSkeletonType() == 0) { - living.entityDropItem(new ItemStack(Items.skull, 1, 0), 0.0F); - } else { - - if(world.rand.nextInt(20) == 0) - living.entityDropItem(new ItemStack(Items.skull, 1, 1), 0.0F); - else - living.entityDropItem(new ItemStack(Items.coal, 3), 0.0F); - } - - } else if(living instanceof EntityZombie) { - living.entityDropItem(new ItemStack(Items.skull, 1, 2), 0.0F); - } else if(living instanceof EntityCreeper) { - living.entityDropItem(new ItemStack(Items.skull, 1, 4), 0.0F); - } else if(living instanceof EntityMagmaCube) { - living.entityDropItem(new ItemStack(Items.magma_cream, 3), 0.0F); - } else if(living instanceof EntitySlime) { - living.entityDropItem(new ItemStack(Items.slime_ball, 3), 0.0F); - } else if(living instanceof EntityPlayer) { - - ItemStack head = new ItemStack(Items.skull, 1, 3); - head.stackTagCompound = new NBTTagCompound(); - head.stackTagCompound.setString("SkullOwner", ((EntityPlayer) living).getDisplayName()); - living.entityDropItem(head, 0.0F); - } else { - living.entityDropItem(new ItemStack(Items.rotten_flesh, 3, 0), 0.0F); - living.entityDropItem(new ItemStack(Items.bone, 2, 0), 0.0F); - } - } - } - - @Override - public String getName() { - return "weapon.ability.beheader"; - } - - @Override - public String getFullName() { - return I18n.format(getName()); - } - } - - public static class BobbleAbility extends WeaponAbility { - - @Override - public void onHit(World world, EntityPlayer player, Entity victim, IItemWithAbility tool) { - - if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) { - - EntityMob mob = (EntityMob) victim; - - int chance = 1000; - - if(mob.getMaxHealth() > 20) { - chance = 750; - } - - if(world.rand.nextInt(chance) == 0) - mob.entityDropItem(new ItemStack(ModBlocks.bobblehead, 1, world.rand.nextInt(BobbleType.values().length - 1) + 1), 0.0F); - } - } - - @Override - public String getName() { - return "weapon.ability.bobble"; - } - - @Override - public String getFullName() { - return I18n.format(getName()); - } - } -} diff --git a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java index b95c21a55..0312d97b3 100644 --- a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java +++ b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java @@ -4,6 +4,9 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; + +import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -17,10 +20,18 @@ public class AvailableAbilities { public AvailableAbilities addAbility(IBaseAbility ability, int level) { if (level < 0 || level >= ability.levels()) { - throw new IllegalArgumentException("Illegal level " + level + " for ability " + ability.getName()); + MainRegistry.logger.warn("Illegal level " + level + " for ability " + ability.getName()); + level = ability.levels() - 1; + } + + if (abilities.containsKey(ability)) { + MainRegistry.logger.warn("Ability " + ability.getName() + " already had level " + abilities.get(ability) + ", overwriting with level " + level); + } + + if (ability.isAllowed()) { + abilities.put(ability, level); } - abilities.put(ability, level); return this; } @@ -47,6 +58,22 @@ public class AvailableAbilities { return Collections.unmodifiableMap(abilities); } + public Map getWeaponAbilities() { + return abilities.keySet().stream().filter(a -> a instanceof IWeaponAbility).collect(Collectors.toMap(a -> (IWeaponAbility)a, a -> abilities.get(a))); + } + + public Map getToolAbilities() { + return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility || a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> a, a -> abilities.get(a))); + } + + public Map getToolAreaAbilities() { + return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility).collect(Collectors.toMap(a -> (IToolAreaAbility)a, a -> abilities.get(a))); + } + + public Map getToolHarvestAbilities() { + return abilities.keySet().stream().filter(a -> a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> (IToolHarvestAbility)a, a -> abilities.get(a))); + } + public int size() { return abilities.size(); } @@ -57,12 +84,12 @@ public class AvailableAbilities { @SideOnly(Side.CLIENT) public void addInformation(List list) { - boolean hasToolAbilities = abilities.keySet().stream().anyMatch(a -> a instanceof IToolAreaAbility || a instanceof IToolHarvestAbility); + Map toolAbilities = getToolAbilities(); - if (hasToolAbilities) { + if (!toolAbilities.isEmpty()) { list.add("Abilities: "); - abilities.forEach((ability, level) -> { + toolAbilities.forEach((ability, level) -> { list.add(" " + EnumChatFormatting.GOLD + ability.getFullName(level)); }); @@ -71,12 +98,12 @@ public class AvailableAbilities { list.add("Alt-click to open ability selection GUI!"); } - boolean hasWeaponModifiers = abilities.keySet().stream().anyMatch(a -> a instanceof IWeaponAbility); + Map weaponAbilities = getWeaponAbilities(); - if (hasWeaponModifiers) { + if (!weaponAbilities.isEmpty()) { list.add("Weapon modifiers: "); - abilities.forEach((ability, level) -> { + weaponAbilities.forEach((ability, level) -> { list.add(" " + EnumChatFormatting.RED + ability.getFullName(level)); }); } diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index 19bdedd94..727d602e5 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -11,7 +11,7 @@ import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.handler.ThreeInts; import com.hbm.inventory.OreDictManager; -import com.hbm.items.tool.IItemWithAbility; +import com.hbm.items.tool.ItemToolAbility; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; @@ -27,18 +27,17 @@ public interface IToolAreaAbility extends IBaseAbility { // The initial block is always implicitly broken and shouldn't be included. // If true is returned, no block breaking is handled by the tool // (neither for the original block nor for the extras) - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool); + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool); // region handlers public static final IToolAreaAbility NONE = new IToolAreaAbility() { @Override public String getName() { - // TODO: null? empty? otherwise i18n return ""; } @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { return false; } }; @@ -73,7 +72,7 @@ public interface IToolAreaAbility extends IBaseAbility { private Set pos = new HashSet<>(); @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { Block b = world.getBlock(x, y, z); if(!ToolConfig.recursiveStone) { @@ -112,7 +111,7 @@ public interface IToolAreaAbility extends IBaseAbility { } }}; - private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth, int radius) { + private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, ItemToolAbility tool, int depth, int radius) { List shuffledOffsets = new ArrayList<>(offsets); Collections.shuffle(shuffledOffsets); @@ -121,7 +120,7 @@ public interface IToolAreaAbility extends IBaseAbility { } } - private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, IItemWithAbility tool, int depth, int radius) { + private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, ItemToolAbility tool, int depth, int radius) { if(pos.contains(new ThreeInts(x, y, z))) return; @@ -190,7 +189,7 @@ public interface IToolAreaAbility extends IBaseAbility { } @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { int range = rangeAtLevel[level]; for(int a = x - range; a <= x + range; a++) { @@ -233,7 +232,7 @@ public interface IToolAreaAbility extends IBaseAbility { } @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, IItemWithAbility tool) { + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { float strength = strengthAtLevel[level]; ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); @@ -249,4 +248,15 @@ public interface IToolAreaAbility extends IBaseAbility { } }; // endregion handlers + + static final IToolAreaAbility[] abilities = {NONE, RECURSION, HAMMER, EXPLOSION}; + + static IToolAreaAbility getByName(String name) { + for(IToolAreaAbility ability : abilities) { + if(ability.getName().equals(name)) + return ability; + } + + return NONE; + } } diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java index 797daee68..82bbca88c 100644 --- a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -9,7 +9,7 @@ import com.hbm.inventory.recipes.CrystallizerRecipes; import com.hbm.inventory.recipes.ShredderRecipes; import com.hbm.inventory.recipes.CrystallizerRecipes.CrystallizerRecipe; import com.hbm.items.ModItems; -import com.hbm.items.tool.IItemWithAbility; +import com.hbm.items.tool.ItemToolAbility; import com.hbm.util.EnchantmentUtil; import net.minecraft.block.Block; @@ -37,7 +37,7 @@ public interface IToolHarvestAbility extends IBaseAbility { player.getHeldItem().damageItem(1, player); } else if (player instanceof EntityPlayerMP) { // Break the block conventionally - IItemWithAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); + ItemToolAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); } } @@ -45,7 +45,6 @@ public interface IToolHarvestAbility extends IBaseAbility { public static final IToolHarvestAbility NONE = new IToolHarvestAbility() { @Override public String getName() { - // TODO: null? empty? otherwise i18n return ""; } @@ -310,4 +309,15 @@ public interface IToolHarvestAbility extends IBaseAbility { } }; // endregion handlers + + static final IToolHarvestAbility[] abilities = {NONE, SILK, LUCK, SMELTER, SHREDDER, CENTRIFUGE, CRYSTALLIZER, MERCURY}; + + static IToolHarvestAbility getByName(String name) { + for(IToolHarvestAbility ability : abilities) { + if(ability.getName().equals(name)) + return ability; + } + + return NONE; + } } diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java index 15a98df54..92f0d3f1d 100644 --- a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -42,7 +42,6 @@ public interface IWeaponAbility extends IBaseAbility { public static final IWeaponAbility NONE = new IWeaponAbility() { @Override public String getName() { - // TODO: null? empty? otherwise i18n return ""; } @@ -349,4 +348,15 @@ public interface IWeaponAbility extends IBaseAbility { } }; // endregion handlers + + static final IWeaponAbility[] abilities = {NONE, RADIATION, VAMPIRE, STUN, BLEND, PHOSPHORUS, FIRE, CHAINSAW, BEHEADER, BOBBLE}; + + static IWeaponAbility getByName(String name) { + for(IWeaponAbility ability : abilities) { + if(ability.getName().equals(name)) + return ability; + } + + return NONE; + } } diff --git a/src/main/java/com/hbm/handler/ability/ToolPreset.java b/src/main/java/com/hbm/handler/ability/ToolPreset.java index afc132153..caa8956ae 100644 --- a/src/main/java/com/hbm/handler/ability/ToolPreset.java +++ b/src/main/java/com/hbm/handler/ability/ToolPreset.java @@ -1,5 +1,11 @@ package com.hbm.handler.ability; +import com.hbm.util.ChatBuilder; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; + public class ToolPreset { public IToolAreaAbility areaAbility = IToolAreaAbility.NONE; public int areaAbilityLevel = 0; @@ -20,19 +26,69 @@ public class ToolPreset { this.harvestAbilityLevel = harvestAbilityLevel; } - public String getMessage() { + public ChatComponentText getMessage() { + if (isNone()) + return ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(); + String areaPart = areaAbility.getFullName(areaAbilityLevel); String harvestPart = harvestAbility.getFullName(harvestAbilityLevel); - - if (harvestPart.isEmpty() && areaPart.isEmpty()) - return "[Tool ability deactivated]"; - if (harvestPart.isEmpty()) - return "[Enabled " + areaPart + "]"; - - if (areaPart.isEmpty()) - return "[Enabled " + harvestPart + "]"; + ChatBuilder builder = ChatBuilder.start("[Enabled "); - return "[Enabled " + areaPart + " + " + harvestPart + "]"; + if (!areaPart.isEmpty()) + builder.next(areaPart); + + if (!areaPart.isEmpty() && !harvestPart.isEmpty()) + builder.next(" + "); + + if (!harvestPart.isEmpty()) + builder.next(harvestPart); + + return builder.colorAll(EnumChatFormatting.YELLOW).flush(); + } + + public boolean isNone() { + return areaAbility == IToolAreaAbility.NONE && harvestAbility == IToolHarvestAbility.NONE; + } + + public void writeToNBT(NBTTagCompound nbt) { + nbt.setString("area", areaAbility.getName()); + nbt.setInteger("areaLevel", areaAbilityLevel); + nbt.setString("harvest", harvestAbility.getName()); + nbt.setInteger("harvestLevel", harvestAbilityLevel); + } + + public void readFromNBT(NBTTagCompound nbt) { + areaAbility = IToolAreaAbility.getByName(nbt.getString("area")); + areaAbilityLevel = nbt.getInteger("areaLevel"); + harvestAbility = IToolHarvestAbility.getByName(nbt.getString("harvest")); + harvestAbilityLevel = nbt.getInteger("harvestLevel"); + + areaAbilityLevel = Math.min(areaAbilityLevel, areaAbility.levels() - 1); + harvestAbilityLevel = Math.min(harvestAbilityLevel, harvestAbility.levels() - 1); + } + + public void restrictTo(AvailableAbilities availableAbilities) { + int maxAreaLevel = availableAbilities.maxLevel(areaAbility); + + if (maxAreaLevel == -1) { + areaAbility = IToolAreaAbility.NONE; + areaAbilityLevel = 0; + } else if (areaAbilityLevel > maxAreaLevel) { + areaAbilityLevel = maxAreaLevel; + } else if (areaAbilityLevel < 0) { + areaAbilityLevel = 0; + } + + int maxHarvestLevel = availableAbilities.maxLevel(harvestAbility); + + if (maxHarvestLevel == -1) { + harvestAbility = IToolHarvestAbility.NONE; + harvestAbilityLevel = 0; + } else if (harvestAbilityLevel > maxHarvestLevel) { + harvestAbilityLevel = maxHarvestLevel; + } else if (harvestAbilityLevel < 0) { + harvestAbilityLevel = 0; + } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index 0f66d8327..13dd55fda 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -6,14 +6,20 @@ import java.util.List; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; +import com.hbm.handler.ability.AvailableAbilities; import com.hbm.handler.ability.IBaseAbility; import com.hbm.handler.ability.IToolAreaAbility; import com.hbm.handler.ability.IToolHarvestAbility; import com.hbm.handler.ability.ToolPreset; import com.hbm.items.tool.ItemToolAbility; +import com.hbm.items.tool.ItemToolAbility.Configuration; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; +import com.hbm.util.Tuple.Pair; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -32,9 +38,6 @@ public class GUIScreenToolAbility extends GuiScreen { protected int ySize; protected int insetWidth; - protected ItemToolAbility toolDef; - protected ItemStack toolStack; - public static class AbilityInfo { public IBaseAbility ability; public int textureU, textureV; @@ -65,23 +68,19 @@ public class GUIScreenToolAbility extends GuiScreen { abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.MERCURY, 224, 107)); } - // TODO: availability status for abilities; list of presets; selected preset index; - // TODO: Remove this in favor of current preset - int selectionIdxArea = 0; - int selectedLevelArea = 0; - int selectionIdxHarvest = 0; - int selectedLevelHarvest = 0; - int selectedPreset = 0; - int totalPresets = 1; + // TODO: Use availableAbilities + protected ItemStack toolStack; + AvailableAbilities availableAbilities; + ItemToolAbility.Configuration config; int hoverIdxArea = -1; int hoverIdxHarvest = -1; int hoverIdxExtraBtn = -1; - public GUIScreenToolAbility(ItemToolAbility toolDef) { + public GUIScreenToolAbility(AvailableAbilities availableAbilities) { super(); - this.toolDef = toolDef; + this.availableAbilities = availableAbilities; this.xSize = 186; // Note: increased dynamically this.ySize = 76; @@ -112,12 +111,13 @@ public class GUIScreenToolAbility extends GuiScreen { drawStretchedRect(guiLeft, guiTop, 0, 0, xSize, xSize - insetWidth, ySize, 74, 76); // Draw the switches - hoverIdxArea = drawSwitches(abilitiesArea, selectionIdxArea, selectedLevelArea, guiLeft + 15, guiTop + 25, mouseX, mouseY); - hoverIdxHarvest = drawSwitches(abilitiesHarvest, selectionIdxHarvest, selectedLevelHarvest, guiLeft + 15, guiTop + 45, mouseX, mouseY); + ToolPreset activePreset = config.getActivePreset(); + hoverIdxArea = drawSwitches(abilitiesArea, activePreset.areaAbility, activePreset.areaAbilityLevel, guiLeft + 15, guiTop + 25, mouseX, mouseY); + hoverIdxHarvest = drawSwitches(abilitiesHarvest, activePreset.harvestAbility, activePreset.harvestAbilityLevel, guiLeft + 15, guiTop + 45, mouseX, mouseY); // Draw preset indicator - drawNumber(selectedPreset + 1, guiLeft + insetWidth + 115, guiTop + 25); - drawNumber(totalPresets, guiLeft + insetWidth + 149, guiTop + 25); + drawNumber(config.currentPreset + 1, guiLeft + insetWidth + 115, guiTop + 25); + drawNumber(config.presets.size(), guiLeft + insetWidth + 149, guiTop + 25); // Draw extra buttons hover highlights int extraBtnsX = guiLeft + xSize - 86; @@ -135,14 +135,14 @@ public class GUIScreenToolAbility extends GuiScreen { if (hoverIdxArea != -1) { int level = 0; - if (hoverIdxArea == selectionIdxArea) { - level = selectedLevelArea; + if (abilitiesArea.get(hoverIdxArea).ability == activePreset.areaAbility) { + level = activePreset.areaAbilityLevel; } tooltipValue = abilitiesArea.get(hoverIdxArea).ability.getFullName(level); } else if (hoverIdxHarvest != -1) { int level = 0; - if (hoverIdxHarvest == selectionIdxHarvest) { - level = selectedLevelHarvest; + if (abilitiesHarvest.get(hoverIdxHarvest).ability == activePreset.harvestAbility) { + level = activePreset.harvestAbilityLevel; } tooltipValue = abilitiesHarvest.get(hoverIdxHarvest).ability.getFullName(level); } else if (hoverIdxExtraBtn != -1) { @@ -176,12 +176,13 @@ public class GUIScreenToolAbility extends GuiScreen { drawTexturedModalRect(x + keepLeft + realMidWidth, y, u + keepLeft + midWidth, v, keepRight, height); } - protected int drawSwitches(List abilities, int selectionIdx, int selectedLevel, int x, int y, int mouseX, int mouseY) { + protected int drawSwitches(List abilities, IBaseAbility selectedAbility, int selectedLevel, int x, int y, int mouseX, int mouseY) { int hoverIdx = -1; for (int i = 0; i < abilities.size(); ++i) { AbilityInfo abilityInfo = abilities.get(i); - boolean available = true; // TODO + boolean available = availableAbilities.supportsAbility(abilityInfo.ability); + boolean selected = abilityInfo.ability == selectedAbility; // Draw switch drawTexturedModalRect(x + 20 * i, y, abilityInfo.textureU + (available ? 16 : 0), abilityInfo.textureV, 16, 16); @@ -190,11 +191,11 @@ public class GUIScreenToolAbility extends GuiScreen { if (abilityInfo.ability.levels() > 1) { int level = 0; - if (i == selectionIdx) { + if (selected) { level = selectedLevel + 1; } - // TODO: Max allowed level instead? + // Note: only visual effect for the LEDs // int maxLevel = Math.min(abilityInfo.ability.levels(), 5); int maxLevel = 5; @@ -212,7 +213,7 @@ public class GUIScreenToolAbility extends GuiScreen { hoverIdx = i; } - if (i == selectionIdx) { + if (selected) { // Draw selection highlight drawTexturedModalRect(x + 20 * i - 1, y - 1, 220, 9, 18, 18); } else if (available && isHovered) { @@ -242,7 +243,7 @@ public class GUIScreenToolAbility extends GuiScreen { public void updateScreen() { EntityPlayer player = this.mc.thePlayer; - if(player.getHeldItem() == null || player.getHeldItem().getItem() != toolDef) + if(player.getHeldItem() == null || player.getHeldItem() != toolStack) player.closeScreen(); } @@ -253,77 +254,29 @@ public class GUIScreenToolAbility extends GuiScreen { if(Mouse.getEventButton() == -1) { int scroll = Mouse.getEventDWheel(); - if(scroll < 0 && selectedPreset > 0) selectedPreset -= 1; - if(scroll > 0 && selectedPreset < totalPresets - 1) selectedPreset += 1; + if(scroll < 0) doPrevPreset(true); + if(scroll > 0) doNextPreset(true); } } @Override protected void mouseClicked(int mouseX, int mouseY, int button) { + ToolPreset activePreset = config.getActivePreset(); + // Process switches - // TODO: Encapsulate in a method - if (hoverIdxArea != -1) { - boolean available = true; // TODO - - if (available) { - int availableLevels = abilitiesArea.get(hoverIdxArea).ability.levels(); - - if (hoverIdxArea != selectionIdxArea || availableLevels > 1) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 2F)); - } - - if (hoverIdxArea == selectionIdxArea) { - selectedLevelArea = (selectedLevelArea + 1) % availableLevels; - } else { - selectedLevelArea = 0; - } - - selectionIdxArea = hoverIdxArea; - } - } - - if (hoverIdxHarvest != -1) { - boolean available = true; // TODO - - if (available) { - int availableLevels = abilitiesHarvest.get(hoverIdxHarvest).ability.levels(); - - if (hoverIdxHarvest == selectionIdxHarvest) { - selectedLevelHarvest = (selectedLevelHarvest + 1) % availableLevels; - } else { - selectedLevelHarvest = 0; - } - - selectionIdxHarvest = hoverIdxHarvest; - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 2F)); - } - } + handleSwitchesClicked(abilitiesArea, activePreset.areaAbility, activePreset.areaAbilityLevel, hoverIdxArea, mouseX, mouseY); + handleSwitchesClicked(abilitiesHarvest, activePreset.harvestAbility, activePreset.harvestAbilityLevel, hoverIdxHarvest, mouseX, mouseY); // Process extra buttons if (hoverIdxExtraBtn != -1) { switch (hoverIdxExtraBtn) { - case 0: - doResetPresets(); - break; - case 1: - doDelPreset(); - break; - case 2: - doAddPreset(); - break; - case 3: - doZeroPreset(); - break; - case 4: - doNextPreset(); - break; - case 5: - doPrevPreset(); - break; - case 6: - doClose(); - break; + case 0: doResetPresets(); break; + case 1: doDelPreset(); break; + case 2: doAddPreset(); break; + case 3: doZeroPreset(); break; + case 4: doNextPreset(false); break; + case 5: doPrevPreset(false); break; + case 6: doClose(); break; } mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F)); @@ -335,6 +288,31 @@ public class GUIScreenToolAbility extends GuiScreen { } } + protected Pair handleSwitchesClicked(List abilities, IBaseAbility selectedAbility, int selectedLevel, int hoverIdx, int mouseX, int mouseY) { + if (hoverIdx != -1) { + IBaseAbility hoveredAbility = abilities.get(hoverIdx).ability; + boolean available = availableAbilities.supportsAbility(hoveredAbility); + + if (available) { + int availableLevels = availableAbilities.maxLevel(hoveredAbility) + 1; + + if (hoveredAbility != selectedAbility || availableLevels > 1) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 2F)); + } + + if (hoveredAbility == selectedAbility) { + selectedLevel = (selectedLevel + 1) % availableLevels; + } else { + selectedLevel = 0; + } + + selectedAbility = hoveredAbility; + } + } + + return new Pair<>(selectedAbility, selectedLevel); + } + @Override protected void keyTyped(char c, int key) { if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { @@ -351,46 +329,51 @@ public class GUIScreenToolAbility extends GuiScreen { } protected void doResetPresets() { - // TODO - totalPresets = 1; - selectedPreset = 0; - selectionIdxArea = 0; - selectedLevelArea = 0; - selectionIdxHarvest = 0; - selectedLevelHarvest = 0; + config.reset(availableAbilities); } protected void doDelPreset() { - // TODO - if (totalPresets <= 1) { + if (config.presets.size() <= 1) { return; } - totalPresets -= 1; - selectedPreset -= 1; + config.presets.remove(config.currentPreset); + config.currentPreset = Math.min(config.currentPreset, config.presets.size() - 1); } protected void doAddPreset() { - // TODO - totalPresets += 1; - selectedPreset += 1; + config.presets.add(config.currentPreset + 1, new ToolPreset()); + config.currentPreset += 1; } protected void doZeroPreset() { - // TODO - selectedPreset = 0; + config.currentPreset = 0; } - protected void doNextPreset() { - // TODO - selectedPreset = (selectedPreset + 1) % totalPresets; + protected void doNextPreset(boolean bound) { + if (bound) { + if (config.currentPreset < config.presets.size() - 1) { + config.currentPreset += 1; + } + } else { + config.currentPreset = (config.currentPreset + 1) % config.presets.size(); + } } - protected void doPrevPreset() { - // TODO - selectedPreset = (selectedPreset + totalPresets - 1) % totalPresets; + protected void doPrevPreset(boolean bound) { + if (bound) { + if (config.currentPreset > 0) { + config.currentPreset -= 1; + } + } else { + config.currentPreset = (config.currentPreset + config.presets.size() - 1) % config.presets.size(); + } } protected void doClose() { this.mc.thePlayer.closeScreen(); + + MainRegistry.proxy.displayTooltip(config.getActivePreset().getMessage().getFormattedText(), MainRegistry.proxy.ID_TOOLABILITY); + + this.mc.theWorld.playSoundAtEntity(this.mc.thePlayer, "random.orb", 0.25F, config.getActivePreset().isNone() ? 0.75F : 1.25F); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index faa866dfc..2ccecf739 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3,10 +3,9 @@ package com.hbm.items; import com.hbm.blocks.ModBlocks; import com.hbm.config.VersatileConfig; import com.hbm.handler.BucketHandler; -import com.hbm.handler.ToolAbility; -import com.hbm.handler.ToolAbility.LuckAbility; +import com.hbm.handler.ability.IToolAreaAbility; +import com.hbm.handler.ability.IToolHarvestAbility; import com.hbm.handler.ability.IWeaponAbility; -import com.hbm.handler.WeaponAbility; import com.hbm.handler.guncfg.*; import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.inventory.fluid.Fluids; @@ -4475,45 +4474,45 @@ public class ModItems { chainsaw = new ItemChainsaw(25, -0.05, MainRegistry.tMatChainsaw, EnumToolType.AXE, 5000, 1, 250, Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.KEROSENE, Fluids.BIOFUEL, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.COALGAS, Fluids.COALGAS_LEADED) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addHitAbility(new WeaponAbility.ChainsawAbility(10)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolAreaAbility.RECURSION, 2) + .addAbility(IWeaponAbility.CHAINSAW, 1) + .addAbility(IWeaponAbility.BEHEADER, 0).setShears().setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); schrabidium_sword = new ItemSwordAbility(75, 0, MainRegistry.tMatSchrab) - .addHitAbility(IWeaponAbility.RADIATION, 1) - .addHitAbility(IWeaponAbility.VAMPIRE, 0) + .addAbility(IWeaponAbility.RADIATION, 1) + .addAbility(IWeaponAbility.VAMPIRE, 0) .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_sword").setTextureName(RefStrings.MODID + ":schrabidium_sword"); schrabidium_pickaxe = new ItemToolAbility(20, 0, MainRegistry.tMatSchrab, EnumToolType.PICKAXE) - .addHitAbility(new WeaponAbility.RadiationAbility(15F)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(10)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) + .addAbility(IWeaponAbility.RADIATION, 0) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 6) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 4) + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.SHREDDER, 0) .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_pickaxe").setTextureName(RefStrings.MODID + ":schrabidium_pickaxe"); schrabidium_axe = new ItemToolAbility(25, 0, MainRegistry.tMatSchrab, EnumToolType.AXE) - .addHitAbility(new WeaponAbility.RadiationAbility(15F)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(10)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addHitAbility(new WeaponAbility.BeheaderAbility()) + .addAbility(IWeaponAbility.RADIATION, 0) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 6) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 4) + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.SHREDDER, 0) + .addAbility(IWeaponAbility.BEHEADER, 0) .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_axe").setTextureName(RefStrings.MODID + ":schrabidium_axe"); schrabidium_shovel = new ItemToolAbility(15, 0, MainRegistry.tMatSchrab, EnumToolType.SHOVEL) - .addHitAbility(new WeaponAbility.RadiationAbility(15F)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(10)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) + .addAbility(IWeaponAbility.RADIATION, 0) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 6) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 4) + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.SHREDDER, 0) .setRarity(EnumRarity.rare).setUnlocalizedName("schrabidium_shovel").setTextureName(RefStrings.MODID + ":schrabidium_shovel"); schrabidium_hoe = new HoeSchrabidium(MainRegistry.tMatSchrab).setUnlocalizedName("schrabidium_hoe").setTextureName(RefStrings.MODID + ":schrabidium_hoe"); @@ -4521,294 +4520,282 @@ public class ModItems { titanium_sword = new ItemSwordAbility(6.5F, 0, MainRegistry.tMatTitan).setUnlocalizedName("titanium_sword").setTextureName(RefStrings.MODID + ":titanium_sword"); titanium_pickaxe = new ItemToolAbility(4.5F, 0, MainRegistry.tMatTitan, EnumToolType.PICKAXE).setUnlocalizedName("titanium_pickaxe").setTextureName(RefStrings.MODID + ":titanium_pickaxe"); titanium_axe = new ItemToolAbility(5.5F, 0, MainRegistry.tMatTitan, EnumToolType.AXE) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("titanium_axe").setTextureName(RefStrings.MODID + ":titanium_axe"); + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("titanium_axe").setTextureName(RefStrings.MODID + ":titanium_axe"); titanium_shovel = new ItemToolAbility(3.5F, 0, MainRegistry.tMatTitan, EnumToolType.SHOVEL).setUnlocalizedName("titanium_shovel").setTextureName(RefStrings.MODID + ":titanium_shovel"); titanium_hoe = new ModHoe(MainRegistry.tMatTitan).setUnlocalizedName("titanium_hoe").setTextureName(RefStrings.MODID + ":titanium_hoe"); steel_sword = new ItemSwordAbility(6F, 0, MainRegistry.tMatSteel).setUnlocalizedName("steel_sword").setTextureName(RefStrings.MODID + ":steel_sword"); steel_pickaxe = new ItemToolAbility(4F, 0, MainRegistry.tMatSteel, EnumToolType.PICKAXE).setUnlocalizedName("steel_pickaxe").setTextureName(RefStrings.MODID + ":steel_pickaxe"); steel_axe = new ItemToolAbility(5F, 0, MainRegistry.tMatSteel, EnumToolType.AXE) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("steel_axe").setTextureName(RefStrings.MODID + ":steel_axe"); + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("steel_axe").setTextureName(RefStrings.MODID + ":steel_axe"); steel_shovel = new ItemToolAbility(3F, 0, MainRegistry.tMatSteel, EnumToolType.SHOVEL).setUnlocalizedName("steel_shovel").setTextureName(RefStrings.MODID + ":steel_shovel"); steel_hoe = new ModHoe(MainRegistry.tMatSteel).setUnlocalizedName("steel_hoe").setTextureName(RefStrings.MODID + ":steel_hoe"); alloy_sword = new ItemSwordAbility(8F, 0, MainRegistry.tMatAlloy) - .addHitAbility(IWeaponAbility.STUN, 0).setUnlocalizedName("alloy_sword").setTextureName(RefStrings.MODID + ":alloy_sword"); + .addAbility(IWeaponAbility.STUN, 0).setUnlocalizedName("alloy_sword").setTextureName(RefStrings.MODID + ":alloy_sword"); alloy_pickaxe = new ItemToolAbility(5F, 0, MainRegistry.tMatAlloy, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_pickaxe").setTextureName(RefStrings.MODID + ":alloy_pickaxe"); + .addAbility(IToolAreaAbility.RECURSION, 0).setUnlocalizedName("alloy_pickaxe").setTextureName(RefStrings.MODID + ":alloy_pickaxe"); alloy_axe = new ItemToolAbility(7F, 0, MainRegistry.tMatAlloy, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(3)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("alloy_axe").setTextureName(RefStrings.MODID + ":alloy_axe"); + .addAbility(IToolAreaAbility.RECURSION, 0) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("alloy_axe").setTextureName(RefStrings.MODID + ":alloy_axe"); alloy_shovel = new ItemToolAbility(4F, 0, MainRegistry.tMatAlloy, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_shovel").setTextureName(RefStrings.MODID + ":alloy_shovel"); + .addAbility(IToolAreaAbility.RECURSION, 0).setUnlocalizedName("alloy_shovel").setTextureName(RefStrings.MODID + ":alloy_shovel"); alloy_hoe = new ModHoe(MainRegistry.tMatAlloy).setUnlocalizedName("alloy_hoe").setTextureName(RefStrings.MODID + ":alloy_hoe"); cmb_sword = new ItemSwordAbility(35F, 0, MainRegistry.tMatCMB) - .addHitAbility(IWeaponAbility.STUN, 0) - .addHitAbility(IWeaponAbility.VAMPIRE, 0).setUnlocalizedName("cmb_sword").setTextureName(RefStrings.MODID + ":cmb_sword"); + .addAbility(IWeaponAbility.STUN, 0) + .addAbility(IWeaponAbility.VAMPIRE, 0).setUnlocalizedName("cmb_sword").setTextureName(RefStrings.MODID + ":cmb_sword"); cmb_pickaxe = new ItemToolAbility(10F, 0, MainRegistry.tMatCMB, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cmb_pickaxe").setTextureName(RefStrings.MODID + ":cmb_pickaxe"); - + .addAbility(IToolAreaAbility.RECURSION, 2) + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 2).setUnlocalizedName("cmb_pickaxe").setTextureName(RefStrings.MODID + ":cmb_pickaxe"); + cmb_axe = new ItemToolAbility(30F, 0, MainRegistry.tMatCMB, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("cmb_axe").setTextureName(RefStrings.MODID + ":cmb_axe"); + .addAbility(IToolAreaAbility.RECURSION, 2) + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 2) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("cmb_axe").setTextureName(RefStrings.MODID + ":cmb_axe"); cmb_shovel = new ItemToolAbility(8F, 0, MainRegistry.tMatCMB, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cmb_shovel").setTextureName(RefStrings.MODID + ":cmb_shovel"); + .addAbility(IToolAreaAbility.RECURSION, 2) + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 2).setUnlocalizedName("cmb_shovel").setTextureName(RefStrings.MODID + ":cmb_shovel"); cmb_hoe = new ModHoe(MainRegistry.tMatCMB).setUnlocalizedName("cmb_hoe").setTextureName(RefStrings.MODID + ":cmb_hoe"); elec_sword = new ItemSwordAbilityPower(12.5F, 0, MainRegistry.tMatElec, 500000, 1000, 100) - .addHitAbility(IWeaponAbility.STUN, 2).setUnlocalizedName("elec_sword").setTextureName(RefStrings.MODID + ":elec_sword_anim"); + .addAbility(IWeaponAbility.STUN, 2).setUnlocalizedName("elec_sword").setTextureName(RefStrings.MODID + ":elec_sword_anim"); elec_pickaxe = new ItemToolAbilityPower(6F, 0, MainRegistry.tMatElec, EnumToolType.PICKAXE, 500000, 1000, 100) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("elec_pickaxe").setTextureName(RefStrings.MODID + ":elec_drill_anim"); - + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 2) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("elec_pickaxe").setTextureName(RefStrings.MODID + ":elec_drill_anim"); + elec_axe = new ItemToolAbilityPower(10F, 0, MainRegistry.tMatElec, EnumToolType.AXE, 500000, 1000, 100) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)) - .addHitAbility(new WeaponAbility.ChainsawAbility(15)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); - + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 2) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 1) + .addAbility(IWeaponAbility.CHAINSAW, 0) + .addAbility(IWeaponAbility.BEHEADER, 0).setShears().setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); + elec_shovel = new ItemToolAbilityPower(5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("elec_shovel").setTextureName(RefStrings.MODID + ":elec_shovel_anim"); - + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 2) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("elec_shovel").setTextureName(RefStrings.MODID + ":elec_shovel_anim"); + desh_sword = new ItemSwordAbility(12.5F, 0, MainRegistry.tMatDesh) - .addHitAbility(IWeaponAbility.STUN, 0).setUnlocalizedName("desh_sword").setTextureName(RefStrings.MODID + ":desh_sword"); + .addAbility(IWeaponAbility.STUN, 0).setUnlocalizedName("desh_sword").setTextureName(RefStrings.MODID + ":desh_sword"); desh_pickaxe = new ItemToolAbility(5F, -0.05, MainRegistry.tMatDesh, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.RecursionAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("desh_pickaxe").setTextureName(RefStrings.MODID + ":desh_pickaxe"); - + .addAbility(IToolAreaAbility.HAMMER, 0) + .addAbility(IToolAreaAbility.RECURSION, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("desh_pickaxe").setTextureName(RefStrings.MODID + ":desh_pickaxe"); + desh_axe = new ItemToolAbility(7.5F, -0.05, MainRegistry.tMatDesh, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.RecursionAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("desh_axe").setTextureName(RefStrings.MODID + ":desh_axe"); + .addAbility(IToolAreaAbility.HAMMER, 0) + .addAbility(IToolAreaAbility.RECURSION, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 1) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("desh_axe").setTextureName(RefStrings.MODID + ":desh_axe"); desh_shovel = new ItemToolAbility(4F, -0.05, MainRegistry.tMatDesh, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.RecursionAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(2)).setUnlocalizedName("desh_shovel").setTextureName(RefStrings.MODID + ":desh_shovel"); + .addAbility(IToolAreaAbility.HAMMER, 0) + .addAbility(IToolAreaAbility.RECURSION, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 1).setUnlocalizedName("desh_shovel").setTextureName(RefStrings.MODID + ":desh_shovel"); desh_hoe = new ModHoe(MainRegistry.tMatDesh).setUnlocalizedName("desh_hoe").setTextureName(RefStrings.MODID + ":desh_hoe"); cobalt_sword = new ItemSwordAbility(12F, 0, MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_sword").setTextureName(RefStrings.MODID + ":cobalt_sword"); cobalt_pickaxe = new ItemToolAbility(4F, 0, MainRegistry.tMatCobalt, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(1)).setUnlocalizedName("cobalt_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_pickaxe"); + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 0).setUnlocalizedName("cobalt_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_pickaxe"); cobalt_axe = new ItemToolAbility(6F, 0, MainRegistry.tMatCobalt, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(1)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("cobalt_axe").setTextureName(RefStrings.MODID + ":cobalt_axe"); + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 0) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("cobalt_axe").setTextureName(RefStrings.MODID + ":cobalt_axe"); cobalt_shovel = new ItemToolAbility(3.5F, 0, MainRegistry.tMatCobalt, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(1)).setUnlocalizedName("cobalt_shovel").setTextureName(RefStrings.MODID + ":cobalt_shovel"); + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 0).setUnlocalizedName("cobalt_shovel").setTextureName(RefStrings.MODID + ":cobalt_shovel"); cobalt_hoe = new ModHoe(MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_hoe").setTextureName(RefStrings.MODID + ":cobalt_hoe"); ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 2500, 15.0F, 2.5F, 75).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); cobalt_decorated_sword = new ItemSwordAbility(15F, 0, matDecCobalt) - .addHitAbility(IWeaponAbility.BOBBLE, 0).setUnlocalizedName("cobalt_decorated_sword").setTextureName(RefStrings.MODID + ":cobalt_decorated_sword"); + .addAbility(IWeaponAbility.BOBBLE, 0).setUnlocalizedName("cobalt_decorated_sword").setTextureName(RefStrings.MODID + ":cobalt_decorated_sword"); cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cobalt_decorated_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_decorated_pickaxe"); + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolAreaAbility.HAMMER, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 2).setUnlocalizedName("cobalt_decorated_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_decorated_pickaxe"); cobalt_decorated_axe = new ItemToolAbility(8F, 0, matDecCobalt, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("cobalt_decorated_axe").setTextureName(RefStrings.MODID + ":cobalt_decorated_axe"); + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolAreaAbility.HAMMER, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 2) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("cobalt_decorated_axe").setTextureName(RefStrings.MODID + ":cobalt_decorated_axe"); cobalt_decorated_shovel = new ItemToolAbility(5F, 0, matDecCobalt, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cobalt_decorated_shovel").setTextureName(RefStrings.MODID + ":cobalt_decorated_shovel"); + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolAreaAbility.HAMMER, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 2).setUnlocalizedName("cobalt_decorated_shovel").setTextureName(RefStrings.MODID + ":cobalt_decorated_shovel"); cobalt_decorated_hoe = new ModHoe(matDecCobalt).setUnlocalizedName("cobalt_decorated_hoe").setTextureName(RefStrings.MODID + ":cobalt_decorated_hoe"); ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 3000, 20.0F, 2.5F, 100).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); starmetal_sword = new ItemSwordAbility(25F, 0, matStarmetal) - .addHitAbility(IWeaponAbility.BEHEADER, 0) - .addHitAbility(IWeaponAbility.STUN, 1) - .addHitAbility(IWeaponAbility.BOBBLE, 0).setUnlocalizedName("starmetal_sword").setTextureName(RefStrings.MODID + ":starmetal_sword"); + .addAbility(IWeaponAbility.BEHEADER, 0) + .addAbility(IWeaponAbility.STUN, 1) + .addAbility(IWeaponAbility.BOBBLE, 0).setUnlocalizedName("starmetal_sword").setTextureName(RefStrings.MODID + ":starmetal_sword"); starmetal_pickaxe = new ItemToolAbility(8F, 0, matStarmetal, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(6)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_pickaxe").setTextureName(RefStrings.MODID + ":starmetal_pickaxe"); + .addAbility(IToolAreaAbility.RECURSION, 3) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 4) + .addAbility(IWeaponAbility.STUN, 1).setUnlocalizedName("starmetal_pickaxe").setTextureName(RefStrings.MODID + ":starmetal_pickaxe"); starmetal_axe = new ItemToolAbility(12F, 0, matStarmetal, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(6)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) - .addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_axe").setTextureName(RefStrings.MODID + ":starmetal_axe"); + .addAbility(IToolAreaAbility.RECURSION, 3) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 4) + .addAbility(IWeaponAbility.BEHEADER, 0) + .addAbility(IWeaponAbility.STUN, 1).setUnlocalizedName("starmetal_axe").setTextureName(RefStrings.MODID + ":starmetal_axe"); starmetal_shovel = new ItemToolAbility(7F, 0, matStarmetal, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(6)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new LuckAbility(5)) - .addHitAbility(new WeaponAbility.StunAbility(3)).setUnlocalizedName("starmetal_shovel").setTextureName(RefStrings.MODID + ":starmetal_shovel"); + .addAbility(IToolAreaAbility.RECURSION, 3) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 4) + .addAbility(IWeaponAbility.STUN, 1).setUnlocalizedName("starmetal_shovel").setTextureName(RefStrings.MODID + ":starmetal_shovel"); starmetal_hoe = new ModHoe(matStarmetal).setUnlocalizedName("starmetal_hoe").setTextureName(RefStrings.MODID + ":starmetal_hoe"); centri_stick = new ItemToolAbility(3F, 0, MainRegistry.tMatElec, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.CentrifugeAbility()).setMaxDamage(50).setUnlocalizedName("centri_stick").setTextureName(RefStrings.MODID + ":centri_stick"); + .addAbility(IToolHarvestAbility.CENTRIFUGE, 0).setMaxDamage(50).setUnlocalizedName("centri_stick").setTextureName(RefStrings.MODID + ":centri_stick"); smashing_hammer = new ItemToolAbility(12F, -0.1, MainRegistry.tMatSteel, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.ShredderAbility()).setMaxDamage(2500).setUnlocalizedName("smashing_hammer").setTextureName(RefStrings.MODID + ":smashing_hammer"); + .addAbility(IToolHarvestAbility.SHREDDER, 0).setMaxDamage(2500).setUnlocalizedName("smashing_hammer").setTextureName(RefStrings.MODID + ":smashing_hammer"); drax = new ItemToolAbilityPower(10F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 500000000, 100000, 5000) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(2)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("drax").setTextureName(RefStrings.MODID + ":drax"); + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.SHREDDER, 0) + .addAbility(IToolHarvestAbility.LUCK, 1) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 2).setUnlocalizedName("drax").setTextureName(RefStrings.MODID + ":drax"); drax_mk2 = new ItemToolAbilityPower(15F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 1000000000, 250000, 7500) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.CentrifugeAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(3)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.HammerAbility(3)) - .addBreakAbility(new ToolAbility.RecursionAbility(7)).setUnlocalizedName("drax_mk2").setTextureName(RefStrings.MODID + ":drax_mk2"); + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.SHREDDER, 0) + .addAbility(IToolHarvestAbility.CENTRIFUGE, 0) + .addAbility(IToolHarvestAbility.LUCK, 2) + .addAbility(IToolAreaAbility.HAMMER, 2) + .addAbility(IToolAreaAbility.RECURSION, 4).setUnlocalizedName("drax_mk2").setTextureName(RefStrings.MODID + ":drax_mk2"); drax_mk3 = new ItemToolAbilityPower(20F, -0.05, MainRegistry.tMatElec, EnumToolType.MINER, 2500000000L, 500000, 10000) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.CentrifugeAbility()) - .addBreakAbility(new ToolAbility.CrystallizerAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(4)) - .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.HammerAbility(3)) - .addBreakAbility(new ToolAbility.HammerAbility(4)) - .addBreakAbility(new ToolAbility.RecursionAbility(9)).setUnlocalizedName("drax_mk3").setTextureName(RefStrings.MODID + ":drax_mk3"); + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.SHREDDER, 0) + .addAbility(IToolHarvestAbility.CENTRIFUGE, 0) + .addAbility(IToolHarvestAbility.CRYSTALLIZER, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 3) + .addAbility(IToolAreaAbility.HAMMER, 3) + .addAbility(IToolAreaAbility.RECURSION, 5).setUnlocalizedName("drax_mk3").setTextureName(RefStrings.MODID + ":drax_mk3"); ToolMaterial matBismuth = EnumHelper.addToolMaterial("HBM_BISMUTH", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); bismuth_pickaxe = new ItemToolAbility(15F, 0, matBismuth, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.StunAbility(5)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolHarvestAbility.SHREDDER, 0) + .addAbility(IToolHarvestAbility.LUCK, 1) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IWeaponAbility.STUN, 2) + .addAbility(IWeaponAbility.VAMPIRE, 0) + .addAbility(IWeaponAbility.BEHEADER, 0) .setDepthRockBreaker().setUnlocalizedName("bismuth_pickaxe").setTextureName(RefStrings.MODID + ":bismuth_pickaxe"); bismuth_axe = new ItemToolAbility(25F, 0, matBismuth, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.ShredderAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(2)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.StunAbility(10)) - .addHitAbility(new WeaponAbility.VampireAbility(3F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("bismuth_axe").setTextureName(RefStrings.MODID + ":bismuth_axe"); + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolHarvestAbility.SHREDDER, 0) + .addAbility(IToolHarvestAbility.LUCK, 1) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IWeaponAbility.STUN, 3) + .addAbility(IWeaponAbility.VAMPIRE, 1) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("bismuth_axe").setTextureName(RefStrings.MODID + ":bismuth_axe"); ToolMaterial matVolcano = EnumHelper.addToolMaterial("HBM_VOLCANIC", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); volcanic_pickaxe = new ItemToolAbility(15F, 0, matVolcano, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.FireAbility(5)) - .addHitAbility(new WeaponAbility.VampireAbility(2F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.LUCK, 2) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IWeaponAbility.FIRE, 0) + .addAbility(IWeaponAbility.VAMPIRE, 0) + .addAbility(IWeaponAbility.BEHEADER, 0) .setDepthRockBreaker().setUnlocalizedName("volcanic_pickaxe").setTextureName(RefStrings.MODID + ":volcanic_pickaxe"); volcanic_axe = new ItemToolAbility(25F, 0, matVolcano, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(3)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addHitAbility(new WeaponAbility.FireAbility(10)) - .addHitAbility(new WeaponAbility.VampireAbility(3F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("volcanic_axe").setTextureName(RefStrings.MODID + ":volcanic_axe"); + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolHarvestAbility.SMELTER, 0) + .addAbility(IToolHarvestAbility.LUCK, 2) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IWeaponAbility.FIRE, 1) + .addAbility(IWeaponAbility.VAMPIRE, 1) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("volcanic_axe").setTextureName(RefStrings.MODID + ":volcanic_axe"); ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 75F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte)); chlorophyte_pickaxe = new ItemToolAbility(20F, 0, matChlorophyte, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.LuckAbility(4)) - .addBreakAbility(new ToolAbility.CentrifugeAbility()) - .addBreakAbility(new ToolAbility.MercuryAbility()) - .addHitAbility(new WeaponAbility.StunAbility(10)) - .addHitAbility(new WeaponAbility.VampireAbility(5F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolHarvestAbility.LUCK, 3) + .addAbility(IToolHarvestAbility.CENTRIFUGE, 0) + .addAbility(IToolHarvestAbility.MERCURY, 0) + .addAbility(IWeaponAbility.STUN, 3) + .addAbility(IWeaponAbility.VAMPIRE, 2) + .addAbility(IWeaponAbility.BEHEADER, 0) .setDepthRockBreaker().setUnlocalizedName("chlorophyte_pickaxe").setTextureName(RefStrings.MODID + ":chlorophyte_pickaxe"); chlorophyte_axe = new ItemToolAbility(50F, 0, matChlorophyte, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(4)) - .addBreakAbility(new ToolAbility.LuckAbility(4)) - .addHitAbility(new WeaponAbility.StunAbility(15)) - .addHitAbility(new WeaponAbility.VampireAbility(10F)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("chlorophyte_axe").setTextureName(RefStrings.MODID + ":chlorophyte_axe"); + .addAbility(IToolAreaAbility.HAMMER, 1) + .addAbility(IToolAreaAbility.RECURSION, 1) + .addAbility(IToolHarvestAbility.LUCK, 3) + .addAbility(IWeaponAbility.STUN, 4) + .addAbility(IWeaponAbility.VAMPIRE, 3) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("chlorophyte_axe").setTextureName(RefStrings.MODID + ":chlorophyte_axe"); ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); mese_pickaxe = new ItemToolAbility(35F, 0, matMese, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(3)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.CrystallizerAbility()) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(9)) - .addBreakAbility(new ToolAbility.ExplosionAbility(2.5F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(5F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(10F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(15F)) - .addHitAbility(new WeaponAbility.StunAbility(10)) - .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) - .addHitAbility(new WeaponAbility.BeheaderAbility()) + .addAbility(IToolAreaAbility.HAMMER, 2) + .addAbility(IToolAreaAbility.RECURSION, 2) + .addAbility(IToolHarvestAbility.CRYSTALLIZER, 0) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 5) + .addAbility(IToolAreaAbility.EXPLOSION, 3) + .addAbility(IWeaponAbility.STUN, 3) + .addAbility(IWeaponAbility.PHOSPHORUS, 0) + .addAbility(IWeaponAbility.BEHEADER, 0) .setDepthRockBreaker().setUnlocalizedName("mese_pickaxe").setTextureName(RefStrings.MODID + ":mese_pickaxe"); mese_axe = new ItemToolAbility(75F, 0, matMese, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.HammerAbility(3)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SilkAbility()) - .addBreakAbility(new ToolAbility.LuckAbility(9)) - .addBreakAbility(new ToolAbility.ExplosionAbility(2.5F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(5F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(10F)) - .addBreakAbility(new ToolAbility.ExplosionAbility(15F)) - .addHitAbility(new WeaponAbility.StunAbility(15)) - .addHitAbility(new WeaponAbility.PhosphorusAbility(90)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("mese_axe").setTextureName(RefStrings.MODID + ":mese_axe"); + .addAbility(IToolAreaAbility.HAMMER, 2) + .addAbility(IToolAreaAbility.RECURSION, 2) + .addAbility(IToolHarvestAbility.SILK, 0) + .addAbility(IToolHarvestAbility.LUCK, 5) + .addAbility(IToolAreaAbility.EXPLOSION, 3) + .addAbility(IWeaponAbility.STUN, 4) + .addAbility(IWeaponAbility.PHOSPHORUS, 1) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("mese_axe").setTextureName(RefStrings.MODID + ":mese_axe"); dnt_sword = new ItemSwordAbility(12F, 0, matMese).setUnlocalizedName("dnt_sword").setTextureName(RefStrings.MODID + ":dnt_sword"); ToolMaterial matDwarf = EnumHelper.addToolMaterial("HBM_DWARVEN", 2, 0, 4F, 0.0F, 10).setRepairItem(new ItemStack(ModItems.ingot_copper)); dwarven_pickaxe = new ItemToolAbility(5F, -0.1, matDwarf, EnumToolType.MINER) - .addBreakAbility(new ToolAbility.HammerAbility(1)).setUnlocalizedName("dwarven_pickaxe").setMaxDamage(250).setTextureName(RefStrings.MODID + ":dwarven_pickaxe"); + .addAbility(IToolAreaAbility.HAMMER, 0).setUnlocalizedName("dwarven_pickaxe").setMaxDamage(250).setTextureName(RefStrings.MODID + ":dwarven_pickaxe"); ToolMaterial matMeteorite = EnumHelper.addToolMaterial("HBM_METEORITE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); meteorite_sword = new ItemSwordMeteorite(9F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword"); @@ -4883,11 +4870,11 @@ public class ModItems { diamond_gavel = new WeaponSpecial(ToolMaterial.EMERALD).setUnlocalizedName("diamond_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":diamond_gavel"); ToolMaterial matMeseGavel = EnumHelper.addToolMaterial("HBM_MESEGAVEL", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); mese_gavel = new ItemSwordAbility(250, 1.5, matMeseGavel) - .addHitAbility(IWeaponAbility.PHOSPHORUS, 0) - .addHitAbility(IWeaponAbility.RADIATION, 2) - .addHitAbility(IWeaponAbility.STUN, 3) - .addHitAbility(IWeaponAbility.VAMPIRE, 4) - .addHitAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("mese_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mese_gavel"); + .addAbility(IWeaponAbility.PHOSPHORUS, 0) + .addAbility(IWeaponAbility.RADIATION, 2) + .addAbility(IWeaponAbility.STUN, 3) + .addAbility(IWeaponAbility.VAMPIRE, 4) + .addAbility(IWeaponAbility.BEHEADER, 0).setUnlocalizedName("mese_gavel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mese_gavel"); multitool_hit = new ItemMultitoolPassive().setUnlocalizedName("multitool_hit").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); multitool_dig = new ItemMultitoolTool(4.0F, MainRegistry.enumToolMaterialMultitool, ItemMultitoolTool.getAllBlocks()).setFull3D().setUnlocalizedName("multitool_dig").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":multitool_claw"); diff --git a/src/main/java/com/hbm/items/tool/IItemWithAbility.java b/src/main/java/com/hbm/items/tool/IItemWithAbility.java deleted file mode 100644 index 99d442fbb..000000000 --- a/src/main/java/com/hbm/items/tool/IItemWithAbility.java +++ /dev/null @@ -1,181 +0,0 @@ -package com.hbm.items.tool; - -import java.util.ArrayList; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.network.play.client.C07PacketPlayerDigging; -import net.minecraft.network.play.server.S23PacketBlockChange; -import net.minecraft.stats.StatList; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.common.IShearable; -import net.minecraftforge.event.world.BlockEvent; - -public interface IItemWithAbility { - - public boolean canHarvestBlock(Block par1Block, ItemStack itemStack); - public boolean isShears(ItemStack stack); - - public default boolean canShearBlock(Block block, ItemStack stack, World world, int x, int y, int z) { - return this.isShears(stack) && block instanceof IShearable && ((IShearable) block).isShearable(stack, world, x, y, z); - } - - public default void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playerEntity, int refX, int refY, int refZ) { - - if(world.isAirBlock(x, y, z)) - return; - - if(!(playerEntity instanceof EntityPlayerMP)) - return; - - EntityPlayerMP player = (EntityPlayerMP) playerEntity; - ItemStack stack = player.getHeldItem(); - - Block block = world.getBlock(x, y, z); - int meta = world.getBlockMetadata(x, y, z); - - if(!(canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) || block == Blocks.bedrock || block == ModBlocks.stone_keyhole) - return; - - Block refBlock = world.getBlock(refX, refY, refZ); - float refStrength = ForgeHooks.blockStrength(refBlock, player, world, refX, refY, refZ); - float strength = ForgeHooks.blockStrength(block, player, world, x, y, z); - - if(!ForgeHooks.canHarvestBlock(block, player, meta) || refStrength / strength > 10f || refBlock.getBlockHardness(world, refX, refY, refZ) < 0) - return; - - BlockEvent.BreakEvent event = ForgeHooks.onBlockBreakEvent(world, player.theItemInWorldManager.getGameType(), player, x, y, z); - if(event.isCanceled()) - return; - - if(player.capabilities.isCreativeMode) { - block.onBlockHarvested(world, x, y, z, meta, player); - if(block.removedByPlayer(world, player, x, y, z, false)) - block.onBlockDestroyedByPlayer(world, x, y, z, meta); - - if(!world.isRemote) { - player.playerNetServerHandler.sendPacket(new S23PacketBlockChange(x, y, z, world)); - } - return; - } - - player.getCurrentEquippedItem().func_150999_a(world, block, x, y, z, player); - - if(!world.isRemote) { - - if(canShearBlock(block, stack, world, x, y, z)) { - shearBlock(world, x, y, z, block, player); - } - - block.onBlockHarvested(world, x, y, z, meta, player); - - if(block.removedByPlayer(world, player, x, y, z, true)) { - block.onBlockDestroyedByPlayer(world, x, y, z, meta); - block.harvestBlock(world, player, x, y, z, meta); - block.dropXpOnBlockBreak(world, x, y, z, event.getExpToDrop()); - } - - player.playerNetServerHandler.sendPacket(new S23PacketBlockChange(x, y, z, world)); - - } else { - world.playAuxSFX(2001, x, y, z, Block.getIdFromBlock(block) + (meta << 12)); - if(block.removedByPlayer(world, player, x, y, z, true)) { - block.onBlockDestroyedByPlayer(world, x, y, z, meta); - } - ItemStack itemstack = player.getCurrentEquippedItem(); - if(itemstack != null) { - itemstack.func_150999_a(world, block, x, y, z, player); - - if(itemstack.stackSize == 0) { - player.destroyCurrentEquippedItem(); - } - } - - Minecraft.getMinecraft().getNetHandler().addToSendQueue(new C07PacketPlayerDigging(2, x, y, z, Minecraft.getMinecraft().objectMouseOver.sideHit)); - } - } - - /** Assumes a canShearBlock check has passed, will most likely crash otherwise! */ - public static void shearBlock(World world, int x, int y, int z, Block block, EntityPlayer player) { - - ItemStack held = player.getHeldItem(); - - IShearable target = (IShearable) block; - if(target.isShearable(held, player.worldObj, x, y, z)) { - ArrayList drops = target.onSheared(held, player.worldObj, x, y, z, EnchantmentHelper.getEnchantmentLevel(Enchantment.fortune.effectId, held)); - Random rand = new Random(); - - for(ItemStack stack : drops) { - float f = 0.7F; - double d = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; - double d1 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; - double d2 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; - EntityItem entityitem = new EntityItem(player.worldObj, (double) x + d, (double) y + d1, (double) z + d2, stack); - entityitem.delayBeforeCanPickup = 10; - player.worldObj.spawnEntityInWorld(entityitem); - } - - held.damageItem(1, player); - player.addStat(StatList.mineBlockStatArray[Block.getIdFromBlock(block)], 1); - } - } - - public static void standardDigPost(World world, int x, int y, int z, EntityPlayerMP player) { - - Block block = world.getBlock(x, y, z); - int l = world.getBlockMetadata(x, y, z); - world.playAuxSFXAtEntity(player, 2001, x, y, z, Block.getIdFromBlock(block) + (world.getBlockMetadata(x, y, z) << 12)); - boolean flag = false; - - if(player.capabilities.isCreativeMode) { - flag = removeBlock(world, x, y, z, false, player); - player.playerNetServerHandler.sendPacket(new S23PacketBlockChange(x, y, z, world)); - } else { - ItemStack itemstack = player.getCurrentEquippedItem(); - boolean flag1 = block.canHarvestBlock(player, l); - - if(itemstack != null) { - itemstack.func_150999_a(world, block, x, y, z, player); - - if(itemstack.stackSize == 0) { - player.destroyCurrentEquippedItem(); - } - } - - flag = removeBlock(world, x, y, z, flag1, player); - if(flag && flag1) { - block.harvestBlock(world, player, x, y, z, l); - } - } - - /* - * // Drop experience if (!player.capabilities.isCreativeMode && flag && - * event != null) { block.dropXpOnBlockBreak(world, x, y, z, - * event.getExpToDrop()); } - */ - } - - public static boolean removeBlock(World world, int x, int y, int z, boolean canHarvest, EntityPlayerMP player) { - Block block = world.getBlock(x, y, z); - int l = world.getBlockMetadata(x, y, z); - block.onBlockHarvested(world, x, y, z, l, player); - boolean flag = block.removedByPlayer(world, player, x, y, z, canHarvest); - - if(flag) { - block.onBlockDestroyedByPlayer(world, x, y, z, l); - } - - return flag; - } -} diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java index de6cafdb4..784a6a764 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java @@ -25,7 +25,7 @@ public class ItemSwordAbility extends ItemSword { // was there a reason for this to be private? protected float damage; protected double movement; - private AvailableAbilities hitAbilities = new AvailableAbilities(); + private AvailableAbilities abilities = new AvailableAbilities(); public ItemSwordAbility(float damage, double movement, ToolMaterial material) { super(material); @@ -33,8 +33,8 @@ public class ItemSwordAbility extends ItemSword { this.movement = movement; } - public ItemSwordAbility addHitAbility(IWeaponAbility weaponAbility, int level) { - this.hitAbilities.addAbility(weaponAbility, level); + public ItemSwordAbility addAbility(IWeaponAbility weaponAbility, int level) { + this.abilities.addAbility(weaponAbility, level); return this; } @@ -56,8 +56,8 @@ public class ItemSwordAbility extends ItemSword { if(this == ModItems.mese_gavel) attacker.worldObj.playSoundAtEntity(victim, "hbm:weapon.whack", 3.0F, 1.F); - this.hitAbilities.get().forEach((ability, level) -> { - ((IWeaponAbility)ability).onHit(level, attacker.worldObj, (EntityPlayer) attacker, victim, this); + this.abilities.getWeaponAbilities().forEach((ability, level) -> { + ability.onHit(level, attacker.worldObj, (EntityPlayer) attacker, victim, this); }); } @@ -77,7 +77,7 @@ public class ItemSwordAbility extends ItemSword { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - hitAbilities.addInformation(list); + abilities.addInformation(list); } protected boolean canOperate(ItemStack stack) { diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 1dad676cf..1a844dee9 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Locale; +import java.util.Random; import java.util.Set; import com.google.common.collect.HashMultimap; @@ -11,24 +12,30 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.hbm.inventory.gui.GUIScreenToolAbility; import com.hbm.handler.HbmKeybinds; +import com.hbm.blocks.ModBlocks; import com.hbm.extprop.HbmPlayerProps; -import com.hbm.handler.ToolAbility; -import com.hbm.handler.ToolAbility.*; +import com.hbm.handler.ability.AvailableAbilities; +import com.hbm.handler.ability.IBaseAbility; +import com.hbm.handler.ability.IToolAreaAbility; +import com.hbm.handler.ability.IToolHarvestAbility; +import com.hbm.handler.ability.ToolPreset; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.tileentity.IGUIProvider; -import com.hbm.util.ChatBuilder; -import com.hbm.handler.WeaponAbility; import api.hbm.item.IDepthRockTool; 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.Minecraft; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; @@ -37,10 +44,17 @@ import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.play.client.C07PacketPlayerDigging; +import net.minecraft.network.play.server.S23PacketBlockChange; +import net.minecraft.stats.StatList; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.common.ForgeHooks; +import net.minecraftforge.common.IShearable; +import net.minecraftforge.event.world.BlockEvent; -public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDepthRockTool, IGUIProvider { +public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIProvider { protected boolean isShears = false; protected EnumToolType toolType; @@ -48,9 +62,9 @@ public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDept //was there a reason for this to be private? protected float damage; protected double movement; - protected List breakAbility = new ArrayList() {{ add(null); }}; - protected List hitAbility = new ArrayList(); - + protected AvailableAbilities availableAbilities = new AvailableAbilities().addToolAbilities(); + protected boolean rockBreaker = false; + public static enum EnumToolType { PICKAXE( @@ -102,13 +116,14 @@ public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDept } } - public ItemToolAbility addBreakAbility(ToolAbility breakAbility) { - this.breakAbility.add(breakAbility); + public ItemToolAbility addAbility(IBaseAbility ability, int level) { + this.availableAbilities.addAbility(ability, level); + return this; } - public ItemToolAbility addHitAbility(WeaponAbility weaponAbility) { - this.hitAbility.add(weaponAbility); + public ItemToolAbility setDepthRockBreaker() { + this.rockBreaker = true; return this; } @@ -124,14 +139,14 @@ public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDept public boolean hitEntity(ItemStack stack, EntityLivingBase victim, EntityLivingBase attacker) { - if(!attacker.worldObj.isRemote && !this.hitAbility.isEmpty() && attacker instanceof EntityPlayer && canOperate(stack)) { + if(!attacker.worldObj.isRemote && attacker instanceof EntityPlayer && canOperate(stack)) { - for(WeaponAbility ability : this.hitAbility) { - ability.onHit(attacker.worldObj, (EntityPlayer) attacker, victim, this); - } + this.availableAbilities.getWeaponAbilities().forEach((ability, level) -> { + ability.onHit(level, attacker.worldObj, (EntityPlayer) attacker, victim, this); + }); } - stack.damageItem(2, attacker); + stack.damageItem(1, attacker); return true; } @@ -141,10 +156,19 @@ public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDept World world = player.worldObj; Block block = world.getBlock(x, y, z); - int meta = world.getBlockMetadata(x, y, z); - if(!world.isRemote && (canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) && this.getCurrentAbility(stack) != null && canOperate(stack)) - return this.getCurrentAbility(stack).onDig(world, x, y, z, player, block, meta, this); + if(!world.isRemote && (canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) && canOperate(stack)) { + Configuration config = getConfiguration(stack); + ToolPreset preset = config.getActivePreset(); + + preset.harvestAbility.preHarvestAll(preset.harvestAbilityLevel, world, player); + + boolean result = preset.areaAbility.onDig(preset.areaAbilityLevel, world, x, y, z, player, this); + + preset.harvestAbility.postHarvestAll(preset.harvestAbilityLevel, world, player); + + return result; + } return false; } @@ -169,18 +193,35 @@ public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDept return super.getDigSpeed(stack, block, meta); } + public boolean canOperate(ItemStack stack) { + return true; + } + @Override public boolean canHarvestBlock(Block block, ItemStack stack) { if(!canOperate(stack)) return false; - if(this.getCurrentAbility(stack) instanceof SilkAbility) + if(this.getConfiguration(stack).getActivePreset().harvestAbility == IToolHarvestAbility.SILK) return true; return getDigSpeed(stack, block, 0) > 1; } + @Override + public boolean canBreakRock(World world, EntityPlayer player, ItemStack tool, Block block, int x, int y, int z) { + return canOperate(tool) && this.rockBreaker; + } + + public boolean canShearBlock(Block block, ItemStack stack, World world, int x, int y, int z) { + return this.isShears(stack) && block instanceof IShearable && ((IShearable) block).isShearable(stack, world, x, y, z); + } + + public boolean isShears(ItemStack stack) { + return this.isShears; + } + @Override public Multimap getItemAttributeModifiers() { @@ -192,38 +233,13 @@ public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDept @SideOnly(Side.CLIENT) public boolean hasEffect(ItemStack stack) { - return getCurrentAbility(stack) != null || stack.isItemEnchanted(); + return stack.isItemEnchanted() || !getConfiguration(stack).getActivePreset().isNone(); } @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - if(this.breakAbility.size() > 1) { - list.add("Abilities: "); - - for(ToolAbility ability : this.breakAbility) { - - if(ability != null) { - - if(getCurrentAbility(stack) == ability) - list.add(" >" + EnumChatFormatting.GOLD + ability.getFullName()); - else - list.add(" " + EnumChatFormatting.GOLD + ability.getFullName()); - } - } - - list.add("Right click to cycle through abilities!"); - list.add("Sneak-click to turn ability off!"); - } - - if(!this.hitAbility.isEmpty()) { - - list.add("Weapon modifiers: "); - - for(WeaponAbility ability : this.hitAbility) { - list.add(" " + EnumChatFormatting.RED + ability.getFullName()); - } - } + availableAbilities.addInformation(list); if(this.rockBreaker) { list.add(""); @@ -233,85 +249,236 @@ public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDept public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if(this.breakAbility.size() < 2 || !canOperate(stack)) + if(!canOperate(stack)) return super.onItemRightClick(stack, world, player); + + Configuration config = getConfiguration(stack); if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) { if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); return stack; } - if(world.isRemote) + if(config.presets.size() < 2 || world.isRemote) return super.onItemRightClick(stack, world, player); - int i = getAbility(stack); - i++; - if(player.isSneaking()) - i = 0; - - setAbility(stack, i % this.breakAbility.size()); - - while(getCurrentAbility(stack) != null && !getCurrentAbility(stack).isAllowed()) { - - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Ability ").nextTranslation(getCurrentAbility(stack).getName()).next(getCurrentAbility(stack).getExtension() + " is blacklisted!]").colorAll(EnumChatFormatting.RED).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); - - - i++; - setAbility(stack, i % this.breakAbility.size()); - } - - if(getCurrentAbility(stack) != null) { - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Enabled ").nextTranslation(getCurrentAbility(stack).getName()).next(getCurrentAbility(stack).getExtension() + "]").colorAll(EnumChatFormatting.YELLOW).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); + if(player.isSneaking()) { + config.currentPreset = 0; } else { - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); + config.currentPreset = (config.currentPreset + 1) % config.presets.size(); } - world.playSoundAtEntity(player, "random.orb", 0.25F, getCurrentAbility(stack) == null ? 0.75F : 1.25F); + setConfiguration(stack, config); + + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(config.getActivePreset().getMessage(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); + + world.playSoundAtEntity(player, "random.orb", 0.25F, config.getActivePreset().isNone() ? 0.75F : 1.25F); return stack; } - private ToolAbility getCurrentAbility(ItemStack stack) { - int ability = getAbility(stack) % this.breakAbility.size(); - return this.breakAbility.get(ability); + public void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playerEntity, int refX, int refY, int refZ) { + + if(world.isAirBlock(x, y, z)) + return; + + if(!(playerEntity instanceof EntityPlayerMP)) + return; + + EntityPlayerMP player = (EntityPlayerMP) playerEntity; + ItemStack stack = player.getHeldItem(); + + Block block = world.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + + if(!(canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) || block == Blocks.bedrock || block == ModBlocks.stone_keyhole) + return; + + Block refBlock = world.getBlock(refX, refY, refZ); + float refStrength = ForgeHooks.blockStrength(refBlock, player, world, refX, refY, refZ); + float strength = ForgeHooks.blockStrength(block, player, world, x, y, z); + + if(!ForgeHooks.canHarvestBlock(block, player, meta) || refStrength / strength > 10f || refBlock.getBlockHardness(world, refX, refY, refZ) < 0) + return; + + BlockEvent.BreakEvent event = ForgeHooks.onBlockBreakEvent(world, player.theItemInWorldManager.getGameType(), player, x, y, z); + if(event.isCanceled()) + return; + + Configuration config = getConfiguration(stack); + ToolPreset preset = config.getActivePreset(); + + preset.harvestAbility.onHarvestBlock(preset.harvestAbilityLevel, world, x, y, z, player, block, meta); } - private int getAbility(ItemStack stack) { + /** Assumes a canShearBlock check has passed, will most likely crash otherwise! */ + public static void shearBlock(World world, int x, int y, int z, Block block, EntityPlayer player) { + + ItemStack held = player.getHeldItem(); - if(stack.hasTagCompound()) - return stack.stackTagCompound.getInteger("ability"); + IShearable target = (IShearable) block; + if(target.isShearable(held, player.worldObj, x, y, z)) { + ArrayList drops = target.onSheared(held, player.worldObj, x, y, z, EnchantmentHelper.getEnchantmentLevel(Enchantment.fortune.effectId, held)); + Random rand = new Random(); - return 0; + for(ItemStack stack : drops) { + float f = 0.7F; + double d = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; + double d1 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; + double d2 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; + EntityItem entityitem = new EntityItem(player.worldObj, (double) x + d, (double) y + d1, (double) z + d2, stack); + entityitem.delayBeforeCanPickup = 10; + player.worldObj.spawnEntityInWorld(entityitem); + } + + held.damageItem(1, player); + player.addStat(StatList.mineBlockStatArray[Block.getIdFromBlock(block)], 1); + } } - private void setAbility(ItemStack stack, int ability) { + public static void standardDigPost(World world, int x, int y, int z, EntityPlayerMP player) { + Block block = world.getBlock(x, y, z); + int l = world.getBlockMetadata(x, y, z); + world.playAuxSFXAtEntity(player, 2001, x, y, z, Block.getIdFromBlock(block) + (world.getBlockMetadata(x, y, z) << 12)); + boolean flag = false; + + if(player.capabilities.isCreativeMode) { + flag = removeBlock(world, x, y, z, false, player); + player.playerNetServerHandler.sendPacket(new S23PacketBlockChange(x, y, z, world)); + } else { + ItemStack itemstack = player.getCurrentEquippedItem(); + boolean flag1 = block.canHarvestBlock(player, l); + + flag = removeBlock(world, x, y, z, flag1, player); + + if(itemstack != null) { + itemstack.func_150999_a(world, block, x, y, z, player); + + if(itemstack.stackSize == 0) { + player.destroyCurrentEquippedItem(); + } + } + + // TODO: Missing from other method, may be unneeded + if(flag && flag1) { + block.harvestBlock(world, player, x, y, z, l); + } + + // TODO: Added from other method, may be unneeded + Minecraft.getMinecraft().getNetHandler().addToSendQueue(new C07PacketPlayerDigging(2, x, y, z, Minecraft.getMinecraft().objectMouseOver.sideHit)); + } + + // Why was this commented out? + // Drop experience + // if (!player.capabilities.isCreativeMode && flag && event != null) { + // block.dropXpOnBlockBreak(world, x, y, z, event.getExpToDrop()); + // } + } + + public static boolean removeBlock(World world, int x, int y, int z, boolean canHarvest, EntityPlayerMP player) { + Block block = world.getBlock(x, y, z); + int l = world.getBlockMetadata(x, y, z); + block.onBlockHarvested(world, x, y, z, l, player); + boolean flag = block.removedByPlayer(world, player, x, y, z, canHarvest); + + if(flag) { + block.onBlockDestroyedByPlayer(world, x, y, z, l); + } + + return flag; + } + + public static class Configuration { + public List presets; + public int currentPreset; + + public Configuration() { + this.presets = null; + this.currentPreset = 0; + } + + public Configuration(List presets, int currentPreset) { + this.presets = presets; + this.currentPreset = currentPreset; + } + + public void writeToNBT(NBTTagCompound nbt) { + nbt.setInteger("ability", currentPreset); + + NBTTagList nbtPresets = new NBTTagList(); + + for(ToolPreset preset : presets) { + NBTTagCompound nbtPreset = new NBTTagCompound(); + preset.writeToNBT(nbtPreset); + nbtPresets.appendTag(nbtPreset); + } + + nbt.setTag("abilityPresets", nbtPresets); + } + + public void readFromNBT(NBTTagCompound nbt) { + currentPreset = nbt.getInteger("ability"); + + NBTTagList nbtPresets = nbt.getTagList("abilityPresets", 10); + + presets = new ArrayList(nbtPresets.tagCount()); + + for(int i = 0; i < presets.size(); i++) { + NBTTagCompound nbtPreset = nbtPresets.getCompoundTagAt(i); + ToolPreset preset = new ToolPreset(); + preset.readFromNBT(nbtPreset); + presets.add(preset); + } + + currentPreset = Math.max(0, Math.min(currentPreset, presets.size() - 1)); + } + + public void reset(AvailableAbilities availableAbilities) { + currentPreset = 0; + + presets = new ArrayList(availableAbilities.size()); + presets.add(new ToolPreset()); + + availableAbilities.getToolAreaAbilities().forEach((ability, level) -> { + presets.add(new ToolPreset(ability, level, IToolHarvestAbility.NONE, 0)); + }); + + availableAbilities.getToolHarvestAbilities().forEach((ability, level) -> { + presets.add(new ToolPreset(IToolAreaAbility.NONE, 0, ability, level)); + }); + } + + public void restrictTo(AvailableAbilities availableAbilities) { + for (ToolPreset preset : presets) { + preset.restrictTo(availableAbilities); + } + } + + public ToolPreset getActivePreset() { + return presets.get(currentPreset); + } + } + + public Configuration getConfiguration(ItemStack stack) { + Configuration config = new Configuration(); + + if(!stack.hasTagCompound()) { + config.reset(availableAbilities); + return config; + } + + config.readFromNBT(stack.stackTagCompound); + config.restrictTo(availableAbilities); + return config; + } + + public void setConfiguration(ItemStack stack, Configuration config) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setInteger("ability", ability); - } - - public boolean canOperate(ItemStack stack) { - return true; - } - - public ItemToolAbility setDepthRockBreaker() { - this.rockBreaker = true; - return this; - } - - private boolean rockBreaker = false; - - @Override - public boolean canBreakRock(World world, EntityPlayer player, ItemStack tool, Block block, int x, int y, int z) { - return canOperate(tool) && this.rockBreaker; - } - - @Override - public boolean isShears(ItemStack stack) { - return this.isShears; + config.writeToNBT(stack.getTagCompound()); } @Override @@ -322,6 +489,6 @@ public class ItemToolAbility extends ItemTool implements IItemWithAbility, IDept @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIScreenToolAbility(this); + return new GUIScreenToolAbility(this.availableAbilities); } } From b79b499b214f2019a1950dbd7945bbef2b9937b8 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sat, 17 May 2025 22:03:37 +0300 Subject: [PATCH 036/181] Add backwards compatibility in tool NBT --- src/main/java/com/hbm/items/tool/ItemToolAbility.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 1a844dee9..256483548 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -464,7 +464,7 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro public Configuration getConfiguration(ItemStack stack) { Configuration config = new Configuration(); - if(!stack.hasTagCompound()) { + if(!stack.hasTagCompound() || !stack.stackTagCompound.hasKey("ability") || !stack.stackTagCompound.hasKey("abilityPresets")) { config.reset(availableAbilities); return config; } From 239454e23cb762d67681db9d5d10757186918cf9 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 01:34:50 +0300 Subject: [PATCH 037/181] Fix stuff --- .../handler/ability/AvailableAbilities.java | 17 ++++--- .../inventory/gui/GUIScreenToolAbility.java | 45 +++++++++++++------ .../com/hbm/items/tool/ItemToolAbility.java | 25 ++++++++--- 3 files changed, 63 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java index 0312d97b3..e4662a0c0 100644 --- a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java +++ b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java @@ -1,11 +1,12 @@ package com.hbm.handler.ability; import java.util.Collections; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import com.google.common.base.Functions; import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; @@ -14,7 +15,8 @@ import net.minecraft.util.EnumChatFormatting; // All abilities available on a given tool public class AvailableAbilities { - private HashMap abilities = new HashMap(); + // Insertion order matters + private LinkedHashMap abilities = new LinkedHashMap(); public AvailableAbilities() {} @@ -63,15 +65,15 @@ public class AvailableAbilities { } public Map getToolAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility || a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> a, a -> abilities.get(a))); + return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility || a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> a, a -> abilities.get(a), (x, y) -> y, LinkedHashMap::new)); } public Map getToolAreaAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility).collect(Collectors.toMap(a -> (IToolAreaAbility)a, a -> abilities.get(a))); + return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility).collect(Collectors.toMap(a -> (IToolAreaAbility)a, a -> abilities.get(a), (x, y) -> y, LinkedHashMap::new)); } public Map getToolHarvestAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> (IToolHarvestAbility)a, a -> abilities.get(a))); + return abilities.keySet().stream().filter(a -> a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> (IToolHarvestAbility)a, a -> abilities.get(a), (x, y) -> y, LinkedHashMap::new)); } public int size() { @@ -90,7 +92,10 @@ public class AvailableAbilities { list.add("Abilities: "); toolAbilities.forEach((ability, level) -> { - list.add(" " + EnumChatFormatting.GOLD + ability.getFullName(level)); + String fullName = ability.getFullName(level); + if (!fullName.isEmpty()) { + list.add(" " + EnumChatFormatting.GOLD + fullName); + } }); list.add("Right click to cycle through abilities!"); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index 13dd55fda..bf2e9448d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -11,12 +11,12 @@ import com.hbm.handler.ability.IBaseAbility; import com.hbm.handler.ability.IToolAreaAbility; import com.hbm.handler.ability.IToolHarvestAbility; import com.hbm.handler.ability.ToolPreset; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.tool.ItemToolAbility; -import com.hbm.items.tool.ItemToolAbility.Configuration; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toclient.PlayerInformPacket; +import com.hbm.packet.toserver.NBTItemControlPacket; import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; @@ -81,6 +81,7 @@ public class GUIScreenToolAbility extends GuiScreen { super(); this.availableAbilities = availableAbilities; + this.xSize = 186; // Note: increased dynamically this.ySize = 76; @@ -91,10 +92,12 @@ public class GUIScreenToolAbility extends GuiScreen { @Override public void initGui() { this.toolStack = this.mc.thePlayer.getHeldItem(); - + if(this.toolStack == null) { doClose(); } + + this.config = ((ItemToolAbility) this.toolStack.getItem()).getConfiguration(this.toolStack); guiLeft = (width - xSize) / 2; guiTop = (height - ySize) / 2; @@ -239,13 +242,17 @@ public class GUIScreenToolAbility extends GuiScreen { return x <= mouseX && x + width > mouseX && y <= mouseY && y + height > mouseY; } - @Override - public void updateScreen() { - EntityPlayer player = this.mc.thePlayer; - - if(player.getHeldItem() == null || player.getHeldItem() != toolStack) - player.closeScreen(); - } + // Note: This spuriously trigger way too often, and I can't see why. I'll disable it altogether, I guess + // @Override + // public void updateScreen() { + // EntityPlayer player = this.mc.thePlayer; + // + // if(player.getHeldItem() == null || player.getHeldItem().getItem() != toolStack.getItem()) { + // // TODO: Remove + // MainRegistry.logger.warn("GUIScreenToolAbility.updateScreen: toolStack changed!"); + // player.closeScreen(); + // } + // } @Override public void handleMouseInput() { @@ -264,9 +271,16 @@ public class GUIScreenToolAbility extends GuiScreen { ToolPreset activePreset = config.getActivePreset(); // Process switches - handleSwitchesClicked(abilitiesArea, activePreset.areaAbility, activePreset.areaAbilityLevel, hoverIdxArea, mouseX, mouseY); - handleSwitchesClicked(abilitiesHarvest, activePreset.harvestAbility, activePreset.harvestAbilityLevel, hoverIdxHarvest, mouseX, mouseY); - + Pair clickResult; + + clickResult = handleSwitchesClicked(abilitiesArea, activePreset.areaAbility, activePreset.areaAbilityLevel, hoverIdxArea, mouseX, mouseY); + activePreset.areaAbility = (IToolAreaAbility)clickResult.key; + activePreset.areaAbilityLevel = clickResult.value; + + clickResult = handleSwitchesClicked(abilitiesHarvest, activePreset.harvestAbility, activePreset.harvestAbilityLevel, hoverIdxHarvest, mouseX, mouseY); + activePreset.harvestAbility = (IToolHarvestAbility)clickResult.key; + activePreset.harvestAbilityLevel = clickResult.value; + // Process extra buttons if (hoverIdxExtraBtn != -1) { switch (hoverIdxExtraBtn) { @@ -284,6 +298,7 @@ public class GUIScreenToolAbility extends GuiScreen { // Allow quick-closing if (!isInAABB(mouseX, mouseY, guiLeft, guiTop, xSize, ySize)) { + MainRegistry.logger.info("GUIScreenToolAbility.mouseClicked: Clicked outside GUI, closing..."); doClose(); } } @@ -370,6 +385,10 @@ public class GUIScreenToolAbility extends GuiScreen { } protected void doClose() { + // A bit messy, but I suppose it works + ((ItemToolAbility) this.toolStack.getItem()).setConfiguration(toolStack, config); + PacketDispatcher.wrapper.sendToServer(new NBTItemControlPacket(this.toolStack.getTagCompound())); + this.mc.thePlayer.closeScreen(); MainRegistry.proxy.displayTooltip(config.getActivePreset().getMessage().getFormattedText(), MainRegistry.proxy.ID_TOOLABILITY); diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 256483548..2c40e3db3 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -11,6 +11,7 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.hbm.inventory.gui.GUIScreenToolAbility; +import com.hbm.items.IItemControlReceiver; import com.hbm.handler.HbmKeybinds; import com.hbm.blocks.ModBlocks; import com.hbm.extprop.HbmPlayerProps; @@ -22,9 +23,11 @@ import com.hbm.handler.ability.ToolPreset; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.PlayerInformPacket; +import com.hbm.packet.toserver.NBTItemControlPacket; import com.hbm.tileentity.IGUIProvider; import api.hbm.item.IDepthRockTool; +import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -54,7 +57,7 @@ import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.IShearable; import net.minecraftforge.event.world.BlockEvent; -public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIProvider { +public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIProvider, IItemControlReceiver { protected boolean isShears = false; protected EnumToolType toolType; @@ -251,13 +254,13 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro if(!canOperate(stack)) return super.onItemRightClick(stack, world, player); - - Configuration config = getConfiguration(stack); if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) { if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); return stack; } + + Configuration config = getConfiguration(stack); if(config.presets.size() < 2 || world.isRemote) return super.onItemRightClick(stack, world, player); @@ -425,7 +428,7 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro presets = new ArrayList(nbtPresets.tagCount()); - for(int i = 0; i < presets.size(); i++) { + for(int i = 0; i < nbtPresets.tagCount(); i++) { NBTTagCompound nbtPreset = nbtPresets.getCompoundTagAt(i); ToolPreset preset = new ToolPreset(); preset.readFromNBT(nbtPreset); @@ -442,10 +445,14 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro presets.add(new ToolPreset()); availableAbilities.getToolAreaAbilities().forEach((ability, level) -> { + if (ability == IToolAreaAbility.NONE) + return; presets.add(new ToolPreset(ability, level, IToolHarvestAbility.NONE, 0)); }); availableAbilities.getToolHarvestAbilities().forEach((ability, level) -> { + if (ability == IToolHarvestAbility.NONE) + return; presets.add(new ToolPreset(IToolAreaAbility.NONE, 0, ability, level)); }); } @@ -478,7 +485,15 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); - config.writeToNBT(stack.getTagCompound()); + config.writeToNBT(stack.stackTagCompound); + } + + @Override + public void receiveControl(ItemStack stack, NBTTagCompound data) { + Configuration config = new Configuration(); + config.readFromNBT(data); + config.restrictTo(availableAbilities); + setConfiguration(stack, config); } @Override From e23cfab649bb8a26e70176bb03703551d6f6ac5f Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 13:16:56 +0300 Subject: [PATCH 038/181] Make explosion incompatible with harvest abilities --- .../hbm/handler/ability/IToolAreaAbility.java | 10 ++++++ .../com/hbm/handler/ability/ToolPreset.java | 5 +++ .../inventory/gui/GUIScreenToolAbility.java | 34 ++++++++++++++----- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index 727d602e5..e49cb4c30 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -29,6 +29,11 @@ public interface IToolAreaAbility extends IBaseAbility { // (neither for the original block nor for the extras) public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool); + // Whether breakExtraBlock is called at all. Currently only false for explosion + public default boolean allowsHarvest(int level) { + return true; + } + // region handlers public static final IToolAreaAbility NONE = new IToolAreaAbility() { @Override @@ -231,6 +236,11 @@ public interface IToolAreaAbility extends IBaseAbility { return " (" + strengthAtLevel[level] + ")"; } + @Override + public boolean allowsHarvest(int level) { + return false; + } + @Override public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { float strength = strengthAtLevel[level]; diff --git a/src/main/java/com/hbm/handler/ability/ToolPreset.java b/src/main/java/com/hbm/handler/ability/ToolPreset.java index caa8956ae..ce8f36dd5 100644 --- a/src/main/java/com/hbm/handler/ability/ToolPreset.java +++ b/src/main/java/com/hbm/handler/ability/ToolPreset.java @@ -80,6 +80,11 @@ public class ToolPreset { areaAbilityLevel = 0; } + if (!areaAbility.allowsHarvest(areaAbilityLevel)) { + harvestAbility = IToolHarvestAbility.NONE; + harvestAbilityLevel = 0; + } + int maxHarvestLevel = availableAbilities.maxLevel(harvestAbility); if (maxHarvestLevel == -1) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index bf2e9448d..9ff0d5682 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -11,7 +11,6 @@ import com.hbm.handler.ability.IBaseAbility; import com.hbm.handler.ability.IToolAreaAbility; import com.hbm.handler.ability.IToolHarvestAbility; import com.hbm.handler.ability.ToolPreset; -import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.tool.ItemToolAbility; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -68,14 +67,13 @@ public class GUIScreenToolAbility extends GuiScreen { abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.MERCURY, 224, 107)); } - // TODO: Use availableAbilities protected ItemStack toolStack; - AvailableAbilities availableAbilities; - ItemToolAbility.Configuration config; + protected AvailableAbilities availableAbilities; + protected ItemToolAbility.Configuration config; - int hoverIdxArea = -1; - int hoverIdxHarvest = -1; - int hoverIdxExtraBtn = -1; + protected int hoverIdxHarvest = -1; + protected int hoverIdxArea = -1; + protected int hoverIdxExtraBtn = -1; public GUIScreenToolAbility(AvailableAbilities availableAbilities) { super(); @@ -184,7 +182,7 @@ public class GUIScreenToolAbility extends GuiScreen { for (int i = 0; i < abilities.size(); ++i) { AbilityInfo abilityInfo = abilities.get(i); - boolean available = availableAbilities.supportsAbility(abilityInfo.ability); + boolean available = abilityAvailable(abilityInfo.ability); boolean selected = abilityInfo.ability == selectedAbility; // Draw switch @@ -242,6 +240,19 @@ public class GUIScreenToolAbility extends GuiScreen { return x <= mouseX && x + width > mouseX && y <= mouseY && y + height > mouseY; } + private boolean abilityAvailable(IBaseAbility ability) { + if (!availableAbilities.supportsAbility(ability)) { + return false; + } + + ToolPreset activePreset = config.getActivePreset(); + if (ability instanceof IToolHarvestAbility && !activePreset.areaAbility.allowsHarvest(activePreset.areaAbilityLevel)) { + return false; + } + + return true; + } + // Note: This spuriously trigger way too often, and I can't see why. I'll disable it altogether, I guess // @Override // public void updateScreen() { @@ -281,6 +292,11 @@ public class GUIScreenToolAbility extends GuiScreen { activePreset.harvestAbility = (IToolHarvestAbility)clickResult.key; activePreset.harvestAbilityLevel = clickResult.value; + if (!activePreset.areaAbility.allowsHarvest(activePreset.areaAbilityLevel)) { + activePreset.harvestAbility = IToolHarvestAbility.NONE; + activePreset.harvestAbilityLevel = 0; + } + // Process extra buttons if (hoverIdxExtraBtn != -1) { switch (hoverIdxExtraBtn) { @@ -306,7 +322,7 @@ public class GUIScreenToolAbility extends GuiScreen { protected Pair handleSwitchesClicked(List abilities, IBaseAbility selectedAbility, int selectedLevel, int hoverIdx, int mouseX, int mouseY) { if (hoverIdx != -1) { IBaseAbility hoveredAbility = abilities.get(hoverIdx).ability; - boolean available = availableAbilities.supportsAbility(hoveredAbility); + boolean available = abilityAvailable(hoveredAbility); if (available) { int availableLevels = availableAbilities.maxLevel(hoveredAbility) + 1; From ce64270b2ca1986b74dac9d0ab519d45a3bfe459 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 13:42:11 +0300 Subject: [PATCH 039/181] Sort abilities consistently --- .../handler/ability/AvailableAbilities.java | 19 ++++++- .../com/hbm/handler/ability/IBaseAbility.java | 11 +++- .../hbm/handler/ability/IToolAreaAbility.java | 22 ++++++++ .../handler/ability/IToolHarvestAbility.java | 42 +++++++++++++++ .../hbm/handler/ability/IWeaponAbility.java | 52 +++++++++++++++++++ .../com/hbm/items/tool/ItemToolAbility.java | 9 ++++ 6 files changed, 152 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java index e4662a0c0..650f22a4b 100644 --- a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java +++ b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java @@ -1,6 +1,7 @@ package com.hbm.handler.ability; import java.util.Collections; +import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -91,7 +92,14 @@ public class AvailableAbilities { if (!toolAbilities.isEmpty()) { list.add("Abilities: "); - toolAbilities.forEach((ability, level) -> { + toolAbilities.entrySet().stream().sorted( + Comparator + .comparing(Map.Entry::getKey) + .thenComparing(Map.Entry::getValue) + ).forEach(entry -> { + IBaseAbility ability = entry.getKey(); + int level = entry.getValue(); + String fullName = ability.getFullName(level); if (!fullName.isEmpty()) { list.add(" " + EnumChatFormatting.GOLD + fullName); @@ -108,7 +116,14 @@ public class AvailableAbilities { if (!weaponAbilities.isEmpty()) { list.add("Weapon modifiers: "); - weaponAbilities.forEach((ability, level) -> { + weaponAbilities.entrySet().stream().sorted( + Comparator + .comparing(Map.Entry::getKey) + .thenComparing(Map.Entry::getValue) + ).forEach(entry -> { + IWeaponAbility ability = entry.getKey(); + int level = entry.getValue(); + list.add(" " + EnumChatFormatting.RED + ability.getFullName(level)); }); } diff --git a/src/main/java/com/hbm/handler/ability/IBaseAbility.java b/src/main/java/com/hbm/handler/ability/IBaseAbility.java index 007d25e81..9999bcaa0 100644 --- a/src/main/java/com/hbm/handler/ability/IBaseAbility.java +++ b/src/main/java/com/hbm/handler/ability/IBaseAbility.java @@ -2,7 +2,7 @@ package com.hbm.handler.ability; import net.minecraft.client.resources.I18n; -public interface IBaseAbility { +public interface IBaseAbility extends Comparable { public String getName(); public default String getExtension(int level) { @@ -24,4 +24,13 @@ public interface IBaseAbility { default int levels() { return 1; } + + default int sortOrder() { + return hashCode(); + } + + @Override + default int compareTo(IBaseAbility o) { + return sortOrder() - o.sortOrder(); + } } diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index e49cb4c30..4f4994bbd 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -34,12 +34,19 @@ public interface IToolAreaAbility extends IBaseAbility { return true; } + public final static int SORT_ORDER_BASE = 0; + // region handlers public static final IToolAreaAbility NONE = new IToolAreaAbility() { @Override public String getName() { return ""; } + + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 0; + } @Override public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { @@ -70,6 +77,11 @@ public interface IToolAreaAbility extends IBaseAbility { return " (" + radiusAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 1; + } + // Note: if reusing it across different instatces of a tool // is a problem here, then it had already been one before // the refactor! The solution is to simply make this a local @@ -193,6 +205,11 @@ public interface IToolAreaAbility extends IBaseAbility { return " (" + rangeAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 2; + } + @Override public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { int range = rangeAtLevel[level]; @@ -241,6 +258,11 @@ public interface IToolAreaAbility extends IBaseAbility { return false; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 3; + } + @Override public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { float strength = strengthAtLevel[level]; diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java index 82bbca88c..99cbea697 100644 --- a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -41,6 +41,8 @@ public interface IToolHarvestAbility extends IBaseAbility { } } + public final static int SORT_ORDER_BASE = 100; + // region handlers public static final IToolHarvestAbility NONE = new IToolHarvestAbility() { @Override @@ -48,6 +50,11 @@ public interface IToolHarvestAbility extends IBaseAbility { return ""; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 0; + } + @Override public boolean skipDefaultDrops(int level) { return false; @@ -65,6 +72,11 @@ public interface IToolHarvestAbility extends IBaseAbility { return ToolConfig.abilitySilk; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 1; + } + @Override public boolean skipDefaultDrops(int level) { return false; @@ -109,6 +121,11 @@ public interface IToolHarvestAbility extends IBaseAbility { return " (" + powerAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 2; + } + @Override public boolean skipDefaultDrops(int level) { return false; @@ -141,6 +158,11 @@ public interface IToolHarvestAbility extends IBaseAbility { return ToolConfig.abilityFurnace; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 3; + } + @Override public boolean skipDefaultDrops(int level) { return true; @@ -184,6 +206,11 @@ public interface IToolHarvestAbility extends IBaseAbility { return ToolConfig.abilityShredder; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 4; + } + @Override public boolean skipDefaultDrops(int level) { return true; @@ -216,6 +243,11 @@ public interface IToolHarvestAbility extends IBaseAbility { return ToolConfig.abilityCentrifuge; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 5; + } + @Override public boolean skipDefaultDrops(int level) { return true; @@ -252,6 +284,11 @@ public interface IToolHarvestAbility extends IBaseAbility { return ToolConfig.abilityCrystallizer; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 6; + } + @Override public boolean skipDefaultDrops(int level) { return true; @@ -284,6 +321,11 @@ public interface IToolHarvestAbility extends IBaseAbility { return ToolConfig.abilityMercury; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 7; + } + @Override public boolean skipDefaultDrops(int level) { return true; diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java index 92f0d3f1d..97c604c54 100644 --- a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -38,6 +38,8 @@ public interface IWeaponAbility extends IBaseAbility { // Note: tool is currently unused in weapon abilities public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool); + public final static int SORT_ORDER_BASE = 200; + // region handlers public static final IWeaponAbility NONE = new IWeaponAbility() { @Override @@ -45,6 +47,11 @@ public interface IWeaponAbility extends IBaseAbility { return ""; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 0; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) {} }; @@ -67,6 +74,11 @@ public interface IWeaponAbility extends IBaseAbility { return " (" + radAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 1; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { if(victim instanceof EntityLivingBase) @@ -92,6 +104,11 @@ public interface IWeaponAbility extends IBaseAbility { return " (" + amountAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 2; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { float amount = amountAtLevel[level]; @@ -124,6 +141,11 @@ public interface IWeaponAbility extends IBaseAbility { return " (" + durationAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 3; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { int duration = durationAtLevel[level]; @@ -155,6 +177,11 @@ public interface IWeaponAbility extends IBaseAbility { return " (1:" + dividerAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 4; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { int divider = dividerAtLevel[level]; @@ -197,6 +224,11 @@ public interface IWeaponAbility extends IBaseAbility { return " (" + durationAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 5; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { int duration = durationAtLevel[level]; @@ -227,6 +259,11 @@ public interface IWeaponAbility extends IBaseAbility { return " (" + durationAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 5; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { if(victim instanceof EntityLivingBase) { @@ -253,6 +290,11 @@ public interface IWeaponAbility extends IBaseAbility { return " (1:" + dividerAtLevel[level] + ")"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 6; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { int divider = dividerAtLevel[level]; @@ -290,6 +332,11 @@ public interface IWeaponAbility extends IBaseAbility { return "weapon.ability.beheader"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 7; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { if(victim instanceof EntityLivingBase && ((EntityLivingBase) victim).getHealth() <= 0.0F) { @@ -331,6 +378,11 @@ public interface IWeaponAbility extends IBaseAbility { return "weapon.ability.bobble"; } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 8; + } + @Override public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) { diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 2c40e3db3..112e8bad4 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -1,6 +1,7 @@ package com.hbm.items.tool; import java.util.ArrayList; +import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Locale; @@ -455,6 +456,14 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro return; presets.add(new ToolPreset(IToolAreaAbility.NONE, 0, ability, level)); }); + + presets.sort( + Comparator + .comparing((ToolPreset p) -> p.harvestAbility) + .thenComparingInt(p -> p.harvestAbilityLevel) + .thenComparing(p -> p.areaAbility) + .thenComparingInt(p -> p.areaAbilityLevel) + ); } public void restrictTo(AvailableAbilities availableAbilities) { From cc31edff442c530cacd44e131d8eecf3b5615127 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 13:43:06 +0300 Subject: [PATCH 040/181] Change item tooltip --- .../java/com/hbm/handler/ability/AvailableAbilities.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java index 650f22a4b..38706bef2 100644 --- a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java +++ b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java @@ -106,9 +106,9 @@ public class AvailableAbilities { } }); - list.add("Right click to cycle through abilities!"); - list.add("Sneak-click to turn ability off!"); - list.add("Alt-click to open ability selection GUI!"); + list.add("Right click to cycle through presets!"); + list.add("Sneak-click to go to first preset!"); + list.add("Alt-click to open customization GUI!"); } Map weaponAbilities = getWeaponAbilities(); @@ -123,7 +123,7 @@ public class AvailableAbilities { ).forEach(entry -> { IWeaponAbility ability = entry.getKey(); int level = entry.getValue(); - + list.add(" " + EnumChatFormatting.RED + ability.getFullName(level)); }); } From 2497d628e57bbff96b75161aead01ee5479a3fce Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 13:58:03 +0300 Subject: [PATCH 041/181] Fix explosing incompatibility --- src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index 9ff0d5682..0c2a63ddb 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -246,7 +246,7 @@ public class GUIScreenToolAbility extends GuiScreen { } ToolPreset activePreset = config.getActivePreset(); - if (ability instanceof IToolHarvestAbility && !activePreset.areaAbility.allowsHarvest(activePreset.areaAbilityLevel)) { + if (ability instanceof IToolHarvestAbility && ability != IToolHarvestAbility.NONE && !activePreset.areaAbility.allowsHarvest(activePreset.areaAbilityLevel)) { return false; } From 29e69b9c496d6fddec46a0075d82abf52d44747f Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 14:01:11 +0300 Subject: [PATCH 042/181] Pat myself on the back --- gradle.properties | 134 +++++++++++++++++++++++----------------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/gradle.properties b/gradle.properties index 187b19fb6..4c2717118 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,67 +1,67 @@ -mod_version=1.0.27 -# Empty build number makes a release type -mod_build_number=5320 - -credits=HbMinecraft,\ - \ rodolphito (explosion algorithms),\ - \ grangerave (explosion algorithms),\ - \ Hoboy (textures, models),\ - \ Drillgon200 (effects, models, porting),\ - \ MartinTheDragon (calculator, chunk-based fallout, bendable cranes, pipe improvements, PWR sounds),\ - \ Alcater (GUI textures, porting),\ - \ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, better particle diodes),\ - \ Pheo (textures, various machines, models, weapons),\ - \ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron, weapon animations),\ - \ UFFR (RTG pellets, guns, casings, euphemium capacitor, nucleartech.wiki),\ - \ LePeep (coilgun model, BDCL QC),\ - \ Adam29 (liquid petroleum, ethanol, electric furnace),\ - \ Pvndols (thorium fuel recipe, gas turbine),\ - \ JamesH2 (blood mechanics, nitric acid, particle emitter),\ - \ Lazzzycat (structures),\ - \ PastaBaguette (coal horse decal),\ - \ Doctor17 (russian localization)),\ - \ Pashtet (russian localization),\ - \ Bismarck (chinese localization),\ - \ Creeper-banner (chinese localization),\ - \ 5467864 (chinese localization),\ - \ eeeeee0a (chinese localization),\ - \ hz0909adc (chinese localization),\ - \ LSKLW (chinese localization),\ - \ R-Kaenbyou (chinese localization),\ - \ scp-000000000 (chinese localization),\ - \ UnnameTokiko (chinese localization),\ - \ Herobrine 457985 (chinese localization),\ - \ xxwinhere (chinese localization),\ - \ Maksymisio (polish localization)\ - \ el3ctro4ndre (italian localization),\ - \ Pu-238 (Tom impact effects),\ - \ Frooz (gun models),\ - \ VT-6/24 (models, textures),\ - \ Nos (models),\ - \ WushiThe (models),\ - \ Minecreep (models),\ - \ 70k (textures, glyphid AI, strand caster, electrolyzer changes, cryolite),\ - \ instantnootles (concept artist),\ - \ haru315 (spiral point algorithm),\ - \ Sten89 (models),\ - \ Pixelguru26 (textures),\ - \ TheBlueHat (textures),\ - \ Burningwater202 (laminate glass),\ - \ TehTemmie (reacher radiation function),\ - \ Silly541 (config for safe ME drives),\ - \ Voxelstice (OpenComputers integration, turbine spinup),\ - \ BallOfEnergy1 (OpenComputers integration, RBMK and packet optimization, crate backpacks),\ - \ sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ - \ Abel1502 (optimization, crate upgrade recipes, strand caster improvements, varous tweaks),\ - \ Darek505 (armor rendering compatibility fix),\ - \ SuperCraftAlex (tooltips)\ - \ Ice-Arrow (research reactor tweaks),\ - \ 245tt (anvil GUI improvements),\ - \ KoblizekXD (doors),\ - \ FOlkvangrField (custom machine parts),\ - \ RosaTryp (centrifuge config),\ - \ Toshayo (satellite loot system, project settings, gradle curse task),\ - \ icomet (refactoring),\ - \ martemen (project settings),\ - \ OvermindDL1 (project settings),\ - \ impbk2002 (project settings)\ +mod_version=1.0.27 +# Empty build number makes a release type +mod_build_number=5320 + +credits=HbMinecraft,\ + \ rodolphito (explosion algorithms),\ + \ grangerave (explosion algorithms),\ + \ Hoboy (textures, models),\ + \ Drillgon200 (effects, models, porting),\ + \ MartinTheDragon (calculator, chunk-based fallout, bendable cranes, pipe improvements, PWR sounds),\ + \ Alcater (GUI textures, porting),\ + \ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, better particle diodes),\ + \ Pheo (textures, various machines, models, weapons),\ + \ V�r (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron, weapon animations),\ + \ UFFR (RTG pellets, guns, casings, euphemium capacitor, nucleartech.wiki),\ + \ LePeep (coilgun model, BDCL QC),\ + \ Adam29 (liquid petroleum, ethanol, electric furnace),\ + \ Pvndols (thorium fuel recipe, gas turbine),\ + \ JamesH2 (blood mechanics, nitric acid, particle emitter),\ + \ Lazzzycat (structures),\ + \ PastaBaguette (coal horse decal),\ + \ Doctor17 (russian localization)),\ + \ Pashtet (russian localization),\ + \ Bismarck (chinese localization),\ + \ Creeper-banner (chinese localization),\ + \ 5467864 (chinese localization),\ + \ eeeeee0a (chinese localization),\ + \ hz0909adc (chinese localization),\ + \ LSKLW (chinese localization),\ + \ R-Kaenbyou (chinese localization),\ + \ scp-000000000 (chinese localization),\ + \ UnnameTokiko (chinese localization),\ + \ Herobrine 457985 (chinese localization),\ + \ xxwinhere (chinese localization),\ + \ Maksymisio (polish localization)\ + \ el3ctro4ndre (italian localization),\ + \ Pu-238 (Tom impact effects),\ + \ Frooz (gun models),\ + \ VT-6/24 (models, textures),\ + \ Nos (models),\ + \ WushiThe (models),\ + \ Minecreep (models),\ + \ 70k (textures, glyphid AI, strand caster, electrolyzer changes, cryolite),\ + \ instantnootles (concept artist),\ + \ haru315 (spiral point algorithm),\ + \ Sten89 (models),\ + \ Pixelguru26 (textures),\ + \ TheBlueHat (textures),\ + \ Burningwater202 (laminate glass),\ + \ TehTemmie (reacher radiation function),\ + \ Silly541 (config for safe ME drives),\ + \ Voxelstice (OpenComputers integration, turbine spinup),\ + \ BallOfEnergy1 (OpenComputers integration, RBMK and packet optimization, crate backpacks),\ + \ sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ + \ Abel1502 (abilities GUI, optimization, crate upgrade recipes, strand caster improvements, varous tweaks),\ + \ Darek505 (armor rendering compatibility fix),\ + \ SuperCraftAlex (tooltips)\ + \ Ice-Arrow (research reactor tweaks),\ + \ 245tt (anvil GUI improvements),\ + \ KoblizekXD (doors),\ + \ FOlkvangrField (custom machine parts),\ + \ RosaTryp (centrifuge config),\ + \ Toshayo (satellite loot system, project settings, gradle curse task),\ + \ icomet (refactoring),\ + \ martemen (project settings),\ + \ OvermindDL1 (project settings),\ + \ impbk2002 (project settings)\ From c475e4f3d3f1a60147a47825dc2bb1c7ab5d723d Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 14:25:52 +0300 Subject: [PATCH 043/181] Clean up after cherry-picking I originally did it in my local clone of NTM-Space, and the cherry-picking seemingly carried along a couple of features from there by accident --- .../hbm/handler/ability/IToolAreaAbility.java | 14 +---- .../hbm/handler/ability/IWeaponAbility.java | 51 +------------------ 2 files changed, 4 insertions(+), 61 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index 4f4994bbd..91fd07d19 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -92,18 +92,8 @@ public interface IToolAreaAbility extends IBaseAbility { public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { Block b = world.getBlock(x, y, z); - if(!ToolConfig.recursiveStone) { - Item item = Item.getItemFromBlock(b); - List stone = OreDictionary.getOres(OreDictManager.KEY_STONE); - for(ItemStack stack : stone) { - if(stack.getItem() == item) - return false; - } - List cobble = OreDictionary.getOres(OreDictManager.KEY_COBBLESTONE); - for(ItemStack stack : cobble) { - if(stack.getItem() == item) - return false; - } + if(b == Blocks.stone && !ToolConfig.recursiveStone) { + return false; } if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java index 97c604c54..f68333333 100644 --- a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -159,53 +159,6 @@ public interface IWeaponAbility extends IBaseAbility { } }; - public static final IWeaponAbility BLEND = new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.blender"; - } - - public final int[] dividerAtLevel = {12}; - - @Override - public int levels() { - return dividerAtLevel.length; - } - - @Override - public String getExtension(int level) { - return " (1:" + dividerAtLevel[level] + ")"; - } - - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 4; - } - - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { - int divider = dividerAtLevel[level]; - - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - - if(living.getHealth() <= 0.0F) { - int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health - world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "mob.zombie.woodbreak", 0.5F, 1.0F); - victim.attackEntityFrom(ModDamageSource.turbofan, 100); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "giblets"); - data.setInteger("count", count * 4); - data.setInteger("ent", victim.getEntityId()); - data.setInteger("cDiv", 5); - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, victim.posX, victim.posY + victim.height * 0.5, victim.posZ), new TargetPoint(victim.dimension, victim.posX, victim.posY + victim.height * 0.5, victim.posZ, 150)); - living.entityDropItem(new ItemStack(ModItems.flesh, 10, 0), 0.0F); - } - } - } - }; - public static final IWeaponAbility PHOSPHORUS = new IWeaponAbility() { @Override public String getName() { @@ -226,7 +179,7 @@ public interface IWeaponAbility extends IBaseAbility { @Override public int sortOrder() { - return SORT_ORDER_BASE + 5; + return SORT_ORDER_BASE + 4; } @Override @@ -401,7 +354,7 @@ public interface IWeaponAbility extends IBaseAbility { }; // endregion handlers - static final IWeaponAbility[] abilities = {NONE, RADIATION, VAMPIRE, STUN, BLEND, PHOSPHORUS, FIRE, CHAINSAW, BEHEADER, BOBBLE}; + static final IWeaponAbility[] abilities = {NONE, RADIATION, VAMPIRE, STUN, PHOSPHORUS, FIRE, CHAINSAW, BEHEADER, BOBBLE}; static IWeaponAbility getByName(String name) { for(IWeaponAbility ability : abilities) { From 05562018fc41c5870d3c8df0f94d1d647c45c902 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 14:35:17 +0300 Subject: [PATCH 044/181] Limit max presets --- src/main/java/com/hbm/handler/ability/IWeaponAbility.java | 8 ++++---- .../java/com/hbm/inventory/gui/GUIScreenToolAbility.java | 4 ++++ src/main/java/com/hbm/items/tool/ItemToolAbility.java | 5 +++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java index f68333333..9a874dbb1 100644 --- a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -214,7 +214,7 @@ public interface IWeaponAbility extends IBaseAbility { @Override public int sortOrder() { - return SORT_ORDER_BASE + 5; + return SORT_ORDER_BASE + 6; } @Override @@ -245,7 +245,7 @@ public interface IWeaponAbility extends IBaseAbility { @Override public int sortOrder() { - return SORT_ORDER_BASE + 6; + return SORT_ORDER_BASE + 7; } @Override @@ -287,7 +287,7 @@ public interface IWeaponAbility extends IBaseAbility { @Override public int sortOrder() { - return SORT_ORDER_BASE + 7; + return SORT_ORDER_BASE + 8; } @Override @@ -333,7 +333,7 @@ public interface IWeaponAbility extends IBaseAbility { @Override public int sortOrder() { - return SORT_ORDER_BASE + 8; + return SORT_ORDER_BASE + 9; } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index 0c2a63ddb..7b6e3b1b5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -372,6 +372,10 @@ public class GUIScreenToolAbility extends GuiScreen { } protected void doAddPreset() { + if (config.presets.size() >= 99) { + return; + } + config.presets.add(config.currentPreset + 1, new ToolPreset()); config.currentPreset += 1; } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 112e8bad4..bf83e398b 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -426,10 +426,11 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro currentPreset = nbt.getInteger("ability"); NBTTagList nbtPresets = nbt.getTagList("abilityPresets", 10); + int numPresets = Math.min(nbtPresets.tagCount(), 99); - presets = new ArrayList(nbtPresets.tagCount()); + presets = new ArrayList(numPresets); - for(int i = 0; i < nbtPresets.tagCount(); i++) { + for(int i = 0; i < numPresets; i++) { NBTTagCompound nbtPreset = nbtPresets.getCompoundTagAt(i); ToolPreset preset = new ToolPreset(); preset.readFromNBT(nbtPreset); From 92b9ab23695c4653482be17291a6b1801a4756d2 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 14:56:24 +0300 Subject: [PATCH 045/181] Fix original block not being affected by ability --- .../hbm/handler/ability/IToolAreaAbility.java | 35 ++++++++----------- .../com/hbm/items/tool/ItemToolAbility.java | 4 +-- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index 91fd07d19..c436e76f4 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -24,10 +24,8 @@ import net.minecraftforge.oredict.OreDictionary; public interface IToolAreaAbility extends IBaseAbility { // Should call tool.breakExtraBlock on a bunch of blocks. - // The initial block is always implicitly broken and shouldn't be included. - // If true is returned, no block breaking is handled by the tool - // (neither for the original block nor for the extras) - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool); + // The initial block should be included if you want it broken! + public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool); // Whether breakExtraBlock is called at all. Currently only false for explosion public default boolean allowsHarvest(int level) { @@ -49,8 +47,8 @@ public interface IToolAreaAbility extends IBaseAbility { } @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { - return false; + public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + tool.breakExtraBlock(world, x, y, z, player, x, y, z); } }; @@ -89,21 +87,24 @@ public interface IToolAreaAbility extends IBaseAbility { private Set pos = new HashSet<>(); @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { Block b = world.getBlock(x, y, z); if(b == Blocks.stone && !ToolConfig.recursiveStone) { - return false; + tool.breakExtraBlock(world, x, y, z, player, x, y, z); + return; } - if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) - return false; + if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) { + tool.breakExtraBlock(world, x, y, z, player, x, y, z); + return; + } pos.clear(); recurse(world, x, y, z, x, y, z, player, tool, 0, radiusAtLevel[level]); - return false; + tool.breakExtraBlock(world, x, y, z, player, x, y, z); } private final List offsets = new ArrayList(3*3*3-1) {{ @@ -201,22 +202,16 @@ public interface IToolAreaAbility extends IBaseAbility { } @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { int range = rangeAtLevel[level]; for(int a = x - range; a <= x + range; a++) { for(int b = y - range; b <= y + range; b++) { for(int c = z - range; c <= z + range; c++) { - - if(a == x && b == y && c == z) - continue; - tool.breakExtraBlock(world, a, b ,c, player, x, y, z); } } } - - return false; } }; @@ -254,7 +249,7 @@ public interface IToolAreaAbility extends IBaseAbility { } @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { float strength = strengthAtLevel[level]; ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); @@ -265,8 +260,6 @@ public interface IToolAreaAbility extends IBaseAbility { ex.doExplosionB(false); player.worldObj.createExplosion(player, x + 0.5, y + 0.5, z + 0.5, 0.1F, false); - - return true; } }; // endregion handlers diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index bf83e398b..1db479d72 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -167,11 +167,9 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro preset.harvestAbility.preHarvestAll(preset.harvestAbilityLevel, world, player); - boolean result = preset.areaAbility.onDig(preset.areaAbilityLevel, world, x, y, z, player, this); + preset.areaAbility.onDig(preset.areaAbilityLevel, world, x, y, z, player, this); preset.harvestAbility.postHarvestAll(preset.harvestAbilityLevel, world, player); - - return result; } return false; From 7c135c4a33a869c8494652039fc961bbf703b51c Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 15:04:25 +0300 Subject: [PATCH 046/181] This time for sure --- src/main/java/com/hbm/items/tool/ItemToolAbility.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 1db479d72..df655523d 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -170,6 +170,8 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro preset.areaAbility.onDig(preset.areaAbilityLevel, world, x, y, z, player, this); preset.harvestAbility.postHarvestAll(preset.harvestAbilityLevel, world, player); + + return true; } return false; From 25015a4f7a72561796aefc211bf95fb8b9a66597 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 15:39:08 +0300 Subject: [PATCH 047/181] Third time's the charm --- src/main/java/com/hbm/handler/ability/IToolAreaAbility.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index c436e76f4..94cd39e96 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -208,10 +208,14 @@ public interface IToolAreaAbility extends IBaseAbility { for(int a = x - range; a <= x + range; a++) { for(int b = y - range; b <= y + range; b++) { for(int c = z - range; c <= z + range; c++) { + if (a == x && b == y && c == z) + continue; tool.breakExtraBlock(world, a, b ,c, player, x, y, z); } } } + + tool.breakExtraBlock(world, x, y, z, player, x, y, z); } }; From aadb2d5f2a45b61235e8aa456c3aed97c31368db Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 15:43:59 +0300 Subject: [PATCH 048/181] Actually, I can refactor this to stay more true to the original --- .../hbm/handler/ability/IToolAreaAbility.java | 28 ++++++++++--------- .../com/hbm/items/tool/ItemToolAbility.java | 6 +++- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index 94cd39e96..9929cd303 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -24,8 +24,9 @@ import net.minecraftforge.oredict.OreDictionary; public interface IToolAreaAbility extends IBaseAbility { // Should call tool.breakExtraBlock on a bunch of blocks. - // The initial block should be included if you want it broken! - public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool); + // The initial block is implicitly broken, so don't call breakExtraBlock on it. + // Returning true skips the reference block from being broken + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool); // Whether breakExtraBlock is called at all. Currently only false for explosion public default boolean allowsHarvest(int level) { @@ -47,8 +48,8 @@ public interface IToolAreaAbility extends IBaseAbility { } @Override - public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { - tool.breakExtraBlock(world, x, y, z, player, x, y, z); + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + return false; } }; @@ -87,24 +88,22 @@ public interface IToolAreaAbility extends IBaseAbility { private Set pos = new HashSet<>(); @Override - public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { Block b = world.getBlock(x, y, z); if(b == Blocks.stone && !ToolConfig.recursiveStone) { - tool.breakExtraBlock(world, x, y, z, player, x, y, z); - return; + return false; } if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) { - tool.breakExtraBlock(world, x, y, z, player, x, y, z); - return; + return false; } pos.clear(); recurse(world, x, y, z, x, y, z, player, tool, 0, radiusAtLevel[level]); - tool.breakExtraBlock(world, x, y, z, player, x, y, z); + return false; } private final List offsets = new ArrayList(3*3*3-1) {{ @@ -202,7 +201,7 @@ public interface IToolAreaAbility extends IBaseAbility { } @Override - public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { int range = rangeAtLevel[level]; for(int a = x - range; a <= x + range; a++) { @@ -210,12 +209,13 @@ public interface IToolAreaAbility extends IBaseAbility { for(int c = z - range; c <= z + range; c++) { if (a == x && b == y && c == z) continue; + tool.breakExtraBlock(world, a, b ,c, player, x, y, z); } } } - tool.breakExtraBlock(world, x, y, z, player, x, y, z); + return false; } }; @@ -253,7 +253,7 @@ public interface IToolAreaAbility extends IBaseAbility { } @Override - public void onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { float strength = strengthAtLevel[level]; ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); @@ -264,6 +264,8 @@ public interface IToolAreaAbility extends IBaseAbility { ex.doExplosionB(false); player.worldObj.createExplosion(player, x + 0.5, y + 0.5, z + 0.5, 0.1F, false); + + return true; } }; // endregion handlers diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index df655523d..d12fe3cfb 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -167,8 +167,12 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro preset.harvestAbility.preHarvestAll(preset.harvestAbilityLevel, world, player); - preset.areaAbility.onDig(preset.areaAbilityLevel, world, x, y, z, player, this); + boolean skipRef = preset.areaAbility.onDig(preset.areaAbilityLevel, world, x, y, z, player, this); + if (!skipRef) { + breakExtraBlock(world, x, y, z, player, x, y, z); + } + preset.harvestAbility.postHarvestAll(preset.harvestAbilityLevel, world, player); return true; From 4728e3c6baa17d7f64c1bd3d470b85d941fd2b85 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 16:16:32 +0300 Subject: [PATCH 049/181] Fix visual glitch with harvest abilities --- .../handler/ability/IToolHarvestAbility.java | 90 +++++++------------ 1 file changed, 33 insertions(+), 57 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java index 99cbea697..b1d54dd11 100644 --- a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -27,11 +27,14 @@ public interface IToolHarvestAbility extends IBaseAbility { public default void postHarvestAll(int level, World world, EntityPlayer player) {} - public boolean skipDefaultDrops(int level); - - // Call IToolHarvestAbility.super.onHarvestBlock to emulate the actual block breaking + // You must call harvestBlock to actually break the block. + // If you don't, visual glitches ensue public default void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - if (skipDefaultDrops(level)) { + harvestBlock(false, world, x, y, z, player); + } + + public static void harvestBlock(boolean skipDefaultDrops, World world, int x, int y, int z, EntityPlayer player) { + if (skipDefaultDrops) { // Emulate the block breaking without drops world.setBlockToAir(x, y, z); player.getHeldItem().damageItem(1, player); @@ -54,11 +57,6 @@ public interface IToolHarvestAbility extends IBaseAbility { public int sortOrder() { return SORT_ORDER_BASE + 0; } - - @Override - public boolean skipDefaultDrops(int level) { - return false; - } }; public static final IToolHarvestAbility SILK = new IToolHarvestAbility() { @@ -77,11 +75,6 @@ public interface IToolHarvestAbility extends IBaseAbility { return SORT_ORDER_BASE + 1; } - @Override - public boolean skipDefaultDrops(int level) { - return false; - } - @Override public void preHarvestAll(int level, World world, EntityPlayer player) { ItemStack stack = player.getHeldItem(); @@ -126,11 +119,6 @@ public interface IToolHarvestAbility extends IBaseAbility { return SORT_ORDER_BASE + 2; } - @Override - public boolean skipDefaultDrops(int level) { - return false; - } - @Override public void preHarvestAll(int level, World world, EntityPlayer player) { ItemStack stack = player.getHeldItem(); @@ -163,11 +151,6 @@ public interface IToolHarvestAbility extends IBaseAbility { return SORT_ORDER_BASE + 3; } - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - @Override public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { List drops = block.getDrops(world, x, y, z, world.getBlockMetadata(x, y, z), 0); @@ -186,11 +169,12 @@ public interface IToolHarvestAbility extends IBaseAbility { } } + harvestBlock(doesSmelt, world, x, y, z, player); + if(doesSmelt) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); - - for(ItemStack stack : drops) + for(ItemStack stack : drops) { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); + } } } }; @@ -211,11 +195,6 @@ public interface IToolHarvestAbility extends IBaseAbility { return SORT_ORDER_BASE + 4; } - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - @Override public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { //a band-aid on a gaping wound @@ -224,9 +203,12 @@ public interface IToolHarvestAbility extends IBaseAbility { ItemStack stack = new ItemStack(block, 1, meta); ItemStack result = ShredderRecipes.getShredderResult(stack); + + boolean doesShred = result != null && result.getItem() != ModItems.scrap; + + harvestBlock(doesShred, world, x, y, z, player); - if(result != null && result.getItem() != ModItems.scrap) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + if(doesShred) { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); } } @@ -248,11 +230,6 @@ public interface IToolHarvestAbility extends IBaseAbility { return SORT_ORDER_BASE + 5; } - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - @Override public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { //a band-aid on a gaping wound @@ -261,13 +238,16 @@ public interface IToolHarvestAbility extends IBaseAbility { ItemStack stack = new ItemStack(block, 1, meta); ItemStack[] result = CentrifugeRecipes.getOutput(stack); + + boolean doesCentrifuge = result != null; - if(result != null) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); - + harvestBlock(doesCentrifuge, world, x, y, z, player); + + if(doesCentrifuge) { for(ItemStack st : result) { - if(st != null) + if(st != null) { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, st.copy())); + } } } } @@ -289,11 +269,6 @@ public interface IToolHarvestAbility extends IBaseAbility { return SORT_ORDER_BASE + 6; } - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - @Override public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { //a band-aid on a gaping wound @@ -302,9 +277,12 @@ public interface IToolHarvestAbility extends IBaseAbility { ItemStack stack = new ItemStack(block, 1, meta); CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.PEROXIDE); + + boolean doesCrystallize = result != null; - if(result != null) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + harvestBlock(doesCrystallize, world, x, y, z, player); + + if(doesCrystallize) { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.output.copy())); } } @@ -326,11 +304,6 @@ public interface IToolHarvestAbility extends IBaseAbility { return SORT_ORDER_BASE + 7; } - @Override - public boolean skipDefaultDrops(int level) { - return true; - } - @Override public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { //a band-aid on a gaping wound @@ -344,8 +317,11 @@ public interface IToolHarvestAbility extends IBaseAbility { if(block == Blocks.redstone_block) mercury = player.getRNG().nextInt(7) + 8; - if(mercury > 0) { - IToolHarvestAbility.super.onHarvestBlock(level, world, x, y, z, player, block, meta); + boolean doesConvert = mercury > 0; + + harvestBlock(doesConvert, world, x, y, z, player); + + if(doesConvert) { world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury))); } } From b85e4d28354e3b3617618eb6cb8ee58e4118c630 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 20:15:28 +0300 Subject: [PATCH 050/181] Fix ability listing for ability-less tools Also I realized I don't need a linked hash map now that I sort everything manually. --- .../handler/ability/AvailableAbilities.java | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java index 38706bef2..d33ec9a70 100644 --- a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java +++ b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java @@ -2,7 +2,7 @@ package com.hbm.handler.ability; import java.util.Collections; import java.util.Comparator; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -17,7 +17,7 @@ import net.minecraft.util.EnumChatFormatting; // All abilities available on a given tool public class AvailableAbilities { // Insertion order matters - private LinkedHashMap abilities = new LinkedHashMap(); + private HashMap abilities = new HashMap(); public AvailableAbilities() {} @@ -66,15 +66,15 @@ public class AvailableAbilities { } public Map getToolAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility || a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> a, a -> abilities.get(a), (x, y) -> y, LinkedHashMap::new)); + return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility || a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> a, a -> abilities.get(a))); } public Map getToolAreaAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility).collect(Collectors.toMap(a -> (IToolAreaAbility)a, a -> abilities.get(a), (x, y) -> y, LinkedHashMap::new)); + return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility).collect(Collectors.toMap(a -> (IToolAreaAbility)a, a -> abilities.get(a))); } public Map getToolHarvestAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> (IToolHarvestAbility)a, a -> abilities.get(a), (x, y) -> y, LinkedHashMap::new)); + return abilities.keySet().stream().filter(a -> a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> (IToolHarvestAbility)a, a -> abilities.get(a))); } public int size() { @@ -87,23 +87,23 @@ public class AvailableAbilities { @SideOnly(Side.CLIENT) public void addInformation(List list) { - Map toolAbilities = getToolAbilities(); + List> toolAbilities = abilities.entrySet().stream().filter(entry -> + (entry.getKey() instanceof IToolAreaAbility && entry != IToolAreaAbility.NONE) || + (entry.getKey() instanceof IToolHarvestAbility && entry != IToolHarvestAbility.NONE) + ).sorted( + Comparator + .comparing(Map.Entry::getKey) + .thenComparing(Map.Entry::getValue) + ).collect(Collectors.toList()); if (!toolAbilities.isEmpty()) { list.add("Abilities: "); - toolAbilities.entrySet().stream().sorted( - Comparator - .comparing(Map.Entry::getKey) - .thenComparing(Map.Entry::getValue) - ).forEach(entry -> { + toolAbilities.forEach(entry -> { IBaseAbility ability = entry.getKey(); int level = entry.getValue(); - String fullName = ability.getFullName(level); - if (!fullName.isEmpty()) { - list.add(" " + EnumChatFormatting.GOLD + fullName); - } + list.add(" " + EnumChatFormatting.GOLD + ability.getFullName(level)); }); list.add("Right click to cycle through presets!"); @@ -111,17 +111,19 @@ public class AvailableAbilities { list.add("Alt-click to open customization GUI!"); } - Map weaponAbilities = getWeaponAbilities(); + List> weaponAbilities = abilities.entrySet().stream().filter(entry -> + (entry.getKey() instanceof IWeaponAbility && entry != IWeaponAbility.NONE) + ).sorted( + Comparator + .comparing(Map.Entry::getKey) + .thenComparing(Map.Entry::getValue) + ).collect(Collectors.toList()); if (!weaponAbilities.isEmpty()) { list.add("Weapon modifiers: "); - weaponAbilities.entrySet().stream().sorted( - Comparator - .comparing(Map.Entry::getKey) - .thenComparing(Map.Entry::getValue) - ).forEach(entry -> { - IWeaponAbility ability = entry.getKey(); + weaponAbilities.forEach(entry -> { + IBaseAbility ability = entry.getKey(); int level = entry.getValue(); list.add(" " + EnumChatFormatting.RED + ability.getFullName(level)); From afb0c67090b2b3a916b5836c1f7e8906500f8686 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 20:23:22 +0300 Subject: [PATCH 051/181] Silly --- .../java/com/hbm/handler/ability/AvailableAbilities.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java index d33ec9a70..6e05b5a30 100644 --- a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java +++ b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java @@ -88,8 +88,8 @@ public class AvailableAbilities { @SideOnly(Side.CLIENT) public void addInformation(List list) { List> toolAbilities = abilities.entrySet().stream().filter(entry -> - (entry.getKey() instanceof IToolAreaAbility && entry != IToolAreaAbility.NONE) || - (entry.getKey() instanceof IToolHarvestAbility && entry != IToolHarvestAbility.NONE) + (entry.getKey() instanceof IToolAreaAbility && entry.getKey() != IToolAreaAbility.NONE) || + (entry.getKey() instanceof IToolHarvestAbility && entry.getKey() != IToolHarvestAbility.NONE) ).sorted( Comparator .comparing(Map.Entry::getKey) @@ -112,7 +112,7 @@ public class AvailableAbilities { } List> weaponAbilities = abilities.entrySet().stream().filter(entry -> - (entry.getKey() instanceof IWeaponAbility && entry != IWeaponAbility.NONE) + (entry.getKey() instanceof IWeaponAbility && entry.getKey() != IWeaponAbility.NONE) ).sorted( Comparator .comparing(Map.Entry::getKey) From 2c48bcb782f17c53ae2f99cc0f8bcf58d6b7f672 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 20:43:27 +0300 Subject: [PATCH 052/181] Minor fix I realized I forgot to tweak this when adding the reset button --- src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index 7b6e3b1b5..0815d6aec 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -109,7 +109,7 @@ public class GUIScreenToolAbility extends GuiScreen { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); // Draw window background - drawStretchedRect(guiLeft, guiTop, 0, 0, xSize, xSize - insetWidth, ySize, 74, 76); + drawStretchedRect(guiLeft, guiTop, 0, 0, xSize, xSize - insetWidth, ySize, 74, 87); // Draw the switches ToolPreset activePreset = config.getActivePreset(); From de8b888f3ef801c0223ee5a143205bb0b417f042 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 18 May 2025 21:27:58 +0300 Subject: [PATCH 053/181] Fix credits MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Still not sure what happened, but if it was supposed to be an æ and not a replacement char, I can just type it by hand --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 4c2717118..96c8b5e43 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ credits=HbMinecraft,\ \ Alcater (GUI textures, porting),\ \ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, better particle diodes),\ \ Pheo (textures, various machines, models, weapons),\ - \ V�r (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron, weapon animations),\ + \ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron, weapon animations),\ \ UFFR (RTG pellets, guns, casings, euphemium capacitor, nucleartech.wiki),\ \ LePeep (coilgun model, BDCL QC),\ \ Adam29 (liquid petroleum, ethanol, electric furnace),\ From bbc27820f1b7894f4c4509def7f7c6bd8a17cc64 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Sun, 18 May 2025 21:20:41 +0200 Subject: [PATCH 054/181] Added rbmk console view rotation support --- .../hbm/blocks/machine/rbmk/RBMKConsole.java | 41 ++-- .../machine/rbmk/TileEntityRBMKConsole.java | 189 ++++++++++-------- 2 files changed, 134 insertions(+), 96 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java index 723ecff52..de8789215 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java @@ -1,5 +1,6 @@ package com.hbm.blocks.machine.rbmk; +import api.hbm.block.IToolable; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.BossSpawnHandler; import com.hbm.handler.MultiblockHandlerXR; @@ -17,7 +18,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class RBMKConsole extends BlockDummyable { +public class RBMKConsole extends BlockDummyable implements IToolable { public RBMKConsole() { super(Material.iron); @@ -30,7 +31,7 @@ public class RBMKConsole extends BlockDummyable { if(meta >= this.offset) return new TileEntityRBMKConsole(); - + return null; } @@ -48,14 +49,14 @@ public class RBMKConsole extends BlockDummyable { public boolean renderAsNormalBlock() { return false; } - + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - + if(!player.isSneaking()) { - + BossSpawnHandler.markFBI(player); - + int[] pos = this.findCore(world, x, y, z); if(pos == null) @@ -63,10 +64,10 @@ public class RBMKConsole extends BlockDummyable { TileEntityRBMKConsole entity = (TileEntityRBMKConsole) world.getTileEntity(pos[0], pos[1], pos[2]); if(entity != null) { - + if(side == 1) { Vec3 vec = Vec3.createVectorHelper(1.375D, 0, 0.75D); - + switch(entity.getBlockMetadata() - this.offset) { case 2: vec.rotateAroundY((float)Math.toRadians(90)); break; case 3: vec.rotateAroundY((float)Math.toRadians(270)); break; @@ -79,19 +80,19 @@ public class RBMKConsole extends BlockDummyable { double rX = entity.xCoord + 0.5D + vec.xCoord; double rZ = entity.zCoord + 0.5D + vec.zCoord; double size = 0.1875D; - + if(Math.abs(hX - rX) < size && Math.abs(hZ - rZ) < size && !player.inventory.hasItemStack(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()))) { player.inventory.addItemStackToInventory(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal())); player.inventoryContainer.detectAndSendChanges(); return true; } } - + if(world.isRemote) FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); } return true; - + } else { return true; } @@ -113,12 +114,26 @@ public class RBMKConsole extends BlockDummyable { MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {0, 0, 0, 1, 2, 2}, this, dir); } - + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 0, 1, 2, 2}, x, y, z, dir)) return false; - + return super.checkRequirement(world, x, y, z, dir, o); } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if(tool != ToolType.SCREWDRIVER) + return false; + if(!world.isRemote) { + int[] pos = findCore(world, x, y, z); + TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); + if (tile instanceof TileEntityRBMKConsole) { + ((TileEntityRBMKConsole) tile).rotate(); + } + } + return true; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index dfb753de3..ddb38c3bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -40,22 +40,24 @@ import li.cil.oc.api.network.SimpleComponent; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityRBMKConsole extends TileEntityMachineBase implements IControlReceiver, IGUIProvider, SimpleComponent, CompatHandler.OCComponent { - + private int targetX; private int targetY; private int targetZ; - + + private byte rotation; + public static final int fluxDisplayBuffer = 60; public int[] fluxBuffer = new int[fluxDisplayBuffer]; - + //made this one-dimensional because it's a lot easier to serialize public RBMKColumn[] columns = new RBMKColumn[15 * 15]; - + public RBMKScreen[] screens = new RBMKScreen[6]; public TileEntityRBMKConsole() { super(0); - + for(int i = 0; i < screens.length; i++) { screens[i] = new RBMKScreen(); } @@ -68,9 +70,9 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + if(this.worldObj.getTotalWorldTime() % 10 == 0) { this.worldObj.theProfiler.startSection("rbmkConsole_rescan"); @@ -82,64 +84,79 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.networkPackNT(50); } } - + private void rescan() { - + double flux = 0; - + for(int i = -7; i <= 7; i++) { for(int j = -7; j <= 7; j++) { - - TileEntity te = Compat.getTileStandard(worldObj, targetX + i, targetY, targetZ + j); + int rx = i, rz = j; + switch (rotation) { + case 1: // 90° + rx = -j; + rz = i; + break; + case 2: // 180° + rx = -i; + rz = -j; + break; + case 3: // 270° + rx = j; + rz = -i; + break; + } + + TileEntity te = Compat.getTileStandard(worldObj, targetX + rx, targetY, targetZ + rz); int index = (i + 7) + (j + 7) * 15; - + if(te instanceof TileEntityRBMKBase) { - + TileEntityRBMKBase rbmk = (TileEntityRBMKBase)te; - + columns[index] = new RBMKColumn(rbmk.getConsoleType(), rbmk.getNBTForConsole()); columns[index].data.setDouble("heat", rbmk.heat); columns[index].data.setDouble("maxHeat", rbmk.maxHeat()); if(rbmk.isModerated()) columns[index].data.setBoolean("moderated", true); //false is the default anyway and not setting it when we don't need to reduces cruft - + if(te instanceof TileEntityRBMKRod) { TileEntityRBMKRod fuel = (TileEntityRBMKRod) te; flux += fuel.lastFluxQuantity; } - + } else { columns[index] = null; } } } - + for(int i = 0; i < this.fluxBuffer.length - 1; i++) { this.fluxBuffer[i] = this.fluxBuffer[i + 1]; } - + this.fluxBuffer[this.fluxBuffer.length - 1] = (int) flux; } - + @SuppressWarnings("incomplete-switch") //shut up private void prepareScreenInfo() { - + for(RBMKScreen screen : this.screens) { - + if(screen.type == ScreenType.NONE) { screen.display = null; continue; } - + double value = 0; int count = 0; - + for(Integer i : screen.columns) { - + RBMKColumn col = this.columns[i]; - + if(col == null) continue; - + switch(screen.type) { case COL_TEMP: count++; @@ -171,10 +188,10 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon break; } } - + double result = value / (double) count; String text = ((int)(result * 10)) / 10D + ""; - + switch(screen.type) { case COL_TEMP: text = "rbmk.screen.temp=" + text + "°C"; break; case FUEL_DEPLETION: text = "rbmk.screen.depletion=" + text + "%"; break; @@ -182,7 +199,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon case FUEL_TEMP: text = "rbmk.screen.core=" + text + "°C"; break; case ROD_EXTRACTION: text = "rbmk.screen.rod=" + text + "%"; break; } - + screen.display = text; } } @@ -255,20 +272,20 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon @Override public void receiveControl(NBTTagCompound data) { - + if(data.hasKey("level")) { - + Set keys = data.func_150296_c(); - + for(String key : keys) { - + if(key.startsWith("sel_")) { int x = data.getInteger(key) % 15 - 7; int z = data.getInteger(key) / 15 - 7; - + TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + z); - + if(te instanceof TileEntityRBMKControlManual) { TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; rod.startingLevel = rod.level; @@ -278,18 +295,18 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon } } } - + if(data.hasKey("toggle")) { int slot = data.getByte("toggle"); int next = this.screens[slot].type.ordinal() + 1; ScreenType type = ScreenType.values()[next % ScreenType.values().length]; this.screens[slot].type = type; } - + if(data.hasKey("id")) { int slot = data.getByte("id"); List list = new ArrayList(); - + for(int i = 0; i < 15 * 15; i++) { if(data.getBoolean("s" + i)) { list.add(i); @@ -299,17 +316,17 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon Integer[] cols = list.toArray(new Integer[0]); this.screens[slot].columns = cols; } - + if(data.hasKey("assignColor")) { int color = data.getByte("assignColor"); int[] cols = data.getIntArray("cols"); - + for(int i : cols) { int x = i % 15 - 7; int z = i / 15 - 7; - + TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + z); - + if(te instanceof TileEntityRBMKControlManual) { TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; rod.color = EnumUtil.grabEnumSafely(RBMKColor.class, color); @@ -317,16 +334,16 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon } } } - + if(data.hasKey("compressor")) { int[] cols = data.getIntArray("cols"); - + for(int i : cols) { int x = i % 15 - 7; int z = i / 15 - 7; - + TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + z); - + if(te instanceof TileEntityRBMKBoiler) { TileEntityRBMKBoiler rod = (TileEntityRBMKBoiler) te; rod.cyceCompressor(); @@ -334,25 +351,25 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon } } } - + @Override public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 4, zCoord + 3); } - + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } - + public void setTarget(int x, int y, int z) { this.targetX = x; this.targetY = y; this.targetZ = z; this.markDirty(); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -360,13 +377,14 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.targetX = nbt.getInteger("tX"); this.targetY = nbt.getInteger("tY"); this.targetZ = nbt.getInteger("tZ"); - + for(int i = 0; i < this.screens.length; i++) { this.screens[i].type = ScreenType.values()[nbt.getByte("t" + i)]; this.screens[i].columns = Arrays.stream(nbt.getIntArray("s" + i)).boxed().toArray(Integer[]::new); } + rotation = nbt.getByte("rotation"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); @@ -374,25 +392,30 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon nbt.setInteger("tX", this.targetX); nbt.setInteger("tY", this.targetY); nbt.setInteger("tZ", this.targetZ); - + for(int i = 0; i < this.screens.length; i++) { nbt.setByte("t" + i, (byte) this.screens[i].type.ordinal()); nbt.setIntArray("s" + i, Arrays.stream(this.screens[i].columns).mapToInt(Integer::intValue).toArray()); } + nbt.setByte("rotation", rotation); } - + + public void rotate() { + rotation = (byte)((rotation + 1) % 4); + } + public static class RBMKColumn { - + public ColumnType type; public NBTTagCompound data; - + public RBMKColumn(ColumnType type) { this.type = type; } - + public RBMKColumn(ColumnType type, NBTTagCompound data) { this.type = type; - + if(data != null) { this.data = data; } else { @@ -403,17 +426,17 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon @SuppressWarnings("incomplete-switch") @SideOnly(Side.CLIENT) public List getFancyStats() { - + if(this.data == null) return null; - + /* * Making a big switch with the values converted based on type by hand might seem "UnPrOfEsSiOnAl" and a major pain in the ass * but my only other solution that would not have me do things in multiple places where they shouldn't be involved passing * classes in the enum and then calling a special method from that class and quite honestly it turned out to be such a crime * against humanity that I threw the towel. It's not fancy, I get that, please fuck off. */ - + List stats = new ArrayList(); stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.heat", ((int)((this.data.getDouble("heat") * 10D)) / 10D) + "°C")); switch(this.type) { @@ -431,18 +454,18 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", Fluids.fromID(this.data.getShort("type")).getLocalizedName())); break; case CONTROL: - + if(this.data.hasKey("color")) { short col = this.data.getShort("color"); - + if(col >= 0 && col < RBMKColor.values().length) stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control." + RBMKColor.values()[col].name().toLowerCase(Locale.US))); } - + case CONTROL_AUTO: stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control.level", ((int)((this.data.getDouble("level") * 100D))) + "%")); break; - + case HEATEX: stats.add(EnumChatFormatting.BLUE + Fluids.fromID(this.data.getShort("type")).getLocalizedName() + " " + this.data.getInteger("water") + "/" + this.data.getInteger("maxWater") + "mB"); @@ -450,14 +473,14 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.data.getInteger("steam") + "/" + this.data.getInteger("maxSteam") + "mB"); break; } - + if(data.getBoolean("moderated")) stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.moderated")); - + return stats; } } - + public static enum ColumnType { BLANK(0), FUEL(10), @@ -473,19 +496,19 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon STORAGE(110), COOLER(120), HEATEX(130); - + public int offset; - + private ColumnType(int offset) { this.offset = offset; } } - + public class RBMKScreen { public ScreenType type = ScreenType.NONE; public Integer[] columns = new Integer[0]; public String display = null; - + public RBMKScreen() { } public RBMKScreen(ScreenType type, Integer[] columns, String display) { this.type = type; @@ -493,7 +516,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.display = display; } } - + public static enum ScreenType { NONE(0 * 18), COL_TEMP(1 * 18), @@ -501,9 +524,9 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon FUEL_DEPLETION(3 * 18), FUEL_POISON(4 * 18), FUEL_TEMP(5 * 18); - + public int offset; - + private ScreenType(int offset) { this.offset = offset; } @@ -519,7 +542,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIRBMKConsole(player.inventory, this); } - + // do some opencomputer stuff @Override @Optional.Method(modid = "OpenComputers") @@ -605,7 +628,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon for(int i = -7; i <= 7; i++) { for(int j = -7; j <= 7; j++) { TileEntity te = Compat.getTileStandard(worldObj, targetX + i, targetY, targetZ + j); - + if (te instanceof TileEntityRBMKControlManual) { TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; rod.startingLevel = rod.level; @@ -631,7 +654,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon double new_level = args.checkDouble(2); TileEntity te = Compat.getTileStandard(worldObj, targetX + x, targetY, targetZ + y); - + if (te instanceof TileEntityRBMKControlManual) { TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; rod.startingLevel = rod.level; @@ -640,7 +663,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon rod.setTarget(new_level); te.markDirty(); return new Object[] {}; - } + } return new Object[] {"No control rod found at "+(x+7)+","+(7-y)}; } @@ -665,7 +688,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon te.markDirty(); foundRods = true; } - } + } } } if(foundRods) @@ -703,14 +726,14 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon for(int i = -7; i <= 7; i++) { for(int j = -7; j <= 7; j++) { TileEntity te = Compat.getTileStandard(worldObj, targetX + i, targetY, targetZ + j); - + if (te instanceof TileEntityRBMKControlManual) { TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; rod.startingLevel = rod.level; rod.setTarget(0); te.markDirty(); hasRods = true; - } + } } } if(hasRods){ From ef5059a9a6e55812b6afef52f9dd1e6171888ce1 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 18 May 2025 21:24:19 +0200 Subject: [PATCH 055/181] playing DOOM on my gucci smart toilet --- changelog | 16 +- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 21 +- .../com/hbm/blocks/network/FluidPump.java | 314 + .../java/com/hbm/crafting/WeaponRecipes.java | 1 + src/main/java/com/hbm/items/ModItems.java | 2 + .../java/com/hbm/items/special/ItemTrain.java | 3 +- .../sedna/factory/GunFactoryClient.java | 2 + .../weapon/sedna/factory/Orchestras.java | 50 + .../weapon/sedna/factory/XFactory50.java | 54 + .../weapon/sedna/mods/WeaponModManager.java | 3 +- .../weapon/sedna/mods/WeaponModSilencer.java | 2 + src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 2 + .../java/com/hbm/main/CraftingManager.java | 5 +- .../com/hbm/main/ModEventHandlerRenderer.java | 4 + .../java/com/hbm/main/ResourceManager.java | 4 + .../item/weapon/sedna/ItemRenderAmat.java | 207 + .../render/tileentity/RenderFluidPump.java | 59 + .../java/com/hbm/tileentity/TileMappings.java | 18 +- .../bomb/TileEntityLaunchPadBase.java | 16 +- src/main/java/com/hbm/util/BobMathUtil.java | 8 + src/main/java/com/hbm/world/WorldUtil.java | 12 +- src/main/resources/assets/hbm/lang/de_DE.lang | 5 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../assets/hbm/models/network/fluid_diode.obj | 2189 ++++ .../assets/hbm/models/reactors/breeder.obj | 3405 ++--- .../assets/hbm/models/weapons/amat.obj | 10682 ++++++++++++++++ src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/weapon/fire/amat.ogg | Bin 0 -> 43853 bytes .../hbm/textures/models/machines/breeder.png | Bin 2533 -> 820 bytes .../textures/models/network/fluid_diode.png | Bin 0 -> 928 bytes .../hbm/textures/models/weapons/amat.png | Bin 0 -> 47765 bytes 33 files changed, 14849 insertions(+), 2243 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/FluidPump.java create mode 100644 src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderFluidPump.java create mode 100644 src/main/resources/assets/hbm/models/network/fluid_diode.obj create mode 100644 src/main/resources/assets/hbm/models/weapons/amat.obj create mode 100644 src/main/resources/assets/hbm/sounds/weapon/fire/amat.ogg create mode 100644 src/main/resources/assets/hbm/textures/models/network/fluid_diode.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/amat.png diff --git a/changelog b/changelog index 38205883a..76500e081 100644 --- a/changelog +++ b/changelog @@ -6,6 +6,18 @@ * Pretty * Automatically walls off connected solid blocks in addition to the direction it was placed in * Some other wooden blocks like a roof, ceiling and scaffold +* Flow control pump + * The fluid equivalent to a diode + * Supports up to 10,000mB/t + * Unlike the diode, it is configured via GUI + * Can be shut off with redstone like a fluid valve +* Charge thrower + * A new weapon/tool + * Can fire two tiers of demolition charges or a grappling hook + * The grappling hook's line can be controlled via left and right mouse buttons +* Anti-materiel rifle + * Fires 12.7mm of fun + * x5 magnification scope ## Changed * Increased bayonet damage from 5 to 7.5 hearts @@ -22,6 +34,7 @@ * Dismantling different variants yields different drops * Magnetic extraction can no longer be performed * `isItemBlacklisted` on the item hazard checks now employs caching instead of doing a full ore dictionary lookup for every single check, this should make it marginally more performant +* The unfinished trains stuff is no longer listed in the creative tabs ## Fixed * Fixed RoR controller having the wrong recipe @@ -29,4 +42,5 @@ * Fixed skeletons and pedestals allowing blocks to be placed inside the player * Fixed artillery shells not playing the explosion animation when directly impacting entities * Fixed bauxite and malachite vein toggles being on backwards -* Fixed penumatic tube order settings not saving \ No newline at end of file +* Fixed pneumatic tube order settings not saving +* Fixed crash caused by launching ABMs with blank target designators \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 187b19fb6..a556e9942 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5320 +mod_build_number=5334 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index a9fb689b3..e857521bb 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -794,6 +794,7 @@ public class ModBlocks { public static Block fluid_duct_exhaust; public static Block fluid_valve; public static Block fluid_switch; + public static Block fluid_pump; public static Block machine_drain; public static Block radio_torch_sender; public static Block radio_torch_receiver; @@ -1925,6 +1926,7 @@ public class ModBlocks { fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_valve = new FluidValve(Material.iron).setBlockName("fluid_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_switch = new FluidSwitch(Material.iron).setBlockName("fluid_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + fluid_pump = new FluidPump(Material.iron).setBlockName("fluid_pump").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_drain = new MachineDrain(Material.iron).setBlockName("machine_drain").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -2173,15 +2175,15 @@ public class ModBlocks { rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_straight_short = new RailStandardStraightShort().setBlockName("rail_large_straight_short").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_curve = new RailStandardCurveBase().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_curve_7 = new RailStandardCurveWide7().setBlockName("rail_large_curve_7").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_curve_9 = new RailStandardCurveWide9().setBlockName("rail_large_curve_9").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); - rail_large_switch = new RailStandardSwitch().setBlockName("rail_large_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_switch_flipped = new RailStandardSwitchFlipped().setBlockName("rail_large_switch_flipped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_straight_short = new RailStandardStraightShort().setBlockName("rail_large_straight_short").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve = new RailStandardCurveBase().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve_7 = new RailStandardCurveWide7().setBlockName("rail_large_curve_7").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve_9 = new RailStandardCurveWide9().setBlockName("rail_large_curve_9").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); + rail_large_switch = new RailStandardSwitch().setBlockName("rail_large_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_switch_flipped = new RailStandardSwitchFlipped().setBlockName("rail_large_switch_flipped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); @@ -3192,6 +3194,7 @@ public class ModBlocks { register(fluid_duct_gauge); register(fluid_valve); register(fluid_switch); + register(fluid_pump); register(machine_drain); register(radio_torch_sender); register(radio_torch_receiver); diff --git a/src/main/java/com/hbm/blocks/network/FluidPump.java b/src/main/java/com/hbm/blocks/network/FluidPump.java new file mode 100644 index 000000000..19fffda03 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/FluidPump.java @@ -0,0 +1,314 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.input.Keyboard; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; +import com.hbm.world.gen.INBTTransformable; + +import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; +import api.hbm.fluidmk2.IFluidStandardTransceiverMK2; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class FluidPump extends BlockContainer implements INBTTransformable, ILookOverlay, IGUIProvider { + + public FluidPump(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityFluidPump(); + } + + @Override public int getRenderType() { return -1; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @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) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float fX, float fY, float fZ) { + + if(!player.isSneaking()) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + IItemFluidIdentifier id = (IItemFluidIdentifier) player.getHeldItem().getItem(); + FluidType type = id.getType(world, x, y, z, player.getHeldItem()); + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof TileEntityFluidPump) { + if(!world.isRemote) { + TileEntityFluidPump pump = (TileEntityFluidPump) tile; + pump.tank[0].setTankType(type); + pump.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + return true; + } + } + + if(world.isRemote) FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } + + return false; + } + + @Override @SideOnly(Side.CLIENT) + public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIPump((TileEntityFluidPump) world.getTileEntity(x, y, z)); } + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity tile = world.getTileEntity(x, y, z); + if(!(tile instanceof TileEntityFluidPump)) return; + TileEntityFluidPump pump = (TileEntityFluidPump) tile; + + List text = new ArrayList(); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + pump.tank[0].getTankType().getLocalizedName() + " (" + pump.tank[0].getPressure() + " PU): " + BobMathUtil.format(pump.bufferSize) + "mB/t" + EnumChatFormatting.RED + " ->"); + text.add("Priority: " + EnumChatFormatting.YELLOW + pump.priority.name()); + if(pump.tank[0].getFill() > 0) text.add(BobMathUtil.format(pump.tank[0].getFill()) + "mB buffered"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public int transformMeta(int meta, int coordBaseMode) { + return INBTTransformable.transformMetaDeco(meta, coordBaseMode); + } + + public static class TileEntityFluidPump extends TileEntityLoadedBase implements IFluidStandardTransceiverMK2, IControlReceiver { + + public int bufferSize = 100; + public FluidTank[] tank; + public ConnectionPriority priority = ConnectionPriority.NORMAL; + public boolean redstone = false; + + public TileEntityFluidPump() { + this.tank = new FluidTank[1]; + this.tank[0] = new FluidTank(Fluids.NONE, bufferSize); + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + // if the capacity were changed directly, any excess buffered fluid would be destroyed + // when running a closed loop or handling hard to get fluids, that's quite bad + if(this.bufferSize != this.tank[0].getMaxFill()) { + int nextBuffer = Math.max(this.tank[0].getFill(), this.bufferSize); + this.tank[0].changeTankSize(nextBuffer); + } + + this.redstone = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord); + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection in = dir.getRotation(ForgeDirection.UP); + ForgeDirection out = in.getOpposite(); + + this.trySubscribe(tank[0].getTankType(), worldObj, xCoord + in.offsetX, yCoord, zCoord + in.offsetZ, in); + if(!redstone) this.tryProvide(tank[0], worldObj, xCoord + out.offsetX, yCoord, zCoord + out.offsetZ, out); + + this.networkPackNT(15); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + tank[0].writeToNBT(nbt, "t"); + nbt.setByte("p", (byte) priority.ordinal()); + nbt.setInteger("buffer", bufferSize); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + tank[0].readFromNBT(nbt, "t"); + priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, nbt.getByte("p")); + bufferSize = nbt.getInteger("buffer"); + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + tank[0].serialize(buf); + buf.writeByte((byte) priority.ordinal()); + buf.writeInt(bufferSize); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + tank[0].deserialize(buf); + priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, buf.readByte()); + bufferSize = buf.readInt(); + } + + @Override public ConnectionPriority getFluidPriority() { return priority; } + @Override public FluidTank[] getSendingTanks() { return redstone ? new FluidTank[0] : tank; } + @Override public FluidTank[] getReceivingTanks() { return this.bufferSize < this.tank[0].getFill() ? new FluidTank[0] : tank; } + @Override public FluidTank[] getAllTanks() { return tank; } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("capacity")) { + this.bufferSize = MathHelper.clamp_int(data.getInteger("capacity"), 0, 10_000); + } + if(data.hasKey("pressure")) { + this.tank[0].withPressure(MathHelper.clamp_int(data.getByte("pressure"), 0, 5)); + } + if(data.hasKey("priority")) { + priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, data.getByte("priority")); + } + + this.markDirty(); + } + } + + public static class GUIPump extends GuiScreen { + + protected final TileEntityFluidPump pump; + + private GuiTextField textPlacementPriority; + private GuiButton buttonPressure; + private GuiButton buttonPriority; + private int pressure; + private int priority; + + public GUIPump(TileEntityFluidPump pump) { + this.pump = pump; + this.pressure = pump.tank[0].getPressure(); + this.priority = pump.priority.ordinal(); + } + + @Override + public void initGui() { + Keyboard.enableRepeatEvents(true); + + textPlacementPriority = new GuiTextField(fontRendererObj, this.width / 2 - 150, 100, 90, 20); + textPlacementPriority.setText("" + pump.bufferSize); + textPlacementPriority.setMaxStringLength(5); + + buttonPressure = new GuiButton(0, this.width / 2 - 50, 100, 90, 20, pressure + " PU"); + + buttonPriority = new GuiButton(1, this.width / 2 + 50, 100, 90, 20, pump.priority.name()); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + drawDefaultBackground(); + + drawString(fontRendererObj, "Throughput:", this.width / 2 - 150, 80, 0xA0A0A0); + drawString(fontRendererObj, "(max. 10,000mB)", this.width / 2 - 150, 90, 0xA0A0A0); + textPlacementPriority.drawTextBox(); + + drawString(fontRendererObj, "Pressure:", this.width / 2 - 50, 80, 0xA0A0A0); + buttonPressure.drawButton(mc, mouseX, mouseY); + + drawString(fontRendererObj, "Priority:", this.width / 2 + 50, 80, 0xA0A0A0); + buttonPriority.drawButton(mc, mouseX, mouseY); + + super.drawScreen(mouseX, mouseY, partialTicks); + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + + NBTTagCompound data = new NBTTagCompound(); + + data.setByte("pressure", (byte) pressure); + data.setByte("priority", (byte) priority); + + try { data.setInteger("capacity", Integer.parseInt(textPlacementPriority.getText())); } catch(Exception ex) {} + + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, pump.xCoord, pump.yCoord, pump.zCoord)); + } + + @Override + protected void keyTyped(char typedChar, int keyCode) { + super.keyTyped(typedChar, keyCode); + if(textPlacementPriority.textboxKeyTyped(typedChar, keyCode)) return; + + if(keyCode == 1 || keyCode == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) { + super.mouseClicked(mouseX, mouseY, mouseButton); + textPlacementPriority.mouseClicked(mouseX, mouseY, mouseButton); + + if(buttonPressure.mousePressed(mc, mouseX, mouseY)) { + this.pressure++; + if(pressure > 5) pressure = 0; + buttonPressure.displayString = pressure + " PU"; + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + } + + if(buttonPriority.mousePressed(mc, mouseX, mouseY)) { + this.priority++; + if(priority >= ConnectionPriority.values().length) priority = 0; + buttonPriority.displayString = EnumUtil.grabEnumSafely(ConnectionPriority.class, priority).name(); + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + } + } + + @Override public boolean doesGuiPauseGame() { return false; } + } +} diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index e515314ac..238de0e25 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -79,6 +79,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_g3_zebra, 1), new Object[] { " M ", "MPM", " M ", 'M', BIGMT.mechanism(), 'P', ModItems.gun_g3 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "BBB", "PGM", 'B', WEAPONSTEEL.heavyBarrel(), 'P', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'G', WEAPONSTEEL.grip(), 'M', WEAPONSTEEL.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "MHW", "PSS", 'M', WEAPONSTEEL.mechanism(), 'H', RUBBER.pipe(), 'W', ModItems.wrench, 'P', WEAPONSTEEL.heavyBarrel(), 'S', WEAPONSTEEL.shell() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_amat, 1), new Object[] { " C ", "BRS", " MG", 'G', WOOD.grip(), 'B', FERRO.heavyBarrel(), 'R', FERRO.heavyReceiver(), 'M', WEAPONSTEEL.mechanism(), 'C', DictFrame.fromOne(ModItems.weapon_mod_special, EnumModSpecial.SCOPE), 'S', WOOD.stock() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_m2, 1), new Object[] { " G", "BRM", " G", 'G', WOOD.grip(), 'B', FERRO.heavyBarrel(), 'R', FERRO.heavyReceiver(), 'M', WEAPONSTEEL.mechanism() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_autoshotgun, 1), new Object[] { "BRM", "G G", 'B', FERRO.heavyBarrel(), 'R', FERRO.heavyReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_autoshotgun_shredder, 1), new Object[] { " M ", "MAM", " M ", 'M', BIGMT.mechanism(), 'A', ModItems.gun_autoshotgun }); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 63715bbe3..84b99d6a5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1468,6 +1468,7 @@ public class ModItems { public static Item gun_g3_zebra; public static Item gun_stinger; public static Item gun_chemthrower; + public static Item gun_amat; public static Item gun_m2; public static Item gun_autoshotgun; public static Item gun_autoshotgun_shredder; @@ -6418,6 +6419,7 @@ public class ModItems { GameRegistry.registerItem(gun_g3_zebra, gun_g3_zebra.getUnlocalizedName()); GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); GameRegistry.registerItem(gun_chemthrower, gun_chemthrower.getUnlocalizedName()); + GameRegistry.registerItem(gun_amat, gun_amat.getUnlocalizedName()); GameRegistry.registerItem(gun_m2, gun_m2.getUnlocalizedName()); GameRegistry.registerItem(gun_autoshotgun, gun_autoshotgun.getUnlocalizedName()); GameRegistry.registerItem(gun_autoshotgun_shredder, gun_autoshotgun_shredder.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 07cf3fe8f..19bdab7ea 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -13,7 +13,6 @@ import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.Block; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -24,7 +23,7 @@ public class ItemTrain extends ItemEnumMulti { public ItemTrain() { super(EnumTrainType.class, true, true); - this.setCreativeTab(CreativeTabs.tabTransport); + this.setCreativeTab(null);//CreativeTabs.tabTransport); this.setMaxStackSize(1); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index 4576cf7a0..ceb18f250 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -70,6 +70,7 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_g3_zebra, new ItemRenderG3(ResourceManager.g3_zebra_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_stinger, new ItemRenderStinger()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_chemthrower, new ItemRenderChemthrower()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_amat, new ItemRenderAmat()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun, new ItemRenderShredder(ResourceManager.shredder_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_shredder, new ItemRenderShredder(ResourceManager.shredder_orig_tex)); @@ -254,6 +255,7 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_g3_zebra) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_stinger) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_chemthrower) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_amat) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_m2) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_autoshotgun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_autoshotgun_shredder) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index 3d0164466..8951e97d7 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -836,6 +836,56 @@ public class Orchestras { } }; + public static BiConsumer ORCHESTRA_AMAT = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); + + if(type == AnimType.EQUIP) { + if(timer == 10) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 0.5F, 1.25F); + if(timer == 15) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 0.5F, 1.25F); + } + + if(type == AnimType.CYCLE) { + if(timer == 7) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); + if(timer == 12) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, + 0.375, aiming ? 0 : -0.125, -0.25D, + -0.05, 0.2, -0.025, + 0.01, -10F + (float) entity.getRNG().nextGaussian() * 10F, (float) entity.getRNG().nextGaussian() * 12.5F, casing.getName(), true, 60, 0.5D, 10); + } + } + + if(type == AnimType.CYCLE_DRY) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); + if(timer == 7) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); + } + + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); + if(timer == 41) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); + } + + if(type == AnimType.JAMMED) { + if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); + if(timer == 16) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltOpen", 0.5F, 1F); + if(timer == 23) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.boltClose", 0.5F, 1F); + } + + if(type == AnimType.INSPECT) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 0.5F, 1F); + if(timer == 45) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 0.5F, 1F); + } + }; + public static BiConsumer ORCHESTRA_M2 = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java index 66327e98a..075bcf63e 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -15,6 +15,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.mags.MagazineBelt; +import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.anim.BusAnimation; @@ -54,6 +55,17 @@ public class XFactory50 { bmg50_he = new BulletConfig().setItem(EnumAmmo.BMG50_HE).setCasing(EnumCasingType.LARGE_STEEL, 12).setWear(3F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50he")); + ModItems.gun_amat = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() + .dura(350).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(XFactory44.scope_lilmac).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(30F).delay(25).dry(25).spreadHipfire(0.05F).reload(51).jam(43).sound("hbm:weapon.fire.amat", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_he)) + .offset(1, -0.0625 * 1.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_AMAT)) + .setupStandardConfiguration() + .anim(LAMBDA_AMAT_ANIMS).orchestra(Orchestras.ORCHESTRA_AMAT) + ).setUnlocalizedName("gun_amat"); + ModItems.gun_m2 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(10).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) @@ -70,10 +82,52 @@ public class XFactory50 { Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, 0); }; + public static BiConsumer LAMBDA_RECOIL_AMAT = (stack, ctx) -> { + ItemGunBaseNT.setupRecoil(12.5F, (float) (ctx.getPlayer().getRNG().nextGaussian() * 1)); + }; + public static BiConsumer LAMBDA_RECOIL_M2 = (stack, ctx) -> { ItemGunBaseNT.setupRecoil((float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5), (float) (ctx.getPlayer().getRNG().nextGaussian() * 0.5)); }; + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_AMAT_ANIMS = (stack, type) -> { + double turn = -60; + double pullAmount = -2.5; + double side = 4; + double down = -2; + double detach = 0.5; + double apex = 7; + + switch(type) { + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("BIPOD", new BusAnimationSequence().hold(500).addPos(80, 0, 0, 350).addPos(80, 25, 0, 150)); + case CYCLE: return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -0.5, 50, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("BOLT_TURN", new BusAnimationSequence().hold(250).addPos(0, 0, turn, 150).hold(700).addPos(0, 0, 0, 150)) + .addBus("BOLT_PULL", new BusAnimationSequence().hold(350).addPos(0, 0, pullAmount, 250, IType.SIN_UP).hold(250).addPos(0, 0, 0, 200, IType.LINEAR)) + .addBus("LIFT", new BusAnimationSequence().hold(600).addPos(-3, 0, 0, 150, IType.SIN_DOWN).hold(300).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case CYCLE_DRY: return new BusAnimation() + .addBus("BOLT_TURN", new BusAnimationSequence().hold(250).addPos(0, 0, turn, 150).hold(700).addPos(0, 0, 0, 150)) + .addBus("BOLT_PULL", new BusAnimationSequence().hold(350).addPos(0, 0, pullAmount, 250, IType.SIN_UP).hold(250).addPos(0, 0, 0, 200, IType.LINEAR)) + .addBus("LIFT", new BusAnimationSequence().hold(600).addPos(-3, 0, 0, 150, IType.SIN_DOWN).hold(300).addPos(0, 0, 0, 250, IType.SIN_FULL)); + case RELOAD: return new BusAnimation() + .addBus("MAG", new BusAnimationSequence().addPos(0, -10, 0, 350, IType.SIN_UP).addPos(0, 0, 0, 650, IType.SIN_UP)) + .addBus("LIFT", new BusAnimationSequence().hold(1000).addPos(-2, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 250, IType.SIN_FULL).hold(450).addPos(-3, 0, 0, 150, IType.SIN_DOWN).hold(300).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("BOLT_TURN", new BusAnimationSequence().hold(1500).addPos(0, 0, turn, 150).hold(700).addPos(0, 0, 0, 150)) + .addBus("BOLT_PULL", new BusAnimationSequence().hold(1600).addPos(0, 0, pullAmount, 250, IType.SIN_UP).hold(250).addPos(0, 0, 0, 200, IType.LINEAR)); + case JAMMED: return new BusAnimation() + .addBus("LIFT", new BusAnimationSequence().hold(250).addPos(-15, 0, 0, 500, IType.SIN_FULL).holdUntil(1650).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("BOLT_TURN", new BusAnimationSequence().hold(250).addPos(0, 0, turn, 150).holdUntil(1250).addPos(0, 0, 0, 150)) + .addBus("BOLT_PULL", new BusAnimationSequence().hold(350).addPos(0, 0, pullAmount, 250, IType.SIN_UP).addPos(0, 0, 0, 200, IType.LINEAR).addPos(0, 0, pullAmount, 250, IType.SIN_UP).addPos(0, 0, 0, 200, IType.LINEAR)); + case INSPECT: return new BusAnimation() + .addBus("SCOPE_THROW", new BusAnimationSequence().addPos(0, detach, 0, 100, IType.SIN_FULL).addPos(side, down, 0, 500, IType.SIN_FULL).addPos(side, down - 0.5, 0, 100).addPos(side, apex, 0, 350, IType.SIN_FULL).addPos(side, down - 0.5, 0, 350, IType.SIN_DOWN).addPos(side, down, 0, 100).hold(250).addPos(0, detach, 0, 500, IType.SIN_FULL).addPos(0, 0, 0, 250, IType.SIN_FULL)) + .addBus("SCOPE_SPIN", new BusAnimationSequence().hold(700).addPos(-360, 0, 0, 700)); + } + + return null; + }; + @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_M2_ANIMS = (stack, type) -> { switch(type) { case EQUIP: return new BusAnimation() diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java index 6d90dd8d1..d6958bc94 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModManager.java @@ -92,6 +92,7 @@ public class WeaponModManager { ModItems.gun_stinger, ModItems.gun_chemthrower }; Item[] ferroGuns = new Item[] { + ModItems.gun_amat, ModItems.gun_m2, ModItems.gun_autoshotgun, ModItems.gun_autoshotgun_shredder, ModItems.gun_quadro }; @@ -126,7 +127,7 @@ public class WeaponModManager { new WeaponModDefinition(EnumModGeneric.BRONZE_DURA).addMod(bronzeGuns, new WeaponModGenericDurability(117)); new WeaponModDefinition(EnumModSpecial.SPEEDLOADER).addMod(ModItems.gun_liberator, new WeaponModLiberatorSpeedloader(200)); - new WeaponModDefinition(EnumModSpecial.SILENCER).addMod(new Item[] {ModItems.gun_am180, ModItems.gun_uzi, ModItems.gun_uzi_akimbo, ModItems.gun_g3}, new WeaponModSilencer(ID_SILENCER)); + new WeaponModDefinition(EnumModSpecial.SILENCER).addMod(new Item[] {ModItems.gun_am180, ModItems.gun_uzi, ModItems.gun_uzi_akimbo, ModItems.gun_g3, ModItems.gun_amat}, new WeaponModSilencer(ID_SILENCER)); new WeaponModDefinition(EnumModSpecial.SCOPE).addMod(new Item[] {ModItems.gun_heavy_revolver, ModItems.gun_g3, ModItems.gun_mas36, ModItems.gun_charge_thrower}, new WeaponModScope(ID_SCOPE)); new WeaponModDefinition(EnumModSpecial.SAW) .addMod(new Item[] {ModItems.gun_maresleg, ModItems.gun_double_barrel}, new WeaponModSawedOff(ID_SAWED_OFF)) diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModSilencer.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModSilencer.java index 49c413883..52cdac0c3 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModSilencer.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModSilencer.java @@ -1,5 +1,6 @@ package com.hbm.items.weapon.sedna.mods; +import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.Receiver; import net.minecraft.item.ItemStack; @@ -14,6 +15,7 @@ public class WeaponModSilencer extends WeaponModBase { public T eval(T base, ItemStack gun, String key, Object parent) { if(key == Receiver.S_FIRESOUND) { + if(gun.getItem() == ModItems.gun_amat) return (T) "hbm:weapon.silencerShoot"; return (T) "hbm:weapon.fire.silenced"; } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 0a3738f3e..20c2f72f6 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 (5320)"; + public static final String VERSION = "1.0.27 BETA (5334)"; //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 b1a87dd14..167435ed1 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -12,6 +12,7 @@ import com.hbm.blocks.machine.Floodlight.TileEntityFloodlight; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; +import com.hbm.blocks.network.FluidPump.TileEntityFluidPump; import com.hbm.config.GeneralConfig; import com.hbm.entity.cart.EntityMinecartCrate; import com.hbm.entity.cart.EntityMinecartNTM; @@ -347,6 +348,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolderingStation.class, new RenderSolderingStation()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineArcFurnaceLarge.class, new RenderArcFurnace()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineWoodBurner.class, new RenderWoodBurner()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidPump.class, new RenderFluidPump()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 561167561..c1b471e74 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -482,7 +482,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rail_highspeed, 16), new Object[] { "S S", "SIS", "S S", 'S', STEEL.ingot(), 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.rail_booster, 6), new Object[] { "S S", "CIC", "SRS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'R', MINGRADE.ingot(), 'C', ModItems.coil_copper }); - addRecipeAuto(new ItemStack(ModBlocks.rail_large_straight, 4), new Object[] { "B B", "SSS", "W W", 'B', ModItems.bolt_spike, 'S', ModBlocks.steel_beam, 'W', KEY_SLAB }); + /*addRecipeAuto(new ItemStack(ModBlocks.rail_large_straight, 4), new Object[] { "B B", "SSS", "W W", 'B', ModItems.bolt_spike, 'S', ModBlocks.steel_beam, 'W', KEY_SLAB }); addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight, 1), new Object[] { ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short, ModBlocks.rail_large_straight_short }); addShapelessAuto(new ItemStack(ModBlocks.rail_large_straight_short, 5), new Object[] { ModBlocks.rail_large_straight }); addRecipeAuto(new ItemStack(ModBlocks.rail_large_buffer, 1), new Object[] { " S", "RS", 'R', ModBlocks.rail_large_straight, 'S', STEEL.ingot() }); @@ -492,7 +492,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rail_large_ramp, 1), new Object[] { " R ", "SSS", 'R', ModBlocks.rail_large_straight, 'S', KEY_SLAB }); addRecipeAuto(new ItemStack(ModBlocks.rail_large_switch, 1), new Object[] { "R R", " RR", " R", 'R', ModBlocks.rail_large_straight }); addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch), new Object[] { ModBlocks.rail_large_switch_flipped }); - addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch_flipped), new Object[] { ModBlocks.rail_large_switch }); + addShapelessAuto(new ItemStack(ModBlocks.rail_large_switch_flipped), new Object[] { ModBlocks.rail_large_switch });*/ addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', AL.wireFine(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'H', AL.shell(), 'F', ModItems.fins_quad_titanium, 'D', KEY_WHITE }); addShapelessAuto(new ItemStack(ModItems.powder_ice, 4), new Object[] { Items.snowball, KNO.dust(), REDSTONE.dust() }); @@ -607,6 +607,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_gauge), new Object[] { ModBlocks.fluid_duct_paintable, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); addRecipeAuto(new ItemStack(ModBlocks.fluid_valve, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.fluid_duct_paintable }); addRecipeAuto(new ItemStack(ModBlocks.fluid_switch, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.fluid_duct_paintable }); + addRecipeAuto(new ItemStack(ModBlocks.fluid_pump, 1), new Object[] { " S ", "PGP", "IMI", 'S', STEEL.shell(), 'P', STEEL.pipe(), 'G', GRAPHITE.ingot(), 'I', STEEL.ingot(), 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.pneumatic_tube, 8), new Object[] { "CRC", 'C', CU.plateCast(), 'R', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.pneumatic_tube, 24), new Object[] { "CRC", 'C', CU.plateWelded(), 'R', ANY_RUBBER.ingot() }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index cc5ddbdc5..37fbc2d55 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -14,6 +14,7 @@ import com.hbm.util.Clock; import com.hbm.world.biome.BiomeGenCraterBase; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -54,6 +55,9 @@ public class ModEventHandlerRenderer { private static ModelMan manlyModel; private static boolean[] partsHidden = new boolean[7]; + + @SubscribeEvent + public void onRenderTickPre(TickEvent.RenderTickEvent event) { } @SubscribeEvent(priority = EventPriority.LOWEST, receiveCanceled = true) public void onRenderPlayerPre(RenderPlayerEvent.Pre event) { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index d1af02be6..c729a7779 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -391,6 +391,7 @@ public class ResourceManager { public static final IModelCustom pylon_medium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_medium.obj")); public static final IModelCustom pylon_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_large.obj")); public static final IModelCustom substation = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/substation.obj")); + public static final IModelCustom fluid_pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/fluid_diode.obj")); //Radiolysis public static final IModelCustom radiolysis = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radiolysis.obj")); @@ -818,6 +819,7 @@ public class ResourceManager { public static final ResourceLocation substation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/substation.png"); public static final ResourceLocation wire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire.png"); public static final ResourceLocation wire_greyscale_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire_greyscale.png"); + public static final ResourceLocation fluid_pump_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/fluid_diode.png"); //Radiolysis public static final ResourceLocation radiolysis_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radiolysis.png"); @@ -874,6 +876,7 @@ public class ResourceManager { public static final IModelCustom g3 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/g3.obj")).asVBO(); public static final IModelCustom stinger = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/stinger.obj")).asVBO(); public static final IModelCustom chemthrower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chemthrower.obj")).asVBO(); + public static final IModelCustom amat = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/amat.obj")).asVBO(); public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asVBO(); public static final IModelCustom shredder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/shredder.obj")).asVBO(); public static final IModelCustom quadro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/quadro.obj")).asVBO(); @@ -994,6 +997,7 @@ public class ResourceManager { public static final ResourceLocation g3_green_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/g3_polymer_green.png"); public static final ResourceLocation g3_black_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/g3_polymer_black.png"); public static final ResourceLocation g3_attachments = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/g3_attachments.png"); + public static final ResourceLocation amat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/amat.png"); public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder.png"); public static final ResourceLocation shredder_orig_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder_orig.png"); public static final ResourceLocation sexy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java new file mode 100644 index 000000000..9957c23e1 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java @@ -0,0 +1,207 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.mods.WeaponModManager; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderAmat extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * (isScoped(stack) ? 0.8F : 0.33F)); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + + standardAimingTransform(stack, + -1F * offset, -1F * offset, 3.25F * offset, + 0, -4.875 / 8D, 1.875); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + boolean isScoped = isScoped(stack); + if(isScoped && ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; + + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.amat_tex); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + boolean deployed = HbmAnimations.getRelevantAnim(0) == null || HbmAnimations.getRelevantAnim(0).animation.getBus("BIPOD") == null; + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] bipod = HbmAnimations.getRelevantTransformation("BIPOD"); + double[] lift = HbmAnimations.getRelevantTransformation("LIFT"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] boltTurn = HbmAnimations.getRelevantTransformation("BOLT_TURN"); + double[] boltPull = HbmAnimations.getRelevantTransformation("BOLT_PULL"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] scopeThrow = HbmAnimations.getRelevantTransformation("SCOPE_THROW"); + double[] scopeSpin = HbmAnimations.getRelevantTransformation("SCOPE_SPIN"); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glTranslated(0, -3, -8); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glRotated(lift[0], 1, 0, 0); + GL11.glTranslated(0, 3, 8); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.amat.renderPart("Gun"); + + if(isScoped(stack)) { + GL11.glPushMatrix(); + GL11.glTranslated(scopeThrow[0], scopeThrow[1], scopeThrow[2]); + GL11.glTranslated(0, 1.5, -4.5); + GL11.glRotated(scopeSpin[0], 1, 0, 0); + GL11.glTranslated(0, -1.5, 4.5); + ResourceManager.amat.renderPart("Scope"); + GL11.glPopMatrix(); + } + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.625, 0); + GL11.glRotated(boltTurn[2], 0, 0, 1); + GL11.glTranslated(0, -0.625, 0); + GL11.glTranslated(0, 0, boltPull[2]); + ResourceManager.amat.renderPart("Bolt"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + ResourceManager.amat.renderPart("Magazine"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0.3125, -0.625, -1); + GL11.glRotated(deployed ? 25 : bipod[1], 0, 0, 1); + GL11.glTranslated(-0.3125, 0.625, 1); + ResourceManager.amat.renderPart("BipodHingeLeft"); + GL11.glTranslated(0.3125, -0.625, -1); + GL11.glRotated(deployed ? 80 : bipod[0], 1, 0, 0); + GL11.glTranslated(-0.3125, 0.625, 1); + ResourceManager.amat.renderPart("BipodLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(-0.3125, -0.625, -1); + GL11.glRotated(deployed ? -25 : -bipod[1], 0, 0, 1); + GL11.glTranslated(0.3125, 0.625, 1); + ResourceManager.amat.renderPart("BipodHingeRight"); + GL11.glTranslated(-0.3125, -0.625, -1); + GL11.glRotated(deployed ? 80 : bipod[0], 1, 0, 0); + GL11.glTranslated(0.3125, 0.625, 1); + ResourceManager.amat.renderPart("BipodRight"); + GL11.glPopMatrix(); + + if(isSilenced(stack)) { + GL11.glTranslated(0, 0.625, -4.3125); + GL11.glScaled(1.25, 1.25, 1.25); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.g3_attachments); + ResourceManager.g3.renderPart("Silencer"); + + GL11.glShadeModel(GL11.GL_FLAT); + } else { + ResourceManager.amat.renderPart("MuzzleBrake"); + + double smokeScale = 0.5; + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.625, 12); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(smokeScale, smokeScale, smokeScale); + this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 1D); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 11); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.75, 0.75, 0.75); + this.renderGapFlash(gun.lastShot[0]); + GL11.glPopMatrix(); + } + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.5D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0.5, 6.75); + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + if(isSilenced(stack)) { + double scale = 0.8175D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0.5, -1); + } else { + double scale = 0.9375D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(-0.5, 0.5, 0); + } + } + + @Override + public void setupModTable(ItemStack stack) { + double scale = -5.75D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, -0.25, -1.5); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.amat_tex); + ResourceManager.amat.renderPart("Gun"); + ResourceManager.amat.renderPart("Bolt"); + ResourceManager.amat.renderPart("Magazine"); + ResourceManager.amat.renderPart("BipodLeft"); + ResourceManager.amat.renderPart("BipodHingeLeft"); + ResourceManager.amat.renderPart("BipodRight"); + ResourceManager.amat.renderPart("BipodHingeRight"); + if(isScoped(stack)) ResourceManager.amat.renderPart("Scope"); + if(isSilenced(stack)) { + GL11.glTranslated(0, 0.625, -4.3125); + GL11.glScaled(1.25, 1.25, 1.25); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.g3_attachments); + ResourceManager.g3.renderPart("Silencer"); + } else { + ResourceManager.amat.renderPart("MuzzleBrake"); + } + GL11.glShadeModel(GL11.GL_FLAT); + } + + public boolean isScoped(ItemStack stack) { + return true; + } + + public boolean isSilenced(ItemStack stack) { + return WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SILENCER); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidPump.java b/src/main/java/com/hbm/render/tileentity/RenderFluidPump.java new file mode 100644 index 000000000..c38bf6527 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidPump.java @@ -0,0 +1,59 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderFluidPump extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata()) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.fluid_pump_tex); + ResourceManager.fluid_pump.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.fluid_pump); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glScaled(2, 2, 2); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.fluid_pump_tex); + ResourceManager.fluid_pump.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 33f3b124a..375a89662 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -35,6 +35,7 @@ import com.hbm.blocks.network.CableDiode.TileEntityDiode; import com.hbm.blocks.network.CranePartitioner.TileEntityCranePartitioner; import com.hbm.blocks.network.FluidDuctGauge.TileEntityPipeGauge; import com.hbm.blocks.network.FluidDuctPaintable.TileEntityPipePaintable; +import com.hbm.blocks.network.FluidPump.TileEntityFluidPump; import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.deco.*; @@ -198,14 +199,6 @@ public class TileMappings { put(TileEntityLantern.class, "tileentity_lantern_ordinary"); put(TileEntityLanternBehemoth.class, "tileentity_lantern_behemoth"); put(TileEntityStorageDrum.class, "tileentity_waste_storage_drum"); - put(TileEntityCableBaseNT.class, "tileentity_ohgod"); // what? - put(TileEntityCablePaintable.class, "tileentity_cable_paintable"); - put(TileEntityCableGauge.class, "tileentity_cable_gauge"); - put(TileEntityPipeBaseNT.class, "tileentity_pipe_base"); - put(TileEntityPipePaintable.class, "tileentity_pipe_paintable"); - put(TileEntityPipeGauge.class, "tileentity_pipe_gauge"); - put(TileEntityPipeExhaust.class, "tileentity_pipe_exhaust"); - put(TileEntityFluidValve.class, "tileentity_pipe_valve"); put(TileEntityMachineBAT9000.class, "tileentity_bat9000"); put(TileEntityMachineOrbus.class, "tileentity_orbus"); put(TileEntityGlpyhidSpawner.class, "tileentity_glyphid_spawner"); @@ -402,6 +395,8 @@ public class TileMappings { private static void putNetwork() { put(TileEntityCableBaseNT.class, "tileentity_cable", "tileentity_wirecoated"); + put(TileEntityCablePaintable.class, "tileentity_cable_paintable"); + put(TileEntityCableGauge.class, "tileentity_cable_gauge"); put(TileEntityCableSwitch.class, "tileentity_cable_switch"); put(TileEntityDiode.class, "tileentity_cable_diode"); @@ -411,6 +406,13 @@ public class TileMappings { put(TileEntityPylonLarge.class, "tileentity_pylon_large"); put(TileEntitySubstation.class, "tileentity_substation"); + put(TileEntityPipeBaseNT.class, "tileentity_pipe_base"); + put(TileEntityPipePaintable.class, "tileentity_pipe_paintable"); + put(TileEntityPipeGauge.class, "tileentity_pipe_gauge"); + put(TileEntityPipeExhaust.class, "tileentity_pipe_exhaust"); + put(TileEntityFluidValve.class, "tileentity_pipe_valve"); + put(TileEntityFluidPump.class, "tileentity_pipe_pump"); + put(TileEntityCraneInserter.class, "tileentity_inserter"); put(TileEntityCraneExtractor.class, "tileentity_extractor"); put(TileEntityCraneGrabber.class, "tileentity_grabber"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index 997cd1f07..051e69092 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -378,17 +378,19 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl boolean needsDesignator = needsDesignator(slots[0].getItem()); - int targetX = 0; - int targetZ = 0; + int targetX = xCoord; + int targetZ = zCoord; if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); - if(!designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord) && needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; - - Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); - targetX = (int) Math.floor(coords.xCoord); - targetZ = (int) Math.floor(coords.zCoord); + if(needsDesignator) { + if(!designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); + targetX = (int) Math.floor(coords.xCoord); + targetZ = (int) Math.floor(coords.zCoord); + } } else { if(needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; diff --git a/src/main/java/com/hbm/util/BobMathUtil.java b/src/main/java/com/hbm/util/BobMathUtil.java index df6cc8f44..bcffce9f1 100644 --- a/src/main/java/com/hbm/util/BobMathUtil.java +++ b/src/main/java/com/hbm/util/BobMathUtil.java @@ -180,6 +180,14 @@ public class BobMathUtil { return new BigDecimal(num).setScale(digits, RoundingMode.HALF_UP).doubleValue(); } + + /** + * @param amount + * @return the number as a string with thousand group commas + */ + public static String format(int amount) { + return String.format(Locale.US, "%,d", amount); + } public static boolean getBlink() { return System.currentTimeMillis() % 1000 < 500; diff --git a/src/main/java/com/hbm/world/WorldUtil.java b/src/main/java/com/hbm/world/WorldUtil.java index 05e6d33b0..9a17a73cb 100644 --- a/src/main/java/com/hbm/world/WorldUtil.java +++ b/src/main/java/com/hbm/world/WorldUtil.java @@ -111,18 +111,14 @@ public class WorldUtil { int chunkZ = MathHelper.floor_double(entity.posZ / 16.0D); byte loadRadius = 2; - for (int k = chunkX - loadRadius; k <= chunkX + loadRadius; ++k) - { - for (int l = chunkZ - loadRadius; l <= chunkZ + loadRadius; ++l) - { + for(int k = chunkX - loadRadius; k <= chunkX + loadRadius; ++k) { + for(int l = chunkZ - loadRadius; l <= chunkZ + loadRadius; ++l) { world.getChunkFromChunkCoords(k, l); } } - if (!world.loadedEntityList.contains(entity)) - { - if (!MinecraftForge.EVENT_BUS.post(new EntityJoinWorldEvent(entity, world))) - { + if(!world.loadedEntityList.contains(entity)) { + if(!MinecraftForge.EVENT_BUS.post(new EntityJoinWorldEvent(entity, world))) { world.getChunkFromChunkCoords(chunkX, chunkZ).addEntity(entity); world.loadedEntityList.add(entity); world.onEntityAdded(entity); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 9eb688713..013fca1e3 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2068,6 +2068,7 @@ item.gun_aberrator.name=Aberrator item.gun_aberrator_eott.name=Eyes Of The Tempest item.gun_am180.name=.22er Maschinenpistole item.gun_am180_silenced.name=Schallgedämpfte .22er Maschinenpistole +item.gun_amat.name=Panzerbüchse item.gun_autoshotgun.name=Auto-Flinte item.gun_autoshotgun_sexy.name=Sexy item.gun_autoshotgun_shredder.name=Shredder @@ -4163,6 +4164,7 @@ tile.fluid_duct_gauge.desc=Rohr welches anzeight, wie viel Flüssigkeit$sich pro tile.fluid_duct_neo.name=Universelles Flüssigkeitsrohr tile.fluid_duct_paintable.name=Geschirmtes universelles Flüssigkeitsrohr (Färbbar) tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr (Veraltet) +tile.fluid_pump.name=Flussseuerungspumpe tile.fluid_switch.name=Redstone-Ventil tile.fluid_valve.name=Ventil tile.foam_layer.name=Schaumdecke @@ -4861,6 +4863,9 @@ tile.vent_chlorine.name=Chlorgas-Auslass tile.vent_chlorine_seal.name=Chlorgassiegel tile.vent_cloud.name=Wolken-Auslass tile.vent_pink_cloud.name=Pinker Wolken-Auslass +tile.vine_phosphor.large.name=Phosphorranken +tile.vinyl_tile.large.name=Große Vinylfliesen +tile.vinyl_tile.small.name=Kleine Vinylfliesen tile.vitrified_barrel.name=Fass voll vitrifiziertem Atommüll tile.volcano_core.name=Vulkankern tile.volcano_rad_core.name=Rad-Vulkankern diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e888fe951..4d972d4fd 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2879,6 +2879,7 @@ item.gun_aberrator.name=Aberrator item.gun_aberrator_eott.name=Eyes Of The Tempest item.gun_am180.name=.22 Submachine Gun item.gun_am180_silenced.name=Silenced .22 Submachine Gun +item.gun_amat.name=Anti-Materiel Rifle item.gun_autoshotgun.name=Auto Shotgun item.gun_autoshotgun_sexy.name=Sexy item.gun_autoshotgun_shredder.name=Shredder @@ -5288,6 +5289,7 @@ tile.fluid_duct_gauge.desc=Pipe that displays how much fluid$moves within the ne tile.fluid_duct_neo.name=Universal Fluid Duct tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated) +tile.fluid_pump.name=Flow Control Pump tile.fluid_switch.name=Redstone Fluid Valve tile.fluid_valve.name=Fluid Valve tile.foam_layer.name=Foam layer @@ -6018,6 +6020,7 @@ tile.vent_chlorine.name=Chlorine Vent tile.vent_chlorine_seal.name=Chlorine Seal tile.vent_cloud.name=Cloud Vent tile.vent_pink_cloud.name=Pink Cloud Vent +tile.vine_phosphor.large.name=Phosphor Vines tile.vinyl_tile.large.name=Large Vinyl Tile tile.vinyl_tile.small.name=Small Vinyl Tiles tile.vitrified_barrel.name=Vitrified Nuclear Waste Drum diff --git a/src/main/resources/assets/hbm/models/network/fluid_diode.obj b/src/main/resources/assets/hbm/models/network/fluid_diode.obj new file mode 100644 index 000000000..3347a2036 --- /dev/null +++ b/src/main/resources/assets/hbm/models/network/fluid_diode.obj @@ -0,0 +1,2189 @@ +# Blender 4.0.2 +# www.blender.org +mtllib Pump.mtl +o Cylinder +v -0.500000 0.500000 -0.250000 +v -0.500000 0.500000 -0.437500 +v -0.433013 0.250000 -0.250000 +v -0.433013 0.250000 -0.437500 +v -0.250000 0.066987 -0.250000 +v -0.250000 0.066987 -0.437500 +v 0.000000 0.000000 -0.250000 +v 0.000000 0.000000 -0.437500 +v 0.250000 0.066987 -0.250000 +v 0.250000 0.066987 -0.437500 +v 0.433013 0.250000 -0.250000 +v 0.433013 0.250000 -0.437500 +v 0.500000 0.500000 -0.250000 +v 0.500000 0.500000 -0.437500 +v 0.433013 0.750000 -0.250000 +v 0.433013 0.750000 -0.437500 +v 0.250000 0.933013 -0.250000 +v 0.250000 0.933013 -0.437500 +v -0.000000 1.000000 -0.250000 +v -0.000000 1.000000 -0.437500 +v -0.250000 0.933013 -0.250000 +v -0.250000 0.933013 -0.437500 +v -0.433013 0.750000 -0.250000 +v -0.433013 0.750000 -0.437500 +v -0.376977 0.282352 -0.187500 +v -0.435295 0.500000 -0.187500 +v -0.217648 0.123023 -0.187500 +v 0.000000 0.064705 -0.187500 +v 0.217648 0.123023 -0.187500 +v 0.376977 0.282352 -0.187500 +v 0.435295 0.500000 -0.187500 +v 0.376977 0.717648 -0.187500 +v 0.217648 0.876977 -0.187500 +v -0.000000 0.935295 -0.187500 +v -0.217648 0.876977 -0.187500 +v -0.376977 0.717648 -0.187500 +v -0.156652 0.409557 -0.312500 +v -0.180886 0.500000 -0.312500 +v -0.090443 0.343348 -0.312500 +v 0.000000 0.319114 -0.312500 +v 0.090443 0.343348 -0.312500 +v 0.156652 0.409557 -0.312500 +v 0.180886 0.500000 -0.312500 +v 0.156652 0.590443 -0.312500 +v 0.090443 0.656652 -0.312500 +v -0.000000 0.680886 -0.312500 +v -0.090443 0.656652 -0.312500 +v -0.156652 0.590443 -0.312500 +v -0.305886 0.500000 -0.250000 +v -0.370590 0.500000 -0.187500 +v -0.320941 0.314705 -0.187500 +v -0.264905 0.347057 -0.250000 +v -0.185295 0.179059 -0.187500 +v -0.152943 0.235095 -0.250000 +v 0.000000 0.129409 -0.187500 +v 0.000000 0.194114 -0.250000 +v 0.185295 0.179059 -0.187500 +v 0.152943 0.235095 -0.250000 +v 0.320941 0.314705 -0.187500 +v 0.264905 0.347057 -0.250000 +v 0.370591 0.500000 -0.187500 +v 0.305886 0.500000 -0.250000 +v 0.320941 0.685295 -0.187500 +v 0.264905 0.652943 -0.250000 +v 0.185295 0.820941 -0.187500 +v 0.152943 0.764905 -0.250000 +v -0.000000 0.870591 -0.187500 +v -0.000000 0.805886 -0.250000 +v -0.185295 0.820941 -0.187500 +v -0.152943 0.764905 -0.250000 +v -0.320941 0.685295 -0.187500 +v -0.264905 0.652943 -0.250000 +v -0.435295 0.500000 -0.500000 +v -0.376977 0.282352 -0.500000 +v -0.217648 0.123023 -0.500000 +v 0.000000 0.064705 -0.500000 +v 0.217648 0.123023 -0.500000 +v 0.376977 0.282352 -0.500000 +v 0.435295 0.500000 -0.500000 +v 0.376977 0.717648 -0.500000 +v 0.217648 0.876977 -0.500000 +v -0.000000 0.935295 -0.500000 +v -0.217648 0.876977 -0.500000 +v -0.376977 0.717648 -0.500000 +v -0.375000 0.500000 -0.500000 +v -0.310295 0.500000 -0.437500 +v -0.268724 0.344852 -0.437500 +v -0.324760 0.312500 -0.500000 +v -0.155148 0.231276 -0.437500 +v -0.187500 0.175240 -0.500000 +v 0.000000 0.189705 -0.437500 +v 0.000000 0.125000 -0.500000 +v 0.155148 0.231276 -0.437500 +v 0.187500 0.175241 -0.500000 +v 0.268724 0.344852 -0.437500 +v 0.324760 0.312500 -0.500000 +v 0.310295 0.500000 -0.437500 +v 0.375000 0.500000 -0.500000 +v 0.268724 0.655148 -0.437500 +v 0.324759 0.687500 -0.500000 +v 0.155148 0.768724 -0.437500 +v 0.187500 0.824759 -0.500000 +v -0.000000 0.810295 -0.437500 +v -0.000000 0.875000 -0.500000 +v -0.155148 0.768724 -0.437500 +v -0.187500 0.824759 -0.500000 +v -0.268724 0.655148 -0.437500 +v -0.324760 0.687500 -0.500000 +v -0.247795 0.500000 -0.437500 +v -0.183090 0.500000 -0.500000 +v -0.158561 0.408455 -0.500000 +v -0.214597 0.376102 -0.437500 +v -0.091545 0.341439 -0.500000 +v -0.123898 0.285403 -0.437500 +v 0.000000 0.316909 -0.500000 +v 0.000000 0.252205 -0.437500 +v 0.091545 0.341439 -0.500000 +v 0.123898 0.285403 -0.437500 +v 0.158561 0.408455 -0.500000 +v 0.214597 0.376102 -0.437500 +v 0.183090 0.500000 -0.500000 +v 0.247795 0.500000 -0.437500 +v 0.158561 0.591545 -0.500000 +v 0.214597 0.623898 -0.437500 +v 0.091545 0.658561 -0.500000 +v 0.123898 0.714597 -0.437500 +v -0.000000 0.683091 -0.500000 +v -0.000000 0.747795 -0.437500 +v -0.091545 0.658561 -0.500000 +v -0.123898 0.714597 -0.437500 +v -0.158561 0.591545 -0.500000 +v -0.214597 0.623898 -0.437500 +v -0.264905 0.347057 -0.312500 +v -0.305886 0.500000 -0.312500 +v -0.152943 0.235095 -0.312500 +v 0.000000 0.194114 -0.312500 +v 0.152943 0.235095 -0.312500 +v 0.264905 0.347057 -0.312500 +v 0.305886 0.500000 -0.312500 +v 0.264905 0.652943 -0.312500 +v 0.152943 0.764905 -0.312500 +v -0.000000 0.805886 -0.312500 +v -0.152943 0.764905 -0.312500 +v -0.264905 0.652943 -0.312500 +v 0.187500 0.500000 0.187500 +v 0.250000 0.500000 0.187500 +v 0.187500 0.500000 -0.312500 +v 0.250000 0.500000 -0.312500 +v 0.187500 0.562744 0.187500 +v 0.250000 0.562744 0.187500 +v 0.187500 0.562744 -0.312500 +v 0.250000 0.562744 -0.312500 +v 0.187500 0.437256 0.187500 +v 0.250000 0.437256 0.187500 +v 0.187500 0.437256 -0.312500 +v 0.250000 0.437256 -0.312500 +v -0.250000 0.500000 0.187500 +v -0.187500 0.500000 0.187500 +v -0.250000 0.500000 -0.312500 +v -0.187500 0.500000 -0.312500 +v -0.250000 0.562744 0.187500 +v -0.187500 0.562744 0.187500 +v -0.250000 0.562744 -0.312500 +v -0.187500 0.562744 -0.312500 +v -0.166667 0.625244 -0.312500 +v -0.229167 0.625244 -0.312500 +v -0.166667 0.625244 0.187500 +v -0.229167 0.625244 0.187500 +v -0.250000 0.437256 0.187500 +v -0.187500 0.437256 0.187500 +v -0.250000 0.437256 -0.312500 +v -0.187500 0.437256 -0.312500 +v -0.166667 0.374756 -0.312500 +v -0.229167 0.374756 -0.312500 +v -0.166667 0.374756 0.187500 +v -0.229167 0.374756 0.187500 +v 0.156250 0.374756 0.187500 +v 0.218750 0.374756 0.187500 +v 0.156250 0.374756 -0.312500 +v 0.218750 0.374756 -0.312500 +v 0.156250 0.625244 0.187500 +v 0.218750 0.625244 0.187500 +v 0.156250 0.625244 -0.312500 +v 0.218750 0.625244 -0.312500 +v -0.000000 0.718750 -0.312500 +v -0.000000 0.718750 0.187500 +v 0.154680 0.654680 -0.312500 +v 0.154680 0.654680 0.187500 +v 0.218750 0.500000 -0.312500 +v 0.218750 0.500000 0.187500 +v 0.154680 0.345320 -0.312500 +v 0.154680 0.345320 0.187500 +v -0.000000 0.281250 -0.312500 +v -0.000000 0.281250 0.187500 +v -0.154680 0.345320 -0.312500 +v -0.154680 0.345320 0.187500 +v -0.218750 0.500000 -0.312500 +v -0.218750 0.500000 0.187500 +v -0.154680 0.654680 -0.312500 +v -0.154680 0.654680 0.187500 +v -0.000000 0.750000 0.187500 +v 0.176777 0.676777 0.187500 +v 0.250000 0.500000 0.187500 +v 0.176777 0.323223 0.187500 +v 0.000000 0.250000 0.187500 +v -0.176777 0.323223 0.187500 +v -0.250000 0.500000 0.187500 +v -0.176777 0.676777 0.187500 +v -0.000000 0.750000 0.437500 +v 0.176777 0.676777 0.437500 +v 0.250000 0.500000 0.437500 +v 0.176777 0.323223 0.437500 +v -0.000000 0.250000 0.437500 +v -0.176777 0.323223 0.437500 +v -0.250000 0.500000 0.437500 +v -0.176777 0.676777 0.437500 +v 0.132583 0.632582 0.500000 +v 0.000000 0.687500 0.500000 +v 0.187500 0.500000 0.500000 +v 0.132583 0.367417 0.500000 +v 0.000000 0.312500 0.500000 +v -0.132583 0.367417 0.500000 +v -0.187500 0.500000 0.500000 +v -0.132583 0.632582 0.500000 +v -0.093750 0.625000 0.125000 +v -0.093750 0.625000 -0.187500 +v 0.093750 0.625000 0.125000 +v 0.093750 0.625000 -0.187500 +v -0.093750 0.750000 0.125000 +v -0.093750 0.812500 0.062500 +v -0.093750 0.812500 -0.125000 +v -0.093750 0.750000 -0.187500 +v 0.093750 0.812500 0.062500 +v 0.093750 0.750000 0.125000 +v 0.093750 0.750000 -0.187500 +v 0.093750 0.812500 -0.125000 +v 0.199334 0.300666 -0.312500 +v 0.199334 0.300666 0.187500 +v 0.265625 0.328125 -0.312500 +v 0.265625 0.328125 0.187500 +v 0.331916 0.300666 -0.312500 +v 0.331916 0.300666 0.187500 +v 0.359375 0.234375 -0.312500 +v 0.359375 0.234375 0.187500 +v 0.331916 0.168084 -0.312500 +v 0.331916 0.168084 0.187500 +v 0.265625 0.140625 -0.312500 +v 0.265625 0.140625 0.187500 +v 0.199334 0.168084 -0.312500 +v 0.199334 0.168084 0.187500 +v 0.171875 0.234375 -0.312500 +v 0.171875 0.234375 0.187500 +v 0.199334 0.300666 0.187500 +v 0.259938 0.333812 0.206916 +v 0.312500 0.320083 0.253791 +v 0.326229 0.267521 0.300666 +v 0.293084 0.206916 0.320083 +v 0.232479 0.173771 0.300666 +v 0.179918 0.187500 0.253791 +v 0.166188 0.240062 0.206916 +v 0.199334 0.300666 0.187500 +v 0.246209 0.347541 0.214959 +v 0.265625 0.366958 0.281250 +v 0.246209 0.347541 0.347541 +v 0.199334 0.300666 0.375000 +v 0.152459 0.253791 0.347541 +v 0.133042 0.234375 0.281250 +v 0.152459 0.253791 0.214959 +v 0.157820 0.435930 0.214959 +v 0.110945 0.389055 0.187500 +v 0.177237 0.455346 0.281250 +v 0.157820 0.435930 0.347541 +v 0.110945 0.389055 0.375000 +v 0.064070 0.342180 0.347541 +v 0.044654 0.322763 0.281250 +v 0.064070 0.342180 0.214959 +v -0.187500 0.062500 -0.375000 +v -0.187500 -0.000000 -0.437500 +v -0.187500 -0.000000 0.437500 +v -0.187500 0.062500 0.375000 +v -0.375000 0.000000 -0.437500 +v -0.375000 0.062500 -0.375000 +v -0.375000 0.062500 0.375000 +v -0.375000 0.000000 0.437500 +v 0.187500 0.000000 0.437500 +v 0.187500 0.062500 0.375000 +v 0.187500 0.062500 -0.375000 +v 0.187500 0.000000 -0.437500 +v 0.375000 0.062500 0.375000 +v 0.375000 -0.000000 0.437500 +v 0.375000 -0.000000 -0.437500 +v 0.375000 0.062500 -0.375000 +v 0.125000 0.625000 -0.000000 +v 0.125000 0.588388 0.088388 +v 0.125000 0.500000 0.125000 +v 0.125000 0.411612 0.088388 +v 0.125000 0.375000 -0.000000 +v 0.125000 0.411612 -0.088388 +v 0.125000 0.500000 -0.125000 +v 0.125000 0.588388 -0.088388 +v 0.437500 0.687500 0.000000 +v 0.375000 0.625000 0.000000 +v 0.437500 0.632583 0.132583 +v 0.375000 0.588388 0.088388 +v 0.437500 0.500000 0.187500 +v 0.375000 0.500000 0.125000 +v 0.437500 0.367418 0.132583 +v 0.375000 0.411612 0.088388 +v 0.437500 0.312500 0.000000 +v 0.375000 0.375000 0.000000 +v 0.437500 0.367418 -0.132582 +v 0.375000 0.411612 -0.088388 +v 0.437500 0.500000 -0.187500 +v 0.375000 0.500000 -0.125000 +v 0.437500 0.632583 -0.132582 +v 0.375000 0.588388 -0.088388 +v 0.500000 0.687500 0.000000 +v 0.500000 0.632583 0.132583 +v 0.500000 0.500000 0.187500 +v 0.500000 0.367418 0.132583 +v 0.500000 0.312500 0.000000 +v 0.500000 0.367418 -0.132582 +v 0.500000 0.500000 -0.187500 +v 0.500000 0.632583 -0.132582 +v 0.281250 0.018306 0.312500 +v 0.281250 0.018306 0.187500 +v 0.325444 0.062500 0.312500 +v 0.325444 0.062500 0.187500 +v 0.016085 0.283471 0.187500 +v 0.016085 0.283471 0.312500 +v 0.060279 0.327665 0.187500 +v 0.060279 0.327665 0.312500 +v 0.250000 0.062500 0.062500 +v 0.250000 0.187500 0.062500 +v 0.250000 0.062500 -0.062500 +v 0.250000 0.187500 -0.062500 +v 0.312500 0.062500 0.062500 +v 0.312500 0.187500 0.062500 +v 0.312500 0.062500 -0.062500 +v 0.312500 0.187500 -0.062500 +v -0.281250 0.018306 0.312500 +v -0.281250 0.018306 0.187500 +v -0.325444 0.062500 0.312500 +v -0.325444 0.062500 0.187500 +v -0.016085 0.283471 0.187500 +v -0.016085 0.283471 0.312500 +v -0.060279 0.327665 0.187500 +v -0.060279 0.327665 0.312500 +v -0.250000 0.062500 0.062500 +v -0.250000 0.187500 0.062500 +v -0.250000 0.062500 -0.062500 +v -0.250000 0.187500 -0.062500 +v -0.312500 0.062500 0.062500 +v -0.312500 0.187500 0.062500 +v -0.312500 0.062500 -0.062500 +v -0.312500 0.187500 -0.062500 +v -0.125000 0.625000 0.000000 +v -0.125000 0.588388 -0.088388 +v -0.125000 0.500000 -0.125000 +v -0.125000 0.411612 -0.088388 +v -0.125000 0.375000 0.000000 +v -0.125000 0.411612 0.088388 +v -0.125000 0.500000 0.125000 +v -0.125000 0.588388 0.088388 +v -0.437500 0.687500 -0.000000 +v -0.375000 0.625000 0.000000 +v -0.437500 0.632583 -0.132583 +v -0.375000 0.588388 -0.088388 +v -0.437500 0.500000 -0.187500 +v -0.375000 0.500000 -0.125000 +v -0.437500 0.367418 -0.132583 +v -0.375000 0.411612 -0.088388 +v -0.437500 0.312500 -0.000000 +v -0.375000 0.375000 0.000000 +v -0.437500 0.367418 0.132582 +v -0.375000 0.411612 0.088388 +v -0.437500 0.500000 0.187500 +v -0.375000 0.500000 0.125000 +v -0.437500 0.632583 0.132582 +v -0.375000 0.588388 0.088388 +v -0.500000 0.687500 -0.000000 +v -0.500000 0.632583 -0.132583 +v -0.500000 0.500000 -0.187500 +v -0.500000 0.367418 -0.132583 +v -0.500000 0.312500 -0.000000 +v -0.500000 0.367418 0.132582 +v -0.500000 0.500000 0.187500 +v -0.500000 0.632583 0.132582 +v -0.199334 0.300666 -0.312500 +v -0.199334 0.300666 0.187500 +v -0.171875 0.234375 -0.312500 +v -0.171875 0.234375 0.187500 +v -0.199334 0.168084 -0.312500 +v -0.199334 0.168084 0.187500 +v -0.265625 0.140625 -0.312500 +v -0.265625 0.140625 0.187500 +v -0.331916 0.168084 -0.312500 +v -0.331916 0.168084 0.187500 +v -0.359375 0.234375 -0.312500 +v -0.359375 0.234375 0.187500 +v -0.331916 0.300666 -0.312500 +v -0.331916 0.300666 0.187500 +v -0.265625 0.328125 -0.312500 +v -0.265625 0.328125 0.187500 +v -0.199334 0.300666 0.187500 +v -0.166188 0.240062 0.206916 +v -0.179917 0.187500 0.253791 +v -0.232479 0.173771 0.300666 +v -0.293084 0.206916 0.320083 +v -0.326229 0.267521 0.300666 +v -0.312500 0.320083 0.253791 +v -0.259938 0.333812 0.206916 +v -0.199334 0.300666 0.187500 +v -0.152459 0.253791 0.214959 +v -0.133042 0.234375 0.281250 +v -0.152459 0.253791 0.347541 +v -0.199334 0.300666 0.375000 +v -0.246209 0.347541 0.347541 +v -0.265625 0.366958 0.281250 +v -0.246209 0.347541 0.214959 +v -0.064070 0.342180 0.214959 +v -0.110945 0.389055 0.187500 +v -0.044654 0.322763 0.281250 +v -0.064070 0.342180 0.347541 +v -0.110945 0.389055 0.375000 +v -0.157820 0.435930 0.347541 +v -0.177237 0.455346 0.281250 +v -0.157820 0.435930 0.214959 +vn -0.8660 0.5000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.6947 -0.0000 0.7193 +vn -0.6017 -0.3474 0.7193 +vn -0.6947 -0.0000 -0.7193 +vn -0.6017 -0.3474 -0.7193 +vn -0.3474 -0.6017 0.7193 +vn -0.3474 -0.6017 -0.7193 +vn -0.0000 -0.6947 0.7193 +vn -0.0000 -0.6947 -0.7193 +vn 0.3474 -0.6017 0.7193 +vn 0.3474 -0.6017 -0.7193 +vn 0.6017 -0.3474 0.7193 +vn 0.6017 -0.3474 -0.7193 +vn 0.6947 -0.0000 0.7193 +vn 0.6947 -0.0000 -0.7193 +vn 0.6017 0.3474 0.7193 +vn 0.6017 0.3474 -0.7193 +vn 0.3474 0.6017 0.7193 +vn 0.3474 0.6017 -0.7193 +vn -0.0000 0.6947 0.7193 +vn -0.0000 0.6947 -0.7193 +vn -0.3474 0.6017 0.7193 +vn -0.3474 0.6017 -0.7193 +vn -0.6017 0.3474 0.7193 +vn -0.6017 0.3474 -0.7193 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.0000 0.7071 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.7071 -0.0000 0.7071 +vn 0.5000 -0.5000 0.7071 +vn -0.0000 -0.7071 0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.0000 0.7071 -0.7071 +vn -0.7443 0.6676 -0.0183 +vn 0.0372 0.9900 -0.1363 +vn 0.7396 0.6727 0.0196 +vn 0.9891 -0.0283 0.1448 +vn 0.6947 -0.6947 0.1866 +vn 0.0283 -0.9891 0.1448 +vn -0.9900 -0.0372 -0.1363 +vn -0.7540 0.5786 -0.3109 +vn -0.6565 -0.7513 0.0671 +vn -0.6099 -0.4172 -0.6737 +vn -0.8620 -0.2090 -0.4617 +vn 0.2090 0.8620 -0.4617 +vn 0.7513 0.6565 0.0671 +vn 0.8431 0.0945 0.5294 +vn -0.6727 -0.7396 0.0196 +vn -0.0945 -0.8431 0.5294 +vn -0.6923 -0.7200 0.0473 +vn -0.3780 -0.5828 0.7194 +vn 0.7200 0.6923 0.0473 +vn 0.5828 0.3780 0.7194 +vn -0.3521 0.2915 -0.8894 +vn 0.4172 0.6099 -0.6737 +vn 0.1319 -0.1319 0.9824 +vn 0.5000 0.5000 -0.7071 +vn -0.5000 -0.5000 -0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.7071 0.5000 0.5000 +vn -0.7071 -0.5000 0.5000 +vn -0.7071 -0.5000 -0.5000 +vn -0.7071 -0.0000 -0.7071 +vn -0.7071 0.5000 -0.5000 +vn 0.7071 0.5000 -0.5000 +vn 0.7071 -0.0000 -0.7071 +vn 0.7071 -0.5000 -0.5000 +vn 0.7071 -0.5000 0.5000 +vn 0.7071 0.5000 0.5000 +vn 0.7381 0.6747 -0.0000 +vn 0.9900 -0.0372 -0.1363 +vn -0.0283 -0.9891 0.1448 +vn -0.9891 -0.0283 0.1448 +vn -0.7396 0.6727 0.0196 +vn -0.0372 0.9900 -0.1363 +vn 0.7260 0.6130 -0.3116 +vn -0.7513 0.6565 0.0671 +vn -0.4172 0.6099 -0.6737 +vn -0.2090 0.8620 -0.4617 +vn 0.8620 -0.2090 -0.4617 +vn 0.6727 -0.7396 0.0196 +vn 0.0945 -0.8431 0.5294 +vn -0.8431 0.0945 0.5294 +vn -0.6947 -0.6947 0.1866 +vn 0.6565 -0.7513 0.0671 +vn -0.7200 0.6923 0.0473 +vn -0.5828 0.3780 0.7194 +vn 0.6923 -0.7200 0.0473 +vn 0.3780 -0.5828 0.7194 +vn 0.2914 0.3122 -0.9042 +vn 0.6099 -0.4172 -0.6737 +vn -0.1319 -0.1319 0.9824 +vn -0.5000 0.5000 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vt 0.163636 0.709091 +vt 0.109091 0.781818 +vt 0.109091 0.709091 +vt 0.163636 0.927273 +vt 0.109091 1.000000 +vt 0.109091 0.927273 +vt 0.163636 0.127273 +vt 0.109091 0.200000 +vt 0.109091 0.127273 +vt 0.163636 0.200000 +vt 0.109091 0.272727 +vt 0.163636 0.272727 +vt 0.109091 0.345455 +vt 0.163636 0.345455 +vt 0.109091 0.418182 +vt 0.163636 0.418182 +vt 0.109091 0.490909 +vt 0.163636 0.490909 +vt 0.109091 0.563636 +vt 0.163636 0.563636 +vt 0.109091 0.636364 +vt 0.163636 0.636364 +vt 0.163636 0.854545 +vt 0.109091 0.854545 +vt 0.163636 0.781818 +vt 0.109091 0.781818 +vt 0.090909 0.849840 +vt 0.090909 0.786524 +vt 0.163636 0.781818 +vt 0.181818 0.849840 +vt 0.163636 0.854545 +vt 0.109091 0.927273 +vt 0.090909 0.859251 +vt 0.109091 0.854545 +vt 0.163636 0.854545 +vt 0.181818 0.922567 +vt 0.163636 0.927273 +vt 0.109091 1.000000 +vt 0.090909 0.931978 +vt 0.109091 0.927273 +vt 0.163636 0.927273 +vt 0.181818 0.995294 +vt 0.163636 1.000000 +vt 0.090909 0.131979 +vt 0.181818 0.195294 +vt 0.090909 0.204706 +vt 0.109091 0.200000 +vt 0.163636 0.200000 +vt 0.181818 0.268021 +vt 0.109091 0.272727 +vt 0.090909 0.340749 +vt 0.090909 0.277433 +vt 0.163636 0.272727 +vt 0.181818 0.340749 +vt 0.090909 0.350160 +vt 0.109091 0.345455 +vt 0.163636 0.345455 +vt 0.181818 0.413476 +vt 0.109091 0.490909 +vt 0.090909 0.422888 +vt 0.109091 0.418182 +vt 0.163636 0.418182 +vt 0.181818 0.486203 +vt 0.163636 0.490909 +vt 0.090909 0.495615 +vt 0.109091 0.490909 +vt 0.181818 0.495615 +vt 0.181818 0.558930 +vt 0.090909 0.568342 +vt 0.109091 0.563636 +vt 0.163636 0.563636 +vt 0.181818 0.631658 +vt 0.090909 0.641069 +vt 0.109091 0.636364 +vt 0.163636 0.636364 +vt 0.181818 0.704385 +vt 0.109091 0.781818 +vt 0.090909 0.713797 +vt 0.109091 0.709091 +vt 0.163636 0.709091 +vt 0.181818 0.777112 +vt 0.163636 0.781818 +vt 0.054545 0.550000 +vt 0.036364 0.504545 +vt 0.054545 0.504545 +vt 0.054545 0.768182 +vt 0.036364 0.722727 +vt 0.054545 0.722727 +vt 0.054545 0.986364 +vt 0.036364 0.940909 +vt 0.054545 0.940909 +vt 0.054545 0.186364 +vt 0.036364 0.140909 +vt 0.054545 0.140909 +vt 0.054545 0.259091 +vt 0.036364 0.213636 +vt 0.054545 0.213636 +vt 0.054545 0.331818 +vt 0.036364 0.286364 +vt 0.054545 0.286364 +vt 0.054545 0.404545 +vt 0.036364 0.359091 +vt 0.054545 0.359091 +vt 0.072727 0.427273 +vt 0.090909 0.486203 +vt 0.072727 0.481818 +vt 0.054545 0.477273 +vt 0.036364 0.431818 +vt 0.054545 0.431818 +vt 0.054545 0.622727 +vt 0.036364 0.577273 +vt 0.054545 0.577273 +vt 0.054545 0.695454 +vt 0.036364 0.650000 +vt 0.054545 0.650000 +vt 0.072727 0.790909 +vt 0.090909 0.849840 +vt 0.072727 0.845455 +vt 0.072727 0.209091 +vt 0.090909 0.268022 +vt 0.072727 0.263636 +vt 0.054545 0.913636 +vt 0.036364 0.868182 +vt 0.054545 0.868182 +vt 0.072727 0.863636 +vt 0.090909 0.922567 +vt 0.072727 0.918182 +vt 0.072727 0.554546 +vt 0.090909 0.495615 +vt 0.090909 0.558931 +vt 0.072727 0.336364 +vt 0.090909 0.277433 +vt 0.090909 0.340749 +vt 0.072727 0.990909 +vt 0.090909 0.931978 +vt 0.090909 0.995294 +vt 0.072727 0.572727 +vt 0.090909 0.631658 +vt 0.072727 0.627273 +vt 0.072727 0.354545 +vt 0.090909 0.413476 +vt 0.072727 0.409091 +vt 0.072727 0.136363 +vt 0.090909 0.195294 +vt 0.072727 0.190909 +vt 0.072727 0.700000 +vt 0.090909 0.641069 +vt 0.090909 0.704385 +vt 0.072727 0.772727 +vt 0.090909 0.713796 +vt 0.090909 0.777112 +vt 0.054545 0.795615 +vt 0.072727 0.845454 +vt 0.054545 0.840749 +vt 0.054545 0.868342 +vt 0.072727 0.918182 +vt 0.054545 0.913476 +vt 0.054545 0.941069 +vt 0.072727 0.990909 +vt 0.054545 0.986203 +vt 0.054545 0.141069 +vt 0.072727 0.190909 +vt 0.054545 0.186203 +vt 0.054545 0.213797 +vt 0.072727 0.263636 +vt 0.054545 0.258931 +vt 0.054545 0.286524 +vt 0.072727 0.336364 +vt 0.054545 0.331658 +vt 0.054545 0.359251 +vt 0.072727 0.409091 +vt 0.054545 0.404385 +vt 0.054545 0.431978 +vt 0.072727 0.481818 +vt 0.054545 0.477112 +vt 0.054545 0.504706 +vt 0.072727 0.554545 +vt 0.054545 0.549840 +vt 0.054545 0.577433 +vt 0.072727 0.627273 +vt 0.054545 0.622567 +vt 0.054545 0.650160 +vt 0.072727 0.700000 +vt 0.054545 0.695294 +vt 0.054545 0.722887 +vt 0.072727 0.772727 +vt 0.054545 0.768021 +vt 0.054545 0.840909 +vt 0.036364 0.795454 +vt 0.054545 0.795454 +vt 0.200000 0.263636 +vt 0.181818 0.204706 +vt 0.200000 0.209091 +vt 0.200000 0.772727 +vt 0.181818 0.713796 +vt 0.200000 0.718182 +vt 0.200000 0.918182 +vt 0.181818 0.859251 +vt 0.200000 0.863636 +vt 0.200000 0.554546 +vt 0.181818 0.495615 +vt 0.200000 0.500000 +vt 0.200000 0.336364 +vt 0.181818 0.277433 +vt 0.200000 0.281818 +vt 0.200000 0.990909 +vt 0.181818 0.931978 +vt 0.200000 0.936363 +vt 0.200000 0.572727 +vt 0.181818 0.631658 +vt 0.181818 0.568342 +vt 0.200000 0.354545 +vt 0.181818 0.413476 +vt 0.181818 0.350160 +vt 0.200000 0.190909 +vt 0.181818 0.131978 +vt 0.200000 0.136363 +vt 0.200000 0.700000 +vt 0.181818 0.641069 +vt 0.200000 0.645454 +vt 0.200000 0.790909 +vt 0.181818 0.849840 +vt 0.181818 0.786524 +vt 0.200000 0.481818 +vt 0.181818 0.422887 +vt 0.200000 0.427273 +vt 0.236364 0.800032 +vt 0.218182 0.840909 +vt 0.218182 0.795455 +vt 0.236364 0.909058 +vt 0.218182 0.868182 +vt 0.236364 0.872760 +vt 0.236364 0.981786 +vt 0.218182 0.940909 +vt 0.236364 0.945487 +vt 0.236364 0.145487 +vt 0.218182 0.186364 +vt 0.218182 0.140909 +vt 0.236364 0.218214 +vt 0.218182 0.259091 +vt 0.218182 0.213636 +vt 0.236364 0.327240 +vt 0.218182 0.286364 +vt 0.236364 0.290941 +vt 0.236364 0.363669 +vt 0.218182 0.404545 +vt 0.218182 0.359091 +vt 0.236364 0.472695 +vt 0.218182 0.431818 +vt 0.236364 0.436396 +vt 0.236364 0.509123 +vt 0.218182 0.550000 +vt 0.218182 0.504545 +vt 0.236364 0.618149 +vt 0.218182 0.577273 +vt 0.236364 0.581851 +vt 0.236364 0.690877 +vt 0.218182 0.650000 +vt 0.236364 0.654578 +vt 0.236364 0.763604 +vt 0.218182 0.722727 +vt 0.236364 0.727305 +vt 0.027273 0.101783 +vt 0.109091 0.054545 +vt 0.027273 0.007308 +vt 0.218182 0.840749 +vt 0.200000 0.790909 +vt 0.218182 0.795615 +vt 0.218182 0.913476 +vt 0.200000 0.863636 +vt 0.218182 0.868342 +vt 0.218182 0.986203 +vt 0.200000 0.936364 +vt 0.218182 0.941069 +vt 0.218182 0.186203 +vt 0.200000 0.136364 +vt 0.218182 0.141069 +vt 0.218182 0.258931 +vt 0.200000 0.209091 +vt 0.218182 0.213797 +vt 0.218182 0.331658 +vt 0.200000 0.281818 +vt 0.218182 0.286524 +vt 0.218182 0.404385 +vt 0.200000 0.354545 +vt 0.218182 0.359251 +vt 0.218182 0.477112 +vt 0.200000 0.427273 +vt 0.218182 0.431978 +vt 0.218182 0.549840 +vt 0.200000 0.500000 +vt 0.218182 0.504706 +vt 0.218182 0.622567 +vt 0.200000 0.572727 +vt 0.218182 0.577433 +vt 0.218182 0.695294 +vt 0.200000 0.645454 +vt 0.218182 0.650160 +vt 0.218182 0.768021 +vt 0.200000 0.718182 +vt 0.218182 0.722887 +vt 0.254545 0.804748 +vt 0.236364 0.836364 +vt 0.236364 0.800000 +vt 0.254545 0.904343 +vt 0.236364 0.872727 +vt 0.254545 0.877475 +vt 0.254545 0.977071 +vt 0.236364 0.945454 +vt 0.254545 0.950202 +vt 0.254545 0.177071 +vt 0.236364 0.145455 +vt 0.254545 0.150202 +vt 0.254545 0.249798 +vt 0.236364 0.218182 +vt 0.254545 0.222929 +vt 0.254545 0.322525 +vt 0.236364 0.290909 +vt 0.254545 0.295657 +vt 0.254545 0.395252 +vt 0.236364 0.363636 +vt 0.254545 0.368384 +vt 0.254545 0.467980 +vt 0.236364 0.436364 +vt 0.254545 0.441111 +vt 0.254545 0.540707 +vt 0.236364 0.509091 +vt 0.254545 0.513838 +vt 0.254545 0.586566 +vt 0.236364 0.618182 +vt 0.236364 0.581818 +vt 0.254545 0.686161 +vt 0.236364 0.654545 +vt 0.254545 0.659293 +vt 0.254545 0.758889 +vt 0.236364 0.727273 +vt 0.254545 0.732020 +vt 0.000000 0.807430 +vt 0.036364 0.836364 +vt 0.000000 0.828934 +vt 0.000000 0.880157 +vt 0.036364 0.909091 +vt 0.000000 0.901661 +vt 0.000000 0.974388 +vt 0.036364 0.945454 +vt 0.036364 0.981818 +vt 0.000000 0.152885 +vt 0.036364 0.181818 +vt 0.000000 0.174388 +vt 0.000000 0.225612 +vt 0.036364 0.254545 +vt 0.000000 0.247115 +vt 0.000000 0.319843 +vt 0.036364 0.290909 +vt 0.036364 0.327273 +vt 0.000000 0.371066 +vt 0.036364 0.400000 +vt 0.000000 0.392570 +vt 0.000000 0.443794 +vt 0.036364 0.472727 +vt 0.000000 0.465297 +vt 0.000000 0.516521 +vt 0.036364 0.545455 +vt 0.000000 0.538024 +vt 0.000000 0.589248 +vt 0.036364 0.618182 +vt 0.000000 0.610752 +vt 0.000000 0.661975 +vt 0.036364 0.690909 +vt 0.000000 0.683479 +vt 0.000000 0.756206 +vt 0.036364 0.727273 +vt 0.036364 0.763636 +vt 0.418182 0.472727 +vt 0.272727 0.454545 +vt 0.418182 0.454545 +vt 0.418182 0.509091 +vt 0.272727 0.490909 +vt 0.418182 0.490909 +vt 0.418182 0.436364 +vt 0.272727 0.418182 +vt 0.418182 0.418182 +vt 0.272727 0.272727 +vt 0.418182 0.290909 +vt 0.272727 0.290909 +vt 0.272727 0.309091 +vt 0.418182 0.327273 +vt 0.272727 0.327273 +vt 0.272727 0.345455 +vt 0.418182 0.363636 +vt 0.272727 0.363636 +vt 0.272727 0.236364 +vt 0.418182 0.254545 +vt 0.272727 0.254545 +vt 0.272727 0.200000 +vt 0.418182 0.218182 +vt 0.272727 0.218182 +vt 0.418182 0.400000 +vt 0.272727 0.381818 +vt 0.418182 0.381818 +vt 0.418182 0.545455 +vt 0.272727 0.527273 +vt 0.418182 0.527273 +vt 0.272727 0.781818 +vt 0.418182 0.727273 +vt 0.418182 0.781818 +vt 0.272727 0.727273 +vt 0.418182 0.672727 +vt 0.272727 0.672727 +vt 0.418182 0.618182 +vt 0.272727 0.618182 +vt 0.418182 0.563636 +vt 0.272727 1.000000 +vt 0.418182 0.945455 +vt 0.418182 1.000000 +vt 0.272727 0.945455 +vt 0.418182 0.890909 +vt 0.272727 0.836364 +vt 0.418182 0.836364 +vt 0.527273 0.309091 +vt 0.454545 0.254545 +vt 0.527273 0.254545 +vt 0.454545 0.145455 +vt 0.527273 0.090909 +vt 0.527273 0.145455 +vt 0.454545 0.090909 +vt 0.527273 0.036364 +vt 0.454545 0.472727 +vt 0.527273 0.418182 +vt 0.527273 0.472727 +vt 0.454545 0.363636 +vt 0.527273 0.363636 +vt 0.454545 0.309091 +vt 0.527273 0.200000 +vt 0.454545 0.200000 +vt 0.669608 0.348574 +vt 0.566756 0.348574 +vt 0.566756 0.451426 +vt 0.454545 0.254545 +vt 0.436364 0.206818 +vt 0.454545 0.200000 +vt 0.400000 0.127273 +vt 0.345455 0.072727 +vt 0.290909 0.127273 +vt 0.454545 0.309091 +vt 0.436364 0.261364 +vt 0.454545 0.418182 +vt 0.436364 0.370455 +vt 0.454545 0.363636 +vt 0.436364 0.043182 +vt 0.454545 0.036364 +vt 0.436364 0.152273 +vt 0.436364 0.315909 +vt 0.454545 0.472727 +vt 0.436364 0.425000 +vt 0.436364 0.138636 +vt 0.436364 0.097727 +vt 0.254545 0.109091 +vt 0.200000 0.054545 +vt 0.254545 0.054545 +vt 0.272727 0.036364 +vt 0.181818 0.000000 +vt 0.418182 0.036364 +vt 0.345455 0.054545 +vt 0.327273 0.000000 +vt 0.327273 0.036364 +vt 0.272727 0.000000 +vt 0.272727 0.054545 +vt 0.327273 0.054545 +vt 0.127273 0.054545 +vt 0.181818 0.036364 +vt 0.181818 0.054545 +vt 0.127273 -0.000000 +vt 0.800000 0.890909 +vt 0.781818 0.745455 +vt 0.800000 0.745455 +vt 0.781818 0.890909 +vt 0.763636 0.745455 +vt 0.763636 0.890909 +vt 0.745455 0.745455 +vt 0.745455 0.890909 +vt 0.727273 0.745455 +vt 0.727273 0.890909 +vt 0.709091 0.745455 +vt 0.709091 0.890909 +vt 0.690909 0.745455 +vt 0.672725 0.906324 +vt 0.654546 0.909110 +vt 0.654544 0.909090 +vt 0.672727 0.890909 +vt 0.672727 0.745455 +vt 0.654545 0.890909 +vt 0.654545 0.745455 +vt 0.690910 0.936010 +vt 0.672729 0.948222 +vt 0.672729 0.942689 +vt 0.799998 0.909091 +vt 0.781817 0.911857 +vt 0.781817 0.906324 +vt 0.745453 0.892967 +vt 0.763635 0.918536 +vt 0.745453 0.925215 +vt 0.709090 0.892966 +vt 0.690908 0.918536 +vt 0.690908 0.899645 +vt 0.727271 0.890909 +vt 0.727271 0.927273 +vt 0.672725 0.911857 +vt 0.763635 0.899646 +vt 0.727273 0.890908 +vt 0.709090 0.925215 +vt 0.690909 0.963636 +vt 0.709091 1.000000 +vt 0.690909 1.000000 +vt 0.727273 0.927274 +vt 0.709091 0.961579 +vt 0.709091 0.929332 +vt 0.745453 0.929330 +vt 0.763635 0.954900 +vt 0.745453 0.961578 +vt 0.781817 0.942688 +vt 0.799998 0.945455 +vt 0.781817 0.948221 +vt 0.654549 0.945455 +vt 0.654544 0.945437 +vt 0.690910 0.954900 +vt 0.727271 0.963636 +vt 0.727271 0.927273 +vt 0.763635 0.936009 +vt 0.727273 0.963636 +vt 0.745455 1.000000 +vt 0.727273 1.000000 +vt 0.763636 0.963636 +vt 0.781818 1.000000 +vt 0.763636 1.000000 +vt 0.672727 1.000000 +vt 0.672727 0.963636 +vt 0.709091 0.963636 +vt 0.745455 0.963636 +vt 0.800000 0.963636 +vt 0.781818 0.963636 +vt 0.654545 1.000000 +vt 0.654545 0.963636 +vt 0.618182 0.763636 +vt 0.636364 1.000000 +vt 0.618182 0.981818 +vt 0.563636 0.763636 +vt 0.618182 0.745455 +vt 0.563636 1.000000 +vt 0.563636 0.981818 +vt 0.563636 0.490909 +vt 0.618182 0.490909 +vt 0.545455 0.745455 +vt 0.545455 1.000000 +vt 0.436364 0.745455 +vt 0.454545 0.981818 +vt 0.436364 1.000000 +vt 0.509091 0.763636 +vt 0.509091 0.981818 +vt 0.509091 0.745455 +vt 0.454545 0.490909 +vt 0.509091 0.490909 +vt 0.454545 1.000000 +vt 0.454545 0.745455 +vt 0.527273 1.000000 +vt 0.763636 0.563636 +vt 0.736364 0.490909 +vt 0.763636 0.490909 +vt 0.736364 0.563636 +vt 0.709091 0.490909 +vt 0.681818 0.563636 +vt 0.681818 0.490909 +vt 0.654545 0.490909 +vt 0.872727 0.490909 +vt 0.845455 0.563636 +vt 0.845455 0.490909 +vt 0.818182 0.563636 +vt 0.818182 0.490909 +vt 0.790909 0.490909 +vt 0.790909 0.563636 +vt 0.800000 0.581818 +vt 0.769697 0.600000 +vt 0.763636 0.581818 +vt 0.733333 0.600000 +vt 0.727273 0.581818 +vt 0.721212 0.600000 +vt 0.690909 0.581818 +vt 0.684848 0.600000 +vt 0.654545 0.581818 +vt 0.939394 0.600000 +vt 0.909091 0.581818 +vt 0.945455 0.581818 +vt 0.878788 0.600000 +vt 0.872727 0.581818 +vt 0.842424 0.600000 +vt 0.836364 0.581818 +vt 0.806061 0.600000 +vt 0.690909 0.563636 +vt 0.872727 0.563636 +vt 0.727273 0.563636 +vt 0.763636 0.563636 +vt 0.909091 0.563636 +vt 0.945455 0.563636 +vt 0.836364 0.563636 +vt 0.800000 0.563636 +vt 0.802206 0.379612 +vt 0.725067 0.379612 +vt 0.725067 0.456751 +vt 0.600000 0.218182 +vt 0.563636 0.109091 +vt 0.600000 0.109091 +vt 0.654545 0.218182 +vt 0.618182 0.109091 +vt 0.654545 0.109091 +vt 0.563636 0.218182 +vt 0.545455 0.109091 +vt 0.654545 0.309091 +vt 0.618182 0.272727 +vt 0.654545 0.272727 +vt 0.618182 0.309091 +vt 0.600000 0.272727 +vt 0.600000 0.309091 +vt 0.563636 0.272727 +vt 0.563636 0.309091 +vt 0.545455 0.272727 +vt 0.563636 0.000000 +vt 0.600000 0.000000 +vt 0.618182 0.000000 +vt 0.654545 0.000000 +vt 0.545455 0.000000 +vt 0.618182 0.236364 +vt 0.654545 0.236364 +vt 0.600000 0.236364 +vt 0.563636 0.236364 +vt 0.545455 0.236364 +vt 0.763636 0.690909 +vt 0.736364 0.618182 +vt 0.763636 0.618182 +vt 0.736364 0.690909 +vt 0.709091 0.618182 +vt 0.709091 0.690909 +vt 0.681818 0.618182 +vt 0.681818 0.690909 +vt 0.654545 0.618182 +vt 0.872727 0.618182 +vt 0.845455 0.690909 +vt 0.845455 0.618182 +vt 0.818182 0.618182 +vt 0.818182 0.690909 +vt 0.790909 0.618182 +vt 0.790909 0.690909 +vt 0.800000 0.709091 +vt 0.769697 0.727273 +vt 0.763636 0.709091 +vt 0.733333 0.727273 +vt 0.727273 0.709091 +vt 0.721212 0.727273 +vt 0.690909 0.709091 +vt 0.684848 0.727273 +vt 0.654545 0.709091 +vt 0.939394 0.727273 +vt 0.909091 0.709091 +vt 0.945455 0.709091 +vt 0.903030 0.727273 +vt 0.872727 0.709091 +vt 0.842424 0.727273 +vt 0.836364 0.709091 +vt 0.806061 0.727273 +vt 0.690909 0.690909 +vt 0.872727 0.690909 +vt 0.763636 0.690909 +vt 0.945455 0.690909 +vt 0.800000 0.690909 +vt 0.836364 0.690909 +vt 0.727273 0.690909 +vt 0.909091 0.690909 +vt 0.929479 0.379612 +vt 0.852340 0.379612 +vt 0.852340 0.456751 +vt 0.963636 0.890909 +vt 0.945455 0.745455 +vt 0.963636 0.745455 +vt 0.945455 0.890909 +vt 0.927273 0.745455 +vt 0.909091 0.890909 +vt 0.909091 0.745455 +vt 0.890909 0.745455 +vt 0.872727 0.890909 +vt 0.872727 0.745455 +vt 0.854545 0.890909 +vt 0.854545 0.745455 +vt 0.836362 0.906324 +vt 0.818183 0.909110 +vt 0.818180 0.909090 +vt 0.836364 0.745455 +vt 0.836364 0.890909 +vt 0.818182 0.745455 +vt 0.854547 0.936010 +vt 0.836365 0.948222 +vt 0.836365 0.942689 +vt 0.945453 0.906324 +vt 0.963637 0.909110 +vt 0.945453 0.911857 +vt 0.927271 0.899646 +vt 0.909090 0.925215 +vt 0.909090 0.892967 +vt 0.854544 0.899645 +vt 0.872727 0.925215 +vt 0.854544 0.918536 +vt 0.890908 0.927273 +vt 0.890908 0.890909 +vt 0.836362 0.911857 +vt 0.927271 0.918536 +vt 0.890909 0.890908 +vt 0.872727 0.892966 +vt 0.854545 0.963636 +vt 0.872727 1.000000 +vt 0.854545 1.000000 +vt 0.890909 0.927274 +vt 0.872728 0.961579 +vt 0.872728 0.929332 +vt 0.909090 0.929330 +vt 0.927271 0.954900 +vt 0.909090 0.961578 +vt 0.945453 0.942688 +vt 0.963634 0.945455 +vt 0.945453 0.948221 +vt 0.818185 0.945455 +vt 0.818180 0.945437 +vt 0.854547 0.954900 +vt 0.890908 0.963636 +vt 0.890908 0.927273 +vt 0.927271 0.936009 +vt 0.890909 0.963636 +vt 0.909091 1.000000 +vt 0.890909 1.000000 +vt 0.945455 0.963636 +vt 0.927273 1.000000 +vt 0.927273 0.963636 +vt 0.836364 1.000000 +vt 0.836364 0.963636 +vt 0.872727 0.963636 +vt 0.909091 0.963636 +vt 0.963636 0.963636 +vt 0.945455 1.000000 +vt 0.818182 1.000000 +vt 0.818182 0.963636 +vt 0.163636 1.000000 +vt 0.109091 0.854545 +vt 0.181818 0.786524 +vt 0.090909 0.922567 +vt 0.181818 0.859251 +vt 0.090909 0.995294 +vt 0.181818 0.931978 +vt 0.090909 0.195294 +vt 0.181818 0.131979 +vt 0.090909 0.268021 +vt 0.181818 0.204706 +vt 0.181818 0.277433 +vt 0.090909 0.413476 +vt 0.181818 0.350160 +vt 0.090909 0.486203 +vt 0.181818 0.422888 +vt 0.090909 0.558930 +vt 0.163636 0.490909 +vt 0.090909 0.631658 +vt 0.181818 0.568342 +vt 0.090909 0.704385 +vt 0.181818 0.641069 +vt 0.090909 0.777112 +vt 0.181818 0.713797 +vt 0.036364 0.550000 +vt 0.036364 0.768182 +vt 0.036364 0.986364 +vt 0.036364 0.186364 +vt 0.036364 0.259091 +vt 0.036364 0.331818 +vt 0.036364 0.404545 +vt 0.090909 0.422887 +vt 0.036364 0.477273 +vt 0.036364 0.622727 +vt 0.036364 0.695454 +vt 0.090909 0.786524 +vt 0.090909 0.204706 +vt 0.036364 0.913636 +vt 0.090909 0.859251 +vt 0.072727 0.500000 +vt 0.072727 0.281818 +vt 0.072727 0.936363 +vt 0.090909 0.568342 +vt 0.090909 0.350160 +vt 0.090909 0.131978 +vt 0.072727 0.645454 +vt 0.072727 0.718182 +vt 0.072727 0.790909 +vt 0.072727 0.863636 +vt 0.072727 0.936364 +vt 0.072727 0.136364 +vt 0.072727 0.209091 +vt 0.072727 0.281818 +vt 0.072727 0.354545 +vt 0.072727 0.427273 +vt 0.072727 0.500000 +vt 0.072727 0.572727 +vt 0.072727 0.645454 +vt 0.072727 0.718182 +vt 0.036364 0.840909 +vt 0.181818 0.268022 +vt 0.181818 0.777112 +vt 0.181818 0.922567 +vt 0.181818 0.558931 +vt 0.181818 0.340749 +vt 0.181818 0.995294 +vt 0.200000 0.627273 +vt 0.200000 0.409091 +vt 0.181818 0.195294 +vt 0.181818 0.704385 +vt 0.200000 0.845455 +vt 0.181818 0.486203 +vt 0.236364 0.836331 +vt 0.218182 0.913636 +vt 0.218182 0.986364 +vt 0.236364 0.181786 +vt 0.236364 0.254513 +vt 0.218182 0.331818 +vt 0.236364 0.399968 +vt 0.218182 0.477273 +vt 0.236364 0.545422 +vt 0.218182 0.622727 +vt 0.218182 0.695454 +vt 0.218182 0.768182 +vt 0.007308 0.027273 +vt 0.000000 0.054545 +vt 0.007308 0.081818 +vt 0.054545 0.109091 +vt 0.081818 0.101783 +vt 0.101783 0.081818 +vt 0.101783 0.027273 +vt 0.081818 0.007308 +vt 0.054546 0.000000 +vt 0.200000 0.845454 +vt 0.200000 0.918182 +vt 0.200000 0.990909 +vt 0.200000 0.190909 +vt 0.200000 0.263636 +vt 0.200000 0.336364 +vt 0.200000 0.481818 +vt 0.200000 0.554545 +vt 0.200000 0.627273 +vt 0.200000 0.700000 +vt 0.200000 0.772727 +vt 0.254545 0.831616 +vt 0.236364 0.909091 +vt 0.236364 0.981818 +vt 0.236364 0.181818 +vt 0.236364 0.254545 +vt 0.236364 0.327273 +vt 0.236364 0.400000 +vt 0.236364 0.472727 +vt 0.236364 0.545455 +vt 0.254545 0.613434 +vt 0.236364 0.690909 +vt 0.236364 0.763636 +vt 0.036364 0.800000 +vt 0.036364 0.872727 +vt 0.000000 0.952884 +vt 0.036364 0.145455 +vt 0.036364 0.218182 +vt 0.000000 0.298339 +vt 0.036364 0.363636 +vt 0.036364 0.436364 +vt 0.036364 0.509091 +vt 0.036364 0.581818 +vt 0.036364 0.654545 +vt 0.000000 0.734703 +vt 0.272727 0.472727 +vt 0.272727 0.509091 +vt 0.272727 0.436364 +vt 0.418182 0.272727 +vt 0.418182 0.309091 +vt 0.418182 0.345455 +vt 0.418182 0.236364 +vt 0.418182 0.200000 +vt 0.272727 0.400000 +vt 0.272727 0.545455 +vt 0.272727 0.563636 +vt 0.272727 0.890909 +vt 0.454545 0.418182 +vt 0.618182 0.472727 +vt 0.669608 0.451426 +vt 0.690909 0.400000 +vt 0.618182 0.327273 +vt 0.545455 0.400000 +vt 0.436364 0.247727 +vt 0.306885 0.165842 +vt 0.345455 0.181818 +vt 0.384024 0.165842 +vt 0.384024 0.088703 +vt 0.306885 0.088703 +vt 0.436364 0.302273 +vt 0.436364 0.411364 +vt 0.436364 0.084091 +vt 0.436364 0.193182 +vt 0.436364 0.356818 +vt 0.436364 0.465909 +vt 0.200000 0.109091 +vt 0.418182 0.000000 +vt 0.400000 0.054545 +vt 0.127273 0.036364 +vt 0.690909 0.890909 +vt 0.800000 0.909110 +vt 0.727273 0.927273 +vt 0.727273 0.963636 +vt 0.800000 0.945436 +vt 0.800000 1.000000 +vt 0.636364 0.745455 +vt 0.563636 0.745455 +vt 0.618182 1.000000 +vt 0.454545 0.763636 +vt 0.509091 1.000000 +vt 0.527273 0.745455 +vt 0.709091 0.563636 +vt 0.654545 0.563636 +vt 0.872727 0.563636 +vt 0.793939 0.600000 +vt 0.757576 0.600000 +vt 0.696970 0.600000 +vt 0.660606 0.600000 +vt 0.915152 0.600000 +vt 0.903030 0.600000 +vt 0.866667 0.600000 +vt 0.830303 0.600000 +vt 0.763636 0.472727 +vt 0.802206 0.456751 +vt 0.818182 0.418182 +vt 0.763636 0.363636 +vt 0.709091 0.418182 +vt 0.618182 0.218182 +vt 0.545455 0.218182 +vt 0.545455 0.309091 +vt 0.654545 0.690909 +vt 0.872727 0.690909 +vt 0.793939 0.727273 +vt 0.757576 0.727273 +vt 0.696970 0.727273 +vt 0.660606 0.727273 +vt 0.915152 0.727273 +vt 0.878788 0.727273 +vt 0.866667 0.727273 +vt 0.830303 0.727273 +vt 0.890909 0.472727 +vt 0.929479 0.456751 +vt 0.945454 0.418182 +vt 0.890909 0.363636 +vt 0.836364 0.418182 +vt 0.927273 0.890909 +vt 0.890909 0.890909 +vt 0.818182 0.890909 +vt 0.963634 0.909091 +vt 0.890909 0.927273 +vt 0.890909 0.963636 +vt 0.963637 0.945436 +vt 0.963636 1.000000 +s 1 +usemtl Texture +f 24/1/1 1/2/2 23/3/1 +f 6/4/3 7/5/4 5/6/3 +f 8/7/4 9/8/5 7/9/4 +f 10/10/5 11/11/6 9/8/5 +f 12/12/6 13/13/7 11/11/6 +f 14/14/7 15/15/8 13/13/7 +f 16/16/8 17/17/9 15/15/8 +f 18/18/9 19/19/10 17/17/9 +f 20/20/10 21/21/11 19/19/10 +f 22/22/11 23/3/1 21/21/11 +f 4/23/12 5/6/3 3/24/12 +f 2/25/2 3/24/12 1/2/2 +f 1/26/13 25/27/14 26/28/13 +f 2/29/15 74/30/16 4/31/16 +f 5/32/17 25/33/14 3/34/14 +f 4/35/16 75/36/18 6/37/18 +f 7/38/19 27/39/17 5/40/17 +f 6/41/18 76/42/20 8/43/20 +f 9/8/21 28/44/19 7/9/19 +f 8/7/20 77/45/22 10/10/22 +f 11/11/23 29/46/21 9/47/21 +f 10/48/22 78/49/24 12/12/24 +f 11/50/23 31/51/25 30/52/23 +f 12/53/24 79/54/26 14/14/26 +f 15/15/27 31/55/25 13/56/25 +f 14/57/26 80/58/28 16/16/28 +f 17/59/29 32/60/27 15/61/27 +f 16/62/28 81/63/30 18/64/30 +f 19/19/31 33/65/29 17/66/29 +f 20/20/32 81/67/30 82/68/32 +f 21/21/33 34/69/31 19/70/31 +f 20/71/32 83/72/34 22/22/34 +f 23/3/35 35/73/33 21/74/33 +f 22/75/34 84/76/36 24/1/36 +f 1/77/13 36/78/35 23/79/35 +f 24/80/36 73/81/15 2/82/15 +f 68/83/4 141/84/3 66/85/3 +f 49/86/7 144/87/6 72/88/6 +f 56/89/10 135/90/9 54/91/9 +f 58/92/11 136/93/10 56/94/10 +f 60/95/1 137/96/11 58/97/11 +f 62/98/2 138/99/1 60/100/1 +f 64/101/12 139/102/2 62/103/2 +f 63/104/37 33/105/37 65/106/37 +f 66/107/3 140/108/12 64/109/12 +f 70/110/5 142/111/4 68/112/4 +f 72/113/6 143/114/5 70/115/5 +f 50/116/37 25/117/37 51/118/37 +f 57/119/37 30/120/37 59/121/37 +f 54/122/9 133/123/8 52/124/8 +f 51/125/37 27/126/37 53/127/37 +f 67/128/37 33/129/37 34/130/37 +f 61/131/37 30/132/37 31/133/37 +f 55/134/37 27/135/37 28/136/37 +f 67/137/37 35/138/37 69/139/37 +f 61/140/37 32/141/37 63/142/37 +f 55/143/37 29/144/37 57/145/37 +f 71/146/37 35/147/37 36/148/37 +f 50/149/37 36/150/37 26/151/37 +f 49/152/25 51/153/27 52/154/27 +f 52/155/27 53/156/29 54/157/29 +f 54/158/29 55/159/31 56/160/31 +f 56/161/31 57/162/33 58/163/33 +f 58/164/33 59/165/35 60/166/35 +f 60/167/35 61/168/13 62/169/13 +f 62/170/13 63/171/14 64/172/14 +f 64/173/14 65/174/17 66/175/17 +f 66/176/17 67/177/19 68/178/19 +f 68/179/19 69/180/21 70/181/21 +f 70/182/21 71/183/23 72/184/23 +f 72/185/23 50/186/25 49/187/25 +f 52/188/8 134/189/7 49/190/7 +f 96/191/38 77/192/38 94/193/38 +f 85/194/38 84/195/38 108/196/38 +f 90/197/38 74/198/38 88/199/38 +f 104/200/38 81/201/38 102/202/38 +f 98/203/38 78/204/38 96/205/38 +f 92/206/38 75/207/38 90/208/38 +f 104/209/38 83/210/38 82/211/38 +f 98/212/38 80/213/38 79/214/38 +f 94/215/38 76/216/38 92/217/38 +f 108/218/38 83/219/38 106/220/38 +f 85/221/38 74/222/38 73/223/38 +f 102/224/38 80/225/38 100/226/38 +f 109/227/38 87/228/38 86/229/38 +f 114/230/38 87/231/38 112/232/38 +f 116/233/38 89/234/38 114/235/38 +f 116/236/38 93/237/38 91/238/38 +f 118/239/38 95/240/38 93/241/38 +f 122/242/38 95/243/38 120/244/38 +f 122/245/38 99/246/38 97/247/38 +f 126/248/38 99/249/38 124/250/38 +f 126/251/38 103/252/38 101/253/38 +f 130/254/38 103/255/38 128/256/38 +f 132/257/38 105/258/38 130/259/38 +f 109/260/38 107/261/38 132/262/38 +f 129/263/38 121/264/38 113/265/38 +f 87/266/28 85/267/26 86/268/26 +f 89/269/30 88/270/28 87/271/28 +f 91/272/32 90/273/30 89/274/30 +f 93/275/34 92/276/32 91/277/32 +f 95/278/36 94/279/34 93/280/34 +f 97/281/15 96/282/36 95/283/36 +f 99/284/16 98/285/15 97/286/15 +f 101/287/18 100/288/16 99/289/16 +f 103/290/20 102/291/18 101/292/18 +f 105/293/22 104/294/20 103/295/20 +f 107/296/24 106/297/22 105/298/22 +f 86/299/26 108/300/24 107/301/24 +f 110/302/15 112/303/16 109/304/15 +f 113/305/18 112/306/16 111/307/16 +f 115/308/20 114/309/18 113/310/18 +f 117/311/22 116/312/20 115/313/20 +f 119/314/24 118/315/22 117/316/22 +f 121/317/26 120/318/24 119/319/24 +f 123/320/28 122/321/26 121/322/26 +f 125/323/30 124/324/28 123/325/28 +f 127/326/32 126/327/30 125/328/30 +f 127/329/32 130/330/34 128/331/32 +f 131/332/36 130/333/34 129/334/34 +f 110/335/15 132/336/36 131/337/36 +f 38/338/37 133/339/37 37/340/37 +f 37/341/37 135/342/37 39/343/37 +f 40/344/37 135/345/37 136/346/37 +f 40/347/37 137/348/37 41/349/37 +f 41/350/37 138/351/37 42/352/37 +f 43/353/37 138/354/37 139/355/37 +f 43/356/37 140/357/37 44/358/37 +f 44/359/37 141/360/37 45/361/37 +f 45/362/37 142/363/37 46/364/37 +f 46/365/37 143/366/37 47/367/37 +f 47/368/37 144/369/37 48/370/37 +f 38/371/37 144/372/37 134/373/37 +s 0 +f 146/374/10 147/375/10 145/376/10 +f 150/377/10 151/378/10 149/379/10 +f 154/380/10 155/381/10 153/382/10 +f 158/383/10 159/384/10 157/385/10 +f 162/386/10 163/387/10 161/388/10 +f 167/389/10 166/390/10 168/391/10 +f 170/392/10 171/393/10 169/394/10 +f 175/395/10 174/396/10 176/397/10 +f 178/398/10 179/399/10 177/400/10 +f 182/401/10 183/402/10 181/403/10 +s 1 +f 186/404/10 187/405/39 185/406/10 +f 188/407/39 189/408/7 187/405/39 +f 190/409/7 191/410/40 189/408/7 +f 192/411/40 193/412/4 191/410/40 +f 194/413/4 195/414/41 193/415/4 +f 196/416/41 197/417/2 195/414/41 +f 197/417/2 200/418/42 199/419/42 +f 200/418/42 185/406/10 199/419/42 +f 208/420/42 209/421/10 201/422/10 +f 211/423/7 204/424/40 203/425/7 +f 212/426/40 205/427/4 204/424/40 +f 213/428/4 206/429/41 205/430/4 +f 206/429/41 215/431/2 207/432/2 +f 207/432/2 216/433/42 208/420/42 +f 209/421/10 202/434/39 201/422/10 +f 210/435/39 203/425/7 202/434/39 +f 204/436/38 206/437/38 208/438/38 +f 209/439/43 217/440/44 210/441/44 +f 223/442/37 221/443/37 219/444/37 +f 216/445/45 218/446/43 209/439/43 +f 214/447/46 223/448/47 215/449/47 +f 212/426/48 221/450/49 213/451/49 +f 210/441/44 219/452/50 211/423/50 +f 215/449/47 224/453/45 216/445/45 +f 213/454/49 222/455/46 214/447/46 +f 212/426/48 219/456/50 220/457/48 +s 0 +f 231/458/10 233/459/10 236/460/10 +f 235/461/7 233/459/7 227/462/7 +f 229/463/2 231/464/2 226/465/2 +f 232/466/38 228/467/38 226/465/38 +f 236/468/51 232/466/51 231/469/51 +f 230/470/43 234/471/43 233/472/43 +f 234/471/37 225/473/37 227/462/37 +s 1 +f 238/474/52 239/475/10 237/476/42 +f 240/477/53 241/478/39 239/475/10 +f 242/479/54 243/480/7 241/478/39 +f 244/481/55 245/482/40 243/480/7 +f 246/483/56 247/484/4 245/482/40 +f 248/485/57 249/486/41 247/484/4 +f 252/487/58 253/488/59 238/489/52 +f 249/486/41 252/490/58 251/491/2 +f 251/491/2 238/492/52 237/493/42 +f 259/494/60 268/495/61 260/496/62 +f 238/497/52 254/498/63 240/499/53 +f 244/500/55 255/501/64 256/502/65 +f 248/503/57 259/504/60 250/505/66 +f 246/506/56 256/502/65 257/507/48 +f 252/487/58 259/504/60 260/508/62 +f 240/499/53 255/501/64 242/509/54 +f 246/510/56 258/511/67 248/503/57 +f 267/512/68 274/513/46 275/514/41 +f 257/515/48 266/516/69 258/517/67 +f 256/518/65 263/519/70 264/520/71 +f 254/521/63 261/522/72 262/523/73 +f 260/496/62 261/524/72 253/525/59 +f 259/494/60 266/516/69 267/526/68 +f 256/518/65 265/527/74 257/528/48 +f 255/529/64 262/523/73 263/519/70 +f 265/530/74 272/531/44 273/532/37 +f 263/533/70 269/534/75 271/535/39 +f 267/512/68 276/536/76 268/537/61 +f 265/530/74 274/513/46 266/538/69 +f 263/533/70 272/531/44 264/539/71 +f 261/540/72 269/534/75 262/541/73 +f 268/537/61 270/542/38 261/543/72 +s 0 +f 280/544/7 278/545/7 277/546/7 +f 283/547/43 279/548/43 280/544/43 +f 277/546/51 281/549/51 282/550/51 +f 279/548/4 281/551/4 278/552/4 +f 282/550/10 280/544/10 277/546/10 +f 284/553/2 282/550/2 281/554/2 +f 285/555/2 287/556/2 288/557/2 +f 287/556/10 289/558/10 292/559/10 +f 290/560/4 288/561/4 291/562/4 +f 292/559/51 288/563/51 287/556/51 +f 289/558/43 285/564/43 290/560/43 +f 289/558/7 291/565/7 292/559/7 +s 1 +f 293/566/10 304/567/43 302/568/10 +f 294/569/43 306/570/37 304/567/43 +f 306/570/37 296/571/49 308/572/49 +f 296/571/49 310/573/4 308/572/49 +f 310/574/4 298/575/77 312/576/77 +f 312/576/77 299/577/38 314/578/38 +f 299/577/38 316/579/51 314/578/38 +f 300/580/51 302/568/10 316/579/51 +f 301/581/42 304/582/78 303/583/78 +f 303/583/78 306/584/47 305/585/47 +f 306/586/47 307/587/79 305/585/47 +f 308/588/79 309/589/41 307/587/79 +f 310/590/41 311/591/80 309/592/41 +f 311/591/80 314/593/81 313/594/81 +f 313/594/81 316/595/82 315/596/82 +f 315/596/82 302/597/42 301/581/42 +f 309/589/4 320/598/49 307/587/49 +f 315/596/51 323/599/38 313/594/38 +f 303/583/43 319/600/37 318/601/43 +f 309/592/4 322/602/77 321/603/4 +f 301/581/10 324/604/51 315/596/51 +f 303/583/43 317/605/10 301/581/10 +f 307/587/49 319/600/37 305/585/37 +f 313/594/38 322/602/77 311/591/77 +f 320/606/7 322/607/7 324/608/7 +s 0 +f 331/609/39 327/610/39 328/611/39 +f 330/612/41 326/613/41 325/614/41 +f 332/615/37 325/616/37 327/610/37 +f 326/613/38 331/609/38 328/611/38 +f 334/617/2 335/618/2 333/619/2 +f 336/620/38 339/621/38 335/618/38 +f 340/622/7 337/623/7 339/621/7 +f 338/624/37 333/625/37 337/623/37 +f 343/626/42 347/611/42 344/627/42 +f 342/628/40 346/614/40 341/629/40 +f 341/630/37 348/610/37 343/626/37 +f 344/627/38 345/613/38 342/628/38 +f 351/631/7 350/619/7 349/632/7 +f 355/633/38 352/618/38 351/631/38 +f 353/634/2 356/621/2 355/633/2 +f 349/635/37 354/623/37 353/634/37 +s 1 +f 357/636/10 368/637/51 366/638/10 +f 358/639/51 370/640/38 368/637/51 +f 359/641/38 372/642/77 370/640/38 +f 360/643/77 374/644/4 372/642/77 +f 374/645/4 362/646/49 376/647/49 +f 362/646/49 378/648/37 376/647/49 +f 363/649/37 380/650/43 378/648/37 +f 364/651/43 366/638/10 380/650/43 +f 365/652/39 368/653/83 367/654/83 +f 367/654/83 370/655/84 369/656/84 +f 370/657/84 371/658/85 369/656/84 +f 372/659/85 373/660/40 371/658/85 +f 374/661/40 375/662/86 373/663/40 +f 376/664/86 377/665/50 375/662/86 +f 377/665/50 380/666/87 379/667/87 +f 379/667/87 366/668/39 365/652/39 +f 373/660/4 384/669/77 371/658/77 +f 379/667/43 387/670/37 377/665/37 +f 369/656/38 382/671/51 367/654/51 +f 375/662/49 385/672/4 373/663/4 +f 379/667/43 381/673/10 388/674/43 +f 367/654/51 381/673/10 365/652/10 +f 371/658/77 383/675/38 369/656/38 +f 375/662/49 387/670/37 386/676/49 +f 384/677/2 386/678/2 388/679/2 +f 390/680/88 391/681/7 389/682/39 +f 392/683/89 393/684/40 391/681/7 +f 393/684/40 396/685/90 395/686/4 +f 396/685/90 397/687/41 395/686/4 +f 397/687/41 400/688/91 399/689/2 +f 399/689/2 402/690/92 401/691/42 +f 404/692/93 405/693/94 390/694/88 +f 402/690/92 403/695/10 401/691/42 +f 404/696/93 389/697/39 403/695/10 +f 411/698/95 420/699/96 412/700/97 +f 392/701/89 405/702/94 406/703/98 +f 394/704/99 408/705/100 396/706/90 +f 402/707/92 410/708/101 411/709/95 +f 396/706/90 409/710/46 398/711/102 +f 402/707/92 412/712/97 404/692/93 +f 392/701/89 407/713/103 394/704/99 +f 398/714/102 410/708/101 400/715/91 +f 419/716/104 426/717/45 427/718/42 +f 409/719/46 418/720/105 410/721/101 +f 408/722/100 415/723/106 416/724/107 +f 406/725/98 413/726/108 414/727/109 +f 412/700/97 413/728/108 405/729/94 +f 411/698/95 418/720/105 419/730/104 +f 408/722/100 417/731/110 409/732/46 +f 407/733/103 414/727/109 415/723/106 +f 417/734/110 424/735/48 425/736/37 +f 414/737/109 423/738/40 415/739/106 +f 419/716/104 428/740/111 420/741/96 +f 417/734/110 426/717/45 418/742/105 +f 415/739/106 424/735/48 416/743/107 +f 413/744/108 421/745/112 414/737/109 +f 420/741/96 422/746/38 413/747/108 +f 24/1/1 2/25/2 1/2/2 +f 6/4/3 8/748/4 7/5/4 +f 8/7/4 10/10/5 9/8/5 +f 10/10/5 12/12/6 11/11/6 +f 12/12/6 14/14/7 13/13/7 +f 14/14/7 16/16/8 15/15/8 +f 16/16/8 18/18/9 17/17/9 +f 18/18/9 20/20/10 19/19/10 +f 20/20/10 22/22/11 21/21/11 +f 22/22/11 24/1/1 23/3/1 +f 4/23/12 6/4/3 5/6/3 +f 2/25/2 4/23/12 3/24/12 +f 1/26/13 3/749/14 25/27/14 +f 2/29/15 73/750/15 74/30/16 +f 5/32/17 27/751/17 25/33/14 +f 4/35/16 74/752/16 75/36/18 +f 7/38/19 28/753/19 27/39/17 +f 6/41/18 75/754/18 76/42/20 +f 9/8/21 29/755/21 28/44/19 +f 8/7/20 76/756/20 77/45/22 +f 11/11/23 30/757/23 29/46/21 +f 10/48/22 77/758/22 78/49/24 +f 11/50/23 13/13/25 31/51/25 +f 12/53/24 78/759/24 79/54/26 +f 15/15/27 32/760/27 31/55/25 +f 14/57/26 79/761/26 80/58/28 +f 17/59/29 33/762/29 32/60/27 +f 16/62/28 80/763/28 81/63/30 +f 19/19/31 34/764/31 33/65/29 +f 20/20/32 18/765/30 81/67/30 +f 21/21/33 35/766/33 34/69/31 +f 20/71/32 82/767/32 83/72/34 +f 23/3/35 36/768/35 35/73/33 +f 22/75/34 83/769/34 84/76/36 +f 1/77/13 26/770/13 36/78/35 +f 24/80/36 84/771/36 73/81/15 +f 68/83/4 142/772/4 141/84/3 +f 49/86/7 134/773/7 144/87/6 +f 56/89/10 136/774/10 135/90/9 +f 58/92/11 137/775/11 136/93/10 +f 60/95/1 138/776/1 137/96/11 +f 62/98/2 139/777/2 138/99/1 +f 64/101/12 140/778/12 139/102/2 +f 63/104/37 32/779/37 33/105/37 +f 66/107/3 141/780/3 140/108/12 +f 70/110/5 143/781/5 142/111/4 +f 72/113/6 144/782/6 143/114/5 +f 50/116/37 26/783/37 25/117/37 +f 57/119/37 29/784/37 30/120/37 +f 54/122/9 135/785/9 133/123/8 +f 51/125/37 25/786/37 27/126/37 +f 67/128/37 65/787/37 33/129/37 +f 61/131/37 59/788/37 30/132/37 +f 55/134/37 53/789/37 27/135/37 +f 67/137/37 34/790/37 35/138/37 +f 61/140/37 31/791/37 32/141/37 +f 55/143/37 28/792/37 29/144/37 +f 71/146/37 69/793/37 35/147/37 +f 50/149/37 71/794/37 36/150/37 +f 49/152/25 50/795/25 51/153/27 +f 52/155/27 51/796/27 53/156/29 +f 54/158/29 53/797/29 55/159/31 +f 56/161/31 55/798/31 57/162/33 +f 58/164/33 57/799/33 59/165/35 +f 60/167/35 59/800/35 61/168/13 +f 62/170/13 61/801/13 63/171/14 +f 64/173/14 63/802/14 65/174/17 +f 66/176/17 65/803/17 67/177/19 +f 68/179/19 67/804/19 69/180/21 +f 70/182/21 69/805/21 71/183/23 +f 72/185/23 71/806/23 50/186/25 +f 52/188/8 133/807/8 134/189/7 +f 96/191/38 78/808/38 77/192/38 +f 85/194/38 73/809/38 84/195/38 +f 90/197/38 75/810/38 74/198/38 +f 104/200/38 82/811/38 81/201/38 +f 98/203/38 79/812/38 78/204/38 +f 92/206/38 76/813/38 75/207/38 +f 104/209/38 106/814/38 83/210/38 +f 98/212/38 100/815/38 80/213/38 +f 94/215/38 77/816/38 76/216/38 +f 108/218/38 84/817/38 83/219/38 +f 85/221/38 88/818/38 74/222/38 +f 102/224/38 81/819/38 80/225/38 +f 109/227/38 112/820/38 87/228/38 +f 114/230/38 89/821/38 87/231/38 +f 116/233/38 91/822/38 89/234/38 +f 116/236/38 118/823/38 93/237/38 +f 118/239/38 120/824/38 95/240/38 +f 122/242/38 97/825/38 95/243/38 +f 122/245/38 124/826/38 99/246/38 +f 126/248/38 101/827/38 99/249/38 +f 126/251/38 128/828/38 103/252/38 +f 130/254/38 105/829/38 103/255/38 +f 132/257/38 107/830/38 105/258/38 +f 109/260/38 86/831/38 107/261/38 +f 113/265/38 111/832/38 110/833/38 +f 110/833/38 131/834/38 129/263/38 +f 129/263/38 127/835/38 125/836/38 +f 125/836/38 123/837/38 121/264/38 +f 121/264/38 119/838/38 117/839/38 +f 117/839/38 115/840/38 113/265/38 +f 113/265/38 110/833/38 129/263/38 +f 129/263/38 125/836/38 121/264/38 +f 121/264/38 117/839/38 113/265/38 +f 87/266/28 88/841/28 85/267/26 +f 89/269/30 90/842/30 88/270/28 +f 91/272/32 92/843/32 90/273/30 +f 93/275/34 94/844/34 92/276/32 +f 95/278/36 96/845/36 94/279/34 +f 97/281/15 98/846/15 96/282/36 +f 99/284/16 100/815/16 98/285/15 +f 101/287/18 102/847/18 100/288/16 +f 103/290/20 104/848/20 102/291/18 +f 105/293/22 106/849/22 104/294/20 +f 107/296/24 108/850/24 106/297/22 +f 86/299/26 85/851/26 108/300/24 +f 110/302/15 111/852/16 112/303/16 +f 113/305/18 114/853/18 112/306/16 +f 115/308/20 116/854/20 114/309/18 +f 117/311/22 118/855/22 116/312/20 +f 119/314/24 120/856/24 118/315/22 +f 121/317/26 122/857/26 120/318/24 +f 123/320/28 124/858/28 122/321/26 +f 125/323/30 126/859/30 124/324/28 +f 127/326/32 128/860/32 126/327/30 +f 127/329/32 129/861/34 130/330/34 +f 131/332/36 132/862/36 130/333/34 +f 110/335/15 109/863/15 132/336/36 +f 38/338/37 134/864/37 133/339/37 +f 37/341/37 133/865/37 135/342/37 +f 40/344/37 39/866/37 135/345/37 +f 40/347/37 136/867/37 137/348/37 +f 41/350/37 137/868/37 138/351/37 +f 43/353/37 42/869/37 138/354/37 +f 43/356/37 139/870/37 140/357/37 +f 44/359/37 140/871/37 141/360/37 +f 45/362/37 141/872/37 142/363/37 +f 46/365/37 142/873/37 143/366/37 +f 47/368/37 143/874/37 144/369/37 +f 38/371/37 48/875/37 144/372/37 +s 0 +f 146/374/10 148/876/10 147/375/10 +f 150/377/10 152/877/10 151/378/10 +f 154/380/10 156/878/10 155/381/10 +f 158/383/10 160/879/10 159/384/10 +f 162/386/10 164/880/10 163/387/10 +f 167/389/10 165/881/10 166/390/10 +f 170/392/10 172/882/10 171/393/10 +f 175/395/10 173/883/10 174/396/10 +f 178/398/10 180/884/10 179/399/10 +f 182/401/10 184/885/10 183/402/10 +s 1 +f 186/404/10 188/407/39 187/405/39 +f 188/407/39 190/409/7 189/408/7 +f 190/409/7 192/411/40 191/410/40 +f 192/411/40 194/886/4 193/412/4 +f 194/413/4 196/416/41 195/414/41 +f 196/416/41 198/887/2 197/417/2 +f 197/417/2 198/887/2 200/418/42 +f 200/418/42 186/404/10 185/406/10 +f 208/420/42 216/433/42 209/421/10 +f 211/423/7 212/426/40 204/424/40 +f 212/426/40 213/451/4 205/427/4 +f 213/428/4 214/888/41 206/429/41 +f 206/429/41 214/888/41 215/431/2 +f 207/432/2 215/431/2 216/433/42 +f 209/421/10 210/435/39 202/434/39 +f 210/435/39 211/423/7 203/425/7 +f 208/438/38 201/889/38 202/890/38 +f 202/890/38 203/891/38 204/436/38 +f 204/436/38 205/892/38 206/437/38 +f 206/437/38 207/893/38 208/438/38 +f 208/438/38 202/890/38 204/436/38 +f 209/439/43 218/894/43 217/440/44 +f 219/444/37 217/895/37 218/896/37 +f 218/896/37 224/897/37 223/442/37 +f 223/442/37 222/898/37 221/443/37 +f 221/443/37 220/899/37 219/444/37 +f 219/444/37 218/896/37 223/442/37 +f 216/445/45 224/900/45 218/446/43 +f 214/447/46 222/901/46 223/448/47 +f 212/426/48 220/902/48 221/450/49 +f 210/441/44 217/903/44 219/452/50 +f 215/449/47 223/904/47 224/453/45 +f 213/454/49 221/905/49 222/455/46 +f 212/426/48 211/423/50 219/456/50 +s 0 +f 231/458/10 230/906/10 233/459/10 +f 227/462/7 228/467/7 235/461/7 +f 235/461/7 236/460/7 233/459/7 +f 233/459/7 234/471/7 227/462/7 +f 226/465/2 225/907/2 229/463/2 +f 229/463/2 230/908/2 231/464/2 +f 231/464/2 232/466/2 226/465/2 +f 232/466/38 235/461/38 228/467/38 +f 236/468/51 235/461/51 232/466/51 +f 230/470/43 229/909/43 234/471/43 +f 234/471/37 229/909/37 225/473/37 +s 1 +f 238/474/52 240/477/53 239/475/10 +f 240/477/53 242/479/54 241/478/39 +f 242/479/54 244/481/55 243/480/7 +f 244/481/55 246/483/56 245/482/40 +f 246/483/56 248/485/57 247/484/4 +f 248/485/57 250/910/66 249/486/41 +f 252/487/58 260/508/62 253/488/59 +f 249/486/41 250/910/66 252/490/58 +f 251/491/2 252/490/58 238/492/52 +f 259/494/60 267/526/68 268/495/61 +f 238/497/52 253/911/59 254/498/63 +f 244/500/55 242/509/54 255/501/64 +f 248/503/57 258/511/67 259/504/60 +f 246/506/56 244/500/55 256/502/65 +f 252/487/58 250/505/66 259/504/60 +f 240/499/53 254/498/63 255/501/64 +f 246/510/56 257/912/48 258/511/67 +f 267/512/68 266/538/69 274/513/46 +f 257/515/48 265/913/74 266/516/69 +f 256/518/65 255/529/64 263/519/70 +f 254/521/63 253/914/59 261/522/72 +f 260/496/62 268/495/61 261/524/72 +f 259/494/60 258/517/67 266/516/69 +f 256/518/65 264/520/71 265/527/74 +f 255/529/64 254/521/63 262/523/73 +f 265/530/74 264/539/71 272/531/44 +f 263/533/70 262/541/73 269/534/75 +f 267/512/68 275/514/41 276/536/76 +f 265/530/74 273/532/37 274/513/46 +f 263/533/70 271/535/39 272/531/44 +f 261/540/72 270/915/38 269/534/75 +f 268/537/61 276/536/76 270/542/38 +s 0 +f 280/544/7 279/916/7 278/545/7 +f 283/547/43 284/917/43 279/548/43 +f 277/546/51 278/918/51 281/549/51 +f 279/548/4 284/917/4 281/551/4 +f 282/550/10 283/547/10 280/544/10 +f 284/553/2 283/547/2 282/550/2 +f 285/555/2 286/919/2 287/556/2 +f 287/556/10 286/919/10 289/558/10 +f 290/560/4 285/564/4 288/561/4 +f 292/559/51 291/920/51 288/563/51 +f 289/558/43 286/919/43 285/564/43 +f 289/558/7 290/921/7 291/565/7 +s 1 +f 293/566/10 294/569/43 304/567/43 +f 294/569/43 295/922/37 306/570/37 +f 306/570/37 295/922/37 296/571/49 +f 296/571/49 297/923/4 310/573/4 +f 310/574/4 297/924/4 298/575/77 +f 312/576/77 298/575/77 299/577/38 +f 299/577/38 300/580/51 316/579/51 +f 300/580/51 293/566/10 302/568/10 +f 301/581/42 302/925/42 304/582/78 +f 303/583/78 304/926/78 306/584/47 +f 306/586/47 308/927/79 307/587/79 +f 308/588/79 310/928/41 309/589/41 +f 310/590/41 312/929/80 311/591/80 +f 311/591/80 312/930/80 314/593/81 +f 313/594/81 314/931/81 316/595/82 +f 315/596/82 316/932/82 302/597/42 +f 309/589/4 321/923/4 320/598/49 +f 315/596/51 324/604/51 323/599/38 +f 303/583/43 305/585/37 319/600/37 +f 309/592/4 311/591/77 322/602/77 +f 301/581/10 317/605/10 324/604/51 +f 303/583/43 318/601/43 317/605/10 +f 307/587/49 320/598/49 319/600/37 +f 313/594/38 323/599/38 322/602/77 +f 324/608/7 317/933/7 318/934/7 +f 318/934/7 319/935/7 320/606/7 +f 320/606/7 321/936/7 322/607/7 +f 322/607/7 323/937/7 324/608/7 +f 324/608/7 318/934/7 320/606/7 +s 0 +f 331/609/39 332/615/39 327/610/39 +f 330/612/41 329/938/41 326/613/41 +f 332/615/37 330/939/37 325/616/37 +f 326/613/38 329/938/38 331/609/38 +f 334/617/2 336/620/2 335/618/2 +f 336/620/38 340/622/38 339/621/38 +f 340/622/7 338/624/7 337/623/7 +f 338/624/37 334/940/37 333/625/37 +f 343/626/42 348/610/42 347/611/42 +f 342/628/40 345/613/40 346/614/40 +f 341/630/37 346/616/37 348/610/37 +f 344/627/38 347/611/38 345/613/38 +f 351/631/7 352/618/7 350/619/7 +f 355/633/38 356/621/38 352/618/38 +f 353/634/2 354/623/2 356/621/2 +f 349/635/37 350/625/37 354/623/37 +s 1 +f 357/636/10 358/639/51 368/637/51 +f 358/639/51 359/641/38 370/640/38 +f 359/641/38 360/643/77 372/642/77 +f 360/643/77 361/941/4 374/644/4 +f 374/645/4 361/942/4 362/646/49 +f 362/646/49 363/649/37 378/648/37 +f 363/649/37 364/651/43 380/650/43 +f 364/651/43 357/636/10 366/638/10 +f 365/652/39 366/943/39 368/653/83 +f 367/654/83 368/944/83 370/655/84 +f 370/657/84 372/945/85 371/658/85 +f 372/659/85 374/946/40 373/660/40 +f 374/661/40 376/947/86 375/662/86 +f 376/664/86 378/948/50 377/665/50 +f 377/665/50 378/949/50 380/666/87 +f 379/667/87 380/950/87 366/668/39 +f 373/660/4 385/941/4 384/669/77 +f 379/667/43 388/674/43 387/670/37 +f 369/656/38 383/675/38 382/671/51 +f 375/662/49 386/676/49 385/672/4 +f 379/667/43 365/652/10 381/673/10 +f 367/654/51 382/671/51 381/673/10 +f 371/658/77 384/669/77 383/675/38 +f 375/662/49 377/665/37 387/670/37 +f 388/679/2 381/951/2 382/952/2 +f 382/952/2 383/953/2 384/677/2 +f 384/677/2 385/954/2 386/678/2 +f 386/678/2 387/955/2 388/679/2 +f 388/679/2 382/952/2 384/677/2 +f 390/680/88 392/683/89 391/681/7 +f 392/683/89 394/956/99 393/684/40 +f 393/684/40 394/956/99 396/685/90 +f 396/685/90 398/957/102 397/687/41 +f 397/687/41 398/957/102 400/688/91 +f 399/689/2 400/688/91 402/690/92 +f 404/692/93 412/712/97 405/693/94 +f 402/690/92 404/696/93 403/695/10 +f 404/696/93 390/958/88 389/697/39 +f 411/698/95 419/730/104 420/699/96 +f 392/701/89 390/959/88 405/702/94 +f 394/704/99 407/713/103 408/705/100 +f 402/707/92 400/715/91 410/708/101 +f 396/706/90 408/705/100 409/710/46 +f 402/707/92 411/709/95 412/712/97 +f 392/701/89 406/703/98 407/713/103 +f 398/714/102 409/960/46 410/708/101 +f 419/716/104 418/742/105 426/717/45 +f 409/719/46 417/961/110 418/720/105 +f 408/722/100 407/733/103 415/723/106 +f 406/725/98 405/962/94 413/726/108 +f 412/700/97 420/699/96 413/728/108 +f 411/698/95 410/721/101 418/720/105 +f 408/722/100 416/724/107 417/731/110 +f 407/733/103 406/725/98 414/727/109 +f 417/734/110 416/743/107 424/735/48 +f 414/737/109 421/745/112 423/738/40 +f 419/716/104 427/718/42 428/740/111 +f 417/734/110 425/736/37 426/717/45 +f 415/739/106 423/738/40 424/735/48 +f 413/744/108 422/963/38 421/745/112 +f 420/741/96 428/740/111 422/746/38 diff --git a/src/main/resources/assets/hbm/models/reactors/breeder.obj b/src/main/resources/assets/hbm/models/reactors/breeder.obj index a4ad944b5..c96c81eb6 100644 --- a/src/main/resources/assets/hbm/models/reactors/breeder.obj +++ b/src/main/resources/assets/hbm/models/reactors/breeder.obj @@ -1,2210 +1,1209 @@ -# Blender v2.79 (sub 0) OBJ File: 'breeder_sten.blend' +# Blender v2.79 (sub 7) OBJ File: 'breeding_reactor.blend' # www.blender.org -o Cube.005_Cube.010 -v 0.000000 4.255250 -0.950000 -v 0.000000 5.155250 -0.950000 -v 0.363549 5.155250 -0.877686 -v 0.363549 4.255250 -0.877686 -v 0.671751 5.155250 -0.671751 -v 0.671751 4.255250 -0.671751 -v 0.877686 5.155250 -0.363549 -v 0.877686 4.255250 -0.363549 -v 0.950000 5.155250 0.000000 -v 0.950000 4.255250 0.000000 -v 0.877686 5.155250 0.363549 -v 0.877686 4.255250 0.363549 -v 0.671751 5.155250 0.671751 -v 0.671751 4.255250 0.671751 -v 0.363549 5.155250 0.877686 -v 0.363549 4.255250 0.877686 -v 0.000000 5.155250 0.950000 -v 0.000000 4.255250 0.950000 -v -0.363549 5.155250 0.877686 -v -0.363549 4.255250 0.877686 -v -0.671751 5.155250 0.671752 -v -0.671751 4.255250 0.671752 -v -0.877686 5.155250 0.363549 -v -0.877686 4.255250 0.363549 -v -0.950000 5.155250 0.000000 -v -0.950000 4.255250 0.000000 -v -0.877686 5.155250 -0.363549 -v -0.877686 4.255250 -0.363549 -v -0.671751 5.155250 -0.671752 -v -0.671751 4.255250 -0.671752 -v -0.363549 5.155250 -0.877686 -v -0.363549 4.255250 -0.877686 -v -0.363549 1.555250 -0.877686 -v -0.363549 3.355250 -0.877686 -v 0.000000 3.355250 -0.950000 -v 0.000000 1.555250 -0.950000 -v -0.671751 1.555250 -0.671752 -v -0.671751 3.355250 -0.671752 -v -0.877686 1.555250 -0.363549 -v -0.877686 3.355250 -0.363549 -v -0.950000 1.555250 -0.000000 -v -0.950000 3.355250 0.000000 -v -0.877686 1.555250 0.363549 -v -0.877686 3.355250 0.363549 -v -0.671751 1.555250 0.671752 -v -0.671751 3.355250 0.671752 -v -0.363549 1.555250 0.877686 -v -0.363549 3.355250 0.877686 -v 0.000000 1.555250 0.950000 -v 0.000000 3.355250 0.950000 -v 0.363549 1.555250 0.877686 -v 0.363549 3.355250 0.877686 -v 0.671751 1.555250 0.671751 -v 0.671751 3.355250 0.671751 -v 0.877686 1.555250 0.363549 -v 0.877686 3.355250 0.363549 -v 0.950000 1.555250 -0.000000 -v 0.950000 3.355250 0.000000 -v 0.877686 1.555250 -0.363549 -v 0.877686 3.355250 -0.363549 -v 0.671751 1.555250 -0.671751 -v 0.671751 3.355250 -0.671751 -v 0.363549 1.555250 -0.877686 -v 0.363549 3.355250 -0.877686 -v -0.363549 1.001880 0.877686 -v -0.671751 1.001880 0.671752 -v -0.753880 0.481491 0.312268 -v -0.576995 0.481491 0.576995 -v -0.363549 1.001880 -0.877686 -v 0.000000 1.001880 -0.950000 -v -0.312267 0.481491 0.753880 -v 0.000000 0.481491 0.815994 -v 0.671751 1.001880 -0.671751 -v 0.877686 1.001880 -0.363549 -v 0.312267 0.481491 0.753880 -v 0.576995 0.481491 0.576995 -v -0.877686 1.001880 0.363549 -v 0.753880 0.481491 0.312268 -v 0.950000 1.001880 -0.000000 -v 0.815994 0.481491 -0.000000 -v -0.950000 1.001880 -0.000000 -v 0.753880 0.481491 -0.312267 -v 0.877686 1.001880 0.363549 -v 0.576995 0.481491 -0.576995 -v -0.877686 1.001880 -0.363549 -v 0.000000 0.481491 -0.815994 -v 0.671751 1.001880 0.671751 -v 0.312267 0.481491 -0.753880 -v -0.671751 1.001880 -0.671752 -v -0.753880 0.710770 -0.312268 -v 0.363549 1.001880 0.877686 -v -0.576995 0.710770 -0.576995 -v 0.000000 1.001880 0.950000 -v -0.576995 0.481491 -0.576995 -v 0.877686 5.844361 -0.363549 -v 0.950000 5.844361 0.000000 -v 0.143202 0.277469 -0.345720 -v 0.264602 0.277469 -0.264602 -v 0.345720 0.277469 -0.143202 -v 0.374204 0.277469 -0.000000 -v 0.345720 0.277469 0.143202 -v 0.264603 0.277469 0.264602 -v 0.143202 0.277469 0.345720 -v 0.000000 0.277469 0.374204 -v -0.143202 0.277469 0.345720 -v -0.264602 0.277469 0.264602 -v -0.345720 0.277469 0.143202 -v -0.374204 0.277469 -0.000000 -v -0.345720 0.277469 -0.143202 -v -0.264602 0.277469 -0.264602 -v -0.143202 0.277469 -0.345720 -v 0.000000 0.277469 -0.374204 -v 0.363549 1.001880 -0.877686 -v -0.753880 0.481491 -0.312268 -v 0.877686 5.844361 0.363549 -v 0.671751 5.844361 0.671751 -v 0.363549 5.844361 0.877686 -v 0.000000 5.844361 0.950000 -v -0.363549 5.844361 0.877686 -v -0.671751 5.844361 0.671752 -v -0.877685 5.844361 -0.363549 -v -0.671751 5.844361 -0.671752 -v -0.363549 5.844361 -0.877686 -v 0.000000 5.844361 -0.950000 -v -0.950000 5.844361 0.000000 -v -0.877686 5.844361 0.363549 -v -0.877686 5.475793 0.363549 -v -0.950000 5.475793 0.000000 -v -0.049497 0.760250 -0.049497 -v 0.000000 0.760250 -0.070000 -v 0.070000 0.760250 -0.000000 -v 0.049497 0.760250 0.049497 -v 0.000000 0.760250 0.070000 -v -0.049497 0.760250 0.049497 -v -0.070000 0.760250 -0.000000 -v 0.049497 0.760250 -0.049497 -v 0.000000 6.262662 -0.053589 -v 0.037893 6.262662 -0.037893 -v 0.053589 6.262662 0.000000 -v 0.037893 6.262662 0.037893 -v 0.000000 6.262662 0.053589 -v -0.037893 6.262662 0.037893 -v -0.053589 6.262662 0.000000 -v -0.037893 6.262662 -0.037893 -v 0.340478 0.760250 0.340503 -v 0.389975 0.760250 0.320000 -v 0.459975 0.760250 0.390000 -v 0.439473 0.760250 0.439497 -v 0.389975 0.760250 0.460000 -v 0.340478 0.760250 0.439497 -v 0.319975 0.760250 0.390000 -v 0.439473 0.760250 0.340503 -v 0.389975 6.262662 0.336411 -v 0.427868 6.262662 0.352107 -v 0.443564 6.262662 0.390000 -v 0.427868 6.262662 0.427893 -v 0.389975 6.262662 0.443589 -v 0.352082 6.262662 0.427893 -v 0.336386 6.262662 0.390000 -v 0.352082 6.262662 0.352107 -v 0.340503 0.760250 -0.439497 -v 0.390000 0.760250 -0.460000 -v 0.460000 0.760250 -0.390000 -v 0.439497 0.760250 -0.340503 -v 0.390000 0.760250 -0.320000 -v 0.340503 0.760250 -0.340503 -v 0.320000 0.760250 -0.390000 -v 0.439497 0.760250 -0.439497 -v 0.390000 6.262662 -0.443589 -v 0.427893 6.262662 -0.427893 -v 0.443589 6.262662 -0.390000 -v 0.427893 6.262662 -0.352107 -v 0.390000 6.262662 -0.336411 -v 0.352107 6.262662 -0.352107 -v 0.336411 6.262662 -0.390000 -v 0.352107 6.262662 -0.427893 -v -0.439497 0.760250 0.340503 -v -0.390000 0.760250 0.320000 -v -0.320000 0.760250 0.390000 -v -0.340503 0.760250 0.439497 -v -0.390000 0.760250 0.460000 -v -0.439497 0.760250 0.439497 -v -0.460000 0.760250 0.390000 -v -0.340503 0.760250 0.340503 -v -0.390000 6.262662 0.336411 -v -0.352107 6.262662 0.352107 -v -0.336411 6.262662 0.390000 -v -0.352107 6.262662 0.427893 -v -0.390000 6.262662 0.443589 -v -0.427893 6.262662 0.427893 -v -0.443589 6.262662 0.390000 -v -0.427893 6.262662 0.352107 -v -0.439497 0.760250 -0.439497 -v -0.390000 0.760250 -0.460000 -v -0.320000 0.760250 -0.390000 -v -0.340503 0.760250 -0.340503 -v -0.390000 0.760250 -0.320000 -v -0.439497 0.760250 -0.340503 -v -0.460000 0.760250 -0.390000 -v -0.340503 0.760250 -0.439497 -v -0.390000 6.262662 -0.443589 -v -0.352107 6.262662 -0.427893 -v -0.336411 6.262662 -0.390000 -v -0.352107 6.262662 -0.352107 -v -0.390000 6.262662 -0.336411 -v -0.427893 6.262662 -0.352107 -v -0.443589 6.262662 -0.390000 -v -0.427893 6.262662 -0.427893 -v -0.950000 5.475793 0.000000 -v -0.877686 5.475793 0.363549 -v -0.877686 5.844361 0.363549 -v -0.950000 5.844361 0.000000 -v 0.000000 5.844361 -0.950000 -v -0.363549 5.844361 -0.877686 -v -0.671751 5.844361 -0.671752 -v -0.877685 5.844361 -0.363549 -v -0.671751 5.844361 0.671752 -v -0.363549 5.844361 0.877686 -v 0.000000 5.844361 0.950000 -v 0.363549 5.844361 0.877686 -v 0.671751 5.844361 0.671751 -v 0.877686 5.844361 0.363549 -v 0.950000 5.844361 0.000000 -v 0.877686 5.844361 -0.363549 -v 0.671751 5.844361 -0.671751 -v 0.363549 5.844361 -0.877686 -v 0.877686 5.475793 0.363549 -v 0.950000 5.475793 0.000000 -v -0.671751 5.475793 0.671752 -v -0.363549 5.475793 0.877686 -v -0.363549 5.475793 -0.877686 -v -0.671751 5.475793 -0.671752 -v 0.877686 5.475793 -0.363549 -v 0.671751 5.475793 -0.671751 -v 0.000000 5.475793 0.950000 -v 0.363549 5.475793 0.877686 -v -0.877686 5.475793 -0.363549 -v 0.363549 5.475793 -0.877686 -v 0.000000 5.475793 -0.950000 -v 0.671751 5.475793 0.671751 -v 0.990000 5.685250 0.990000 -v 0.990000 5.685250 0.850000 -v -0.850000 5.685250 -0.990000 -v 0.990000 5.685250 -0.990000 -v 0.850000 5.685250 0.850000 -v 0.850000 5.685250 0.990000 -v -0.850000 5.685250 -0.850000 -v 0.990000 5.685250 -0.850000 -v -0.990000 5.685250 -0.990000 -v -0.990000 5.685250 -0.850000 -v 0.850000 5.685250 -0.990000 -v 0.850000 5.685250 -0.850000 -v -0.850000 5.685250 0.850000 -v -0.850000 5.685250 0.990000 -v -0.990000 5.685250 0.850000 -v -0.990000 5.685250 0.990000 -v -0.990000 -0.000115 0.990000 -v -0.850000 -0.000115 0.990000 -v -0.850000 -0.000115 -0.990000 -v -0.850000 -0.000115 -0.850000 -v -0.990000 -0.000115 0.850000 -v -0.850000 -0.000115 0.850000 -v 0.850000 -0.000115 0.990000 -v 0.850000 -0.000115 0.850000 -v -0.990000 -0.000115 -0.850000 -v 0.990000 -0.000115 0.990000 -v 0.990000 -0.000115 0.850000 -v 0.850000 -0.000115 -0.850000 -v 0.990000 -0.000115 -0.850000 -v 0.990000 -0.000115 -0.990000 -v -0.990000 -0.000115 -0.990000 -v 0.850000 -0.000115 -0.990000 -v 0.000000 4.255250 -0.950000 -v 0.363549 4.255250 -0.877686 -v 0.671751 4.255250 -0.671751 -v 0.877686 4.255250 -0.363549 -v 0.950000 4.255250 0.000000 -v 0.877686 4.255250 0.363549 -v 0.671751 4.255250 0.671751 -v 0.363549 4.255250 0.877686 -v 0.000000 4.255250 0.950000 -v -0.363549 4.255250 0.877686 -v -0.671751 4.255250 0.671752 -v -0.877686 4.255250 0.363549 -v -0.950000 4.255250 0.000000 -v -0.877686 4.255250 -0.363549 -v -0.671751 4.255250 -0.671752 -v -0.363549 4.255250 -0.877686 -v -0.363549 3.355250 -0.877686 -v 0.000000 3.355250 -0.950000 -v -0.671751 3.355250 -0.671752 -v -0.877686 3.355250 -0.363549 -v -0.950000 3.355250 0.000000 -v -0.877686 3.355250 0.363549 -v -0.671751 3.355250 0.671752 -v -0.363549 3.355250 0.877686 -v 0.000000 3.355250 0.950000 -v 0.363549 3.355250 0.877686 -v 0.671751 3.355250 0.671751 -v 0.877686 3.355250 0.363549 -v 0.950000 3.355250 0.000000 -v 0.877686 3.355250 -0.363549 -v 0.671751 3.355250 -0.671751 -v 0.363549 3.355250 -0.877686 -v 0.850000 5.545250 0.850000 -v 0.850000 0.889885 0.850000 -v 0.990000 5.545250 0.850000 -v 0.990000 0.889885 0.850000 -v 0.990000 5.685250 0.850000 -v 0.850000 5.685250 0.850000 -v -0.850000 5.685250 -0.850000 -v 0.990000 5.685250 -0.850000 -v -0.990000 5.685250 -0.850000 -v 0.850000 5.685250 -0.850000 -v -0.850000 5.685250 0.850000 -v -0.990000 5.685250 0.850000 -v -0.990000 0.889885 -0.850000 -v -0.990000 5.545250 -0.850000 -v 0.850000 0.749885 0.850000 -v -0.850000 5.545250 -0.850000 -v -0.850000 0.889885 -0.850000 -v 0.850000 0.889885 -0.850000 -v 0.850000 5.545250 -0.850000 -v 0.990000 0.749885 0.850000 -v 0.990000 5.545250 -0.850000 -v 0.990000 0.889885 -0.850000 -v -0.990000 0.749885 0.850000 -v -0.990000 5.545250 0.850000 -v -0.990000 0.889885 0.850000 -v -0.850000 5.545250 0.850000 -v -0.850000 0.889885 0.850000 -v 0.850000 0.749885 -0.850000 -v 0.990000 0.749885 -0.850000 -v -0.990000 0.749885 -0.850000 -v -0.850000 0.749885 -0.850000 -v -0.850000 0.749885 0.850000 -v 0.850000 0.889885 0.990000 -v 0.850000 5.545250 0.990000 -v 0.850000 5.545250 0.850000 -v 0.850000 0.889885 0.850000 -v -0.850000 5.685250 -0.990000 -v 0.850000 5.685250 0.850000 -v 0.850000 5.685250 0.990000 -v -0.850000 5.685250 -0.850000 -v 0.850000 5.685250 -0.990000 -v 0.850000 5.685250 -0.850000 -v -0.850000 5.685250 0.850000 -v -0.850000 5.685250 0.990000 -v 0.850000 0.749885 0.850000 -v -0.850000 5.545250 -0.990000 -v -0.850000 0.889885 -0.990000 -v -0.850000 5.545250 -0.850000 -v -0.850000 0.889885 -0.850000 -v 0.850000 0.889885 -0.850000 -v 0.850000 5.545250 -0.850000 -v 0.850000 5.545250 -0.990000 -v 0.850000 0.889885 -0.990000 -v -0.850000 5.545250 0.850000 -v -0.850000 0.889885 0.850000 -v -0.850000 5.545250 0.990000 -v -0.850000 0.889885 0.990000 -v 0.850000 0.749885 -0.850000 -v -0.850000 0.749885 -0.850000 -v 0.850000 0.749885 0.990000 -v -0.850000 0.749885 0.850000 -v -0.850000 0.749885 0.990000 -v -0.850000 0.749885 -0.990000 -v 0.850000 0.749885 -0.990000 -v 0.000000 4.255250 -0.950000 -v 0.000000 5.155250 -0.950000 -v 0.363549 5.155250 -0.877686 -v 0.363549 4.255250 -0.877686 -v 0.671751 5.155250 -0.671751 -v 0.671751 4.255250 -0.671751 -v 0.877686 5.155250 -0.363549 -v 0.877686 4.255250 -0.363549 -v 0.950000 5.155250 0.000000 -v 0.950000 4.255250 0.000000 -v 0.877686 5.155250 0.363549 -v 0.877686 4.255250 0.363549 -v 0.671751 5.155250 0.671751 -v 0.671751 4.255250 0.671751 -v 0.363549 5.155250 0.877686 -v 0.363549 4.255250 0.877686 -v 0.000000 5.155250 0.950000 -v 0.000000 4.255250 0.950000 -v -0.363549 5.155250 0.877686 -v -0.363549 4.255250 0.877686 -v -0.671751 5.155250 0.671752 -v -0.671751 4.255250 0.671752 -v -0.877686 5.155250 0.363549 -v -0.877686 4.255250 0.363549 -v -0.950000 5.155250 0.000000 -v -0.950000 4.255250 0.000000 -v -0.877686 5.155250 -0.363549 -v -0.877686 4.255250 -0.363549 -v -0.671751 5.155250 -0.671752 -v -0.671751 4.255250 -0.671752 -v -0.363549 5.155250 -0.877686 -v -0.363549 4.255250 -0.877686 -v -0.363549 1.555250 -0.877686 -v -0.363549 3.355250 -0.877686 -v 0.000000 3.355250 -0.950000 -v 0.000000 1.555250 -0.950000 -v -0.671751 1.555250 -0.671752 -v -0.671751 3.355250 -0.671752 -v -0.877686 1.555250 -0.363549 -v -0.877686 3.355250 -0.363549 -v -0.950000 1.555250 -0.000000 -v -0.950000 3.355250 0.000000 -v -0.877686 1.555250 0.363549 -v -0.877686 3.355250 0.363549 -v -0.671751 1.555250 0.671752 -v -0.671751 3.355250 0.671752 -v -0.363549 1.555250 0.877686 -v -0.363549 3.355250 0.877686 -v 0.000000 1.555250 0.950000 -v 0.000000 3.355250 0.950000 -v 0.363549 1.555250 0.877686 -v 0.363549 3.355250 0.877686 -v 0.671751 1.555250 0.671751 -v 0.671751 3.355250 0.671751 -v 0.877686 1.555250 0.363549 -v 0.877686 3.355250 0.363549 -v 0.950000 1.555250 -0.000000 -v 0.950000 3.355250 0.000000 -v 0.877686 1.555250 -0.363549 -v 0.877686 3.355250 -0.363549 -v 0.671751 1.555250 -0.671751 -v 0.671751 3.355250 -0.671751 -v 0.363549 1.555250 -0.877686 -v 0.363549 3.355250 -0.877686 -v -0.363549 1.001880 0.877686 -v -0.671751 1.001880 0.671752 -v -0.671751 0.612922 0.671752 -v -0.363549 0.612922 0.877686 -v -0.363549 1.001880 -0.877686 -v 0.000000 1.001880 -0.950000 -v 0.000000 0.612922 -0.950000 -v -0.363549 0.612922 -0.877686 -v 0.671751 1.001880 -0.671751 -v 0.877686 1.001880 -0.363549 -v 0.877686 0.612922 -0.363549 -v 0.671751 0.612922 -0.671751 -v -0.877686 1.001880 0.363549 -v -0.877686 0.612922 0.363549 -v 0.950000 1.001880 -0.000000 -v 0.950000 0.612922 -0.000000 -v -0.950000 1.001880 -0.000000 -v -0.950000 0.612922 -0.000000 -v 0.877686 1.001880 0.363549 -v 0.877686 0.612922 0.363549 -v -0.877686 1.001880 -0.363549 -v -0.877686 0.612922 -0.363549 -v 0.671751 1.001880 0.671751 -v 0.671751 0.612922 0.671751 -v -0.671751 1.001880 -0.671752 -v -0.671751 0.612922 -0.671752 -v 0.363549 1.001880 0.877686 -v 0.363549 0.612922 0.877686 -v 0.000000 1.001880 0.950000 -v 0.000000 0.612922 0.950000 -v 0.363549 1.001880 -0.877686 -v 0.363549 0.612922 -0.877686 -v -0.671751 0.612922 0.671752 -v -0.363549 0.612922 0.877686 -v 0.000000 0.612922 -0.950000 -v -0.363549 0.612922 -0.877686 -v 0.877686 0.612922 -0.363549 -v 0.671751 0.612922 -0.671751 -v -0.877686 0.612922 0.363549 -v 0.950000 0.612922 -0.000000 -v -0.950000 0.612922 -0.000000 -v 0.877686 0.612922 0.363549 -v -0.877686 0.612922 -0.363549 -v 0.671751 0.612922 0.671751 -v -0.671751 0.612922 -0.671752 -v 0.363549 0.612922 0.877686 -v 0.000000 0.612922 0.950000 -v -0.753880 0.481491 -0.312268 -v -0.576995 0.481491 -0.576995 -v 0.363549 0.612922 -0.877686 -v 0.312267 0.481491 -0.753880 -v 0.000000 0.481491 -0.815994 -v 0.576995 0.481491 -0.576995 -v 0.753880 0.481491 -0.312267 -v 0.815994 0.481491 -0.000000 -v 0.753880 0.481491 0.312268 -v 0.576995 0.481491 0.576995 -v 0.312267 0.481491 0.753880 -v 0.000000 0.481491 0.815994 -v -0.312267 0.481491 0.753880 -v -0.576995 0.481491 0.576995 -v -0.753880 0.481491 0.312268 -v -0.815994 0.481491 -0.000000 -v -0.312267 0.481491 -0.753880 -v -0.815994 0.481491 -0.000000 -v -0.312267 0.481491 -0.753880 -v 0.576995 0.710770 -0.576995 -v 0.312267 0.710770 -0.753880 -v 0.312267 0.710770 0.753880 -v 0.576995 0.710770 0.576995 -v -0.815994 0.710770 -0.000000 -v -0.753880 0.710770 0.312268 -v -0.312267 0.710770 -0.753880 -v 0.753880 0.710770 0.312268 -v 0.815994 0.710770 -0.000000 -v -0.576995 0.710770 0.576995 -v -0.312267 0.710770 0.753880 -v 0.753880 0.710770 -0.312267 -v 0.000000 0.710770 0.815994 -v 0.000000 0.710770 -0.815994 -v -0.576995 0.710770 -0.576995 -v -0.753880 0.710770 -0.312268 -v 0.143202 0.277469 -0.345720 -v 0.264602 0.277469 -0.264602 -v 0.345720 0.277469 -0.143202 -v 0.374204 0.277469 -0.000000 -v 0.345720 0.277469 0.143202 -v 0.264603 0.277469 0.264602 -v 0.143202 0.277469 0.345720 -v 0.000000 0.277469 0.374204 -v -0.143202 0.277469 0.345720 -v -0.264602 0.277469 0.264602 -v -0.345720 0.277469 0.143202 -v -0.374204 0.277469 -0.000000 -v -0.345720 0.277469 -0.143202 -v -0.264602 0.277469 -0.264602 -v -0.143202 0.277469 -0.345720 -v 0.000000 0.277469 -0.374204 -v 0.576995 0.710770 -0.576995 -v 0.312267 0.710770 -0.753880 -v 0.312267 0.710770 0.753880 -v 0.576995 0.710770 0.576995 -v -0.815994 0.710770 -0.000000 -v -0.753880 0.710770 0.312268 -v -0.312267 0.710770 -0.753880 -v 0.753880 0.710770 0.312268 -v 0.815994 0.710770 -0.000000 -v -0.576995 0.710770 0.576995 -v -0.312267 0.710770 0.753880 -v 0.753880 0.710770 -0.312267 -v 0.000000 0.710770 0.815994 -v 0.000000 0.710770 -0.815994 -v 0.671751 5.844361 -0.671751 -v 0.363549 5.844361 -0.877686 -v 0.877686 5.475793 0.363549 -v 0.950000 5.475793 0.000000 -v -0.671751 5.475793 0.671752 -v -0.363549 5.475793 0.877686 -v -0.363549 5.475793 -0.877686 -v -0.671751 5.475793 -0.671752 -v 0.877686 5.475793 -0.363549 -v 0.671751 5.475793 -0.671751 -v 0.000000 5.475793 0.950000 -v 0.363549 5.475793 0.877686 -v -0.877686 5.475793 -0.363549 -v 0.363549 5.475793 -0.877686 -v 0.000000 5.475793 -0.950000 -v 0.671751 5.475793 0.671751 -v -0.049497 0.760250 -0.049497 -v -0.049497 6.247500 -0.049497 -v 0.000000 6.247500 -0.070000 -v 0.000000 0.760250 -0.070000 -v 0.070000 0.760250 -0.000000 -v 0.070000 6.247500 0.000000 -v 0.049497 6.247500 0.049497 -v 0.049497 0.760250 0.049497 -v 0.000000 6.247500 0.070000 -v 0.000000 0.760250 0.070000 -v -0.049497 6.247500 0.049497 -v -0.049497 0.760250 0.049497 -v -0.070000 6.247500 0.000000 -v -0.070000 0.760250 -0.000000 -v 0.049497 6.247500 -0.049497 -v 0.049497 0.760250 -0.049497 -v 0.000000 6.262662 -0.053589 -v 0.037893 6.262662 -0.037893 -v 0.053589 6.262662 0.000000 -v 0.037893 6.262662 0.037893 -v 0.000000 6.262662 0.053589 -v -0.037893 6.262662 0.037893 -v -0.053589 6.262662 0.000000 -v -0.037893 6.262662 -0.037893 -v 0.340478 0.760250 0.340503 -v 0.340478 6.247500 0.340503 -v 0.389975 6.247500 0.320000 -v 0.389975 0.760250 0.320000 -v 0.459975 0.760250 0.390000 -v 0.459975 6.247500 0.390000 -v 0.439473 6.247500 0.439497 -v 0.439473 0.760250 0.439497 -v 0.389975 6.247500 0.460000 -v 0.389975 0.760250 0.460000 -v 0.340478 6.247500 0.439497 -v 0.340478 0.760250 0.439497 -v 0.319975 6.247500 0.390000 -v 0.319975 0.760250 0.390000 -v 0.439473 6.247500 0.340503 -v 0.439473 0.760250 0.340503 -v 0.389975 6.262662 0.336411 -v 0.427868 6.262662 0.352107 -v 0.443564 6.262662 0.390000 -v 0.427868 6.262662 0.427893 -v 0.389975 6.262662 0.443589 -v 0.352082 6.262662 0.427893 -v 0.336386 6.262662 0.390000 -v 0.352082 6.262662 0.352107 -v 0.340503 0.760250 -0.439497 -v 0.340503 6.247500 -0.439497 -v 0.390000 6.247500 -0.460000 -v 0.390000 0.760250 -0.460000 -v 0.460000 0.760250 -0.390000 -v 0.460000 6.247500 -0.390000 -v 0.439497 6.247500 -0.340503 -v 0.439497 0.760250 -0.340503 -v 0.390000 6.247500 -0.320000 -v 0.390000 0.760250 -0.320000 -v 0.340503 6.247500 -0.340503 -v 0.340503 0.760250 -0.340503 -v 0.320000 6.247500 -0.390000 -v 0.320000 0.760250 -0.390000 -v 0.439497 6.247500 -0.439497 -v 0.439497 0.760250 -0.439497 -v 0.390000 6.262662 -0.443589 -v 0.427893 6.262662 -0.427893 -v 0.443589 6.262662 -0.390000 -v 0.427893 6.262662 -0.352107 -v 0.390000 6.262662 -0.336411 -v 0.352107 6.262662 -0.352107 -v 0.336411 6.262662 -0.390000 -v 0.352107 6.262662 -0.427893 -v -0.439497 0.760250 0.340503 -v -0.439497 6.247500 0.340503 -v -0.390000 6.247500 0.320000 -v -0.390000 0.760250 0.320000 -v -0.320000 0.760250 0.390000 -v -0.320000 6.247500 0.390000 -v -0.340503 6.247500 0.439497 -v -0.340503 0.760250 0.439497 -v -0.390000 6.247500 0.460000 -v -0.390000 0.760250 0.460000 -v -0.439497 6.247500 0.439497 -v -0.439497 0.760250 0.439497 -v -0.460000 6.247500 0.390000 -v -0.460000 0.760250 0.390000 -v -0.340503 6.247500 0.340503 -v -0.340503 0.760250 0.340503 -v -0.390000 6.262662 0.336411 -v -0.352107 6.262662 0.352107 -v -0.336411 6.262662 0.390000 -v -0.352107 6.262662 0.427893 -v -0.390000 6.262662 0.443589 -v -0.427893 6.262662 0.427893 -v -0.443589 6.262662 0.390000 -v -0.427893 6.262662 0.352107 -v -0.439497 0.760250 -0.439497 -v -0.439497 6.247500 -0.439497 -v -0.390000 6.247500 -0.460000 -v -0.390000 0.760250 -0.460000 -v -0.320000 0.760250 -0.390000 -v -0.320000 6.247500 -0.390000 -v -0.340503 6.247500 -0.340503 -v -0.340503 0.760250 -0.340503 -v -0.390000 6.247500 -0.320000 -v -0.390000 0.760250 -0.320000 -v -0.439497 6.247500 -0.340503 -v -0.439497 0.760250 -0.340503 -v -0.460000 6.247500 -0.390000 -v -0.460000 0.760250 -0.390000 -v -0.340503 6.247500 -0.439497 -v -0.340503 0.760250 -0.439497 -v -0.390000 6.262662 -0.443589 -v -0.352107 6.262662 -0.427893 -v -0.336411 6.262662 -0.390000 -v -0.352107 6.262662 -0.352107 -v -0.390000 6.262662 -0.336411 -v -0.427893 6.262662 -0.352107 -v -0.443589 6.262662 -0.390000 -v -0.427893 6.262662 -0.427893 -vt 0.946429 0.745614 -vt 0.928571 -0.000000 -vt 0.946429 -0.000000 -vt 0.964286 0.745614 -vt 0.964286 -0.000000 -vt 0.243141 0.848272 -vt 0.315152 0.677472 -vt 0.489001 0.748220 -vt 0.153396 0.744032 -vt 0.168856 0.780702 -vt 0.063286 0.780702 -vt 0.232243 0.798246 -vt 0.366071 0.666765 -vt 0.499900 0.798246 -vt 0.271985 0.890682 -vt 0.271985 0.705810 -vt 0.460158 0.705810 -vt 0.416991 0.919019 -vt 0.243141 0.848272 -vt 0.315152 0.677472 -vt 0.242430 0.747930 -vt 0.314857 0.919718 -vt 0.489713 0.848561 -vt 0.865451 0.786687 -vt 0.860065 0.788878 -vt 0.857834 0.783587 -vt 0.860435 0.788001 -vt 0.858727 0.786323 -vt 0.864558 0.783951 -vt 0.865451 0.786687 -vt 0.860065 0.788878 -vt 0.857834 0.783587 -vt 0.858727 0.786323 -vt 0.858727 0.783951 -vt 0.864558 0.786323 -vt 0.865451 0.786687 -vt 0.860065 0.788878 -vt 0.857834 0.783587 -vt 0.860435 0.782273 -vt 0.862850 0.782273 -vt 0.864558 0.783951 -vt 0.865451 0.786687 -vt 0.860065 0.788878 -vt 0.857834 0.783587 -vt 0.862850 0.782273 -vt 0.864558 0.783951 -vt 0.858727 0.786323 -vt 0.865451 0.786687 -vt 0.860065 0.788878 -vt 0.857834 0.783587 -vt 0.862850 0.782273 -vt 0.864558 0.783951 -vt 0.858727 0.786323 -vt 0.774162 0.989261 -vt 0.600217 0.918475 -vt 0.672267 0.747581 -vt 0.242704 0.848450 -vt 0.314971 0.677043 -vt 0.489439 0.748042 -vt 0.928571 0.763158 -vt 0.946429 0.745614 -vt 0.946429 0.763158 -vt 0.946429 0.763158 -vt 0.928571 0.745614 -vt 0.946429 0.745614 -vt 0.928571 0.763158 -vt 0.946429 0.745614 -vt 0.946429 0.763158 -vt 0.946429 0.763158 -vt 0.928571 0.745614 -vt 0.946429 0.745614 -vt 0.964286 0.745614 -vt 0.946429 -0.000000 -vt 0.964286 -0.000000 -vt 0.946429 0.745614 -vt 0.928571 -0.000000 -vt 0.964286 0.745614 -vt 0.946429 0.763158 -vt 0.946429 0.745614 -vt 0.964286 0.745614 -vt 0.946429 0.763158 -vt 0.946429 0.745614 -vt 0.946429 0.763158 -vt 0.964286 0.745614 -vt 0.946429 0.763158 -vt 0.946429 0.745614 -vt 0.964286 -0.000000 -vt 0.982143 0.745614 -vt 0.964286 0.745614 -vt 0.946429 0.745614 -vt 0.928571 0.745614 -vt 0.946429 -0.000000 -vt 1.000000 0.745614 -vt 0.982143 -0.000000 -vt 1.000000 0.000000 -vt 1.000000 0.000000 -vt 0.982143 0.745614 -vt 0.982143 -0.000000 -vt 1.000000 0.745614 -vt 0.982143 -0.000000 -vt 1.000000 0.000000 -vt 0.982143 0.745614 -vt 0.964286 -0.000000 -vt 0.946429 0.745614 -vt 0.946429 -0.000000 -vt 0.928571 -0.000000 -vt 0.982143 -0.000000 -vt 1.000000 0.745614 -vt 1.000000 0.000000 -vt 0.616071 0.719298 -vt 0.857143 0.736842 -vt 0.616071 0.736842 -vt 0.857143 0.684211 -vt 0.616071 0.666667 -vt 0.857143 0.666667 -vt 0.616071 0.701754 -vt 0.857143 0.701754 -vt 0.857143 0.666667 -vt 0.616071 0.684211 -vt 0.616071 0.666667 -vt 0.857143 0.719298 -vt 0.616071 0.736842 -vt 0.616071 0.719298 -vt 0.616071 0.701754 -vt 0.857143 0.684211 -vt 0.857143 0.701754 -vt 0.616071 0.666667 -vt 0.616071 0.684211 -vt 0.857143 0.684211 -vt 0.616071 0.701754 -vt 0.857143 0.719298 -vt 0.616071 0.719298 -vt 0.616071 0.736842 -vt 0.857143 0.719298 -vt 0.616071 0.701754 -vt 0.857143 0.684211 -vt 0.857143 0.701754 -vt 0.616071 0.666667 -vt 0.857143 0.666667 -vt 0.857143 0.719298 -vt 0.616071 0.736842 -vt 0.616071 0.719298 -vt 0.857143 0.684211 -vt 0.616071 0.701754 -vt 0.616071 0.684211 -vt 0.616071 0.684211 -vt 0.857143 0.666667 -vt 0.857143 0.684211 -vt 0.616071 0.736842 -vt 0.857143 0.719298 -vt 0.857143 0.736842 -vt 0.616071 0.719298 -vt 0.857143 0.701754 -vt 0.616071 0.684211 -vt 0.616071 0.701754 -vt 0.857143 0.684211 -vt 0.616071 0.666667 -vt 0.857143 0.666667 -vt 0.616071 0.701754 -vt 0.857143 0.701754 -vt 0.857143 0.719298 -vt 0.857143 0.736842 -vt 0.616071 0.719298 -vt 0.616071 0.684211 -vt 0.857143 0.701754 -vt 0.616071 0.701754 -vt 0.857143 0.719298 -vt 0.857143 0.701754 -vt 0.857143 0.666667 -vt 0.616071 0.736842 -vt 0.857143 0.736842 -vt 0.616071 0.719298 -vt 0.857143 0.719298 -vt 0.616071 0.736842 -vt 0.857143 0.666667 -vt 0.616071 0.666667 -vt 0.928571 0.745614 -vt 0.499130 0.798246 -vt 0.416991 0.919019 -vt 0.489001 0.848272 -vt 0.460158 0.890682 -vt 0.366071 0.928970 -vt 0.315152 0.919019 -vt 0.271985 0.890682 -vt 0.233013 0.798246 -vt 0.243141 0.748220 -vt 0.271985 0.705810 -vt 0.366071 0.667522 -vt 0.416991 0.677472 -vt 0.460158 0.705810 -vt 0.164839 0.800547 -vt 0.153396 0.817371 -vt 0.136271 0.828613 -vt 0.116071 0.832561 -vt 0.095871 0.828613 -vt 0.078747 0.817372 -vt 0.067304 0.800547 -vt 0.067304 0.760856 -vt 0.078747 0.744032 -vt 0.095871 0.732790 -vt 0.116071 0.728843 -vt 0.136271 0.732790 -vt 0.164839 0.760856 -vt 0.489713 0.848561 -vt 0.460703 0.891217 -vt 0.417285 0.919718 -vt 0.366071 0.929726 -vt 0.314857 0.919718 -vt 0.271440 0.891217 -vt 0.242430 0.848561 -vt 0.242430 0.747930 -vt 0.271440 0.705275 -vt 0.314857 0.676773 -vt 0.417285 0.676773 -vt 0.460703 0.705275 -vt 0.489713 0.747930 -vt 0.489001 0.748220 -vt 0.499130 0.798246 -vt 0.489001 0.848272 -vt 0.460158 0.890682 -vt 0.416991 0.919019 -vt 0.366071 0.928970 -vt 0.315152 0.919019 -vt 0.243141 0.848272 -vt 0.233013 0.798246 -vt 0.243141 0.748220 -vt 0.315152 0.677472 -vt 0.366071 0.667522 -vt 0.416991 0.677472 -vt 0.489001 0.748220 -vt 0.499130 0.798246 -vt 0.489001 0.848272 -vt 0.460158 0.890682 -vt 0.366071 0.928970 -vt 0.315152 0.919019 -vt 0.271985 0.890682 -vt 0.233013 0.798246 -vt 0.243141 0.748220 -vt 0.271985 0.705810 -vt 0.366071 0.667522 -vt 0.416991 0.677472 -vt 0.460158 0.705810 -vt 0.499900 0.798246 -vt 0.417285 0.676773 -vt 0.489713 0.747930 -vt 0.460703 0.705275 -vt 0.366071 0.666765 -vt 0.314857 0.676773 -vt 0.271440 0.705275 -vt 0.232243 0.798246 -vt 0.242430 0.848561 -vt 0.271440 0.891217 -vt 0.366071 0.929726 -vt 0.417285 0.919718 -vt 0.460703 0.891216 -vt 0.860065 0.781396 -vt 0.863220 0.781396 -vt 0.865451 0.783587 -vt 0.863220 0.788878 -vt 0.857834 0.786687 -vt 0.858727 0.783951 -vt 0.860435 0.782273 -vt 0.862850 0.782273 -vt 0.864558 0.786323 -vt 0.862850 0.788001 -vt 0.860065 0.781396 -vt 0.863220 0.781396 -vt 0.865451 0.783587 -vt 0.863220 0.788878 -vt 0.857834 0.786687 -vt 0.860435 0.782273 -vt 0.862850 0.782273 -vt 0.864558 0.783951 -vt 0.862850 0.788001 -vt 0.860435 0.788001 -vt 0.860065 0.781396 -vt 0.863220 0.781396 -vt 0.865451 0.783587 -vt 0.863220 0.788878 -vt 0.857834 0.786687 -vt 0.864558 0.786323 -vt 0.862850 0.788001 -vt 0.860435 0.788001 -vt 0.858727 0.786323 -vt 0.858727 0.783951 -vt 0.860065 0.781396 -vt 0.863220 0.781396 -vt 0.865451 0.783587 -vt 0.863220 0.788878 -vt 0.857834 0.786687 -vt 0.864558 0.786323 -vt 0.862850 0.788001 -vt 0.860435 0.788001 -vt 0.858727 0.783951 -vt 0.860435 0.782273 -vt 0.860065 0.781396 -vt 0.863220 0.781396 -vt 0.865451 0.783587 -vt 0.863220 0.788878 -vt 0.857834 0.786687 -vt 0.864558 0.786323 -vt 0.862850 0.788001 -vt 0.860435 0.788001 -vt 0.858727 0.783951 -vt 0.860435 0.782273 -vt 0.846212 0.818368 -vt 0.856346 0.868421 -vt 0.846212 0.918474 -vt 0.817353 0.960908 -vt 0.723214 0.999217 -vt 0.672267 0.989261 -vt 0.629076 0.960908 -vt 0.590083 0.868421 -vt 0.600217 0.818368 -vt 0.629076 0.775934 -vt 0.723214 0.737625 -vt 0.774162 0.747581 -vt 0.817353 0.775934 -vt 0.499603 0.798246 -vt 0.489439 0.848450 -vt 0.460492 0.891010 -vt 0.417172 0.919448 -vt 0.366071 0.929435 -vt 0.314971 0.919448 -vt 0.271650 0.891010 -vt 0.232540 0.798246 -vt 0.242704 0.748042 -vt 0.271650 0.705481 -vt 0.366071 0.667057 -vt 0.417172 0.677043 -vt 0.460493 0.705481 -vt 0.928571 0.745614 -vt 0.928571 0.763158 -vt 0.928571 0.745614 -vt 0.928571 0.763158 -vt 0.928571 0.745614 -vt 0.964286 0.763158 -vt 0.964286 0.763158 -vt 0.964286 0.763158 -vt 0.964286 0.763158 -vt 0.928571 -0.000000 -vt 1.000000 0.745614 -vt 0.964286 0.745614 -vt 0.928571 0.745614 -vt 0.982143 0.745614 -vt 0.616071 0.684211 -vt 0.857143 0.736842 -vt 0.857143 0.666667 -vt 0.857143 0.701754 -vt 0.857143 0.736842 -vt 0.616071 0.684211 -vt 0.857143 0.736842 -vt 0.616071 0.666667 -vt 0.616071 0.736842 -vt 0.857143 0.684211 -vt 0.616071 0.719298 -vt 0.616071 0.666667 -vt 0.857143 0.736842 -vt 0.642857 0.368421 -vt 0.589286 0.114035 -vt 0.642857 0.114035 -vt 0.589286 0.368421 -vt 0.535714 0.114035 -vt 0.535714 0.368421 -vt 0.482143 0.114035 -vt 0.482143 0.368421 -vt 0.428571 0.114035 -vt 0.428571 0.368421 -vt 0.375000 0.114035 -vt 0.375000 0.368421 -vt 0.321429 0.114035 -vt 0.321429 0.368421 -vt 0.267857 0.114035 -vt 0.267857 0.368421 -vt 0.214286 0.114035 -vt 0.214286 0.368421 -vt 0.160714 0.114035 -vt 0.160714 0.368421 -vt 0.107143 0.114035 -vt 0.107143 0.368421 -vt 0.053571 0.114035 -vt 0.053571 0.368421 -vt 0.000000 0.114035 -vt 0.857143 0.368421 -vt 0.803571 0.114035 -vt 0.857143 0.114035 -vt 0.803571 0.368421 -vt 0.750000 0.114035 -vt 0.750000 0.368421 -vt 0.696429 0.114035 -vt 0.696429 0.368421 -vt 0.696429 0.035088 -vt 0.642857 0.061404 -vt 0.642857 0.035088 -vt 0.750000 0.061404 -vt 0.696429 0.061404 -vt 0.803571 0.035088 -vt 0.750000 0.035088 -vt 0.857143 0.035088 -vt 0.803571 0.061404 -vt 0.000000 0.035088 -vt 0.053571 0.061404 -vt -0.000000 0.061404 -vt 0.053571 0.035088 -vt 0.107143 0.061404 -vt 0.160714 0.035088 -vt 0.107143 0.035088 -vt 0.214286 0.035088 -vt 0.160714 0.061404 -vt 0.267857 0.035088 -vt 0.214286 0.061404 -vt 0.321429 0.061404 -vt 0.267857 0.061404 -vt 0.375000 0.035088 -vt 0.321429 0.035088 -vt 0.428571 0.035088 -vt 0.375000 0.061404 -vt 0.482143 0.035088 -vt 0.428571 0.061404 -vt 0.535714 0.061404 -vt 0.482143 0.061404 -vt 0.589286 0.035088 -vt 0.535714 0.035088 -vt 0.642857 0.035088 -vt 0.696429 0.000000 -vt 0.696429 0.035088 -vt 0.160714 0.035088 -vt 0.214286 0.000000 -vt 0.214286 0.035088 -vt 0.428571 0.035088 -vt 0.482143 0.000000 -vt 0.482143 0.035088 -vt 0.053571 0.035088 -vt 0.107143 0.000000 -vt 0.107143 0.035088 -vt 0.321429 0.035088 -vt 0.375000 0.000000 -vt 0.375000 0.035088 -vt 0.589286 0.035088 -vt 0.642857 0.000000 -vt 0.803571 0.035088 -vt 0.857143 0.000000 -vt 0.857143 0.035088 -vt 0.267857 0.000000 -vt 0.267857 0.035088 -vt 0.535714 0.000000 -vt 0.535714 0.035088 -vt 0.160714 0.000000 -vt 0.428571 0.000000 -vt 0.750000 0.000000 -vt 0.750000 0.035088 -vt 0.000000 0.035088 -vt 0.053571 0.000000 -vt 0.321429 0.000000 -vt 0.589286 0.000000 -vt 0.803571 0.000000 -vt 0.589286 0.061404 -vt 0.321429 0.614035 -vt 0.267857 0.666667 -vt 0.267857 0.614035 -vt 0.589286 0.614035 -vt 0.535714 0.666667 -vt 0.535714 0.614035 -vt 0.750000 0.614035 -vt 0.803571 0.666667 -vt 0.750000 0.666667 -vt 0.214286 0.614035 -vt 0.160714 0.666667 -vt 0.160714 0.614035 -vt 0.482143 0.614035 -vt 0.428571 0.666667 -vt 0.428571 0.614035 -vt 0.696429 0.614035 -vt 0.642857 0.666667 -vt 0.642857 0.614035 -vt 0.107143 0.614035 -vt 0.053571 0.666667 -vt 0.053571 0.614035 -vt 0.375000 0.614035 -vt 0.321429 0.666667 -vt 0.589286 0.666667 -vt 0.857143 0.614035 -vt 0.803571 0.614035 -vt 0.214286 0.666667 -vt 0.482143 0.666667 -vt 0.696429 0.666667 -vt 0.107143 0.666667 -vt 0.375000 0.666667 -vt 0.000000 0.666667 -vt 0.000000 0.614035 -vt 0.919643 0.780702 -vt 0.910714 0.789474 -vt 0.910714 0.780702 -vt 0.928571 0.789474 -vt 0.919643 0.789474 -vt 0.866071 0.780702 -vt 0.857143 0.789474 -vt 0.857143 0.780702 -vt 0.875000 0.789474 -vt 0.866071 0.789474 -vt 0.883929 0.780702 -vt 0.875000 0.780702 -vt 0.892857 0.789474 -vt 0.883929 0.789474 -vt 0.901786 0.780702 -vt 0.892857 0.780702 -vt 0.901786 0.789474 -vt 0.892857 -0.000000 -vt 0.901786 -0.000000 -vt 0.910714 -0.000000 -vt 0.928571 0.780702 -vt 0.919643 -0.000000 -vt 0.928571 0.000000 -vt 0.857143 -0.000000 -vt 0.866071 -0.000000 -vt 0.875000 -0.000000 -vt 0.883929 -0.000000 -vt 0.696429 0.491228 -vt 0.642857 0.368421 -vt 0.696429 0.368421 -vt 0.750000 0.491228 -vt 0.750000 0.368421 -vt 0.803571 0.491228 -vt 0.803571 0.368421 -vt 0.857143 0.491228 -vt 0.857143 0.368421 -vt 0.053571 0.491228 -vt -0.000000 0.368421 -vt 0.053571 0.368421 -vt 0.107143 0.491228 -vt 0.107143 0.368421 -vt 0.160714 0.491228 -vt 0.160714 0.368421 -vt 0.214286 0.491228 -vt 0.214286 0.368421 -vt 0.267857 0.491228 -vt 0.267857 0.368421 -vt 0.321429 0.491228 -vt 0.321429 0.368421 -vt 0.375000 0.491228 -vt 0.375000 0.368421 -vt 0.428571 0.491228 -vt 0.428571 0.368421 -vt 0.482143 0.491228 -vt 0.482143 0.368421 -vt 0.535714 0.491228 -vt 0.535714 0.368421 -vt 0.589286 0.491228 -vt 0.589286 0.368421 -vt 0.642857 0.491228 -vt 0.642857 0.614035 -vt 0.589286 0.491228 -vt 0.642857 0.491228 -vt 0.589286 0.614035 -vt 0.535714 0.491228 -vt 0.535714 0.614035 -vt 0.482143 0.491228 -vt 0.482143 0.614035 -vt 0.428571 0.491228 -vt 0.428571 0.614035 -vt 0.375000 0.491228 -vt 0.375000 0.614035 -vt 0.321429 0.491228 -vt 0.321429 0.614035 -vt 0.267857 0.491228 -vt 0.267857 0.614035 -vt 0.214286 0.491228 -vt 0.214286 0.614035 -vt 0.160714 0.491228 -vt 0.160714 0.614035 -vt 0.107143 0.491228 -vt 0.107143 0.614035 -vt 0.053571 0.491228 -vt 0.053571 0.614035 -vt 0.000000 0.491228 -vt 0.857143 0.614035 -vt 0.803571 0.491228 -vt 0.857143 0.491228 -vt 0.803571 0.614035 -vt 0.750000 0.491228 -vt 0.750000 0.614035 -vt 0.696429 0.491228 -vt 0.696429 0.614035 -vt 0.107143 0.114035 -vt 0.160714 0.061404 -vt 0.160714 0.114035 -vt 0.642857 0.114035 -vt 0.696429 0.061404 -vt 0.696429 0.114035 -vt 0.482143 0.114035 -vt 0.535714 0.061404 -vt 0.535714 0.114035 -vt 0.053571 0.114035 -vt 0.107143 0.061404 -vt 0.428571 0.114035 -vt 0.482143 0.061404 -vt -0.000000 0.114035 -vt 0.053571 0.061404 -vt 0.375000 0.114035 -vt 0.428571 0.061404 -vt 0.803571 0.114035 -vt 0.857143 0.061404 -vt 0.857143 0.114035 -vt 0.321429 0.114035 -vt 0.375000 0.061404 -vt 0.750000 0.114035 -vt 0.803571 0.061404 -vt 0.267857 0.114035 -vt 0.321429 0.061404 -vt 0.750000 0.061404 -vt 0.214286 0.114035 -vt 0.267857 0.061404 -vt 0.214286 0.061404 -vt 0.589286 0.061404 -vt 0.589286 0.114035 -vt 0.642857 0.061404 -vt 0.164839 0.760856 -vt 0.197462 0.700739 -vt 0.222413 0.737426 -vt 0.136271 0.732790 -vt 0.116071 0.667617 -vt 0.160120 0.676225 -vt 0.095871 0.732790 -vt 0.034681 0.700739 -vt 0.072023 0.676225 -vt 0.067304 0.760856 -vt 0.000968 0.780702 -vt 0.009729 0.737426 -vt 0.067304 0.800547 -vt 0.034681 0.860664 -vt 0.009729 0.823977 -vt 0.095871 0.828613 -vt 0.116071 0.893786 -vt 0.072023 0.885178 -vt 0.136271 0.828613 -vt 0.197462 0.860664 -vt 0.160120 0.885178 -vt 0.116071 0.728843 -vt 0.153396 0.744032 -vt 0.078747 0.744032 -vt 0.063286 0.780702 -vt 0.078747 0.817372 -vt 0.116071 0.832561 -vt 0.164839 0.800547 -vt 0.153396 0.817371 -vt 0.231175 0.780702 -vt 0.168856 0.780702 -vt 0.222413 0.823977 -vt 0.919643 0.780702 -vt 0.910714 -0.000000 -vt 0.919643 0.000000 -vt 0.892857 0.780702 -vt 0.883929 -0.000000 -vt 0.892857 -0.000000 -vt 0.883929 0.780702 -vt 0.875000 -0.000000 -vt 0.875000 0.780702 -vt 0.866071 -0.000000 -vt 0.866071 0.780702 -vt 0.857143 0.000000 -vt 0.928571 0.780702 -vt 0.928571 0.000000 -vt 0.910714 0.780702 -vt 0.901786 -0.000000 -vt 0.901786 0.780702 -vt 0.901786 0.789474 -vt 0.892857 0.789474 -vt 0.883929 0.789474 -vt 0.875000 0.789474 -vt 0.866071 0.789474 -vt 0.857143 0.789474 -vt 0.857143 0.780702 -vt 0.928571 0.789474 -vt 0.919643 0.789474 -vt 0.910714 0.789474 -vt 0.919643 0.780702 -vt 0.910714 -0.000000 -vt 0.919643 -0.000000 -vt 0.892857 0.780702 -vt 0.883929 -0.000000 -vt 0.892857 -0.000000 -vt 0.883929 0.780702 -vt 0.875000 -0.000000 -vt 0.875000 0.780702 -vt 0.866071 -0.000000 -vt 0.866071 0.780702 -vt 0.857143 -0.000000 -vt 0.928571 0.780702 -vt 0.928571 0.000000 -vt 0.910714 0.780702 -vt 0.901786 -0.000000 -vt 0.901786 0.780702 -vt 0.910714 0.789474 -vt 0.901786 0.789474 -vt 0.892857 0.789474 -vt 0.883929 0.789474 -vt 0.875000 0.789474 -vt 0.866071 0.789474 -vt 0.857143 0.789474 -vt 0.857143 0.780702 -vt 0.928571 0.789474 -vt 0.919643 0.789474 -vt 0.919643 0.780702 -vt 0.910714 -0.000000 -vt 0.919643 -0.000000 -vt 0.892857 0.780702 -vt 0.883929 -0.000000 -vt 0.892857 -0.000000 -vt 0.883929 0.780702 -vt 0.875000 -0.000000 -vt 0.875000 0.780702 -vt 0.866071 -0.000000 -vt 0.866071 0.780702 -vt 0.857143 -0.000000 -vt 0.928571 0.780702 -vt 0.928571 0.000000 -vt 0.910714 0.780702 -vt 0.901786 -0.000000 -vt 0.901786 0.780702 -vt 0.910714 0.789474 -vt 0.901786 0.789474 -vt 0.892857 0.789474 -vt 0.883929 0.789474 -vt 0.875000 0.789474 -vt 0.866071 0.789474 -vt 0.857143 0.789474 -vt 0.857143 0.780702 -vt 0.928571 0.789474 -vt 0.919643 0.789474 -vt 0.919643 0.780702 -vt 0.910714 -0.000000 -vt 0.919643 -0.000000 -vt 0.892857 0.780702 -vt 0.883929 -0.000000 -vt 0.892857 -0.000000 -vt 0.883929 0.780702 -vt 0.875000 -0.000000 -vt 0.875000 0.780702 -vt 0.866071 -0.000000 -vt 0.866071 0.780702 -vt 0.857143 -0.000000 -vt 0.928571 0.780702 -vt 0.928571 0.000000 -vt 0.910714 0.780702 -vt 0.901786 -0.000000 -vt 0.901786 0.780702 -vt 0.910714 0.789474 -vt 0.901786 0.789474 -vt 0.892857 0.789474 -vt 0.883929 0.789474 -vt 0.875000 0.789474 -vt 0.866071 0.789474 -vt 0.857143 0.789474 -vt 0.857143 0.780702 -vt 0.928571 0.789474 -vt 0.919643 0.789474 -vt 0.000000 0.368421 -vt 0.857143 0.061404 -vt 0.000000 0.000000 -vt 0.857143 0.666667 -vt -0.000000 0.491228 -vt 0.000000 0.614035 -vt -0.000000 0.061404 +mtllib breeding_reactor.mtl +o Cube_Cube.001 +v -0.437500 0.437500 -0.437500 +v -0.437500 0.437500 -0.500000 +v -0.437500 2.687500 -0.500000 +v -0.437500 2.750000 -0.500000 +v -0.437500 2.750000 -0.437500 +v 0.437500 0.437500 -0.500000 +v 0.437500 2.687500 -0.500000 +v 0.437500 2.750000 -0.500000 +v 0.437500 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.437500 -0.500000 +v 0.437500 0.000000 -0.437500 +v 0.437500 0.437500 -0.437500 +v 0.500000 0.000000 -0.437500 +v 0.500000 0.437500 -0.437500 +v 0.437500 0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 0.500000 -0.437500 +v 0.437500 0.500000 -0.437500 +v 0.500000 2.687500 -0.500000 +v 0.500000 2.750000 -0.500000 +v 0.500000 2.687500 -0.437500 +v 0.500000 2.750000 -0.437500 +v 0.437500 2.750000 -0.437500 +v 0.500000 0.437500 0.437500 +v 0.500000 2.687500 0.437500 +v 0.500000 2.750000 0.437500 +v 0.500000 0.000000 0.437500 +v 0.500000 0.000000 0.500000 +v 0.500000 0.437500 0.500000 +v 0.437500 0.000000 0.437500 +v 0.437500 0.000000 0.500000 +v 0.500000 0.500000 0.437500 +v 0.500000 0.500000 0.500000 +v 0.437500 0.500000 0.500000 +v 0.500000 2.687500 0.500000 +v 0.500000 2.750000 0.500000 +v 0.437500 2.750000 0.500000 +v 0.437500 2.687499 -0.437500 +v 0.437500 0.437500 0.437500 +v 0.437500 0.437500 0.500000 +v 0.437500 2.687500 0.500000 +v 0.437500 2.750000 0.437500 +v -0.437500 0.437500 0.500000 +v -0.437500 2.687500 0.500000 +v -0.437500 2.750000 0.500000 +v -0.437500 2.750000 0.437500 +v -0.437500 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.437500 0.500000 +v -0.437500 0.000000 0.437500 +v -0.500000 0.000000 0.437500 +v -0.437500 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 2.687499 0.500000 +v -0.500000 2.687499 0.437500 +v -0.437500 2.687499 0.437500 +v -0.500000 2.749999 0.500000 +v -0.500000 2.749999 0.437500 +v 0.437500 0.500000 0.437500 +v 0.437500 2.687499 0.437500 +v -0.437500 0.437500 0.437500 +v -0.500000 0.437500 0.437500 +v -0.500000 0.500000 0.437500 +v -0.500000 0.437500 -0.437500 +v -0.500000 2.687499 -0.437500 +v -0.500000 2.749999 -0.437500 +v -0.500000 0.000000 -0.437500 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.437500 -0.500000 +v -0.437500 0.000000 -0.437500 +v -0.437500 0.000000 -0.500000 +v -0.500000 0.500000 -0.437500 +v -0.500000 0.500000 -0.500000 +v -0.437500 0.500000 -0.500000 +v -0.437500 0.500000 -0.437500 +v -0.500000 2.687499 -0.500000 +v -0.437500 2.687499 -0.437500 +v -0.500000 2.749999 -0.500000 +v -0.437500 0.500000 0.437500 +v -0.000000 1.250000 -0.482963 +v 0.241481 1.250000 -0.418258 +v 0.418258 1.250000 -0.241481 +v 0.482963 1.250000 0.000000 +v 0.418258 1.250000 0.241482 +v 0.241482 1.250000 0.418258 +v 0.000000 1.250000 0.482963 +v -0.241481 1.250000 0.418258 +v -0.418258 1.250000 0.241482 +v -0.482963 1.250000 0.000000 +v -0.418258 1.250000 -0.241481 +v -0.241482 1.250000 -0.418258 +v -0.000000 1.875000 -0.482963 +v 0.241481 1.875000 -0.418258 +v 0.418258 1.875000 -0.241481 +v 0.482963 1.875000 0.000000 +v 0.418258 1.875000 0.241482 +v 0.241482 1.875000 0.418258 +v 0.000000 1.875000 0.482963 +v -0.241481 1.875000 0.418258 +v -0.418258 1.875000 0.241482 +v -0.482963 1.875000 0.000000 +v -0.418258 1.875000 -0.241481 +v -0.241482 1.875000 -0.418258 +v -0.187500 0.625000 0.250000 +v -0.187500 3.250000 0.250000 +v -0.250000 0.625000 0.250000 +v -0.250000 3.250000 0.250000 +v -0.187500 0.625000 0.187500 +v -0.187500 3.250000 0.187500 +v -0.250000 0.625000 0.187500 +v -0.250000 3.250000 0.187500 +v -0.250000 0.625000 -0.187500 +v -0.250000 3.250000 -0.187500 +v -0.250000 0.625000 -0.250000 +v -0.250000 3.250000 -0.250000 +v -0.187500 0.625000 -0.187500 +v -0.187500 3.250000 -0.187500 +v -0.187500 0.625000 -0.250000 +v -0.187500 3.250000 -0.250000 +v 0.187500 0.625000 -0.250000 +v 0.187500 3.250000 -0.250000 +v 0.250000 0.625000 -0.250000 +v 0.250000 3.250000 -0.250000 +v 0.187500 0.625000 -0.187500 +v 0.187500 3.250000 -0.187500 +v 0.250000 0.625000 -0.187500 +v 0.250000 3.250000 -0.187500 +v 0.250000 0.625000 0.187500 +v 0.250000 3.249999 0.187500 +v 0.250000 0.625000 0.250000 +v 0.250000 3.249999 0.250000 +v 0.187500 0.625000 0.187500 +v 0.187500 3.249999 0.187500 +v 0.187500 0.625000 0.250000 +v 0.187500 3.249999 0.250000 +v 0.000000 0.625000 0.044194 +v 0.000000 3.250000 0.044194 +v -0.044194 0.625000 0.000000 +v -0.044194 3.250000 0.000000 +v 0.044194 0.625000 0.000000 +v 0.044194 3.250000 0.000000 +v 0.000000 0.625000 -0.044194 +v 0.000000 3.250000 -0.044194 +v -0.000000 2.750000 -0.482963 +v -0.000000 3.000000 -0.482963 +v 0.241481 2.750000 -0.418258 +v 0.241481 3.000000 -0.418258 +v 0.418258 2.750000 -0.241481 +v 0.418258 3.000000 -0.241481 +v 0.482963 2.750000 0.000000 +v 0.482963 3.000000 0.000000 +v 0.418258 2.750000 0.241482 +v 0.418258 3.000000 0.241482 +v 0.241482 2.750000 0.418258 +v 0.241482 3.000000 0.418258 +v 0.000000 2.750000 0.482963 +v 0.000000 3.000000 0.482963 +v -0.241481 2.750000 0.418258 +v -0.241481 3.000000 0.418258 +v -0.418258 2.750000 0.241482 +v -0.418258 3.000000 0.241482 +v -0.482963 2.750000 0.000000 +v -0.482963 3.000000 0.000000 +v -0.418258 2.750000 -0.241481 +v -0.418258 3.000000 -0.241481 +v -0.241482 2.750000 -0.418258 +v -0.241482 3.000000 -0.418258 +v -0.000000 0.875000 -0.482963 +v -0.000000 2.500000 -0.482963 +v 0.241481 0.875000 -0.418258 +v 0.241481 2.500000 -0.418258 +v 0.418258 0.875000 -0.241481 +v 0.418258 2.500000 -0.241481 +v 0.482963 0.875000 0.000000 +v 0.482963 2.500000 0.000000 +v 0.418258 0.875000 0.241482 +v 0.418258 2.500000 0.241482 +v 0.241482 0.875000 0.418258 +v 0.241482 2.500000 0.418258 +v 0.000000 0.875000 0.482963 +v 0.000000 2.500000 0.482963 +v -0.241481 0.875000 0.418258 +v -0.241481 2.500000 0.418258 +v -0.418258 0.875000 0.241482 +v -0.418258 2.500000 0.241482 +v -0.482963 0.875000 0.000000 +v -0.482963 2.500000 0.000000 +v -0.418258 0.875000 -0.241481 +v -0.418258 2.500000 -0.241481 +v -0.241482 0.875000 -0.418258 +v -0.241482 2.500000 -0.418258 +v -0.000000 1.250000 -0.482963 +v 0.241481 1.250000 -0.418258 +v 0.418258 1.250000 -0.241481 +v 0.482963 1.250000 0.000000 +v 0.418258 1.250000 0.241482 +v 0.241482 1.250000 0.418258 +v 0.000000 1.250000 0.482963 +v -0.241481 1.250000 0.418258 +v -0.418258 1.250000 0.241482 +v -0.482963 1.250000 0.000000 +v -0.418258 1.250000 -0.241481 +v -0.241482 1.250000 -0.418258 +v -0.000000 1.875000 -0.482963 +v 0.241481 1.875000 -0.418258 +v 0.418258 1.875000 -0.241481 +v 0.482963 1.875000 0.000000 +v 0.418258 1.875000 0.241482 +v 0.241482 1.875000 0.418258 +v 0.000000 1.875000 0.482963 +v -0.241481 1.875000 0.418258 +v -0.418258 1.875000 0.241482 +v -0.482963 1.875000 0.000000 +v -0.418258 1.875000 -0.241481 +v -0.241482 1.875000 -0.418258 +v -0.000000 0.375000 -0.482963 +v -0.000000 0.625000 -0.482963 +v 0.241481 0.375000 -0.418258 +v 0.241481 0.625000 -0.418258 +v 0.418258 0.375000 -0.241481 +v 0.418258 0.625000 -0.241481 +v 0.482963 0.375000 0.000000 +v 0.482963 0.625000 0.000000 +v 0.418258 0.375000 0.241482 +v 0.418258 0.625000 0.241482 +v 0.241482 0.375000 0.418258 +v 0.241482 0.625000 0.418258 +v 0.000000 0.375000 0.482963 +v 0.000000 0.625000 0.482963 +v -0.241481 0.375000 0.418258 +v -0.241481 0.625000 0.418258 +v -0.418258 0.375000 0.241482 +v -0.418258 0.625000 0.241482 +v -0.482963 0.375000 0.000000 +v -0.482963 0.625000 0.000000 +v -0.418258 0.375000 -0.241481 +v -0.418258 0.625000 -0.241481 +v -0.241482 0.375000 -0.418258 +v -0.241482 0.625000 -0.418258 +vt 0.196262 0.875000 +vt 0.327103 0.854167 +vt 0.327103 0.875000 +vt 0.196262 0.791667 +vt 0.327103 0.812500 +vt 0.196262 0.812500 +vt 0.196262 0.895833 +vt 0.327103 0.916667 +vt 0.196262 0.916667 +vt 0.327103 0.937500 +vt 0.196262 0.937500 +vt 0.196262 0.833333 +vt 0.196262 0.854167 +vt 0.327103 0.833333 +vt 0.196262 0.958333 +vt 0.327103 0.979167 +vt 0.196262 0.979167 +vt 0.327103 0.958333 +vt 0.177570 0.187500 +vt 0.168224 0.041667 +vt 0.177570 0.041667 +vt 0.168224 0.187500 +vt 0.158879 0.041667 +vt 0.158879 0.187500 +vt 0.149533 0.041667 +vt 0.186916 0.187500 +vt 0.186916 0.041667 +vt 0.168224 0.020833 +vt 0.168224 0.208333 +vt 0.158879 0.937500 +vt 0.158879 0.208333 +vt 0.149533 0.937500 +vt 0.149533 0.208333 +vt 0.177570 0.208333 +vt 0.168224 0.937500 +vt 0.186916 0.937500 +vt 0.177570 0.937500 +vt 0.168224 0.958333 +vt 0.158879 0.979167 +vt 0.158879 0.958333 +vt 0.196262 0.250000 +vt 0.327103 0.229167 +vt 0.327103 0.250000 +vt 0.196262 0.166667 +vt 0.327103 0.187500 +vt 0.196262 0.187500 +vt 0.196262 0.291667 +vt 0.327103 0.270833 +vt 0.327103 0.291667 +vt 0.327103 0.312500 +vt 0.196262 0.312500 +vt 0.196262 0.208333 +vt 0.196262 0.229167 +vt 0.327103 0.208333 +vt 0.196262 0.333333 +vt 0.327103 0.354167 +vt 0.196262 0.354167 +vt 0.327103 0.333333 +vt 0.130841 0.041667 +vt 0.121495 0.187500 +vt 0.121495 0.041667 +vt 0.112150 0.041667 +vt 0.112150 0.187500 +vt 0.102804 0.041667 +vt 0.140187 0.187500 +vt 0.140187 0.041667 +vt 0.121495 0.020833 +vt 0.130841 0.208333 +vt 0.121495 0.208333 +vt 0.112150 0.937500 +vt 0.112150 0.208333 +vt 0.102804 0.937500 +vt 0.102804 0.208333 +vt 0.121495 0.937500 +vt 0.140187 0.937500 +vt 0.130841 0.937500 +vt 0.121495 0.958333 +vt 0.112150 0.979167 +vt 0.112150 0.958333 +vt 0.196262 0.437500 +vt 0.327103 0.458333 +vt 0.196262 0.458333 +vt 0.196262 0.375000 +vt 0.327103 0.395833 +vt 0.196262 0.395833 +vt 0.196262 0.500000 +vt 0.327103 0.479167 +vt 0.327103 0.500000 +vt 0.327103 0.520833 +vt 0.196262 0.520833 +vt 0.196262 0.416667 +vt 0.327103 0.437500 +vt 0.327103 0.416667 +vt 0.196262 0.541667 +vt 0.327103 0.562500 +vt 0.196262 0.562500 +vt 0.327103 0.541667 +vt 0.084112 0.187500 +vt 0.074766 0.041667 +vt 0.084112 0.041667 +vt 0.074766 0.187500 +vt 0.065421 0.041667 +vt 0.065421 0.187500 +vt 0.056075 0.041667 +vt 0.093458 0.187500 +vt 0.093458 0.041667 +vt 0.074766 0.020833 +vt 0.074766 0.208333 +vt 0.065421 0.937500 +vt 0.065421 0.208333 +vt 0.056075 0.937500 +vt 0.056075 0.208333 +vt 0.084112 0.208333 +vt 0.074766 0.937500 +vt 0.093458 0.208333 +vt 0.084112 0.937500 +vt 0.074766 0.958333 +vt 0.065421 0.979167 +vt 0.065421 0.958333 +vt 0.196262 0.645833 +vt 0.327103 0.666667 +vt 0.196262 0.666667 +vt 0.196262 0.583333 +vt 0.327103 0.604167 +vt 0.196262 0.604167 +vt 0.196262 0.687500 +vt 0.327103 0.708333 +vt 0.196262 0.708333 +vt 0.327103 0.729167 +vt 0.196262 0.729167 +vt 0.196262 0.625000 +vt 0.327103 0.645833 +vt 0.327103 0.625000 +vt 0.196262 0.750000 +vt 0.327103 0.770833 +vt 0.196262 0.770833 +vt 0.327103 0.750000 +vt 0.037383 0.041667 +vt 0.028037 0.187500 +vt 0.028037 0.041667 +vt 0.018692 0.041667 +vt 0.018692 0.187500 +vt 0.009346 0.041667 +vt 0.046729 0.041667 +vt 0.037383 0.187500 +vt 0.028037 0.020833 +vt 0.028037 0.208333 +vt 0.018692 0.208333 +vt 0.028037 0.937500 +vt 0.018692 0.937500 +vt 0.009346 0.937500 +vt 0.009346 0.208333 +vt 0.037383 0.208333 +vt 0.046729 0.937500 +vt 0.037383 0.937500 +vt 0.018692 0.958333 +vt 0.028037 0.979167 +vt 0.018692 0.979167 +vt 0.028037 0.958333 +vt 0.981308 0.958333 +vt 0.971963 0.083333 +vt 0.981308 0.083333 +vt 0.971963 0.958333 +vt 0.962617 0.083333 +vt 0.962617 0.958333 +vt 0.953271 0.083333 +vt 0.990654 0.958333 +vt 0.990654 0.083333 +vt 0.971963 0.062500 +vt 0.962617 0.979167 +vt 0.971963 0.958333 +vt 0.962617 0.083333 +vt 0.971963 0.083333 +vt 0.962617 0.958333 +vt 0.962617 0.083333 +vt 0.962617 0.958333 +vt 0.953271 0.083333 +vt 0.981308 0.958333 +vt 0.981308 0.083333 +vt 0.962617 0.062500 +vt 0.962617 0.979167 +vt 0.981308 0.958333 +vt 0.971963 0.083333 +vt 0.981308 0.083333 +vt 0.971963 0.958333 +vt 0.962617 0.083333 +vt 0.962617 0.958333 +vt 0.953271 0.083333 +vt 0.990654 0.958333 +vt 0.990654 0.083333 +vt 0.971963 0.062500 +vt 0.962617 0.979167 +vt 0.981308 0.958333 +vt 0.971963 0.083333 +vt 0.981308 0.083333 +vt 0.971963 0.958333 +vt 0.962617 0.083333 +vt 0.962617 0.958333 +vt 0.953271 0.083333 +vt 0.990654 0.958333 +vt 0.990654 0.083333 +vt 0.971963 0.062500 +vt 0.962617 0.979167 +vt 0.981308 0.937500 +vt 0.971963 0.083333 +vt 0.981308 0.083333 +vt 0.971963 0.937500 +vt 0.962617 0.083333 +vt 0.962617 0.937500 +vt 0.953271 0.083333 +vt 0.990654 0.937500 +vt 0.990654 0.083333 +vt 0.962617 0.062500 +vt 0.971963 0.062500 +vt 0.962617 0.958333 +vt 0.931373 0.734111 +vt 0.931373 0.891909 +vt 0.809118 0.891909 +vt 0.834588 0.597798 +vt 0.798890 0.459569 +vt 0.834588 0.321339 +vt 0.929832 0.381477 +vt 0.929832 0.538896 +vt 0.808072 0.538896 +vt 0.833899 0.595815 +vt 0.798844 0.459857 +vt 0.833899 0.323899 +vt 0.904019 0.595876 +vt 0.833711 0.595876 +vt 0.833711 0.323185 +vt 0.807667 0.538321 +vt 0.807667 0.380081 +vt 0.930063 0.380081 +vt 0.933314 0.381363 +vt 0.933315 0.541399 +vt 0.808554 0.541399 +vt 0.834321 0.947544 +vt 0.798967 0.811493 +vt 0.834321 0.675442 +vt 0.327103 0.791667 +vt 0.327103 0.895833 +vt 0.149533 0.187500 +vt 0.158879 0.020833 +vt 0.186916 0.208333 +vt 0.168224 0.979167 +vt 0.177570 0.958333 +vt 0.327103 0.166667 +vt 0.196262 0.270833 +vt 0.130841 0.187500 +vt 0.102804 0.187500 +vt 0.112150 0.020833 +vt 0.140187 0.208333 +vt 0.121495 0.979167 +vt 0.130841 0.958333 +vt 0.327103 0.375000 +vt 0.196262 0.479167 +vt 0.056075 0.187500 +vt 0.065421 0.020833 +vt 0.093458 0.937500 +vt 0.074766 0.979167 +vt 0.084112 0.958333 +vt 0.327103 0.583333 +vt 0.327103 0.687500 +vt 0.009346 0.187500 +vt 0.046729 0.187500 +vt 0.018692 0.020833 +vt 0.046729 0.208333 +vt 0.037383 0.958333 +vt 0.953271 0.958333 +vt 0.962617 0.062500 +vt 0.971963 0.979167 +vt 0.953271 0.958333 +vt 0.962617 0.062500 +vt 0.962617 0.979167 +vt 0.953271 0.958333 +vt 0.962617 0.062500 +vt 0.971963 0.979167 +vt 0.953271 0.958333 +vt 0.962617 0.062500 +vt 0.971963 0.979167 +vt 0.953271 0.937500 +vt 0.971963 0.958333 +vt 0.905538 0.949667 +vt 0.870245 0.970808 +vt 0.834953 0.949667 +vt 0.799661 0.813010 +vt 0.809118 0.734111 +vt 0.834953 0.676353 +vt 0.870245 0.655211 +vt 0.905538 0.676353 +vt 0.940830 0.813010 +vt 0.870287 0.299955 +vt 0.905985 0.321339 +vt 0.932118 0.379762 +vt 0.941683 0.459569 +vt 0.932118 0.539376 +vt 0.905985 0.597798 +vt 0.870286 0.619183 +vt 0.808455 0.539375 +vt 0.808455 0.379762 +vt 0.904101 0.596515 +vt 0.868952 0.617605 +vt 0.833803 0.596515 +vt 0.798653 0.460186 +vt 0.808072 0.381477 +vt 0.833803 0.323858 +vt 0.868952 0.302768 +vt 0.904101 0.323858 +vt 0.939251 0.460187 +vt 0.868952 0.302867 +vt 0.904006 0.323899 +vt 0.929667 0.381362 +vt 0.939060 0.459857 +vt 0.929667 0.538353 +vt 0.904006 0.595815 +vt 0.868953 0.616848 +vt 0.808237 0.538353 +vt 0.808238 0.381362 +vt 0.807977 0.538250 +vt 0.798557 0.459530 +vt 0.807977 0.380811 +vt 0.868865 0.302092 +vt 0.939173 0.459530 +vt 0.904019 0.323184 +vt 0.929754 0.380810 +vt 0.929753 0.538250 +vt 0.868865 0.616969 +vt 0.868866 0.617441 +vt 0.833532 0.596241 +vt 0.798199 0.459201 +vt 0.833533 0.322161 +vt 0.868865 0.300961 +vt 0.904198 0.322161 +vt 0.939531 0.459201 +vt 0.930063 0.538321 +vt 0.904198 0.596241 +vt 0.906950 0.599976 +vt 0.870934 0.621417 +vt 0.834919 0.599976 +vt 0.798904 0.461381 +vt 0.808554 0.381363 +vt 0.834919 0.322786 +vt 0.870934 0.301345 +vt 0.906950 0.322786 +vt 0.942965 0.461381 +vt 0.869675 0.654395 +vt 0.905029 0.675442 +vt 0.930910 0.732944 +vt 0.940383 0.811493 +vt 0.930910 0.890042 +vt 0.905029 0.947544 +vt 0.869675 0.968591 +vt 0.808440 0.890042 +vt 0.808440 0.732944 +vt 0.598131 0.604167 +vt 0.560748 0.395833 +vt 0.598131 0.395833 +vt 0.635514 0.604167 +vt 0.635514 0.395833 +vt 0.672897 0.604167 +vt 0.672897 0.395833 +vt 0.710280 0.604167 +vt 0.710280 0.395833 +vt 0.747664 0.604167 +vt 0.747664 0.395833 +vt 0.785047 0.604167 +vt 0.785047 0.395833 +vt 0.373832 0.604167 +vt 0.336449 0.395833 +vt 0.373832 0.395833 +vt 0.411215 0.604167 +vt 0.411215 0.395833 +vt 0.448598 0.604167 +vt 0.448598 0.395833 +vt 0.485981 0.604167 +vt 0.485981 0.395833 +vt 0.523364 0.604167 +vt 0.523364 0.395833 +vt 0.560748 0.604167 +vt 0.560748 0.979167 +vt 0.523364 0.895833 +vt 0.560748 0.895833 +vt 0.523364 0.979167 +vt 0.485981 0.895833 +vt 0.485981 0.979167 +vt 0.448598 0.895833 +vt 0.448598 0.979167 +vt 0.411215 0.895833 +vt 0.411215 0.979167 +vt 0.373832 0.895833 +vt 0.373832 0.979167 +vt 0.336449 0.895833 +vt 0.785047 0.979167 +vt 0.747664 0.895833 +vt 0.785047 0.895833 +vt 0.747664 0.979167 +vt 0.710280 0.895833 +vt 0.710280 0.979167 +vt 0.672897 0.895833 +vt 0.672897 0.979167 +vt 0.635514 0.895833 +vt 0.635514 0.979167 +vt 0.598131 0.895833 +vt 0.598131 0.979167 +vt 0.560748 0.812500 +vt 0.523364 0.604167 +vt 0.560748 0.604167 +vt 0.523364 0.812500 +vt 0.485981 0.604167 +vt 0.485981 0.812500 +vt 0.448598 0.604167 +vt 0.448598 0.812500 +vt 0.411215 0.604167 +vt 0.411215 0.812500 +vt 0.373832 0.604167 +vt 0.373832 0.812500 +vt 0.336449 0.604167 +vt 0.785047 0.812500 +vt 0.747664 0.604167 +vt 0.785047 0.604167 +vt 0.747664 0.812500 +vt 0.710280 0.604167 +vt 0.710280 0.812500 +vt 0.672897 0.604167 +vt 0.672897 0.812500 +vt 0.635514 0.604167 +vt 0.635514 0.812500 +vt 0.598131 0.604167 +vt 0.598131 0.812500 +vt 0.598131 0.395833 +vt 0.560748 0.270833 +vt 0.598131 0.270833 +vt 0.635514 0.395833 +vt 0.635514 0.270833 +vt 0.672897 0.395833 +vt 0.672897 0.270833 +vt 0.710280 0.395833 +vt 0.710280 0.270833 +vt 0.747664 0.395833 +vt 0.747664 0.270833 +vt 0.785047 0.395833 +vt 0.785047 0.270833 +vt 0.373832 0.395833 +vt 0.336449 0.270833 +vt 0.373832 0.270833 +vt 0.411215 0.395833 +vt 0.411215 0.270833 +vt 0.448598 0.395833 +vt 0.448598 0.270833 +vt 0.485981 0.395833 +vt 0.485981 0.270833 +vt 0.523364 0.395833 +vt 0.523364 0.270833 +vt 0.560748 0.395833 +vt 0.560748 0.187500 +vt 0.523364 0.104167 +vt 0.560748 0.104167 +vt 0.523364 0.187500 +vt 0.485981 0.104167 +vt 0.485981 0.187500 +vt 0.448598 0.104167 +vt 0.448598 0.187500 +vt 0.411215 0.104167 +vt 0.411215 0.187500 +vt 0.373832 0.104167 +vt 0.373832 0.187500 +vt 0.336449 0.104167 +vt 0.785047 0.187500 +vt 0.747664 0.104167 +vt 0.785047 0.104167 +vt 0.747664 0.187500 +vt 0.710280 0.104167 +vt 0.710280 0.187500 +vt 0.672897 0.104167 +vt 0.672897 0.187500 +vt 0.635514 0.104167 +vt 0.635514 0.187500 +vt 0.598131 0.104167 +vt 0.598131 0.187500 +vt 0.336449 0.604167 +vt 0.336449 0.979167 +vt 0.336449 0.812500 +vt 0.336449 0.395833 +vt 0.336449 0.187500 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 -0.0000 1.0000 +vn -0.0000 1.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 -1.0000 0.0000 0.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.3827 0.0000 -0.9239 -vn 0.7071 0.0000 -0.7071 -vn 0.9239 0.0000 -0.3827 -vn 0.9239 -0.0000 0.3827 -vn 0.7071 -0.0000 0.7071 -vn 0.3827 -0.0000 0.9239 -vn -0.3827 -0.0000 0.9239 -vn -0.7071 -0.0000 0.7071 -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.2680 -0.7139 -0.6469 -vn 0.0000 -0.7139 -0.7002 -vn -0.4951 -0.7139 -0.4951 -vn -0.6469 -0.7139 -0.2680 -vn -0.7002 -0.7139 0.0000 -vn -0.6469 -0.7139 0.2680 -vn -0.4951 -0.7139 0.4951 -vn -0.2680 -0.7139 0.6469 -vn 0.0000 -0.7139 0.7002 -vn 0.2680 -0.7139 0.6469 -vn 0.4951 -0.7139 0.4951 -vn 0.6469 -0.7139 0.2680 -vn 0.7002 -0.7139 -0.0000 -vn 0.6469 -0.7139 -0.2680 -vn 0.4951 -0.7139 -0.4951 -vn 0.2680 -0.7139 -0.6469 -vn -0.6572 0.3688 -0.6572 -vn -0.0000 0.7345 -0.6786 -vn -0.0000 0.3688 -0.9295 -vn -0.6786 0.7345 0.0000 -vn -0.4798 0.7345 -0.4799 -vn -0.6572 0.3688 0.6572 -vn -0.9295 0.3689 0.0000 -vn 0.0000 0.7345 0.6786 -vn -0.4798 0.7345 0.4799 -vn 0.6572 0.3688 0.6572 -vn 0.0000 0.3688 0.9295 -vn 0.6786 0.7345 0.0000 -vn 0.4798 0.7345 0.4799 -vn 0.6572 0.3688 -0.6572 -vn 0.9295 0.3689 -0.0000 -vn 0.4798 0.7345 -0.4799 -vn 0.6573 0.3689 0.6572 -vn 0.6573 0.3689 -0.6572 -vn 0.4798 0.7345 -0.4798 -vn 0.4798 0.7345 0.4798 -vn -0.6573 0.3688 -0.6572 -vn 0.9295 0.3688 -0.0000 -vn -0.9295 0.3688 0.0000 -vn 0.4799 0.7345 -0.4798 -vn 0.4799 0.7345 0.4798 -vn -0.4799 0.7345 0.4798 -vn -0.4799 0.7345 -0.4798 -vn 0.6573 0.3688 0.6572 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 -0.5000 +vn -0.8660 0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn 0.5000 0.0000 0.8660 +vn 0.8660 0.0000 0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 -0.8660 +vn 0.0000 0.6532 -0.7571 +vn 0.3786 -0.6532 -0.6557 +vn 0.0000 -0.6532 -0.7571 +vn 0.3786 0.6532 -0.6557 +vn 0.6557 -0.6532 -0.3786 +vn 0.6557 0.6532 -0.3786 +vn 0.7571 -0.6532 0.0000 +vn 0.7571 0.6532 0.0000 +vn 0.6557 -0.6532 0.3786 +vn 0.6557 0.6532 0.3786 +vn 0.3786 -0.6532 0.6557 +vn 0.3786 0.6532 0.6557 +vn 0.0000 -0.6532 0.7571 +vn 0.0000 0.6532 0.7571 +vn -0.3786 -0.6532 0.6557 +vn -0.3786 0.6532 0.6557 +vn -0.6557 -0.6532 0.3786 +vn -0.6557 0.6532 0.3786 +vn -0.7571 -0.6532 0.0000 +vn -0.7571 0.6532 0.0000 +vn -0.6557 -0.6532 -0.3786 +vn -0.6557 0.6532 -0.3786 +vn -0.3786 -0.6532 -0.6557 +vn -0.3786 0.6532 -0.6557 +usemtl None s off -f 267/1/1 245/2/1 242/3/1 -f 266/4/2 242/3/2 241/5/2 -f 48/6/3 56/7/3 64/8/3 -f 110/9/4 112/10/4 104/11/4 -f 49/12/4 41/13/4 36/14/4 -f 66/15/3 87/16/3 73/17/3 -f 27/18/3 19/19/3 11/20/3 -f 20/21/3 12/22/3 4/23/3 -f 132/24/4 134/25/4 129/26/4 -f 140/27/3 139/28/3 143/29/3 -f 148/30/4 150/31/4 145/32/4 -f 156/33/3 155/34/3 159/35/3 -f 164/36/4 166/37/4 161/38/4 -f 173/39/3 172/40/3 171/41/3 -f 180/42/4 182/43/4 177/44/4 -f 188/45/3 187/46/3 191/47/3 -f 196/48/4 198/49/4 193/50/4 -f 204/51/3 203/52/3 207/53/3 -f 216/54/3 218/55/3 222/56/3 -f 236/57/4 210/58/4 231/59/4 -f 251/60/3 248/61/3 244/62/3 -f 249/63/3 247/64/3 243/65/3 -f 245/66/3 241/67/3 242/68/3 -f 255/69/3 254/70/3 253/71/3 -f 270/72/1 251/73/1 244/74/1 -f 272/75/5 252/76/5 251/73/5 -f 267/77/4 263/78/4 264/79/4 -f 259/80/4 265/81/4 271/82/4 -f 270/72/4 268/83/4 272/75/4 -f 262/84/4 257/85/4 261/86/4 -f 249/87/1 259/88/1 271/89/1 -f 265/90/5 249/87/5 271/89/5 -f 260/91/6 250/92/6 265/90/6 -f 260/93/2 243/94/2 247/95/2 -f 252/96/6 269/97/6 248/98/6 -f 262/99/1 255/100/1 253/101/1 -f 261/102/5 256/103/5 255/100/5 -f 256/103/6 258/104/6 254/105/6 -f 269/97/2 244/74/2 248/98/2 -f 258/104/2 253/106/2 254/105/2 -f 246/107/6 266/4/6 241/5/6 -f 264/108/5 246/107/5 245/109/5 -f 321/110/2 336/111/2 335/112/2 -f 327/113/4 335/114/4 336/115/4 -f 317/116/5 327/113/5 329/117/5 -f 330/118/4 318/119/4 320/120/4 -f 307/121/4 323/122/4 325/123/4 -f 312/124/2 307/121/2 325/123/2 -f 312/124/3 310/125/3 309/126/3 -f 323/127/5 310/125/5 314/128/5 -f 328/129/5 313/130/5 318/119/5 -f 313/130/3 315/131/3 311/132/3 -f 315/131/2 320/133/2 311/132/2 -f 317/116/3 331/134/3 321/110/3 -f 326/135/3 306/136/3 308/137/3 -f 306/136/5 332/138/5 319/139/5 -f 324/140/2 326/135/2 308/137/2 -f 324/140/4 332/141/4 333/142/4 -f 364/143/6 361/144/6 366/145/6 -f 360/146/4 339/147/4 338/148/4 -f 352/149/4 356/150/4 355/151/4 -f 350/152/1 345/153/1 356/150/1 -f 344/154/3 345/153/3 341/155/3 -f 346/156/6 352/157/6 355/158/6 -f 348/159/6 338/148/6 343/160/6 -f 342/161/3 348/159/3 343/160/3 -f 339/162/1 347/163/1 342/161/1 -f 353/164/3 357/165/3 351/166/3 -f 340/167/3 361/144/3 337/168/3 -f 366/145/4 349/169/4 364/143/4 -f 365/170/1 340/167/1 349/171/1 -f 357/165/1 367/172/1 351/166/1 -f 368/173/4 363/174/4 367/172/4 -f 362/175/6 353/164/6 363/176/6 -f 267/1/1 264/177/1 245/2/1 -f 266/4/2 267/1/2 242/3/2 -f 64/8/3 35/178/3 40/179/3 -f 35/178/3 34/180/3 40/179/3 -f 34/180/3 38/181/3 40/179/3 -f 40/179/3 42/182/3 48/6/3 -f 42/182/3 44/183/3 48/6/3 -f 44/183/3 46/184/3 48/6/3 -f 48/6/3 50/185/3 52/186/3 -f 52/186/3 54/187/3 48/6/3 -f 54/187/3 56/7/3 48/6/3 -f 56/7/3 58/188/3 60/189/3 -f 60/189/3 62/190/3 56/7/3 -f 62/190/3 64/8/3 56/7/3 -f 64/8/3 40/179/3 48/6/3 -f 112/10/4 97/191/4 98/192/4 -f 98/192/4 99/193/4 100/194/4 -f 100/194/4 101/195/4 102/196/4 -f 102/196/4 103/197/4 104/11/4 -f 104/11/4 105/198/4 106/199/4 -f 106/199/4 107/200/4 108/201/4 -f 108/201/4 109/202/4 110/9/4 -f 110/9/4 111/203/4 112/10/4 -f 112/10/4 98/192/4 104/11/4 -f 98/192/4 100/194/4 104/11/4 -f 100/194/4 102/196/4 104/11/4 -f 104/11/4 106/199/4 108/201/4 -f 108/201/4 110/9/4 104/11/4 -f 36/14/4 63/204/4 61/205/4 -f 61/205/4 59/206/4 57/207/4 -f 57/207/4 55/208/4 53/209/4 -f 53/209/4 51/210/4 49/12/4 -f 49/12/4 47/211/4 45/212/4 -f 45/212/4 43/213/4 41/13/4 -f 41/13/4 39/214/4 37/215/4 -f 37/215/4 33/216/4 36/14/4 -f 36/14/4 61/205/4 57/207/4 -f 57/207/4 53/209/4 36/14/4 -f 53/209/4 49/12/4 36/14/4 -f 49/12/4 45/212/4 41/13/4 -f 41/13/4 37/215/4 36/14/4 -f 73/17/3 113/217/3 70/218/3 -f 70/218/3 69/219/3 89/220/3 -f 89/220/3 85/221/3 81/222/3 -f 81/222/3 77/223/3 66/15/3 -f 66/15/3 65/224/3 93/225/3 -f 93/225/3 91/226/3 87/16/3 -f 87/16/3 83/227/3 79/228/3 -f 79/228/3 74/229/3 73/17/3 -f 73/17/3 70/218/3 89/220/3 -f 89/220/3 81/222/3 73/17/3 -f 81/222/3 66/15/3 73/17/3 -f 66/15/3 93/225/3 87/16/3 -f 87/16/3 79/228/3 73/17/3 -f 3/230/3 2/231/3 27/18/3 -f 2/231/3 31/232/3 27/18/3 -f 31/232/3 29/233/3 27/18/3 -f 27/18/3 25/234/3 19/19/3 -f 25/234/3 23/235/3 19/19/3 -f 23/235/3 21/236/3 19/19/3 -f 19/19/3 17/237/3 15/238/3 -f 15/238/3 13/239/3 19/19/3 -f 13/239/3 11/20/3 19/19/3 -f 11/20/3 9/240/3 7/241/3 -f 7/241/3 5/242/3 11/20/3 -f 5/242/3 3/230/3 11/20/3 -f 3/230/3 27/18/3 11/20/3 -f 4/23/3 1/243/3 28/244/3 -f 1/243/3 32/245/3 28/244/3 -f 32/245/3 30/246/3 28/244/3 -f 28/244/3 26/247/3 20/21/3 -f 26/247/3 24/248/3 20/21/3 -f 24/248/3 22/249/3 20/21/3 -f 20/21/3 18/250/3 16/251/3 -f 16/251/3 14/252/3 20/21/3 -f 14/252/3 12/22/3 20/21/3 -f 12/22/3 10/253/3 8/254/3 -f 8/254/3 6/255/3 12/22/3 -f 6/255/3 4/23/3 12/22/3 -f 4/23/3 28/244/3 20/21/3 -f 129/26/4 130/256/4 136/257/4 -f 136/257/4 131/258/4 132/24/4 -f 132/24/4 133/259/4 134/25/4 -f 134/25/4 135/260/4 129/26/4 -f 129/26/4 136/257/4 132/24/4 -f 139/28/3 138/261/3 137/262/3 -f 137/262/3 144/263/3 139/28/3 -f 144/263/3 143/29/3 139/28/3 -f 143/29/3 142/264/3 141/265/3 -f 141/265/3 140/27/3 143/29/3 -f 145/32/4 146/266/4 152/267/4 -f 152/267/4 147/268/4 145/32/4 -f 147/268/4 148/30/4 145/32/4 -f 148/30/4 149/269/4 150/31/4 -f 150/31/4 151/270/4 145/32/4 -f 155/34/3 154/271/3 153/272/3 -f 153/272/3 160/273/3 155/34/3 -f 160/273/3 159/35/3 155/34/3 -f 159/35/3 158/274/3 157/275/3 -f 157/275/3 156/33/3 159/35/3 -f 161/38/4 162/276/4 168/277/4 -f 168/277/4 163/278/4 164/36/4 -f 164/36/4 165/279/4 166/37/4 -f 166/37/4 167/280/4 161/38/4 -f 161/38/4 168/277/4 164/36/4 -f 171/41/3 170/281/3 169/282/3 -f 169/282/3 176/283/3 171/41/3 -f 176/283/3 175/284/3 171/41/3 -f 175/284/3 174/285/3 171/41/3 -f 174/285/3 173/39/3 171/41/3 -f 177/44/4 178/286/4 184/287/4 -f 184/287/4 179/288/4 180/42/4 -f 180/42/4 181/289/4 182/43/4 -f 182/43/4 183/290/4 177/44/4 -f 177/44/4 184/287/4 180/42/4 -f 187/46/3 186/291/3 191/47/3 -f 186/291/3 185/292/3 191/47/3 -f 185/292/3 192/293/3 191/47/3 -f 191/47/3 190/294/3 189/295/3 -f 189/295/3 188/45/3 191/47/3 -f 193/50/4 194/296/4 200/297/4 -f 200/297/4 195/298/4 196/48/4 -f 196/48/4 197/299/4 198/49/4 -f 198/49/4 199/300/4 193/50/4 -f 193/50/4 200/297/4 196/48/4 -f 203/52/3 202/301/3 207/53/3 -f 202/301/3 201/302/3 207/53/3 -f 201/302/3 208/303/3 207/53/3 -f 207/53/3 206/304/3 205/305/3 -f 205/305/3 204/51/3 207/53/3 -f 226/306/3 213/307/3 216/54/3 -f 213/307/3 214/308/3 216/54/3 -f 214/308/3 215/309/3 216/54/3 -f 216/54/3 212/310/3 211/311/3 -f 211/311/3 217/312/3 216/54/3 -f 217/312/3 218/55/3 216/54/3 -f 218/55/3 219/313/3 220/314/3 -f 220/314/3 221/315/3 218/55/3 -f 221/315/3 222/56/3 218/55/3 -f 222/56/3 223/316/3 224/317/3 -f 224/317/3 225/318/3 222/56/3 -f 225/318/3 226/306/3 222/56/3 -f 226/306/3 216/54/3 222/56/3 -f 231/59/4 239/319/4 238/320/4 -f 238/320/4 234/321/4 231/59/4 -f 234/321/4 233/322/4 231/59/4 -f 233/322/4 228/323/4 227/324/4 -f 227/324/4 240/325/4 233/322/4 -f 240/325/4 236/57/4 233/322/4 -f 236/57/4 235/326/4 210/58/4 -f 235/326/4 230/327/4 210/58/4 -f 230/327/4 229/328/4 210/58/4 -f 210/58/4 209/329/4 231/59/4 -f 209/329/4 237/330/4 231/59/4 -f 237/330/4 232/331/4 231/59/4 -f 231/59/4 233/322/4 236/57/4 -f 251/60/3 252/332/3 248/61/3 -f 249/63/3 250/333/3 247/64/3 -f 245/66/3 246/334/3 241/67/3 -f 255/69/3 256/335/3 254/70/3 -f 270/72/1 272/75/1 251/73/1 -f 272/75/5 268/336/5 252/76/5 -f 267/77/4 266/337/4 263/78/4 -f 259/80/4 260/338/4 265/81/4 -f 270/72/4 269/339/4 268/83/4 -f 262/84/4 258/340/4 257/85/4 -f 249/87/1 243/94/1 259/88/1 -f 265/90/5 250/92/5 249/87/5 -f 260/91/6 247/341/6 250/92/6 -f 260/93/2 259/88/2 243/94/2 -f 252/96/6 268/342/6 269/97/6 -f 262/99/1 261/102/1 255/100/1 -f 261/102/5 257/343/5 256/103/5 -f 256/103/6 257/343/6 258/104/6 -f 269/97/2 270/72/2 244/74/2 -f 258/104/2 262/344/2 253/106/2 -f 246/107/6 263/345/6 266/4/6 -f 264/108/5 263/345/5 246/107/5 -f 321/110/2 331/134/2 336/111/2 -f 327/113/4 334/346/4 335/114/4 -f 317/116/5 334/346/5 327/113/5 -f 330/118/4 328/129/4 318/119/4 -f 307/121/4 305/347/4 323/122/4 -f 312/124/2 309/126/2 307/121/2 -f 312/124/3 314/128/3 310/125/3 -f 323/127/5 305/348/5 310/125/5 -f 328/129/5 316/349/5 313/130/5 -f 313/130/3 316/349/3 315/131/3 -f 315/131/2 330/350/2 320/133/2 -f 317/116/3 329/117/3 331/134/3 -f 326/135/3 322/351/3 306/136/3 -f 306/136/5 322/351/5 332/138/5 -f 324/140/2 333/142/2 326/135/2 -f 324/140/4 319/352/4 332/141/4 -f 364/143/6 337/168/6 361/144/6 -f 360/146/4 358/353/4 339/147/4 -f 352/149/4 350/152/4 356/150/4 -f 350/152/1 341/155/1 345/153/1 -f 344/154/3 346/156/3 345/153/3 -f 346/156/6 344/154/6 352/157/6 -f 348/159/6 360/146/6 338/148/6 -f 342/161/3 347/163/3 348/159/3 -f 339/162/1 358/354/1 347/163/1 -f 353/164/3 354/355/3 357/165/3 -f 340/167/3 359/356/3 361/144/3 -f 366/145/4 365/357/4 349/169/4 -f 365/170/1 359/356/1 340/167/1 -f 357/165/1 368/173/1 367/172/1 -f 368/173/4 362/358/4 363/174/4 -f 362/175/6 354/355/6 353/164/6 +f 78/1/1 7/2/1 39/3/1 +f 78/4/2 24/5/2 5/6/2 +f 1/7/2 19/8/2 76/9/2 +f 76/9/3 16/10/3 75/11/3 +f 4/12/4 7/2/4 3/13/4 +f 5/6/3 8/14/3 4/12/3 +f 2/15/1 13/16/1 1/17/1 +f 75/11/4 6/18/4 2/15/4 +f 6/19/4 10/20/4 9/21/4 +f 11/22/5 14/23/5 10/20/5 +f 15/24/2 12/25/2 14/23/2 +f 13/26/6 9/21/6 12/27/6 +f 14/23/1 9/28/1 10/20/1 +f 6/19/4 17/29/4 11/22/4 +f 17/29/5 22/30/5 18/31/5 +f 11/22/5 18/31/5 15/24/5 +f 18/31/2 39/32/2 19/33/2 +f 16/34/4 20/35/4 17/29/4 +f 16/34/6 39/36/6 7/37/6 +f 21/38/3 24/39/3 23/40/3 +f 7/37/4 21/38/4 20/35/4 +f 20/35/5 23/40/5 22/30/5 +f 39/41/1 26/42/1 61/43/1 +f 39/44/6 43/45/6 24/46/6 +f 19/47/6 40/48/6 60/49/6 +f 19/47/3 33/50/3 18/51/3 +f 23/52/5 26/42/5 22/53/5 +f 24/46/3 27/54/3 23/52/3 +f 15/55/1 40/56/1 13/57/1 +f 18/51/5 25/58/5 15/55/5 +f 28/59/5 30/60/5 29/61/5 +f 30/60/2 32/62/2 29/61/2 +f 41/63/6 31/64/6 32/62/6 +f 40/65/4 28/59/4 31/66/4 +f 32/62/1 28/67/1 29/61/1 +f 30/60/5 33/68/5 34/69/5 +f 34/69/2 42/70/2 35/71/2 +f 30/60/2 35/71/2 41/63/2 +f 35/71/6 61/72/6 60/73/6 +f 33/68/5 36/74/5 34/69/5 +f 33/68/4 61/75/4 26/76/4 +f 37/77/3 43/78/3 38/79/3 +f 26/76/5 37/77/5 36/74/5 +f 36/74/2 38/79/2 42/70/2 +f 42/80/1 57/81/1 61/82/1 +f 61/83/4 47/84/4 43/85/4 +f 60/86/4 62/87/4 80/88/4 +f 60/86/3 53/89/3 35/90/3 +f 38/91/2 45/92/2 42/80/2 +f 43/85/3 46/93/3 38/91/3 +f 41/94/1 62/95/1 40/96/1 +f 35/90/2 44/97/2 41/94/2 +f 44/98/2 49/99/2 48/100/2 +f 50/101/6 52/102/6 49/99/6 +f 63/103/4 51/104/4 52/102/4 +f 62/105/5 48/100/5 51/106/5 +f 52/102/1 48/107/1 49/99/1 +f 44/98/2 54/108/2 50/101/2 +f 54/108/6 56/109/6 64/110/6 +f 50/101/6 64/110/6 63/103/6 +f 64/110/4 57/111/4 80/112/4 +f 53/113/2 55/114/2 54/108/2 +f 80/115/5 45/116/5 53/113/5 +f 58/117/3 47/118/3 59/119/3 +f 45/116/2 58/117/2 55/114/2 +f 55/114/6 59/119/6 56/109/6 +f 56/120/1 78/121/1 57/122/1 +f 57/123/5 5/124/5 47/125/5 +f 62/126/5 76/127/5 80/128/5 +f 80/128/3 73/129/3 64/130/3 +f 59/131/6 66/132/6 56/120/6 +f 59/131/3 5/124/3 67/133/3 +f 63/134/1 1/135/1 62/136/1 +f 64/130/6 65/137/6 63/134/6 +f 68/138/6 70/139/6 69/140/6 +f 70/139/4 72/141/4 69/140/4 +f 2/142/5 71/143/5 72/141/5 +f 71/144/2 65/145/2 68/138/2 +f 72/141/1 68/146/1 69/140/1 +f 65/145/6 74/147/6 70/139/6 +f 75/148/4 77/149/4 3/150/4 +f 2/142/4 74/147/4 75/148/4 +f 75/148/5 78/151/5 76/152/5 +f 73/153/6 77/149/6 74/147/6 +f 73/153/2 78/154/2 66/155/2 +f 4/156/3 67/157/3 5/158/3 +f 66/155/6 79/159/6 77/149/6 +f 3/150/4 79/159/4 4/156/4 +f 106/160/2 107/161/2 105/162/2 +f 108/163/6 111/164/6 107/161/6 +f 112/165/4 109/166/4 111/164/4 +f 110/167/5 105/162/5 109/168/5 +f 111/164/1 105/169/1 107/161/1 +f 108/163/3 110/170/3 112/165/3 +f 114/171/6 115/172/6 113/173/6 +f 116/174/4 119/175/4 115/172/4 +f 120/176/5 117/177/5 119/175/5 +f 118/178/2 113/173/2 117/179/2 +f 119/175/1 113/180/1 115/172/1 +f 116/174/3 118/181/3 120/176/3 +f 122/182/4 123/183/4 121/184/4 +f 124/185/5 127/186/5 123/183/5 +f 128/187/2 125/188/2 127/186/2 +f 126/189/6 121/184/6 125/190/6 +f 127/186/1 121/191/1 123/183/1 +f 124/185/3 126/192/3 128/187/3 +f 130/193/5 131/194/5 129/195/5 +f 132/196/2 135/197/2 131/194/2 +f 136/198/6 133/199/6 135/197/6 +f 134/200/4 129/195/4 133/201/4 +f 135/197/1 129/202/1 131/194/1 +f 132/196/3 134/203/3 136/198/3 +f 138/204/7 139/205/7 137/206/7 +f 140/207/8 143/208/8 139/205/8 +f 144/209/9 141/210/9 143/208/9 +f 142/211/10 137/206/10 141/212/10 +f 139/205/1 141/213/1 137/214/1 +f 140/207/3 142/215/3 144/209/3 +f 154/216/3 150/217/3 166/218/3 +f 159/219/1 163/220/1 167/221/1 +f 178/222/3 174/223/3 190/224/3 +f 183/225/1 187/226/1 191/227/1 +f 194/228/3 204/229/3 200/230/3 +f 215/231/3 213/232/3 209/233/3 +f 226/234/3 222/235/3 238/236/3 +f 231/237/1 235/238/1 239/239/1 +f 78/1/1 3/13/1 7/2/1 +f 78/4/2 39/240/2 24/5/2 +f 1/7/2 13/241/2 19/8/2 +f 76/9/3 19/8/3 16/10/3 +f 4/12/4 8/14/4 7/2/4 +f 5/6/3 24/5/3 8/14/3 +f 2/15/1 6/18/1 13/16/1 +f 75/11/4 16/10/4 6/18/4 +f 6/19/4 11/22/4 10/20/4 +f 11/22/5 15/24/5 14/23/5 +f 15/24/2 13/242/2 12/25/2 +f 13/26/6 6/19/6 9/21/6 +f 14/23/1 12/243/1 9/28/1 +f 6/19/4 16/34/4 17/29/4 +f 17/29/5 20/35/5 22/30/5 +f 11/22/5 17/29/5 18/31/5 +f 18/31/2 22/30/2 39/32/2 +f 16/34/4 7/37/4 20/35/4 +f 16/34/6 19/244/6 39/36/6 +f 21/38/3 8/245/3 24/39/3 +f 7/37/4 8/246/4 21/38/4 +f 20/35/5 21/38/5 23/40/5 +f 39/41/1 22/53/1 26/42/1 +f 39/44/6 61/247/6 43/45/6 +f 19/47/6 13/248/6 40/48/6 +f 19/47/3 60/49/3 33/50/3 +f 23/52/5 27/54/5 26/42/5 +f 24/46/3 43/45/3 27/54/3 +f 15/55/1 25/58/1 40/56/1 +f 18/51/5 33/50/5 25/58/5 +f 28/59/5 25/249/5 30/60/5 +f 30/60/2 41/63/2 32/62/2 +f 41/63/6 40/250/6 31/64/6 +f 40/65/4 25/249/4 28/59/4 +f 32/62/1 31/251/1 28/67/1 +f 30/60/5 25/249/5 33/68/5 +f 34/69/2 36/74/2 42/70/2 +f 30/60/2 34/69/2 35/71/2 +f 35/71/6 42/70/6 61/72/6 +f 33/68/5 26/76/5 36/74/5 +f 33/68/4 60/252/4 61/75/4 +f 37/77/3 27/253/3 43/78/3 +f 26/76/5 27/254/5 37/77/5 +f 36/74/2 37/77/2 38/79/2 +f 42/80/1 45/92/1 57/81/1 +f 61/83/4 57/255/4 47/84/4 +f 60/86/4 40/256/4 62/87/4 +f 60/86/3 80/88/3 53/89/3 +f 38/91/2 46/93/2 45/92/2 +f 43/85/3 47/84/3 46/93/3 +f 41/94/1 44/97/1 62/95/1 +f 35/90/2 53/89/2 44/97/2 +f 44/98/2 50/101/2 49/99/2 +f 50/101/6 63/103/6 52/102/6 +f 63/103/4 62/257/4 51/104/4 +f 62/105/5 44/98/5 48/100/5 +f 52/102/1 51/258/1 48/107/1 +f 44/98/2 53/113/2 54/108/2 +f 54/108/6 55/114/6 56/109/6 +f 50/101/6 54/108/6 64/110/6 +f 64/110/4 56/109/4 57/111/4 +f 53/113/2 45/116/2 55/114/2 +f 80/115/5 57/259/5 45/116/5 +f 58/117/3 46/260/3 47/118/3 +f 45/116/2 46/261/2 58/117/2 +f 55/114/6 58/117/6 59/119/6 +f 56/120/1 66/132/1 78/121/1 +f 57/123/5 78/262/5 5/124/5 +f 62/126/5 1/263/5 76/127/5 +f 80/128/3 76/127/3 73/129/3 +f 59/131/6 67/133/6 66/132/6 +f 59/131/3 47/125/3 5/124/3 +f 63/134/1 65/137/1 1/135/1 +f 64/130/6 73/129/6 65/137/6 +f 68/138/6 65/145/6 70/139/6 +f 70/139/4 2/142/4 72/141/4 +f 2/142/5 1/264/5 71/143/5 +f 71/144/2 1/265/2 65/145/2 +f 72/141/1 71/266/1 68/146/1 +f 65/145/6 73/153/6 74/147/6 +f 75/148/4 74/147/4 77/149/4 +f 2/142/4 70/139/4 74/147/4 +f 75/148/5 3/150/5 78/151/5 +f 73/153/6 66/155/6 77/149/6 +f 73/153/2 76/267/2 78/154/2 +f 4/156/3 79/159/3 67/157/3 +f 66/155/6 67/268/6 79/159/6 +f 3/150/4 77/149/4 79/159/4 +f 106/160/2 108/163/2 107/161/2 +f 108/163/6 112/165/6 111/164/6 +f 112/165/4 110/269/4 109/166/4 +f 110/167/5 106/160/5 105/162/5 +f 111/164/1 109/270/1 105/169/1 +f 108/163/3 106/271/3 110/170/3 +f 114/171/6 116/174/6 115/172/6 +f 116/174/4 120/176/4 119/175/4 +f 120/176/5 118/272/5 117/177/5 +f 118/178/2 114/171/2 113/173/2 +f 119/175/1 117/273/1 113/180/1 +f 116/174/3 114/274/3 118/181/3 +f 122/182/4 124/185/4 123/183/4 +f 124/185/5 128/187/5 127/186/5 +f 128/187/2 126/275/2 125/188/2 +f 126/189/6 122/182/6 121/184/6 +f 127/186/1 125/276/1 121/191/1 +f 124/185/3 122/277/3 126/192/3 +f 130/193/5 132/196/5 131/194/5 +f 132/196/2 136/198/2 135/197/2 +f 136/198/6 134/278/6 133/199/6 +f 134/200/4 130/193/4 129/195/4 +f 135/197/1 133/279/1 129/202/1 +f 132/196/3 130/280/3 134/203/3 +f 138/204/7 140/207/7 139/205/7 +f 140/207/8 144/209/8 143/208/8 +f 144/209/9 142/281/9 141/210/9 +f 142/211/10 138/204/10 137/206/10 +f 139/205/1 143/208/1 141/213/1 +f 140/207/3 138/282/3 142/215/3 +f 150/217/3 148/283/3 146/284/3 +f 146/284/3 168/285/3 166/218/3 +f 166/218/3 164/286/3 162/287/3 +f 162/287/3 160/288/3 166/218/3 +f 160/288/3 158/289/3 166/218/3 +f 158/289/3 156/290/3 154/216/3 +f 154/216/3 152/291/3 150/217/3 +f 150/217/3 146/284/3 166/218/3 +f 158/289/3 154/216/3 166/218/3 +f 167/221/1 145/292/1 147/293/1 +f 147/293/1 149/294/1 151/295/1 +f 151/295/1 153/296/1 155/297/1 +f 155/297/1 157/298/1 151/295/1 +f 157/298/1 159/219/1 151/295/1 +f 159/219/1 161/299/1 163/220/1 +f 163/220/1 165/300/1 167/221/1 +f 167/221/1 147/293/1 159/219/1 +f 147/293/1 151/295/1 159/219/1 +f 174/223/3 172/301/3 170/302/3 +f 170/302/3 192/303/3 190/224/3 +f 190/224/3 188/304/3 186/305/3 +f 186/305/3 184/306/3 190/224/3 +f 184/306/3 182/307/3 190/224/3 +f 182/307/3 180/308/3 178/222/3 +f 178/222/3 176/309/3 174/223/3 +f 174/223/3 170/302/3 190/224/3 +f 182/307/3 178/222/3 190/224/3 +f 191/227/1 169/310/1 171/311/1 +f 171/311/1 173/312/1 175/313/1 +f 175/313/1 177/314/1 179/315/1 +f 179/315/1 181/316/1 175/313/1 +f 181/316/1 183/225/1 175/313/1 +f 183/225/1 185/317/1 187/226/1 +f 187/226/1 189/318/1 191/227/1 +f 191/227/1 171/311/1 183/225/1 +f 171/311/1 175/313/1 183/225/1 +f 204/229/3 203/319/3 202/320/3 +f 202/320/3 201/321/3 200/230/3 +f 200/230/3 199/322/3 196/323/3 +f 199/322/3 198/324/3 196/323/3 +f 198/324/3 197/325/3 196/323/3 +f 196/323/3 195/326/3 194/228/3 +f 194/228/3 193/327/3 204/229/3 +f 204/229/3 202/320/3 200/230/3 +f 196/323/3 194/228/3 200/230/3 +f 205/328/3 216/329/3 215/231/3 +f 215/231/3 214/330/3 213/232/3 +f 213/232/3 212/331/3 209/233/3 +f 212/331/3 211/332/3 209/233/3 +f 211/332/3 210/333/3 209/233/3 +f 209/233/3 208/334/3 207/335/3 +f 207/335/3 206/336/3 209/233/3 +f 206/336/3 205/328/3 209/233/3 +f 205/328/3 215/231/3 209/233/3 +f 222/235/3 220/337/3 218/338/3 +f 218/338/3 240/339/3 238/236/3 +f 238/236/3 236/340/3 234/341/3 +f 234/341/3 232/342/3 238/236/3 +f 232/342/3 230/343/3 238/236/3 +f 230/343/3 228/344/3 226/234/3 +f 226/234/3 224/345/3 222/235/3 +f 222/235/3 218/338/3 238/236/3 +f 230/343/3 226/234/3 238/236/3 +f 239/239/1 217/346/1 219/347/1 +f 219/347/1 221/348/1 223/349/1 +f 223/349/1 225/350/1 227/351/1 +f 227/351/1 229/352/1 223/349/1 +f 229/352/1 231/237/1 223/349/1 +f 231/237/1 233/353/1 235/238/1 +f 235/238/1 237/354/1 239/239/1 +f 239/239/1 219/347/1 231/237/1 +f 219/347/1 223/349/1 231/237/1 s 1 -f 403/359/1 431/360/7 404/361/1 -f 432/362/7 429/363/8 431/360/7 -f 430/364/8 427/365/9 429/363/8 -f 428/366/9 425/367/2 427/365/9 -f 426/368/2 423/369/10 425/367/2 -f 424/370/10 421/371/11 423/369/10 -f 422/372/11 419/373/12 421/371/11 -f 420/374/12 417/375/6 419/373/12 -f 418/376/6 415/377/13 417/375/6 -f 416/378/13 413/379/14 415/377/13 -f 414/380/14 411/381/15 413/379/14 -f 412/382/15 409/383/5 411/381/15 -f 410/384/5 407/385/16 409/386/5 -f 408/387/16 405/388/17 407/385/16 -f 406/389/17 401/390/18 405/388/17 -f 402/391/18 404/361/1 401/390/18 -f 496/392/19 467/393/20 484/394/20 -f 496/392/19 477/395/21 468/396/19 -f 480/397/22 477/395/21 481/398/21 -f 495/399/23 475/400/22 480/397/22 -f 495/401/23 471/402/24 473/403/23 -f 494/404/24 465/405/25 471/402/24 -f 492/406/26 465/405/25 493/407/25 -f 491/408/27 466/409/26 492/406/26 -f 490/410/28 479/411/27 491/408/27 -f 490/410/28 476/412/29 478/413/28 -f 488/414/30 476/412/29 489/415/29 -f 487/416/31 474/417/30 488/414/30 -f 486/418/32 472/419/31 487/416/31 -f 486/418/32 470/420/33 469/421/32 -f 483/422/34 470/420/33 485/423/33 -f 86/424/6 505/425/12 498/426/12 -f 71/427/7 511/428/1 72/429/1 -f 80/430/5 510/431/15 82/432/15 -f 67/433/9 508/434/8 68/435/8 -f 76/436/17 506/437/16 78/438/16 -f 88/439/13 512/440/6 86/424/6 -f 114/441/10 503/442/2 497/443/2 -f 72/429/1 501/444/18 75/445/18 -f 82/432/15 499/446/14 84/447/14 -f 68/435/8 509/448/7 71/427/7 -f 78/438/16 507/449/5 80/430/5 -f 498/426/12 92/450/11 94/451/11 -f 497/452/2 504/453/9 67/433/9 -f 75/445/18 502/454/17 76/436/17 -f 84/447/14 500/455/13 88/439/13 -f 94/451/11 90/456/10 114/441/10 -f 483/422/34 467/393/20 482/457/34 -f 560/458/11 117/459/12 556/460/12 -f 558/461/7 545/462/8 554/463/8 -f 552/464/17 121/465/16 122/466/17 -f 555/467/6 119/468/13 550/469/13 -f 553/470/9 96/471/2 548/472/2 -f 551/473/18 124/474/1 559/475/1 -f 549/476/14 126/477/15 127/478/15 -f 547/479/10 116/480/11 560/458/11 -f 559/475/1 546/481/7 558/461/7 -f 128/482/5 121/465/16 557/483/16 -f 556/460/12 118/484/6 555/467/6 -f 554/463/8 95/485/9 553/470/9 -f 552/464/17 123/486/18 551/473/18 -f 550/469/13 120/487/14 549/476/14 -f 548/472/2 115/488/10 547/479/10 -f 127/478/15 125/489/5 128/490/5 -f 562/491/35 577/492/36 563/493/37 -f 562/491/35 583/494/38 584/495/39 -f 571/496/40 583/497/38 573/498/41 -f 571/496/40 581/499/42 582/500/43 -f 567/501/44 581/499/42 569/502/45 -f 567/501/44 579/503/46 580/504/47 -f 575/505/48 579/503/46 566/506/49 -f 575/505/48 577/492/36 578/507/50 -f 575/505/48 565/508/2 576/509/8 -f 563/493/37 576/509/8 564/510/1 -f 573/511/41 561/512/17 574/513/5 -f 571/496/40 574/514/5 572/515/14 -f 569/502/45 572/515/14 570/516/6 -f 567/501/44 570/516/6 568/517/11 -f 566/506/49 568/517/11 565/508/2 -f 562/491/35 564/510/1 561/512/17 -f 288/518/18 290/519/1 289/520/18 -f 287/521/17 289/520/18 291/522/17 -f 286/523/16 291/522/17 292/524/16 -f 285/525/5 292/524/16 293/526/5 -f 284/527/15 293/528/5 294/529/15 -f 283/530/14 294/529/15 295/531/14 -f 282/532/13 295/531/14 296/533/13 -f 281/534/6 296/533/13 297/535/6 -f 280/536/12 297/535/6 298/537/12 -f 279/538/11 298/537/12 299/539/11 -f 278/540/10 299/539/11 300/541/10 -f 277/542/2 300/541/10 301/543/2 -f 276/544/9 301/543/2 302/545/9 -f 275/546/8 302/545/9 303/547/8 -f 274/548/7 303/547/8 304/549/7 -f 273/550/1 304/549/7 290/519/1 -f 370/551/1 372/552/7 369/553/1 -f 371/554/7 374/555/8 372/552/7 -f 373/556/8 376/557/9 374/555/8 -f 375/558/9 378/559/2 376/557/9 -f 377/560/2 380/561/10 378/559/2 -f 379/562/10 382/563/11 380/561/10 -f 381/564/11 384/565/12 382/563/11 -f 383/566/12 386/567/6 384/565/12 -f 385/568/6 388/569/13 386/567/6 -f 387/570/13 390/571/14 388/569/13 -f 389/572/14 392/573/15 390/571/14 -f 391/574/15 394/575/5 392/573/15 -f 393/576/5 396/577/16 394/578/5 -f 395/579/16 398/580/17 396/577/16 -f 397/581/17 400/582/18 398/580/17 -f 399/583/18 369/553/1 400/582/18 -f 434/584/14 436/585/13 433/586/13 -f 438/587/1 440/588/18 437/589/18 -f 442/590/9 444/591/8 441/592/8 -f 445/593/15 435/594/14 434/584/14 -f 447/595/2 443/596/9 442/590/9 -f 449/597/5 446/598/15 445/593/15 -f 451/599/10 448/600/2 447/595/2 -f 453/601/16 450/602/5 449/603/5 -f 455/604/11 452/605/10 451/599/10 -f 457/606/17 454/607/16 453/601/16 -f 459/608/12 456/609/11 455/604/11 -f 437/589/18 458/610/17 457/606/17 -f 461/611/6 460/612/12 459/608/12 -f 433/586/13 462/613/6 461/611/6 -f 441/592/8 464/614/7 463/615/7 -f 463/615/7 439/616/1 438/587/1 -f 529/617/19 513/618/21 537/619/19 -f 527/620/22 535/621/23 514/622/22 -f 525/623/24 540/624/25 536/625/24 -f 523/626/26 543/627/27 541/628/26 -f 521/629/28 534/630/29 533/631/28 -f 519/632/30 539/633/31 538/634/30 -f 517/635/32 531/636/33 542/637/32 -f 525/623/24 535/621/23 526/638/23 -f 527/620/22 513/618/21 528/639/21 -f 523/626/26 540/624/25 524/640/25 -f 521/629/28 543/627/27 522/641/27 -f 520/642/29 538/634/30 534/630/29 -f 517/635/32 539/633/31 518/643/31 -f 515/644/34 531/636/33 516/645/33 -f 529/617/19 544/646/20 530/647/20 -f 515/644/34 544/646/20 532/648/34 -f 586/649/35 588/650/1 585/651/17 -f 590/652/49 592/653/11 589/654/2 -f 591/655/51 594/656/6 592/653/11 -f 593/657/45 596/658/14 594/656/6 -f 595/659/40 598/660/5 596/658/14 -f 597/661/41 585/651/17 598/662/5 -f 587/663/37 600/664/8 588/650/1 -f 599/665/52 589/654/2 600/664/8 -f 587/663/37 602/666/53 599/665/52 -f 599/665/52 603/667/46 590/652/49 -f 591/655/51 603/667/46 604/668/54 -f 593/657/45 604/668/54 605/669/42 -f 595/659/40 605/669/42 606/670/43 -f 595/659/40 607/671/38 597/672/41 -f 586/649/35 607/673/38 608/674/39 -f 586/649/35 601/675/36 587/663/37 -f 610/676/55 612/677/1 609/678/17 -f 614/679/56 616/680/11 613/681/2 -f 615/682/44 618/683/6 616/680/11 -f 617/684/45 620/685/14 618/683/6 -f 619/686/40 622/687/5 620/685/14 -f 621/688/57 609/678/17 622/689/5 -f 611/690/37 624/691/8 612/677/1 -f 623/692/48 613/681/2 624/691/8 -f 623/692/48 625/693/36 626/694/58 -f 623/692/48 627/695/46 614/679/56 -f 615/682/44 627/695/46 628/696/59 -f 615/682/44 629/697/42 617/684/45 -f 619/686/40 629/697/42 630/698/60 -f 619/686/40 631/699/38 621/700/57 -f 610/676/55 631/701/38 632/702/61 -f 610/676/55 625/693/36 611/690/37 -f 634/703/35 636/704/1 633/705/17 -f 638/706/56 640/707/11 637/708/2 -f 639/709/62 642/710/6 640/707/11 -f 641/711/45 644/712/14 642/710/6 -f 643/713/40 646/714/5 644/712/14 -f 645/715/57 633/705/17 646/716/5 -f 635/717/37 648/718/8 636/704/1 -f 647/719/48 637/708/2 648/718/8 -f 647/719/48 649/720/36 650/721/58 -f 647/719/48 651/722/46 638/706/56 -f 639/709/62 651/722/46 652/723/59 -f 639/709/62 653/724/42 641/711/45 -f 643/713/40 653/724/42 654/725/60 -f 643/713/40 655/726/38 645/727/57 -f 634/703/35 655/728/38 656/729/61 -f 634/703/35 649/720/36 635/717/37 -f 658/730/35 660/731/1 657/732/17 -f 662/733/56 664/734/11 661/735/2 -f 663/736/62 666/737/6 664/734/11 -f 665/738/45 668/739/14 666/737/6 -f 667/740/40 670/741/5 668/739/14 -f 669/742/57 657/732/17 670/743/5 -f 659/744/37 672/745/8 660/731/1 -f 671/746/48 661/735/2 672/745/8 -f 671/746/48 673/747/36 674/748/58 -f 671/746/48 675/749/46 662/733/56 -f 663/736/62 675/749/46 676/750/59 -f 663/736/62 677/751/42 665/738/45 -f 667/740/40 677/751/42 678/752/60 -f 667/740/40 679/753/38 669/754/57 -f 658/730/35 679/755/38 680/756/61 -f 658/730/35 673/747/36 659/744/37 -f 403/359/1 432/362/7 431/360/7 -f 432/362/7 430/364/8 429/363/8 -f 430/364/8 428/366/9 427/365/9 -f 428/366/9 426/368/2 425/367/2 -f 426/368/2 424/370/10 423/369/10 -f 424/370/10 422/372/11 421/371/11 -f 422/372/11 420/374/12 419/373/12 -f 420/374/12 418/376/6 417/375/6 -f 418/376/6 416/378/13 415/377/13 -f 416/378/13 414/380/14 413/379/14 -f 414/380/14 412/382/15 411/381/15 -f 412/382/15 410/757/5 409/383/5 -f 410/384/5 408/387/16 407/385/16 -f 408/387/16 406/389/17 405/388/17 -f 406/389/17 402/391/18 401/390/18 -f 402/391/18 403/359/1 404/361/1 -f 496/392/19 468/396/19 467/393/20 -f 496/392/19 481/398/21 477/395/21 -f 480/397/22 475/400/22 477/395/21 -f 495/399/23 473/758/23 475/400/22 -f 495/401/23 494/404/24 471/402/24 -f 494/404/24 493/407/25 465/405/25 -f 492/406/26 466/409/26 465/405/25 -f 491/408/27 479/411/27 466/409/26 -f 490/410/28 478/413/28 479/411/27 -f 490/410/28 489/415/29 476/412/29 -f 488/414/30 474/417/30 476/412/29 -f 487/416/31 472/419/31 474/417/30 -f 486/418/32 469/421/32 472/419/31 -f 486/418/32 485/423/33 470/420/33 -f 483/422/34 482/457/34 470/420/33 -f 86/424/6 512/440/6 505/425/12 -f 71/427/7 509/448/7 511/428/1 -f 80/430/5 507/449/5 510/431/15 -f 67/433/9 504/453/9 508/434/8 -f 76/436/17 502/454/17 506/437/16 -f 88/439/13 500/455/13 512/440/6 -f 114/441/10 90/456/10 503/442/2 -f 72/429/1 511/428/1 501/444/18 -f 82/432/15 510/431/15 499/446/14 -f 68/435/8 508/434/8 509/448/7 -f 78/438/16 506/437/16 507/449/5 -f 498/426/12 505/425/12 92/450/11 -f 497/452/2 503/759/2 504/453/9 -f 75/445/18 501/444/18 502/454/17 -f 84/447/14 499/446/14 500/455/13 -f 94/451/11 92/450/11 90/456/10 -f 483/422/34 484/394/20 467/393/20 -f 560/458/11 116/480/11 117/459/12 -f 558/461/7 546/481/7 545/462/8 -f 552/464/17 557/483/16 121/465/16 -f 555/467/6 118/484/6 119/468/13 -f 553/470/9 95/485/9 96/471/2 -f 551/473/18 123/486/18 124/474/1 -f 549/476/14 120/487/14 126/477/15 -f 547/479/10 115/488/10 116/480/11 -f 559/475/1 124/474/1 546/481/7 -f 128/482/5 125/760/5 121/465/16 -f 556/460/12 117/459/12 118/484/6 -f 554/463/8 545/462/8 95/485/9 -f 552/464/17 122/466/17 123/486/18 -f 550/469/13 119/468/13 120/487/14 -f 548/472/2 96/471/2 115/488/10 -f 127/478/15 126/477/15 125/489/5 -f 562/491/35 584/495/39 577/492/36 -f 562/491/35 573/511/41 583/494/38 -f 571/496/40 582/500/43 583/497/38 -f 571/496/40 569/502/45 581/499/42 -f 567/501/44 580/504/47 581/499/42 -f 567/501/44 566/506/49 579/503/46 -f 575/505/48 578/507/50 579/503/46 -f 575/505/48 563/493/37 577/492/36 -f 575/505/48 566/506/49 565/508/2 -f 563/493/37 575/505/48 576/509/8 -f 573/511/41 562/491/35 561/512/17 -f 571/496/40 573/498/41 574/514/5 -f 569/502/45 571/496/40 572/515/14 -f 567/501/44 569/502/45 570/516/6 -f 566/506/49 567/501/44 568/517/11 -f 562/491/35 563/493/37 564/510/1 -f 288/518/18 273/550/1 290/519/1 -f 287/521/17 288/518/18 289/520/18 -f 286/523/16 287/521/17 291/522/17 -f 285/525/5 286/523/16 292/524/16 -f 284/527/15 285/761/5 293/528/5 -f 283/530/14 284/527/15 294/529/15 -f 282/532/13 283/530/14 295/531/14 -f 281/534/6 282/532/13 296/533/13 -f 280/536/12 281/534/6 297/535/6 -f 279/538/11 280/536/12 298/537/12 -f 278/540/10 279/538/11 299/539/11 -f 277/542/2 278/540/10 300/541/10 -f 276/544/9 277/542/2 301/543/2 -f 275/546/8 276/544/9 302/545/9 -f 274/548/7 275/546/8 303/547/8 -f 273/550/1 274/548/7 304/549/7 -f 370/551/1 371/554/7 372/552/7 -f 371/554/7 373/556/8 374/555/8 -f 373/556/8 375/558/9 376/557/9 -f 375/558/9 377/560/2 378/559/2 -f 377/560/2 379/562/10 380/561/10 -f 379/562/10 381/564/11 382/563/11 -f 381/564/11 383/566/12 384/565/12 -f 383/566/12 385/568/6 386/567/6 -f 385/568/6 387/570/13 388/569/13 -f 387/570/13 389/572/14 390/571/14 -f 389/572/14 391/574/15 392/573/15 -f 391/574/15 393/762/5 394/575/5 -f 393/576/5 395/579/16 396/577/16 -f 395/579/16 397/581/17 398/580/17 -f 397/581/17 399/583/18 400/582/18 -f 399/583/18 370/551/1 369/553/1 -f 434/584/14 435/594/14 436/585/13 -f 438/587/1 439/616/1 440/588/18 -f 442/590/9 443/596/9 444/591/8 -f 445/593/15 446/598/15 435/594/14 -f 447/595/2 448/600/2 443/596/9 -f 449/597/5 450/763/5 446/598/15 -f 451/599/10 452/605/10 448/600/2 -f 453/601/16 454/607/16 450/602/5 -f 455/604/11 456/609/11 452/605/10 -f 457/606/17 458/610/17 454/607/16 -f 459/608/12 460/612/12 456/609/11 -f 437/589/18 440/588/18 458/610/17 -f 461/611/6 462/613/6 460/612/12 -f 433/586/13 436/585/13 462/613/6 -f 441/592/8 444/591/8 464/614/7 -f 463/615/7 464/614/7 439/616/1 -f 529/617/19 528/639/21 513/618/21 -f 527/620/22 526/638/23 535/621/23 -f 525/623/24 524/640/25 540/624/25 -f 523/626/26 522/641/27 543/627/27 -f 521/629/28 520/642/29 534/630/29 -f 519/632/30 518/643/31 539/633/31 -f 517/635/32 516/645/33 531/636/33 -f 525/623/24 536/625/24 535/621/23 -f 527/620/22 514/622/22 513/618/21 -f 523/626/26 541/628/26 540/624/25 -f 521/629/28 533/631/28 543/627/27 -f 520/642/29 519/632/30 538/634/30 -f 517/635/32 542/637/32 539/633/31 -f 515/644/34 532/648/34 531/636/33 -f 529/617/19 537/619/19 544/646/20 -f 515/644/34 530/647/20 544/646/20 -f 586/649/35 587/663/37 588/650/1 -f 590/652/49 591/655/51 592/653/11 -f 591/655/51 593/657/45 594/656/6 -f 593/657/45 595/659/40 596/658/14 -f 595/659/40 597/672/41 598/660/5 -f 597/661/41 586/649/35 585/651/17 -f 587/663/37 599/665/52 600/664/8 -f 599/665/52 590/652/49 589/654/2 -f 587/663/37 601/675/36 602/666/53 -f 599/665/52 602/666/53 603/667/46 -f 591/655/51 590/652/49 603/667/46 -f 593/657/45 591/655/51 604/668/54 -f 595/659/40 593/657/45 605/669/42 -f 595/659/40 606/670/43 607/671/38 -f 586/649/35 597/661/41 607/673/38 -f 586/649/35 608/674/39 601/675/36 -f 610/676/55 611/690/37 612/677/1 -f 614/679/56 615/682/44 616/680/11 -f 615/682/44 617/684/45 618/683/6 -f 617/684/45 619/686/40 620/685/14 -f 619/686/40 621/700/57 622/687/5 -f 621/688/57 610/676/55 609/678/17 -f 611/690/37 623/692/48 624/691/8 -f 623/692/48 614/679/56 613/681/2 -f 623/692/48 611/690/37 625/693/36 -f 623/692/48 626/694/58 627/695/46 -f 615/682/44 614/679/56 627/695/46 -f 615/682/44 628/696/59 629/697/42 -f 619/686/40 617/684/45 629/697/42 -f 619/686/40 630/698/60 631/699/38 -f 610/676/55 621/688/57 631/701/38 -f 610/676/55 632/702/61 625/693/36 -f 634/703/35 635/717/37 636/704/1 -f 638/706/56 639/709/62 640/707/11 -f 639/709/62 641/711/45 642/710/6 -f 641/711/45 643/713/40 644/712/14 -f 643/713/40 645/727/57 646/714/5 -f 645/715/57 634/703/35 633/705/17 -f 635/717/37 647/719/48 648/718/8 -f 647/719/48 638/706/56 637/708/2 -f 647/719/48 635/717/37 649/720/36 -f 647/719/48 650/721/58 651/722/46 -f 639/709/62 638/706/56 651/722/46 -f 639/709/62 652/723/59 653/724/42 -f 643/713/40 641/711/45 653/724/42 -f 643/713/40 654/725/60 655/726/38 -f 634/703/35 645/715/57 655/728/38 -f 634/703/35 656/729/61 649/720/36 -f 658/730/35 659/744/37 660/731/1 -f 662/733/56 663/736/62 664/734/11 -f 663/736/62 665/738/45 666/737/6 -f 665/738/45 667/740/40 668/739/14 -f 667/740/40 669/754/57 670/741/5 -f 669/742/57 658/730/35 657/732/17 -f 659/744/37 671/746/48 672/745/8 -f 671/746/48 662/733/56 661/735/2 -f 671/746/48 659/744/37 673/747/36 -f 671/746/48 674/748/58 675/749/46 -f 663/736/62 662/733/56 675/749/46 -f 663/736/62 676/750/59 677/751/42 -f 667/740/40 665/738/45 677/751/42 -f 667/740/40 678/752/60 679/753/38 -f 658/730/35 669/742/57 679/755/38 -f 658/730/35 680/756/61 673/747/36 +f 104/355/11 81/356/4 92/357/11 +f 103/358/12 92/357/11 91/359/12 +f 102/360/6 91/359/12 90/361/6 +f 101/362/13 90/361/6 89/363/13 +f 100/364/14 89/363/13 88/365/14 +f 99/366/2 88/365/14 87/367/2 +f 98/368/15 87/369/2 86/370/15 +f 97/371/16 86/370/15 85/372/16 +f 96/373/5 85/372/16 84/374/5 +f 95/375/17 84/374/5 83/376/17 +f 94/377/18 83/376/17 82/378/18 +f 93/379/4 82/378/18 81/356/4 +f 146/380/19 147/381/20 145/382/21 +f 148/383/22 149/384/23 147/381/20 +f 150/385/24 151/386/25 149/384/23 +f 152/387/26 153/388/27 151/386/25 +f 154/389/28 155/390/29 153/388/27 +f 156/391/30 157/392/31 155/390/29 +f 158/393/32 159/394/33 157/395/31 +f 160/396/34 161/397/35 159/394/33 +f 162/398/36 163/399/37 161/397/35 +f 164/400/38 165/401/39 163/399/37 +f 166/402/40 167/403/41 165/401/39 +f 168/404/42 145/382/21 167/403/41 +f 170/405/19 206/406/22 205/407/19 +f 172/408/22 207/409/24 206/406/22 +f 174/410/24 208/411/26 207/409/24 +f 176/412/26 209/413/28 208/411/26 +f 178/414/28 210/415/30 209/413/28 +f 180/416/30 211/417/32 210/415/30 +f 182/418/32 212/419/34 211/420/32 +f 184/421/34 213/422/36 212/419/34 +f 186/423/36 214/424/38 213/422/36 +f 188/425/38 215/426/40 214/424/38 +f 190/427/40 216/428/42 215/426/40 +f 192/429/42 205/407/19 216/428/42 +f 204/430/42 169/431/21 191/432/41 +f 203/433/40 191/432/41 189/434/39 +f 202/435/38 189/434/39 187/436/37 +f 201/437/36 187/436/37 185/438/35 +f 200/439/34 185/438/35 183/440/33 +f 199/441/32 183/440/33 181/442/31 +f 198/443/30 181/444/31 179/445/29 +f 197/446/28 179/445/29 177/447/27 +f 196/448/26 177/447/27 175/449/25 +f 195/450/24 175/449/25 173/451/23 +f 194/452/22 173/451/23 171/453/20 +f 193/454/19 171/453/20 169/431/21 +f 218/455/19 219/456/20 217/457/21 +f 220/458/22 221/459/23 219/456/20 +f 222/460/24 223/461/25 221/459/23 +f 224/462/26 225/463/27 223/461/25 +f 226/464/28 227/465/29 225/463/27 +f 228/466/30 229/467/31 227/465/29 +f 230/468/32 231/469/33 229/470/31 +f 232/471/34 233/472/35 231/469/33 +f 234/473/36 235/474/37 233/472/35 +f 236/475/38 237/476/39 235/474/37 +f 238/477/40 239/478/41 237/476/39 +f 240/479/42 217/457/21 239/478/41 +f 104/355/11 93/379/4 81/356/4 +f 103/358/12 104/355/11 92/357/11 +f 102/360/6 103/358/12 91/359/12 +f 101/362/13 102/360/6 90/361/6 +f 100/364/14 101/362/13 89/363/13 +f 99/366/2 100/364/14 88/365/14 +f 98/368/15 99/480/2 87/369/2 +f 97/371/16 98/368/15 86/370/15 +f 96/373/5 97/371/16 85/372/16 +f 95/375/17 96/373/5 84/374/5 +f 94/377/18 95/375/17 83/376/17 +f 93/379/4 94/377/18 82/378/18 +f 146/380/19 148/383/22 147/381/20 +f 148/383/22 150/385/24 149/384/23 +f 150/385/24 152/387/26 151/386/25 +f 152/387/26 154/389/28 153/388/27 +f 154/389/28 156/391/30 155/390/29 +f 156/391/30 158/481/32 157/392/31 +f 158/393/32 160/396/34 159/394/33 +f 160/396/34 162/398/36 161/397/35 +f 162/398/36 164/400/38 163/399/37 +f 164/400/38 166/402/40 165/401/39 +f 166/402/40 168/404/42 167/403/41 +f 168/404/42 146/380/19 145/382/21 +f 170/405/19 172/408/22 206/406/22 +f 172/408/22 174/410/24 207/409/24 +f 174/410/24 176/412/26 208/411/26 +f 176/412/26 178/414/28 209/413/28 +f 178/414/28 180/416/30 210/415/30 +f 180/416/30 182/482/32 211/417/32 +f 182/418/32 184/421/34 212/419/34 +f 184/421/34 186/423/36 213/422/36 +f 186/423/36 188/425/38 214/424/38 +f 188/425/38 190/427/40 215/426/40 +f 190/427/40 192/429/42 216/428/42 +f 192/429/42 170/405/19 205/407/19 +f 204/430/42 193/454/19 169/431/21 +f 203/433/40 204/430/42 191/432/41 +f 202/435/38 203/433/40 189/434/39 +f 201/437/36 202/435/38 187/436/37 +f 200/439/34 201/437/36 185/438/35 +f 199/441/32 200/439/34 183/440/33 +f 198/443/30 199/483/32 181/444/31 +f 197/446/28 198/443/30 179/445/29 +f 196/448/26 197/446/28 177/447/27 +f 195/450/24 196/448/26 175/449/25 +f 194/452/22 195/450/24 173/451/23 +f 193/454/19 194/452/22 171/453/20 +f 218/455/19 220/458/22 219/456/20 +f 220/458/22 222/460/24 221/459/23 +f 222/460/24 224/462/26 223/461/25 +f 224/462/26 226/464/28 225/463/27 +f 226/464/28 228/466/30 227/465/29 +f 228/466/30 230/484/32 229/467/31 +f 230/468/32 232/471/34 231/469/33 +f 232/471/34 234/473/36 233/472/35 +f 234/473/36 236/475/38 235/474/37 +f 236/475/38 238/477/40 237/476/39 +f 238/477/40 240/479/42 239/478/41 +f 240/479/42 218/455/19 217/457/21 diff --git a/src/main/resources/assets/hbm/models/weapons/amat.obj b/src/main/resources/assets/hbm/models/weapons/amat.obj new file mode 100644 index 000000000..cfb16ab61 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/amat.obj @@ -0,0 +1,10682 @@ +# Blender v2.79 (sub 0) OBJ File: 'amat.blend' +# www.blender.org +o Bolt +v -0.625260 0.501309 -5.750000 +v -0.601343 0.443566 -5.937500 +v -0.529589 0.270339 -5.875000 +v 0.000001 0.669195 -2.664513 +v 0.044195 0.625001 -2.477013 +v 0.044195 0.625001 -2.664513 +v -0.044193 0.625001 -2.477013 +v 0.000001 0.580807 -2.477013 +v 0.000001 0.580807 -2.664513 +v 0.000001 0.669195 -2.477013 +v -0.044193 0.625001 -2.664513 +v -0.529589 0.270339 -5.750000 +v -0.553507 0.328081 -5.687500 +v -0.601343 0.443566 -5.687500 +v -0.625260 0.501309 -5.875000 +v -0.553507 0.328081 -5.937500 +v -0.163320 0.692650 -5.750000 +v -0.091567 0.519423 -5.937500 +v -0.139403 0.634908 -5.687500 +v -0.091567 0.519423 -5.687500 +v -0.611249 0.467484 -5.812500 +v -0.923879 0.242317 -5.724112 +v -0.577425 0.385824 -5.724112 +v -0.923879 0.242317 -5.900887 +v -0.543600 0.304163 -5.812500 +v -0.890055 0.160657 -5.812500 +v -0.957704 0.323978 -5.812500 +v -1.046370 0.048074 -5.856694 +v -0.964710 0.177570 -5.945082 +v -0.930885 0.095909 -5.856694 +v -1.154849 0.146647 -5.724112 +v -1.154849 0.146647 -5.900887 +v -1.121025 0.064986 -5.812500 +v -1.032359 0.340890 -5.856694 +v -1.114019 0.211394 -5.945082 +v -1.147844 0.293054 -5.856694 +v -1.032359 0.340890 -5.768305 +v -1.114019 0.211394 -5.679918 +v -0.998534 0.259230 -5.679918 +v -0.930885 0.095909 -5.768305 +v -0.998534 0.259230 -5.945082 +v -0.964710 0.177570 -5.679918 +v -1.046370 0.048074 -5.768305 +v -1.080195 0.129734 -5.945082 +v -1.080195 0.129734 -5.679918 +v -1.188674 0.228307 -5.812500 +v -1.147844 0.293054 -5.768305 +v -0.067650 0.461680 -5.750000 +v -0.067650 0.461680 -5.875000 +v -0.139403 0.634908 -5.937500 +v 0.120699 0.834059 -6.562500 +v 0.120699 0.415942 -6.562500 +v -0.241401 0.625001 -6.562500 +v -0.120735 0.625001 -2.664513 +v 0.060369 0.520440 -2.664513 +v 0.060369 0.729561 -2.664513 +v -0.120701 0.834059 -6.562500 +v -0.209058 0.745701 -2.937500 +v -0.120699 0.834059 -2.937500 +v -0.209060 0.745701 -6.562500 +v -0.241399 0.625001 -2.937500 +v -0.209058 0.504301 -2.937500 +v -0.209060 0.504301 -6.562500 +v -0.120699 0.415942 -2.937500 +v -0.120701 0.415942 -6.562500 +v 0.000001 0.383601 -2.937500 +v -0.000001 0.383601 -6.562500 +v 0.120701 0.415942 -2.937500 +v 0.209059 0.504301 -2.937500 +v 0.209057 0.504301 -6.562500 +v 0.241401 0.625001 -2.937500 +v 0.241399 0.625001 -6.562500 +v 0.209059 0.745701 -2.937500 +v 0.209058 0.745701 -6.562500 +v 0.120701 0.834059 -2.937500 +v 0.000001 0.866401 -2.937500 +v 0.120737 0.625001 -2.789513 +v 0.104561 0.564633 -2.789513 +v 0.060369 0.520440 -2.789513 +v 0.000001 0.504265 -2.789513 +v -0.060367 0.520440 -2.789513 +v -0.104560 0.564633 -2.789513 +v -0.060367 0.729561 -2.789513 +v 0.000001 0.745737 -2.789513 +v -0.120735 0.625001 -2.789513 +v 0.060369 0.729561 -2.789513 +v -0.104560 0.685369 -2.789513 +v 0.104562 0.685369 -2.789513 +v 0.104562 0.685369 -2.664513 +v 0.000001 0.504265 -2.664513 +v 0.120737 0.625001 -2.664513 +v -0.104560 0.685369 -2.664513 +v 0.000001 0.745737 -2.664513 +v -0.060367 0.520440 -2.664513 +v 0.104561 0.564633 -2.664513 +v -0.060367 0.729561 -2.664513 +v -0.104560 0.564633 -2.664513 +v -0.163320 0.692650 -5.875000 +v -0.577425 0.385824 -5.900888 +v -0.000001 0.866401 -6.562500 +vt 0.751740 0.819444 +vt 0.744780 0.812500 +vt 0.747100 0.791667 +vt 0.832947 0.979167 +vt 0.839907 0.986111 +vt 0.832947 0.986111 +vt 0.842227 0.979167 +vt 0.842227 0.986111 +vt 0.839907 0.972222 +vt 0.832947 0.965278 +vt 0.839907 0.965278 +vt 0.839907 0.993056 +vt 0.839907 0.979167 +vt 0.832947 0.972222 +vt 0.751740 0.791667 +vt 0.754060 0.798611 +vt 0.754060 0.812500 +vt 0.747100 0.819444 +vt 0.744780 0.798611 +vt 0.832947 0.993056 +vt 0.682135 0.791667 +vt 0.700696 0.777778 +vt 0.700696 0.791667 +vt 0.700696 0.770833 +vt 0.682135 0.756944 +vt 0.700696 0.756944 +vt 0.682135 0.798611 +vt 0.700696 0.812500 +vt 0.682135 0.812500 +vt 0.703016 0.791667 +vt 0.716937 0.805556 +vt 0.703016 0.805556 +vt 0.716937 0.777778 +vt 0.703016 0.763889 +vt 0.716937 0.763889 +vt 0.716937 0.819444 +vt 0.703016 0.819444 +vt 0.716937 0.791667 +vt 0.733179 0.770833 +vt 0.728538 0.756944 +vt 0.733179 0.756944 +vt 0.733179 0.791667 +vt 0.728538 0.777778 +vt 0.733179 0.777778 +vt 0.721578 0.791667 +vt 0.726218 0.777778 +vt 0.726218 0.791667 +vt 0.728538 0.812500 +vt 0.733179 0.798611 +vt 0.733179 0.812500 +vt 0.740139 0.777778 +vt 0.742459 0.770833 +vt 0.742459 0.777778 +vt 0.719258 0.770833 +vt 0.721578 0.777778 +vt 0.719258 0.777778 +vt 0.740139 0.791667 +vt 0.742459 0.791667 +vt 0.742459 0.798611 +vt 0.719258 0.798611 +vt 0.719258 0.791667 +vt 0.735499 0.777778 +vt 0.728538 0.770833 +vt 0.735499 0.791667 +vt 0.728538 0.791667 +vt 0.728538 0.798611 +vt 0.728538 0.750000 +vt 0.733179 0.750000 +vt 0.733179 0.819444 +vt 0.728538 0.819444 +vt 0.740139 0.798611 +vt 0.735499 0.798611 +vt 0.721578 0.798611 +vt 0.740139 0.770833 +vt 0.726218 0.770833 +vt 0.682135 0.819444 +vt 0.700696 0.819444 +vt 0.700696 0.750000 +vt 0.682135 0.750000 +vt 0.682135 0.770833 +vt 0.700696 0.736111 +vt 0.682135 0.736111 +vt 0.831122 0.898258 +vt 0.831122 0.853076 +vt 0.844195 0.875667 +vt 0.835439 0.935015 +vt 0.835439 0.912417 +vt 0.841978 0.923716 +vt 0.682135 0.895833 +vt 0.816705 0.881944 +vt 0.816705 0.895833 +vt 0.682135 0.881944 +vt 0.816705 0.868056 +vt 0.682135 0.868056 +vt 0.816705 0.854167 +vt 0.682135 0.854167 +vt 0.816705 0.840278 +vt 0.682135 0.840278 +vt 0.816705 0.826389 +vt 0.682135 0.993056 +vt 0.816705 0.979167 +vt 0.816705 0.993056 +vt 0.682135 0.979167 +vt 0.816705 0.965278 +vt 0.682135 0.965278 +vt 0.816705 0.951389 +vt 0.682135 0.951389 +vt 0.816705 0.937500 +vt 0.682135 0.937500 +vt 0.816705 0.923611 +vt 0.682135 0.923611 +vt 0.816705 0.909722 +vt 0.823666 0.947917 +vt 0.823666 0.961806 +vt 0.823666 0.968750 +vt 0.823666 0.975694 +vt 0.823666 0.982639 +vt 0.823666 0.989583 +vt 0.823666 0.836806 +vt 0.823666 0.850694 +vt 0.823666 0.899306 +vt 0.823666 0.906250 +vt 0.823666 0.892361 +vt 0.823666 0.864583 +vt 0.823666 0.913194 +vt 0.823666 0.920139 +vt 0.823666 0.878472 +vt 0.823666 0.934028 +vt 0.830626 0.923611 +vt 0.825986 0.916667 +vt 0.830626 0.916667 +vt 0.830626 0.944444 +vt 0.825986 0.937500 +vt 0.830626 0.937500 +vt 0.830626 0.979167 +vt 0.825986 0.972222 +vt 0.830626 0.972222 +vt 0.825986 0.909722 +vt 0.830626 0.909722 +vt 0.825986 0.930556 +vt 0.830626 0.930556 +vt 0.825986 0.965278 +vt 0.830626 0.965278 +vt 0.830626 0.958333 +vt 0.825986 0.951389 +vt 0.830626 0.951389 +vt 0.830626 0.993056 +vt 0.825986 0.986111 +vt 0.830626 0.986111 +vt 0.825986 0.923611 +vt 0.825986 0.958333 +vt 0.825986 0.944444 +vt 0.825986 0.979167 +vt 0.682135 0.777778 +vt 0.700696 0.798611 +vt 0.703016 0.777778 +vt 0.726218 0.798611 +vt 0.735499 0.770833 +vt 0.721578 0.770833 +vt 0.843027 0.888710 +vt 0.839837 0.898258 +vt 0.835479 0.901753 +vt 0.827932 0.888710 +vt 0.826764 0.875667 +vt 0.827932 0.862624 +vt 0.835479 0.849581 +vt 0.839837 0.853076 +vt 0.843027 0.862624 +vt 0.841394 0.930240 +vt 0.839798 0.935015 +vt 0.837619 0.936763 +vt 0.833844 0.930240 +vt 0.833260 0.923716 +vt 0.833844 0.917193 +vt 0.837619 0.910670 +vt 0.839798 0.912417 +vt 0.841394 0.917193 +vt 0.682135 0.826389 +vt 0.682135 0.909722 +vt 0.823666 0.940972 +vt 0.823666 0.954861 +vt 0.823666 0.829861 +vt 0.823666 0.843750 +vt 0.823666 0.885417 +vt 0.823666 0.857639 +vt 0.823666 0.871528 +vt 0.823666 0.927083 +vt 0.825986 0.993056 +vn -0.9239 -0.3827 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.3536 0.8536 0.3827 +vn -0.3536 0.8536 -0.3827 +vn -0.1464 0.3536 -0.9239 +vn 0.1464 -0.3536 -0.9239 +vn -0.1464 0.3536 0.9239 +vn 0.1464 -0.3536 0.9239 +vn -0.3827 0.9239 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.0138 -0.9259 -0.3776 +vn 0.4601 -0.2181 -0.8607 +vn 0.6449 -0.6644 -0.3776 +vn -0.8089 -0.3351 0.4831 +vn -0.8089 -0.3351 -0.4831 +vn -0.6241 -0.7814 0.0000 +vn -0.0138 0.9259 -0.3776 +vn -0.4601 0.2181 -0.8607 +vn -0.6449 0.6644 -0.3776 +vn -0.0138 0.9259 0.3776 +vn -0.4601 0.2181 0.8607 +vn 0.1711 0.4796 0.8607 +vn 0.6449 -0.6644 0.3776 +vn 0.9503 -0.3114 -0.0000 +vn 0.1711 0.4796 -0.8607 +vn 0.7010 0.2904 -0.6513 +vn 0.4601 -0.2181 0.8607 +vn 0.7010 0.2904 0.6513 +vn 0.4518 0.8921 -0.0000 +vn 0.0138 -0.9259 0.3776 +vn -0.1711 -0.4796 -0.8607 +vn -0.1711 -0.4796 0.8607 +vn -0.9938 0.1112 0.0000 +vn -0.6449 0.6644 0.3776 +vn 0.3536 -0.8536 0.3827 +vn 0.3536 -0.8536 -0.3827 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.6712 0.3875 0.6319 +vn 0.7750 -0.0000 0.6319 +vn 0.6712 -0.3875 0.6319 +vn 0.3875 -0.6712 0.6319 +vn -0.0000 -0.7750 0.6319 +vn -0.3875 -0.6712 0.6319 +vn -0.6712 -0.3875 0.6319 +vn -0.0000 0.7750 0.6319 +vn -0.3875 0.6712 0.6319 +vn -0.6712 0.3875 0.6319 +vn -0.7750 -0.0000 0.6319 +vn 0.3875 0.6712 0.6319 +s off +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 5/5/3 7/7/3 8/8/3 +f 7/9/4 9/10/4 8/11/4 +f 8/12/5 6/6/5 5/5/5 +f 10/13/6 11/14/6 7/9/6 +f 3/3/1 12/15/1 1/1/1 +f 12/15/1 13/16/1 1/1/1 +f 13/16/1 14/17/1 1/1/1 +f 1/1/1 15/18/1 2/2/1 +f 2/2/1 16/19/1 3/3/1 +f 4/4/2 10/13/2 5/5/2 +f 5/5/3 10/13/3 7/7/3 +f 7/9/4 11/14/4 9/10/4 +f 8/12/5 9/20/5 6/6/5 +f 10/13/6 4/4/6 11/14/6 +s 1 +f 17/21/7 15/22/8 1/23/7 +f 2/24/9 18/25/10 16/26/10 +f 19/27/11 13/28/12 20/29/12 +f 21/30/13 22/31/3 23/32/3 +f 24/33/14 25/34/15 26/35/15 +f 23/32/3 26/36/15 25/37/15 +f 21/30/13 24/33/14 27/38/13 +f 28/39/16 29/40/17 30/41/18 +f 31/42/19 32/43/20 33/44/21 +f 34/45/22 35/46/23 36/47/24 +f 37/48/25 38/49/26 39/50/27 +f 40/51/28 30/52/18 26/53/29 +f 29/54/17 41/55/30 24/56/31 +f 42/57/32 22/58/33 39/59/27 +f 34/45/22 37/60/25 27/61/34 +f 43/62/35 33/44/21 28/39/16 +f 35/46/23 44/63/36 32/43/20 +f 45/64/37 38/49/26 31/42/19 +f 36/47/24 46/65/38 47/66/39 +f 40/51/28 22/58/33 42/57/32 +f 30/41/18 24/67/31 26/68/29 +f 34/45/22 24/56/31 41/55/30 +f 37/48/25 22/69/33 27/70/34 +f 45/64/37 39/71/27 38/72/26 +f 36/47/24 37/73/25 34/45/22 +f 31/42/19 47/66/39 46/65/38 +f 45/64/37 33/44/21 43/62/35 +f 36/47/24 32/43/20 46/65/38 +f 44/63/36 33/44/21 32/43/20 +f 43/62/35 30/74/18 40/51/28 +f 41/55/30 44/75/36 35/46/23 +f 42/57/32 43/62/35 40/51/28 +f 48/76/40 13/28/12 12/77/40 +f 1/23/7 19/27/11 17/21/7 +f 3/78/41 18/25/10 49/79/41 +f 15/22/8 50/80/9 2/24/9 +f 12/81/40 49/79/41 48/82/40 +f 51/83/14 52/84/14 53/85/14 +f 54/86/3 55/87/3 56/88/3 +f 57/89/42 58/90/43 59/91/42 +f 60/92/43 61/93/44 58/90/43 +f 53/94/44 62/95/45 61/93/44 +f 63/96/45 64/97/46 62/95/45 +f 65/98/46 66/99/47 64/97/46 +f 67/100/47 68/101/48 66/102/47 +f 52/103/48 69/104/49 68/101/48 +f 70/105/49 71/106/50 69/104/49 +f 72/107/50 73/108/51 71/106/50 +f 74/109/51 75/110/52 73/108/51 +f 51/111/52 76/112/53 75/110/52 +f 76/112/53 57/89/42 59/91/42 +f 73/108/54 77/113/55 71/106/55 +f 71/106/55 78/114/56 69/104/56 +f 68/101/57 78/115/56 79/116/57 +f 66/102/58 79/117/57 80/118/58 +f 66/99/58 81/119/59 64/97/59 +f 64/97/59 82/120/60 62/95/60 +f 76/112/61 83/121/62 84/122/61 +f 58/90/63 83/123/62 59/91/62 +f 62/95/60 85/124/64 61/93/64 +f 75/110/65 84/125/61 86/126/65 +f 61/93/64 87/127/63 58/90/63 +f 75/110/65 88/128/54 73/108/54 +f 78/129/49 55/130/48 79/131/48 +f 86/132/52 89/133/51 88/134/51 +f 82/135/45 54/136/44 85/137/44 +f 79/131/48 90/138/47 80/139/47 +f 88/134/51 91/140/50 77/141/50 +f 85/137/44 92/142/43 87/143/43 +f 83/144/42 93/145/53 84/146/53 +f 80/147/47 94/148/46 81/149/46 +f 77/141/50 95/150/49 78/129/49 +f 87/143/43 96/151/42 83/144/42 +f 84/146/53 56/152/52 86/132/52 +f 81/149/46 97/153/45 82/135/45 +f 17/21/7 98/154/8 15/22/8 +f 2/24/9 50/80/9 18/25/10 +f 19/27/11 14/155/11 13/28/12 +f 21/30/13 27/38/13 22/31/3 +f 24/33/14 99/156/14 25/34/15 +f 23/32/3 22/31/3 26/36/15 +f 21/30/13 99/156/14 24/33/14 +f 28/39/16 44/63/36 29/40/17 +f 31/42/19 46/65/38 32/43/20 +f 34/45/22 41/55/30 35/46/23 +f 37/48/25 47/66/39 38/49/26 +f 40/51/28 26/53/29 22/58/33 +f 30/41/18 29/40/17 24/67/31 +f 34/45/22 27/61/34 24/56/31 +f 37/48/25 39/50/27 22/69/33 +f 45/64/37 42/57/32 39/71/27 +f 36/47/24 47/157/39 37/73/25 +f 31/42/19 38/49/26 47/66/39 +f 45/64/37 31/42/19 33/44/21 +f 36/47/24 35/46/23 32/43/20 +f 44/63/36 28/39/16 33/44/21 +f 43/62/35 28/158/16 30/74/18 +f 41/55/30 29/159/17 44/75/36 +f 42/57/32 45/64/37 43/62/35 +f 48/76/40 20/29/12 13/28/12 +f 1/23/7 14/155/11 19/27/11 +f 3/78/41 16/26/10 18/25/10 +f 15/22/8 98/154/8 50/80/9 +f 12/81/40 3/78/41 49/79/41 +f 53/85/14 60/160/14 57/161/14 +f 57/161/14 100/162/14 51/83/14 +f 51/83/14 74/163/14 72/164/14 +f 72/164/14 70/165/14 51/83/14 +f 70/165/14 52/84/14 51/83/14 +f 52/84/14 67/166/14 65/167/14 +f 65/167/14 63/168/14 53/85/14 +f 53/85/14 57/161/14 51/83/14 +f 52/84/14 65/167/14 53/85/14 +f 56/88/3 93/169/3 96/170/3 +f 96/170/3 92/171/3 54/86/3 +f 54/86/3 97/172/3 94/173/3 +f 94/173/3 90/174/3 55/87/3 +f 55/87/3 95/175/3 91/176/3 +f 91/176/3 89/177/3 55/87/3 +f 89/177/3 56/88/3 55/87/3 +f 56/88/3 96/170/3 54/86/3 +f 54/86/3 94/173/3 55/87/3 +f 57/89/42 60/92/43 58/90/43 +f 60/92/43 53/94/44 61/93/44 +f 53/94/44 63/96/45 62/95/45 +f 63/96/45 65/98/46 64/97/46 +f 65/98/46 67/178/47 66/99/47 +f 67/100/47 52/103/48 68/101/48 +f 52/103/48 70/105/49 69/104/49 +f 70/105/49 72/107/50 71/106/50 +f 72/107/50 74/109/51 73/108/51 +f 74/109/51 51/111/52 75/110/52 +f 51/111/52 100/179/53 76/112/53 +f 76/112/53 100/179/53 57/89/42 +f 73/108/54 88/180/54 77/113/55 +f 71/106/55 77/181/55 78/114/56 +f 68/101/57 69/104/56 78/115/56 +f 66/102/58 68/101/57 79/117/57 +f 66/99/58 80/182/58 81/119/59 +f 64/97/59 81/183/59 82/120/60 +f 76/112/61 59/91/62 83/121/62 +f 58/90/63 87/184/63 83/123/62 +f 62/95/60 82/185/60 85/124/64 +f 75/110/65 76/112/61 84/125/61 +f 61/93/64 85/186/64 87/127/63 +f 75/110/65 86/187/65 88/128/54 +f 78/129/49 95/150/49 55/130/48 +f 86/132/52 56/152/52 89/133/51 +f 82/135/45 97/153/45 54/136/44 +f 79/131/48 55/130/48 90/138/47 +f 88/134/51 89/133/51 91/140/50 +f 85/137/44 54/136/44 92/142/43 +f 83/144/42 96/151/42 93/145/53 +f 80/147/47 90/188/47 94/148/46 +f 77/141/50 91/140/50 95/150/49 +f 87/143/43 92/142/43 96/151/42 +f 84/146/53 93/145/53 56/152/52 +f 81/149/46 94/148/46 97/153/45 +o Gun +v -0.115482 1.092648 -0.625000 +v -0.163318 1.208133 -0.625000 +v 0.163322 1.208133 -0.625000 +v 0.341508 0.966506 -0.500000 +v 0.125002 0.158494 -0.500000 +v -0.466504 0.750000 -0.500000 +v 0.341509 0.283494 0.500000 +v 0.466509 0.750000 0.500000 +v -0.341503 0.966506 0.500000 +v -0.312500 0.125000 -7.293341 +v -0.312500 0.206660 -7.375000 +v -0.312500 0.125000 -7.456659 +v 0.312500 0.125000 -7.456659 +v 0.312500 0.206660 -7.375000 +v 0.312500 0.125000 -7.293341 +v -0.187499 -0.250000 -8.000000 +v -0.249999 0.000000 -8.000000 +v -0.249999 -0.250000 -8.000000 +v 0.312501 -0.250000 -8.000000 +v 0.250001 0.000000 -8.000000 +v 0.250001 -0.250000 -8.000000 +v 0.000001 -0.250000 -8.000000 +v -0.187499 0.000000 -8.000000 +v 0.187501 -0.250000 -8.000000 +v 0.000001 0.000000 -8.000000 +v 0.187501 0.000000 -8.000000 +v -0.312499 0.000000 -8.000000 +v -0.312499 -0.250000 -8.000000 +v -0.312499 0.250000 -8.000000 +v 0.312501 0.000000 -8.000000 +v 0.250001 0.250000 -8.000000 +v -0.249999 0.250000 -8.000000 +v -0.312499 0.375000 -8.000000 +v 0.312501 0.250000 -8.000000 +v 0.250001 0.375000 -8.000000 +v 0.187500 0.750000 -6.500000 +v 0.375000 0.500000 -6.500000 +v 0.187500 0.500000 -6.500000 +v 0.375002 0.875000 -1.500000 +v 0.187502 1.062500 -1.500000 +v 0.187502 0.875000 -1.500000 +v 0.000002 1.062500 -1.500000 +v -0.187498 1.062500 -3.250000 +v -0.187498 1.062500 -1.500000 +v 0.000002 0.875000 -1.500000 +v 0.000002 0.500000 -1.500000 +v 0.187502 0.500000 -1.500000 +v -0.374998 0.875000 -1.500000 +v -0.374998 0.500000 -3.250000 +v -0.374998 0.500000 -1.500000 +v -0.187498 0.875000 -1.500000 +v -0.187498 0.500000 -1.500000 +v 0.375002 0.875000 -3.250000 +v 0.375002 0.500000 -1.500000 +v 0.375002 0.500000 -3.250000 +v 0.375001 0.750000 -3.500000 +v 0.187501 0.937500 -3.500000 +v 0.187502 1.062500 -3.250000 +v 0.000002 1.062500 -3.250000 +v 0.375001 0.750000 -5.625000 +v 0.187500 0.937500 -6.500000 +v 0.187501 0.937500 -5.625000 +v 0.000001 0.500000 -3.500000 +v 0.000001 0.750000 -5.000000 +v 0.000001 0.500000 -5.000000 +v 0.000001 0.750000 -3.500000 +v -0.124999 0.750000 -5.000000 +v -0.187498 0.875000 -3.250000 +v -0.374998 0.875000 -3.250000 +v 0.187501 0.937500 -5.375000 +v 0.187501 1.062500 -5.000000 +v 0.187501 0.937500 -5.000000 +v 0.000002 0.875000 -3.250000 +v -0.187498 0.500000 -3.250000 +v 0.000001 0.937500 -3.500000 +v 0.000000 0.937500 -6.500000 +v -0.125000 0.750000 -6.500000 +v -0.187500 0.937500 -6.500000 +v 0.000002 0.500000 -3.250000 +v 0.000000 0.750000 -6.500000 +v 0.000000 0.500000 -6.500000 +v 0.375000 0.750000 -6.500000 +v 0.375001 0.500000 -5.625000 +v 0.375001 0.500000 -3.500000 +v 0.375001 0.750000 -5.000000 +v 0.187501 1.062500 -6.375000 +v 0.187501 1.062500 -5.625000 +v 0.000001 0.750000 -5.375000 +v 0.000001 0.500000 -5.375000 +v 0.000001 0.500000 -5.625000 +v 0.000001 0.750000 -5.625000 +v 0.375001 0.500000 -5.000000 +v 0.375001 0.750000 -5.375000 +v 0.375001 0.500000 -5.375000 +v -0.187499 1.062500 -3.625000 +v -0.187499 0.937500 -3.500000 +v -0.187499 0.937500 -5.375000 +v -0.187499 1.062500 -5.625000 +v -0.187499 0.937500 -5.625000 +v -0.124999 0.750000 -5.375000 +v 0.000001 1.062500 -3.625000 +v -0.124999 0.750000 -5.625000 +v -0.124999 0.750000 -3.500000 +v -0.187499 0.937500 -5.000000 +v -0.374999 0.750000 -5.375000 +v 0.000001 1.062500 -6.375000 +v -0.187499 1.062500 -5.375000 +v 0.187501 1.062500 -5.375000 +v -0.374999 0.750000 -5.625000 +v -0.187499 0.500000 -5.625000 +v -0.374999 0.500000 -5.625000 +v -0.374999 0.500000 -5.375000 +v -0.187499 0.500000 -5.375000 +v 0.000001 1.062500 -5.625000 +v 0.187501 1.062500 -3.625000 +v 0.000001 1.062500 -5.000000 +v 0.000001 1.062500 -5.375000 +v -0.187499 1.062500 -5.000000 +v -0.187499 1.062500 -6.375000 +v 0.000002 0.375000 -1.500000 +v 0.375002 0.375000 -1.500000 +v 0.375001 0.375000 -5.000000 +v -0.187499 0.500000 -5.000000 +v -0.374998 0.375000 -1.500000 +v 0.000000 0.375000 -6.500000 +v -0.187500 0.500000 -6.500000 +v 0.375001 0.375000 -5.375000 +v 0.187500 0.375000 -6.500000 +v 0.375001 0.375000 -3.500000 +v 0.375002 0.375000 -3.250000 +v 0.187502 0.375000 -1.500000 +v 0.375000 0.375000 -6.500000 +v 0.375001 0.375000 -5.625000 +v -0.187498 0.375000 -1.500000 +v -0.187499 0.500000 -3.500000 +v -0.187500 0.375000 -6.500000 +v -0.375000 0.500000 -6.500000 +v -0.374999 0.375000 -5.000000 +v -0.374999 0.500000 -5.000000 +v -0.374999 0.375000 -3.500000 +v -0.374999 0.500000 -3.500000 +v -0.374999 0.375000 -5.625000 +v -0.374999 0.375000 -5.375000 +v -0.374998 0.375000 -3.250000 +v -0.437503 0.250003 -2.000000 +v -0.437504 0.000004 -1.000000 +v -0.437504 0.250004 -1.000000 +v -0.437504 0.000004 -0.500000 +v -0.437504 0.250004 -0.500000 +v 0.312494 0.000003 -2.000000 +v 0.437496 0.000004 -1.000000 +v 0.312492 0.000004 -1.000000 +v 0.312492 0.000004 -0.500000 +v 0.437496 0.250004 -0.500000 +v 0.312492 0.250004 -0.500000 +v 0.437496 0.000004 -0.500000 +v 0.312498 0.000001 -5.000000 +v 0.437497 0.000002 -4.000000 +v 0.312496 0.000002 -4.000000 +v 0.312495 0.000002 -3.375000 +v 0.437498 0.000003 -3.000000 +v 0.312496 0.000003 -3.000000 +v 0.250000 0.250000 -7.000000 +v 0.249999 0.000001 -6.500000 +v 0.250000 0.000000 -7.000000 +v -0.250000 0.250000 -7.500000 +v -0.250000 0.000000 -7.000000 +v -0.250000 0.250000 -7.000000 +v -0.437501 0.250001 -6.312500 +v -0.437501 0.000001 -6.000000 +v -0.437501 0.250001 -6.000000 +v -0.437502 0.000001 -5.187500 +v -0.437502 0.250001 -5.000001 +v -0.437502 0.250001 -5.187501 +v -0.437502 0.000001 -5.000000 +v -0.437503 0.250002 -4.000001 +v -0.437503 0.250002 -3.375000 +v -0.437502 0.000003 -3.000000 +v -0.437502 0.250003 -3.000000 +v -0.437503 0.250003 -2.500000 +v -0.437503 0.000003 -2.000000 +v 0.312498 0.000001 -5.187500 +v 0.312498 -0.124999 -5.000000 +v 0.312498 -0.124999 -5.187500 +v -0.312501 0.000001 -6.500000 +v -0.312501 -0.124999 -6.312500 +v -0.312501 0.000001 -6.312500 +v 0.312499 0.000001 -6.500000 +v 0.249999 -0.124999 -6.500000 +v -0.312502 0.000001 -5.000000 +v -0.250002 -0.124999 -5.000000 +v -0.250002 0.000001 -5.000000 +v 0.249999 0.375001 -6.500000 +v 0.312498 0.250001 -6.500000 +v 0.249998 0.250001 -6.500000 +v -0.312500 0.375001 -6.312500 +v -0.437502 0.375001 -6.500000 +v -0.437501 0.375001 -6.312500 +v 0.437499 0.375001 -6.312500 +v 0.312499 0.375001 -6.500000 +v 0.312500 0.375001 -6.312500 +v -0.437504 0.375004 -1.000000 +v -0.312508 0.375004 -0.500000 +v -0.312507 0.375004 -1.000000 +v -0.437503 0.375003 -2.000000 +v -0.312505 0.375003 -2.687501 +v -0.437502 0.375003 -3.000000 +v -0.437503 0.375003 -2.687500 +v 0.437497 0.375003 -2.500000 +v 0.437497 0.250003 -2.000000 +v 0.437497 0.250003 -2.500000 +v 0.437497 0.375002 -3.375000 +v 0.437498 0.250003 -3.000000 +v 0.437497 0.250002 -3.375000 +v 0.437498 0.375002 -5.000000 +v 0.437497 0.250002 -4.000000 +v 0.437498 0.250001 -5.000000 +v 0.437498 0.375001 -5.187500 +v 0.437498 0.250001 -5.187500 +v 0.437499 0.250001 -6.000000 +v 0.437499 0.250001 -6.312500 +v 0.437496 0.375004 -1.000000 +v 0.437496 0.250004 -1.000000 +v -0.312504 0.375002 -4.000000 +v -0.437503 0.375002 -3.625001 +v -0.312505 0.375002 -3.625000 +v 0.437497 0.375003 -2.000000 +v -0.312502 0.375002 -5.000000 +v -0.437503 0.375002 -4.000001 +v -0.312501 0.375001 -6.000000 +v -0.437501 0.375001 -5.687501 +v -0.312501 0.375001 -5.687500 +v 0.437497 0.000003 -2.000000 +v 0.250000 0.250000 -7.500000 +v 0.250000 0.000000 -7.500000 +v 0.437499 0.000001 -6.000000 +v 0.437499 0.000001 -6.312500 +v 0.437498 0.000001 -5.000000 +v 0.437498 0.000001 -5.187500 +v 0.437497 0.000002 -3.375000 +v 0.437497 0.000003 -2.500000 +v -0.437503 0.375003 -2.500000 +v -0.437503 0.375002 -3.375001 +v -0.437502 0.375002 -5.000001 +v -0.437502 0.375001 -5.187501 +v -0.437501 0.375001 -6.000000 +v 0.312492 0.375004 -0.500000 +v 0.437496 0.375004 -0.500000 +v -0.437504 0.375004 -0.500000 +v -0.250001 -0.124999 -6.000000 +v -0.250001 -0.124999 -6.312500 +v -0.250001 -0.124999 -5.687500 +v -0.312501 -0.124999 -6.000000 +v -0.312502 0.250001 -6.500000 +v -0.312501 0.375001 -6.500000 +v 0.437498 0.250001 -6.500000 +v -0.312508 0.250004 -0.500000 +v 0.249992 0.375004 -0.500000 +v 0.437499 0.375001 -5.687500 +v 0.312499 0.375001 -6.000000 +v 0.312499 0.375001 -5.687500 +v 0.437497 0.375002 -4.000000 +v 0.312498 0.375002 -5.000000 +v 0.312496 0.375002 -4.000000 +v 0.437497 0.375002 -3.625000 +v 0.312495 0.375002 -3.625000 +v 0.437497 0.375003 -2.687500 +v 0.312496 0.375003 -3.000000 +v 0.312495 0.375003 -2.687500 +v 0.312494 0.375003 -2.000000 +v 0.312493 0.375004 -1.000000 +v -0.250006 0.375003 -2.000001 +v -0.250007 0.375004 -1.000000 +v -0.250008 0.375004 -0.500000 +v -0.437502 0.000001 -6.500000 +v -0.437501 0.000001 -6.312500 +v 0.312499 0.000001 -6.312500 +v 0.312499 -0.124999 -6.000000 +v 0.312499 -0.124999 -6.312500 +v -0.250001 0.000001 -6.500000 +v -0.250002 0.250001 -6.500000 +v -0.312505 0.000003 -2.687500 +v -0.437503 0.000003 -2.687500 +v -0.312501 0.000001 -6.000000 +v -0.312501 -0.124999 -5.687500 +v -0.312501 0.000001 -5.687500 +v 0.437497 0.000003 -2.687500 +v 0.249995 0.000003 -2.500000 +v 0.249994 0.000003 -2.000000 +v -0.437503 0.000002 -3.375000 +v -0.312504 0.000003 -3.000000 +v -0.312504 0.000002 -4.000000 +v -0.437503 0.000002 -4.000000 +v 0.249996 0.000002 -4.000000 +v 0.249998 0.000001 -5.000000 +v -0.312502 0.000001 -5.187500 +v -0.312508 0.000004 -0.500000 +v 0.249992 0.000004 -1.000000 +v 0.249992 0.000004 -0.500000 +v 0.249992 0.250004 -0.500000 +v -0.312508 0.000004 -1.000000 +v -0.187506 0.000003 -2.000000 +v -0.250008 0.000004 -1.000000 +v -0.250006 0.000003 -2.000000 +v -0.000008 0.000004 -1.000000 +v -0.187508 0.000004 -1.000000 +v -0.000006 0.000003 -2.000000 +v 0.187492 0.000004 -1.000000 +v -0.250008 0.000004 -0.500000 +v -0.187508 0.250004 -0.500000 +v -0.250008 0.250004 -0.500000 +v -0.187508 0.000004 -0.500000 +v -0.000008 0.250004 -0.500000 +v -0.000008 0.000004 -0.500000 +v 0.187492 0.250004 -0.500000 +v 0.187492 0.000004 -0.500000 +v -0.250000 0.000000 -7.500000 +v -0.250000 -0.125000 -7.000000 +v -0.187500 0.000000 -7.500000 +v -0.250000 -0.125000 -7.500000 +v -0.187502 0.000001 -5.000000 +v -0.250004 0.000002 -4.000000 +v -0.000004 0.000002 -4.000000 +v -0.187504 0.000002 -4.000000 +v -0.000002 0.000001 -5.000000 +v 0.187496 0.000002 -4.000000 +v 0.312496 -0.187497 -3.000000 +v 0.312495 -0.187498 -3.375000 +v -0.250005 0.000002 -3.625000 +v -0.312505 -0.187498 -3.625000 +v -0.312505 0.000002 -3.625000 +v -0.250005 0.000003 -2.500000 +v -0.187505 0.000003 -2.500000 +v -0.000005 0.000003 -2.500000 +v 0.187494 0.000003 -2.000000 +v -0.187502 0.250001 -6.500000 +v -0.187500 0.250000 -7.000000 +v -0.000002 0.250001 -6.500000 +v 0.000000 0.250000 -7.000000 +v 0.187498 0.250001 -6.500000 +v 0.187500 0.250000 -7.000000 +v 0.250000 -0.125000 -7.000000 +v -0.250001 -0.124999 -6.500000 +v 0.187493 0.375004 -1.000000 +v 0.249993 0.375004 -1.000000 +v -0.000007 0.375004 -1.000000 +v 0.187492 0.375004 -0.500000 +v -0.187507 0.375004 -1.000000 +v -0.000008 0.375004 -0.500000 +v 0.249994 0.375003 -2.000000 +v -0.000006 0.375003 -2.000000 +v -0.187500 0.250000 -7.500000 +v -0.249999 0.250000 -7.750000 +v 0.000000 0.250000 -7.500000 +v -0.187499 0.250000 -7.750000 +v -0.249999 0.375000 -7.750000 +v 0.000001 0.250000 -7.750000 +v -0.187499 0.375000 -7.750000 +v -0.187508 0.375004 -0.500000 +v 0.187500 -0.124999 -5.687500 +v 0.249999 -0.124999 -6.000000 +v 0.249999 -0.124999 -5.687500 +v 0.187499 -0.187499 -5.375000 +v 0.249998 -0.499999 -5.375000 +v 0.187499 -0.499999 -5.375000 +v 0.249998 -0.187499 -5.000000 +v 0.312498 -0.499999 -5.000000 +v 0.312498 -0.187499 -5.000000 +v 0.187500 -0.124999 -6.312500 +v 0.249999 -0.124999 -6.312500 +v -0.250000 -0.625000 -7.000000 +v -0.250001 -0.687499 -6.500000 +v -0.250001 -0.624999 -6.500000 +v -0.250001 0.375001 -6.500000 +v -0.187501 0.375001 -6.500000 +v -0.000001 0.375001 -6.500000 +v 0.187498 0.000001 -5.187500 +v 0.187498 0.000001 -5.000000 +v 0.249998 -0.499999 -5.187500 +v 0.249998 -0.499999 -5.000000 +v -0.187502 0.000001 -5.187500 +v -0.187501 -0.687499 -6.500000 +v -0.187501 -0.624999 -6.500000 +v 0.249998 0.000001 -5.187500 +v -0.312502 -0.562499 -5.187500 +v -0.312502 -0.874999 -5.374999 +v -0.312502 -0.874999 -5.187499 +v 0.437498 0.000001 -5.375000 +v 0.312498 0.000001 -5.625000 +v 0.437499 0.000001 -5.625000 +v -0.312502 0.000001 -5.375000 +v -0.437501 0.000001 -5.625000 +v -0.312501 0.000001 -5.625000 +v -0.312502 -0.124999 -5.187500 +v 0.312498 0.375001 -5.375000 +v 0.312498 0.375001 -5.187500 +v -0.250002 -0.562499 -5.000000 +v -0.250002 -0.874999 -5.187499 +v -0.250002 -0.562499 -5.187500 +v -0.437501 0.375001 -5.625001 +v -0.437502 0.250001 -5.375001 +v -0.437502 0.375001 -5.375001 +v 0.437499 0.250001 -5.625000 +v -0.312502 0.375001 -5.375000 +v -0.312502 0.375001 -5.187500 +v 0.437499 0.375001 -5.625000 +v 0.437498 0.250001 -5.375000 +v 0.312498 -0.124999 -5.375000 +v 0.312498 -0.124999 -5.625000 +v -0.437501 0.250001 -5.625001 +v -0.187501 -0.562499 -5.375000 +v -0.000002 -0.562499 -5.187500 +v -0.187502 -0.562499 -5.187500 +v 0.187499 -0.874999 -5.187500 +v 0.249998 -0.874999 -5.374999 +v 0.249998 -0.874999 -5.187499 +v -0.250002 -0.874999 -5.374999 +v -0.250002 -0.562499 -5.375000 +v -0.312502 -0.562499 -5.000000 +v -0.250002 -0.874999 -4.999999 +v 0.312498 -0.562499 -5.000000 +v 0.312498 -0.874999 -5.187499 +v 0.312498 -0.562499 -5.187500 +v 0.312498 -0.562499 -5.375000 +v 0.249998 -0.562499 -5.375000 +v 0.249998 -0.124999 -5.000000 +v 0.249998 -0.187499 -5.187500 +v -0.312502 -0.562499 -5.375000 +v -0.187501 -0.874999 -5.187500 +v -0.187500 -0.874999 -5.375000 +v -0.312501 -0.124999 -6.500000 +v -0.312505 0.000003 -2.500000 +v -0.312506 0.000003 -2.000000 +v 0.312495 0.000002 -3.625000 +v 0.249995 -0.187498 -3.625000 +v 0.249995 0.000002 -3.625000 +v 0.000000 0.000000 -7.500000 +v -0.187500 -0.125000 -7.500000 +v -0.187506 0.375003 -2.000001 +v -0.187501 -0.124999 -5.687500 +v -0.187500 -0.124999 -6.000000 +v -0.187500 -0.124999 -6.312500 +v 0.187499 -0.562499 -5.375000 +v 0.187500 -0.874999 -5.375000 +v 0.249998 -0.562499 -5.000000 +v 0.312498 -0.874999 -4.999999 +v 0.312498 -0.874999 -5.374999 +v 0.312499 -0.124999 -5.687500 +v 0.187500 0.250000 -7.500000 +v 0.187500 -0.125000 -7.500000 +v 0.187500 0.000000 -7.500000 +v 0.187495 0.000003 -2.500000 +v 0.187501 0.250000 -7.750000 +v 0.187501 0.000000 -8.000000 +v 0.250001 0.000000 -7.750000 +v 0.187501 0.000000 -7.750000 +v 0.187499 0.375001 -6.500000 +v 0.000001 0.000000 -7.750000 +v -0.187499 0.000000 -7.750000 +v -0.249999 0.000000 -7.750000 +v 0.250001 0.250000 -7.750000 +v 0.250000 -0.125000 -7.500000 +v 0.000000 -0.125000 -7.500000 +v 0.250000 -0.625000 -7.000000 +v 0.249999 -0.687499 -6.500000 +v 0.250000 -0.687500 -7.000000 +v 0.187499 -0.624999 -6.500000 +v 0.249999 -0.624999 -6.500000 +v 0.249999 -0.124999 -5.625000 +v -0.187502 -0.124999 -5.375000 +v -0.250001 -0.124999 -5.625000 +v -0.187500 -0.124999 -5.625000 +v -0.437501 0.000001 -5.687500 +v -0.437501 0.250001 -5.687501 +v 0.312499 0.000001 -5.687500 +v 0.437499 0.250001 -5.687500 +v 0.437499 0.000001 -5.687500 +v 0.249998 -0.124999 -5.375000 +v 0.187500 -0.124999 -5.625000 +v -0.312502 -0.124999 -5.375000 +v 0.437498 0.375001 -5.375000 +v 0.312499 0.375001 -5.625000 +v -0.250002 -0.124999 -5.375000 +v -0.312501 -0.124999 -5.625000 +v -0.312501 0.375001 -5.625000 +v -0.250002 -0.187499 -5.375000 +v -0.312502 -0.499999 -5.375000 +v -0.312502 -0.187499 -5.375000 +v -0.250002 -0.499999 -5.000000 +v -0.250002 -0.187499 -5.187500 +v -0.250002 -0.187499 -5.000000 +v 0.312498 -0.187499 -5.375000 +v 0.249998 -0.187499 -5.375000 +v 0.312498 -0.499999 -5.187500 +v 0.312498 -0.187499 -5.187500 +v 0.249998 -0.124999 -5.187500 +v -0.312502 -0.187499 -5.000000 +v -0.187501 -0.187499 -5.375000 +v -0.250002 -0.499999 -5.375000 +v -0.312502 -0.499999 -5.187500 +v -0.312502 -0.187499 -5.187500 +v -0.000001 -0.562499 -5.375000 +v -0.000001 -0.499999 -5.375000 +v 0.250000 -0.187500 -7.000000 +v 0.250000 -0.375000 -7.187466 +v 0.250000 -0.187500 -7.428173 +v -0.250000 -0.375000 -7.000000 +v -0.250000 -0.625000 -7.124958 +v -0.250000 -0.187500 -7.000000 +v -0.250000 -0.375000 -7.187466 +v -0.187500 -0.187500 -7.500000 +v 0.187499 -0.124999 -6.500000 +v 0.249999 -0.187499 -6.500000 +v 0.187499 -0.374999 -6.500000 +v 0.249999 -0.374999 -6.500000 +v 0.250000 -0.375000 -7.000000 +v -0.250000 -0.187500 -7.428173 +v -0.187501 -0.187499 -6.500000 +v -0.187501 -0.124999 -6.500000 +v -0.250001 -0.374999 -6.500000 +v -0.187501 -0.374999 -6.500000 +v 0.000000 -0.187500 -7.500000 +v -0.250001 -0.187499 -6.500000 +v 0.312499 -0.124999 -6.500000 +v 0.312499 0.000001 -6.000000 +v 0.437498 0.000001 -6.500000 +v 0.437498 0.375001 -6.500000 +v 0.437499 0.375001 -6.000000 +v -0.437502 0.250001 -6.500000 +v 0.187499 -0.687499 -6.500000 +v -0.000000 -0.687499 -6.312500 +v -0.000001 -0.687499 -6.500000 +v -0.187500 -0.374999 -6.312500 +v -0.187500 -0.624999 -6.312500 +v 0.187500 -0.187499 -6.312500 +v 0.187499 -0.187499 -6.500000 +v 0.187500 -0.687499 -6.312500 +v -0.187500 -0.687499 -6.312500 +v 0.187500 -0.374999 -6.312500 +v -0.187500 -0.187499 -6.312500 +v 0.187500 -0.187499 -6.000000 +v -0.000000 -0.687499 -6.000000 +v 0.187500 -0.624999 -6.312500 +v 0.187500 -0.687499 -6.000000 +v -0.187500 -0.687499 -6.000000 +v -0.187500 -0.624999 -6.000000 +v 0.187500 -0.124999 -6.000000 +v 0.187500 -0.187499 -5.687500 +v 0.187500 -0.624999 -5.691199 +v 0.187500 -0.687499 -5.687500 +v -0.187500 -0.187499 -5.687500 +v -0.187500 -0.624999 -5.687500 +v 0.187500 -0.624999 -5.625000 +v 0.187500 -0.187499 -5.625000 +v -0.187500 -0.187499 -5.625000 +v -0.187500 -0.499999 -5.687500 +v -0.187500 -0.499999 -5.625000 +v 0.187500 -0.499999 -5.687500 +v 0.187500 -0.499999 -5.625000 +v -0.187500 -0.624999 -5.625000 +v -0.250002 0.000001 -5.187500 +v -0.250002 -0.124999 -5.187500 +v -0.312502 -0.124999 -5.000000 +v 0.249998 -0.562499 -5.187500 +v -0.000002 0.000001 -5.187500 +v 0.187498 -0.124999 -5.375000 +v -0.187501 -0.499999 -5.375000 +v -0.187500 -0.687499 -5.687500 +v 0.187500 -0.624999 -6.000000 +v -0.187500 -0.187499 -6.000000 +v 0.187499 -0.812499 -6.500000 +v -0.187501 -0.812499 -6.500000 +v 0.250000 -0.625000 -7.124958 +v 0.250000 -0.687500 -7.124958 +v -0.250000 -0.687500 -7.124958 +v -0.250000 -0.750000 -7.000000 +v -0.250000 -0.687500 -7.000000 +v 0.250000 -0.750000 -7.000000 +v 0.249999 -0.999999 -6.812462 +v 0.250000 -1.000000 -7.187500 +v -0.250001 -0.999999 -6.812464 +v -0.250000 -1.000000 -7.187500 +v -0.250001 -0.749999 -6.500000 +v -0.250000 -1.250000 -7.375000 +v -0.250000 -1.000000 -7.249994 +v -0.250000 -1.250000 -7.557529 +v -0.250000 -0.750000 -7.124958 +v 0.250000 -0.750000 -7.124958 +v 0.250000 -1.000000 -7.249994 +v 0.249999 -0.749999 -6.500000 +v 0.250000 -1.537015 -7.749912 +v 0.250000 -1.500000 -7.562500 +v 0.250000 -1.749999 -7.562450 +v 0.250000 -1.250000 -7.557529 +v 0.250000 -1.500000 -7.750004 +v 0.250000 -1.250000 -7.375000 +v -0.250000 -1.500000 -7.562500 +v -0.250000 -1.537015 -7.749912 +v -0.250000 -1.749999 -7.562450 +v -0.250000 -1.500000 -7.750004 +v 0.187500 -0.187500 -7.500000 +v 0.249999 -0.804100 -6.567194 +v -0.250000 -1.875000 -7.132376 +v -0.250000 -1.890714 -7.265713 +v -0.250000 -1.926450 -7.158102 +v 0.249999 -1.749981 -7.187485 +v 0.250000 -1.890714 -7.265713 +v -0.312502 -0.499999 -5.000000 +v 0.312498 -0.499999 -5.375000 +v -0.312502 -0.874999 -4.999999 +v 0.312498 0.000001 -5.375000 +v -0.437502 0.000001 -5.375000 +v 0.187498 -0.124999 -5.187500 +v -0.000002 -0.124999 -5.187500 +v 0.187498 -0.562499 -5.187500 +v -0.187502 -0.124999 -5.187500 +v -0.187502 -0.499999 -5.187500 +v -0.187502 -0.187499 -5.187500 +v 0.187498 -0.187499 -5.187500 +v -0.000002 -0.187499 -5.187500 +v 0.187498 -0.499999 -5.187500 +v -0.000002 -0.499999 -5.187500 +v 0.249998 -0.874999 -4.999999 +v -0.250002 -0.499999 -5.187500 +v 0.187495 0.000002 -3.625000 +v -0.000005 0.000002 -3.625000 +v -0.187505 0.000002 -3.625000 +v -0.437503 0.000002 -3.625000 +v 0.312495 0.375002 -3.375000 +v 0.437497 0.000002 -3.625000 +v -0.312505 0.375002 -3.375000 +v 0.437497 0.250002 -3.625000 +v -0.437503 0.250002 -3.625000 +v 0.249995 0.000003 -2.687500 +v 0.249995 -0.124997 -2.687500 +v -0.312505 -0.187498 -3.375000 +v -0.312505 0.000002 -3.375000 +v 0.312495 0.000003 -2.500000 +v -0.437503 0.000003 -2.500000 +v 0.312495 0.375003 -2.500000 +v 0.437497 0.250003 -2.687500 +v -0.312506 0.375003 -2.000001 +v -0.437503 0.250003 -2.687500 +v 0.249995 -0.624998 -3.375000 +v 0.249995 -0.187498 -3.375000 +v -0.312504 -0.624997 -3.000000 +v -0.312504 -0.187497 -3.000000 +v -0.250005 -0.187498 -3.625000 +v -0.250005 -0.624998 -3.375000 +v -0.250005 -0.624998 -3.625000 +v -0.250004 -0.624997 -3.000000 +v -0.250004 -0.187497 -3.000000 +v -0.312505 -0.624998 -3.625000 +v -0.187505 -0.187498 -3.375000 +v -0.250005 -0.187498 -3.375000 +v 0.187495 -0.124997 -2.687500 +v -0.000005 -0.124997 -2.687500 +v -0.187505 -0.124997 -2.687500 +v -0.250005 -0.124997 -2.687500 +v 0.249996 0.000003 -3.000000 +v -0.250004 0.000003 -3.000000 +v -0.250005 0.000003 -2.687500 +v -0.187504 -0.187497 -3.000000 +v -0.000004 -0.187497 -3.000000 +v 0.187496 -0.187497 -3.000000 +v 0.437498 0.375003 -3.000000 +v 0.312495 0.000003 -2.687500 +v 0.249996 -0.187497 -3.000000 +v -0.312505 0.375003 -2.500001 +v -0.000004 -0.187498 -3.375000 +v -0.187505 -0.624998 -3.375000 +v -0.250005 0.000002 -3.375000 +v -0.187505 0.000002 -3.375000 +v -0.000004 -0.624997 -3.000000 +v -0.312504 0.375003 -3.000000 +v 0.312495 -0.187498 -3.625000 +v 0.312496 -0.624997 -3.000000 +v 0.249996 -0.624997 -3.000000 +v -0.187504 -0.624997 -3.000000 +v -0.000004 -0.624998 -3.375000 +v 0.187496 -0.624997 -3.000000 +v -0.312505 -0.624998 -3.375000 +v 0.187495 -0.624998 -3.375000 +v 0.249995 -0.624998 -3.625000 +v 0.312495 -0.624998 -3.375000 +v 0.187495 -0.187498 -3.375000 +v 0.312495 -0.624998 -3.625000 +v 0.249995 0.000002 -3.375000 +v 0.187495 0.000002 -3.375000 +v -0.000004 0.000002 -3.375000 +v 0.000001 0.000000 -8.000000 +v -0.187499 0.000000 -8.000000 +v -0.249999 0.000000 -8.000000 +v 0.250001 0.250000 -8.000000 +v 0.250001 0.000000 -8.000000 +v -0.249999 0.250000 -8.000000 +v -0.249999 0.500000 -7.750000 +v 0.000002 0.499999 -9.000000 +v -0.187499 0.499998 -11.000000 +v -0.187498 0.499999 -9.000000 +v 0.000001 0.375000 -7.750000 +v 0.187501 0.375000 -7.750000 +v 0.000001 0.500000 -7.750000 +v -0.187499 0.500000 -8.000000 +v -0.187499 0.500000 -7.750000 +v 0.187501 0.500000 -7.750000 +v 0.000001 0.500000 -8.000000 +v -0.249999 0.750000 -7.750000 +v 0.250001 0.375000 -7.750000 +v 0.187502 0.499999 -9.000000 +v 0.000001 0.499998 -11.000000 +v 0.187501 0.750000 -7.750000 +v 0.125004 0.937500 -7.750000 +v 0.098594 0.875000 -7.750000 +v 0.250001 0.500000 -7.750000 +v -0.249999 0.750000 -8.000000 +v -0.187499 0.750000 -7.750000 +v -0.187499 0.750000 -8.000000 +v -0.098586 0.875000 -7.750000 +v -0.124996 0.937499 -8.000000 +v -0.098587 0.874999 -8.000000 +v -0.124996 0.937500 -7.750000 +v -0.249998 0.749999 -9.000000 +v 0.187501 0.500000 -8.000000 +v -0.098588 0.874999 -9.000000 +v -0.187498 0.749999 -9.000000 +v -0.124998 0.937499 -9.000000 +v -0.000000 -0.499999 -5.625000 +v -0.000000 -0.624999 -5.625000 +v -0.000000 -0.687499 -5.687500 +v -0.250001 -1.249999 -7.000000 +v 0.249999 -1.249999 -7.000000 +v -0.250001 -0.804100 -6.567196 +v -0.250001 -1.499999 -7.187477 +v 0.249999 -1.499999 -7.187477 +v 0.250000 -1.875000 -7.132376 +v 0.250000 -1.926450 -7.158102 +v -0.250001 -1.749981 -7.187485 +v -0.250000 0.750000 -6.500000 +v -0.249999 0.500000 -6.000000 +v -0.250000 0.500000 -6.500000 +v -0.249999 0.750000 -6.000000 +v -0.374999 0.500000 -6.000000 +v -0.374999 0.750000 -6.000000 +v -0.375000 0.500000 -6.500000 +v -0.375000 0.750000 -6.500000 +v -0.375899 0.625000 -5.999100 +v -0.438399 0.500000 -5.999100 +v -0.375899 0.500000 -5.999100 +v -0.438399 0.625000 -5.999100 +v -0.438399 0.500000 -6.124100 +v -0.375899 0.500000 -6.124100 +v -0.438399 0.625000 -6.124100 +v -0.438399 0.625000 -6.186600 +v -0.375899 0.500000 -6.186600 +v -0.438399 0.500000 -6.186600 +v -0.375899 0.625000 -6.124100 +v -0.500899 0.625000 -6.124100 +v -0.500899 0.500000 -6.186600 +v -0.500899 0.500000 -6.124100 +v -0.500899 0.625000 -6.186600 +v -0.115482 1.323617 -0.625000 +v 0.000002 1.371453 -0.625000 +v 0.115487 1.323617 -0.625000 +v 0.115487 1.092648 -0.625000 +v 0.000002 1.044812 -0.625000 +v -0.341504 0.966506 -0.500000 +v -0.124998 1.272706 -0.500000 +v 0.125002 1.272706 -0.500000 +v 0.466508 0.750000 -0.500000 +v 0.466508 0.500000 -0.500000 +v 0.341508 0.283494 -0.500000 +v -0.124998 0.158494 -0.500000 +v -0.341504 0.283494 -0.500000 +v -0.466504 0.500000 -0.500000 +v 0.125003 1.272706 0.500000 +v -0.124997 1.272706 0.500000 +v -0.466503 0.750000 0.500000 +v -0.466503 0.500000 0.500000 +v -0.341503 0.283494 0.500000 +v -0.124997 0.158494 0.500000 +v 0.125003 0.158494 0.500000 +v 0.466509 0.500000 0.500000 +v 0.341509 0.966506 0.500000 +v -0.312500 0.043340 -7.375000 +v -0.312500 0.067258 -7.317257 +v -0.312500 0.182743 -7.317257 +v -0.312500 0.182743 -7.432743 +v -0.312500 0.067258 -7.432743 +v 0.312500 0.067258 -7.317257 +v 0.312500 0.043340 -7.375000 +v 0.312500 0.067258 -7.432743 +v 0.312500 0.182743 -7.432743 +v 0.312500 0.182743 -7.317257 +v -0.249999 0.375000 -8.000000 +v 0.312501 0.375000 -8.000000 +v -0.375000 0.375000 -6.500000 +v 0.187494 0.375003 -2.000000 +v -0.000001 -0.812499 -6.500000 +v 0.187501 0.499998 -11.000000 +v 0.250001 0.750000 -7.750000 +v -0.375899 0.625000 -6.186600 +v -0.115481 1.323617 0.625000 +v 0.000003 1.371453 0.625000 +v -0.163317 1.208133 0.625000 +v -0.115481 1.092648 0.625000 +v 0.000003 1.044812 0.625000 +v 0.115488 1.092648 0.625000 +v 0.163323 1.208133 0.625000 +v 0.115488 1.323617 0.625000 +v -0.250000 0.067258 -7.317257 +v -0.250000 0.125000 -7.293341 +v -0.250000 0.043340 -7.375000 +v -0.250000 0.067258 -7.432743 +v -0.250000 0.125000 -7.456659 +v -0.250000 0.182743 -7.432743 +v -0.250000 0.206660 -7.375000 +v -0.250000 0.182743 -7.317257 +v 0.250000 0.067258 -7.317257 +v 0.250000 0.125000 -7.293341 +v 0.250000 0.043340 -7.375000 +v 0.250000 0.067258 -7.432743 +v 0.250000 0.125000 -7.456659 +v 0.250000 0.182743 -7.432743 +v 0.250000 0.206660 -7.375000 +v 0.250000 0.182743 -7.317257 +v -0.312501 0.375000 -11.000000 +v -0.312499 0.250000 -11.625000 +v -0.312501 0.250000 -11.000000 +v -0.312501 0.250000 -9.000000 +v -0.312499 0.375000 -9.000000 +v -0.312501 0.250000 -10.000000 +v -0.312501 0.375000 -10.500000 +v -0.312501 0.250000 -10.500000 +v -0.312500 0.375000 -10.000000 +v -0.312501 -0.250000 -11.000000 +v -0.312500 -0.625000 -11.625000 +v -0.312501 -0.625000 -11.000000 +v -0.312501 -0.250000 -10.500000 +v -0.312501 -0.625000 -10.500000 +v -0.312501 -0.000000 -10.000000 +v -0.312501 -0.250000 -10.000000 +v -0.312501 -0.000000 -10.500000 +v -0.312501 -0.000000 -9.000000 +v -0.312500 -0.250000 -9.000000 +v -0.312501 -0.000000 -11.000000 +v -0.312500 -0.250000 -11.625000 +v -0.249999 1.000000 -11.000000 +v -0.312500 0.625000 -11.625000 +v -0.312500 0.625000 -11.000000 +v -0.249999 -0.625000 -11.937500 +v -0.312499 -0.250000 -11.937500 +v -0.249999 -0.250000 -11.937500 +v 0.250001 0.375000 -9.000000 +v 0.312499 0.375000 -10.000000 +v 0.250000 0.375000 -10.000000 +v 0.250000 0.625000 -10.500000 +v 0.250001 1.000000 -11.000000 +v 0.187501 1.000000 -11.000000 +v 0.250001 0.625000 -11.937500 +v 0.250001 0.937500 -12.000000 +v 0.312501 0.625000 -11.937500 +v 0.250001 0.375000 -11.937500 +v 0.312501 0.250000 -11.937500 +v 0.250001 0.250000 -11.937500 +v -0.187499 1.000000 -11.625000 +v -0.187499 1.000000 -11.000000 +v -0.312499 -0.375000 -9.000000 +v -0.249999 -0.375000 -9.000000 +v -0.250000 0.375000 -10.000000 +v -0.249999 0.375000 -9.000000 +v -0.250000 0.625000 -10.500000 +v -0.312500 0.625000 -10.500000 +v 0.312501 0.375000 -9.000000 +v -0.187500 -1.000000 -11.625000 +v -0.125000 -1.000000 -11.000000 +v -0.187500 -1.000000 -11.000000 +v -0.125000 -1.000000 -11.625000 +v 0.000000 -1.000000 -11.000000 +v -0.000000 -1.000000 -11.625000 +v 0.125000 -1.000000 -11.000000 +v -0.124999 1.000000 -11.000000 +v 0.000001 1.000000 -11.000000 +v -0.124999 1.000000 -11.625000 +v 0.125001 1.000000 -11.000000 +v 0.000001 1.000000 -11.625000 +v -0.124999 -0.937500 -12.000000 +v 0.000001 -0.937500 -12.000000 +v 0.312500 0.625000 -10.500000 +v -0.125000 -1.000000 -10.500000 +v -0.187500 -1.000000 -10.500000 +v 0.000000 -1.000000 -10.500000 +v 0.125000 -1.000000 -10.500000 +v -0.187499 -0.937500 -12.000000 +v 0.187501 -0.937500 -12.000000 +v 0.250000 -1.000000 -11.625000 +v 0.187501 -1.000000 -11.625000 +v -0.312500 -0.500000 -10.000000 +v -0.250000 -0.500000 -10.000000 +v 0.187501 0.937500 -12.000000 +v 0.250001 1.000000 -11.625000 +v -0.250000 -1.000000 -11.000000 +v 0.250000 -0.625000 -10.375000 +v 0.312500 -0.500000 -10.000000 +v 0.250000 -0.500000 -10.000000 +v 0.187501 1.000000 -11.625000 +v 0.125001 0.937500 -12.000000 +v 0.125001 1.000000 -11.625000 +v -0.250000 -0.625000 -10.375000 +v -0.250000 -1.000000 -10.500000 +v 0.125000 -1.000000 -11.625000 +v 0.187499 -1.000000 -11.000000 +v 0.000001 0.937500 -12.000000 +v 0.187500 -1.000000 -10.500000 +v 0.125001 -0.937500 -12.000000 +v 0.250001 -0.625000 -11.937500 +v 0.250001 -0.937500 -12.000000 +v -0.124999 0.937500 -12.000000 +v -0.187499 0.937500 -12.000000 +v -0.249999 0.937500 -12.000000 +v -0.249999 1.000000 -11.625000 +v -0.312499 -0.000000 -11.937500 +v -0.249999 -0.000000 -11.937500 +v 0.250001 -0.000000 -11.937500 +v 0.312501 -0.250000 -11.937500 +v 0.250001 -0.250000 -11.937500 +v 0.250000 -1.000000 -10.500000 +v 0.312500 -0.625000 -10.375000 +v -0.249999 -0.937500 -12.000000 +v -0.312499 -0.625000 -11.937500 +v 0.312501 0.375000 -11.937500 +v -0.187500 0.625000 -10.500000 +v 0.000000 0.625000 -10.500000 +v 0.187500 0.625000 -10.500000 +v -0.187499 0.625000 -11.937500 +v -0.250000 0.625000 -11.937500 +v 0.000001 0.625000 -11.937500 +v 0.187501 0.625000 -11.937500 +v -0.187499 -0.250000 -11.937500 +v -0.187499 -0.000000 -11.937500 +v 0.000001 -0.250000 -11.937500 +v 0.000001 -0.000000 -11.937500 +v 0.187501 -0.250000 -11.937500 +v -0.187499 -0.625000 -11.937500 +v 0.000001 -0.625000 -11.937500 +v 0.187501 -0.625000 -11.937500 +v -0.249999 0.250000 -11.937500 +v -0.187499 0.375000 -11.937500 +v -0.187499 0.250000 -11.937500 +v 0.000001 0.250000 -11.937500 +v 0.000001 0.375000 -11.937500 +v 0.187501 0.250000 -11.937500 +v 0.187501 -0.000000 -11.937500 +v 0.187501 0.375000 -11.937500 +v -0.250001 0.375000 -11.937500 +v -0.312500 -0.625000 -10.375000 +v 0.250001 -0.375000 -9.000000 +v -0.312499 0.250000 -11.937500 +v -0.312501 0.375000 -11.937500 +v 0.249999 -1.000000 -11.000000 +v 0.000000 -0.625000 -10.375000 +v -0.187500 -0.625000 -10.375000 +v 0.187500 -0.625000 -10.375000 +v 0.187500 -0.500000 -10.000000 +v -0.187500 -0.500000 -10.000000 +v 0.000000 -0.500000 -10.000000 +v 0.000001 -0.375000 -9.000000 +v 0.187501 -0.375000 -9.000000 +v -0.187499 -0.375000 -9.000000 +v -0.250000 -1.000000 -11.625000 +v -0.312500 0.625000 -11.937500 +v 0.312501 -0.625000 -11.937500 +v 0.312501 -0.375000 -9.000000 +v 0.312501 -0.000000 -11.937500 +v 0.312499 -0.000000 -9.000000 +v 0.312499 -0.250000 -9.000000 +v 0.312501 -0.000000 -11.625000 +v 0.312499 -0.250000 -11.000000 +v 0.312500 -0.250000 -11.625000 +v 0.312499 -0.000000 -10.500000 +v 0.312498 -0.250000 -10.000000 +v 0.312499 -0.250000 -10.500000 +v 0.312499 -0.000000 -10.000000 +v 0.312500 0.625000 -11.000000 +v 0.312501 0.625000 -11.625000 +v 0.312499 -0.000000 -11.000000 +v 0.312499 -0.625000 -10.500000 +v 0.312499 -0.625000 -11.000000 +v 0.312500 -0.625000 -11.625000 +v 0.312499 0.375000 -11.000000 +v 0.312499 0.250000 -10.500000 +v 0.312499 0.250000 -11.000000 +v 0.312499 0.250000 -9.000000 +v 0.312499 0.250000 -10.000000 +v 0.312499 0.375000 -10.500000 +v 0.312501 0.375000 -11.625000 +v 0.312501 0.250000 -11.625000 +v -0.312499 -0.000000 -11.625000 +v -0.312501 0.375000 -11.625000 +v 0.000000 0.375000 -10.000000 +v 0.187500 0.375000 -10.000000 +v -0.187500 0.375000 -10.000000 +v -0.249999 0.375000 -8.000000 +v 0.187500 -0.625000 -7.187500 +v 0.000000 -0.687500 -7.187500 +v 0.000000 -0.625000 -7.187500 +v -0.187500 -0.687500 -7.187500 +v -0.187500 -0.625000 -7.187500 +v 0.000000 -0.375000 -7.257999 +v -0.187500 -0.375000 -7.257999 +v -0.187500 -0.750000 -7.187500 +v 0.187500 -0.687500 -7.187500 +v 0.000000 -0.750000 -7.187500 +v 0.000000 -1.000000 -7.320660 +v -0.187500 -1.000000 -7.320660 +v 0.187500 -1.000000 -7.320660 +v -0.000001 -0.999999 -6.750000 +v -0.000001 -1.499999 -7.125000 +v -0.187501 -1.249999 -6.937500 +v -0.187501 -1.499999 -7.125000 +v -0.000001 -1.874999 -7.062500 +v -0.187501 -1.749999 -7.125000 +v -0.187501 -1.874999 -7.062500 +v -0.000001 -1.749999 -7.125000 +v 0.187499 -1.749999 -7.124998 +v -0.000001 -1.249999 -6.937500 +v -0.187501 -0.999999 -6.750000 +v 0.187499 -1.249999 -6.937498 +v 0.187499 -0.999999 -6.749998 +v 0.000000 -1.500000 -7.812500 +v 0.187500 -1.562500 -7.812498 +v 0.000000 -1.562500 -7.812498 +v 0.000000 -1.250000 -7.628700 +v 0.187500 -1.500000 -7.812500 +v 0.187500 -1.250000 -7.628700 +v -0.187500 -1.500000 -7.812500 +v -0.187500 -1.562500 -7.812498 +v -0.187500 -1.250000 -7.628700 +v 0.187499 -1.874999 -7.062498 +v -0.000001 -1.999999 -7.125000 +v 0.187500 -1.999999 -7.124998 +v -0.187500 -1.999999 -7.125000 +v 0.187499 -1.499999 -7.124998 +v -0.187500 -1.802307 -7.601681 +v 0.000000 -1.802307 -7.601681 +v -0.187500 -1.937500 -7.312498 +v 0.187500 -1.802307 -7.601681 +v 0.000000 -1.937500 -7.312498 +v 0.187500 -1.937500 -7.312498 +v 0.250001 0.500000 -8.000000 +v -0.249999 0.500000 -8.000000 +v 0.187501 0.750000 -8.000000 +v -0.249998 0.499999 -9.000000 +v -0.249999 0.374998 -11.000000 +v -0.249998 0.374999 -9.000000 +v 0.250002 0.374999 -9.000000 +v 0.250001 0.499998 -11.000000 +v 0.250002 0.499999 -9.000000 +v 0.250004 0.749999 -8.000000 +v 0.250001 0.749998 -11.000000 +v 0.250002 0.749999 -9.000000 +v -0.187499 0.749998 -11.000000 +v 0.187502 0.749999 -9.000000 +v 0.098593 0.874999 -8.000000 +v 0.098592 0.874999 -11.000000 +v 0.125004 0.937499 -8.000000 +v 0.124999 0.937498 -11.000000 +v -0.125001 0.937498 -11.000000 +v 0.125002 0.937499 -9.000000 +v 0.187501 0.749998 -11.000000 +v 0.250001 0.375000 -8.000000 +v -0.249999 0.749998 -11.000000 +v -0.249999 0.499998 -11.000000 +v -0.098591 0.874998 -11.000000 +v 0.187500 -0.750000 -7.187500 +v 0.187500 -0.375000 -7.257999 +v -0.093748 0.974879 -1.500000 +v -0.256127 0.881130 1.000000 +v -0.093747 0.974879 1.000000 +v -0.256128 0.881130 -1.500000 +v -0.349877 0.718750 1.000000 +v -0.349878 0.718750 -1.500000 +v -0.349877 0.531250 1.000000 +v -0.349878 0.531250 -1.500000 +v -0.256127 0.368870 1.000000 +v -0.256128 0.368870 -1.500000 +v -0.093747 0.275120 1.000000 +v 0.093752 0.275120 -1.500000 +v 0.093753 0.275120 1.000000 +v 0.256133 0.368870 1.000000 +v 0.256132 0.368870 -1.500000 +v 0.349883 0.531250 1.000000 +v 0.349882 0.531250 -1.500000 +v 0.349883 0.718750 1.000000 +v 0.349882 0.718750 -1.500000 +v 0.256133 0.881129 1.000000 +v 0.256132 0.881129 -1.500000 +v 0.093753 0.974879 1.000000 +v 0.093752 0.974879 -1.500000 +v -0.233250 0.687500 1.500000 +v 0.062503 0.391747 1.500000 +v -0.062494 0.391748 9.750000 +v -0.062497 0.391747 1.500000 +v 0.170756 0.795753 1.500000 +v -0.170750 0.795753 1.500000 +v 0.233256 0.687500 1.500000 +v 0.233256 0.562500 1.500000 +v 0.170756 0.454247 1.500000 +v -0.170750 0.454247 1.500000 +v -0.233250 0.562500 1.500000 +v 0.062503 0.858253 1.500000 +v -0.062497 0.858253 1.500000 +v -0.233247 0.687501 9.750000 +v 0.233259 0.687501 9.750000 +v 0.062506 0.391748 9.750000 +v -0.233247 0.562501 9.750000 +v 0.170759 0.795754 9.750000 +v -0.062494 0.858254 9.750000 +v 0.170759 0.454248 9.750000 +v -0.170747 0.454248 9.750000 +v 0.062506 0.858254 9.750000 +v -0.170747 0.795754 9.750000 +v 0.233259 0.562501 9.750000 +v -0.000008 0.000004 -0.755020 +v -0.173235 -0.249996 -0.826773 +v -0.000008 -0.249996 -0.755020 +v -0.173235 0.000004 -0.826773 +v -0.244988 -0.249996 -1.000000 +v -0.244988 0.000004 -1.000000 +v -0.173235 -0.249996 -1.173227 +v -0.173235 0.000004 -1.173227 +v -0.000008 -0.249996 -1.244980 +v -0.000008 0.000004 -1.244980 +v 0.173220 -0.249996 -1.173227 +v 0.173220 0.000004 -1.173227 +v 0.244972 -0.249996 -1.000000 +v 0.244972 0.000004 -1.000000 +v 0.173220 -0.249996 -0.826773 +v 0.173220 0.000004 -0.826773 +v 0.250001 0.374998 -11.000000 +v -0.093748 0.275120 -1.500000 +v 0.374992 -0.062496 -1.250000 +v 0.374992 -0.187496 -0.750000 +v 0.374992 -0.187496 -1.250000 +v -0.375008 -0.062496 -0.750000 +v 0.374992 -0.062496 -0.687500 +v 0.374992 -0.062496 -0.750000 +v -0.375008 -0.187496 -1.250000 +v -0.375008 -0.187496 -0.750000 +v -0.375008 -0.062496 -1.250000 +v -0.375008 -0.187496 -1.312500 +v -0.375008 -0.187496 -0.687500 +v 0.374992 -0.187496 -0.687500 +v -0.375008 -0.062496 -0.687500 +v -0.187508 -0.687496 -0.687500 +v 0.187492 -0.687496 -0.687500 +v -0.375008 -0.062496 -1.312500 +v 0.374992 -0.187496 -1.312500 +v 0.374992 -0.062496 -1.312500 +v -0.187508 -0.687496 -1.250000 +v 0.187492 -0.687496 -1.250000 +v -0.375008 -0.499996 -0.687500 +v 0.374992 -0.499996 -1.312500 +v 0.187492 -0.687496 -1.312500 +v 0.374992 -0.499996 -0.750000 +v -0.375008 -0.499996 -1.250000 +v 0.187492 -0.687496 -0.750000 +v -0.187508 -0.687496 -0.750000 +v -0.187508 -0.687496 -1.312500 +v 0.374992 -0.499996 -0.687500 +v -0.375008 -0.499996 -0.750000 +v -0.375008 -0.499996 -1.312500 +v 0.374992 -0.499996 -1.250000 +v 0.062500 -0.187499 -6.187500 +v 0.062500 -0.312499 -6.125000 +v 0.062500 -0.312499 -6.187500 +v -0.062500 -0.312499 -6.125000 +v -0.062500 -0.187499 -6.187500 +v -0.062500 -0.312499 -6.187500 +v -0.062500 -0.562499 -6.062500 +v -0.062500 -0.437499 -6.125000 +v -0.062500 -0.437499 -6.187500 +v 0.062500 -0.562499 -6.062500 +v 0.062500 -0.437499 -6.187500 +v 0.062500 -0.437499 -6.125000 +v 0.062500 -0.124999 -6.062500 +v 0.062500 -0.187499 -6.062500 +v -0.062500 -0.187499 -6.062500 +v -0.062500 -0.124999 -6.187500 +v 0.062500 -0.124999 -6.187500 +v -0.062500 -0.124999 -6.062500 +v 0.124999 -0.442256 -5.413582 +v 0.124999 -0.812629 -5.499346 +v 0.124999 -0.788711 -5.557089 +v 0.124999 -0.466174 -5.355840 +v -0.125001 -0.812629 -5.499346 +v -0.125001 -0.466174 -5.355840 +v -0.125001 -0.788711 -5.557089 +v -0.125001 -0.442256 -5.413582 +v 0.159801 1.241865 -0.687500 +v 0.644946 0.982933 -0.687500 +v 0.089144 1.344980 -0.687500 +v 0.136849 1.118991 -1.062500 +v 0.618837 0.942851 -1.062500 +v 0.555804 0.846085 -1.062500 +v 0.033735 1.048334 -1.062500 +v 0.466662 0.709238 -1.062500 +v -0.089140 1.071285 -1.062500 +v 0.492771 0.749320 -1.062500 +v 0.466662 0.709238 -0.687500 +v -0.089139 1.071285 -0.687500 +v 0.136849 1.118991 -0.687500 +v 0.618837 0.942851 -0.687500 +v 0.159801 1.241865 -1.062500 +v 0.644946 0.982933 -1.062500 +v 0.033735 1.048334 -0.687500 +v 0.492771 0.749320 -0.687500 +v 0.555804 0.846085 -0.687500 +v 0.089144 1.344980 -1.062500 +v 1.077873 0.643837 -0.687500 +v 1.200747 0.620886 -0.687500 +v 0.974758 0.573180 -1.062500 +v 1.077872 0.643837 -1.062500 +v 0.951807 0.450306 -1.062500 +v 1.022464 0.347191 -1.062500 +v 1.022464 0.347191 -0.687500 +v 0.974758 0.573180 -0.687500 +v 1.200747 0.620886 -1.062500 +v 0.951807 0.450305 -0.687500 +v 0.136849 1.118991 -1.125000 +v -0.159796 1.174400 -1.062500 +v -0.136845 1.297274 -1.125000 +v -0.159796 1.174400 -1.125000 +v 0.089144 1.344980 -1.125000 +v 0.033735 1.048334 -1.125000 +v -0.089140 1.071285 -1.125000 +v -0.136845 1.297274 -1.062500 +v -0.033731 1.367931 -1.125000 +v 0.159801 1.241865 -1.125000 +v -0.033731 1.367931 -1.062500 +v 0.159801 1.241865 -0.625000 +v -0.033731 1.367931 -0.625000 +v -0.159796 1.174400 -0.625000 +v -0.033731 1.367931 -0.687500 +v -0.136845 1.297274 -0.687500 +v -0.159796 1.174400 -0.687500 +v 0.033735 1.048334 -0.625000 +v 0.136849 1.118991 -0.625000 +v 0.089144 1.344980 -0.625000 +v -0.089140 1.071285 -0.625000 +v -0.136845 1.297274 -0.625000 +v 0.974758 0.573180 -2.562500 +v 1.145338 0.324240 -2.562500 +v 1.248453 0.394896 -1.062500 +v 1.145338 0.324240 -1.062500 +v 1.200747 0.620885 -2.562500 +v 0.951807 0.450305 -2.562500 +v 1.022464 0.347191 -2.562500 +v 1.248453 0.394896 -2.562500 +v 1.271404 0.517771 -1.062500 +v 1.077872 0.643837 -2.562500 +v 1.271404 0.517771 -2.562500 +v 1.271404 0.517771 -0.625000 +v 1.077873 0.643837 -0.625000 +v 0.951807 0.450305 -0.625000 +v 1.271404 0.517771 -0.687500 +v 1.248453 0.394897 -0.687500 +v 1.145338 0.324240 -0.687500 +v 0.974758 0.573180 -0.625000 +v 1.248453 0.394897 -0.625000 +v 1.145338 0.324240 -0.625000 +v 1.200747 0.620886 -0.625000 +v 1.022464 0.347191 -0.625000 +vt 0.712271 0.389253 +vt 0.714181 0.403050 +vt 0.701143 0.403049 +vt 0.726469 0.305411 +vt 0.734446 0.216313 +vt 0.756238 0.281538 +vt 0.751567 0.361696 +vt 0.756154 0.412933 +vt 0.726503 0.436712 +vt 0.152017 0.420167 +vt 0.152017 0.433749 +vt 0.147479 0.433749 +vt 0.161230 0.420206 +vt 0.161230 0.433711 +vt 0.156718 0.433711 +vt 0.160093 0.750000 +vt 0.169374 0.756944 +vt 0.160093 0.756944 +vt 0.160093 0.694444 +vt 0.169374 0.701389 +vt 0.160093 0.701389 +vt 0.160093 0.729167 +vt 0.169374 0.750000 +vt 0.160093 0.708333 +vt 0.169374 0.729167 +vt 0.169374 0.708333 +vt 0.169374 0.763889 +vt 0.160093 0.763889 +vt 0.259861 0.729167 +vt 0.250580 0.722222 +vt 0.259861 0.722222 +vt 0.259861 0.743056 +vt 0.250580 0.736111 +vt 0.259861 0.736111 +vt 0.250580 0.729167 +vt 0.245940 0.722222 +vt 0.250580 0.743056 +vt 0.245940 0.736111 +vt 0.412993 0.076389 +vt 0.406032 0.048611 +vt 0.412993 0.048611 +vt 0.220418 0.090278 +vt 0.213457 0.111111 +vt 0.213457 0.090278 +vt 0.408353 0.333333 +vt 0.343387 0.312500 +vt 0.408353 0.312500 +vt 0.206497 0.090278 +vt 0.206497 0.048611 +vt 0.213457 0.048611 +vt 0.408353 0.284722 +vt 0.343387 0.243056 +vt 0.408353 0.243056 +vt 0.199536 0.090278 +vt 0.192575 0.048611 +vt 0.199536 0.048611 +vt 0.285383 0.090278 +vt 0.220418 0.048611 +vt 0.285383 0.048611 +vt 0.294664 0.076389 +vt 0.199536 0.111111 +vt 0.192575 0.090278 +vt 0.206497 0.111111 +vt 0.294664 0.104167 +vt 0.285383 0.118056 +vt 0.220418 0.118056 +vt 0.285383 0.138889 +vt 0.220418 0.138889 +vt 0.373550 0.076389 +vt 0.406032 0.104167 +vt 0.373550 0.104167 +vt 0.308585 0.291667 +vt 0.252900 0.319444 +vt 0.252900 0.291667 +vt 0.408353 0.118056 +vt 0.352668 0.131944 +vt 0.352668 0.118056 +vt 0.324826 0.354167 +vt 0.324826 0.333333 +vt 0.331787 0.333333 +vt 0.338747 0.222222 +vt 0.352668 0.208333 +vt 0.352668 0.222222 +vt 0.331787 0.291667 +vt 0.317865 0.333333 +vt 0.324826 0.291667 +vt 0.294664 0.138889 +vt 0.419954 0.097222 +vt 0.424594 0.076389 +vt 0.426914 0.097222 +vt 0.317865 0.291667 +vt 0.308585 0.319444 +vt 0.419954 0.076389 +vt 0.419954 0.048611 +vt 0.412993 0.097222 +vt 0.406032 0.076389 +vt 0.373550 0.048611 +vt 0.294664 0.048611 +vt 0.350348 0.076389 +vt 0.329466 0.222222 +vt 0.301624 0.208333 +vt 0.329466 0.208333 +vt 0.334107 0.333333 +vt 0.343387 0.333333 +vt 0.238979 0.319444 +vt 0.238979 0.291667 +vt 0.350348 0.104167 +vt 0.229698 0.291667 +vt 0.197216 0.319444 +vt 0.197216 0.291667 +vt 0.229698 0.319444 +vt 0.350348 0.048611 +vt 0.364269 0.076389 +vt 0.364269 0.048611 +vt 0.410673 0.187500 +vt 0.403712 0.166667 +vt 0.410673 0.166667 +vt 0.338747 0.152778 +vt 0.329466 0.166667 +vt 0.329466 0.152778 +vt 0.338747 0.131944 +vt 0.338747 0.118056 +vt 0.410673 0.208333 +vt 0.403712 0.187500 +vt 0.364269 0.104167 +vt 0.296984 0.131944 +vt 0.329466 0.131944 +vt 0.408353 0.152778 +vt 0.417633 0.145833 +vt 0.417633 0.166667 +vt 0.408353 0.131944 +vt 0.352668 0.152778 +vt 0.283063 0.173611 +vt 0.280742 0.194444 +vt 0.273782 0.173611 +vt 0.294664 0.166667 +vt 0.301624 0.187500 +vt 0.294664 0.187500 +vt 0.338747 0.166667 +vt 0.329466 0.118056 +vt 0.296984 0.118056 +vt 0.417633 0.118056 +vt 0.338747 0.208333 +vt 0.257541 0.194444 +vt 0.255220 0.173611 +vt 0.264501 0.173611 +vt 0.257541 0.145833 +vt 0.264501 0.145833 +vt 0.273782 0.145833 +vt 0.292343 0.145833 +vt 0.283063 0.173611 +vt 0.283063 0.145833 +vt 0.280742 0.145833 +vt 0.264501 0.201389 +vt 0.329466 0.187500 +vt 0.403712 0.208333 +vt 0.352668 0.187500 +vt 0.338747 0.187500 +vt 0.352668 0.166667 +vt 0.408353 0.222222 +vt 0.301624 0.166667 +vt 0.296984 0.152778 +vt 0.294664 0.208333 +vt 0.229698 0.270833 +vt 0.206497 0.034722 +vt 0.220418 0.034722 +vt 0.350348 0.034722 +vt 0.252900 0.270833 +vt 0.408353 0.229167 +vt 0.317865 0.270833 +vt 0.419954 0.034722 +vt 0.426914 0.048611 +vt 0.364269 0.034722 +vt 0.412993 0.034722 +vt 0.294664 0.034722 +vt 0.285383 0.034722 +vt 0.213457 0.034722 +vt 0.406032 0.034722 +vt 0.373550 0.034722 +vt 0.199536 0.034722 +vt 0.308585 0.270833 +vt 0.317865 0.250000 +vt 0.426914 0.034722 +vt 0.433875 0.048611 +vt 0.238979 0.270833 +vt 0.264501 0.243056 +vt 0.278422 0.229167 +vt 0.278422 0.243056 +vt 0.334107 0.229167 +vt 0.334107 0.243056 +vt 0.222738 0.243056 +vt 0.255220 0.229167 +vt 0.255220 0.243056 +vt 0.264501 0.229167 +vt 0.343387 0.229167 +vt 0.252900 0.250000 +vt 0.197216 0.270833 +vt 0.229698 0.250000 +vt 0.308585 0.250000 +vt 0.373550 0.479167 +vt 0.410673 0.451389 +vt 0.410673 0.479167 +vt 0.429234 0.451389 +vt 0.429234 0.479167 +vt 0.373550 0.368056 +vt 0.410673 0.354167 +vt 0.410673 0.368056 +vt 0.443155 0.576389 +vt 0.433875 0.590278 +vt 0.433875 0.576389 +vt 0.429234 0.354167 +vt 0.429234 0.368056 +vt 0.262181 0.368056 +vt 0.299304 0.354167 +vt 0.299304 0.368056 +vt 0.322506 0.368056 +vt 0.336427 0.354167 +vt 0.336427 0.368056 +vt 0.150812 0.444444 +vt 0.169374 0.472222 +vt 0.150812 0.472222 +vt 0.132251 0.250000 +vt 0.150812 0.222222 +vt 0.150812 0.250000 +vt 0.213457 0.479167 +vt 0.225058 0.451389 +vt 0.225058 0.479167 +vt 0.255220 0.451389 +vt 0.262181 0.479167 +vt 0.255220 0.479167 +vt 0.262181 0.451389 +vt 0.299304 0.479167 +vt 0.322506 0.479167 +vt 0.336427 0.451389 +vt 0.336427 0.479167 +vt 0.354988 0.479167 +vt 0.373550 0.451389 +vt 0.396752 0.993056 +vt 0.389791 0.979167 +vt 0.396752 0.979167 +vt 0.296984 0.993056 +vt 0.303944 0.979167 +vt 0.303944 0.993056 +vt 0.445476 0.993056 +vt 0.447796 0.979167 +vt 0.447796 0.993056 +vt 0.352668 0.993056 +vt 0.354988 0.979167 +vt 0.354988 0.993056 +vt 0.206497 0.569444 +vt 0.201856 0.576389 +vt 0.201856 0.569444 +vt 0.213457 0.506944 +vt 0.206497 0.493056 +vt 0.213457 0.493056 +vt 0.213457 0.590278 +vt 0.206497 0.576389 +vt 0.213457 0.576389 +vt 0.410673 0.493056 +vt 0.429234 0.506944 +vt 0.410673 0.506944 +vt 0.373550 0.493056 +vt 0.348028 0.506944 +vt 0.336427 0.493056 +vt 0.348028 0.493056 +vt 0.354988 0.590278 +vt 0.373550 0.604167 +vt 0.354988 0.604167 +vt 0.322506 0.590278 +vt 0.336427 0.604167 +vt 0.322506 0.604167 +vt 0.262181 0.590278 +vt 0.299304 0.604167 +vt 0.262181 0.604167 +vt 0.255220 0.590278 +vt 0.255220 0.604167 +vt 0.225058 0.604167 +vt 0.213457 0.604167 +vt 0.410673 0.590278 +vt 0.429234 0.604167 +vt 0.410673 0.604167 +vt 0.299304 0.506944 +vt 0.313225 0.493056 +vt 0.313225 0.506944 +vt 0.373550 0.590278 +vt 0.262181 0.506944 +vt 0.299304 0.493056 +vt 0.225058 0.506944 +vt 0.236659 0.493056 +vt 0.236659 0.506944 +vt 0.410673 0.631944 +vt 0.373550 0.631944 +vt 0.429234 0.631944 +vt 0.132251 0.444444 +vt 0.132251 0.472222 +vt 0.225058 0.631944 +vt 0.213457 0.631944 +vt 0.262181 0.631944 +vt 0.255220 0.631944 +vt 0.299304 0.631944 +vt 0.336427 0.631944 +vt 0.322506 0.631944 +vt 0.354988 0.631944 +vt 0.354988 0.493056 +vt 0.322506 0.493056 +vt 0.262181 0.493056 +vt 0.255220 0.493056 +vt 0.225058 0.493056 +vt 0.429234 0.576389 +vt 0.429234 0.590278 +vt 0.429234 0.493056 +vt 0.313225 0.965278 +vt 0.301624 0.958333 +vt 0.301624 0.965278 +vt 0.324826 0.965278 +vt 0.313225 0.958333 +vt 0.201856 0.506944 +vt 0.206497 0.506944 +vt 0.201856 0.590278 +vt 0.433875 0.506944 +vt 0.429234 0.569444 +vt 0.236659 0.590278 +vt 0.225058 0.576389 +vt 0.236659 0.576389 +vt 0.299304 0.590278 +vt 0.262181 0.576389 +vt 0.299304 0.576389 +vt 0.313225 0.590278 +vt 0.313225 0.576389 +vt 0.348028 0.590278 +vt 0.336427 0.576389 +vt 0.348028 0.576389 +vt 0.373550 0.576389 +vt 0.410673 0.576389 +vt 0.373550 0.513889 +vt 0.410673 0.513889 +vt 0.429234 0.513889 +vt 0.206497 0.451389 +vt 0.213457 0.437500 +vt 0.213457 0.451389 +vt 0.206497 0.368056 +vt 0.213457 0.354167 +vt 0.213457 0.368056 +vt 0.438515 0.993056 +vt 0.426914 0.979167 +vt 0.438515 0.979167 +vt 0.169374 0.222222 +vt 0.169374 0.250000 +vt 0.348028 0.437500 +vt 0.348028 0.451389 +vt 0.315545 0.993056 +vt 0.327146 0.979167 +vt 0.327146 0.993056 +vt 0.348028 0.354167 +vt 0.354988 0.375000 +vt 0.373550 0.375000 +vt 0.322506 0.451389 +vt 0.336427 0.437500 +vt 0.299304 0.437500 +vt 0.299304 0.451389 +vt 0.299304 0.375000 +vt 0.262181 0.375000 +vt 0.262181 0.437500 +vt 0.255220 0.437500 +vt 0.262181 0.354167 +vt 0.255220 0.368056 +vt 0.255220 0.354167 +vt 0.429234 0.437500 +vt 0.410673 0.375000 +vt 0.429234 0.375000 +vt 0.443155 0.493056 +vt 0.433875 0.493056 +vt 0.443155 0.569444 +vt 0.433875 0.569444 +vt 0.410673 0.437500 +vt 0.373550 0.423611 +vt 0.410673 0.430556 +vt 0.373550 0.430556 +vt 0.410673 0.402778 +vt 0.410673 0.423611 +vt 0.373550 0.402778 +vt 0.410673 0.381944 +vt 0.443155 0.513889 +vt 0.433875 0.520833 +vt 0.433875 0.513889 +vt 0.443155 0.520833 +vt 0.433875 0.541667 +vt 0.443155 0.541667 +vt 0.433875 0.562500 +vt 0.429234 0.423611 +vt 0.429234 0.430556 +vt 0.429234 0.402778 +vt 0.429234 0.381944 +vt 0.132251 0.222222 +vt 0.150812 0.208333 +vt 0.187933 0.632198 +vt 0.190243 0.618374 +vt 0.190243 0.632198 +vt 0.262181 0.423611 +vt 0.299304 0.430556 +vt 0.262181 0.430556 +vt 0.299304 0.402778 +vt 0.299304 0.423611 +vt 0.262181 0.402778 +vt 0.299304 0.381944 +vt 0.412993 0.777778 +vt 0.399072 0.756944 +vt 0.412993 0.756944 +vt 0.350348 0.777778 +vt 0.352668 0.756944 +vt 0.352668 0.777778 +vt 0.354988 0.430556 +vt 0.354988 0.423611 +vt 0.354988 0.402778 +vt 0.373550 0.381944 +vt 0.257536 0.639044 +vt 0.276084 0.645983 +vt 0.257536 0.645984 +vt 0.276084 0.666802 +vt 0.257536 0.666803 +vt 0.276084 0.687621 +vt 0.257536 0.687622 +vt 0.169374 0.486111 +vt 0.150812 0.486111 +vt 0.169374 0.208333 +vt 0.410673 0.562500 +vt 0.410673 0.569444 +vt 0.410673 0.541667 +vt 0.429234 0.562500 +vt 0.410673 0.520833 +vt 0.429234 0.541667 +vt 0.373550 0.569444 +vt 0.373550 0.541667 +vt 0.238987 0.645984 +vt 0.229713 0.639044 +vt 0.238987 0.639044 +vt 0.238987 0.666803 +vt 0.229713 0.645984 +vt 0.225075 0.639044 +vt 0.229713 0.666803 +vt 0.225075 0.645984 +vt 0.429234 0.520833 +vt 0.417633 0.972222 +vt 0.429234 0.965278 +vt 0.417633 0.965278 +vt 0.410673 0.944444 +vt 0.408353 0.909722 +vt 0.410673 0.909722 +vt 0.387471 0.972222 +vt 0.389791 0.937500 +vt 0.389791 0.972222 +vt 0.440835 0.972222 +vt 0.440835 0.965278 +vt 0.150812 0.152778 +vt 0.169374 0.145833 +vt 0.169374 0.152778 +vt 0.206497 0.513889 +vt 0.201856 0.520833 +vt 0.201856 0.513889 +vt 0.206497 0.520833 +vt 0.201856 0.541667 +vt 0.206497 0.541667 +vt 0.201856 0.562500 +vt 0.255220 0.381944 +vt 0.262181 0.381944 +vt 0.380510 0.937500 +vt 0.387471 0.937500 +vt 0.255220 0.423611 +vt 0.171694 0.097222 +vt 0.174014 0.090278 +vt 0.174014 0.097222 +vt 0.255220 0.375000 +vt 0.345708 0.930556 +vt 0.338747 0.895833 +vt 0.345708 0.895833 +vt 0.248260 0.354167 +vt 0.238979 0.368056 +vt 0.238979 0.354167 +vt 0.248260 0.437500 +vt 0.238979 0.451389 +vt 0.238979 0.437500 +vt 0.338747 0.993056 +vt 0.345708 0.979167 +vt 0.345708 0.993056 +vt 0.248260 0.576389 +vt 0.255220 0.576389 +vt 0.354988 0.930556 +vt 0.361949 0.895833 +vt 0.361949 0.930556 +vt 0.238979 0.493056 +vt 0.248260 0.479167 +vt 0.248260 0.493056 +vt 0.238979 0.604167 +vt 0.248260 0.631944 +vt 0.238979 0.631944 +vt 0.248260 0.506944 +vt 0.255220 0.506944 +vt 0.238979 0.590278 +vt 0.248260 0.604167 +vt 0.412993 0.993056 +vt 0.403712 0.979167 +vt 0.412993 0.979167 +vt 0.238979 0.479167 +vt 0.378190 0.881944 +vt 0.371230 0.861111 +vt 0.378190 0.861111 +vt 0.396752 0.881944 +vt 0.403712 0.888889 +vt 0.396752 0.888889 +vt 0.345708 0.888889 +vt 0.338747 0.888889 +vt 0.331787 0.902778 +vt 0.334107 0.868056 +vt 0.334107 0.902778 +vt 0.352668 0.930556 +vt 0.354988 0.895833 +vt 0.389791 0.930556 +vt 0.396752 0.895833 +vt 0.396752 0.930556 +vt 0.406032 0.902778 +vt 0.408353 0.868056 +vt 0.408353 0.902778 +vt 0.387471 0.979167 +vt 0.380510 0.972222 +vt 0.336427 0.868056 +vt 0.336427 0.902778 +vt 0.345708 0.881944 +vt 0.338747 0.881944 +vt 0.294664 0.993056 +vt 0.296984 0.979167 +vt 0.354988 0.437500 +vt 0.373550 0.437500 +vt 0.422274 0.777778 +vt 0.424594 0.756944 +vt 0.424594 0.777778 +vt 0.443155 0.506944 +vt 0.181005 0.632198 +vt 0.187933 0.618374 +vt 0.373550 0.520833 +vt 0.324826 0.972222 +vt 0.313225 0.972222 +vt 0.301624 0.972222 +vt 0.410673 0.902778 +vt 0.410673 0.868056 +vt 0.387471 0.930556 +vt 0.389791 0.895833 +vt 0.403712 0.895833 +vt 0.387471 0.993056 +vt 0.389791 0.993056 +vt 0.429234 0.958333 +vt 0.440835 0.958333 +vt 0.417633 0.958333 +vt 0.238987 0.687622 +vt 0.443155 0.562500 +vt 0.171767 0.632198 +vt 0.174076 0.618374 +vt 0.174076 0.632198 +vt 0.354988 0.381944 +vt 0.276084 0.694561 +vt 0.257536 0.694561 +vt 0.238987 0.694561 +vt 0.229713 0.687622 +vt 0.174076 0.687498 +vt 0.171767 0.659848 +vt 0.174076 0.659848 +vt 0.206497 0.562500 +vt 0.181005 0.659848 +vt 0.187933 0.659848 +vt 0.190243 0.659848 +vt 0.122970 0.444444 +vt 0.122970 0.472222 +vt 0.122970 0.250000 +vt 0.132251 0.486111 +vt 0.181005 0.618374 +vt 0.150812 0.541667 +vt 0.169374 0.548611 +vt 0.150812 0.548611 +vt 0.187935 0.097222 +vt 0.190255 0.090278 +vt 0.190255 0.097222 +vt 0.406033 0.958333 +vt 0.415313 0.965278 +vt 0.415313 0.958333 +vt 0.336427 0.972222 +vt 0.327146 0.965278 +vt 0.327146 0.972222 +vt 0.236659 0.451389 +vt 0.236659 0.479167 +vt 0.415313 0.993056 +vt 0.415313 0.979167 +vt 0.236659 0.604167 +vt 0.236659 0.631944 +vt 0.236659 0.437500 +vt 0.236659 0.368056 +vt 0.236659 0.354167 +vt 0.406033 0.965278 +vt 0.415313 0.972222 +vt 0.329466 0.993056 +vt 0.338747 0.979167 +vt 0.248260 0.590278 +vt 0.238979 0.576389 +vt 0.336427 0.965278 +vt 0.327146 0.958333 +vt 0.238979 0.506944 +vt 0.334107 0.944444 +vt 0.336427 0.909722 +vt 0.336427 0.944444 +vt 0.354988 0.937500 +vt 0.361949 0.972222 +vt 0.354988 0.972222 +vt 0.406032 0.944444 +vt 0.408353 0.944444 +vt 0.396752 0.937500 +vt 0.396752 0.972222 +vt 0.380510 0.979167 +vt 0.352668 0.972222 +vt 0.331787 0.944444 +vt 0.334107 0.909722 +vt 0.338747 0.972222 +vt 0.345708 0.937500 +vt 0.345708 0.972222 +vt 0.371230 0.881944 +vt 0.364269 0.888889 +vt 0.364269 0.881944 +vt 0.371230 0.888889 +vt 0.150812 0.493056 +vt 0.143852 0.513889 +vt 0.134571 0.493056 +vt 0.150812 0.180556 +vt 0.146172 0.152778 +vt 0.150812 0.201389 +vt 0.143852 0.180556 +vt 0.187933 0.611461 +vt 0.187935 0.152778 +vt 0.190255 0.145833 +vt 0.190255 0.152778 +vt 0.187935 0.125000 +vt 0.190255 0.125000 +vt 0.169374 0.493056 +vt 0.150812 0.513889 +vt 0.169374 0.541667 +vt 0.134571 0.201389 +vt 0.171694 0.152778 +vt 0.174014 0.145833 +vt 0.174014 0.152778 +vt 0.171694 0.125000 +vt 0.174014 0.125000 +vt 0.181005 0.611461 +vt 0.169374 0.201389 +vt 0.169374 0.180556 +vt 0.447796 0.965278 +vt 0.447796 0.958333 +vt 0.294664 0.965278 +vt 0.294664 0.972222 +vt 0.447796 0.972222 +vt 0.445476 0.979167 +vt 0.225058 0.354167 +vt 0.225058 0.368056 +vt 0.225058 0.437500 +vt 0.294664 0.958333 +vt 0.206497 0.604167 +vt 0.206497 0.631944 +vt 0.206497 0.590278 +vt 0.225058 0.590278 +vt 0.315545 0.979167 +vt 0.206497 0.479167 +vt 0.412993 0.847222 +vt 0.419954 0.868056 +vt 0.412993 0.868056 +vt 0.412993 0.895833 +vt 0.419954 0.923611 +vt 0.412993 0.923611 +vt 0.412993 0.888889 +vt 0.419954 0.895833 +vt 0.412993 0.784722 +vt 0.419954 0.791667 +vt 0.412993 0.791667 +vt 0.412993 0.840278 +vt 0.419954 0.847222 +vt 0.419954 0.888889 +vt 0.412993 0.944444 +vt 0.419954 0.951389 +vt 0.412993 0.951389 +vt 0.419954 0.812500 +vt 0.412993 0.812500 +vt 0.419954 0.944444 +vt 0.431555 0.951389 +vt 0.419954 0.784722 +vt 0.431555 0.791667 +vt 0.431555 0.868056 +vt 0.419954 0.840278 +vt 0.431555 0.847222 +vt 0.431555 0.888889 +vt 0.431555 0.895833 +vt 0.426914 0.993056 +vt 0.329466 0.979167 +vt 0.324826 0.958333 +vt 0.431555 0.784722 +vt 0.443155 0.791667 +vt 0.443155 0.840278 +vt 0.443155 0.847222 +vt 0.443155 0.944444 +vt 0.443155 0.951389 +vt 0.443155 0.895833 +vt 0.445476 0.840278 +vt 0.445476 0.784722 +vt 0.445476 0.791667 +vt 0.445476 0.951389 +vt 0.445476 0.944444 +vt 0.443155 0.909722 +vt 0.445476 0.909722 +vt 0.443155 0.826389 +vt 0.445476 0.826389 +vt 0.445476 0.895833 +vt 0.361949 0.993056 +vt 0.361949 0.979167 +vt 0.331787 0.951389 +vt 0.334107 0.951389 +vt 0.352668 0.979167 +vt 0.380510 0.930556 +vt 0.406032 0.951389 +vt 0.408353 0.951389 +vt 0.255220 0.402778 +vt 0.336427 0.951389 +vt 0.410673 0.951389 +vt 0.454756 0.791667 +vt 0.454756 0.944444 +vt 0.454756 0.826389 +vt 0.454756 0.909722 +vt 0.443155 0.888889 +vt 0.408353 0.812500 +vt 0.401392 0.854167 +vt 0.401392 0.812500 +vt 0.392111 0.854167 +vt 0.380510 0.812500 +vt 0.392111 0.812500 +vt 0.380510 0.854167 +vt 0.368910 0.812500 +vt 0.329466 0.812500 +vt 0.341067 0.854167 +vt 0.329466 0.854167 +vt 0.352668 0.854167 +vt 0.341067 0.812500 +vt 0.352668 0.812500 +vt 0.364269 0.812500 +vt 0.364269 0.854167 +vt 0.368910 0.854167 +vt 0.180974 0.090278 +vt 0.187935 0.076389 +vt 0.187935 0.090278 +vt 0.174014 0.076389 +vt 0.146172 0.541667 +vt 0.146172 0.548611 +vt 0.146172 0.145833 +vt 0.150812 0.138889 +vt 0.150812 0.145833 +vt 0.150812 0.555556 +vt 0.157773 0.583333 +vt 0.143852 0.583333 +vt 0.157773 0.111111 +vt 0.143852 0.111111 +vt 0.171694 0.083333 +vt 0.136891 0.083333 +vt 0.141531 0.111111 +vt 0.129930 0.083333 +vt 0.146172 0.138889 +vt 0.146172 0.555556 +vt 0.141531 0.583333 +vt 0.190255 0.083333 +vt 0.122970 0.645833 +vt 0.129930 0.638889 +vt 0.129930 0.666667 +vt 0.129930 0.611111 +vt 0.122970 0.638889 +vt 0.136891 0.611111 +vt 0.129930 0.055556 +vt 0.122970 0.048611 +vt 0.129930 0.027778 +vt 0.122970 0.055556 +vt 0.171767 0.618374 +vt 0.174076 0.611461 +vt 0.171694 0.145833 +vt 0.169374 0.513889 +vt 0.187935 0.145833 +vt 0.169374 0.555556 +vt 0.167053 0.562500 +vt 0.145833 0.014434 +vt 0.140890 0.012691 +vt 0.144880 0.008725 +vt 0.143790 0.666758 +vt 0.140890 0.682373 +vt 0.403712 0.972222 +vt 0.352668 0.937500 +vt 0.403712 0.937500 +vt 0.403712 0.930556 +vt 0.352668 0.888889 +vt 0.352668 0.895833 +vt 0.248260 0.368056 +vt 0.248260 0.451389 +vt 0.403712 0.993056 +vt 0.378190 0.993056 +vt 0.380510 0.993056 +vt 0.371230 0.993056 +vt 0.378190 0.979167 +vt 0.364269 0.993056 +vt 0.371230 0.979167 +vt 0.352668 0.861111 +vt 0.352668 0.881944 +vt 0.389791 0.861111 +vt 0.389791 0.881944 +vt 0.378190 0.930556 +vt 0.380510 0.895833 +vt 0.364269 0.930556 +vt 0.364269 0.895833 +vt 0.364269 0.979167 +vt 0.364269 0.937500 +vt 0.364269 0.972222 +vt 0.378190 0.972222 +vt 0.371230 0.972222 +vt 0.378190 0.937500 +vt 0.371230 0.937500 +vt 0.371230 0.930556 +vt 0.387471 0.895833 +vt 0.364269 0.861111 +vt 0.406032 0.909722 +vt 0.331787 0.909722 +vt 0.361949 0.937500 +vt 0.338747 0.937500 +vt 0.313225 0.375000 +vt 0.313225 0.381944 +vt 0.313225 0.430556 +vt 0.313225 0.437500 +vt 0.313225 0.402778 +vt 0.313225 0.423611 +vt 0.313225 0.368056 +vt 0.313225 0.451389 +vt 0.322506 0.576389 +vt 0.313225 0.631944 +vt 0.322506 0.506944 +vt 0.313225 0.604167 +vt 0.313225 0.479167 +vt 0.313225 0.354167 +vt 0.343387 0.701389 +vt 0.350348 0.701389 +vt 0.343387 0.687500 +vt 0.361949 0.756944 +vt 0.361949 0.777778 +vt 0.348028 0.375000 +vt 0.354988 0.368056 +vt 0.373550 0.354167 +vt 0.354988 0.354167 +vt 0.354988 0.451389 +vt 0.354988 0.576389 +vt 0.348028 0.604167 +vt 0.348028 0.631944 +vt 0.373550 0.506944 +vt 0.348028 0.479167 +vt 0.433875 0.708333 +vt 0.433875 0.756944 +vt 0.375870 0.708333 +vt 0.375870 0.756944 +vt 0.350348 0.756944 +vt 0.341067 0.708333 +vt 0.350348 0.708333 +vt 0.378190 0.708333 +vt 0.378190 0.756944 +vt 0.352668 0.708333 +vt 0.338747 0.756944 +vt 0.341067 0.756944 +vt 0.412993 0.652778 +vt 0.422274 0.645833 +vt 0.422274 0.652778 +vt 0.412993 0.673611 +vt 0.422274 0.673611 +vt 0.412993 0.694444 +vt 0.422274 0.694444 +vt 0.412993 0.701389 +vt 0.422274 0.701389 +vt 0.396752 0.777778 +vt 0.399072 0.777778 +vt 0.331787 0.673611 +vt 0.343387 0.659722 +vt 0.343387 0.673611 +vt 0.375870 0.777778 +vt 0.378190 0.777778 +vt 0.350348 0.673611 +vt 0.401392 0.701389 +vt 0.401392 0.694444 +vt 0.401392 0.673611 +vt 0.401392 0.652778 +vt 0.412993 0.645833 +vt 0.336427 0.590278 +vt 0.336427 0.375000 +vt 0.348028 0.368056 +vt 0.348028 0.430556 +vt 0.331787 0.701389 +vt 0.331787 0.680556 +vt 0.354988 0.506944 +vt 0.331787 0.756944 +vt 0.338747 0.708333 +vt 0.341067 0.777778 +vt 0.338747 0.777778 +vt 0.380510 0.756944 +vt 0.387471 0.708333 +vt 0.387471 0.756944 +vt 0.336427 0.506944 +vt 0.422274 0.756944 +vt 0.322506 0.437500 +vt 0.322506 0.354167 +vt 0.396752 0.666667 +vt 0.399072 0.708333 +vt 0.396752 0.708333 +vt 0.378190 0.666667 +vt 0.380510 0.708333 +vt 0.380510 0.666667 +vt 0.387471 0.666667 +vt 0.394432 0.708333 +vt 0.375870 0.666667 +vt 0.394432 0.666667 +vt 0.375870 0.638889 +vt 0.396752 0.638889 +vt 0.399072 0.666667 +vt 0.412993 0.708333 +vt 0.436195 0.708333 +vt 0.436195 0.756944 +vt 0.361949 0.708333 +vt 0.394432 0.756944 +vt 0.396752 0.756944 +vt 0.424594 0.708333 +vt 0.422274 0.708333 +vt 0.443155 0.708333 +vt 0.443155 0.756944 +vt 0.322506 0.375000 +vt 0.322506 0.381944 +vt 0.322506 0.402778 +vt 0.322506 0.423611 +vt 0.322506 0.430556 +vt 0.436195 0.777778 +vt 0.331787 0.777778 +vt 0.433875 0.777778 +vt 0.192575 0.493056 +vt 0.201856 0.493056 +vt 0.192575 0.569444 +vt 0.192575 0.590278 +vt 0.181005 0.687498 +vt 0.187933 0.687498 +vt 0.190243 0.687498 +vt 0.113689 0.444444 +vt 0.113689 0.472222 +vt 0.113689 0.222222 +vt 0.113689 0.250000 +vt 0.220438 0.639044 +vt 0.076566 0.527778 +vt 0.002320 0.506944 +vt 0.076566 0.506944 +vt 0.225075 0.666803 +vt 0.229713 0.694561 +vt 0.225075 0.687622 +vt 0.122970 0.527778 +vt 0.113689 0.506944 +vt 0.122970 0.506944 +vt 0.122970 0.548611 +vt 0.113689 0.527778 +vt 0.220438 0.645984 +vt 0.211164 0.639044 +vt 0.225075 0.694561 +vt 0.220438 0.687622 +vt 0.076566 0.548611 +vt 0.002320 0.527778 +vt 0.220438 0.666803 +vt 0.211137 0.687500 +vt 0.204176 0.694444 +vt 0.204176 0.687500 +vt 0.220438 0.694561 +vt 0.285383 0.701389 +vt 0.294664 0.708333 +vt 0.285383 0.708333 +vt 0.194896 0.708333 +vt 0.204176 0.701389 +vt 0.204176 0.708333 +vt 0.194896 0.694444 +vt 0.203016 0.687500 +vt 0.248260 0.701389 +vt 0.113689 0.548611 +vt 0.241299 0.708333 +vt 0.247100 0.708333 +vt 0.241299 0.701389 +vt 0.459397 0.847222 +vt 0.450116 0.868056 +vt 0.450116 0.847222 +vt 0.445476 0.868056 +vt 0.445476 0.847222 +vt 0.443155 0.868056 +vt 0.445476 0.888889 +vt 0.459397 0.868056 +vt 0.450116 0.888889 +vt 0.150812 0.083333 +vt 0.150812 0.611111 +vt 0.167053 0.131944 +vt 0.143852 0.055556 +vt 0.143852 0.638889 +vt 0.146172 0.680556 +vt 0.144880 0.686339 +vt 0.143852 0.027778 +vt 0.301624 0.687500 +vt 0.320186 0.715278 +vt 0.301624 0.715278 +vt 0.320186 0.687500 +vt 0.329466 0.673611 +vt 0.329466 0.687500 +vt 0.320186 0.673611 +vt 0.301624 0.645833 +vt 0.320186 0.645833 +vt 0.301624 0.673611 +vt 0.292343 0.687500 +vt 0.292343 0.673611 +vt 0.294664 0.666667 +vt 0.292343 0.652778 +vt 0.294664 0.652778 +vt 0.292343 0.666667 +vt 0.287703 0.652778 +vt 0.290023 0.645833 +vt 0.285383 0.638889 +vt 0.290023 0.638889 +vt 0.290023 0.680556 +vt 0.285383 0.673611 +vt 0.290023 0.673611 +vt 0.280742 0.666667 +vt 0.278422 0.652778 +vt 0.280742 0.652778 +vt 0.285383 0.645833 +vt 0.283063 0.638889 +vt 0.285383 0.680556 +vt 0.283063 0.673611 +vt 0.285383 0.666667 +vt 0.283063 0.652778 +vt 0.285383 0.652778 +vt 0.283063 0.666667 +vt 0.287703 0.666667 +vt 0.283063 0.645833 +vt 0.712271 0.416846 +vt 0.707662 0.422560 +vt 0.703052 0.416846 +vt 0.703052 0.389253 +vt 0.707662 0.383539 +vt 0.751633 0.305411 +vt 0.743656 0.339175 +vt 0.734446 0.339175 +vt 0.721864 0.281537 +vt 0.721864 0.253971 +vt 0.726469 0.230097 +vt 0.743656 0.216313 +vt 0.751633 0.230097 +vt 0.756238 0.253971 +vt 0.743622 0.470343 +vt 0.734448 0.470343 +vt 0.721916 0.412933 +vt 0.721916 0.385475 +vt 0.726503 0.361695 +vt 0.734448 0.347966 +vt 0.743622 0.347966 +vt 0.756154 0.385475 +vt 0.751567 0.436712 +vt 0.147479 0.420167 +vt 0.149748 0.417354 +vt 0.152957 0.426958 +vt 0.149748 0.436562 +vt 0.146540 0.426958 +vt 0.155784 0.426958 +vt 0.156718 0.420206 +vt 0.158974 0.417409 +vt 0.162164 0.426958 +vt 0.158974 0.436507 +vt 0.169374 0.694444 +vt 0.245940 0.729167 +vt 0.245940 0.743056 +vt 0.343387 0.284722 +vt 0.294664 0.118056 +vt 0.296984 0.222222 +vt 0.334107 0.312500 +vt 0.417633 0.138889 +vt 0.292343 0.173611 +vt 0.273782 0.201389 +vt 0.192575 0.034722 +vt 0.433875 0.034722 +vt 0.222738 0.229167 +vt 0.238979 0.250000 +vt 0.197216 0.250000 +vt 0.443155 0.590278 +vt 0.169374 0.444444 +vt 0.206497 0.437500 +vt 0.206497 0.354167 +vt 0.132251 0.208333 +vt 0.276084 0.639044 +vt 0.373550 0.562500 +vt 0.429234 0.972222 +vt 0.255220 0.430556 +vt 0.171694 0.090278 +vt 0.338747 0.930556 +vt 0.403712 0.881944 +vt 0.331787 0.868056 +vt 0.406032 0.868056 +vt 0.294664 0.979167 +vt 0.171767 0.687498 +vt 0.122970 0.222222 +vt 0.406033 0.972222 +vt 0.336427 0.958333 +vt 0.378190 0.888889 +vt 0.431555 0.944444 +vt 0.431555 0.840278 +vt 0.443155 0.784722 +vt 0.454756 0.784722 +vt 0.454756 0.951389 +vt 0.408353 0.854167 +vt 0.180974 0.076389 +vt 0.389791 0.888889 +vt 0.378190 0.895833 +vt 0.331787 0.652778 +vt 0.401392 0.645833 +vt 0.336427 0.430556 +vt 0.331787 0.708333 +vt 0.378190 0.638889 +vt 0.399072 0.638889 +vt 0.443155 0.777778 +vt 0.192575 0.513889 +vt 0.211164 0.645984 +vt 0.002320 0.548611 +vt 0.211137 0.694444 +vt 0.294664 0.701389 +vt 0.194896 0.701389 +vt 0.196056 0.687500 +vt 0.248260 0.708333 +vt 0.242459 0.708333 +vt 0.459397 0.888889 +vt 0.169374 0.138889 +vt 0.278422 0.666667 +vt 0.283063 0.680556 +vt 0.651972 0.416667 +vt 0.698376 0.402778 +vt 0.698376 0.416667 +vt 0.651972 0.402778 +vt 0.698376 0.388889 +vt 0.651972 0.388889 +vt 0.698376 0.375000 +vt 0.651972 0.375000 +vt 0.698376 0.361111 +vt 0.651972 0.472222 +vt 0.698376 0.458333 +vt 0.698376 0.472222 +vt 0.651972 0.458333 +vt 0.698376 0.444444 +vt 0.651972 0.444444 +vt 0.698376 0.430556 +vt 0.651972 0.430556 +vt 0.703062 0.437534 +vt 0.712396 0.437535 +vt 0.712396 0.465473 +vt 0.758701 0.472222 +vt 0.795824 0.430556 +vt 0.795824 0.472222 +vt 0.758701 0.430556 +vt 0.795824 0.402778 +vt 0.758701 0.402778 +vt 0.795824 0.375000 +vt 0.758701 0.375000 +vt 0.795824 0.347222 +vt 0.758701 0.319444 +vt 0.795824 0.319444 +vt 0.795824 0.291667 +vt 0.758701 0.291667 +vt 0.795824 0.263889 +vt 0.758701 0.263889 +vt 0.795824 0.236111 +vt 0.758701 0.236111 +vt 0.795824 0.208333 +vt 0.758701 0.208333 +vt 0.795824 0.180556 +vt 0.758701 0.138889 +vt 0.795824 0.138889 +vt 0.139211 0.416667 +vt 0.141531 0.423611 +vt 0.139211 0.423611 +vt 0.141531 0.416667 +vt 0.143852 0.423611 +vt 0.125290 0.416667 +vt 0.127610 0.423611 +vt 0.125290 0.423611 +vt 0.127610 0.416667 +vt 0.129930 0.423611 +vt 0.129930 0.416667 +vt 0.132251 0.423611 +vt 0.132251 0.416667 +vt 0.134571 0.423611 +vt 0.134571 0.416667 +vt 0.136891 0.423611 +vt 0.136891 0.416667 +vt 0.141531 0.430556 +vt 0.139211 0.437500 +vt 0.139211 0.430556 +vt 0.143852 0.430556 +vt 0.141531 0.437500 +vt 0.127610 0.430556 +vt 0.125290 0.437500 +vt 0.125290 0.430556 +vt 0.129930 0.430556 +vt 0.127610 0.437500 +vt 0.132251 0.430556 +vt 0.129930 0.437500 +vt 0.134571 0.430556 +vt 0.132251 0.437500 +vt 0.136891 0.430556 +vt 0.134571 0.437500 +vt 0.136891 0.437500 +vt 0.215777 0.923611 +vt 0.192575 0.909722 +vt 0.215777 0.909722 +vt 0.327146 0.923611 +vt 0.290023 0.909722 +vt 0.327146 0.909722 +vt 0.290023 0.923611 +vt 0.252900 0.909722 +vt 0.234339 0.923611 +vt 0.234339 0.909722 +vt 0.252900 0.923611 +vt 0.215777 0.854167 +vt 0.192575 0.812500 +vt 0.215777 0.812500 +vt 0.234339 0.854167 +vt 0.234339 0.812500 +vt 0.252900 0.881944 +vt 0.252900 0.854167 +vt 0.234339 0.881944 +vt 0.290023 0.881944 +vt 0.290023 0.854167 +vt 0.327146 0.881944 +vt 0.327146 0.854167 +vt 0.215777 0.881944 +vt 0.192575 0.854167 +vt 0.215777 0.993056 +vt 0.192575 0.951389 +vt 0.215777 0.951389 +vt 0.174014 0.812500 +vt 0.176334 0.854167 +vt 0.174014 0.854167 +vt 0.208817 0.736111 +vt 0.171694 0.743056 +vt 0.171694 0.736111 +vt 0.306264 0.805556 +vt 0.283063 0.805556 +vt 0.283063 0.798611 +vt 0.155452 0.951389 +vt 0.155452 0.986111 +vt 0.153132 0.951389 +vt 0.155452 0.923611 +vt 0.153132 0.909722 +vt 0.155452 0.909722 +vt 0.259861 0.756944 +vt 0.283063 0.750000 +vt 0.283063 0.756944 +vt 0.122970 0.763889 +vt 0.122970 0.756944 +vt 0.171694 0.729167 +vt 0.208817 0.722222 +vt 0.208817 0.729167 +vt 0.306264 0.750000 +vt 0.306264 0.743056 +vt 0.208817 0.743056 +vt 0.016241 0.750000 +vt 0.039443 0.743056 +vt 0.039443 0.750000 +vt 0.016241 0.743056 +vt 0.039443 0.729167 +vt 0.016241 0.729167 +vt 0.039443 0.715278 +vt 0.283063 0.763889 +vt 0.283063 0.777778 +vt 0.259861 0.763889 +vt 0.283063 0.791667 +vt 0.259861 0.777778 +vt 0.002320 0.743056 +vt 0.002320 0.729167 +vt 0.327146 0.812500 +vt 0.306264 0.812500 +vt 0.058005 0.743056 +vt 0.058005 0.750000 +vt 0.058005 0.729167 +vt 0.058005 0.715278 +vt 0.002320 0.750000 +vt 0.002320 0.708333 +vt 0.016241 0.701389 +vt 0.016241 0.708333 +vt 0.085847 0.763889 +vt 0.085847 0.756944 +vt 0.245940 0.798611 +vt 0.259861 0.805556 +vt 0.245940 0.805556 +vt 0.039443 0.756944 +vt 0.071926 0.701389 +vt 0.085847 0.694444 +vt 0.085847 0.701389 +vt 0.259861 0.798611 +vt 0.245940 0.791667 +vt 0.259861 0.791667 +vt 0.071926 0.756944 +vt 0.058005 0.756944 +vt 0.016241 0.715278 +vt 0.039443 0.708333 +vt 0.245940 0.777778 +vt 0.058005 0.708333 +vt 0.002320 0.715278 +vt 0.155452 0.812500 +vt 0.155452 0.777778 +vt 0.157773 0.777778 +vt 0.245940 0.763889 +vt 0.245940 0.756944 +vt 0.245940 0.750000 +vt 0.259861 0.750000 +vt 0.176334 0.881944 +vt 0.174014 0.881944 +vt 0.155452 0.881944 +vt 0.153132 0.854167 +vt 0.155452 0.854167 +vt 0.058005 0.701389 +vt 0.071926 0.694444 +vt 0.174014 0.777778 +vt 0.176334 0.812500 +vt 0.153132 0.923611 +vt 0.306264 0.756944 +vt 0.306264 0.777778 +vt 0.306264 0.798611 +vt 0.171694 0.986111 +vt 0.171694 0.951389 +vt 0.174014 0.951389 +vt 0.169374 0.986111 +vt 0.164733 0.951389 +vt 0.160093 0.986111 +vt 0.157773 0.951389 +vt 0.171694 0.854167 +vt 0.171694 0.881944 +vt 0.164733 0.854167 +vt 0.164733 0.881944 +vt 0.157773 0.854167 +vt 0.171694 0.812500 +vt 0.164733 0.812500 +vt 0.157773 0.812500 +vt 0.174014 0.909722 +vt 0.171694 0.923611 +vt 0.171694 0.909722 +vt 0.164733 0.909722 +vt 0.164733 0.923611 +vt 0.157773 0.909722 +vt 0.157773 0.881944 +vt 0.157773 0.986111 +vt 0.157773 0.923611 +vt 0.174014 0.923611 +vt 0.160093 0.777778 +vt 0.164733 0.777778 +vt 0.169374 0.777778 +vt 0.171694 0.777778 +vt 0.071926 0.763889 +vt 0.122970 0.701389 +vt 0.176334 0.909722 +vt 0.176334 0.923611 +vt 0.039443 0.701389 +vt 0.071926 0.729167 +vt 0.071926 0.750000 +vt 0.071926 0.708333 +vt 0.085847 0.708333 +vt 0.085847 0.750000 +vt 0.085847 0.729167 +vt 0.122970 0.729167 +vt 0.122970 0.708333 +vt 0.122970 0.750000 +vt 0.327146 0.743056 +vt 0.327146 0.750000 +vt 0.174014 0.986111 +vt 0.016241 0.756944 +vt 0.176334 0.951389 +vt 0.002320 0.756944 +vt 0.153132 0.812500 +vt 0.122970 0.694444 +vt 0.153132 0.881944 +vt 0.039443 0.881944 +vt 0.002320 0.854167 +vt 0.039443 0.854167 +vt 0.136891 0.881944 +vt 0.113689 0.854167 +vt 0.136891 0.854167 +vt 0.095128 0.881944 +vt 0.076566 0.854167 +vt 0.095128 0.854167 +vt 0.076566 0.881944 +vt 0.136891 0.993056 +vt 0.113689 0.951389 +vt 0.136891 0.951389 +vt 0.113689 0.881944 +vt 0.095128 0.812500 +vt 0.113689 0.812500 +vt 0.136891 0.812500 +vt 0.113689 0.923611 +vt 0.095128 0.909722 +vt 0.113689 0.909722 +vt 0.076566 0.923611 +vt 0.039443 0.909722 +vt 0.076566 0.909722 +vt 0.095128 0.923611 +vt 0.136891 0.923611 +vt 0.136891 0.909722 +vt 0.039443 0.923611 +vt 0.002320 0.909722 +vt 0.002320 0.881944 +vt 0.136891 0.770833 +vt 0.148492 0.812500 +vt 0.148492 0.881944 +vt 0.148492 0.951389 +vt 0.150812 0.986111 +vt 0.148492 0.909722 +vt 0.148492 0.923611 +vt 0.095128 0.951389 +vt 0.113689 0.993056 +vt 0.148492 0.854167 +vt 0.113689 0.770833 +vt 0.095128 0.770833 +vt 0.090487 0.812500 +vt 0.039443 0.840278 +vt 0.076566 0.826389 +vt 0.192575 0.881944 +vt 0.180974 0.923611 +vt 0.192575 0.923611 +vt 0.180974 0.909722 +vt 0.192575 0.993056 +vt 0.180974 0.951389 +vt 0.180974 0.881944 +vt 0.180974 0.854167 +vt 0.180974 0.812500 +vt 0.234339 0.951389 +vt 0.192575 0.770833 +vt 0.178654 0.777778 +vt 0.215777 0.770833 +vt 0.234339 0.770833 +vt 0.290023 0.840278 +vt 0.238979 0.812500 +vt 0.327146 0.805556 +vt 0.327146 0.777778 +vt 0.327146 0.798611 +vt 0.327146 0.756944 +vt 0.113689 0.263889 +vt 0.174062 0.541539 +vt 0.180990 0.534627 +vt 0.180990 0.541539 +vt 0.187919 0.534627 +vt 0.187919 0.541539 +vt 0.174062 0.604126 +vt 0.180974 0.569444 +vt 0.180974 0.604167 +vt 0.187935 0.569444 +vt 0.187935 0.604167 +vt 0.187919 0.527714 +vt 0.174062 0.534627 +vt 0.180990 0.527714 +vt 0.180974 0.500000 +vt 0.187935 0.500000 +vt 0.174014 0.500000 +vt 0.187935 0.166667 +vt 0.180974 0.201389 +vt 0.180974 0.166667 +vt 0.180974 0.270833 +vt 0.187935 0.236111 +vt 0.187935 0.270833 +vt 0.180974 0.312500 +vt 0.187935 0.298611 +vt 0.187935 0.312500 +vt 0.180974 0.298611 +vt 0.174014 0.298611 +vt 0.180974 0.236111 +vt 0.187935 0.201389 +vt 0.174014 0.236111 +vt 0.174014 0.201389 +vt 0.174014 0.166667 +vt 0.180974 0.423611 +vt 0.174014 0.416667 +vt 0.180974 0.416667 +vt 0.180974 0.458333 +vt 0.174014 0.423611 +vt 0.174014 0.458333 +vt 0.187935 0.423611 +vt 0.187935 0.416667 +vt 0.187935 0.458333 +vt 0.174014 0.312500 +vt 0.180974 0.326389 +vt 0.174014 0.326389 +vt 0.187935 0.326389 +vt 0.174014 0.270833 +vt 0.187935 0.381944 +vt 0.180974 0.381944 +vt 0.187935 0.347222 +vt 0.174014 0.381944 +vt 0.180974 0.347222 +vt 0.174014 0.347222 +vt 0.122970 0.430556 +vt 0.113689 0.416667 +vt 0.122970 0.416667 +vt 0.122970 0.263889 +vt 0.113689 0.277778 +vt 0.113689 0.576389 +vt 0.076566 0.277778 +vt 0.002320 0.263889 +vt 0.076566 0.263889 +vt 0.076566 0.305556 +vt 0.076566 0.430556 +vt 0.002320 0.416667 +vt 0.076566 0.416667 +vt 0.113689 0.388889 +vt 0.122970 0.388889 +vt 0.002320 0.388889 +vt 0.076566 0.388889 +vt 0.002320 0.479167 +vt 0.076566 0.479167 +vt 0.113689 0.479167 +vt 0.122970 0.479167 +vt 0.122970 0.277778 +vt 0.113689 0.305556 +vt 0.076566 0.576389 +vt 0.113689 0.597222 +vt 0.002320 0.597222 +vt 0.113689 0.361111 +vt 0.122970 0.361111 +vt 0.076566 0.333333 +vt 0.002320 0.361111 +vt 0.002320 0.333333 +vt 0.122970 0.576389 +vt 0.113689 0.333333 +vt 0.076566 0.361111 +vt 0.076566 0.618056 +vt 0.122970 0.333333 +vt 0.122970 0.618056 +vt 0.122970 0.597222 +vt 0.002320 0.576389 +vt 0.113689 0.430556 +vt 0.002320 0.305556 +vt 0.002320 0.277778 +vt 0.002320 0.618056 +vt 0.076566 0.631944 +vt 0.002320 0.631944 +vt 0.190255 0.600694 +vt 0.190255 0.607639 +vt 0.171694 0.600694 +vt 0.171694 0.607639 +vt 0.171694 0.170139 +vt 0.171694 0.163194 +vt 0.190255 0.170139 +vt 0.190255 0.163194 +vt 0.171694 0.527778 +vt 0.174062 0.527714 +vt 0.190255 0.534722 +vt 0.190255 0.527778 +vt 0.190255 0.541667 +vt 0.190255 0.562500 +vt 0.171694 0.534722 +vt 0.174014 0.569444 +vt 0.171694 0.562500 +vt 0.190255 0.500000 +vt 0.190255 0.458333 +vt 0.190255 0.423611 +vt 0.190255 0.416667 +vt 0.171694 0.500000 +vt 0.171694 0.458333 +vt 0.171694 0.423611 +vt 0.171694 0.416667 +vt 0.171694 0.201389 +vt 0.171694 0.236111 +vt 0.171694 0.298611 +vt 0.171694 0.270833 +vt 0.190255 0.201389 +vt 0.190255 0.236111 +vt 0.190255 0.298611 +vt 0.190255 0.270833 +vt 0.171694 0.541667 +vt 0.171694 0.305556 +vt 0.190255 0.305556 +vt 0.190255 0.381944 +vt 0.171694 0.381944 +vt 0.190255 0.347222 +vt 0.171694 0.333333 +vt 0.171694 0.347222 +vt 0.190255 0.333333 +vt 0.190255 0.319444 +vt 0.190255 0.312500 +vt 0.171694 0.319444 +vt 0.171694 0.312500 +vt 0.654292 0.583333 +vt 0.747100 0.562500 +vt 0.747100 0.583333 +vt 0.654292 0.562500 +vt 0.747100 0.541667 +vt 0.654292 0.541667 +vt 0.747100 0.520833 +vt 0.654292 0.520833 +vt 0.747100 0.500000 +vt 0.654292 0.500000 +vt 0.747100 0.479167 +vt 0.747100 0.729167 +vt 0.654292 0.708333 +vt 0.747100 0.708333 +vt 0.747100 0.687500 +vt 0.654292 0.687500 +vt 0.747100 0.666667 +vt 0.654292 0.666667 +vt 0.747100 0.645833 +vt 0.654292 0.645833 +vt 0.747100 0.625000 +vt 0.654292 0.625000 +vt 0.747100 0.604167 +vt 0.654292 0.604167 +vt 0.765661 0.538194 +vt 0.450116 0.194444 +vt 0.756380 0.208333 +vt 0.450116 0.208333 +vt 0.765661 0.625000 +vt 0.765661 0.555556 +vt 0.765661 0.645833 +vt 0.765661 0.663194 +vt 0.765661 0.684028 +vt 0.765661 0.704861 +vt 0.765661 0.711806 +vt 0.765661 0.725694 +vt 0.765661 0.496528 +vt 0.765661 0.517361 +vt 0.765661 0.600694 +vt 0.765661 0.562500 +vt 0.765661 0.576389 +vt 0.450116 0.069444 +vt 0.756380 0.083333 +vt 0.450116 0.083333 +vt 0.450116 0.138889 +vt 0.756380 0.152778 +vt 0.450116 0.152778 +vt 0.450116 0.180556 +vt 0.756380 0.194444 +vt 0.450116 0.055556 +vt 0.756380 0.069444 +vt 0.450116 0.125000 +vt 0.756380 0.138889 +vt 0.450116 0.097222 +vt 0.756380 0.111111 +vt 0.450116 0.111111 +vt 0.450116 0.166667 +vt 0.756380 0.180556 +vt 0.450116 0.041667 +vt 0.756380 0.055556 +vt 0.756380 0.125000 +vt 0.756380 0.097222 +vt 0.756380 0.166667 +vt 0.058005 0.256944 +vt 0.051044 0.229167 +vt 0.058005 0.229167 +vt 0.051044 0.256944 +vt 0.044084 0.229167 +vt 0.044084 0.256944 +vt 0.037123 0.229167 +vt 0.037123 0.256944 +vt 0.030162 0.229167 +vt 0.030162 0.256944 +vt 0.023202 0.229167 +vt 0.023202 0.256944 +vt 0.016241 0.229167 +vt 0.016241 0.256944 +vt 0.009281 0.229167 +vt 0.009281 0.256944 +vt 0.002320 0.229167 +vt 0.017940 0.175716 +vt 0.020555 0.194611 +vt 0.017940 0.213507 +vt 0.651972 0.361111 +vt 0.707729 0.471259 +vt 0.703062 0.465473 +vt 0.701129 0.451504 +vt 0.707729 0.431749 +vt 0.714329 0.451503 +vt 0.758701 0.347222 +vt 0.758701 0.180556 +vt 0.143852 0.416667 +vt 0.143852 0.437500 +vt 0.171694 0.722222 +vt 0.002320 0.701389 +vt 0.164733 0.986111 +vt 0.002320 0.923611 +vt 0.150812 0.777778 +vt 0.178654 0.986111 +vt 0.252900 0.826389 +vt 0.002320 0.430556 +vt 0.122970 0.305556 +vt 0.113689 0.618056 +vt 0.654292 0.479167 +vt 0.654292 0.729167 +vt 0.765661 0.524306 +vt 0.765661 0.611111 +vt 0.765661 0.541667 +vt 0.765661 0.631944 +vt 0.765661 0.649306 +vt 0.765661 0.670139 +vt 0.765661 0.690972 +vt 0.765661 0.482639 +vt 0.765661 0.503472 +vt 0.765661 0.586806 +vt 0.756380 0.041667 +vt 0.002320 0.256944 +vt 0.011627 0.221333 +vt 0.005314 0.175716 +vt 0.005314 0.213507 +vt 0.002699 0.194611 +vt 0.011627 0.167889 +vt 0.825986 0.388889 +vt 0.844548 0.402778 +vt 0.825986 0.402778 +vt 0.844548 0.305556 +vt 0.846868 0.388889 +vt 0.844548 0.388889 +vt 0.825986 0.291667 +vt 0.844548 0.291667 +vt 0.825986 0.305556 +vt 0.823666 0.291667 +vt 0.825986 0.208333 +vt 0.844548 0.208333 +vt 0.851508 0.305556 +vt 0.851508 0.388889 +vt 0.846868 0.402778 +vt 0.846868 0.305556 +vt 0.870070 0.326389 +vt 0.870070 0.368056 +vt 0.823666 0.305556 +vt 0.819026 0.388889 +vt 0.819026 0.305556 +vt 0.823666 0.388889 +vt 0.800464 0.277778 +vt 0.800464 0.236111 +vt 0.819026 0.215278 +vt 0.851508 0.298611 +vt 0.863109 0.305556 +vt 0.819026 0.395833 +vt 0.807425 0.388889 +vt 0.798144 0.326389 +vt 0.800464 0.368056 +vt 0.798144 0.368056 +vt 0.863109 0.395833 +vt 0.851508 0.395833 +vt 0.807425 0.298611 +vt 0.819026 0.298611 +vt 0.872390 0.368056 +vt 0.872390 0.326389 +vt 0.800464 0.326389 +vt 0.870070 0.395833 +vt 0.872390 0.298611 +vt 0.800464 0.298611 +vt 0.798144 0.395833 +vt 0.870070 0.236111 +vt 0.870070 0.277778 +vt 0.846868 0.291667 +vt 0.863109 0.388889 +vt 0.823666 0.402778 +vt 0.807425 0.215278 +vt 0.863109 0.298611 +vt 0.807425 0.395833 +vt 0.807425 0.305556 +vt 0.872390 0.395833 +vt 0.870070 0.298611 +vt 0.798144 0.298611 +vt 0.800464 0.395833 +vt 0.851508 0.215278 +vt 0.863109 0.215278 +vt 0.276102 0.986111 +vt 0.273782 0.972222 +vt 0.276102 0.972222 +vt 0.283063 0.972222 +vt 0.280742 0.986111 +vt 0.280742 0.972222 +vt 0.285383 0.944444 +vt 0.283063 0.958333 +vt 0.280742 0.958333 +vt 0.271462 0.944444 +vt 0.276102 0.958333 +vt 0.273782 0.958333 +vt 0.271462 0.993056 +vt 0.271462 0.986111 +vt 0.285383 0.986111 +vt 0.280742 0.993056 +vt 0.276102 0.993056 +vt 0.285383 0.993056 +vt 0.257541 0.986111 +vt 0.255220 0.944444 +vt 0.257541 0.944444 +vt 0.255220 0.986111 +vt 0.245940 0.944444 +vt 0.269142 0.986111 +vt 0.266821 0.944444 +vt 0.269142 0.944444 +vt 0.266821 0.986111 +vt 0.266821 0.937500 +vt 0.257541 0.937500 +vt 0.257541 0.993056 +vt 0.266821 0.993056 +vt 0.245940 0.986111 +vt 0.613152 0.363030 +vt 0.614850 0.302109 +vt 0.614849 0.375000 +vt 0.583553 0.357710 +vt 0.579458 0.302109 +vt 0.583553 0.302109 +vt 0.587647 0.363030 +vt 0.589344 0.302109 +vt 0.589327 0.375000 +vt 0.587647 0.302109 +vt 0.603248 0.302083 +vt 0.603248 0.375000 +vt 0.609053 0.357710 +vt 0.613152 0.302109 +vt 0.579458 0.363030 +vt 0.577762 0.302109 +vt 0.604953 0.363030 +vt 0.603255 0.302109 +vt 0.604953 0.302109 +vt 0.609053 0.302109 +vt 0.628770 0.302083 +vt 0.628770 0.375000 +vt 0.613152 0.241189 +vt 0.614849 0.229167 +vt 0.583553 0.246508 +vt 0.579458 0.241189 +vt 0.587647 0.241189 +vt 0.589327 0.229167 +vt 0.603248 0.229167 +vt 0.609053 0.246508 +vt 0.577726 0.229167 +vt 0.604953 0.241189 +vt 0.628770 0.229167 +vt 0.577726 0.375000 +vt 0.292343 0.986111 +vt 0.287703 0.972222 +vt 0.292343 0.972222 +vt 0.276102 0.937500 +vt 0.280742 0.937500 +vt 0.292343 0.958333 +vt 0.287703 0.944444 +vt 0.292343 0.944444 +vt 0.287703 0.958333 +vt 0.287703 0.993056 +vt 0.287703 0.986111 +vt 0.292343 0.993056 +vt 0.559165 0.388889 +vt 0.556845 0.375000 +vt 0.559165 0.375000 +vt 0.559165 0.416667 +vt 0.556845 0.430556 +vt 0.556845 0.416667 +vt 0.559165 0.472222 +vt 0.556845 0.458333 +vt 0.559165 0.458333 +vt 0.559165 0.402778 +vt 0.556845 0.388889 +vt 0.556845 0.402778 +vt 0.559165 0.430556 +vt 0.556845 0.444444 +vt 0.559165 0.486111 +vt 0.556845 0.472222 +vt 0.559165 0.444444 +vt 0.552383 0.402320 +vt 0.552383 0.431210 +vt 0.542731 0.431210 +vt 0.552420 0.450847 +vt 0.552420 0.479492 +vt 0.542850 0.479493 +vt 0.573086 0.458333 +vt 0.573086 0.444444 +vt 0.573086 0.430556 +vt 0.573086 0.416667 +vt 0.573086 0.402778 +vt 0.575406 0.388889 +vt 0.573086 0.375000 +vt 0.575406 0.375000 +vt 0.575406 0.416667 +vt 0.575406 0.472222 +vt 0.575406 0.458333 +vt 0.573086 0.388889 +vt 0.575406 0.402778 +vt 0.575406 0.430556 +vt 0.575406 0.486111 +vt 0.573086 0.472222 +vt 0.575406 0.444444 +vt 0.631090 0.326389 +vt 0.686775 0.312500 +vt 0.686775 0.326389 +vt 0.631090 0.284722 +vt 0.686775 0.270833 +vt 0.686775 0.284722 +vt 0.631090 0.243056 +vt 0.686775 0.229167 +vt 0.686775 0.243056 +vt 0.631090 0.312500 +vt 0.686775 0.298611 +vt 0.631090 0.298611 +vt 0.631090 0.270833 +vt 0.686775 0.256944 +vt 0.631090 0.229167 +vt 0.686775 0.215278 +vt 0.631090 0.256944 +vt 0.717029 0.306052 +vt 0.707512 0.306052 +vt 0.707512 0.277568 +vt 0.707598 0.256881 +vt 0.707598 0.228715 +vt 0.717008 0.228714 +vt 0.700696 0.256944 +vt 0.700696 0.243056 +vt 0.700696 0.270833 +vt 0.700696 0.284722 +vt 0.700696 0.298611 +vt 0.700696 0.326389 +vt 0.703016 0.312500 +vt 0.703016 0.326389 +vt 0.703016 0.270833 +vt 0.703016 0.284722 +vt 0.703016 0.243056 +vt 0.700696 0.229167 +vt 0.703016 0.229167 +vt 0.703016 0.298611 +vt 0.703016 0.256944 +vt 0.703016 0.215278 +vt 0.556845 0.486111 +vt 0.540732 0.416765 +vt 0.542731 0.402320 +vt 0.547557 0.396337 +vt 0.554382 0.416765 +vt 0.547557 0.437193 +vt 0.554402 0.465170 +vt 0.547635 0.485425 +vt 0.540868 0.465170 +vt 0.542850 0.450847 +vt 0.547635 0.444914 +vt 0.573086 0.486111 +vt 0.631090 0.215278 +vt 0.712271 0.271669 +vt 0.717029 0.277568 +vt 0.719000 0.291810 +vt 0.712271 0.311950 +vt 0.705542 0.291810 +vt 0.718957 0.242798 +vt 0.717008 0.256881 +vt 0.712303 0.262714 +vt 0.705648 0.242798 +vt 0.712303 0.222881 +vt 0.700696 0.312500 +vt 0.700696 0.215278 +vn -0.0000 -0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.6667 0.6667 -0.3333 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.7071 0.7071 +vn -0.9487 -0.3162 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.8944 0.4472 +vn 0.9701 -0.2425 -0.0000 +vn -0.9457 -0.3152 -0.0788 +vn 0.0000 -0.8321 0.5547 +vn 0.0000 -0.9806 0.1961 +vn -0.9211 -0.3892 0.0000 +vn 0.0000 -0.7071 0.7071 +vn -0.0099 0.0296 -0.9995 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.8165 0.5773 0.0000 +vn -0.8422 0.5392 0.0000 +vn -0.9659 0.2588 0.0000 +vn -0.9659 -0.2588 0.0000 +vn -0.2588 -0.9659 0.0000 +vn 0.2588 -0.9659 -0.0000 +vn 0.9659 -0.2588 -0.0000 +vn 0.9659 0.2588 -0.0000 +vn 0.8422 0.5392 -0.0000 +vn 0.8165 0.5773 -0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.9966 -0.0825 -0.0000 +vn -0.9864 0.1644 0.0000 +vn -0.9966 0.0825 0.0000 +vn 0.0000 0.0985 -0.9951 +vn 0.0000 0.9732 0.2298 +vn 0.0000 0.9522 0.3054 +vn 0.0000 0.8507 0.5257 +vn 0.0000 0.9454 0.3259 +vn 0.0000 0.9487 0.3162 +vn 0.0000 -0.0985 -0.9951 +vn 0.0000 -0.1961 -0.9806 +vn 0.0000 -0.0921 -0.9958 +vn 0.0000 0.9966 -0.0825 +vn 0.0000 -0.9923 0.1240 +vn 0.0000 0.8522 0.5232 +vn 0.0000 -0.9966 -0.0825 +vn 0.0000 -0.9864 -0.1644 +vn 0.0000 -0.8112 0.5847 +vn 0.0000 -0.9752 0.2212 +vn 0.0000 0.9864 -0.1644 +vn 0.0000 -0.7907 0.6121 +vn 0.0000 0.1961 -0.9806 +vn 0.0000 -0.7907 0.6122 +vn 0.0000 -0.7254 0.6883 +vn 0.0000 0.0921 -0.9958 +vn 0.9853 0.1706 -0.0077 +vn 0.9966 0.0825 0.0000 +vn 0.9966 -0.0825 -0.0000 +vn 0.9853 -0.1706 -0.0077 +vn 0.9955 -0.0941 -0.0084 +vn 0.9955 0.0941 -0.0084 +vn 0.9813 0.1899 -0.0317 +vn 0.9995 0.0322 -0.0000 +vn 0.9864 0.1644 -0.0000 +vn 0.9864 -0.1644 -0.0000 +vn 0.9987 -0.0507 -0.0000 +vn -0.9853 0.1706 -0.0077 +vn -0.9955 0.0941 -0.0084 +vn -0.9955 -0.0941 -0.0084 +vn -0.9995 0.0322 0.0000 +vn -0.9853 -0.1706 -0.0077 +vn -0.9813 -0.1899 -0.0317 +vn -0.9864 -0.1644 0.0000 +vn -0.9987 -0.0507 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.0000 -0.1370 -0.9906 +vn 0.0000 -0.7905 -0.6125 +vn 0.0000 -0.5590 -0.8291 +vn 0.0000 0.2423 -0.9702 +vn 0.0000 0.6359 -0.7717 +vn 0.0000 -0.8000 0.6000 +vn -0.0000 -0.3162 0.9487 +vn 0.0000 -0.6000 0.8000 +vn 0.0000 0.2298 0.9732 +vn 0.0000 0.3117 -0.9502 +vn 0.0000 -0.3528 -0.9357 +vn 0.0000 0.6900 -0.7238 +vn -0.0000 -0.9239 0.3827 +vn 0.0000 -0.8000 -0.6000 +vn 0.0000 -0.9288 -0.3705 +vn -0.9526 -0.3042 0.0000 +vn -0.9814 0.1922 -0.0000 +vn 0.9571 0.2898 0.0000 +vn 0.9526 -0.3042 -0.0000 +vn 0.9795 -0.2017 -0.0000 +vn -0.4585 -0.8887 0.0000 +vn 0.4719 0.8817 -0.0000 +vn -0.3097 0.9508 -0.0000 +vn -0.4719 0.8817 0.0000 +vn 0.3012 -0.9536 -0.0000 +vn -0.9571 0.2898 0.0000 +vn 0.4585 -0.8887 0.0000 +vn -0.5902 -0.6229 -0.5135 +vn -0.5834 -0.6334 -0.5085 +vn -0.6022 -0.6022 -0.5240 +vn 0.5834 -0.6334 -0.5085 +vn 0.5902 -0.6229 -0.5135 +vn 0.6022 -0.6022 -0.5240 +vn 0.6079 -0.6270 0.4871 +vn 0.5997 -0.6334 0.4890 +vn 0.6145 -0.6145 0.4948 +vn -0.5997 -0.6334 0.4890 +vn -0.6079 -0.6270 0.4871 +vn -0.6145 -0.6145 0.4947 +vn 0.7073 0.0000 -0.7069 +vn 0.6994 0.1498 -0.6989 +vn 0.6991 0.1855 -0.6906 +vn -0.7073 0.0000 -0.7069 +vn -0.6991 0.1855 -0.6906 +vn -0.6994 0.1498 -0.6989 +vn -0.7049 -0.0823 -0.7045 +vn -0.5834 -0.6333 -0.5085 +vn -0.6546 -0.4858 -0.5792 +vn -0.6943 -0.3555 -0.6257 +vn 0.7088 -0.0935 -0.6992 +vn 0.6546 -0.4858 -0.5792 +vn 0.6943 -0.3555 -0.6257 +vn -0.6691 0.4379 -0.6005 +vn -0.6341 0.5325 -0.5606 +vn -0.6149 0.5746 -0.5402 +vn -0.6414 0.5129 -0.5706 +vn -0.6853 0.2653 -0.6783 +vn -0.6932 0.1991 -0.6927 +vn -0.7338 -0.2367 -0.6368 +vn 0.6691 0.4379 -0.6005 +vn 0.6149 0.5746 -0.5402 +vn 0.6341 0.5325 -0.5606 +vn 0.6853 0.2653 -0.6783 +vn 0.6414 0.5129 -0.5706 +vn 0.7338 -0.2367 -0.6368 +vn 0.6931 0.1991 -0.6927 +vn 0.5718 -0.5982 0.5614 +vn 0.6247 -0.4686 0.6247 +vn 0.5968 -0.5359 0.5971 +vn 0.6806 -0.2708 0.6808 +vn 0.6247 -0.4685 0.6247 +vn 0.7005 0.1352 0.7007 +vn 0.6924 -0.2021 0.6926 +vn -0.5718 -0.5982 0.5614 +vn -0.5968 -0.5359 0.5971 +vn -0.6247 -0.4686 0.6247 +vn -0.6247 -0.4685 0.6247 +vn -0.6806 -0.2708 0.6808 +vn -0.7005 0.1352 0.7007 +vn -0.6924 -0.2021 0.6926 +vn -0.7088 -0.0935 -0.6992 +vn 0.7049 -0.0823 -0.7045 +vn 0.7389 -0.0063 0.6738 +vn 0.7043 0.1684 0.6896 +vn 0.7454 0.0000 0.6667 +vn -0.7389 -0.0063 0.6738 +vn -0.7043 0.1684 0.6896 +vn -0.7228 -0.5530 -0.4145 +vn -0.7221 -0.5534 -0.4151 +vn 0.7228 -0.5530 -0.4145 +vn 0.7340 -0.2418 -0.6346 +vn 0.7221 -0.5534 -0.4151 +vn 0.7002 -0.6597 -0.2729 +vn -0.7002 -0.6597 -0.2729 +vn -0.6957 -0.6697 -0.2597 +vn 0.7899 -0.5710 0.2235 +vn 0.6957 -0.6697 -0.2597 +vn -0.7899 -0.5710 0.2235 +vn -0.7454 -0.0000 0.6667 +vn -0.2588 0.9659 0.0000 +vn 0.2588 0.9659 -0.0000 +vn -0.9389 -0.2516 0.2347 +vn -0.9389 0.2516 0.2347 +vn 0.2516 0.9389 0.2347 +vn 0.6873 0.6874 0.2347 +vn -0.6873 0.6874 0.2347 +vn 0.9389 0.2516 0.2347 +vn 0.9389 -0.2516 0.2347 +vn 0.6873 -0.6873 0.2347 +vn 0.2516 -0.9389 0.2347 +vn -0.2516 -0.9389 0.2347 +vn -0.6873 -0.6873 0.2347 +vn -0.2516 0.9389 0.2347 +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.9813 -0.1899 -0.0317 +vn -0.9813 0.1899 -0.0317 +vn -0.7341 -0.2418 -0.6346 +vn 0.7904 -0.5644 0.2383 +vn -0.7904 -0.5644 0.2383 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 0.9239 0.3827 +vn -0.5458 -0.8379 0.0000 +vn 0.5458 0.8379 0.0000 +vn 0.0000 -0.2298 0.9732 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.4472 0.8944 +vn 0.2065 -0.9784 -0.0000 +vn 0.8379 -0.5458 -0.0000 +vn -0.9784 -0.2065 0.0000 +vn -0.8379 0.5458 0.0000 +vn 0.9784 0.2065 -0.0000 +vn 0.4261 0.9047 0.0000 +vn -0.6553 -0.7554 0.0000 +vn -0.2065 0.9784 -0.0000 +vn 0.6553 0.7554 -0.0000 +vn -0.4261 -0.9047 0.0000 +s off +f 101/189/66 102/190/66 103/191/66 +f 104/192/66 105/193/66 106/194/66 +f 107/195/67 108/196/67 109/197/67 +f 110/198/68 111/199/68 112/200/68 +f 113/201/69 114/202/69 115/203/69 +f 116/204/67 117/205/67 118/206/67 +f 119/207/67 120/208/67 121/209/67 +f 122/210/67 123/211/67 116/204/67 +f 124/212/67 125/213/67 122/210/67 +f 121/209/67 126/214/67 124/212/67 +f 118/206/67 127/215/67 128/216/67 +f 117/217/67 129/218/67 127/219/67 +f 130/220/67 131/221/67 120/222/67 +f 132/223/67 133/224/67 129/218/67 +f 134/225/67 135/226/67 131/221/67 +f 136/227/66 137/228/66 138/229/66 +f 139/230/67 140/231/67 141/232/67 +f 142/233/70 143/234/70 144/235/70 +f 140/231/67 145/236/67 141/232/67 +f 141/232/67 146/237/67 147/238/67 +f 148/239/68 149/240/68 150/241/68 +f 151/242/67 150/243/67 152/244/67 +f 153/245/69 154/246/69 155/247/69 +f 145/236/67 152/244/67 146/237/67 +f 155/247/69 156/248/69 153/245/69 +f 151/242/67 144/249/67 148/250/67 +f 142/251/67 151/242/67 145/236/67 +f 153/245/71 157/252/71 158/253/71 +f 139/230/67 147/238/67 154/246/67 +f 140/254/70 159/255/70 142/256/70 +f 140/254/72 153/245/72 158/253/72 +f 143/234/73 148/239/73 144/235/73 +f 160/257/72 161/258/72 162/259/72 +f 163/260/68 164/261/68 165/262/68 +f 166/263/74 167/264/74 164/265/74 +f 143/266/66 168/267/66 169/268/66 +f 170/269/69 171/270/69 172/271/69 +f 168/267/66 149/272/66 169/268/66 +f 173/273/66 174/274/66 168/267/66 +f 158/253/75 175/275/75 159/255/75 +f 176/276/66 177/277/66 178/278/66 +f 179/279/68 166/280/68 163/260/68 +f 180/281/66 138/229/66 181/282/66 +f 176/276/66 136/227/66 180/281/66 +f 136/227/66 161/283/66 182/284/66 +f 183/285/69 182/284/69 160/257/69 +f 184/286/69 185/287/69 156/248/69 +f 162/288/69 186/289/69 187/290/69 +f 175/291/75 143/234/75 159/292/75 +f 165/262/68 188/293/68 189/294/68 +f 156/248/72 172/295/72 157/252/72 +f 190/296/68 180/297/68 181/298/68 +f 189/294/68 191/299/68 190/296/68 +f 192/300/69 193/301/69 185/287/69 +f 194/302/69 160/257/69 193/301/69 +f 175/303/76 195/304/76 196/305/76 +f 197/306/68 198/307/68 199/308/68 +f 164/265/74 200/309/74 188/310/74 +f 157/311/76 201/312/76 175/303/76 +f 185/287/72 170/313/72 172/295/72 +f 193/301/72 162/259/72 170/313/72 +f 199/308/77 177/314/77 202/315/77 +f 196/316/68 168/317/68 143/318/68 +f 196/316/77 167/264/77 203/319/77 +f 204/320/77 200/309/77 167/264/77 +f 200/321/67 197/322/67 205/323/67 +f 178/324/78 206/325/78 176/326/78 +f 204/320/68 207/327/68 197/306/68 +f 191/328/74 177/314/74 180/329/74 +f 188/310/74 202/315/74 191/328/74 +f 173/330/79 203/319/79 166/263/79 +f 162/288/69 208/331/69 170/269/69 +f 199/332/66 202/333/66 209/334/66 +f 209/334/66 210/335/66 211/336/66 +f 209/334/68 212/337/68 205/323/68 +f 200/338/80 210/339/80 202/340/80 +f 205/323/67 213/341/67 200/321/67 +f 205/323/73 199/342/73 209/334/73 +f 187/290/70 206/325/70 214/343/70 +f 215/344/70 216/345/70 201/312/70 +f 171/270/70 217/346/70 216/345/70 +f 208/331/70 214/343/70 217/346/70 +f 216/345/70 195/304/70 201/312/70 +f 206/325/70 198/307/70 214/343/70 +f 217/346/70 218/347/70 216/345/70 +f 214/343/70 207/327/70 217/346/70 +f 172/271/69 215/344/69 157/348/69 +f 199/308/68 219/349/68 178/350/68 +f 204/320/68 195/304/68 218/347/68 +f 176/326/78 186/289/78 161/351/78 +f 181/298/70 210/352/70 190/296/70 +f 152/244/67 220/353/67 146/237/67 +f 147/238/67 221/354/67 154/246/67 +f 184/286/69 222/355/69 192/300/69 +f 189/294/70 223/356/70 165/262/70 +f 149/240/68 224/357/68 150/241/68 +f 163/260/70 174/358/70 179/279/70 +f 225/359/66 226/360/66 181/282/66 +f 192/300/69 227/361/69 194/302/69 +f 137/228/66 228/362/66 138/229/66 +f 155/247/69 229/363/69 184/286/69 +f 154/246/69 230/364/69 155/247/69 +f 146/237/67 231/365/67 147/238/67 +f 183/285/69 232/366/69 137/228/69 +f 138/229/66 225/359/66 181/282/66 +f 194/302/69 233/367/69 183/285/69 +f 150/243/67 234/368/67 152/244/67 +f 235/369/70 149/370/70 174/358/70 +f 236/371/66 237/372/66 226/360/66 +f 165/262/70 235/369/70 163/260/70 +f 190/296/70 213/373/70 189/294/70 +f 212/374/68 238/375/68 239/376/68 +f 239/376/68 240/377/68 241/378/68 +f 237/379/68 242/380/68 211/381/68 +f 211/381/68 243/382/68 212/374/68 +f 241/378/68 244/383/68 149/240/68 +f 213/373/70 239/384/70 223/356/70 +f 226/385/70 211/386/70 210/352/70 +f 223/356/70 241/387/70 235/369/70 +f 196/316/81 203/319/81 168/317/81 +f 245/388/68 246/389/68 247/390/68 +f 247/390/68 248/391/68 249/392/68 +f 250/393/74 251/394/74 252/395/74 +f 253/396/67 254/397/67 255/398/67 +f 252/395/74 256/399/74 253/400/74 +f 257/401/74 258/402/74 259/403/74 +f 260/404/74 261/405/74 262/406/74 +f 263/407/69 264/408/69 265/409/69 +f 266/410/68 267/411/68 268/412/68 +f 269/413/68 270/414/68 271/415/68 +f 272/416/68 273/417/68 274/418/68 +f 275/419/68 276/420/68 273/417/68 +f 277/421/68 278/422/68 279/423/68 +f 280/424/68 281/425/68 245/388/68 +f 282/426/69 283/427/69 284/428/69 +f 285/429/68 286/430/68 287/431/68 +f 288/432/66 289/433/66 264/434/66 +f 290/435/67 291/436/67 292/437/67 +f 293/438/66 294/439/66 295/440/66 +f 296/441/70 297/442/70 298/443/70 +f 299/444/70 300/445/70 301/446/70 +f 302/447/70 303/448/70 304/449/70 +f 304/449/70 305/450/70 302/447/70 +f 306/451/70 307/452/70 308/453/70 +f 309/454/69 310/455/69 311/456/69 +f 312/457/69 313/458/69 314/459/69 +f 315/460/69 316/461/69 317/462/69 +f 318/463/69 317/462/69 319/464/69 +f 299/444/69 320/465/69 321/466/69 +f 322/467/69 254/468/69 323/469/69 +f 324/470/70 325/471/70 326/472/70 +f 327/473/69 323/469/69 310/455/69 +f 328/474/70 329/475/70 324/470/70 +f 330/476/70 331/477/70 332/478/70 +f 310/455/69 251/479/69 333/480/69 +f 323/469/69 256/481/69 251/479/69 +f 334/482/69 265/409/69 335/483/69 +f 321/466/69 336/484/69 337/485/69 +f 319/464/69 338/486/69 339/487/69 +f 317/462/69 258/488/69 338/486/69 +f 314/459/69 261/489/69 340/490/69 +f 311/456/69 333/480/69 341/491/69 +f 280/424/68 305/450/68 342/492/68 +f 277/421/68 307/452/68 343/493/68 +f 344/494/68 276/420/68 329/475/68 +f 345/495/68 273/417/68 344/494/68 +f 298/443/68 271/415/68 346/496/68 +f 347/497/67 254/397/67 348/498/67 +f 302/447/68 249/392/68 349/499/68 +f 305/450/68 247/390/68 302/447/68 +f 350/500/74 286/501/74 351/502/74 +f 352/503/74 353/504/74 350/500/74 +f 354/505/66 297/442/66 355/506/66 +f 300/445/66 356/507/66 294/439/66 +f 349/499/67 357/508/67 303/448/67 +f 358/509/67 255/398/67 347/497/67 +f 359/510/70 360/511/70 361/512/70 +f 362/513/70 363/514/70 364/515/70 +f 365/516/70 364/515/70 366/517/70 +f 367/518/70 368/519/70 369/520/70 +f 322/467/70 370/521/70 371/522/70 +f 372/523/70 304/449/70 373/524/70 +f 371/522/70 348/498/70 322/467/70 +f 304/449/70 374/525/70 373/524/70 +f 375/526/74 287/527/74 376/528/74 +f 288/529/74 337/530/74 377/531/74 +f 377/532/69 378/533/69 379/534/69 +f 268/412/68 380/535/68 381/536/68 +f 278/422/74 382/537/74 383/538/74 +f 384/539/68 385/540/68 386/541/68 +f 387/542/74 262/406/74 261/405/74 +f 388/543/74 250/393/74 389/544/74 +f 390/545/74 391/546/74 278/422/74 +f 275/419/74 392/547/74 393/548/74 +f 257/401/74 394/549/74 395/550/74 +f 290/551/74 272/416/74 396/552/74 +f 338/553/74 282/554/74 339/555/74 +f 246/389/74 397/556/74 248/391/74 +f 398/557/74 253/400/74 399/558/74 +f 248/559/67 357/508/67 249/560/67 +f 399/561/67 255/398/67 400/562/67 +f 281/425/74 401/563/74 246/389/74 +f 250/393/74 398/557/74 389/544/74 +f 402/564/74 403/565/74 404/566/74 +f 402/564/74 405/567/74 406/568/74 +f 407/569/74 408/570/74 405/567/74 +f 409/571/67 410/572/67 411/573/67 +f 412/574/67 413/575/67 410/572/67 +f 414/576/67 415/577/67 413/575/67 +f 403/565/74 412/578/74 409/579/74 +f 406/568/74 414/580/74 412/578/74 +f 405/567/74 416/581/74 414/580/74 +f 417/582/68 418/583/68 267/411/68 +f 419/584/66 420/585/66 417/586/66 +f 421/587/74 422/588/74 292/589/74 +f 421/587/74 423/590/74 424/591/74 +f 425/592/74 426/593/74 423/590/74 +f 260/594/69 427/595/69 428/596/69 +f 429/597/66 430/598/66 431/599/66 +f 432/600/74 402/564/74 404/566/74 +f 433/601/74 407/569/74 402/564/74 +f 434/602/74 435/603/74 407/569/74 +f 268/604/70 436/605/70 437/606/70 +f 437/606/70 438/607/70 439/608/70 +f 439/608/70 440/609/70 441/610/70 +f 265/409/69 289/611/69 442/612/69 +f 267/411/68 443/613/68 380/535/68 +f 444/614/70 358/509/70 445/615/70 +f 446/616/70 447/617/70 444/614/70 +f 448/618/70 449/619/70 446/616/70 +f 450/620/70 444/614/70 445/615/70 +f 444/614/70 451/621/70 446/616/70 +f 451/621/70 448/618/70 446/616/70 +f 452/622/70 453/623/70 266/624/70 +f 454/625/70 455/626/70 452/622/70 +f 455/626/67 456/627/67 453/623/67 +f 457/628/67 458/629/67 455/626/67 +f 374/525/67 410/572/67 459/630/67 +f 459/630/67 413/575/67 449/619/67 +f 449/619/67 415/577/67 447/617/67 +f 460/631/74 461/632/74 462/633/74 +f 463/634/66 464/635/66 465/636/66 +f 466/637/67 467/638/67 468/639/67 +f 461/632/74 469/640/74 470/641/74 +f 471/642/68 472/643/68 473/644/68 +f 474/645/66 436/646/66 381/647/66 +f 475/648/66 438/649/66 436/646/66 +f 476/650/66 440/651/66 438/649/66 +f 425/592/74 477/652/74 478/653/74 +f 466/637/68 479/654/68 480/655/68 +f 292/589/74 481/656/74 421/587/74 +f 473/657/67 482/658/67 483/659/67 +f 478/653/74 484/660/74 395/550/74 +f 485/661/68 486/662/68 487/663/68 +f 488/664/74 489/665/74 490/666/74 +f 491/667/74 492/668/74 493/669/74 +f 491/670/68 494/671/68 396/672/68 +f 318/463/70 495/673/70 496/674/70 +f 497/675/69 498/676/69 499/677/69 +f 500/678/68 501/679/68 502/680/68 +f 503/681/69 488/682/69 490/683/69 +f 504/684/70 345/495/70 505/685/70 +f 506/686/69 507/687/69 503/681/69 +f 489/688/69 508/689/69 509/690/69 +f 492/668/68 501/679/68 510/691/68 +f 511/692/74 512/693/74 513/694/74 +f 514/695/74 515/696/74 516/697/74 +f 498/698/74 486/662/74 517/699/74 +f 511/700/66 517/701/66 518/702/66 +f 519/703/67 520/704/67 497/675/67 +f 521/705/69 522/706/69 523/707/69 +f 524/708/66 515/709/66 525/710/66 +f 526/711/68 527/712/68 466/637/68 +f 518/702/66 486/713/66 528/714/66 +f 529/715/74 517/699/74 530/716/74 +f 380/717/66 531/718/66 285/429/66 +f 355/506/66 381/647/66 354/505/66 +f 303/448/67 411/573/67 374/525/67 +f 532/719/74 404/566/74 533/720/74 +f 534/721/66 535/722/66 536/723/66 +f 292/589/74 392/547/74 290/551/74 +f 401/563/74 409/579/74 397/556/74 +f 397/724/67 411/573/67 357/508/67 +f 404/566/74 401/563/74 533/720/74 +f 537/725/66 538/726/66 419/584/66 +f 373/524/70 459/630/70 448/618/70 +f 539/727/70 373/524/70 448/618/70 +f 350/500/74 540/728/74 352/503/74 +f 541/729/74 351/502/74 542/730/74 +f 543/731/66 515/709/66 544/732/66 +f 545/733/67 546/734/67 521/705/67 +f 522/706/74 515/696/74 547/735/74 +f 395/736/67 283/427/67 257/737/67 +f 378/738/74 470/641/74 379/739/74 +f 548/740/74 461/632/74 378/738/74 +f 370/521/70 445/615/70 371/522/70 +f 445/615/70 347/497/70 371/522/70 +f 549/741/70 457/628/70 454/625/70 +f 389/544/74 408/570/74 435/603/74 +f 416/742/67 400/562/67 415/577/67 +f 408/570/74 399/558/74 416/581/74 +f 335/743/66 550/744/66 551/745/66 +f 395/550/74 426/593/74 478/653/74 +f 552/746/74 389/544/74 435/603/74 +f 441/610/70 295/747/70 263/748/70 +f 334/749/70 553/750/70 549/741/70 +f 554/751/74 555/752/74 556/753/74 +f 447/617/67 400/562/67 358/509/67 +f 557/754/66 295/440/66 440/651/66 +f 263/748/70 549/741/70 441/610/70 +f 556/753/74 335/743/74 551/745/74 +f 441/610/70 454/625/70 439/608/70 +f 439/608/70 452/622/70 437/606/70 +f 437/606/70 266/624/70 268/604/70 +f 558/755/74 551/745/74 537/725/74 +f 559/756/74 537/725/74 419/584/74 +f 560/757/74 419/584/74 417/586/74 +f 561/758/69 335/483/69 555/759/69 +f 453/760/68 417/582/68 266/410/68 +f 335/483/69 442/612/69 562/761/69 +f 551/745/66 563/762/66 537/725/66 +f 564/763/69 565/764/69 566/765/69 +f 567/766/67 565/767/67 568/768/67 +f 508/769/74 569/770/74 509/771/74 +f 570/772/74 571/773/74 572/774/74 +f 573/775/68 510/691/68 574/776/68 +f 575/777/69 509/690/69 548/778/69 +f 359/510/69 503/681/69 576/779/69 +f 576/779/69 490/683/69 577/780/69 +f 331/477/68 510/691/68 500/678/68 +f 493/669/74 573/775/74 386/781/74 +f 490/666/74 575/782/74 577/783/74 +f 578/784/74 579/785/74 569/770/74 +f 493/786/68 580/787/68 491/670/68 +f 581/788/70 582/789/70 495/673/70 +f 583/790/74 584/791/74 571/773/74 +f 585/792/70 502/680/70 504/684/70 +f 586/793/66 587/794/66 588/795/66 +f 589/796/69 590/797/69 591/798/69 +f 592/799/66 464/635/66 593/800/66 +f 468/639/69 594/801/69 595/802/69 +f 395/736/68 596/803/68 526/711/68 +f 597/804/67 589/796/67 591/798/67 +f 598/805/66 599/806/66 586/793/66 +f 588/807/68 600/808/68 601/809/68 +f 602/810/66 465/811/66 543/812/66 +f 511/692/66 603/813/66 602/810/66 +f 604/814/69 605/815/69 606/816/69 +f 607/817/68 608/818/68 471/642/68 +f 609/819/68 610/820/68 607/817/68 +f 442/612/69 606/816/69 562/761/69 +f 563/762/66 611/821/66 538/726/66 +f 612/822/67 613/823/67 289/824/67 +f 614/825/67 568/768/67 615/826/67 +f 442/612/69 613/827/69 604/814/69 +f 616/828/69 568/829/69 564/763/69 +f 420/585/66 538/726/66 611/821/66 +f 418/583/68 617/830/68 609/819/68 +f 443/831/67 618/832/67 619/833/67 +f 620/834/67 483/659/67 621/835/67 +f 550/744/66 622/836/66 563/762/66 +f 418/583/68 623/837/68 443/613/68 +f 607/817/68 473/644/68 620/838/68 +f 379/739/74 289/839/74 624/840/74 +f 542/730/74 443/841/74 619/842/74 +f 470/641/74 612/843/74 289/839/74 +f 288/432/69 379/534/69 624/844/69 +f 377/531/74 336/845/74 625/846/74 +f 376/528/74 384/847/74 270/414/74 +f 351/502/74 531/848/74 443/841/74 +f 297/442/68 269/413/68 298/443/68 +f 356/849/69 337/485/69 626/850/69 +f 627/851/69 321/466/69 356/849/69 +f 628/852/70 301/446/70 360/511/70 +f 330/476/70 298/443/70 346/496/70 +f 287/431/68 353/853/68 384/539/68 +f 629/854/68 376/528/68 269/413/68 +f 630/855/74 631/856/74 632/857/74 +f 483/858/68 633/859/68 621/860/68 +f 482/861/68 634/862/68 483/858/68 +f 612/863/69 635/864/69 636/865/69 +f 567/866/69 637/867/69 630/855/69 +f 632/857/74 638/868/74 482/861/74 +f 618/869/68 542/870/68 619/871/68 +f 636/865/69 639/872/69 614/873/69 +f 640/874/68 541/875/68 542/870/68 +f 469/876/69 641/877/69 635/864/69 +f 637/867/74 642/878/74 631/856/74 +f 643/879/69 644/880/69 637/867/69 +f 631/856/74 645/881/74 638/868/74 +f 638/868/68 646/882/68 634/862/68 +f 577/783/74 625/846/74 336/845/74 +f 386/781/74 270/414/74 384/847/74 +f 346/496/68 574/776/68 331/477/68 +f 320/465/69 577/780/69 336/484/69 +f 628/852/69 576/779/69 320/465/69 +f 575/777/69 378/533/69 625/883/69 +f 270/414/68 574/776/68 271/415/68 +f 509/771/74 462/633/74 548/740/74 +f 571/773/74 540/728/74 572/774/74 +f 569/770/74 460/631/74 462/633/74 +f 386/541/68 584/884/68 493/786/68 +f 506/686/70 361/512/70 582/789/70 +f 571/773/74 385/885/74 352/503/74 +f 332/478/70 500/678/70 585/792/70 +f 647/886/69 648/887/69 641/877/69 +f 644/880/69 649/888/69 650/889/69 +f 541/875/68 651/890/68 540/891/68 +f 645/881/68 652/892/68 646/882/68 +f 650/889/69 649/888/69 653/893/69 +f 648/887/69 579/894/69 654/895/69 +f 572/896/68 651/890/68 655/897/68 +f 655/897/68 656/898/68 657/899/68 +f 653/893/69 658/900/69 659/901/69 +f 657/899/68 652/892/68 660/902/68 +f 658/900/69 654/895/69 659/901/69 +f 291/436/69 661/903/69 292/437/69 +f 580/787/68 601/809/68 494/671/68 +f 591/798/69 662/904/69 291/436/69 +f 570/905/66 586/793/66 583/906/66 +f 663/907/67 591/798/67 291/436/67 +f 480/655/68 664/908/68 545/733/68 +f 283/427/69 595/802/69 284/428/69 +f 508/909/66 593/800/66 578/910/66 +f 421/587/74 665/911/74 425/592/74 +f 583/906/66 588/795/66 580/912/66 +f 526/711/67 468/639/67 283/427/67 +f 578/910/66 463/634/66 666/913/66 +f 579/894/69 463/914/69 654/895/69 +f 598/915/68 572/896/68 655/897/68 +f 465/916/69 654/895/69 463/914/69 +f 655/897/68 667/917/68 598/915/68 +f 652/892/68 668/918/68 660/902/68 +f 635/919/67 633/920/67 639/921/67 +f 634/922/70 669/923/70 643/924/70 +f 646/925/70 649/926/70 669/923/70 +f 635/927/74 670/928/74 640/929/74 +f 651/930/74 641/931/74 648/932/74 +f 651/930/66 658/933/66 656/934/66 +f 658/933/66 652/935/66 656/934/66 +f 632/936/67 671/937/67 630/938/67 +f 672/939/67 632/936/67 482/658/67 +f 673/940/69 566/765/69 674/941/69 +f 675/942/68 676/943/68 677/944/68 +f 678/945/69 679/946/69 680/947/69 +f 608/818/68 677/944/68 471/642/68 +f 681/948/68 676/943/68 682/949/68 +f 482/658/67 683/950/67 672/939/67 +f 684/951/68 685/952/68 686/953/68 +f 682/949/68 687/954/68 685/952/68 +f 688/955/69 680/947/69 689/956/69 +f 630/938/67 690/957/67 565/767/67 +f 691/958/69 692/959/69 693/960/69 +f 694/961/69 692/959/69 695/962/69 +f 689/956/69 696/963/69 694/961/69 +f 697/964/68 698/965/68 699/966/68 +f 697/964/68 686/953/68 700/967/68 +f 639/921/67 634/922/67 643/924/67 +f 614/873/69 643/879/69 567/866/69 +f 621/860/68 640/874/68 618/869/68 +f 609/819/68 620/838/68 623/837/68 +f 550/744/66 562/968/66 701/969/66 +f 623/970/67 621/835/67 618/832/67 +f 604/814/69 615/971/69 616/828/69 +f 636/972/67 615/826/67 613/823/67 +f 565/764/69 690/973/69 702/974/69 +f 616/828/69 673/940/69 605/815/69 +f 703/975/68 704/976/68 705/977/68 +f 693/960/69 706/978/69 707/979/69 +f 508/689/69 595/802/69 592/980/69 +f 494/671/68 597/804/68 663/907/68 +f 601/809/68 708/981/68 597/804/68 +f 592/980/69 594/801/69 709/982/69 +f 546/734/74 516/697/74 522/706/74 +f 523/707/69 547/735/69 524/983/69 +f 520/984/74 487/663/74 498/698/74 +f 505/685/70 344/494/70 328/474/70 +f 315/460/70 496/674/70 363/514/70 +f 396/672/68 663/907/68 290/435/68 +f 519/703/68 487/663/68 710/985/68 +f 339/555/74 711/986/74 488/664/74 +f 396/552/74 712/987/74 491/667/74 +f 502/680/68 274/418/68 345/495/68 +f 507/687/69 339/487/69 488/682/69 +f 581/788/69 319/464/69 507/687/69 +f 711/988/69 284/428/69 508/689/69 +f 712/987/68 274/418/68 501/679/68 +f 477/989/67 596/803/67 484/990/67 +f 665/991/67 713/992/67 477/989/67 +f 481/993/67 714/994/67 665/991/67 +f 514/995/68 543/812/68 544/996/68 +f 511/692/69 529/997/69 530/998/69 +f 715/999/67 516/1000/67 664/908/67 +f 513/1001/67 498/676/67 529/1002/67 +f 661/903/67 716/1003/67 481/993/67 +f 590/797/67 717/1004/67 718/1005/67 +f 719/1006/67 479/654/67 527/712/67 +f 720/1007/67 721/1008/67 719/1006/67 +f 718/1005/67 722/1009/67 720/1007/67 +f 716/1003/67 720/1007/67 714/994/67 +f 714/994/67 719/1006/67 713/992/67 +f 713/992/67 527/712/67 596/803/67 +f 662/904/67 718/1005/67 716/1003/67 +f 717/1004/67 499/677/67 513/1001/67 +f 479/654/67 715/999/67 664/908/67 +f 721/1008/67 512/1010/67 715/999/67 +f 722/1009/67 513/1001/67 512/1010/67 +f 600/808/68 519/703/68 708/981/68 +f 709/982/69 523/707/69 524/983/69 +f 545/733/68 516/1000/68 723/1011/68 +f 715/1012/74 602/810/74 543/812/74 +f 480/655/67 521/705/67 467/638/67 +f 465/636/66 525/710/66 543/731/66 +f 599/806/66 528/714/66 587/794/66 +f 709/1013/66 525/710/66 464/635/66 +f 467/638/69 523/707/69 594/801/69 +f 708/981/67 497/675/67 589/796/67 +f 667/1014/66 518/702/66 599/806/66 +f 497/675/69 724/1015/69 589/796/69 +f 587/1016/68 485/661/68 600/808/68 +f 426/593/74 536/1017/74 725/1018/74 +f 392/547/74 429/1019/74 431/1020/74 +f 423/590/74 725/1018/74 726/1021/74 +f 424/591/74 726/1021/74 727/1022/74 +f 422/588/74 727/1022/74 429/1019/74 +f 394/549/74 534/1023/74 536/1017/74 +f 393/548/74 431/1020/74 728/1024/74 +f 312/457/70 366/517/70 729/1025/70 +f 276/420/68 325/471/68 329/475/68 +f 316/461/69 730/1026/69 258/488/69 +f 326/472/70 343/493/70 731/1027/70 +f 362/513/69 732/1028/69 316/461/69 +f 393/548/68 733/1029/68 276/420/68 +f 259/403/74 730/1030/74 534/1023/74 +f 734/1031/69 388/1032/69 735/1033/69 +f 382/537/74 432/600/74 532/719/74 +f 431/599/68 736/1034/68 737/1035/68 +f 734/1036/74 738/1037/74 388/543/74 +f 333/1038/74 738/1037/74 341/1039/74 +f 739/1040/74 533/720/74 281/425/74 +f 327/473/70 740/1041/70 370/521/70 +f 308/453/68 280/424/68 342/492/68 +f 741/1042/69 341/491/69 387/1043/69 +f 367/518/69 311/456/69 741/1042/69 +f 742/1044/70 342/492/70 305/450/70 +f 743/1045/68 739/1040/68 280/424/68 +f 535/722/68 744/1046/68 745/1047/68 +f 736/1034/68 746/1048/68 747/1049/68 +f 748/1050/69 749/1051/69 750/1052/69 +f 747/1049/67 751/1053/67 752/1054/67 +f 748/1050/66 753/1055/66 430/598/66 +f 754/1056/66 749/1051/66 755/1057/66 +f 756/1058/82 388/1059/82 552/1060/82 +f 757/1061/82 552/1060/82 434/1062/82 +f 758/1063/82 434/1062/82 433/1064/82 +f 759/1065/82 433/1064/82 432/1066/82 +f 760/1067/67 427/595/67 262/1068/67 +f 761/1069/68 759/1070/68 762/1071/68 +f 391/1072/67 752/1054/67 761/1073/67 +f 432/1074/68 762/1071/68 759/1070/68 +f 752/1075/83 758/1063/83 759/1065/83 +f 763/1076/83 757/1061/83 758/1063/83 +f 764/1077/83 756/1058/83 757/1061/83 +f 765/1078/83 735/1079/83 756/1058/83 +f 279/423/68 383/538/68 743/1045/68 +f 766/1080/69 741/1042/69 313/458/69 +f 313/458/69 387/1043/69 261/489/69 +f 307/452/68 743/1045/68 308/453/68 +f 760/1081/74 767/1082/74 734/1036/74 +f 391/546/74 762/1083/74 382/537/74 +f 760/1084/69 735/1033/69 768/1085/69 +f 341/1039/74 767/1082/74 387/542/74 +f 383/538/74 532/719/74 739/1040/74 +f 309/454/70 369/520/70 740/1041/70 +f 769/1086/70 308/453/70 342/492/70 +f 770/1087/66 771/1088/66 754/1056/66 +f 755/1057/69 429/597/69 772/1089/69 +f 755/1057/66 773/1090/66 754/1056/66 +f 763/1091/67 774/1092/67 764/1093/67 +f 737/1035/68 747/1049/68 391/1072/68 +f 731/1027/70 307/452/70 775/1094/70 +f 766/1080/70 729/1025/70 368/519/70 +f 534/721/69 428/596/69 776/1095/69 +f 728/1024/74 737/1096/74 390/545/74 +f 733/1029/68 343/493/68 325/471/68 +f 732/1028/69 340/490/69 730/1026/69 +f 365/516/69 314/459/69 732/1028/69 +f 733/1029/68 390/545/68 277/421/68 +f 534/1023/74 340/1097/74 260/404/74 +f 744/1098/74 777/1099/74 778/1100/74 +f 749/1101/74 779/1102/74 751/1053/74 +f 771/1103/74 774/1092/74 779/1102/74 +f 780/1104/74 781/1105/74 774/1092/74 +f 782/1106/74 751/1053/74 746/1048/74 +f 783/1107/74 778/1100/74 781/1105/74 +f 753/1108/74 749/1101/74 782/1106/74 +f 784/1109/74 785/1110/74 744/1098/74 +f 752/1054/67 779/1102/67 763/1091/67 +f 428/596/69 777/1099/69 785/1111/69 +f 745/1047/66 783/1112/66 786/1113/66 +f 430/598/68 782/1114/68 736/1034/68 +f 765/1115/67 778/1100/67 768/1116/67 +f 776/1095/66 784/1117/66 535/722/66 +f 776/1095/69 785/1111/69 787/1118/69 +f 768/1116/67 777/1099/67 427/595/67 +f 764/1093/67 781/1105/67 765/1115/67 +f 786/1113/66 780/1119/66 770/1120/66 +f 725/1018/74 788/1121/74 789/1122/74 +f 726/1021/74 789/1122/74 790/1123/74 +f 727/1022/74 790/1123/74 773/1124/74 +f 429/1019/74 773/1124/74 772/1125/74 +f 770/1120/66 789/1126/66 786/1113/66 +f 745/1047/68 536/723/68 535/722/68 +f 754/1056/66 790/1127/66 770/1087/66 +f 786/1113/66 788/1128/66 745/1047/66 +f 381/647/66 375/1129/66 629/1130/66 +f 264/1131/66 356/507/66 626/1132/66 +f 791/1133/74 556/753/74 558/755/74 +f 792/1134/74 558/755/74 559/756/74 +f 793/1135/74 559/756/74 560/757/74 +f 794/1136/69 555/759/69 795/1137/69 +f 793/1138/68 453/760/68 796/1139/68 +f 458/629/67 797/1140/67 456/627/67 +f 798/1141/70 799/1142/70 800/1143/70 +f 553/750/67 801/1144/67 457/628/67 +f 561/1145/67 802/1146/67 553/750/67 +f 803/1147/70 804/1148/70 805/1149/70 +f 806/1150/70 807/1151/70 803/1147/70 +f 805/1152/67 808/1153/67 797/1140/67 +f 809/1154/67 806/1155/67 802/1146/67 +f 801/1144/67 805/1152/67 458/629/67 +f 810/1156/70 811/1157/70 798/1141/70 +f 802/1146/67 803/1158/67 801/1144/67 +f 812/1159/67 813/1160/67 814/1161/67 +f 815/1162/67 812/1159/67 806/1155/67 +f 816/1163/70 817/1164/70 818/1165/70 +f 819/1166/84 820/1167/84 821/1168/84 +f 822/1169/67 814/1170/67 813/1160/67 +f 818/1165/70 823/1171/70 816/1163/70 +f 824/1172/70 798/1141/70 807/1151/70 +f 807/1151/70 800/1143/70 804/1148/70 +f 820/1167/84 825/1173/84 821/1168/84 +f 826/1174/67 827/1175/67 823/1171/67 +f 465/1176/74 828/1177/74 659/1178/74 +f 659/1178/67 829/1179/67 653/1180/67 +f 653/1180/85 830/1181/85 650/889/85 +f 650/889/74 642/878/74 644/880/74 +f 830/1181/74 645/881/74 642/878/74 +f 668/918/85 829/1179/85 660/1182/85 +f 828/1177/67 660/1182/67 829/1179/67 +f 603/1183/74 657/1184/74 828/1177/74 +f 831/1185/68 682/949/68 684/951/68 +f 680/947/69 832/1186/69 696/963/69 +f 677/944/68 676/943/68 833/1187/68 +f 834/1188/68 684/951/68 697/964/68 +f 696/963/69 835/1189/69 692/959/69 +f 693/960/69 835/1189/69 706/978/69 +f 707/979/69 836/1190/69 837/1191/69 +f 834/1188/68 699/966/68 838/1192/68 +f 838/1192/68 699/966/68 704/976/68 +f 674/941/69 678/945/69 688/955/69 +f 839/1193/69 840/1194/69 841/1195/69 +f 842/1196/67 843/1197/67 840/1198/67 +f 844/1199/68 845/1200/68 843/1201/68 +f 846/1202/66 841/1203/66 845/1204/66 +f 842/1196/70 846/1202/70 844/1199/70 +f 847/1205/67 848/1206/67 849/1207/67 +f 850/1208/68 851/1209/68 848/1206/68 +f 848/1210/74 852/1211/74 849/1212/74 +f 847/1213/70 853/1214/70 850/1215/70 +f 854/1216/66 855/1217/66 856/1218/66 +f 851/1219/74 855/1220/74 852/1211/74 +f 857/1221/70 854/1222/70 853/1214/70 +f 854/1222/70 858/1223/70 853/1214/70 +f 858/1223/68 859/1224/68 860/1225/68 +f 856/1218/66 861/1226/66 854/1216/66 +f 853/1227/67 860/1225/67 851/1209/67 +f 851/1219/74 859/1224/74 856/1228/74 +f 102/190/66 862/1229/66 103/191/66 +f 862/1229/66 863/1230/66 103/191/66 +f 863/1230/66 864/1231/66 103/191/66 +f 103/191/66 865/1232/66 866/1233/66 +f 866/1233/66 101/189/66 103/191/66 +f 106/194/66 867/1234/66 104/192/66 +f 867/1234/66 868/1235/66 104/192/66 +f 868/1235/66 869/1236/66 104/192/66 +f 104/192/66 870/1237/66 871/1238/66 +f 871/1238/66 872/1239/66 105/193/66 +f 105/193/66 873/1240/66 874/1241/66 +f 874/1241/66 875/1242/66 105/193/66 +f 875/1242/66 106/194/66 105/193/66 +f 104/192/66 871/1238/66 105/193/66 +f 876/1243/67 877/1244/67 109/197/67 +f 109/197/67 878/1245/67 879/1246/67 +f 879/1246/67 880/1247/67 881/1248/67 +f 881/1248/67 882/1249/67 879/1246/67 +f 882/1249/67 107/195/67 879/1246/67 +f 107/195/67 883/1250/67 108/196/67 +f 108/196/67 884/1251/67 109/197/67 +f 884/1251/67 876/1243/67 109/197/67 +f 109/197/67 879/1246/67 107/195/67 +f 885/1252/68 886/1253/68 110/198/68 +f 110/198/68 887/1254/68 111/199/68 +f 111/199/68 888/1255/68 112/200/68 +f 112/200/68 889/1256/68 885/1252/68 +f 885/1252/68 110/198/68 112/200/68 +f 115/203/69 890/1257/69 891/1258/69 +f 891/1258/69 892/1259/69 113/201/69 +f 113/201/69 893/1260/69 114/202/69 +f 114/202/69 894/1261/69 115/203/69 +f 115/203/69 891/1258/69 113/201/69 +f 116/204/67 123/211/67 117/205/67 +f 119/207/67 130/1262/67 120/208/67 +f 122/210/67 125/213/67 123/211/67 +f 124/212/67 126/214/67 125/213/67 +f 121/209/67 120/208/67 126/214/67 +f 118/206/67 117/205/67 127/215/67 +f 117/217/67 132/223/67 129/218/67 +f 130/220/67 134/225/67 131/221/67 +f 132/223/67 895/1263/67 133/224/67 +f 134/225/67 896/1264/67 135/226/67 +f 136/227/66 182/284/66 137/228/66 +f 142/233/70 159/292/70 143/234/70 +f 140/231/67 142/251/67 145/236/67 +f 141/232/67 145/236/67 146/237/67 +f 148/239/68 169/1265/68 149/240/68 +f 151/242/67 148/250/67 150/243/67 +f 153/245/69 139/230/69 154/246/69 +f 145/236/67 151/242/67 152/244/67 +f 155/247/69 184/286/69 156/248/69 +f 142/251/67 144/249/67 151/242/67 +f 153/245/71 156/248/71 157/252/71 +f 139/230/67 141/232/67 147/238/67 +f 140/254/70 158/253/70 159/255/70 +f 140/254/72 139/230/72 153/245/72 +f 143/234/73 169/1265/73 148/239/73 +f 160/257/72 182/284/72 161/258/72 +f 163/260/68 166/280/68 164/261/68 +f 166/263/74 203/319/74 167/264/74 +f 170/269/69 208/331/69 171/270/69 +f 168/267/66 174/274/66 149/272/66 +f 173/273/66 179/279/66 174/274/66 +f 158/253/75 157/1266/75 175/275/75 +f 176/276/66 180/281/66 177/277/66 +f 179/279/68 173/273/68 166/280/68 +f 180/281/66 136/227/66 138/229/66 +f 176/276/66 161/283/66 136/227/66 +f 183/285/69 137/228/69 182/284/69 +f 184/286/69 192/300/69 185/287/69 +f 162/288/69 161/1267/69 186/289/69 +f 175/291/75 196/1268/75 143/234/75 +f 165/262/68 164/261/68 188/293/68 +f 156/248/72 185/287/72 172/295/72 +f 190/296/68 191/299/68 180/297/68 +f 189/294/68 188/293/68 191/299/68 +f 192/300/69 194/302/69 193/301/69 +f 194/302/69 183/285/69 160/257/69 +f 175/303/76 201/312/76 195/304/76 +f 197/306/68 207/327/68 198/307/68 +f 164/265/74 167/264/74 200/309/74 +f 157/311/76 215/344/76 201/312/76 +f 185/287/72 193/301/72 170/313/72 +f 193/301/72 160/257/72 162/259/72 +f 199/308/77 178/350/77 177/314/77 +f 196/316/77 204/320/77 167/264/77 +f 204/320/77 197/306/77 200/309/77 +f 178/324/78 219/349/78 206/325/78 +f 204/320/68 218/347/68 207/327/68 +f 191/328/74 202/315/74 177/314/74 +f 188/310/74 200/309/74 202/315/74 +f 173/330/79 168/1269/79 203/319/79 +f 162/288/69 187/290/69 208/331/69 +f 209/334/66 202/333/66 210/335/66 +f 209/334/68 211/336/68 212/337/68 +f 200/338/80 213/1270/80 210/339/80 +f 205/323/67 212/337/67 213/341/67 +f 205/323/73 197/1271/73 199/342/73 +f 187/290/70 186/289/70 206/325/70 +f 215/344/70 171/270/70 216/345/70 +f 171/270/70 208/331/70 217/346/70 +f 208/331/70 187/290/70 214/343/70 +f 216/345/70 218/347/70 195/304/70 +f 206/325/70 219/349/70 198/307/70 +f 217/346/70 207/327/70 218/347/70 +f 214/343/70 198/307/70 207/327/70 +f 172/271/69 171/270/69 215/344/69 +f 199/308/68 198/307/68 219/349/68 +f 204/320/68 196/316/68 195/304/68 +f 176/326/78 206/325/78 186/289/78 +f 181/298/70 226/385/70 210/352/70 +f 152/244/67 234/368/67 220/353/67 +f 147/238/67 231/365/67 221/354/67 +f 184/286/69 229/363/69 222/355/69 +f 189/294/70 213/373/70 223/356/70 +f 149/240/68 244/383/68 224/357/68 +f 163/260/70 235/369/70 174/358/70 +f 225/359/66 236/371/66 226/360/66 +f 192/300/69 222/355/69 227/361/69 +f 137/228/66 232/366/66 228/362/66 +f 155/247/69 230/364/69 229/363/69 +f 154/246/69 221/354/69 230/364/69 +f 146/237/67 220/353/67 231/365/67 +f 183/285/69 233/367/69 232/366/69 +f 138/229/66 228/362/66 225/359/66 +f 194/302/69 227/361/69 233/367/69 +f 150/243/67 224/1272/67 234/368/67 +f 235/369/70 241/387/70 149/370/70 +f 236/371/66 897/1273/66 237/372/66 +f 165/262/70 223/356/70 235/369/70 +f 190/296/70 210/352/70 213/373/70 +f 212/374/68 243/382/68 238/375/68 +f 239/376/68 238/375/68 240/377/68 +f 237/379/68 897/1274/68 242/380/68 +f 211/381/68 242/380/68 243/382/68 +f 241/378/68 240/377/68 244/383/68 +f 213/373/70 212/1275/70 239/384/70 +f 226/385/70 237/1276/70 211/386/70 +f 223/356/70 239/384/70 241/387/70 +f 245/388/68 281/425/68 246/389/68 +f 247/390/68 246/389/68 248/391/68 +f 250/393/74 333/1038/74 251/394/74 +f 253/396/67 256/1277/67 254/397/67 +f 252/395/74 251/394/74 256/399/74 +f 257/401/74 338/553/74 258/402/74 +f 260/404/74 340/1097/74 261/405/74 +f 263/407/69 295/1278/69 264/408/69 +f 266/410/68 417/582/68 267/411/68 +f 269/413/68 376/528/68 270/414/68 +f 272/416/68 275/419/68 273/417/68 +f 275/419/68 393/548/68 276/420/68 +f 277/421/68 390/545/68 278/422/68 +f 280/424/68 739/1040/68 281/425/68 +f 282/426/69 257/737/69 283/427/69 +f 285/429/68 531/718/68 286/430/68 +f 288/432/66 624/844/66 289/433/66 +f 290/435/67 663/907/67 291/436/67 +f 293/438/66 300/445/66 294/439/66 +f 296/441/70 355/506/70 297/442/70 +f 299/444/70 627/851/70 300/445/70 +f 302/447/70 349/499/70 303/448/70 +f 304/449/70 742/1044/70 305/450/70 +f 306/451/70 775/1094/70 307/452/70 +f 309/454/69 327/473/69 310/455/69 +f 312/457/69 766/1080/69 313/458/69 +f 315/460/69 362/513/69 316/461/69 +f 318/463/69 315/460/69 317/462/69 +f 299/444/69 628/852/69 320/465/69 +f 322/467/69 348/498/69 254/468/69 +f 324/470/70 329/475/70 325/471/70 +f 327/473/69 322/467/69 323/469/69 +f 328/474/70 344/494/70 329/475/70 +f 330/476/70 346/496/70 331/477/70 +f 310/455/69 323/469/69 251/479/69 +f 323/469/69 254/468/69 256/481/69 +f 334/482/69 263/407/69 265/409/69 +f 321/466/69 320/465/69 336/484/69 +f 319/464/69 317/462/69 338/486/69 +f 317/462/69 316/461/69 258/488/69 +f 314/459/69 313/458/69 261/489/69 +f 311/456/69 310/455/69 333/480/69 +f 280/424/68 245/388/68 305/450/68 +f 277/421/68 279/423/68 307/452/68 +f 344/494/68 273/417/68 276/420/68 +f 345/495/68 274/418/68 273/417/68 +f 298/443/68 269/413/68 271/415/68 +f 347/497/67 255/398/67 254/397/67 +f 302/447/68 247/390/68 249/392/68 +f 305/450/68 245/388/68 247/390/68 +f 350/500/74 353/504/74 286/501/74 +f 352/503/74 385/885/74 353/504/74 +f 354/505/66 629/1130/66 297/442/66 +f 300/445/66 627/851/66 356/507/66 +f 349/499/67 249/560/67 357/508/67 +f 358/509/67 400/562/67 255/398/67 +f 359/510/70 628/852/70 360/511/70 +f 362/513/70 315/460/70 363/514/70 +f 365/516/70 362/513/70 364/515/70 +f 367/518/70 766/1080/70 368/519/70 +f 322/467/70 327/473/70 370/521/70 +f 372/523/70 742/1044/70 304/449/70 +f 371/522/70 347/497/70 348/498/70 +f 304/449/70 303/448/70 374/525/70 +f 375/526/74 285/1279/74 287/527/74 +f 288/529/74 626/1280/74 337/530/74 +f 377/532/69 625/883/69 378/533/69 +f 268/412/68 267/411/68 380/535/68 +f 278/422/74 391/546/74 382/537/74 +f 384/539/68 353/853/68 385/540/68 +f 387/542/74 767/1082/74 262/406/74 +f 388/543/74 738/1037/74 250/393/74 +f 390/545/74 737/1096/74 391/546/74 +f 275/419/74 290/551/74 392/547/74 +f 257/401/74 259/403/74 394/549/74 +f 290/551/74 275/419/74 272/416/74 +f 338/553/74 257/401/74 282/554/74 +f 246/389/74 401/563/74 397/556/74 +f 398/557/74 252/395/74 253/400/74 +f 248/559/67 397/724/67 357/508/67 +f 399/561/67 253/396/67 255/398/67 +f 281/425/74 533/720/74 401/563/74 +f 250/393/74 252/395/74 398/557/74 +f 402/564/74 406/568/74 403/565/74 +f 402/564/74 407/569/74 405/567/74 +f 407/569/74 435/603/74 408/570/74 +f 409/571/67 412/574/67 410/572/67 +f 412/574/67 414/576/67 413/575/67 +f 414/576/67 416/742/67 415/577/67 +f 403/565/74 406/568/74 412/578/74 +f 406/568/74 405/567/74 414/580/74 +f 405/567/74 408/570/74 416/581/74 +f 417/582/68 420/1281/68 418/583/68 +f 419/584/66 538/726/66 420/585/66 +f 421/587/74 424/591/74 422/588/74 +f 421/587/74 425/592/74 423/590/74 +f 425/592/74 478/653/74 426/593/74 +f 260/594/69 262/1068/69 427/595/69 +f 429/597/66 748/1050/66 430/598/66 +f 432/600/74 433/601/74 402/564/74 +f 433/601/74 434/602/74 407/569/74 +f 434/602/74 552/746/74 435/603/74 +f 268/604/70 381/1282/70 436/605/70 +f 437/606/70 436/605/70 438/607/70 +f 439/608/70 438/607/70 440/609/70 +f 265/409/69 264/408/69 289/611/69 +f 267/411/68 418/583/68 443/613/68 +f 444/614/70 447/617/70 358/509/70 +f 446/616/70 449/619/70 447/617/70 +f 448/618/70 459/630/70 449/619/70 +f 450/620/70 898/1283/70 444/614/70 +f 444/614/70 898/1283/70 451/621/70 +f 451/621/70 539/727/70 448/618/70 +f 452/622/70 455/626/70 453/623/70 +f 454/625/70 457/628/70 455/626/70 +f 455/626/67 458/629/67 456/627/67 +f 457/628/67 801/1144/67 458/629/67 +f 374/525/67 411/573/67 410/572/67 +f 459/630/67 410/572/67 413/575/67 +f 449/619/67 413/575/67 415/577/67 +f 460/631/74 647/1284/74 461/632/74 +f 463/634/66 593/800/66 464/635/66 +f 466/637/67 480/655/67 467/638/67 +f 461/632/74 647/1284/74 469/640/74 +f 471/642/68 677/944/68 472/643/68 +f 474/645/66 475/648/66 436/646/66 +f 475/648/66 476/650/66 438/649/66 +f 476/650/66 557/754/66 440/651/66 +f 425/592/74 665/911/74 477/652/74 +f 466/637/68 527/712/68 479/654/68 +f 292/589/74 661/1285/74 481/656/74 +f 473/657/67 472/1286/67 482/658/67 +f 478/653/74 477/652/74 484/660/74 +f 485/661/68 528/1287/68 486/662/68 +f 488/664/74 711/986/74 489/665/74 +f 491/667/74 712/987/74 492/668/74 +f 491/670/68 580/787/68 494/671/68 +f 318/463/70 581/788/70 495/673/70 +f 497/675/69 520/704/69 498/676/69 +f 500/678/68 510/691/68 501/679/68 +f 503/681/69 507/687/69 488/682/69 +f 504/684/70 502/680/70 345/495/70 +f 506/686/69 581/788/69 507/687/69 +f 489/688/69 711/988/69 508/689/69 +f 492/668/68 712/987/68 501/679/68 +f 511/692/74 602/810/74 512/693/74 +f 514/695/74 544/1288/74 515/696/74 +f 498/698/74 487/663/74 486/662/74 +f 511/700/66 530/1289/66 517/701/66 +f 519/703/67 710/985/67 520/704/67 +f 521/705/69 546/734/69 522/706/69 +f 524/708/66 547/1290/66 515/709/66 +f 526/711/68 596/803/68 527/712/68 +f 518/702/66 517/701/66 486/713/66 +f 529/715/74 498/698/74 517/699/74 +f 380/717/66 443/1291/66 531/718/66 +f 355/506/66 474/645/66 381/647/66 +f 303/448/67 357/508/67 411/573/67 +f 532/719/74 432/600/74 404/566/74 +f 534/721/66 776/1095/66 535/722/66 +f 292/589/74 422/588/74 392/547/74 +f 401/563/74 403/565/74 409/579/74 +f 397/724/67 409/571/67 411/573/67 +f 404/566/74 403/565/74 401/563/74 +f 537/725/66 563/762/66 538/726/66 +f 373/524/70 374/525/70 459/630/70 +f 539/727/70 372/523/70 373/524/70 +f 350/500/74 541/729/74 540/728/74 +f 541/729/74 350/500/74 351/502/74 +f 543/731/66 525/710/66 515/709/66 +f 545/733/67 723/1011/67 546/734/67 +f 522/706/74 516/697/74 515/696/74 +f 395/736/67 526/711/67 283/427/67 +f 378/738/74 461/632/74 470/641/74 +f 548/740/74 462/633/74 461/632/74 +f 370/521/70 450/620/70 445/615/70 +f 445/615/70 358/509/70 347/497/70 +f 549/741/70 553/750/70 457/628/70 +f 389/544/74 398/557/74 408/570/74 +f 416/742/67 399/561/67 400/562/67 +f 408/570/74 398/557/74 399/558/74 +f 335/743/66 562/968/66 550/744/66 +f 395/550/74 394/549/74 426/593/74 +f 552/746/74 388/543/74 389/544/74 +f 441/610/70 440/609/70 295/747/70 +f 334/749/70 561/1145/70 553/750/70 +f 554/751/74 795/1292/74 555/752/74 +f 447/617/67 415/577/67 400/562/67 +f 557/754/66 293/438/66 295/440/66 +f 263/748/70 334/749/70 549/741/70 +f 556/753/74 555/752/74 335/743/74 +f 441/610/70 549/741/70 454/625/70 +f 439/608/70 454/625/70 452/622/70 +f 437/606/70 452/622/70 266/624/70 +f 558/755/74 556/753/74 551/745/74 +f 559/756/74 558/755/74 537/725/74 +f 560/757/74 559/756/74 419/584/74 +f 561/758/69 334/482/69 335/483/69 +f 453/760/68 560/1293/68 417/582/68 +f 335/483/69 265/409/69 442/612/69 +f 551/745/66 550/744/66 563/762/66 +f 564/763/69 568/829/69 565/764/69 +f 567/766/67 630/938/67 565/767/67 +f 508/769/74 578/784/74 569/770/74 +f 570/772/74 583/790/74 571/773/74 +f 573/775/68 492/668/68 510/691/68 +f 575/777/69 489/688/69 509/690/69 +f 359/510/69 506/686/69 503/681/69 +f 576/779/69 503/681/69 490/683/69 +f 331/477/68 574/776/68 510/691/68 +f 493/669/74 492/668/74 573/775/74 +f 490/666/74 489/665/74 575/782/74 +f 578/784/74 666/1294/74 579/785/74 +f 493/786/68 584/884/68 580/787/68 +f 581/788/70 506/686/70 582/789/70 +f 583/790/74 580/1295/74 584/791/74 +f 585/792/70 500/678/70 502/680/70 +f 586/793/66 599/806/66 587/794/66 +f 589/796/69 724/1015/69 590/797/69 +f 592/799/66 709/1013/66 464/635/66 +f 468/639/69 467/638/69 594/801/69 +f 395/736/68 484/990/68 596/803/68 +f 597/804/67 708/981/67 589/796/67 +f 598/805/66 667/1014/66 599/806/66 +f 588/807/68 587/1016/68 600/808/68 +f 602/810/66 603/813/66 465/811/66 +f 511/692/66 667/1296/66 603/813/66 +f 604/814/69 616/828/69 605/815/69 +f 607/817/68 610/820/68 608/818/68 +f 609/819/68 617/830/68 610/820/68 +f 442/612/69 604/814/69 606/816/69 +f 563/762/66 622/836/66 611/821/66 +f 612/822/67 636/972/67 613/823/67 +f 614/825/67 567/766/67 568/768/67 +f 442/612/69 289/611/69 613/827/69 +f 616/828/69 615/971/69 568/829/69 +f 418/583/68 420/1281/68 617/830/68 +f 443/831/67 623/970/67 618/832/67 +f 620/834/67 473/657/67 483/659/67 +f 550/744/66 701/969/66 622/836/66 +f 418/583/68 609/819/68 623/837/68 +f 607/817/68 471/642/68 473/644/68 +f 379/739/74 470/641/74 289/839/74 +f 542/730/74 351/502/74 443/841/74 +f 470/641/74 469/640/74 612/843/74 +f 288/432/69 377/532/69 379/534/69 +f 377/531/74 337/530/74 336/845/74 +f 376/528/74 287/527/74 384/847/74 +f 351/502/74 286/501/74 531/848/74 +f 297/442/68 629/854/68 269/413/68 +f 356/849/69 321/466/69 337/485/69 +f 627/851/69 299/444/69 321/466/69 +f 628/852/70 299/444/70 301/446/70 +f 330/476/70 296/441/70 298/443/70 +f 287/431/68 286/430/68 353/853/68 +f 629/854/68 375/526/68 376/528/68 +f 630/855/74 637/867/74 631/856/74 +f 483/858/68 634/862/68 633/859/68 +f 482/861/68 638/868/68 634/862/68 +f 612/863/69 469/876/69 635/864/69 +f 567/866/69 643/879/69 637/867/69 +f 632/857/74 631/856/74 638/868/74 +f 618/869/68 640/874/68 542/870/68 +f 636/865/69 635/864/69 639/872/69 +f 640/874/68 670/1297/68 541/875/68 +f 469/876/69 647/886/69 641/877/69 +f 637/867/74 644/880/74 642/878/74 +f 643/879/69 669/1298/69 644/880/69 +f 631/856/74 642/878/74 645/881/74 +f 638/868/68 645/881/68 646/882/68 +f 577/783/74 575/782/74 625/846/74 +f 386/781/74 573/775/74 270/414/74 +f 346/496/68 271/415/68 574/776/68 +f 320/465/69 576/779/69 577/780/69 +f 628/852/69 359/510/69 576/779/69 +f 575/777/69 548/778/69 378/533/69 +f 270/414/68 573/775/68 574/776/68 +f 509/771/74 569/770/74 462/633/74 +f 571/773/74 352/503/74 540/728/74 +f 569/770/74 579/785/74 460/631/74 +f 386/541/68 385/540/68 584/884/68 +f 506/686/70 359/510/70 361/512/70 +f 571/773/74 584/791/74 385/885/74 +f 332/478/70 331/477/70 500/678/70 +f 647/886/69 460/1299/69 648/887/69 +f 644/880/69 669/1298/69 649/888/69 +f 541/875/68 670/1297/68 651/890/68 +f 645/881/68 668/918/68 652/892/68 +f 648/887/69 460/1299/69 579/894/69 +f 572/896/68 540/891/68 651/890/68 +f 655/897/68 651/890/68 656/898/68 +f 653/893/69 649/888/69 658/900/69 +f 657/899/68 656/898/68 652/892/68 +f 658/900/69 648/887/69 654/895/69 +f 291/436/69 662/904/69 661/903/69 +f 580/787/68 588/807/68 601/809/68 +f 591/798/69 590/797/69 662/904/69 +f 570/905/66 598/805/66 586/793/66 +f 663/907/67 597/804/67 591/798/67 +f 480/655/68 479/654/68 664/908/68 +f 283/427/69 468/639/69 595/802/69 +f 508/909/66 592/799/66 593/800/66 +f 421/587/74 481/656/74 665/911/74 +f 583/906/66 586/793/66 588/795/66 +f 526/711/67 466/637/67 468/639/67 +f 578/910/66 593/800/66 463/634/66 +f 579/894/69 666/1300/69 463/914/69 +f 598/915/68 570/1301/68 572/896/68 +f 465/916/69 659/901/69 654/895/69 +f 655/897/68 657/899/68 667/917/68 +f 635/919/67 640/1302/67 633/920/67 +f 634/922/70 646/925/70 669/923/70 +f 646/925/70 652/935/70 649/926/70 +f 635/927/74 641/931/74 670/928/74 +f 651/930/74 670/928/74 641/931/74 +f 651/930/66 648/932/66 658/933/66 +f 658/933/86 649/926/86 652/935/86 +f 632/936/67 899/1303/67 671/937/67 +f 672/939/67 899/1303/67 632/936/67 +f 673/940/69 564/763/69 566/765/69 +f 675/942/68 687/954/68 676/943/68 +f 678/945/69 702/974/69 679/946/69 +f 608/818/68 675/942/68 677/944/68 +f 681/948/68 833/1187/68 676/943/68 +f 482/658/67 472/1286/67 683/950/67 +f 684/951/68 682/949/68 685/952/68 +f 682/949/68 676/943/68 687/954/68 +f 688/955/69 678/945/69 680/947/69 +f 630/938/67 671/937/67 690/957/67 +f 691/958/69 695/962/69 692/959/69 +f 694/961/69 696/963/69 692/959/69 +f 689/956/69 680/947/69 696/963/69 +f 697/964/68 700/967/68 698/965/68 +f 697/964/68 684/951/68 686/953/68 +f 639/921/67 633/920/67 634/922/67 +f 614/873/69 639/872/69 643/879/69 +f 621/860/68 633/859/68 640/874/68 +f 609/819/68 607/817/68 620/838/68 +f 623/970/67 620/834/67 621/835/67 +f 604/814/69 613/827/69 615/971/69 +f 636/972/67 614/825/67 615/826/67 +f 678/945/69 566/765/69 702/974/69 +f 566/765/69 565/764/69 702/974/69 +f 616/828/69 564/763/69 673/940/69 +f 703/975/68 838/1192/68 704/976/68 +f 508/689/69 284/428/69 595/802/69 +f 494/671/68 601/809/68 597/804/68 +f 601/809/68 600/808/68 708/981/68 +f 592/980/69 595/802/69 594/801/69 +f 546/734/74 723/1304/74 516/697/74 +f 523/707/69 522/706/69 547/735/69 +f 520/984/74 710/985/74 487/663/74 +f 505/685/70 345/495/70 344/494/70 +f 315/460/70 318/463/70 496/674/70 +f 396/672/68 494/671/68 663/907/68 +f 519/703/68 485/661/68 487/663/68 +f 339/555/74 282/554/74 711/986/74 +f 396/552/74 272/416/74 712/987/74 +f 502/680/68 501/679/68 274/418/68 +f 507/687/69 319/464/69 339/487/69 +f 581/788/69 318/463/69 319/464/69 +f 711/988/69 282/426/69 284/428/69 +f 712/987/68 272/416/68 274/418/68 +f 477/989/67 713/992/67 596/803/67 +f 665/991/67 714/994/67 713/992/67 +f 481/993/67 716/1003/67 714/994/67 +f 514/995/68 715/1012/68 543/812/68 +f 511/692/69 513/694/69 529/997/69 +f 715/999/67 514/1305/67 516/1000/67 +f 513/1001/67 499/677/67 498/676/67 +f 661/903/67 662/904/67 716/1003/67 +f 590/797/67 724/1015/67 717/1004/67 +f 719/1006/67 721/1008/67 479/654/67 +f 720/1007/67 722/1009/67 721/1008/67 +f 718/1005/67 717/1004/67 722/1009/67 +f 716/1003/67 718/1005/67 720/1007/67 +f 714/994/67 720/1007/67 719/1006/67 +f 713/992/67 719/1006/67 527/712/67 +f 662/904/67 590/797/67 718/1005/67 +f 717/1004/67 724/1015/67 499/677/67 +f 479/654/67 721/1008/67 715/999/67 +f 721/1008/67 722/1009/67 512/1010/67 +f 722/1009/67 717/1004/67 513/1001/67 +f 600/808/68 485/661/68 519/703/68 +f 709/982/69 594/801/69 523/707/69 +f 545/733/68 664/908/68 516/1000/68 +f 715/1012/74 512/693/74 602/810/74 +f 480/655/67 545/733/67 521/705/67 +f 465/636/66 464/635/66 525/710/66 +f 599/806/66 518/702/66 528/714/66 +f 709/1013/66 524/708/66 525/710/66 +f 467/638/69 521/705/69 523/707/69 +f 708/981/67 519/703/67 497/675/67 +f 667/1014/66 511/700/66 518/702/66 +f 497/675/69 499/677/69 724/1015/69 +f 587/1016/68 528/1287/68 485/661/68 +f 426/593/74 394/549/74 536/1017/74 +f 392/547/74 422/588/74 429/1019/74 +f 423/590/74 426/593/74 725/1018/74 +f 424/591/74 423/590/74 726/1021/74 +f 422/588/74 424/591/74 727/1022/74 +f 394/549/74 259/403/74 534/1023/74 +f 393/548/74 392/547/74 431/1020/74 +f 312/457/70 365/516/70 366/517/70 +f 276/420/68 733/1029/68 325/471/68 +f 316/461/69 732/1028/69 730/1026/69 +f 326/472/70 325/471/70 343/493/70 +f 362/513/69 365/516/69 732/1028/69 +f 393/548/68 728/1024/68 733/1029/68 +f 259/403/74 258/402/74 730/1030/74 +f 382/537/74 762/1083/74 432/600/74 +f 431/599/68 430/598/68 736/1034/68 +f 734/1036/74 767/1082/74 738/1037/74 +f 333/1038/74 250/393/74 738/1037/74 +f 739/1040/74 532/719/74 533/720/74 +f 327/473/70 309/454/70 740/1041/70 +f 308/453/68 743/1045/68 280/424/68 +f 741/1042/69 311/456/69 341/491/69 +f 367/518/69 309/454/69 311/456/69 +f 742/1044/70 769/1086/70 342/492/70 +f 743/1045/68 383/538/68 739/1040/68 +f 535/722/68 784/1117/68 744/1046/68 +f 736/1034/68 782/1114/68 746/1048/68 +f 748/1050/69 755/1057/69 749/1051/69 +f 747/1049/67 746/1048/67 751/1053/67 +f 748/1050/66 750/1052/66 753/1055/66 +f 754/1056/66 771/1088/66 749/1051/66 +f 756/1058/82 735/1079/82 388/1059/82 +f 757/1061/82 756/1058/82 552/1060/82 +f 758/1063/82 757/1061/82 434/1062/82 +f 759/1065/82 758/1063/82 433/1064/82 +f 760/1067/67 768/1116/67 427/595/67 +f 761/1069/68 752/1306/68 759/1070/68 +f 391/1072/67 747/1049/67 752/1054/67 +f 752/1075/83 763/1076/83 758/1063/83 +f 763/1076/83 764/1077/83 757/1061/83 +f 764/1077/83 765/1078/83 756/1058/83 +f 765/1078/83 768/1307/83 735/1079/83 +f 279/423/68 278/422/68 383/538/68 +f 766/1080/69 367/518/69 741/1042/69 +f 313/458/69 741/1042/69 387/1043/69 +f 307/452/68 279/423/68 743/1045/68 +f 760/1081/74 262/406/74 767/1082/74 +f 391/546/74 761/1308/74 762/1083/74 +f 760/1084/69 734/1031/69 735/1033/69 +f 341/1039/74 738/1037/74 767/1082/74 +f 383/538/74 382/537/74 532/719/74 +f 309/454/70 367/518/70 369/520/70 +f 769/1086/70 306/451/70 308/453/70 +f 770/1087/66 780/1309/66 771/1088/66 +f 755/1057/69 748/1050/69 429/597/69 +f 755/1057/66 772/1089/66 773/1090/66 +f 763/1091/67 779/1102/67 774/1092/67 +f 737/1035/68 736/1034/68 747/1049/68 +f 731/1027/70 343/493/70 307/452/70 +f 766/1080/70 312/457/70 729/1025/70 +f 534/721/69 260/594/69 428/596/69 +f 728/1024/74 431/1020/74 737/1096/74 +f 733/1029/68 277/421/68 343/493/68 +f 732/1028/69 314/459/69 340/490/69 +f 365/516/69 312/457/69 314/459/69 +f 733/1029/68 728/1024/68 390/545/68 +f 534/1023/74 730/1030/74 340/1097/74 +f 744/1098/74 785/1110/74 777/1099/74 +f 749/1101/74 771/1103/74 779/1102/74 +f 771/1103/74 780/1104/74 774/1092/74 +f 780/1104/74 783/1107/74 781/1105/74 +f 782/1106/74 749/1101/74 751/1053/74 +f 783/1107/74 744/1098/74 778/1100/74 +f 753/1108/74 750/1310/74 749/1101/74 +f 784/1109/74 787/1311/74 785/1110/74 +f 752/1054/67 751/1053/67 779/1102/67 +f 428/596/69 427/595/69 777/1099/69 +f 745/1047/66 744/1046/66 783/1112/66 +f 430/598/68 753/1055/68 782/1114/68 +f 765/1115/67 781/1105/67 778/1100/67 +f 776/1095/66 787/1118/66 784/1117/66 +f 776/1095/69 428/596/69 785/1111/69 +f 768/1116/67 778/1100/67 777/1099/67 +f 764/1093/67 774/1092/67 781/1105/67 +f 786/1113/66 783/1112/66 780/1119/66 +f 725/1018/74 536/1017/74 788/1121/74 +f 726/1021/74 725/1018/74 789/1122/74 +f 727/1022/74 726/1021/74 790/1123/74 +f 429/1019/74 727/1022/74 773/1124/74 +f 770/1120/66 790/1312/66 789/1126/66 +f 745/1047/68 788/1128/68 536/723/68 +f 754/1056/66 773/1090/66 790/1127/66 +f 786/1113/66 789/1126/66 788/1128/66 +f 381/647/66 380/1313/66 375/1129/66 +f 264/1131/66 295/440/66 356/507/66 +f 791/1133/74 554/751/74 556/753/74 +f 792/1134/74 791/1133/74 558/755/74 +f 793/1135/74 792/1134/74 559/756/74 +f 794/1136/69 561/758/69 555/759/69 +f 793/1138/68 560/1293/68 453/760/68 +f 458/629/67 805/1152/67 797/1140/67 +f 798/1141/70 811/1157/70 799/1142/70 +f 553/750/67 802/1146/67 801/1144/67 +f 561/1145/67 809/1154/67 802/1146/67 +f 803/1147/70 807/1151/70 804/1148/70 +f 806/1150/70 824/1172/70 807/1151/70 +f 805/1152/67 817/1314/67 808/1153/67 +f 809/1154/67 815/1162/67 806/1155/67 +f 801/1144/67 803/1158/67 805/1152/67 +f 810/1156/70 900/1315/70 811/1157/70 +f 802/1146/67 806/1155/67 803/1158/67 +f 812/1159/67 901/1316/67 813/1160/67 +f 815/1162/67 901/1316/67 812/1159/67 +f 816/1163/70 808/1317/70 817/1164/70 +f 819/1166/84 822/1318/84 820/1167/84 +f 822/1169/67 819/1319/67 814/1170/67 +f 818/1165/70 826/1320/70 823/1171/70 +f 824/1172/70 810/1156/70 798/1141/70 +f 807/1151/70 798/1141/70 800/1143/70 +f 820/1167/84 827/1175/84 825/1173/84 +f 826/1174/67 825/1321/67 827/1175/67 +f 465/1176/74 603/1183/74 828/1177/74 +f 659/1178/67 828/1177/67 829/1179/67 +f 653/1180/85 829/1179/85 830/1181/85 +f 650/889/74 830/1181/74 642/878/74 +f 830/1181/74 668/918/74 645/881/74 +f 668/918/85 830/1181/85 829/1179/85 +f 828/1177/67 657/1184/67 660/1182/67 +f 603/1183/74 667/1322/74 657/1184/74 +f 831/1185/68 681/948/68 682/949/68 +f 680/947/69 679/946/69 832/1186/69 +f 683/1323/68 472/643/68 833/1187/68 +f 472/643/68 677/944/68 833/1187/68 +f 834/1188/68 831/1185/68 684/951/68 +f 696/963/69 832/1186/69 835/1189/69 +f 693/960/69 692/959/69 835/1189/69 +f 707/979/69 706/978/69 836/1190/69 +f 834/1188/68 697/964/68 699/966/68 +f 674/941/69 566/765/69 678/945/69 +f 839/1193/69 842/1196/69 840/1194/69 +f 842/1196/67 844/1199/67 843/1197/67 +f 844/1199/68 846/1202/68 845/1200/68 +f 846/1202/66 839/1193/66 841/1203/66 +f 842/1196/70 839/1193/70 846/1202/70 +f 847/1205/67 850/1208/67 848/1206/67 +f 850/1208/68 853/1227/68 851/1209/68 +f 848/1210/74 851/1219/74 852/1211/74 +f 847/1213/70 857/1221/70 853/1214/70 +f 854/1216/66 902/1324/66 855/1217/66 +f 851/1219/74 856/1228/74 855/1220/74 +f 857/1221/70 902/1325/70 854/1222/70 +f 854/1222/70 861/1226/70 858/1223/70 +f 858/1223/68 861/1226/68 859/1224/68 +f 856/1218/66 859/1224/66 861/1226/66 +f 853/1227/67 858/1223/67 860/1225/67 +f 851/1219/74 860/1225/74 859/1224/74 +s 1 +f 863/1326/70 903/1327/73 904/1328/70 +f 862/1329/73 905/1330/68 903/1327/73 +f 102/1331/68 906/1332/87 905/1330/68 +f 101/1333/87 907/1334/74 906/1332/87 +f 866/1335/74 908/1336/88 907/1337/74 +f 865/1338/88 909/1339/69 908/1336/88 +f 103/1340/69 910/1341/72 909/1339/69 +f 864/1342/72 904/1328/70 910/1341/72 +f 906/1343/67 908/1344/67 910/1345/67 +f 868/1346/89 109/1347/90 877/1348/89 +f 867/1349/90 878/1350/91 109/1347/90 +f 106/1351/91 879/1352/92 878/1350/91 +f 875/1353/92 880/1354/87 879/1352/92 +f 880/1354/87 873/1355/93 881/1356/93 +f 873/1355/93 882/1357/94 881/1356/93 +f 105/1358/94 107/1359/88 882/1357/94 +f 872/1360/88 883/1361/95 107/1359/88 +f 871/1362/95 108/1363/96 883/1361/95 +f 870/1364/96 884/1365/97 108/1363/96 +f 884/1365/97 869/1366/98 876/1367/98 +f 110/1368/67 911/1369/85 912/1370/67 +f 886/1371/85 913/1372/74 911/1369/85 +f 885/1373/74 914/1374/99 913/1375/74 +f 889/1376/99 915/1377/66 914/1374/99 +f 112/1378/66 916/1379/78 915/1377/66 +f 888/1380/78 917/1381/70 916/1379/78 +f 111/1382/70 918/1383/76 917/1381/70 +f 887/1384/76 912/1370/67 918/1383/76 +f 919/1385/85 115/1386/67 920/1387/67 +f 921/1388/74 890/1389/85 919/1385/85 +f 922/1390/99 891/1391/74 921/1392/74 +f 923/1393/66 892/1394/99 922/1390/99 +f 924/1395/78 113/1396/66 923/1393/66 +f 925/1397/70 893/1398/78 924/1395/78 +f 926/1399/76 114/1400/70 925/1397/70 +f 920/1387/67 894/1401/76 926/1399/76 +f 927/1402/68 928/1403/68 929/1404/68 +f 133/1405/68 930/1406/68 129/1407/68 +f 931/1408/68 932/1409/68 930/1406/68 +f 933/1410/68 929/1404/68 934/1411/68 +f 935/1412/68 934/1411/68 932/1409/68 +f 936/1413/68 937/1414/100 938/1415/100 +f 939/1416/68 938/1415/100 940/1417/100 +f 941/1418/68 939/1416/68 942/1419/68 +f 943/1420/68 936/1413/68 939/1416/68 +f 944/1421/68 942/1419/68 945/1422/68 +f 127/1423/68 945/1422/68 128/1424/68 +f 946/1425/68 947/1426/68 936/1413/68 +f 948/1427/101 949/1428/102 950/1429/102 +f 951/1430/103 952/1431/66 953/1432/66 +f 954/1433/70 955/1434/104 956/1435/105 +f 957/1436/106 958/1437/107 959/1438/108 +f 960/1439/109 961/1440/110 962/1441/111 +f 963/1442/66 964/1443/66 965/1444/66 +f 966/1445/112 948/1446/107 967/1447/108 +f 118/206/113 968/1448/113 969/1449/113 +f 970/1450/105 931/1451/70 971/1452/70 +f 972/1453/106 948/1446/107 973/1454/114 +f 135/226/70 974/1455/70 954/1433/70 +f 975/1456/115 976/1457/74 977/1458/74 +f 978/1459/115 979/1460/74 976/1457/74 +f 980/1461/115 981/1462/74 979/1460/74 +f 982/1463/108 966/1445/112 967/1447/108 +f 983/1464/108 984/1465/112 982/1463/108 +f 985/1466/108 986/1467/112 983/1464/108 +f 980/1461/115 987/1468/116 988/1469/116 +f 957/1436/106 955/1470/104 989/1471/114 +f 977/1458/74 990/1472/117 991/1473/117 +f 976/1457/74 992/1474/117 990/1472/117 +f 979/1460/74 993/1475/117 992/1474/117 +f 978/1459/115 994/1476/116 987/1468/116 +f 995/1477/116 996/1478/115 997/1479/115 +f 969/1449/113 998/1480/118 999/1481/118 +f 1000/1482/119 1001/1483/112 961/1484/119 +f 971/1452/70 133/224/70 895/1263/70 +f 991/1473/117 1002/1485/74 977/1458/74 +f 1003/1486/85 1004/1487/118 1005/1488/118 +f 1006/1489/112 1007/1490/119 1008/1491/112 +f 1009/1492/85 1010/1493/120 991/1473/117 +f 1011/1494/115 1012/1495/74 981/1462/74 +f 959/1438/108 1008/1491/112 985/1466/108 +f 1008/1491/112 1013/1496/119 986/1467/112 +f 993/1475/117 1012/1495/74 1014/1497/117 +f 997/1479/115 1015/1498/116 995/1477/116 +f 1016/1499/103 1017/1500/121 995/1501/121 +f 986/1467/112 1018/1502/119 984/1465/112 +f 959/1438/108 1001/1483/112 1006/1489/112 +f 984/1465/112 1019/1503/119 966/1445/112 +f 1011/1494/115 988/1469/116 1015/1498/116 +f 966/1445/112 1020/1504/119 1021/1505/112 +f 953/1432/66 1022/1506/66 1023/1507/66 +f 1024/1508/66 1025/1509/66 1026/1510/66 +f 1003/1486/85 1027/1511/122 1028/1512/123 +f 951/1430/103 1029/1513/121 1030/1514/124 +f 960/1439/109 1031/1515/66 963/1442/66 +f 967/1447/108 1032/1516/106 982/1463/108 +f 982/1463/108 1033/1517/106 983/1464/108 +f 1033/1517/106 985/1466/108 983/1464/108 +f 1034/1518/106 959/1438/108 985/1466/108 +f 1019/1519/110 1035/1520/109 1036/1521/109 +f 1018/1522/110 1037/1523/109 1035/1520/109 +f 1037/1523/109 1007/1524/110 1038/1525/109 +f 1023/1507/66 1039/1526/66 953/1432/66 +f 1040/1527/66 1041/1528/66 1039/1526/66 +f 1042/1529/66 1043/1530/66 1041/1528/66 +f 953/1432/66 1044/1531/103 951/1430/103 +f 1039/1526/66 1045/1532/103 1044/1531/103 +f 1041/1528/66 1046/1533/103 1045/1532/103 +f 1047/1534/66 1048/1535/66 1049/1536/66 +f 1048/1535/66 1050/1537/66 1049/1536/66 +f 1051/1538/66 1052/1539/66 1050/1537/66 +f 1047/1534/66 1040/1527/66 1023/1507/66 +f 1049/1536/66 1042/1529/66 1040/1527/66 +f 1050/1537/66 1053/1540/66 1042/1529/66 +f 1038/1525/109 1000/1541/110 960/1439/109 +f 1053/1540/66 1026/1510/66 1043/1530/66 +f 1043/1530/66 1016/1499/103 1046/1533/103 +f 1054/1542/66 965/1444/66 1052/1539/66 +f 1052/1539/66 1024/1508/66 1053/1540/66 +f 1038/1525/109 963/1442/66 1054/1542/66 +f 1037/1523/109 1054/1542/66 1051/1538/66 +f 1035/1520/109 1051/1538/66 1048/1535/66 +f 1036/1521/109 1048/1535/66 1055/1543/66 +f 1046/1533/103 995/1501/121 1015/1544/121 +f 1045/1532/103 1015/1544/121 988/1545/121 +f 987/1546/121 1045/1532/103 988/1545/121 +f 994/1547/121 1044/1531/103 987/1546/121 +f 999/1481/118 1056/1548/123 1009/1492/85 +f 1057/1549/113 119/207/113 121/209/113 +f 1055/1543/66 1058/1550/66 1059/1551/66 +f 1023/1507/66 1058/1550/66 1047/1534/66 +f 997/1479/115 1060/1552/74 1012/1495/74 +f 990/1472/117 1061/1553/85 1062/1554/85 +f 993/1475/117 1061/1553/85 992/1474/117 +f 1014/1497/117 1063/1555/85 993/1475/117 +f 991/1473/117 1062/1554/85 1009/1492/85 +f 1062/1554/85 999/1481/118 1009/1492/85 +f 1003/1486/85 1064/1556/118 1063/1555/85 +f 1061/1553/85 1065/1557/118 1062/1554/85 +f 1063/1555/85 1066/1558/118 1061/1553/85 +f 1064/1556/118 1067/1559/113 1066/1558/118 +f 1065/1557/118 969/1449/113 999/1481/118 +f 1005/1488/118 1068/1560/113 1064/1556/118 +f 1066/1558/118 1069/1561/113 1065/1557/118 +f 1068/1560/113 122/210/113 1067/1559/113 +f 1069/1561/113 118/206/113 969/1449/113 +f 1057/1549/113 124/212/113 1068/1560/113 +f 1067/1559/113 116/204/113 1069/1561/113 +f 972/1453/106 935/1562/104 970/1563/105 +f 1036/1521/109 1020/1564/110 1019/1519/110 +f 977/1458/74 1070/1565/115 975/1456/115 +f 1055/1543/66 1071/1566/111 1036/1521/109 +f 975/1456/115 1029/1567/116 994/1476/116 +f 1026/1510/66 1072/1568/124 1016/1499/103 +f 1005/1488/118 1073/1569/113 1057/1549/113 +f 1014/1497/117 1060/1552/74 1027/1511/122 +f 965/1444/66 1074/1570/66 1024/1508/66 +f 1075/1571/69 119/1572/69 1076/1573/69 +f 1077/1574/69 1078/1575/69 1079/1576/69 +f 1080/1577/69 1081/1578/69 1082/1579/69 +f 1083/1580/69 1076/1573/69 1081/1578/69 +f 1001/1581/125 1084/1582/126 1085/1583/126 +f 1086/1584/69 1082/1579/69 1078/1575/69 +f 1078/1575/69 1087/1585/127 1088/1586/127 +f 1079/1576/69 1088/1586/127 1089/1587/127 +f 1090/1588/69 1091/1589/69 1092/1590/69 +f 955/1591/69 1093/1592/69 1094/1593/69 +f 1095/1594/69 1094/1593/69 1091/1589/69 +f 1096/1595/69 1092/1590/69 1097/1596/69 +f 974/1597/69 134/1598/69 1093/1592/69 +f 1093/1592/69 130/1599/69 1075/1571/69 +f 1097/1596/69 1086/1584/69 1077/1574/69 +f 1091/1589/69 1083/1580/69 1080/1577/69 +f 1094/1593/69 1075/1571/69 1083/1580/69 +f 1092/1590/69 1080/1577/69 1086/1584/69 +f 996/1600/128 1072/1601/129 1089/1587/127 +f 1079/1576/69 1074/1602/69 1077/1574/69 +f 1096/1595/69 962/1603/130 1085/1583/126 +f 1001/1581/125 962/1603/130 961/1604/131 +f 1077/1574/69 964/1605/69 1097/1596/69 +f 1097/1596/69 1031/1606/69 1096/1595/69 +f 1090/1588/69 989/1607/132 1095/1594/69 +f 1085/1583/126 1090/1588/69 1096/1595/69 +f 955/1591/69 1095/1594/69 989/1607/132 +f 1084/1582/126 958/1608/133 989/1607/132 +f 1089/1587/127 1025/1609/69 1079/1576/69 +f 1089/1587/127 1060/1610/134 996/1600/128 +f 1088/1586/127 1027/1611/134 1060/1610/134 +f 1027/1611/134 1087/1585/127 1028/1612/135 +f 119/1572/69 1073/1613/69 1076/1573/69 +f 1073/1613/69 1081/1578/69 1076/1573/69 +f 1004/1614/69 1082/1579/69 1081/1578/69 +f 1087/1585/127 1082/1579/69 1028/1612/135 +f 929/1404/68 1098/1615/68 946/1425/68 +f 129/1407/68 944/1421/68 127/1423/68 +f 930/1406/68 941/1418/68 944/1421/68 +f 934/1411/68 946/1425/68 943/1420/68 +f 932/1409/68 943/1420/68 941/1418/68 +f 949/1428/102 1059/1616/68 1099/1617/68 +f 1099/1617/68 1058/1618/68 928/1403/68 +f 1021/1619/136 1071/1620/137 949/1428/102 +f 947/1426/68 1022/1621/68 952/1622/68 +f 937/1414/100 952/1622/68 1030/1623/138 +f 1098/1615/68 1058/1618/68 1022/1621/68 +f 950/1429/102 973/1624/139 948/1427/101 +f 950/1429/102 933/1410/68 973/1624/139 +f 950/1429/102 1099/1617/68 927/1402/68 +f 933/1410/68 935/1412/68 973/1624/139 +f 1070/1625/140 1030/1623/138 1029/1626/141 +f 938/1415/100 1070/1625/140 1002/1627/142 +f 940/1417/100 1002/1627/142 1010/1628/142 +f 945/1422/68 968/1629/68 128/1424/68 +f 942/1419/68 968/1629/68 945/1422/68 +f 1010/1628/142 1056/1630/143 940/1417/100 +f 1056/1630/143 942/1419/68 939/1416/68 +f 940/1417/100 1056/1630/143 939/1416/68 +f 1034/1518/106 956/1631/105 957/1436/106 +f 1032/1516/106 1100/1632/144 1033/1517/106 +f 1033/1517/106 1101/1633/144 1034/1518/106 +f 1032/1516/106 970/1563/105 1102/1634/144 +f 453/760/68 1103/1635/68 796/1139/68 +f 1104/1636/145 1105/1637/66 1106/1638/145 +f 1106/1638/145 1107/1639/66 1108/1640/145 +f 701/1641/146 1109/1642/147 622/1643/146 +f 622/1643/146 1110/1644/147 611/1645/146 +f 1105/1637/66 1111/1646/148 1107/1639/66 +f 1112/1647/66 1113/1648/148 1105/1637/66 +f 1111/1646/148 1114/1649/149 1115/1650/149 +f 1113/1648/148 1116/1651/149 1114/1649/149 +f 672/1652/150 1117/1653/85 899/1654/150 +f 1118/1655/151 1119/1656/152 1120/1657/151 +f 1121/1658/67 1122/1659/153 1123/1660/67 +f 1124/1661/153 1120/1657/151 1122/1659/153 +f 1125/1662/153 1118/1655/151 1124/1661/153 +f 1126/1663/152 1127/1664/85 1119/1656/152 +f 1128/1665/152 1117/1653/85 1126/1663/152 +f 899/1654/150 1129/1666/85 671/1667/150 +f 1130/1668/154 1131/1669/155 1132/1670/155 +f 1133/1671/156 1134/1672/154 1130/1668/154 +f 1114/1649/149 1135/1673/156 1133/1671/156 +f 1136/1674/154 1132/1670/155 1137/1675/155 +f 1138/1676/156 1130/1668/154 1136/1674/154 +f 1115/1650/149 1133/1671/156 1138/1676/156 +f 1106/1638/145 1110/1644/147 1109/1642/147 +f 1109/1642/147 1104/1636/145 1106/1638/145 +f 1139/1677/67 1140/1678/157 1141/1679/157 +f 1121/1658/67 1142/1680/157 1140/1678/157 +f 1143/1681/151 1126/1663/152 1118/1655/151 +f 1121/1658/67 1125/1662/153 1124/1661/153 +f 1132/1670/155 1144/1682/158 1137/1675/155 +f 1131/1669/155 1145/1683/158 1132/1670/155 +f 1145/1683/158 1146/1684/159 1144/1682/158 +f 1147/1685/158 1148/1686/159 1145/1683/158 +f 1140/1678/157 1149/1687/159 1141/1679/157 +f 1140/1678/157 1146/1684/159 1148/1686/159 +f 809/1688/69 1150/1689/69 815/1690/69 +f 456/1691/68 1151/1692/68 1103/1635/68 +f 794/1136/69 809/1688/69 561/758/69 +f 806/1150/68 1152/1693/160 824/1172/68 +f 1153/1694/68 1154/1695/68 1155/1696/68 +f 1151/1692/68 823/1697/161 1153/1694/68 +f 1156/1698/69 1157/1699/69 1158/1700/69 +f 815/1690/69 1159/1701/162 901/1702/162 +f 1158/1700/69 1160/1703/162 1161/1704/162 +f 800/1143/69 1162/1705/163 826/1706/164 +f 805/1149/69 818/1707/69 817/1708/69 +f 797/1709/68 816/1710/68 1151/1692/68 +f 824/1172/68 1163/1711/160 810/1156/68 +f 1163/1711/160 1164/1712/165 1165/1713/165 +f 901/1702/162 1166/1714/166 813/1715/166 +f 827/1716/167 1167/1717/166 1168/1718/168 +f 812/1719/160 1164/1712/165 1152/1693/160 +f 820/1720/70 1169/1721/166 827/1716/167 +f 825/1722/169 1165/1713/165 1164/1712/165 +f 822/1723/70 1166/1714/166 820/1720/70 +f 819/1724/74 1164/1712/165 814/1725/165 +f 810/1156/68 1170/1726/160 900/1315/68 +f 804/1148/69 826/1706/164 818/1707/69 +f 1150/1689/69 1161/1704/162 1159/1701/162 +f 1171/1727/69 1158/1700/69 1150/1689/69 +f 1153/1694/68 1172/1728/170 1173/1729/68 +f 1103/1635/68 1153/1694/68 1155/1696/68 +f 1174/1730/171 826/1731/164 1162/1732/163 +f 827/1716/167 1172/1728/170 823/1697/161 +f 611/1645/172 617/1733/173 420/1734/174 +f 606/1735/175 701/1641/176 562/1736/177 +f 671/1667/178 702/1737/179 690/1738/180 +f 833/1739/181 672/1652/182 683/1740/183 +f 1112/1647/184 688/1741/185 1175/1742/186 +f 675/1743/187 1111/1646/188 687/1744/189 +f 608/1745/190 1107/1639/187 675/1743/187 +f 617/1733/191 1110/1644/192 610/1746/193 +f 1104/1636/194 674/1747/184 1112/1647/184 +f 1176/1748/195 606/1735/175 605/1749/196 +f 1111/1646/188 685/1750/197 687/1744/189 +f 1115/1650/198 686/1751/199 685/1750/197 +f 1138/1676/200 700/1752/201 686/1751/199 +f 1136/1674/202 698/1753/203 700/1752/201 +f 689/1754/204 1175/1742/186 688/1741/185 +f 694/1755/205 1116/1651/206 689/1754/204 +f 695/1756/207 1135/1673/208 694/1755/205 +f 691/1757/209 1134/1672/210 695/1756/207 +f 1129/1666/211 702/1737/179 671/1667/178 +f 1128/1665/212 679/1758/213 1129/1666/211 +f 1143/1681/214 832/1759/215 1128/1665/212 +f 1143/1681/214 706/1760/216 835/1761/217 +f 833/1739/181 1127/1664/218 672/1652/182 +f 681/1762/219 1119/1656/220 1127/1664/218 +f 831/1763/221 1120/1657/222 1119/1656/220 +f 838/1764/223 1120/1657/222 834/1765/224 +f 610/1746/193 1108/1640/225 608/1745/190 +f 1104/1636/194 605/1749/196 673/1766/226 +f 836/1767/227 1125/1662/228 1139/1677/229 +f 703/1768/230 1122/1659/231 838/1764/223 +f 698/1753/203 1144/1682/232 699/1769/233 +f 691/1757/209 1147/1685/234 1131/1669/235 +f 693/1770/236 1149/1687/237 1147/1685/234 +f 699/1769/233 1146/1684/238 704/1771/239 +f 837/1772/240 1149/1687/237 707/1773/241 +f 1146/1684/238 705/1774/242 704/1771/239 +f 705/1775/242 1123/1660/243 703/1776/230 +f 1139/1677/229 837/1777/240 836/1778/227 +f 1167/1717/166 1161/1704/162 1160/1703/162 +f 1166/1714/166 1161/1704/162 1169/1721/166 +f 1177/1779/244 1178/1780/73 1179/1781/244 +f 1180/1782/73 1181/1783/91 1178/1780/73 +f 1182/1784/91 1183/1785/92 1181/1783/91 +f 1184/1786/92 1185/1787/87 1183/1785/92 +f 1186/1788/87 1187/1789/93 1185/1787/87 +f 1187/1790/93 1188/1791/94 1189/1792/94 +f 1188/1791/94 1190/1793/88 1189/1792/94 +f 1191/1794/88 1192/1795/95 1190/1793/88 +f 1193/1796/95 1194/1797/96 1192/1795/95 +f 1195/1798/96 1196/1799/72 1194/1797/96 +f 1197/1800/72 1198/1801/245 1196/1799/72 +f 1199/1802/245 1179/1781/244 1198/1801/245 +f 1183/1785/246 1200/1803/247 1181/1783/247 +f 1201/1804/94 1202/1805/93 1203/1806/93 +f 1198/1801/248 1204/1807/249 1196/1799/249 +f 1181/1783/247 1205/1808/250 1178/1780/250 +f 1196/1799/249 1206/1809/251 1194/1797/251 +f 1194/1797/251 1207/1810/252 1192/1795/252 +f 1192/1795/252 1208/1811/253 1190/1793/253 +f 1190/1793/253 1201/1812/254 1189/1792/254 +f 1187/1790/255 1201/1813/254 1203/1814/255 +f 1187/1789/255 1209/1815/256 1185/1787/256 +f 1185/1787/256 1210/1816/246 1183/1785/246 +f 1179/1781/257 1211/1817/248 1198/1801/248 +f 1179/1781/257 1205/1818/250 1212/1819/257 +f 1210/1820/92 1213/1821/91 1200/1822/91 +f 1204/1823/72 1214/1824/96 1206/1825/96 +f 1208/1826/88 1215/1827/94 1201/1804/94 +f 1209/1828/87 1216/1829/92 1210/1820/92 +f 1211/1830/245 1217/1831/72 1204/1823/72 +f 1205/1832/73 1218/1833/244 1212/1834/244 +f 1207/1835/95 1219/1836/88 1208/1826/88 +f 1203/1837/93 1220/1838/87 1209/1828/87 +f 1212/1834/244 1221/1839/245 1211/1830/245 +f 1200/1822/91 1222/1840/73 1205/1832/73 +f 1206/1825/96 1223/1841/95 1207/1835/95 +f 1224/1842/67 1225/1843/258 1226/1844/67 +f 1227/1845/258 1228/1846/68 1225/1843/258 +f 1229/1847/68 1230/1848/259 1228/1846/68 +f 1231/1849/259 1232/1850/66 1230/1848/259 +f 1233/1851/66 1234/1852/260 1232/1850/66 +f 1235/1853/260 1236/1854/69 1234/1852/260 +f 1237/1855/69 1238/1856/261 1236/1854/69 +f 1239/1857/261 1226/1858/67 1238/1856/261 +f 1234/1859/74 1236/1860/74 1238/1861/74 +f 863/1326/70 862/1329/73 903/1327/73 +f 862/1329/73 102/1331/68 905/1330/68 +f 102/1331/68 101/1333/87 906/1332/87 +f 101/1333/87 866/1862/74 907/1334/74 +f 866/1335/74 865/1338/88 908/1336/88 +f 865/1338/88 103/1340/69 909/1339/69 +f 103/1340/69 864/1342/72 910/1341/72 +f 864/1342/72 863/1326/70 904/1328/70 +f 910/1345/67 904/1863/67 903/1864/67 +f 903/1864/67 905/1865/67 906/1343/67 +f 906/1343/67 907/1866/67 908/1344/67 +f 908/1344/67 909/1867/67 910/1345/67 +f 910/1345/67 903/1864/67 906/1343/67 +f 868/1346/89 867/1349/90 109/1347/90 +f 867/1349/90 106/1351/91 878/1350/91 +f 106/1351/91 875/1353/92 879/1352/92 +f 875/1353/92 874/1868/87 880/1354/87 +f 880/1354/87 874/1868/87 873/1355/93 +f 873/1355/93 105/1358/94 882/1357/94 +f 105/1358/94 872/1360/88 107/1359/88 +f 872/1360/88 871/1362/95 883/1361/95 +f 871/1362/95 870/1364/96 108/1363/96 +f 870/1364/96 104/1869/97 884/1365/97 +f 884/1365/97 104/1869/97 869/1366/98 +f 110/1368/67 886/1371/85 911/1369/85 +f 886/1371/85 885/1870/74 913/1372/74 +f 885/1373/74 889/1376/99 914/1374/99 +f 889/1376/99 112/1378/66 915/1377/66 +f 112/1378/66 888/1380/78 916/1379/78 +f 888/1380/78 111/1382/70 917/1381/70 +f 111/1382/70 887/1384/76 918/1383/76 +f 887/1384/76 110/1368/67 912/1370/67 +f 919/1385/85 890/1389/85 115/1386/67 +f 921/1388/74 891/1871/74 890/1389/85 +f 922/1390/99 892/1394/99 891/1391/74 +f 923/1393/66 113/1396/66 892/1394/99 +f 924/1395/78 893/1398/78 113/1396/66 +f 925/1397/70 114/1400/70 893/1398/78 +f 926/1399/76 894/1401/76 114/1400/70 +f 920/1387/67 115/1386/67 894/1401/76 +f 927/1402/68 1099/1617/68 928/1403/68 +f 133/1405/68 931/1408/68 930/1406/68 +f 931/1408/68 935/1412/68 932/1409/68 +f 933/1410/68 927/1402/68 929/1404/68 +f 935/1412/68 933/1410/68 934/1411/68 +f 936/1413/68 947/1426/68 937/1414/100 +f 939/1416/68 936/1413/68 938/1415/100 +f 941/1418/68 943/1420/68 939/1416/68 +f 943/1420/68 946/1425/68 936/1413/68 +f 944/1421/68 941/1418/68 942/1419/68 +f 127/1423/68 944/1421/68 945/1422/68 +f 946/1425/68 1098/1615/68 947/1426/68 +f 948/1427/101 1021/1619/136 949/1428/102 +f 951/1430/103 1030/1514/124 952/1431/66 +f 954/1433/70 974/1455/70 955/1434/104 +f 957/1436/106 989/1471/114 958/1437/107 +f 960/1439/109 1000/1541/110 961/1440/110 +f 963/1442/66 1031/1515/66 964/1443/66 +f 966/1445/112 1021/1505/112 948/1446/107 +f 118/206/113 128/216/113 968/1448/113 +f 970/1450/105 935/1872/104 931/1451/70 +f 972/1453/106 967/1447/108 948/1446/107 +f 135/226/70 896/1264/70 974/1455/70 +f 975/1456/115 978/1459/115 976/1457/74 +f 978/1459/115 980/1461/115 979/1460/74 +f 980/1461/115 1011/1494/115 981/1462/74 +f 982/1463/108 984/1465/112 966/1445/112 +f 983/1464/108 986/1467/112 984/1465/112 +f 985/1466/108 1008/1491/112 986/1467/112 +f 980/1461/115 978/1459/115 987/1468/116 +f 957/1436/106 956/1631/105 955/1470/104 +f 977/1458/74 976/1457/74 990/1472/117 +f 976/1457/74 979/1460/74 992/1474/117 +f 979/1460/74 981/1462/74 993/1475/117 +f 978/1459/115 975/1456/115 994/1476/116 +f 995/1477/116 1017/1873/116 996/1478/115 +f 969/1449/113 968/1448/113 998/1480/118 +f 1000/1482/119 1006/1489/112 1001/1483/112 +f 971/1452/70 931/1451/70 133/224/70 +f 991/1473/117 1010/1493/120 1002/1485/74 +f 1003/1486/85 1028/1512/123 1004/1487/118 +f 1006/1489/112 1000/1482/119 1007/1490/119 +f 1009/1492/85 1056/1548/123 1010/1493/120 +f 1011/1494/115 997/1479/115 1012/1495/74 +f 959/1438/108 1006/1489/112 1008/1491/112 +f 1008/1491/112 1007/1490/119 1013/1496/119 +f 993/1475/117 981/1462/74 1012/1495/74 +f 997/1479/115 1011/1494/115 1015/1498/116 +f 1016/1499/103 1072/1568/124 1017/1500/121 +f 986/1467/112 1013/1496/119 1018/1502/119 +f 959/1438/108 958/1437/107 1001/1483/112 +f 984/1465/112 1018/1502/119 1019/1503/119 +f 1011/1494/115 980/1461/115 988/1469/116 +f 966/1445/112 1019/1503/119 1020/1504/119 +f 953/1432/66 952/1431/66 1022/1506/66 +f 1024/1508/66 1074/1570/66 1025/1509/66 +f 1003/1486/85 1014/1497/117 1027/1511/122 +f 951/1430/103 994/1547/121 1029/1513/121 +f 960/1439/109 962/1441/111 1031/1515/66 +f 967/1447/108 972/1453/106 1032/1516/106 +f 982/1463/108 1032/1516/106 1033/1517/106 +f 1033/1517/106 1034/1518/106 985/1466/108 +f 1034/1518/106 957/1436/106 959/1438/108 +f 1019/1519/110 1018/1522/110 1035/1520/109 +f 1018/1522/110 1013/1874/110 1037/1523/109 +f 1037/1523/109 1013/1874/110 1007/1524/110 +f 1023/1507/66 1040/1527/66 1039/1526/66 +f 1040/1527/66 1042/1529/66 1041/1528/66 +f 1042/1529/66 1053/1540/66 1043/1530/66 +f 953/1432/66 1039/1526/66 1044/1531/103 +f 1039/1526/66 1041/1528/66 1045/1532/103 +f 1041/1528/66 1043/1530/66 1046/1533/103 +f 1047/1534/66 1055/1543/66 1048/1535/66 +f 1048/1535/66 1051/1538/66 1050/1537/66 +f 1051/1538/66 1054/1542/66 1052/1539/66 +f 1047/1534/66 1049/1536/66 1040/1527/66 +f 1049/1536/66 1050/1537/66 1042/1529/66 +f 1050/1537/66 1052/1539/66 1053/1540/66 +f 1038/1525/109 1007/1524/110 1000/1541/110 +f 1053/1540/66 1024/1508/66 1026/1510/66 +f 1043/1530/66 1026/1510/66 1016/1499/103 +f 1054/1542/66 963/1442/66 965/1444/66 +f 1052/1539/66 965/1444/66 1024/1508/66 +f 1038/1525/109 960/1439/109 963/1442/66 +f 1037/1523/109 1038/1525/109 1054/1542/66 +f 1035/1520/109 1037/1523/109 1051/1538/66 +f 1036/1521/109 1035/1520/109 1048/1535/66 +f 1046/1533/103 1016/1499/103 995/1501/121 +f 1045/1532/103 1046/1533/103 1015/1544/121 +f 987/1546/121 1044/1531/103 1045/1532/103 +f 994/1547/121 951/1430/103 1044/1531/103 +f 999/1481/118 998/1480/118 1056/1548/123 +f 1057/1549/113 1073/1569/113 119/207/113 +f 1055/1543/66 1047/1534/66 1058/1550/66 +f 1023/1507/66 1022/1506/66 1058/1550/66 +f 997/1479/115 996/1478/115 1060/1552/74 +f 990/1472/117 992/1474/117 1061/1553/85 +f 993/1475/117 1063/1555/85 1061/1553/85 +f 1014/1497/117 1003/1486/85 1063/1555/85 +f 991/1473/117 990/1472/117 1062/1554/85 +f 1062/1554/85 1065/1557/118 999/1481/118 +f 1003/1486/85 1005/1488/118 1064/1556/118 +f 1061/1553/85 1066/1558/118 1065/1557/118 +f 1063/1555/85 1064/1556/118 1066/1558/118 +f 1064/1556/118 1068/1560/113 1067/1559/113 +f 1065/1557/118 1069/1561/113 969/1449/113 +f 1005/1488/118 1057/1549/113 1068/1560/113 +f 1066/1558/118 1067/1559/113 1069/1561/113 +f 1068/1560/113 124/212/113 122/210/113 +f 1069/1561/113 116/204/113 118/206/113 +f 1057/1549/113 121/209/113 124/212/113 +f 1067/1559/113 122/210/113 116/204/113 +f 972/1453/106 973/1454/114 935/1562/104 +f 1036/1521/109 1071/1566/111 1020/1564/110 +f 977/1458/74 1002/1485/74 1070/1565/115 +f 1055/1543/66 1059/1551/66 1071/1566/111 +f 975/1456/115 1070/1565/115 1029/1567/116 +f 1026/1510/66 1025/1509/66 1072/1568/124 +f 1005/1488/118 1004/1487/118 1073/1569/113 +f 1014/1497/117 1012/1495/74 1060/1552/74 +f 965/1444/66 964/1443/66 1074/1570/66 +f 1075/1571/69 130/1599/69 119/1572/69 +f 1077/1574/69 1086/1584/69 1078/1575/69 +f 1080/1577/69 1083/1580/69 1081/1578/69 +f 1083/1580/69 1075/1571/69 1076/1573/69 +f 1001/1581/125 958/1608/133 1084/1582/126 +f 1086/1584/69 1080/1577/69 1082/1579/69 +f 1078/1575/69 1082/1579/69 1087/1585/127 +f 1079/1576/69 1078/1575/69 1088/1586/127 +f 1090/1588/69 1095/1594/69 1091/1589/69 +f 955/1591/69 974/1597/69 1093/1592/69 +f 1095/1594/69 955/1591/69 1094/1593/69 +f 1096/1595/69 1090/1588/69 1092/1590/69 +f 974/1597/69 896/1875/69 134/1598/69 +f 1093/1592/69 134/1598/69 130/1599/69 +f 1097/1596/69 1092/1590/69 1086/1584/69 +f 1091/1589/69 1094/1593/69 1083/1580/69 +f 1094/1593/69 1093/1592/69 1075/1571/69 +f 1092/1590/69 1091/1589/69 1080/1577/69 +f 996/1600/128 1017/1876/262 1072/1601/129 +f 1079/1576/69 1025/1609/69 1074/1602/69 +f 1096/1595/69 1031/1606/69 962/1603/130 +f 1001/1581/125 1085/1583/126 962/1603/130 +f 1077/1574/69 1074/1602/69 964/1605/69 +f 1097/1596/69 964/1605/69 1031/1606/69 +f 1090/1588/69 1084/1582/126 989/1607/132 +f 1085/1583/126 1084/1582/126 1090/1588/69 +f 1089/1587/127 1072/1601/129 1025/1609/69 +f 1089/1587/127 1088/1586/127 1060/1610/134 +f 1088/1586/127 1087/1585/127 1027/1611/134 +f 1073/1613/69 1004/1614/69 1081/1578/69 +f 1004/1614/69 1028/1612/135 1082/1579/69 +f 929/1404/68 928/1403/68 1098/1615/68 +f 129/1407/68 930/1406/68 944/1421/68 +f 930/1406/68 932/1409/68 941/1418/68 +f 934/1411/68 929/1404/68 946/1425/68 +f 932/1409/68 934/1411/68 943/1420/68 +f 949/1428/102 1071/1620/137 1059/1616/68 +f 1099/1617/68 1059/1616/68 1058/1618/68 +f 1021/1619/136 1020/1877/263 1071/1620/137 +f 947/1426/68 1098/1615/68 1022/1621/68 +f 937/1414/100 947/1426/68 952/1622/68 +f 1098/1615/68 928/1403/68 1058/1618/68 +f 950/1429/102 927/1402/68 933/1410/68 +f 950/1429/102 949/1428/102 1099/1617/68 +f 1070/1625/140 937/1414/100 1030/1623/138 +f 938/1415/100 937/1414/100 1070/1625/140 +f 940/1417/100 938/1415/100 1002/1627/142 +f 942/1419/68 998/1878/68 968/1629/68 +f 1056/1630/143 998/1878/68 942/1419/68 +f 1034/1518/106 1101/1633/144 956/1631/105 +f 1032/1516/106 1102/1634/144 1100/1632/144 +f 1033/1517/106 1100/1632/144 1101/1633/144 +f 1032/1516/106 972/1453/106 970/1563/105 +f 453/760/68 456/1691/68 1103/1635/68 +f 1104/1636/145 1112/1647/66 1105/1637/66 +f 1106/1638/145 1105/1637/66 1107/1639/66 +f 701/1641/146 1176/1748/147 1109/1642/147 +f 622/1643/146 1109/1642/147 1110/1644/147 +f 1105/1637/66 1113/1648/148 1111/1646/148 +f 1112/1647/66 1175/1742/148 1113/1648/148 +f 1111/1646/148 1113/1648/148 1114/1649/149 +f 1113/1648/148 1175/1742/148 1116/1651/149 +f 672/1652/150 1127/1664/85 1117/1653/85 +f 1118/1655/151 1126/1663/152 1119/1656/152 +f 1121/1658/67 1124/1661/153 1122/1659/153 +f 1124/1661/153 1118/1655/151 1120/1657/151 +f 1125/1662/153 1143/1681/151 1118/1655/151 +f 1126/1663/152 1117/1653/85 1127/1664/85 +f 1128/1665/152 1129/1666/85 1117/1653/85 +f 899/1654/150 1117/1653/85 1129/1666/85 +f 1130/1668/154 1134/1672/154 1131/1669/155 +f 1133/1671/156 1135/1673/156 1134/1672/154 +f 1114/1649/149 1116/1651/149 1135/1673/156 +f 1136/1674/154 1130/1668/154 1132/1670/155 +f 1138/1676/156 1133/1671/156 1130/1668/154 +f 1115/1650/149 1114/1649/149 1133/1671/156 +f 1106/1638/145 1108/1640/145 1110/1644/147 +f 1109/1642/147 1176/1748/147 1104/1636/145 +f 1139/1677/67 1121/1658/67 1140/1678/157 +f 1121/1658/67 1123/1660/67 1142/1680/157 +f 1143/1681/151 1128/1665/152 1126/1663/152 +f 1121/1658/67 1139/1677/67 1125/1662/153 +f 1132/1670/155 1145/1683/158 1144/1682/158 +f 1131/1669/155 1147/1685/158 1145/1683/158 +f 1145/1683/158 1148/1686/159 1146/1684/159 +f 1147/1685/158 1149/1687/159 1148/1686/159 +f 1140/1678/157 1148/1686/159 1149/1687/159 +f 1140/1678/157 1142/1680/157 1146/1684/159 +f 809/1688/69 1171/1727/69 1150/1689/69 +f 456/1691/68 797/1709/68 1151/1692/68 +f 794/1136/69 1171/1727/69 809/1688/69 +f 806/1150/68 812/1719/160 1152/1693/160 +f 1153/1694/68 1173/1729/68 1154/1695/68 +f 1151/1692/68 816/1710/68 823/1697/161 +f 1156/1698/69 1240/1879/69 1157/1699/69 +f 815/1690/69 1150/1689/69 1159/1701/162 +f 1158/1700/69 1157/1699/69 1160/1703/162 +f 800/1143/69 799/1142/69 1162/1705/163 +f 805/1149/69 804/1148/69 818/1707/69 +f 797/1709/68 808/1880/68 816/1710/68 +f 824/1172/68 1152/1693/160 1163/1711/160 +f 1165/1713/165 1170/1726/160 1163/1711/160 +f 1163/1711/160 1152/1693/160 1164/1712/165 +f 901/1702/162 1159/1701/162 1166/1714/166 +f 827/1716/167 1169/1721/166 1167/1717/166 +f 812/1719/160 814/1725/165 1164/1712/165 +f 820/1720/70 1166/1714/166 1169/1721/166 +f 1164/1712/165 821/1881/74 825/1722/169 +f 825/1722/169 1174/1730/171 1165/1713/165 +f 822/1723/70 813/1715/166 1166/1714/166 +f 819/1724/74 821/1881/74 1164/1712/165 +f 810/1156/68 1163/1711/160 1170/1726/160 +f 804/1148/69 800/1143/69 826/1706/164 +f 1150/1689/69 1158/1700/69 1161/1704/162 +f 1171/1727/69 1156/1698/69 1158/1700/69 +f 1153/1694/68 823/1697/161 1172/1728/170 +f 1103/1635/68 1151/1692/68 1153/1694/68 +f 1174/1730/171 825/1722/169 826/1731/164 +f 827/1716/167 1168/1718/168 1172/1728/170 +f 1112/1647/184 674/1747/184 688/1741/185 +f 675/1743/187 1107/1639/187 1111/1646/188 +f 608/1745/190 1108/1640/225 1107/1639/187 +f 617/1733/191 611/1645/172 1110/1644/192 +f 1104/1636/194 673/1766/226 674/1747/184 +f 1176/1748/195 701/1641/176 606/1735/175 +f 1111/1646/188 1115/1650/198 685/1750/197 +f 1115/1650/198 1138/1676/200 686/1751/199 +f 1138/1676/200 1136/1674/202 700/1752/201 +f 1136/1674/202 1137/1675/264 698/1753/203 +f 689/1754/204 1116/1651/206 1175/1742/186 +f 694/1755/205 1135/1673/208 1116/1651/206 +f 695/1756/207 1134/1672/210 1135/1673/208 +f 691/1757/209 1131/1669/235 1134/1672/210 +f 1129/1666/211 679/1758/213 702/1737/179 +f 1128/1665/212 832/1759/215 679/1758/213 +f 1143/1681/214 835/1761/217 832/1759/215 +f 1143/1681/214 1125/1662/228 706/1760/216 +f 833/1739/181 681/1762/219 1127/1664/218 +f 681/1762/219 831/1763/221 1119/1656/220 +f 831/1763/221 834/1765/224 1120/1657/222 +f 838/1764/223 1122/1659/231 1120/1657/222 +f 610/1746/193 1110/1644/192 1108/1640/225 +f 1104/1636/194 1176/1748/195 605/1749/196 +f 836/1767/227 706/1760/216 1125/1662/228 +f 703/1768/230 1123/1660/243 1122/1659/231 +f 698/1753/203 1137/1675/264 1144/1682/232 +f 691/1757/209 693/1770/236 1147/1685/234 +f 693/1770/236 707/1773/241 1149/1687/237 +f 699/1769/233 1144/1682/232 1146/1684/238 +f 837/1772/240 1141/1679/265 1149/1687/237 +f 1146/1684/238 1142/1680/266 705/1774/242 +f 705/1775/242 1142/1680/266 1123/1660/243 +f 1139/1677/229 1141/1679/265 837/1777/240 +f 1167/1717/166 1169/1721/166 1161/1704/162 +f 1166/1714/166 1159/1701/162 1161/1704/162 +f 1177/1779/244 1180/1782/73 1178/1780/73 +f 1180/1782/73 1182/1784/91 1181/1783/91 +f 1182/1784/91 1184/1786/92 1183/1785/92 +f 1184/1786/92 1186/1788/87 1185/1787/87 +f 1186/1788/87 1241/1882/93 1187/1789/93 +f 1187/1790/93 1241/1883/93 1188/1791/94 +f 1188/1791/94 1191/1794/88 1190/1793/88 +f 1191/1794/88 1193/1796/95 1192/1795/95 +f 1193/1796/95 1195/1798/96 1194/1797/96 +f 1195/1798/96 1197/1800/72 1196/1799/72 +f 1197/1800/72 1199/1802/245 1198/1801/245 +f 1199/1802/245 1177/1779/244 1179/1781/244 +f 1183/1785/246 1210/1884/246 1200/1803/247 +f 1201/1804/94 1215/1827/94 1202/1805/93 +f 1198/1801/248 1211/1885/248 1204/1807/249 +f 1181/1783/247 1200/1886/247 1205/1808/250 +f 1196/1799/249 1204/1887/249 1206/1809/251 +f 1194/1797/251 1206/1888/251 1207/1810/252 +f 1192/1795/252 1207/1889/252 1208/1811/253 +f 1190/1793/253 1208/1890/253 1201/1812/254 +f 1187/1790/255 1189/1792/254 1201/1813/254 +f 1187/1789/255 1203/1891/255 1209/1815/256 +f 1185/1787/256 1209/1892/256 1210/1816/246 +f 1179/1781/257 1212/1893/257 1211/1817/248 +f 1179/1781/257 1178/1780/250 1205/1818/250 +f 1210/1820/92 1216/1829/92 1213/1821/91 +f 1204/1823/72 1217/1831/72 1214/1824/96 +f 1208/1826/88 1219/1836/88 1215/1827/94 +f 1209/1828/87 1220/1838/87 1216/1829/92 +f 1211/1830/245 1221/1839/245 1217/1831/72 +f 1205/1832/73 1222/1840/73 1218/1833/244 +f 1207/1835/95 1223/1841/95 1219/1836/88 +f 1203/1837/93 1202/1894/93 1220/1838/87 +f 1212/1834/244 1218/1833/244 1221/1839/245 +f 1200/1822/91 1213/1821/91 1222/1840/73 +f 1206/1825/96 1214/1824/96 1223/1841/95 +f 1224/1842/67 1227/1845/258 1225/1843/258 +f 1227/1845/258 1229/1847/68 1228/1846/68 +f 1229/1847/68 1231/1849/259 1230/1848/259 +f 1231/1849/259 1233/1851/66 1232/1850/66 +f 1233/1851/66 1235/1853/260 1234/1852/260 +f 1235/1853/260 1237/1855/69 1236/1854/69 +f 1237/1855/69 1239/1857/261 1238/1856/261 +f 1239/1857/261 1224/1895/67 1226/1858/67 +f 1238/1861/74 1226/1896/74 1230/1897/74 +f 1226/1896/74 1225/1898/74 1230/1897/74 +f 1225/1898/74 1228/1899/74 1230/1897/74 +f 1230/1897/74 1232/1900/74 1238/1861/74 +f 1232/1900/74 1234/1859/74 1238/1861/74 +s off +f 1242/1901/69 1243/1902/69 1244/1903/69 +f 1245/1904/70 1246/1905/70 1247/1906/70 +f 1245/1904/68 1248/1907/68 1249/1908/68 +f 1250/1909/68 1251/1910/68 1248/1907/68 +f 1249/1908/74 1244/1911/74 1243/1912/74 +f 1247/1906/70 1250/1909/70 1245/1904/70 +f 1246/1905/67 1252/1913/67 1253/1914/67 +f 1247/1906/69 1253/1915/69 1243/1902/69 +f 1249/1908/68 1254/1916/68 1245/1904/68 +f 1255/1917/67 1256/1918/67 1253/1914/67 +f 1257/1919/66 1258/1920/66 1251/1921/66 +f 1244/1903/69 1259/1922/69 1242/1901/69 +f 1260/1923/67 1261/1924/67 1244/1925/67 +f 1242/1901/70 1257/1919/70 1250/1909/70 +f 1249/1926/68 1262/1927/68 1252/1913/68 +f 1244/1928/69 1263/1929/69 1258/1920/69 +f 1260/1930/74 1264/1931/74 1261/1932/74 +f 1253/1914/69 1265/1933/69 1243/1934/69 +f 1251/1921/68 1266/1935/68 1248/1936/68 +f 1267/1937/74 1255/1917/74 1268/1938/74 +f 1264/1931/66 1269/1939/66 1251/1921/66 +f 1267/1937/88 1270/1940/88 1256/1918/88 +f 1255/1917/87 1271/1941/87 1268/1938/87 +f 1260/1930/87 1272/1942/87 1269/1939/87 +f 1264/1931/88 1273/1943/88 1261/1932/88 +f 1267/1944/66 1268/1945/66 1249/1926/66 +f 1242/1901/69 1247/1906/69 1243/1902/69 +f 1245/1904/70 1254/1916/70 1246/1905/70 +f 1245/1904/68 1250/1909/68 1248/1907/68 +f 1250/1909/68 1257/1919/68 1251/1910/68 +f 1249/1908/74 1248/1907/74 1244/1911/74 +f 1247/1906/70 1242/1901/70 1250/1909/70 +f 1246/1905/67 1254/1916/67 1252/1913/67 +f 1247/1906/69 1246/1905/69 1253/1915/69 +f 1249/1908/68 1252/1946/68 1254/1916/68 +f 1270/1947/67 1253/1914/67 1256/1918/67 +f 1253/1914/67 1252/1913/67 1255/1917/67 +f 1252/1913/67 1262/1927/67 1255/1917/67 +f 1257/1919/66 1259/1922/66 1258/1920/66 +f 1244/1903/69 1258/1948/69 1259/1922/69 +f 1273/1949/67 1244/1925/67 1261/1924/67 +f 1244/1925/67 1248/1936/67 1260/1923/67 +f 1248/1936/67 1266/1935/67 1260/1923/67 +f 1242/1901/70 1259/1922/70 1257/1919/70 +f 1249/1926/68 1271/1950/68 1262/1927/68 +f 1244/1928/69 1273/1951/69 1263/1929/69 +f 1260/1930/74 1269/1939/74 1264/1931/74 +f 1253/1914/69 1270/1947/69 1265/1933/69 +f 1251/1921/68 1272/1952/68 1266/1935/68 +f 1267/1937/74 1256/1918/74 1255/1917/74 +f 1272/1952/66 1251/1921/66 1269/1939/66 +f 1251/1921/66 1258/1920/66 1264/1931/66 +f 1258/1920/66 1263/1929/66 1264/1931/66 +f 1267/1937/88 1265/1953/88 1270/1940/88 +f 1255/1917/87 1262/1954/87 1271/1941/87 +f 1260/1930/87 1266/1955/87 1272/1942/87 +f 1264/1931/88 1263/1956/88 1273/1943/88 +f 1271/1950/66 1249/1926/66 1268/1945/66 +f 1249/1926/66 1243/1957/66 1267/1944/66 +f 1243/1957/66 1265/1958/66 1267/1944/66 +f 1274/1959/69 1275/1960/69 1276/1961/69 +f 1277/1962/68 1278/1963/68 1279/1964/68 +f 1280/1965/68 1281/1966/68 1282/1967/68 +f 1277/1962/68 1282/1967/68 1281/1966/68 +f 1283/1968/69 1284/1969/69 1285/1970/69 +f 1276/1961/69 1285/1970/69 1284/1969/69 +f 1274/1959/69 1286/1971/69 1287/1972/69 +f 1288/1973/68 1289/1974/68 1278/1963/68 +f 1274/1959/69 1287/1972/69 1275/1960/69 +f 1277/1962/68 1288/1973/68 1278/1963/68 +f 1277/1962/68 1279/1964/68 1282/1967/68 +f 1276/1961/69 1275/1960/69 1285/1970/69 +f 1274/1959/69 1290/1975/69 1286/1971/69 +f 1288/1973/68 1291/1976/68 1289/1974/68 +f 1292/1977/69 1293/1978/69 1294/1979/69 +f 1295/1980/267 1296/1981/267 1293/1978/267 +f 1297/1982/68 1298/1983/68 1296/1984/68 +f 1299/1985/268 1294/1979/268 1298/1983/268 +f 1296/1986/269 1294/1979/269 1293/1987/269 +f 1295/1988/270 1299/1985/270 1297/1989/270 +f 1292/1977/69 1295/1980/69 1293/1978/69 +f 1295/1980/267 1297/1990/267 1296/1981/267 +f 1297/1982/68 1299/1985/68 1298/1983/68 +f 1299/1985/268 1292/1977/268 1294/1979/268 +f 1296/1986/269 1298/1983/269 1294/1979/269 +f 1295/1988/270 1292/1977/270 1299/1985/270 +f 1300/1991/67 1301/1992/67 1302/1993/67 +f 1303/1994/66 1304/1995/66 1305/1996/66 +f 1306/1997/66 1307/1998/66 1308/1999/66 +f 1303/1994/66 1309/2000/66 1306/1997/66 +f 1308/1999/271 1310/2001/271 1311/2002/271 +f 1312/2003/67 1313/2004/67 1300/1991/67 +f 1314/2005/66 1315/2006/66 1304/1995/66 +f 1316/2007/67 1310/2008/67 1317/2009/67 +f 1312/2003/67 1317/2009/67 1318/2010/67 +f 1302/1993/272 1315/2011/272 1319/2012/272 +f 1301/1992/67 1320/2013/67 1321/2014/67 +f 1322/2015/66 1304/1995/66 1323/2016/66 +f 1307/1998/66 1324/2017/66 1325/2018/66 +f 1309/2000/66 1322/2015/66 1324/2017/66 +f 1310/2001/271 1325/2018/271 1326/2019/271 +f 1313/2004/67 1327/2020/67 1320/2013/67 +f 1323/2016/66 1315/2006/66 1328/2021/66 +f 1329/2022/67 1310/2008/67 1326/2019/67 +f 1327/2020/67 1317/2009/67 1329/2022/67 +f 1315/2011/272 1321/2014/272 1328/2023/272 +f 1300/1991/67 1313/2004/67 1301/1992/67 +f 1303/1994/66 1314/2005/66 1304/1995/66 +f 1306/1997/66 1309/2000/66 1307/1998/66 +f 1303/1994/66 1305/1996/66 1309/2000/66 +f 1308/1999/271 1307/1998/271 1310/2001/271 +f 1312/2003/67 1318/2010/67 1313/2004/67 +f 1314/2005/66 1319/2024/66 1315/2006/66 +f 1316/2007/67 1311/2002/67 1310/2008/67 +f 1312/2003/67 1316/2007/67 1317/2009/67 +f 1302/1993/272 1301/1992/272 1315/2011/272 +f 1301/1992/67 1313/2004/67 1320/2013/67 +f 1322/2015/66 1305/1996/66 1304/1995/66 +f 1307/1998/66 1309/2000/66 1324/2017/66 +f 1309/2000/66 1305/1996/66 1322/2015/66 +f 1310/2001/271 1307/1998/271 1325/2018/271 +f 1313/2004/67 1318/2010/67 1327/2020/67 +f 1323/2016/66 1304/1995/66 1315/2006/66 +f 1329/2022/67 1317/2009/67 1310/2008/67 +f 1327/2020/67 1318/2010/67 1317/2009/67 +f 1315/2011/272 1301/1992/272 1321/2014/272 +s 1 +f 1287/2025/273 1277/2026/273 1275/2027/273 +f 1278/1963/66 1276/1961/66 1279/1964/66 +f 1278/1963/66 1290/1975/66 1274/1959/66 +f 1282/1967/274 1283/2028/99 1280/2029/99 +f 1279/1964/66 1284/1969/274 1282/1967/274 +f 1285/2030/153 1280/2031/275 1283/2032/275 +f 1275/2027/273 1281/2033/153 1285/2030/153 +f 1287/2025/273 1291/2034/67 1288/2035/273 +f 1287/2025/273 1288/2035/273 1277/2026/273 +f 1278/1963/66 1274/1959/66 1276/1961/66 +f 1278/1963/66 1289/1974/66 1290/1975/66 +f 1282/1967/274 1284/1969/274 1283/2028/99 +f 1279/1964/66 1276/1961/66 1284/1969/274 +f 1285/2030/153 1281/2033/153 1280/2031/275 +f 1275/2027/273 1277/2026/273 1281/2033/153 +f 1287/2025/273 1286/2036/67 1291/2034/67 +f 1306/2037/276 1330/2038/277 1303/2039/277 +f 1331/2040/278 1332/2041/279 1333/2042/278 +f 1314/2043/280 1334/2044/272 1319/2045/281 +f 1308/2046/282 1335/2047/276 1306/2037/276 +f 1331/2040/278 1336/2048/271 1308/2046/282 +f 1337/2049/279 1338/2050/283 1332/2041/279 +f 1303/2051/277 1339/2052/280 1314/2043/280 +f 1340/2053/283 1334/2044/272 1338/2050/283 +f 1341/2054/67 1342/2055/67 1343/2056/67 +f 1335/2057/66 1333/2058/66 1338/2059/66 +f 1302/2060/281 1340/2053/283 1344/2061/283 +f 1344/2061/283 1337/2049/279 1345/2062/279 +f 1346/2063/278 1308/2046/282 1311/2064/282 +f 1345/2062/279 1331/2040/278 1346/2063/278 +f 1347/2065/276 1312/2066/277 1348/2067/277 +f 1343/2068/278 1345/2062/279 1346/2063/278 +f 1341/2069/280 1302/2060/281 1349/2070/272 +f 1347/2065/276 1311/2064/282 1316/2071/276 +f 1350/2072/271 1346/2063/278 1311/2064/282 +f 1351/2073/279 1344/2061/283 1345/2062/279 +f 1348/2074/277 1300/2075/280 1341/2069/280 +f 1349/2070/272 1344/2061/283 1342/2076/283 +f 1352/2077/279 1324/2078/278 1322/2079/279 +f 1353/2080/276 1354/2081/277 1355/2082/276 +f 1356/2083/272 1323/2084/283 1328/2085/284 +f 1357/2086/278 1325/2087/285 1324/2078/278 +f 1358/2088/271 1355/2082/276 1325/2087/285 +f 1359/2089/277 1360/2090/280 1354/2081/277 +f 1361/2091/283 1322/2092/279 1323/2084/283 +f 1362/2093/280 1328/2085/284 1360/2090/280 +f 1363/2094/67 1364/2095/67 1365/2096/67 +f 1361/2097/66 1362/2098/66 1353/2099/66 +f 1366/2100/280 1328/2085/284 1321/2101/284 +f 1367/2102/277 1360/2090/280 1366/2100/280 +f 1325/2087/285 1368/2103/276 1326/2104/285 +f 1355/2082/276 1367/2102/277 1368/2103/276 +f 1327/2105/279 1365/2106/278 1369/2107/279 +f 1368/2103/276 1370/2108/277 1371/2109/276 +f 1372/2110/272 1320/2111/283 1364/2112/283 +f 1365/2106/278 1326/2104/285 1373/2113/271 +f 1373/2113/271 1368/2103/276 1371/2109/276 +f 1370/2108/277 1366/2100/280 1363/2114/280 +f 1320/2111/283 1369/2115/279 1364/2112/283 +f 1366/2100/280 1372/2110/272 1363/2114/280 +f 1306/2037/276 1335/2047/276 1330/2038/277 +f 1331/2040/278 1337/2049/279 1332/2041/279 +f 1314/2043/280 1339/2052/280 1334/2044/272 +f 1308/2046/282 1336/2048/271 1335/2047/276 +f 1331/2040/278 1333/2042/278 1336/2048/271 +f 1337/2049/279 1340/2053/283 1338/2050/283 +f 1303/2051/277 1330/2116/277 1339/2052/280 +f 1340/2053/283 1319/2045/281 1334/2044/272 +f 1343/2056/67 1350/2117/67 1347/2118/67 +f 1347/2118/67 1348/2119/67 1341/2054/67 +f 1341/2054/67 1349/2120/67 1342/2055/67 +f 1342/2055/67 1351/2121/67 1343/2056/67 +f 1343/2056/67 1347/2118/67 1341/2054/67 +f 1335/2057/66 1336/2122/66 1333/2058/66 +f 1333/2058/66 1332/2123/66 1338/2059/66 +f 1338/2059/66 1334/2124/66 1339/2125/66 +f 1339/2125/66 1330/2126/66 1338/2059/66 +f 1330/2126/66 1335/2057/66 1338/2059/66 +f 1302/2060/281 1319/2045/281 1340/2053/283 +f 1344/2061/283 1340/2053/283 1337/2049/279 +f 1346/2063/278 1331/2040/278 1308/2046/282 +f 1345/2062/279 1337/2049/279 1331/2040/278 +f 1347/2065/276 1316/2071/276 1312/2066/277 +f 1343/2068/278 1351/2073/279 1345/2062/279 +f 1341/2069/280 1300/2075/280 1302/2060/281 +f 1347/2065/276 1350/2072/271 1311/2064/282 +f 1350/2072/271 1343/2068/278 1346/2063/278 +f 1351/2073/279 1342/2076/283 1344/2061/283 +f 1348/2074/277 1312/2127/277 1300/2075/280 +f 1349/2070/272 1302/2060/281 1344/2061/283 +f 1352/2077/279 1357/2086/278 1324/2078/278 +f 1353/2080/276 1359/2089/277 1354/2081/277 +f 1356/2083/272 1361/2091/283 1323/2084/283 +f 1357/2086/278 1358/2088/271 1325/2087/285 +f 1358/2088/271 1353/2080/276 1355/2082/276 +f 1359/2089/277 1362/2093/280 1360/2090/280 +f 1361/2091/283 1352/2128/279 1322/2092/279 +f 1362/2093/280 1356/2083/272 1328/2085/284 +f 1365/2096/67 1373/2129/67 1371/2130/67 +f 1371/2130/67 1370/2131/67 1363/2094/67 +f 1363/2094/67 1372/2132/67 1364/2095/67 +f 1364/2095/67 1369/2133/67 1365/2096/67 +f 1365/2096/67 1371/2130/67 1363/2094/67 +f 1353/2099/66 1358/2134/66 1357/2135/66 +f 1357/2135/66 1352/2136/66 1353/2099/66 +f 1352/2136/66 1361/2097/66 1353/2099/66 +f 1361/2097/66 1356/2137/66 1362/2098/66 +f 1362/2098/66 1359/2138/66 1353/2099/66 +f 1366/2100/280 1360/2090/280 1328/2085/284 +f 1367/2102/277 1354/2081/277 1360/2090/280 +f 1325/2087/285 1355/2082/276 1368/2103/276 +f 1355/2082/276 1354/2081/277 1367/2102/277 +f 1327/2105/279 1329/2139/278 1365/2106/278 +f 1368/2103/276 1367/2102/277 1370/2108/277 +f 1372/2110/272 1321/2101/284 1320/2111/283 +f 1365/2106/278 1329/2139/278 1326/2104/285 +f 1373/2113/271 1326/2104/285 1368/2103/276 +f 1370/2108/277 1367/2102/277 1366/2100/280 +f 1320/2111/283 1327/2140/279 1369/2115/279 +f 1366/2100/280 1321/2101/284 1372/2110/272 +o Scope +v 0.000000 1.327482 -7.000000 +v -0.181111 1.311306 -7.000000 +v -0.148759 1.367342 -7.000000 +v -0.313694 1.443889 -7.000000 +v -0.257658 1.476241 -7.000000 +v -0.362222 1.625000 -7.000000 +v -0.297517 1.625000 -7.000000 +v -0.257658 1.773759 -7.000000 +v -0.313694 1.806111 -7.000000 +v -0.181111 1.938693 -7.000000 +v -0.148759 1.882657 -7.000000 +v 0.000000 1.922517 -7.000000 +v 0.000000 1.987222 -7.000000 +v 0.181111 1.938694 -7.000000 +v 0.148759 1.882658 -7.000000 +v 0.257658 1.773759 -7.000000 +v 0.313694 1.806111 -7.000000 +v 0.297517 1.625000 -7.000000 +v 0.362222 1.625000 -7.000000 +v 0.313694 1.443889 -7.000000 +v 0.257658 1.476241 -7.000000 +v 0.181111 1.311306 -7.000000 +v 0.148759 1.367342 -7.000000 +v 0.000000 1.262778 -7.000000 +v 0.297517 1.625000 -6.875000 +v 0.148759 1.367342 -6.875000 +v -0.297517 1.625000 -6.875000 +v -0.209127 1.262778 -1.875000 +v 0.000002 1.142037 -1.875000 +v 0.000002 1.206742 -1.875000 +v -0.362220 1.415871 -1.875000 +v -0.241479 1.206742 -1.875000 +v -0.482961 1.625000 -1.875000 +v -0.418256 1.383518 -1.875000 +v -0.362220 1.834129 -1.875000 +v -0.418256 1.625000 -1.875000 +v -0.209127 1.987222 -1.875000 +v -0.418256 1.866482 -1.875000 +v 0.000002 2.107963 -1.875000 +v -0.241480 2.043258 -1.875000 +v 0.209131 1.987222 -1.875000 +v 0.000002 2.043258 -1.875000 +v 0.362224 1.834129 -1.875000 +v 0.241483 2.043258 -1.875000 +v 0.418260 1.625000 -1.875000 +v 0.418260 1.866482 -1.875000 +v 0.362224 1.415871 -1.875000 +v 0.482965 1.625000 -1.875000 +v 0.209131 1.262778 -1.875000 +v 0.418260 1.383519 -1.875000 +v 0.241484 1.206742 -1.875000 +v 0.362224 1.415871 -2.000000 +v 0.362224 1.834129 -2.000000 +v 0.000002 2.043258 -2.000000 +v -0.437499 1.567258 -4.807742 +v -0.437499 1.543340 -4.750000 +v -0.437499 1.706660 -4.750000 +v -0.249999 1.500000 -4.937500 +v -0.124999 1.875000 -4.937500 +v 0.250001 1.750000 -4.937500 +v 0.125001 1.875000 -4.562500 +v -0.249999 1.750000 -4.562500 +v -0.124999 1.375000 -4.562500 +v -0.057741 2.062500 -4.807742 +v -0.081659 2.062500 -4.750000 +v 0.081661 2.062500 -4.750000 +v 0.250001 1.125000 -5.312500 +v 0.250001 0.937500 -5.250000 +v 0.250001 0.937500 -5.312500 +v 0.250001 1.125000 -5.250000 +v -0.249999 0.937500 -5.250000 +v -0.249999 1.125000 -5.312500 +v -0.249999 0.937500 -5.500000 +v -0.249999 0.937500 -5.312500 +v -0.249999 1.125000 -5.500000 +v 0.250001 0.937500 -5.500000 +v -0.249999 1.125000 -5.250000 +v -0.124999 1.250000 -5.312500 +v 0.125001 1.250000 -5.500000 +v 0.250001 1.375000 -5.312500 +v 0.125001 1.250000 -5.312500 +v 0.250001 1.125000 -5.500000 +v -0.124999 1.250000 -5.250000 +v 0.125001 1.250000 -5.250000 +v -0.124999 1.250000 -5.500000 +v 0.250001 1.375000 -5.500000 +v 0.250001 1.437500 -5.312500 +v 0.250001 1.375000 -5.250000 +v -0.249999 1.375000 -5.250000 +v -0.249999 1.375000 -5.312500 +v -0.249999 1.375000 -5.500000 +v -0.249999 1.437500 -5.312500 +v -0.249999 1.437500 -5.500000 +v 0.250001 1.437500 -5.500000 +v -0.249999 1.750000 -5.312500 +v 0.250001 1.750000 -5.312500 +v -0.249999 1.750000 -5.500000 +v 0.125001 1.875000 -5.312500 +v -0.124999 1.875000 -5.500000 +v -0.124999 1.875000 -5.312500 +v 0.125001 1.875000 -5.500000 +v 0.250001 1.750000 -5.500000 +v 0.250001 0.937500 -4.250000 +v 0.250001 1.125000 -4.187500 +v 0.250001 0.937500 -4.187500 +v -0.249999 0.937500 -4.250000 +v 0.250001 1.125000 -4.250000 +v -0.249999 0.937500 -4.000000 +v -0.249999 1.125000 -4.187500 +v -0.249999 0.937500 -4.187500 +v 0.250001 0.937500 -4.000000 +v -0.249999 1.125000 -4.000000 +v -0.124999 1.250000 -4.187500 +v -0.249999 1.125000 -4.250000 +v 0.250001 1.375000 -4.187500 +v 0.125001 1.250000 -4.000000 +v 0.125001 1.250000 -4.187500 +v 0.250001 1.125000 -4.000000 +v -0.124999 1.250000 -4.250000 +v 0.125001 1.250000 -4.250000 +v 0.250001 1.375000 -4.000000 +v -0.124999 1.250000 -4.000000 +v 0.250001 1.437500 -4.187500 +v 0.250001 1.375000 -4.250000 +v -0.249999 1.375000 -4.250000 +v -0.249999 1.375000 -4.187500 +v -0.249999 1.375000 -4.000000 +v -0.249999 1.437500 -4.187500 +v -0.249999 1.437500 -4.000000 +v 0.250001 1.437500 -4.000000 +v -0.124999 1.875000 -4.187500 +v 0.125001 1.875000 -4.187500 +v 0.250001 1.750000 -4.187500 +v -0.249999 1.750000 -4.000000 +v -0.124999 1.875000 -4.000000 +v 0.250001 1.750000 -4.000000 +v -0.249999 1.750000 -4.187500 +v 0.125001 1.875000 -4.000000 +v 0.000000 1.327482 -6.875000 +v -0.148759 1.367342 -6.875000 +v -0.257658 1.476241 -6.875000 +v -0.257658 1.773759 -6.875000 +v -0.148759 1.882657 -6.875000 +v 0.000000 1.922517 -6.875000 +v 0.148759 1.882658 -6.875000 +v 0.257658 1.773759 -6.875000 +v 0.257658 1.476241 -6.875000 +v -0.362220 1.415871 -2.000000 +v -0.209127 1.262778 -2.000000 +v 0.000002 1.206742 -2.000000 +v 0.209131 1.262778 -2.000000 +v 0.418260 1.625000 -2.000000 +v 0.209131 1.987222 -2.000000 +v -0.209127 1.987222 -2.000000 +v -0.362220 1.834129 -2.000000 +v -0.418256 1.625000 -2.000000 +v -0.437499 1.567258 -4.692258 +v -0.437499 1.625000 -4.668340 +v -0.437499 1.682742 -4.692258 +v -0.437499 1.682742 -4.807742 +v -0.437499 1.625000 -4.831660 +v 0.125001 1.375000 -4.937500 +v -0.124999 1.375000 -4.937500 +v -0.249999 1.750000 -4.937500 +v 0.125001 1.875000 -4.937500 +v 0.250001 1.500000 -4.937500 +v 0.125001 1.375000 -4.562500 +v 0.250001 1.500000 -4.562500 +v 0.250001 1.750000 -4.562500 +v -0.124999 1.875000 -4.562500 +v -0.249999 1.500000 -4.562500 +v -0.057741 2.062500 -4.692258 +v 0.000001 2.062500 -4.668340 +v 0.057743 2.062500 -4.692258 +v 0.057743 2.062500 -4.807742 +v 0.000001 2.062500 -4.831660 +v -0.241479 1.206742 -2.500000 +v 0.000002 1.142037 -2.500000 +v -0.418256 1.383518 -2.500000 +v -0.482961 1.625000 -2.500000 +v -0.418256 1.866482 -2.500000 +v -0.241480 2.043258 -2.500000 +v 0.000002 2.107963 -2.500000 +v 0.241483 2.043258 -2.500000 +v 0.418260 1.866482 -2.500000 +v 0.482965 1.625000 -2.500000 +v 0.418260 1.383519 -2.500000 +v 0.241484 1.206742 -2.500000 +v -0.120740 1.834129 -3.750000 +v 0.209130 1.745741 -3.750000 +v 0.120742 1.834129 -5.750000 +v 0.120742 1.834129 -3.750000 +v -0.209128 1.745741 -3.750000 +v -0.241480 1.625000 -3.750000 +v 0.120742 1.415871 -3.750000 +v -0.120740 1.415871 -3.750000 +v 0.000001 1.383518 -3.750000 +v -0.209128 1.504259 -3.750000 +v 0.209130 1.504259 -3.750000 +v 0.241482 1.625000 -3.750000 +v 0.000001 1.866482 -3.750000 +v -0.120740 1.415871 -5.750000 +v 0.000000 1.262778 -6.750000 +v 0.000001 1.383518 -5.750000 +v -0.209128 1.745741 -5.750000 +v 0.120742 1.415871 -5.750000 +v 0.209130 1.745741 -5.750000 +v -0.120740 1.834129 -5.750000 +v -0.209128 1.504259 -5.750000 +v 0.241482 1.625000 -5.750000 +v 0.000001 1.866481 -5.750000 +v -0.241480 1.625000 -5.750000 +v 0.209130 1.504259 -5.750000 +v 0.181111 1.311306 -6.750000 +v 0.313694 1.443889 -6.750000 +v 0.181111 1.938694 -6.750000 +v -0.181111 1.938693 -6.750000 +v -0.313694 1.806111 -6.750000 +v -0.181111 1.311306 -6.750000 +v 0.313694 1.806111 -6.750000 +v -0.313694 1.443889 -6.750000 +v 0.362222 1.625000 -6.750000 +v 0.000000 1.987222 -6.750000 +v -0.362222 1.625000 -6.750000 +v -0.312499 1.567258 -4.692258 +v -0.312499 1.625000 -4.668340 +v -0.312499 1.543340 -4.750000 +v -0.312499 1.567258 -4.807742 +v -0.312499 1.625000 -4.831660 +v -0.312499 1.682742 -4.807742 +v -0.312499 1.706660 -4.750000 +v -0.312499 1.682742 -4.692258 +v -0.312499 1.750000 -4.625000 +v -0.312499 1.500000 -4.875000 +v -0.312499 1.500000 -4.625000 +v 0.125001 1.937500 -4.625000 +v -0.124999 1.937500 -4.875000 +v -0.124999 1.937500 -4.625000 +v 0.312501 1.750000 -4.875000 +v 0.312501 1.500000 -4.625000 +v 0.312501 1.500000 -4.875000 +v 0.125001 1.312500 -4.875000 +v 0.125001 1.312500 -4.625000 +v 0.125001 1.937500 -4.875000 +v -0.124999 1.312500 -4.625000 +v -0.124999 1.312500 -4.875000 +v -0.312499 1.750000 -4.875000 +v 0.312501 1.750000 -4.625000 +v -0.057741 1.937500 -4.692258 +v 0.000001 1.937500 -4.668340 +v -0.081659 1.937500 -4.750000 +v -0.057741 1.937500 -4.807742 +v 0.000001 1.937500 -4.831660 +v 0.057743 1.937500 -4.807742 +v 0.081661 1.937500 -4.750000 +v 0.057743 1.937500 -4.692258 +vt 0.450116 0.413194 +vt 0.452436 0.430556 +vt 0.450116 0.427083 +vt 0.450116 0.434028 +vt 0.452436 0.451389 +vt 0.450116 0.447917 +vt 0.450116 0.454861 +vt 0.452436 0.472222 +vt 0.450116 0.468750 +vt 0.450116 0.489583 +vt 0.452436 0.493056 +vt 0.450116 0.496528 +vt 0.452436 0.513889 +vt 0.450116 0.510417 +vt 0.450116 0.531250 +vt 0.452436 0.534722 +vt 0.450116 0.538194 +vt 0.452436 0.555556 +vt 0.450116 0.552083 +vt 0.450116 0.572917 +vt 0.452436 0.576389 +vt 0.450116 0.593750 +vt 0.452436 0.597222 +vt 0.450116 0.600694 +vt 0.452436 0.618056 +vt 0.450116 0.614583 +vt 0.450116 0.621528 +vt 0.452436 0.638889 +vt 0.450116 0.635417 +vt 0.450116 0.656250 +vt 0.452436 0.659722 +vt 0.531965 0.697845 +vt 0.536912 0.672200 +vt 0.551752 0.697844 +vt 0.649652 0.434028 +vt 0.647332 0.409722 +vt 0.649652 0.413194 +vt 0.649652 0.461806 +vt 0.647332 0.437500 +vt 0.649652 0.440972 +vt 0.649652 0.468750 +vt 0.647332 0.493056 +vt 0.647332 0.465278 +vt 0.649652 0.517361 +vt 0.649652 0.496528 +vt 0.649652 0.545139 +vt 0.647332 0.520833 +vt 0.649652 0.524306 +vt 0.649652 0.552083 +vt 0.647332 0.576389 +vt 0.647332 0.548611 +vt 0.649652 0.600694 +vt 0.649652 0.579861 +vt 0.649652 0.628472 +vt 0.647332 0.604167 +vt 0.649652 0.607639 +vt 0.649652 0.656250 +vt 0.647332 0.631944 +vt 0.649652 0.635417 +vt 0.649652 0.684028 +vt 0.647332 0.659722 +vt 0.649652 0.663194 +vt 0.649652 0.711806 +vt 0.647332 0.687500 +vt 0.649652 0.690972 +vt 0.649652 0.739583 +vt 0.647332 0.715278 +vt 0.649652 0.718750 +vt 0.528938 0.419586 +vt 0.528938 0.462778 +vt 0.516441 0.484374 +vt 0.432736 0.190963 +vt 0.435062 0.188080 +vt 0.435062 0.207770 +vt 0.429234 0.305556 +vt 0.424594 0.347222 +vt 0.410673 0.333333 +vt 0.424594 0.284722 +vt 0.410673 0.270833 +vt 0.415313 0.229167 +vt 0.446725 0.190813 +vt 0.447713 0.197945 +vt 0.440973 0.197945 +vt 0.487239 0.284722 +vt 0.484919 0.263889 +vt 0.487239 0.263889 +vt 0.450116 0.284722 +vt 0.431555 0.263889 +vt 0.450116 0.263889 +vt 0.459397 0.284722 +vt 0.452436 0.263889 +vt 0.459397 0.263889 +vt 0.482599 0.284722 +vt 0.464037 0.263889 +vt 0.482599 0.263889 +vt 0.461717 0.284722 +vt 0.459397 0.305556 +vt 0.494200 0.305556 +vt 0.487239 0.326389 +vt 0.487239 0.305556 +vt 0.494200 0.284722 +vt 0.468677 0.298611 +vt 0.464037 0.284722 +vt 0.436195 0.298611 +vt 0.431555 0.284722 +vt 0.484919 0.305556 +vt 0.484919 0.284722 +vt 0.477958 0.298611 +vt 0.464037 0.312500 +vt 0.452436 0.305556 +vt 0.452436 0.284722 +vt 0.461717 0.263889 +vt 0.494200 0.263889 +vt 0.494200 0.326389 +vt 0.487239 0.333333 +vt 0.484919 0.326389 +vt 0.445476 0.298611 +vt 0.431555 0.312500 +vt 0.461717 0.305556 +vt 0.459397 0.326389 +vt 0.452436 0.326389 +vt 0.461717 0.326389 +vt 0.459397 0.333333 +vt 0.452436 0.333333 +vt 0.450116 0.312500 +vt 0.431555 0.319444 +vt 0.482599 0.312500 +vt 0.464037 0.319444 +vt 0.431555 0.354167 +vt 0.450116 0.354167 +vt 0.452436 0.368056 +vt 0.438515 0.402778 +vt 0.447796 0.381944 +vt 0.447796 0.402778 +vt 0.477958 0.368056 +vt 0.468677 0.368056 +vt 0.464037 0.354167 +vt 0.454756 0.402778 +vt 0.431555 0.381944 +vt 0.438515 0.381944 +vt 0.494200 0.333333 +vt 0.487239 0.368056 +vt 0.526682 0.256944 +vt 0.508121 0.229167 +vt 0.526682 0.229167 +vt 0.526682 0.263889 +vt 0.524362 0.284722 +vt 0.524362 0.263889 +vt 0.515081 0.263889 +vt 0.496520 0.284722 +vt 0.496520 0.263889 +vt 0.559165 0.263889 +vt 0.552204 0.284722 +vt 0.552204 0.263889 +vt 0.547564 0.263889 +vt 0.529002 0.284722 +vt 0.529002 0.263889 +vt 0.529002 0.229167 +vt 0.547564 0.250000 +vt 0.529002 0.250000 +vt 0.552204 0.305556 +vt 0.549884 0.284722 +vt 0.524362 0.326389 +vt 0.517401 0.305556 +vt 0.524362 0.305556 +vt 0.517401 0.284722 +vt 0.542923 0.298611 +vt 0.547564 0.284722 +vt 0.510441 0.298611 +vt 0.515081 0.284722 +vt 0.526682 0.305556 +vt 0.526682 0.284722 +vt 0.547564 0.312500 +vt 0.533643 0.298611 +vt 0.559165 0.305556 +vt 0.559165 0.284722 +vt 0.547564 0.256944 +vt 0.529002 0.256944 +vt 0.549884 0.263889 +vt 0.517401 0.263889 +vt 0.524362 0.333333 +vt 0.517401 0.326389 +vt 0.526682 0.326389 +vt 0.515081 0.312500 +vt 0.501160 0.298611 +vt 0.552204 0.326389 +vt 0.549884 0.305556 +vt 0.559165 0.326389 +vt 0.552204 0.333333 +vt 0.549884 0.326389 +vt 0.559165 0.333333 +vt 0.515081 0.319444 +vt 0.496520 0.312500 +vt 0.547564 0.319444 +vt 0.529002 0.312500 +vt 0.510441 0.368056 +vt 0.501160 0.368056 +vt 0.496520 0.354167 +vt 0.559165 0.368056 +vt 0.491879 0.402778 +vt 0.482599 0.381944 +vt 0.491879 0.381944 +vt 0.529002 0.354167 +vt 0.529002 0.319444 +vt 0.547564 0.354167 +vt 0.498840 0.381944 +vt 0.475638 0.402778 +vt 0.482599 0.402778 +vt 0.524362 0.368056 +vt 0.517401 0.333333 +vt 0.452436 0.409722 +vt 0.450116 0.475694 +vt 0.450116 0.517361 +vt 0.450116 0.559028 +vt 0.450116 0.579861 +vt 0.450116 0.642361 +vt 0.541859 0.668232 +vt 0.546806 0.672200 +vt 0.550427 0.683038 +vt 0.550427 0.712651 +vt 0.546806 0.723489 +vt 0.541859 0.727457 +vt 0.536912 0.723489 +vt 0.533291 0.712651 +vt 0.533291 0.683038 +vt 0.649652 0.489583 +vt 0.649652 0.572917 +vt 0.647332 0.743056 +vt 0.503943 0.419586 +vt 0.509225 0.403776 +vt 0.516441 0.397990 +vt 0.523656 0.403776 +vt 0.530872 0.441182 +vt 0.523656 0.478588 +vt 0.509225 0.478588 +vt 0.503943 0.462778 +vt 0.502010 0.441182 +vt 0.437388 0.190963 +vt 0.438351 0.197925 +vt 0.437388 0.204886 +vt 0.432736 0.204886 +vt 0.431772 0.197925 +vt 0.415313 0.291667 +vt 0.424594 0.291667 +vt 0.429234 0.333333 +vt 0.415313 0.347222 +vt 0.410673 0.305556 +vt 0.424594 0.229167 +vt 0.429234 0.243056 +vt 0.429234 0.270833 +vt 0.415313 0.284722 +vt 0.410673 0.243056 +vt 0.446725 0.205077 +vt 0.444343 0.208031 +vt 0.441960 0.205077 +vt 0.441960 0.190813 +vt 0.444343 0.187858 +vt 0.450116 0.319444 +vt 0.482599 0.319444 +vt 0.445476 0.368056 +vt 0.436195 0.368056 +vt 0.459397 0.368056 +vt 0.482599 0.354167 +vt 0.454756 0.381944 +vt 0.431555 0.402778 +vt 0.494200 0.368056 +vt 0.508121 0.256944 +vt 0.547564 0.229167 +vt 0.496520 0.319444 +vt 0.515081 0.354167 +vt 0.552204 0.368056 +vt 0.542923 0.368056 +vt 0.533643 0.368056 +vt 0.498840 0.402778 +vt 0.475638 0.381944 +vt 0.517401 0.368056 +vt 0.624130 0.437500 +vt 0.624130 0.409722 +vt 0.624130 0.465278 +vt 0.624130 0.493056 +vt 0.624130 0.520833 +vt 0.624130 0.548611 +vt 0.624130 0.576389 +vt 0.624130 0.604167 +vt 0.624130 0.631944 +vt 0.624130 0.659722 +vt 0.624130 0.687500 +vt 0.993039 0.298611 +vt 0.997680 0.326389 +vt 0.993039 0.326389 +vt 0.624130 0.715278 +vt 0.624130 0.743056 +vt 0.577726 0.555556 +vt 0.575406 0.604167 +vt 0.501160 0.590278 +vt 0.575406 0.590278 +vt 0.577726 0.527778 +vt 0.577726 0.500000 +vt 0.577726 0.722222 +vt 0.577726 0.430556 +vt 0.577726 0.416667 +vt 0.577726 0.472222 +vt 0.577726 0.694444 +vt 0.577726 0.444444 +vt 0.577726 0.666667 +vt 0.577726 0.638889 +vt 0.577726 0.611111 +vt 0.577726 0.583333 +vt 0.498840 0.427083 +vt 0.461717 0.409722 +vt 0.498840 0.413194 +vt 0.575406 0.562500 +vt 0.501160 0.548611 +vt 0.575406 0.548611 +vt 0.575406 0.659722 +vt 0.501160 0.645833 +vt 0.575406 0.645833 +vt 0.575406 0.520833 +vt 0.501160 0.506944 +vt 0.575406 0.506944 +vt 0.575406 0.618056 +vt 0.501160 0.604167 +vt 0.575406 0.576389 +vt 0.501160 0.562500 +vt 0.575406 0.534722 +vt 0.501160 0.520833 +vt 0.575406 0.631944 +vt 0.501160 0.618056 +vt 0.501160 0.576389 +vt 0.501160 0.534722 +vt 0.501160 0.631944 +vt 0.575406 0.493056 +vt 0.501160 0.493056 +vt 0.461717 0.638889 +vt 0.461717 0.618056 +vt 0.498840 0.569444 +vt 0.461717 0.555556 +vt 0.498840 0.555556 +vt 0.498840 0.496528 +vt 0.461717 0.513889 +vt 0.461717 0.493056 +vt 0.498840 0.642361 +vt 0.461717 0.659722 +vt 0.498840 0.447917 +vt 0.461717 0.430556 +vt 0.498840 0.434028 +vt 0.498840 0.593750 +vt 0.461717 0.576389 +vt 0.498840 0.579861 +vt 0.498840 0.531250 +vt 0.498840 0.517361 +vt 0.498840 0.468750 +vt 0.461717 0.451389 +vt 0.498840 0.454861 +vt 0.498840 0.600694 +vt 0.461717 0.597222 +vt 0.498840 0.552083 +vt 0.461717 0.534722 +vt 0.498840 0.538194 +vt 0.498840 0.479167 +vt 0.461717 0.472222 +vt 0.498840 0.635417 +vt 0.498840 0.621528 +vt 0.445476 0.475694 +vt 0.445476 0.621528 +vt 0.445476 0.427083 +vt 0.445476 0.413194 +vt 0.445476 0.559028 +vt 0.445476 0.510417 +vt 0.445476 0.496528 +vt 0.445476 0.642361 +vt 0.445476 0.447917 +vt 0.445476 0.434028 +vt 0.445476 0.593750 +vt 0.445476 0.579861 +vt 0.445476 0.517361 +vt 0.445476 0.454861 +vt 0.445476 0.614583 +vt 0.445476 0.600694 +vt 0.445476 0.552083 +vt 0.445476 0.538194 +vt 0.993039 0.215278 +vt 0.997680 0.243056 +vt 0.993039 0.243056 +vt 0.993039 0.409722 +vt 0.997680 0.437500 +vt 0.993039 0.437500 +vt 0.993039 0.131944 +vt 0.997680 0.159722 +vt 0.993039 0.159722 +vt 0.997680 0.354167 +vt 0.993039 0.354167 +vt 0.997680 0.270833 +vt 0.993039 0.270833 +vt 0.997680 0.187500 +vt 0.993039 0.187500 +vt 0.997680 0.381944 +vt 0.993039 0.381944 +vt 0.997680 0.298611 +vt 0.997680 0.215278 +vt 0.997680 0.409722 +vt 0.993039 0.104167 +vt 0.997680 0.131944 +vt 0.431555 0.180556 +vt 0.429234 0.166667 +vt 0.431555 0.166667 +vt 0.447796 0.180556 +vt 0.445476 0.166667 +vt 0.447796 0.166667 +vt 0.443155 0.180556 +vt 0.443155 0.166667 +vt 0.440835 0.166667 +vt 0.440835 0.180556 +vt 0.438515 0.166667 +vt 0.436195 0.180556 +vt 0.436195 0.166667 +vt 0.433875 0.166667 +vt 0.433875 0.180556 +vt 0.477958 0.250000 +vt 0.487239 0.222222 +vt 0.487239 0.250000 +vt 0.459397 0.250000 +vt 0.468677 0.222222 +vt 0.468677 0.250000 +vt 0.450116 0.222222 +vt 0.440835 0.250000 +vt 0.440835 0.222222 +vt 0.431555 0.222222 +vt 0.431555 0.250000 +vt 0.459397 0.222222 +vt 0.496520 0.250000 +vt 0.496520 0.222222 +vt 0.505800 0.222222 +vt 0.505800 0.250000 +vt 0.488399 0.215278 +vt 0.477958 0.215278 +vt 0.477958 0.222222 +vt 0.469838 0.215278 +vt 0.459397 0.215278 +vt 0.458237 0.215278 +vt 0.440835 0.215278 +vt 0.432715 0.215278 +vt 0.496520 0.215278 +vt 0.439675 0.256944 +vt 0.450116 0.256944 +vt 0.450116 0.250000 +vt 0.458237 0.256944 +vt 0.468677 0.256944 +vt 0.476798 0.256944 +vt 0.487239 0.256944 +vt 0.488399 0.256944 +vt 0.505800 0.256944 +vt 0.445476 0.159722 +vt 0.443155 0.145833 +vt 0.445476 0.145833 +vt 0.440835 0.159722 +vt 0.440835 0.145833 +vt 0.438515 0.145833 +vt 0.438515 0.159722 +vt 0.436195 0.145833 +vt 0.436195 0.159722 +vt 0.433875 0.145833 +vt 0.431555 0.159722 +vt 0.431555 0.145833 +vt 0.429234 0.145833 +vt 0.447796 0.159722 +vt 0.447796 0.145833 +vt 0.577726 0.569444 +vt 0.577726 0.541667 +vt 0.577726 0.513889 +vt 0.577726 0.736111 +vt 0.577726 0.486111 +vt 0.577726 0.708333 +vt 0.577726 0.458333 +vt 0.577726 0.680556 +vt 0.577726 0.652778 +vt 0.577726 0.625000 +vt 0.577726 0.597222 +vt 0.501160 0.659722 +vt 0.498840 0.510417 +vt 0.498840 0.656250 +vt 0.498840 0.614583 +vt 0.498840 0.493056 +vt 0.445476 0.489583 +vt 0.445476 0.635417 +vt 0.445476 0.572917 +vt 0.445476 0.656250 +vt 0.445476 0.531250 +vt 0.445476 0.468750 +vt 0.997680 0.104167 +vt 0.429234 0.180556 +vt 0.445476 0.180556 +vt 0.438515 0.180556 +vt 0.495360 0.215278 +vt 0.487239 0.215278 +vt 0.476798 0.215278 +vt 0.468677 0.215278 +vt 0.451276 0.215278 +vt 0.450116 0.215278 +vt 0.439675 0.215278 +vt 0.505800 0.215278 +vt 0.432715 0.256944 +vt 0.440835 0.256944 +vt 0.451276 0.256944 +vt 0.459397 0.256944 +vt 0.469838 0.256944 +vt 0.477958 0.256944 +vt 0.495360 0.256944 +vt 0.496520 0.256944 +vt 0.443155 0.159722 +vt 0.433875 0.159722 +vt 0.429234 0.159722 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 0.5000 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.0000 0.9818 -0.1897 +vn -0.4909 0.8503 -0.1897 +vn -0.8503 0.4909 -0.1897 +vn -0.9818 0.0000 -0.1897 +vn -0.0000 -0.9818 -0.1897 +vn 0.4909 -0.8503 -0.1897 +vn -0.4909 -0.8503 -0.1897 +vn -0.8503 -0.4909 -0.1897 +vn 0.8503 -0.4909 -0.1897 +vn 0.9818 -0.0000 -0.1897 +vn 0.8503 0.4909 -0.1897 +vn 0.4909 0.8503 -0.1897 +vn -0.4964 -0.8598 0.1199 +vn -0.0000 -0.9928 0.1199 +vn 0.8598 0.4964 0.1199 +vn 0.4964 0.8598 0.1199 +vn -0.8598 0.4964 0.1199 +vn -0.4964 0.8598 0.1199 +vn 0.4964 -0.8598 0.1199 +vn -0.8598 -0.4964 0.1199 +vn 0.9928 0.0000 0.1199 +vn -0.0000 0.9928 0.1199 +vn -0.9928 0.0000 0.1199 +vn 0.8598 -0.4964 0.1199 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn -0.9239 0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.6635 -0.3458 -0.6635 +vn -0.2418 -0.6861 -0.6861 +vn -0.6861 -0.2418 -0.6861 +vn -0.6635 0.3458 -0.6635 +vn -0.6861 0.2418 -0.6861 +vn -0.3458 0.6635 -0.6635 +vn -0.2418 0.6861 -0.6861 +vn 0.3458 0.6635 -0.6635 +vn 0.2418 0.6861 -0.6861 +vn 0.6861 0.2418 -0.6861 +vn 0.6635 -0.3458 -0.6635 +vn 0.6861 -0.2418 -0.6861 +vn 0.3458 -0.6635 -0.6635 +vn 0.2418 -0.6861 -0.6861 +vn -0.3458 -0.6635 -0.6635 +vn 0.6635 -0.3458 0.6635 +vn 0.2418 -0.6861 0.6861 +vn 0.6861 -0.2418 0.6861 +vn 0.6635 0.3458 0.6635 +vn 0.6861 0.2418 0.6861 +vn 0.3458 0.6635 0.6635 +vn 0.2418 0.6861 0.6861 +vn -0.3458 0.6635 0.6635 +vn -0.2418 0.6861 0.6861 +vn -0.6635 0.3458 0.6635 +vn -0.6861 0.2418 0.6861 +vn -0.6635 -0.3458 0.6635 +vn -0.6861 -0.2418 0.6861 +vn -0.2418 -0.6861 0.6861 +vn 0.3458 -0.6635 0.6635 +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.6635 0.3458 -0.6635 +vn -0.3458 -0.6635 0.6635 +s off +f 1374/2141/286 1375/2142/286 1376/2143/286 +f 1376/2144/286 1377/2145/286 1378/2146/286 +f 1378/2147/286 1379/2148/286 1380/2149/286 +f 1381/2150/286 1379/2148/286 1382/2151/286 +f 1381/2152/286 1383/2153/286 1384/2154/286 +f 1385/2155/286 1383/2153/286 1386/2156/286 +f 1385/2157/286 1387/2158/286 1388/2159/286 +f 1389/2160/286 1387/2158/286 1390/2161/286 +f 1391/2162/286 1390/2161/286 1392/2163/286 +f 1391/2164/286 1393/2165/286 1394/2166/286 +f 1394/2167/286 1395/2168/286 1396/2169/286 +f 1374/2170/286 1395/2168/286 1397/2171/286 +f 1398/2172/286 1399/2173/286 1400/2174/286 +f 1401/2175/287 1402/2176/287 1403/2177/287 +f 1404/2178/287 1405/2179/287 1401/2180/287 +f 1404/2181/287 1406/2182/287 1407/2183/287 +f 1408/2184/287 1406/2182/287 1409/2185/287 +f 1410/2186/287 1411/2187/287 1408/2188/287 +f 1410/2189/287 1412/2190/287 1413/2191/287 +f 1414/2192/287 1412/2190/287 1415/2193/287 +f 1416/2194/287 1417/2195/287 1414/2196/287 +f 1418/2197/287 1419/2198/287 1416/2199/287 +f 1420/2200/287 1421/2201/287 1418/2202/287 +f 1422/2203/287 1423/2204/287 1420/2205/287 +f 1403/2206/287 1424/2207/287 1422/2208/287 +f 1425/2209/287 1426/2210/287 1427/2211/287 +f 1428/2212/288 1429/2213/288 1430/2214/288 +f 1431/2215/286 1432/2216/286 1433/2217/286 +f 1434/2218/287 1435/2219/287 1436/2220/287 +f 1437/2221/289 1438/2222/289 1439/2223/289 +f 1440/2224/290 1441/2225/290 1442/2226/290 +f 1443/2227/287 1444/2228/287 1441/2229/287 +f 1445/2230/288 1446/2231/288 1447/2232/288 +f 1448/2233/286 1449/2234/286 1446/2235/286 +f 1450/2236/291 1451/2237/291 1445/2230/291 +f 1452/2238/292 1453/2239/292 1454/2240/292 +f 1455/2241/293 1454/2240/293 1440/2224/293 +f 1448/2233/286 1452/2242/286 1455/2243/286 +f 1443/2227/287 1456/2244/287 1450/2245/287 +f 1440/2224/293 1457/2246/293 1443/2247/293 +f 1458/2248/286 1459/2249/286 1452/2242/286 +f 1445/2230/291 1458/2250/291 1448/2251/291 +f 1450/2236/288 1447/2232/288 1444/2252/288 +f 1455/2241/290 1442/2226/290 1449/2253/290 +f 1459/2254/290 1460/2255/290 1453/2239/290 +f 1453/2239/290 1460/2255/290 1461/2256/290 +f 1457/2257/287 1462/2258/287 1456/2244/287 +f 1456/2259/294 1463/2260/294 1451/2237/294 +f 1451/2237/294 1464/2261/294 1458/2250/294 +f 1454/2240/292 1461/2256/292 1457/2246/292 +f 1463/2260/288 1462/2262/288 1465/2263/288 +f 1463/2260/288 1466/2264/288 1464/2261/288 +f 1461/2265/295 1465/2266/295 1462/2258/295 +f 1464/2267/286 1467/2268/286 1459/2249/286 +f 1468/2269/287 1465/2266/287 1469/2270/287 +f 1465/2263/288 1470/2271/288 1466/2264/288 +f 1471/2272/289 1472/2273/289 1473/2274/289 +f 1472/2275/286 1474/2276/286 1475/2277/286 +f 1472/2273/291 1468/2278/291 1473/2274/291 +f 1471/2272/293 1475/2279/293 1474/2280/293 +f 1467/2281/290 1469/2282/290 1460/2255/290 +f 1446/2283/296 1441/2284/296 1444/2285/296 +f 1476/2286/290 1477/2287/290 1478/2288/290 +f 1479/2289/286 1480/2290/286 1476/2291/286 +f 1481/2292/288 1482/2293/288 1483/2294/288 +f 1484/2295/287 1485/2296/287 1481/2297/287 +f 1484/2298/296 1483/2299/296 1478/2300/296 +f 1486/2301/291 1487/2302/291 1482/2293/291 +f 1488/2303/292 1489/2304/292 1490/2305/292 +f 1490/2305/293 1491/2306/293 1477/2287/293 +f 1489/2307/287 1485/2296/287 1491/2308/287 +f 1492/2309/286 1480/2290/286 1487/2310/286 +f 1493/2311/293 1477/2287/293 1480/2312/293 +f 1494/2313/287 1495/2314/287 1489/2307/287 +f 1495/2315/291 1482/2293/291 1485/2316/291 +f 1478/2300/296 1479/2317/296 1476/2318/296 +f 1483/2294/288 1487/2302/288 1479/2319/288 +f 1478/2288/290 1491/2306/290 1484/2320/290 +f 1496/2321/290 1494/2322/290 1488/2303/290 +f 1488/2303/290 1497/2323/290 1496/2321/290 +f 1498/2324/286 1493/2325/286 1492/2309/286 +f 1499/2326/294 1492/2327/294 1486/2301/294 +f 1500/2328/294 1486/2301/294 1495/2315/294 +f 1497/2323/292 1490/2305/292 1493/2311/292 +f 1499/2326/288 1501/2329/288 1498/2330/288 +f 1502/2331/288 1499/2326/288 1500/2328/288 +f 1501/2332/297 1497/2333/297 1498/2324/297 +f 1503/2334/287 1500/2335/287 1494/2313/287 +f 1504/2336/286 1505/2337/286 1506/2338/286 +f 1507/2339/288 1501/2329/288 1502/2331/288 +f 1508/2340/289 1505/2341/289 1504/2342/289 +f 1507/2343/287 1502/2344/287 1509/2345/287 +f 1510/2346/291 1508/2340/291 1504/2342/291 +f 1509/2347/293 1505/2341/293 1511/2348/293 +f 1506/2349/290 1503/2350/290 1496/2321/290 +f 1374/2141/286 1397/2351/286 1375/2142/286 +f 1376/2144/286 1375/2142/286 1377/2145/286 +f 1378/2147/286 1377/2145/286 1379/2148/286 +f 1381/2150/286 1380/2352/286 1379/2148/286 +f 1381/2152/286 1382/2151/286 1383/2153/286 +f 1385/2155/286 1384/2353/286 1383/2153/286 +f 1385/2157/286 1386/2156/286 1387/2158/286 +f 1389/2160/286 1388/2354/286 1387/2158/286 +f 1391/2162/286 1389/2355/286 1390/2161/286 +f 1391/2164/286 1392/2163/286 1393/2165/286 +f 1394/2167/286 1393/2165/286 1395/2168/286 +f 1374/2170/286 1396/2356/286 1395/2168/286 +f 1399/2173/286 1512/2357/286 1400/2174/286 +f 1512/2357/286 1513/2358/286 1400/2174/286 +f 1513/2358/286 1514/2359/286 1400/2174/286 +f 1400/2174/286 1515/2360/286 1516/2361/286 +f 1516/2361/286 1517/2362/286 1518/2363/286 +f 1518/2363/286 1519/2364/286 1398/2172/286 +f 1398/2172/286 1520/2365/286 1399/2173/286 +f 1400/2174/286 1516/2361/286 1518/2363/286 +f 1518/2363/286 1398/2172/286 1400/2174/286 +f 1401/2175/287 1405/2179/287 1402/2176/287 +f 1404/2178/287 1407/2183/287 1405/2179/287 +f 1404/2181/287 1409/2366/287 1406/2182/287 +f 1408/2184/287 1411/2187/287 1406/2182/287 +f 1410/2186/287 1413/2191/287 1411/2187/287 +f 1410/2189/287 1415/2367/287 1412/2190/287 +f 1414/2192/287 1417/2195/287 1412/2190/287 +f 1416/2194/287 1419/2198/287 1417/2195/287 +f 1418/2197/287 1421/2201/287 1419/2198/287 +f 1420/2200/287 1423/2204/287 1421/2201/287 +f 1422/2203/287 1424/2207/287 1423/2204/287 +f 1403/2206/287 1402/2368/287 1424/2207/287 +f 1521/2369/287 1522/2370/287 1523/2371/287 +f 1523/2371/287 1524/2372/287 1425/2209/287 +f 1425/2209/287 1525/2373/287 1426/2210/287 +f 1426/2210/287 1526/2374/287 1427/2211/287 +f 1427/2211/287 1527/2375/287 1528/2376/287 +f 1528/2376/287 1529/2377/287 1427/2211/287 +f 1529/2377/287 1521/2369/287 1427/2211/287 +f 1521/2369/287 1523/2371/287 1427/2211/287 +f 1523/2371/287 1425/2209/287 1427/2211/287 +f 1429/2213/288 1530/2378/288 1430/2214/288 +f 1530/2378/288 1531/2379/288 1430/2214/288 +f 1531/2379/288 1532/2380/288 1430/2214/288 +f 1430/2214/288 1533/2381/288 1534/2382/288 +f 1534/2382/288 1428/2212/288 1430/2214/288 +f 1535/2383/286 1536/2384/286 1431/2215/286 +f 1431/2215/286 1537/2385/286 1432/2216/286 +f 1432/2216/286 1538/2386/286 1433/2217/286 +f 1433/2217/286 1539/2387/286 1535/2383/286 +f 1535/2383/286 1431/2215/286 1433/2217/286 +f 1436/2220/287 1540/2388/287 1541/2389/287 +f 1541/2389/287 1542/2390/287 1436/2220/287 +f 1542/2390/287 1434/2218/287 1436/2220/287 +f 1434/2218/287 1543/2391/287 1435/2219/287 +f 1435/2219/287 1544/2392/287 1436/2220/287 +f 1438/2222/289 1545/2393/289 1439/2223/289 +f 1545/2393/289 1546/2394/289 1439/2223/289 +f 1546/2394/289 1547/2395/289 1439/2223/289 +f 1439/2223/289 1548/2396/289 1549/2397/289 +f 1549/2397/289 1437/2221/289 1439/2223/289 +f 1440/2224/290 1443/2247/290 1441/2225/290 +f 1443/2227/287 1450/2245/287 1444/2228/287 +f 1445/2230/288 1448/2251/288 1446/2231/288 +f 1448/2233/286 1455/2243/286 1449/2234/286 +f 1450/2236/291 1456/2259/291 1451/2237/291 +f 1452/2238/292 1459/2254/292 1453/2239/292 +f 1455/2241/293 1452/2238/293 1454/2240/293 +f 1448/2233/286 1458/2248/286 1452/2242/286 +f 1443/2227/287 1457/2257/287 1456/2244/287 +f 1440/2224/293 1454/2240/293 1457/2246/293 +f 1458/2248/286 1464/2267/286 1459/2249/286 +f 1445/2230/291 1451/2237/291 1458/2250/291 +f 1450/2236/288 1445/2230/288 1447/2232/288 +f 1455/2241/290 1440/2224/290 1442/2226/290 +f 1459/2254/290 1467/2281/290 1460/2255/290 +f 1457/2257/287 1461/2265/287 1462/2258/287 +f 1456/2259/294 1462/2262/294 1463/2260/294 +f 1451/2237/294 1463/2260/294 1464/2261/294 +f 1454/2240/292 1453/2239/292 1461/2256/292 +f 1463/2260/288 1465/2263/288 1466/2264/288 +f 1461/2265/295 1460/2398/295 1465/2266/295 +f 1464/2267/286 1466/2399/286 1467/2268/286 +f 1465/2266/287 1460/2398/287 1469/2270/287 +f 1469/2270/287 1471/2400/287 1473/2401/287 +f 1473/2401/287 1468/2269/287 1469/2270/287 +f 1465/2263/288 1468/2402/288 1470/2271/288 +f 1471/2272/289 1474/2280/289 1472/2273/289 +f 1475/2277/286 1467/2268/286 1466/2399/286 +f 1466/2399/286 1470/2403/286 1475/2277/286 +f 1470/2403/286 1472/2275/286 1475/2277/286 +f 1472/2273/291 1470/2404/291 1468/2278/291 +f 1471/2272/293 1469/2405/293 1475/2279/293 +f 1467/2281/290 1475/2406/290 1469/2282/290 +f 1446/2283/296 1449/2407/296 1441/2284/296 +f 1476/2286/290 1480/2312/290 1477/2287/290 +f 1479/2289/286 1487/2310/286 1480/2290/286 +f 1481/2292/288 1485/2316/288 1482/2293/288 +f 1484/2295/287 1491/2308/287 1485/2296/287 +f 1484/2298/296 1481/2408/296 1483/2299/296 +f 1486/2301/291 1492/2327/291 1487/2302/291 +f 1488/2303/292 1494/2322/292 1489/2304/292 +f 1490/2305/293 1489/2304/293 1491/2306/293 +f 1489/2307/287 1495/2314/287 1485/2296/287 +f 1492/2309/286 1493/2325/286 1480/2290/286 +f 1493/2311/293 1490/2305/293 1477/2287/293 +f 1494/2313/287 1500/2335/287 1495/2314/287 +f 1495/2315/291 1486/2301/291 1482/2293/291 +f 1478/2300/296 1483/2299/296 1479/2317/296 +f 1483/2294/288 1482/2293/288 1487/2302/288 +f 1478/2288/290 1477/2287/290 1491/2306/290 +f 1496/2321/290 1503/2350/290 1494/2322/290 +f 1498/2324/286 1497/2333/286 1493/2325/286 +f 1499/2326/294 1498/2330/294 1492/2327/294 +f 1500/2328/294 1499/2326/294 1486/2301/294 +f 1497/2323/292 1488/2303/292 1490/2305/292 +f 1502/2331/288 1501/2329/288 1499/2326/288 +f 1501/2332/297 1496/2409/297 1497/2333/297 +f 1503/2334/287 1502/2344/287 1500/2335/287 +f 1506/2338/286 1496/2409/286 1501/2332/286 +f 1501/2332/286 1510/2410/286 1506/2338/286 +f 1510/2410/286 1504/2336/286 1506/2338/286 +f 1507/2339/288 1510/2411/288 1501/2329/288 +f 1508/2340/289 1511/2348/289 1505/2341/289 +f 1502/2344/287 1503/2334/287 1509/2345/287 +f 1509/2345/287 1511/2412/287 1508/2413/287 +f 1508/2413/287 1507/2343/287 1509/2345/287 +f 1510/2346/291 1507/2414/291 1508/2340/291 +f 1509/2347/293 1506/2415/293 1505/2341/293 +f 1506/2349/290 1509/2416/290 1503/2350/290 +s 1 +f 1402/2176/296 1550/2417/298 1551/2418/296 +f 1405/2179/298 1552/2419/299 1550/2417/298 +f 1552/2419/299 1406/2182/288 1553/2420/288 +f 1553/2420/288 1411/2187/300 1554/2421/300 +f 1411/2187/300 1555/2422/301 1554/2421/300 +f 1413/2191/301 1556/2423/289 1555/2422/301 +f 1412/2190/289 1557/2424/302 1556/2423/289 +f 1417/2195/302 1558/2425/303 1557/2424/302 +f 1419/2198/303 1559/2426/290 1558/2425/303 +f 1421/2201/290 1560/2427/304 1559/2426/290 +f 1414/2428/298 1426/2429/299 1416/2430/299 +f 1560/2427/304 1424/2207/305 1561/2431/305 +f 1424/2207/305 1551/2432/296 1561/2431/305 +f 1556/2423/306 1562/2433/307 1555/2422/307 +f 1563/2434/303 1564/2435/302 1565/2436/302 +f 1555/2422/307 1566/2437/308 1554/2421/308 +f 1554/2421/308 1567/2438/309 1553/2420/309 +f 1551/2432/310 1568/2439/311 1561/2431/311 +f 1551/2418/310 1569/2440/312 1570/2441/310 +f 1553/2420/309 1571/2442/313 1552/2419/313 +f 1561/2431/311 1572/2443/314 1560/2427/314 +f 1552/2419/313 1569/2444/312 1550/2417/312 +f 1560/2427/314 1573/2445/315 1559/2426/315 +f 1559/2426/315 1563/2446/316 1558/2425/316 +f 1558/2425/316 1565/2447/317 1557/2424/317 +f 1557/2424/317 1574/2448/306 1556/2423/306 +f 1575/2449/318 1576/2450/319 1577/2451/319 +f 1562/2452/301 1578/2453/300 1566/2454/300 +f 1570/2455/296 1579/2456/305 1568/2457/305 +f 1571/2458/299 1575/2459/298 1569/2460/298 +f 1573/2461/290 1580/2462/303 1563/2434/303 +f 1574/2463/289 1581/2464/301 1562/2452/301 +f 1567/2465/288 1582/2466/299 1571/2458/299 +f 1572/2467/304 1583/2468/290 1573/2461/290 +f 1574/2463/289 1564/2435/302 1584/2469/289 +f 1567/2465/288 1578/2453/300 1585/2470/288 +f 1568/2457/305 1586/2471/304 1572/2467/304 +f 1570/2472/296 1575/2459/298 1577/2473/296 +f 1587/2474/305 1393/2165/304 1588/2475/304 +f 1580/2476/320 1589/2477/321 1564/2478/321 +f 1578/2479/322 1590/2480/323 1591/2481/322 +f 1579/2482/324 1576/2483/319 1587/2474/324 +f 1582/2484/325 1592/2485/318 1575/2486/318 +f 1583/2487/326 1593/2488/320 1580/2489/320 +f 1584/2490/327 1590/2480/323 1581/2491/323 +f 1585/2492/328 1594/2493/325 1582/2494/325 +f 1583/2495/326 1588/2475/329 1595/2496/326 +f 1564/2497/321 1596/2498/327 1584/2499/327 +f 1585/2500/328 1591/2481/322 1597/2501/328 +f 1579/2502/324 1588/2475/329 1586/2503/329 +f 1381/2150/304 1400/2504/290 1380/2352/290 +f 1592/2485/298 1397/2351/296 1576/2450/296 +f 1593/2488/303 1387/2158/302 1589/2477/302 +f 1590/2480/301 1382/2151/300 1591/2481/300 +f 1576/2483/296 1395/2168/305 1587/2474/305 +f 1594/2493/299 1375/2142/298 1592/2485/298 +f 1595/2496/290 1390/2161/303 1593/2488/303 +f 1596/2498/289 1383/2153/301 1590/2480/301 +f 1597/2501/288 1377/2145/299 1594/2493/299 +f 1588/2475/304 1392/2163/290 1595/2496/290 +f 1589/2477/302 1386/2156/289 1596/2498/289 +f 1591/2481/300 1379/2148/288 1597/2501/288 +f 1396/2169/301 1520/2505/300 1394/2167/300 +f 1374/2141/289 1513/2506/302 1512/2507/289 +f 1389/2160/299 1518/2508/298 1388/2354/298 +f 1381/2152/304 1516/2509/305 1515/2510/304 +f 1374/2170/289 1399/2511/301 1396/2356/301 +f 1376/2144/302 1514/2512/303 1513/2513/302 +f 1389/2355/299 1398/2514/288 1519/2515/299 +f 1385/2155/296 1516/2516/305 1384/2353/305 +f 1380/2149/290 1514/2517/303 1378/2147/303 +f 1391/2164/288 1520/2518/300 1398/2519/288 +f 1385/2157/296 1518/2520/298 1517/2521/296 +f 1408/2522/304 1527/2523/305 1410/2524/305 +f 1422/2525/301 1523/2526/289 1403/2527/289 +f 1401/2528/302 1521/2529/303 1404/2530/303 +f 1416/2430/299 1525/2531/288 1418/2532/288 +f 1410/2524/305 1427/2533/296 1415/2534/296 +f 1404/2530/303 1529/2535/290 1409/2536/290 +f 1418/2532/288 1425/2537/300 1420/2538/300 +f 1415/2534/296 1526/2539/298 1414/2428/298 +f 1409/2536/290 1528/2540/304 1408/2522/304 +f 1420/2538/300 1524/2541/301 1422/2525/301 +f 1403/2542/289 1522/2543/302 1401/2528/302 +f 1531/2544/287 1598/2545/330 1599/2546/287 +f 1530/2547/330 1600/2548/296 1598/2549/330 +f 1600/2548/296 1428/2550/331 1601/2551/331 +f 1428/2550/331 1602/2552/286 1601/2551/331 +f 1534/2553/286 1603/2554/297 1602/2552/286 +f 1603/2554/297 1430/2555/289 1604/2556/289 +f 1430/2555/289 1605/2557/295 1604/2556/289 +f 1532/2558/295 1599/2546/287 1605/2557/295 +f 1606/2559/332 1607/2560/333 1608/2561/333 +f 1609/2562/334 1610/2563/335 1611/2564/335 +f 1612/2565/336 1613/2566/337 1614/2567/337 +f 1615/2568/338 1613/2566/337 1616/2569/338 +f 1609/2562/334 1612/2565/336 1617/2570/334 +f 1618/2571/339 1607/2560/333 1619/2572/339 +f 1610/2563/335 1606/2559/332 1611/2564/335 +f 1618/2571/339 1615/2573/338 1616/2574/338 +f 1431/2575/340 1619/2572/341 1607/2560/342 +f 1537/2576/343 1607/2560/342 1620/2577/344 +f 1432/2578/345 1620/2577/344 1610/2563/346 +f 1538/2579/347 1610/2563/346 1617/2570/348 +f 1612/2565/349 1538/2580/347 1617/2570/348 +f 1539/2581/350 1612/2565/349 1614/2567/351 +f 1535/2582/352 1614/2567/351 1615/2568/353 +f 1536/2583/354 1615/2573/353 1619/2572/341 +f 1541/2584/355 1616/2569/356 1613/2566/357 +f 1542/2585/358 1613/2566/357 1621/2586/359 +f 1434/2587/360 1621/2586/359 1609/2562/361 +f 1543/2588/362 1609/2562/361 1611/2564/363 +f 1435/2589/364 1611/2564/363 1606/2559/365 +f 1544/2590/366 1606/2559/365 1608/2561/367 +f 1618/2571/368 1544/2591/366 1608/2561/367 +f 1540/2592/369 1618/2571/368 1616/2574/356 +f 1546/2593/287 1622/2594/370 1623/2595/287 +f 1622/2594/370 1438/2596/288 1624/2597/288 +f 1438/2596/288 1625/2598/371 1624/2597/288 +f 1437/2599/371 1626/2600/286 1625/2598/371 +f 1549/2601/286 1627/2602/372 1626/2600/286 +f 1627/2602/372 1439/2603/290 1628/2604/290 +f 1439/2603/290 1629/2605/373 1628/2604/290 +f 1547/2606/373 1623/2595/287 1629/2607/373 +f 1402/2176/296 1405/2179/298 1550/2417/298 +f 1405/2179/298 1407/2183/299 1552/2419/299 +f 1552/2419/299 1407/2183/299 1406/2182/288 +f 1553/2420/288 1406/2182/288 1411/2187/300 +f 1411/2187/300 1413/2191/301 1555/2422/301 +f 1413/2191/301 1412/2190/289 1556/2423/289 +f 1412/2190/289 1417/2195/302 1557/2424/302 +f 1417/2195/302 1419/2198/303 1558/2425/303 +f 1419/2198/303 1421/2201/290 1559/2426/290 +f 1421/2201/290 1423/2204/304 1560/2427/304 +f 1414/2428/298 1526/2539/298 1426/2429/299 +f 1560/2427/304 1423/2204/304 1424/2207/305 +f 1424/2207/305 1402/2368/296 1551/2432/296 +f 1556/2423/306 1574/2608/306 1562/2433/307 +f 1563/2434/303 1580/2462/303 1564/2435/302 +f 1555/2422/307 1562/2609/307 1566/2437/308 +f 1554/2421/308 1566/2610/308 1567/2438/309 +f 1551/2432/310 1570/2611/310 1568/2439/311 +f 1551/2418/310 1550/2417/312 1569/2440/312 +f 1553/2420/309 1567/2612/309 1571/2442/313 +f 1561/2431/311 1568/2613/311 1572/2443/314 +f 1552/2419/313 1571/2614/313 1569/2444/312 +f 1560/2427/314 1572/2615/314 1573/2445/315 +f 1559/2426/315 1573/2616/315 1563/2446/316 +f 1558/2425/316 1563/2617/316 1565/2447/317 +f 1557/2424/317 1565/2618/317 1574/2448/306 +f 1575/2449/318 1592/2485/318 1576/2450/319 +f 1562/2452/301 1581/2464/301 1578/2453/300 +f 1570/2455/296 1577/2619/296 1579/2456/305 +f 1571/2458/299 1582/2466/299 1575/2459/298 +f 1573/2461/290 1583/2468/290 1580/2462/303 +f 1574/2463/289 1584/2469/289 1581/2464/301 +f 1567/2465/288 1585/2470/288 1582/2466/299 +f 1572/2467/304 1586/2471/304 1583/2468/290 +f 1574/2463/289 1565/2436/302 1564/2435/302 +f 1567/2465/288 1566/2454/300 1578/2453/300 +f 1568/2457/305 1579/2456/305 1586/2471/304 +f 1570/2472/296 1569/2460/298 1575/2459/298 +f 1587/2474/305 1395/2168/305 1393/2165/304 +f 1580/2476/320 1593/2488/320 1589/2477/321 +f 1578/2479/322 1581/2620/323 1590/2480/323 +f 1579/2482/324 1577/2621/319 1576/2483/319 +f 1582/2484/325 1594/2493/325 1592/2485/318 +f 1583/2487/326 1595/2496/326 1593/2488/320 +f 1584/2490/327 1596/2498/327 1590/2480/323 +f 1585/2492/328 1597/2501/328 1594/2493/325 +f 1583/2495/326 1586/2622/329 1588/2475/329 +f 1564/2497/321 1589/2477/321 1596/2498/327 +f 1585/2500/328 1578/2623/322 1591/2481/322 +f 1579/2502/324 1587/2474/324 1588/2475/329 +f 1381/2150/304 1515/2624/304 1400/2504/290 +f 1592/2485/298 1375/2142/298 1397/2351/296 +f 1593/2488/303 1390/2161/303 1387/2158/302 +f 1590/2480/301 1383/2153/301 1382/2151/300 +f 1576/2483/296 1397/2171/296 1395/2168/305 +f 1594/2493/299 1377/2145/299 1375/2142/298 +f 1595/2496/290 1392/2163/290 1390/2161/303 +f 1596/2498/289 1386/2156/289 1383/2153/301 +f 1597/2501/288 1379/2148/288 1377/2145/299 +f 1588/2475/304 1393/2165/304 1392/2163/290 +f 1589/2477/302 1387/2158/302 1386/2156/289 +f 1591/2481/300 1382/2151/300 1379/2148/288 +f 1396/2169/301 1399/2625/301 1520/2505/300 +f 1374/2141/289 1376/2143/302 1513/2506/302 +f 1389/2160/299 1519/2626/299 1518/2508/298 +f 1381/2152/304 1384/2154/305 1516/2509/305 +f 1374/2170/289 1512/2627/289 1399/2511/301 +f 1376/2144/302 1378/2146/303 1514/2512/303 +f 1389/2355/299 1391/2162/288 1398/2514/288 +f 1385/2155/296 1517/2628/296 1516/2516/305 +f 1380/2149/290 1400/2629/290 1514/2517/303 +f 1391/2164/288 1394/2166/300 1520/2518/300 +f 1385/2157/296 1388/2159/298 1518/2520/298 +f 1408/2522/304 1528/2540/304 1527/2523/305 +f 1422/2525/301 1524/2541/301 1523/2526/289 +f 1401/2528/302 1522/2543/302 1521/2529/303 +f 1416/2430/299 1426/2429/299 1525/2531/288 +f 1410/2524/305 1527/2523/305 1427/2533/296 +f 1404/2530/303 1521/2529/303 1529/2535/290 +f 1418/2532/288 1525/2531/288 1425/2537/300 +f 1415/2534/296 1427/2533/296 1526/2539/298 +f 1409/2536/290 1529/2535/290 1528/2540/304 +f 1420/2538/300 1425/2537/300 1524/2541/301 +f 1403/2542/289 1523/2630/289 1522/2543/302 +f 1531/2544/287 1530/2631/330 1598/2545/330 +f 1530/2547/330 1429/2632/296 1600/2548/296 +f 1600/2548/296 1429/2632/296 1428/2550/331 +f 1428/2550/331 1534/2553/286 1602/2552/286 +f 1534/2553/286 1533/2633/297 1603/2554/297 +f 1603/2554/297 1533/2633/297 1430/2555/289 +f 1430/2555/289 1532/2558/295 1605/2557/295 +f 1532/2558/295 1531/2544/287 1599/2546/287 +f 1606/2559/332 1620/2577/332 1607/2560/333 +f 1609/2562/334 1617/2570/334 1610/2563/335 +f 1612/2565/336 1621/2586/336 1613/2566/337 +f 1615/2568/338 1614/2567/337 1613/2566/337 +f 1609/2562/334 1621/2586/336 1612/2565/336 +f 1618/2571/339 1608/2561/333 1607/2560/333 +f 1610/2563/335 1620/2577/332 1606/2559/332 +f 1618/2571/339 1619/2572/339 1615/2573/338 +f 1431/2575/340 1536/2634/354 1619/2572/341 +f 1537/2576/343 1431/2635/340 1607/2560/342 +f 1432/2578/345 1537/2636/343 1620/2577/344 +f 1538/2579/347 1432/2637/345 1610/2563/346 +f 1612/2565/349 1433/2638/374 1538/2580/347 +f 1539/2581/350 1433/2639/374 1612/2565/349 +f 1535/2582/352 1539/2640/350 1614/2567/351 +f 1536/2583/354 1535/2641/352 1615/2573/353 +f 1541/2584/355 1540/2642/369 1616/2569/356 +f 1542/2585/358 1541/2643/355 1613/2566/357 +f 1434/2587/360 1542/2644/358 1621/2586/359 +f 1543/2588/362 1434/2645/360 1609/2562/361 +f 1435/2589/364 1543/2646/362 1611/2564/363 +f 1544/2590/366 1435/2647/364 1606/2559/365 +f 1618/2571/368 1436/2648/375 1544/2591/366 +f 1540/2592/369 1436/2649/375 1618/2571/368 +f 1546/2593/287 1545/2650/370 1622/2594/370 +f 1622/2594/370 1545/2650/370 1438/2596/288 +f 1438/2596/288 1437/2599/371 1625/2598/371 +f 1437/2599/371 1549/2601/286 1626/2600/286 +f 1549/2601/286 1548/2651/372 1627/2602/372 +f 1627/2602/372 1548/2651/372 1439/2603/290 +f 1439/2603/290 1547/2652/373 1629/2605/373 +f 1547/2606/373 1546/2593/287 1623/2595/287 +o Magazine +v 0.249996 0.000002 -3.562500 +v 0.249996 -1.124998 -3.375000 +v 0.249996 -1.124998 -3.562500 +v -0.187504 0.000002 -3.375000 +v -0.250004 -1.124998 -3.375000 +v -0.187504 -1.124998 -3.375000 +v -0.250004 0.000002 -5.000000 +v -0.250004 -1.124998 -5.187500 +v -0.250004 -1.124998 -5.000000 +v 0.187496 0.000002 -5.187500 +v 0.249996 -1.124998 -5.187500 +v 0.187496 -1.124998 -5.187500 +v -0.187504 -1.124998 -3.562500 +v -0.250004 -1.281248 -3.562500 +v -0.250004 -1.124998 -3.562500 +v 0.249996 0.000002 -5.000000 +v 0.187496 0.000002 -5.000000 +v -0.187504 -1.499998 -5.000000 +v 0.187496 -1.531248 -5.187500 +v 0.187496 -1.499998 -5.000000 +v 0.187496 -1.312498 -3.750000 +v 0.249996 -1.374998 -4.187500 +v 0.249996 -1.312498 -3.750000 +v 0.249996 0.000002 -4.812500 +v 0.249996 -1.124998 -4.375000 +v 0.249996 -1.124998 -4.812500 +v -0.250004 0.000002 -3.750000 +v -0.250004 -1.124998 -4.187500 +v -0.250004 -1.124998 -3.750000 +v -0.250004 -1.312498 -3.750000 +v 0.249996 0.000002 -3.750000 +v 0.187496 0.000002 -4.187500 +v 0.187496 0.000002 -3.750000 +v -0.250004 -1.499998 -5.000000 +v 0.249996 -1.531248 -5.187500 +v 0.249996 -1.499998 -5.000000 +v -0.250004 0.000002 -3.562500 +v 0.249996 0.000002 -4.187500 +v 0.249996 -1.124998 -3.750000 +v 0.249996 -1.124998 -4.187500 +v -0.250004 0.000002 -3.375000 +v -0.187504 -1.124998 -3.750000 +v -0.187504 -1.281248 -3.562500 +v 0.249996 0.000002 -3.375000 +v 0.187496 0.000002 -3.562500 +v 0.187496 0.000002 -3.375000 +v 0.187496 -1.124998 -5.000000 +v 0.249996 -1.124998 -5.000000 +v 0.249996 0.000002 -4.375000 +v 0.187496 0.000002 -4.812500 +v 0.187496 0.000002 -4.375000 +v -0.250004 -1.124998 -4.812500 +v -0.250004 -1.406248 -4.375000 +v -0.250004 -1.124998 -4.375000 +v -0.250004 0.000002 -4.375000 +v 0.249996 0.000002 -5.187500 +v -0.187504 -1.374998 -4.187500 +v 0.187496 -1.406248 -4.375000 +v 0.187496 -1.374998 -4.187500 +v 0.249996 -1.468748 -4.812500 +v 0.249996 -1.406248 -4.375000 +v -0.187504 -1.312498 -3.750000 +v 0.187496 -1.468748 -4.812500 +v -0.187504 0.000002 -4.375000 +v -0.250004 0.000002 -4.812500 +v -0.187504 -1.124998 -5.000000 +v -0.187504 -1.468748 -4.812500 +v -0.187504 -1.124998 -4.812500 +v -0.187504 0.000002 -3.750000 +v -0.250004 0.000002 -4.187500 +v 0.187496 -1.249998 -3.375000 +v 0.187496 -1.124998 -3.375000 +v -0.187504 0.000002 -5.000000 +v -0.250004 0.000002 -5.187500 +v 0.249996 -1.249998 -3.375000 +v 0.249996 -1.281248 -3.562500 +v -0.187504 -1.124998 -5.187500 +v 0.187496 -1.124998 -3.750000 +v 0.187496 -1.281248 -3.562500 +v -0.250004 -1.531248 -5.187500 +v 0.187496 -1.124998 -4.812500 +v -0.187504 -1.531248 -5.187500 +v 0.124996 0.000002 -4.812500 +v 0.124996 -0.187498 -4.375000 +v 0.124996 0.000002 -4.375000 +v -0.125004 0.000002 -4.812500 +v -0.125004 -0.187498 -5.000000 +v -0.125004 0.000002 -5.000000 +v -0.125004 0.000002 -5.125000 +v 0.124996 -0.187498 -5.125000 +v 0.124996 0.000002 -5.125000 +v 0.124996 -0.187498 -5.000000 +v 0.124996 0.000002 -5.000000 +v 0.124996 0.000002 -3.437500 +v -0.125004 -0.187498 -3.437500 +v -0.125004 0.000002 -3.437500 +v -0.125004 -0.187498 -5.125000 +v 0.124996 -0.187498 -4.187500 +v 0.124996 0.000002 -4.187500 +v -0.187504 0.000002 -5.187500 +v -0.187504 0.000002 -4.187500 +v -0.187504 -1.124998 -4.375000 +v -0.187504 -1.124998 -4.187500 +v -0.187504 0.000002 -3.562500 +v -0.187504 0.000002 -4.812500 +v -0.187504 -1.249998 -3.375000 +v -0.187504 -1.406248 -4.375000 +v 0.187496 -1.124998 -4.187500 +v 0.187496 -1.124998 -4.375000 +v 0.187496 -1.124998 -3.562500 +v -0.250004 -1.249998 -3.375000 +v -0.250004 -1.374998 -4.187500 +v -0.250004 -1.468748 -4.812500 +v 0.187496 0.125002 -4.375000 +v -0.125004 0.000002 -3.750000 +v -0.125004 0.000002 -3.562500 +v -0.125004 0.000002 -4.187500 +v -0.125004 0.000002 -4.375000 +v -0.125004 0.125002 -4.375000 +v 0.124996 0.000002 -3.562500 +v 0.124996 0.000002 -3.750000 +v 0.124996 -0.187498 -4.812500 +v -0.125004 -0.187498 -4.812500 +v -0.125004 -0.187498 -4.375000 +v 0.124996 -0.187498 -3.437500 +v -0.125004 -0.187498 -3.562500 +v 0.124996 -0.187498 -3.562500 +v -0.125004 -0.187498 -3.750000 +v 0.124996 -0.187498 -3.750000 +v -0.125004 -0.187498 -4.187500 +v -0.125004 0.125002 -4.812500 +v -0.187504 0.125002 -4.375000 +v 0.124996 0.125002 -4.375000 +v 0.187496 0.125002 -4.812500 +v 0.124996 0.125002 -4.812500 +v -0.187504 0.125002 -4.812500 +vt 0.582367 0.993056 +vt 0.575406 0.868056 +vt 0.582367 0.868056 +vt 0.559165 0.993056 +vt 0.556845 0.868056 +vt 0.559165 0.868056 +vt 0.487239 0.993056 +vt 0.480278 0.868056 +vt 0.487239 0.868056 +vt 0.464037 0.993056 +vt 0.461717 0.868056 +vt 0.464037 0.868056 +vt 0.547564 0.868056 +vt 0.549884 0.850694 +vt 0.549884 0.868056 +vt 0.468677 0.812500 +vt 0.461717 0.805556 +vt 0.468677 0.805556 +vt 0.069606 0.208333 +vt 0.062645 0.166667 +vt 0.069606 0.166667 +vt 0.116009 0.166667 +vt 0.099768 0.159722 +vt 0.116009 0.159722 +vt 0.633411 0.993056 +vt 0.617169 0.868056 +vt 0.633411 0.868056 +vt 0.538283 0.993056 +vt 0.522042 0.868056 +vt 0.538283 0.868056 +vt 0.538283 0.847222 +vt 0.515081 0.812500 +vt 0.498840 0.805556 +vt 0.515081 0.805556 +vt 0.487239 0.826389 +vt 0.062645 0.159722 +vt 0.069606 0.159722 +vt 0.549884 0.993056 +vt 0.610209 0.993056 +vt 0.593967 0.868056 +vt 0.610209 0.868056 +vt 0.556845 0.993056 +vt 0.540603 0.868056 +vt 0.547564 0.850694 +vt 0.529002 0.812500 +vt 0.522042 0.805556 +vt 0.529002 0.805556 +vt 0.645012 0.993056 +vt 0.642691 0.868056 +vt 0.645012 0.868056 +vt 0.491879 0.812500 +vt 0.475638 0.805556 +vt 0.491879 0.805556 +vt 0.498840 0.868056 +vt 0.515081 0.836806 +vt 0.515081 0.868056 +vt 0.515081 0.993056 +vt 0.651972 0.993056 +vt 0.651972 0.868056 +vt 0.099768 0.208333 +vt 0.092807 0.166667 +vt 0.099768 0.166667 +vt 0.076566 0.159722 +vt 0.092807 0.159722 +vt 0.116009 0.208333 +vt 0.635731 0.829861 +vt 0.642691 0.826389 +vt 0.645012 0.826389 +vt 0.491879 0.763889 +vt 0.475638 0.756944 +vt 0.491879 0.756944 +vt 0.529002 0.763889 +vt 0.522042 0.756944 +vt 0.529002 0.756944 +vt 0.651972 0.822917 +vt 0.489559 0.868056 +vt 0.496520 0.829861 +vt 0.496520 0.868056 +vt 0.515081 0.763889 +vt 0.498840 0.756944 +vt 0.515081 0.756944 +vt 0.610209 0.840278 +vt 0.573086 0.854167 +vt 0.573086 0.868056 +vt 0.468677 0.763889 +vt 0.461717 0.756944 +vt 0.468677 0.756944 +vt 0.575406 0.854167 +vt 0.582367 0.850694 +vt 0.480278 0.993056 +vt 0.477958 0.868056 +vt 0.573086 0.993056 +vt 0.575406 0.993056 +vt 0.591647 0.868056 +vt 0.584687 0.850694 +vt 0.591647 0.847222 +vt 0.122970 0.208333 +vt 0.122970 0.166667 +vt 0.480278 0.822917 +vt 0.116009 0.215278 +vt 0.635731 0.868056 +vt 0.593967 0.847222 +vt 0.069606 0.215278 +vt 0.062645 0.208333 +vt 0.552204 0.819444 +vt 0.568446 0.798611 +vt 0.568446 0.819444 +vt 0.552204 0.750000 +vt 0.545244 0.770833 +vt 0.545244 0.750000 +vt 0.533643 0.770833 +vt 0.540603 0.798611 +vt 0.533643 0.798611 +vt 0.540603 0.819444 +vt 0.545244 0.798611 +vt 0.545244 0.819444 +vt 0.610209 0.798611 +vt 0.603248 0.770833 +vt 0.610209 0.770833 +vt 0.540603 0.770833 +vt 0.540603 0.750000 +vt 0.575406 0.798611 +vt 0.575406 0.819444 +vt 0.477958 0.993056 +vt 0.663573 0.993056 +vt 0.656613 0.868056 +vt 0.663573 0.868056 +vt 0.547564 0.993056 +vt 0.496520 0.993056 +vt 0.129930 0.166667 +vt 0.122970 0.159722 +vt 0.129930 0.159722 +vt 0.498840 0.993056 +vt 0.540603 0.993056 +vt 0.665893 0.993056 +vt 0.665893 0.868056 +vt 0.129930 0.208333 +vt 0.477958 0.822917 +vt 0.654292 0.868056 +vt 0.656613 0.993056 +vt 0.654292 0.993056 +vt 0.489559 0.993056 +vt 0.092807 0.208333 +vt 0.076566 0.166667 +vt 0.677494 0.993056 +vt 0.670534 0.868056 +vt 0.677494 0.868056 +vt 0.591647 0.993056 +vt 0.584687 0.868056 +vt 0.642691 0.993056 +vt 0.679814 0.993056 +vt 0.679814 0.868056 +vt 0.076566 0.208333 +vt 0.584687 0.993056 +vt 0.092807 0.215278 +vt 0.129930 0.215278 +vt 0.668213 0.868056 +vt 0.670534 0.993056 +vt 0.668213 0.993056 +vt 0.635731 0.993056 +vt 0.593967 0.993056 +vt 0.099768 0.215278 +vt 0.617343 0.837301 +vt 0.633411 0.829861 +vt 0.498840 0.829861 +vt 0.559165 0.854167 +vt 0.556845 0.854167 +vt 0.464037 0.822917 +vt 0.522024 0.840782 +vt 0.540603 0.847222 +vt 0.489559 0.826389 +vt 0.656613 0.861111 +vt 0.663573 0.861111 +vt 0.670534 0.861111 +vt 0.677494 0.861111 +vt 0.526682 0.770833 +vt 0.526682 0.798611 +vt 0.468677 0.770833 +vt 0.475638 0.763889 +vt 0.475638 0.770833 +vt 0.658933 0.854167 +vt 0.675174 0.840278 +vt 0.675174 0.854167 +vt 0.522042 0.763889 +vt 0.515081 0.770833 +vt 0.522042 0.770833 +vt 0.498840 0.770833 +vt 0.491879 0.770833 +vt 0.498840 0.763889 +vt 0.464037 0.770833 +vt 0.464037 0.798611 +vt 0.461717 0.763889 +vt 0.658933 0.812500 +vt 0.675174 0.798611 +vt 0.675174 0.812500 +vt 0.522042 0.798611 +vt 0.475638 0.798611 +vt 0.468677 0.798611 +vt 0.515081 0.798611 +vt 0.498840 0.798611 +vt 0.491879 0.798611 +vt 0.552204 0.798611 +vt 0.552204 0.770833 +vt 0.568446 0.770833 +vt 0.603248 0.798611 +vt 0.598608 0.770833 +vt 0.598608 0.798611 +vt 0.591647 0.770833 +vt 0.591647 0.798611 +vt 0.575406 0.770833 +vt 0.568446 0.750000 +vt 0.598608 0.819444 +vt 0.603248 0.819444 +vt 0.603248 0.750000 +vt 0.598608 0.750000 +vt 0.591647 0.750000 +vt 0.591647 0.819444 +vt 0.575406 0.750000 +vt 0.658933 0.798611 +vt 0.675174 0.791667 +vt 0.675174 0.833333 +vt 0.658933 0.840278 +vt 0.658933 0.833333 +vt 0.679814 0.798611 +vt 0.679814 0.791667 +vt 0.675174 0.819444 +vt 0.658933 0.819444 +vt 0.654292 0.791667 +vt 0.654292 0.798611 +vt 0.679814 0.840278 +vt 0.679814 0.833333 +vt 0.675174 0.777778 +vt 0.658933 0.791667 +vt 0.658933 0.777778 +vt 0.654292 0.833333 +vt 0.654292 0.840278 +vt 0.461717 0.993056 +vt 0.461717 0.812500 +vt 0.617169 0.993056 +vt 0.522042 0.993056 +vt 0.498840 0.812500 +vt 0.522042 0.812500 +vt 0.475638 0.812500 +vt 0.062645 0.215278 +vt 0.076566 0.215278 +vt 0.122970 0.215278 +vt 0.461717 0.822917 +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 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 -0.9864 0.1644 +vn 0.0000 -0.9899 0.1414 +s off +f 1630/2653/376 1631/2654/376 1632/2655/376 +f 1633/2656/377 1634/2657/377 1635/2658/377 +f 1636/2659/378 1637/2660/378 1638/2661/378 +f 1639/2662/379 1640/2663/379 1641/2664/379 +f 1642/2665/379 1643/2666/379 1644/2667/379 +f 1645/2668/380 1639/2669/380 1646/2670/380 +f 1647/2671/381 1648/2672/381 1649/2673/381 +f 1650/2674/382 1651/2675/382 1652/2676/382 +f 1653/2677/376 1654/2678/376 1655/2679/376 +f 1656/2680/378 1657/2681/378 1658/2682/378 +f 1657/2681/378 1659/2683/378 1658/2682/378 +f 1660/2684/380 1661/2685/380 1662/2686/380 +f 1637/2660/378 1663/2687/378 1638/2661/378 +f 1649/2673/381 1664/2688/381 1665/2689/381 +f 1666/2690/379 1642/2665/379 1644/2667/379 +f 1667/2691/376 1668/2692/376 1669/2693/376 +f 1670/2694/378 1644/2667/378 1634/2657/378 +f 1671/2695/378 1672/2696/378 1642/2665/378 +f 1673/2697/380 1674/2698/380 1675/2699/380 +f 1645/2700/377 1676/2701/377 1677/2702/377 +f 1678/2703/380 1679/2704/380 1680/2705/380 +f 1681/2706/378 1682/2707/378 1683/2708/378 +f 1684/2709/378 1681/2706/378 1683/2708/378 +f 1685/2710/376 1677/2702/376 1640/2711/376 +f 1686/2712/381 1687/2713/381 1688/2714/381 +f 1687/2713/382 1689/2715/382 1690/2716/382 +f 1691/2717/382 1688/2714/382 1650/2674/382 +f 1676/2701/376 1692/2718/376 1649/2719/376 +f 1676/2701/377 1665/2720/377 1677/2702/377 +f 1693/2721/380 1694/2722/380 1684/2723/380 +f 1633/2724/380 1666/2725/380 1670/2726/380 +f 1640/2711/376 1665/2720/376 1664/2727/376 +f 1695/2728/378 1696/2729/378 1697/2730/378 +f 1698/2731/380 1699/2732/380 1656/2733/380 +f 1651/2734/376 1654/2678/376 1669/2693/376 +f 1635/2658/377 1700/2735/377 1701/2736/377 +f 1702/2737/380 1703/2738/380 1636/2739/380 +f 1632/2655/376 1704/2740/376 1705/2741/376 +f 1703/2742/379 1706/2743/379 1637/2660/379 +f 1675/2744/377 1635/2658/377 1701/2736/377 +f 1673/2745/377 1701/2736/377 1631/2654/377 +f 1707/2746/376 1708/2747/376 1650/2748/376 +f 1672/2749/381 1650/2674/381 1708/2750/381 +f 1706/2743/379 1709/2751/379 1637/2660/379 +f 1659/2752/382 1686/2712/382 1691/2717/382 +f 1655/2679/379 1692/2718/379 1710/2753/379 +f 1669/2693/376 1652/2754/376 1651/2734/376 +f 1663/2755/381 1711/2756/381 1647/2671/381 +f 1712/2757/378 1713/2758/378 1714/2759/378 +f 1715/2760/376 1716/2761/376 1717/2762/376 +f 1718/2763/377 1719/2764/377 1720/2765/377 +f 1720/2766/378 1721/2767/378 1722/2768/378 +f 1723/2769/379 1724/2770/379 1725/2771/379 +f 1717/2762/376 1726/2772/376 1718/2773/376 +f 1714/2759/378 1727/2774/378 1728/2775/378 +f 1729/2776/379 1641/2664/379 1706/2743/379 +f 1730/2777/378 1731/2778/378 1732/2779/378 +f 1733/2780/378 1671/2695/378 1642/2665/378 +f 1734/2781/378 1695/2728/378 1697/2730/378 +f 1700/2782/381 1705/2783/381 1704/2784/381 +f 1694/2785/379 1697/2730/379 1681/2706/379 +f 1658/2682/377 1698/2786/377 1656/2680/377 +f 1699/2787/379 1732/2779/379 1657/2788/379 +f 1735/2789/381 1708/2750/381 1700/2782/381 +f 1641/2664/379 1711/2790/379 1706/2743/379 +f 1683/2791/377 1693/2792/377 1684/2793/377 +f 1638/2661/377 1702/2794/377 1636/2659/377 +f 1736/2795/382 1692/2796/382 1687/2713/382 +f 1680/2797/376 1737/2798/376 1738/2799/376 +f 1662/2800/376 1739/2801/376 1707/2746/376 +f 1646/2802/376 1710/2753/376 1676/2701/376 +f 1678/2803/377 1738/2799/377 1654/2804/377 +f 1696/2805/381 1649/2673/381 1692/2796/381 +f 1632/2655/379 1674/2806/379 1630/2653/379 +f 1682/2807/382 1696/2805/382 1736/2795/382 +f 1740/2808/381 1672/2749/381 1735/2789/381 +f 1669/2809/379 1661/2810/379 1667/2811/379 +f 1655/2679/379 1679/2812/379 1653/2677/379 +f 1688/2714/381 1690/2716/381 1651/2675/381 +f 1660/2813/377 1707/2746/377 1668/2692/377 +f 1736/2795/381 1741/2814/381 1682/2807/381 +f 1655/2679/376 1690/2815/376 1689/2816/376 +f 1701/2736/377 1704/2740/377 1631/2654/377 +f 1697/2730/379 1742/2817/379 1681/2706/379 +f 1707/2746/377 1652/2754/377 1668/2692/377 +f 1634/2657/377 1735/2818/377 1635/2658/377 +f 1644/2667/378 1740/2819/378 1634/2657/378 +f 1632/2655/379 1708/2747/379 1739/2801/379 +f 1640/2663/379 1648/2820/379 1641/2664/379 +f 1683/2708/378 1741/2821/378 1657/2681/378 +f 1658/2682/377 1691/2822/377 1671/2695/377 +f 1638/2661/377 1647/2823/377 1695/2728/377 +f 1732/2779/380 1683/2824/380 1657/2825/380 +f 1738/2799/380 1669/2826/380 1654/2827/380 +f 1725/2828/380 1675/2699/380 1723/2829/380 +f 1717/2830/380 1734/2831/380 1715/2832/380 +f 1679/2833/376 1743/2834/376 1680/2835/376 +f 1725/2828/380 1733/2836/380 1633/2724/380 +f 1744/2837/380 1733/2836/380 1745/2838/380 +f 1746/2839/380 1698/2731/380 1744/2837/380 +f 1747/2840/380 1730/2841/380 1746/2839/380 +f 1718/2842/380 1702/2737/380 1717/2830/380 +f 1720/2843/380 1729/2844/380 1718/2842/380 +f 1715/2845/376 1748/2846/376 1747/2847/376 +f 1723/2829/380 1674/2698/380 1749/2848/380 +f 1712/2849/380 1646/2670/380 1722/2850/380 +f 1749/2848/380 1662/2686/380 1750/2851/380 +f 1750/2851/380 1661/2685/380 1728/2852/380 +f 1728/2852/380 1680/2705/380 1714/2853/380 +f 1720/2843/380 1646/2670/380 1639/2669/380 +f 1751/2854/380 1716/2761/380 1752/2855/380 +f 1713/2758/380 1752/2855/380 1753/2856/380 +f 1754/2857/380 1755/2858/380 1724/2770/380 +f 1756/2859/380 1757/2860/380 1755/2858/380 +f 1758/2861/380 1759/2862/380 1757/2860/380 +f 1727/2774/380 1753/2856/380 1759/2862/380 +f 1721/2767/380 1726/2772/380 1716/2761/380 +f 1747/2863/376 1752/2855/376 1715/2760/376 +f 1749/2864/378 1754/2857/378 1723/2865/378 +f 1725/2866/376 1755/2858/376 1745/2867/376 +f 1722/2768/378 1751/2854/378 1712/2757/378 +f 1745/2867/376 1757/2860/376 1744/2868/376 +f 1750/2869/378 1756/2859/378 1749/2864/378 +f 1744/2868/376 1759/2862/376 1746/2870/376 +f 1728/2775/378 1758/2861/378 1750/2869/378 +f 1746/2870/376 1753/2856/376 1747/2863/376 +f 1760/2871/380 1761/2872/380 1748/2846/380 +f 1762/2873/380 1763/2874/380 1764/2875/380 +f 1747/2876/377 1761/2872/377 1693/2877/377 +f 1714/2878/378 1764/2875/378 1712/2879/378 +f 1734/2880/379 1760/2871/379 1715/2881/379 +f 1680/2882/377 1762/2873/377 1714/2883/377 +f 1693/2884/378 1765/2885/378 1734/2886/378 +f 1712/2887/379 1763/2874/379 1679/2888/379 +f 1630/2653/376 1673/2745/376 1631/2654/376 +f 1633/2656/377 1670/2694/377 1634/2657/377 +f 1636/2659/378 1703/2742/378 1637/2660/378 +f 1639/2662/379 1685/2889/379 1640/2663/379 +f 1642/2665/379 1672/2696/379 1643/2666/379 +f 1645/2668/380 1685/2890/380 1639/2669/380 +f 1647/2671/381 1711/2756/381 1648/2672/381 +f 1650/2674/382 1688/2714/382 1651/2675/382 +f 1653/2677/376 1678/2891/376 1654/2678/376 +f 1656/2680/378 1699/2892/378 1657/2681/378 +f 1657/2681/378 1741/2821/378 1659/2683/378 +f 1660/2684/380 1667/2893/380 1661/2685/380 +f 1637/2660/378 1709/2751/378 1663/2687/378 +f 1649/2673/381 1648/2672/381 1664/2688/381 +f 1666/2690/379 1733/2780/379 1642/2665/379 +f 1667/2691/376 1660/2813/376 1668/2692/376 +f 1670/2694/378 1666/2690/378 1644/2667/378 +f 1671/2695/378 1691/2822/378 1672/2696/378 +f 1673/2697/380 1630/2894/380 1674/2698/380 +f 1645/2700/377 1646/2802/377 1676/2701/377 +f 1678/2703/380 1653/2895/380 1679/2704/380 +f 1681/2706/378 1742/2817/378 1682/2707/378 +f 1684/2709/378 1694/2785/378 1681/2706/378 +f 1685/2710/376 1645/2700/376 1677/2702/376 +f 1686/2712/381 1736/2795/381 1687/2713/381 +f 1687/2713/382 1692/2796/382 1689/2715/382 +f 1691/2717/382 1686/2712/382 1688/2714/382 +f 1676/2701/376 1710/2753/376 1692/2718/376 +f 1676/2701/377 1649/2719/377 1665/2720/377 +f 1693/2721/380 1734/2831/380 1694/2722/380 +f 1633/2724/380 1733/2836/380 1666/2725/380 +f 1640/2711/376 1677/2702/376 1665/2720/376 +f 1695/2728/378 1647/2823/378 1696/2729/378 +f 1698/2731/380 1730/2841/380 1699/2732/380 +f 1651/2734/376 1690/2815/376 1654/2678/376 +f 1635/2658/377 1735/2818/377 1700/2735/377 +f 1702/2737/380 1729/2844/380 1703/2738/380 +f 1632/2655/376 1631/2654/376 1704/2740/376 +f 1703/2742/379 1729/2776/379 1706/2743/379 +f 1675/2744/377 1633/2656/377 1635/2658/377 +f 1673/2745/377 1675/2744/377 1701/2736/377 +f 1707/2746/376 1739/2801/376 1708/2747/376 +f 1672/2749/381 1691/2717/381 1650/2674/381 +f 1706/2743/379 1711/2790/379 1709/2751/379 +f 1659/2752/382 1741/2814/382 1686/2712/382 +f 1655/2679/379 1689/2816/379 1692/2718/379 +f 1669/2693/376 1668/2692/376 1652/2754/376 +f 1663/2755/381 1709/2896/381 1711/2756/381 +f 1712/2757/378 1751/2854/378 1713/2758/378 +f 1715/2760/376 1752/2855/376 1716/2761/376 +f 1718/2763/377 1726/2772/377 1719/2764/377 +f 1720/2766/378 1719/2764/378 1721/2767/378 +f 1723/2769/379 1754/2857/379 1724/2770/379 +f 1717/2762/376 1716/2761/376 1726/2772/376 +f 1714/2759/378 1713/2758/378 1727/2774/378 +f 1729/2776/379 1639/2662/379 1641/2664/379 +f 1730/2777/378 1693/2792/378 1731/2778/378 +f 1733/2780/378 1698/2786/378 1671/2695/378 +f 1734/2781/378 1702/2794/378 1695/2728/378 +f 1700/2782/381 1708/2750/381 1705/2783/381 +f 1694/2785/379 1734/2781/379 1697/2730/379 +f 1658/2682/377 1671/2695/377 1698/2786/377 +f 1699/2787/379 1730/2777/379 1732/2779/379 +f 1735/2789/381 1672/2749/381 1708/2750/381 +f 1641/2664/379 1648/2820/379 1711/2790/379 +f 1683/2791/377 1731/2778/377 1693/2792/377 +f 1638/2661/377 1695/2728/377 1702/2794/377 +f 1736/2795/382 1696/2805/382 1692/2796/382 +f 1680/2797/376 1661/2810/376 1737/2798/376 +f 1662/2800/376 1674/2806/376 1739/2801/376 +f 1646/2802/376 1679/2812/376 1710/2753/376 +f 1678/2803/377 1680/2797/377 1738/2799/377 +f 1696/2805/381 1647/2671/381 1649/2673/381 +f 1632/2655/379 1739/2801/379 1674/2806/379 +f 1682/2807/382 1742/2897/382 1696/2805/382 +f 1740/2808/381 1643/2898/381 1672/2749/381 +f 1669/2809/379 1737/2798/379 1661/2810/379 +f 1655/2679/379 1710/2753/379 1679/2812/379 +f 1688/2714/381 1687/2713/381 1690/2716/381 +f 1660/2813/377 1662/2800/377 1707/2746/377 +f 1736/2795/381 1686/2712/381 1741/2814/381 +f 1655/2679/376 1654/2678/376 1690/2815/376 +f 1701/2736/377 1700/2735/377 1704/2740/377 +f 1697/2730/379 1696/2729/379 1742/2817/379 +f 1707/2746/377 1650/2748/377 1652/2754/377 +f 1634/2657/377 1740/2819/377 1735/2818/377 +f 1644/2667/378 1643/2666/378 1740/2819/378 +f 1632/2655/379 1705/2741/379 1708/2747/379 +f 1640/2663/379 1664/2899/379 1648/2820/379 +f 1683/2708/378 1682/2707/378 1741/2821/378 +f 1658/2682/377 1659/2683/377 1691/2822/377 +f 1638/2661/377 1663/2687/377 1647/2823/377 +f 1732/2779/380 1731/2778/380 1683/2824/380 +f 1738/2799/380 1737/2798/380 1669/2826/380 +f 1725/2828/380 1633/2724/380 1675/2699/380 +f 1717/2830/380 1702/2737/380 1734/2831/380 +f 1679/2833/376 1763/2874/376 1743/2834/376 +f 1725/2828/380 1745/2838/380 1733/2836/380 +f 1744/2837/380 1698/2731/380 1733/2836/380 +f 1746/2839/380 1730/2841/380 1698/2731/380 +f 1747/2840/380 1693/2721/380 1730/2841/380 +f 1718/2842/380 1729/2844/380 1702/2737/380 +f 1720/2843/380 1639/2669/380 1729/2844/380 +f 1715/2845/376 1760/2871/376 1748/2846/376 +f 1723/2829/380 1675/2699/380 1674/2698/380 +f 1712/2849/380 1679/2704/380 1646/2670/380 +f 1749/2848/380 1674/2698/380 1662/2686/380 +f 1750/2851/380 1662/2686/380 1661/2685/380 +f 1728/2852/380 1661/2685/380 1680/2705/380 +f 1720/2843/380 1722/2850/380 1646/2670/380 +f 1751/2854/380 1721/2767/380 1716/2761/380 +f 1713/2758/380 1751/2854/380 1752/2855/380 +f 1754/2857/380 1756/2859/380 1755/2858/380 +f 1756/2859/380 1758/2861/380 1757/2860/380 +f 1758/2861/380 1727/2774/380 1759/2862/380 +f 1727/2774/380 1713/2758/380 1753/2856/380 +f 1721/2767/380 1719/2764/380 1726/2772/380 +f 1747/2863/376 1753/2856/376 1752/2855/376 +f 1749/2864/378 1756/2859/378 1754/2857/378 +f 1725/2866/376 1724/2770/376 1755/2858/376 +f 1722/2768/378 1721/2767/378 1751/2854/378 +f 1745/2867/376 1755/2858/376 1757/2860/376 +f 1750/2869/378 1758/2861/378 1756/2859/378 +f 1744/2868/376 1757/2860/376 1759/2862/376 +f 1728/2775/378 1727/2774/378 1758/2861/378 +f 1746/2870/376 1759/2862/376 1753/2856/376 +f 1760/2871/380 1765/2885/380 1761/2872/380 +f 1762/2873/380 1743/2834/380 1763/2874/380 +f 1747/2876/377 1748/2846/377 1761/2872/377 +f 1714/2878/378 1762/2873/378 1764/2875/378 +f 1734/2880/379 1765/2885/379 1760/2871/379 +f 1680/2882/377 1743/2834/377 1762/2873/377 +f 1693/2884/378 1761/2872/378 1765/2885/378 +f 1712/2887/379 1764/2875/379 1763/2874/379 +o Bullet +v -0.000004 0.125002 -5.125000 +v 0.108249 -0.062498 -5.125000 +v -0.108257 -0.062498 -5.125000 +v -0.108257 0.062502 -5.125000 +v 0.108249 0.062502 -5.125000 +v -0.000004 -0.124998 -5.125000 +v -0.000004 0.125002 -5.000000 +v -0.108257 0.062502 -4.187500 +v -0.000004 0.125002 -4.187500 +v -0.108257 0.062502 -5.000000 +v -0.108257 -0.062498 -4.187500 +v -0.108257 -0.062498 -5.000000 +v -0.000004 -0.124998 -4.187500 +v -0.000004 -0.124998 -5.000000 +v 0.108249 -0.062498 -4.187500 +v 0.108249 -0.062498 -5.000000 +v 0.108249 0.062502 -4.187500 +v 0.108249 0.062502 -5.000000 +v -0.081194 0.046877 -4.062500 +v 0.108249 -0.062498 -5.062500 +v 0.108249 0.062502 -5.062500 +v -0.108257 -0.062498 -5.062500 +v -0.000004 0.125002 -5.062500 +v -0.000004 -0.124998 -5.062500 +v -0.108257 0.062502 -5.062500 +v 0.081186 0.046877 -4.062500 +v 0.081186 -0.046873 -3.875000 +v 0.081186 -0.046873 -4.062500 +v -0.000004 0.093752 -4.062500 +v -0.081194 -0.046873 -4.062500 +v -0.000004 -0.093748 -4.062500 +v -0.000004 0.093752 -3.875000 +v 0.061566 0.035550 -3.630179 +v 0.081186 0.046877 -3.875000 +v -0.081194 -0.046873 -3.875000 +v -0.000004 -0.093748 -3.875000 +v -0.081194 0.046877 -3.875000 +v 0.029434 -0.016994 -3.495243 +v 0.061566 -0.035546 -3.630179 +v -0.000004 -0.071094 -3.630179 +v -0.061574 0.035550 -3.630179 +v -0.061574 -0.035546 -3.630179 +v -0.000004 0.071097 -3.630179 +v -0.000004 -0.033991 -3.495243 +v -0.000004 0.000002 -3.449988 +v -0.029442 -0.016994 -3.495243 +v -0.000004 0.033994 -3.495243 +v 0.029434 0.016998 -3.495243 +v -0.029442 0.016998 -3.495243 +v -0.000004 0.106333 -5.062500 +v -0.101131 0.032860 -5.000000 +v -0.000004 0.106333 -5.000000 +v -0.101131 0.032860 -5.062500 +v -0.062504 -0.086022 -5.000000 +v -0.062504 -0.086022 -5.062500 +v 0.062496 -0.086022 -5.000000 +v 0.101123 0.032860 -5.062500 +v 0.101123 0.032860 -5.000000 +v 0.062496 -0.086022 -5.062500 +vt 0.450079 0.707515 +vt 0.446288 0.687865 +vt 0.453869 0.687865 +vt 0.453869 0.700965 +vt 0.446288 0.700965 +vt 0.450079 0.681315 +vt 0.470998 0.708333 +vt 0.501160 0.694444 +vt 0.501160 0.708333 +vt 0.470998 0.694444 +vt 0.501160 0.680556 +vt 0.470998 0.680556 +vt 0.501160 0.666667 +vt 0.470998 0.750000 +vt 0.501160 0.736111 +vt 0.501160 0.750000 +vt 0.470998 0.736111 +vt 0.501160 0.722222 +vt 0.470998 0.722222 +vt 0.505800 0.692840 +vt 0.457077 0.708333 +vt 0.459397 0.722222 +vt 0.457077 0.722222 +vt 0.446341 0.722697 +vt 0.453909 0.722697 +vt 0.450125 0.742314 +vt 0.450192 0.750663 +vt 0.454045 0.757321 +vt 0.450192 0.777295 +vt 0.457077 0.763889 +vt 0.459397 0.777778 +vt 0.457077 0.777778 +vt 0.457077 0.736111 +vt 0.459397 0.750000 +vt 0.457077 0.750000 +vt 0.459397 0.736111 +vt 0.457077 0.694444 +vt 0.459397 0.708333 +vt 0.459397 0.763889 +vt 0.505800 0.724166 +vt 0.512759 0.734608 +vt 0.505800 0.734608 +vt 0.505800 0.706763 +vt 0.505800 0.678917 +vt 0.505800 0.720685 +vt 0.505800 0.738089 +vt 0.505800 0.748531 +vt 0.512759 0.710243 +vt 0.522045 0.719424 +vt 0.512759 0.720685 +vt 0.505800 0.668475 +vt 0.512759 0.678917 +vt 0.505800 0.696321 +vt 0.512759 0.706763 +vt 0.505800 0.710243 +vt 0.512759 0.748531 +vt 0.505800 0.682398 +vt 0.512759 0.692840 +vt 0.522045 0.725428 +vt 0.526682 0.731280 +vt 0.522045 0.733346 +vt 0.512759 0.738089 +vt 0.522045 0.747269 +vt 0.512759 0.682398 +vt 0.522045 0.691578 +vt 0.512759 0.724166 +vt 0.512759 0.668475 +vt 0.522045 0.677656 +vt 0.522045 0.697582 +vt 0.522045 0.705501 +vt 0.526682 0.745203 +vt 0.526682 0.741417 +vt 0.529002 0.743056 +vt 0.522045 0.669737 +vt 0.526681 0.675589 +vt 0.526682 0.703435 +vt 0.522045 0.711505 +vt 0.526681 0.717357 +vt 0.522045 0.683659 +vt 0.526682 0.689512 +vt 0.526682 0.685726 +vt 0.529002 0.687500 +vt 0.526682 0.727494 +vt 0.529002 0.729167 +vt 0.526681 0.671803 +vt 0.529002 0.673611 +vt 0.526682 0.699648 +vt 0.529002 0.701389 +vt 0.526681 0.713571 +vt 0.529002 0.715278 +vt 0.461717 0.722222 +vt 0.464037 0.708333 +vt 0.464037 0.722222 +vt 0.461717 0.708333 +vt 0.464037 0.694444 +vt 0.461717 0.694444 +vt 0.464037 0.680556 +vt 0.464037 0.750000 +vt 0.461717 0.736111 +vt 0.464037 0.736111 +vt 0.470998 0.666667 +vt 0.446341 0.735775 +vt 0.450125 0.716158 +vt 0.453909 0.735775 +vt 0.454045 0.770637 +vt 0.446340 0.770637 +vt 0.446340 0.757321 +vt 0.459397 0.694444 +vt 0.512759 0.696321 +vt 0.522045 0.739350 +vt 0.461717 0.680556 +vt 0.461717 0.750000 +vn 0.0000 0.0000 -1.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.8660 0.5000 -0.0000 +vn -0.8402 -0.4851 0.2425 +vn -0.8402 0.4851 0.2425 +vn 0.0000 0.0000 1.0000 +vn 0.8402 0.4851 0.2425 +vn 0.8402 -0.4851 0.2425 +vn -0.0000 0.9701 0.2425 +vn -0.0000 -0.9701 0.2425 +vn -0.0000 0.9957 0.0921 +vn 0.8527 0.4923 0.1746 +vn 0.8623 0.4979 0.0921 +vn 0.7865 -0.4541 0.4185 +vn 0.8527 -0.4923 0.1746 +vn 0.8623 -0.4979 0.0921 +vn -0.0000 -0.9846 0.1746 +vn -0.0000 -0.9957 0.0921 +vn -0.8623 -0.4979 0.0921 +vn -0.8527 0.4923 0.1746 +vn -0.8623 0.4979 0.0921 +vn -0.8527 -0.4923 0.1746 +vn 0.0000 0.9846 0.1746 +vn 0.0000 -0.9082 0.4185 +vn -0.7865 -0.4541 0.4185 +vn 0.0000 0.9082 0.4185 +vn 0.7865 0.4541 0.4185 +vn -0.7865 0.4541 0.4185 +vn -0.9511 0.3090 0.0000 +vn -0.5878 -0.8090 0.0000 +vn 0.5878 -0.8090 -0.0000 +vn 0.9511 0.3090 -0.0000 +s off +f 1766/2900/383 1767/2901/383 1768/2902/383 +f 1768/2902/383 1769/2903/383 1766/2900/383 +f 1766/2900/383 1770/2904/383 1767/2901/383 +f 1767/2901/383 1771/2905/383 1768/2902/383 +s 1 +f 1772/2906/384 1773/2907/385 1774/2908/384 +f 1775/2909/385 1776/2910/386 1773/2907/385 +f 1777/2911/386 1778/2912/387 1776/2910/386 +f 1779/2913/387 1780/2914/388 1778/2915/387 +f 1781/2916/388 1782/2917/389 1780/2914/388 +f 1783/2918/389 1774/2908/384 1782/2917/389 +f 1776/2910/390 1784/2919/391 1773/2907/391 +f 1785/2920/388 1770/2921/389 1786/2922/389 +f 1787/2923/392 1785/2924/392 1788/2925/392 +f 1779/2926/383 1777/2927/383 1772/2928/383 +f 1787/2929/386 1771/2930/387 1789/2931/387 +f 1788/2932/384 1769/2933/385 1790/2934/385 +f 1786/2922/389 1766/2935/384 1788/2932/384 +f 1789/2936/387 1767/2937/388 1785/2920/388 +f 1790/2934/385 1768/2938/386 1787/2929/386 +f 1791/2939/389 1792/2940/388 1793/2941/388 +f 1782/2917/393 1793/2941/394 1780/2914/394 +f 1773/2907/391 1794/2942/395 1774/2908/395 +f 1778/2912/396 1795/2943/390 1776/2910/390 +f 1774/2908/395 1791/2944/393 1782/2917/393 +f 1778/2915/396 1793/2945/394 1796/2946/396 +f 1797/2947/397 1798/2948/398 1799/2949/399 +f 1796/2950/387 1800/2951/386 1795/2943/386 +f 1784/2952/385 1797/2953/384 1794/2942/384 +f 1794/2954/384 1799/2949/389 1791/2944/389 +f 1793/2945/388 1801/2955/387 1796/2946/387 +f 1795/2956/386 1802/2957/385 1784/2919/385 +f 1798/2958/398 1803/2959/400 1804/2960/401 +f 1792/2961/402 1805/2962/403 1801/2955/404 +f 1800/2963/405 1806/2964/406 1802/2957/407 +f 1799/2965/399 1804/2960/401 1792/2940/402 +f 1801/2966/404 1807/2967/408 1800/2951/405 +f 1797/2953/397 1806/2968/406 1808/2969/409 +f 1809/2970/410 1803/2971/400 1810/2972/392 +f 1805/2973/403 1811/2974/411 1807/2967/408 +f 1806/2968/406 1812/2975/412 1808/2969/409 +f 1808/2976/409 1813/2977/413 1798/2948/398 +f 1805/2962/403 1803/2971/400 1809/2970/410 +f 1807/2978/408 1814/2979/414 1806/2964/406 +f 1814/2979/414 1811/2980/411 1810/2981/392 +f 1803/2959/400 1813/2982/413 1810/2983/392 +f 1811/2974/411 1809/2984/410 1810/2985/392 +f 1812/2975/412 1814/2986/414 1810/2987/392 +f 1813/2977/413 1812/2988/412 1810/2989/392 +f 1815/2990/384 1816/2991/415 1817/2992/384 +f 1818/2993/415 1819/2994/416 1816/2991/415 +f 1820/2995/416 1821/2996/417 1819/2994/416 +f 1821/2997/417 1822/2998/418 1823/2999/418 +f 1822/2998/418 1817/2992/384 1823/2999/418 +f 1772/2906/384 1775/2909/385 1773/2907/385 +f 1775/2909/385 1777/2911/386 1776/2910/386 +f 1777/2911/386 1779/3000/387 1778/2912/387 +f 1779/2913/387 1781/2916/388 1780/2914/388 +f 1781/2916/388 1783/2918/389 1782/2917/389 +f 1783/2918/389 1772/2906/384 1774/2908/384 +f 1776/2910/390 1795/2956/390 1784/2919/391 +f 1785/2920/388 1767/2937/388 1770/2921/389 +f 1788/2925/392 1790/3001/392 1787/2923/392 +f 1787/2923/392 1789/3002/392 1785/2924/392 +f 1785/2924/392 1786/3003/392 1788/2925/392 +f 1777/2927/383 1775/3004/383 1772/2928/383 +f 1772/2928/383 1783/3005/383 1781/3006/383 +f 1781/3006/383 1779/2926/383 1772/2928/383 +f 1787/2929/386 1768/2938/386 1771/2930/387 +f 1788/2932/384 1766/2935/384 1769/2933/385 +f 1786/2922/389 1770/2921/389 1766/2935/384 +f 1789/2936/387 1771/3007/387 1767/2937/388 +f 1790/2934/385 1769/2933/385 1768/2938/386 +f 1791/2939/389 1799/2965/389 1792/2940/388 +f 1782/2917/393 1791/2939/393 1793/2941/394 +f 1773/2907/391 1784/2952/391 1794/2942/395 +f 1778/2912/396 1796/2950/396 1795/2943/390 +f 1774/2908/395 1794/2954/395 1791/2944/393 +f 1778/2915/396 1780/2914/394 1793/2945/394 +f 1797/2947/397 1808/2976/409 1798/2948/398 +f 1796/2950/387 1801/2966/387 1800/2951/386 +f 1784/2952/385 1802/3008/385 1797/2953/384 +f 1794/2954/384 1797/2947/384 1799/2949/389 +f 1793/2945/388 1792/2961/388 1801/2955/387 +f 1795/2956/386 1800/2963/386 1802/2957/385 +f 1798/2958/398 1813/2982/413 1803/2959/400 +f 1792/2961/402 1804/3009/401 1805/2962/403 +f 1800/2963/405 1807/2978/408 1806/2964/406 +f 1799/2965/399 1798/2958/398 1804/2960/401 +f 1801/2966/404 1805/2973/403 1807/2967/408 +f 1797/2953/397 1802/3008/407 1806/2968/406 +f 1805/2973/403 1809/2984/410 1811/2974/411 +f 1806/2968/406 1814/2986/414 1812/2975/412 +f 1808/2976/409 1812/2988/412 1813/2977/413 +f 1805/2962/403 1804/3009/401 1803/2971/400 +f 1807/2978/408 1811/2980/411 1814/2979/414 +f 1815/2990/384 1818/2993/415 1816/2991/415 +f 1818/2993/415 1820/2995/416 1819/2994/416 +f 1820/2995/416 1824/3010/417 1821/2996/417 +f 1821/2997/417 1824/3011/417 1822/2998/418 +f 1822/2998/418 1815/2990/384 1817/2992/384 +o BipodRight +v -0.437506 -0.437496 3.125000 +v -0.468755 -0.374996 3.187500 +v -0.437506 -0.437496 3.187500 +v -0.531255 -0.374996 3.125000 +v -0.843755 -0.374996 3.187500 +v -0.531256 -0.374996 3.187500 +v -0.843756 -0.812497 3.125000 +v -0.843755 -0.874997 3.187500 +v -0.843755 -0.812497 3.187500 +v -0.531255 -0.874997 3.125000 +v -0.468755 -0.874997 3.187500 +v -0.531256 -0.874997 3.187500 +v -0.531256 -0.812497 3.187500 +v -0.531255 -0.812497 3.125000 +v -0.468756 -0.874997 3.125000 +v -0.531255 -0.624997 3.125000 +v -0.531255 -0.437496 3.125000 +v -0.843755 -0.437496 3.187500 +v -0.531256 -0.624997 3.187500 +v -0.531256 -0.437496 3.187500 +v -0.843756 -0.437496 3.125000 +v -0.843755 -0.624997 3.187500 +v -0.437506 -0.812497 3.125000 +v -0.343756 -0.624997 3.187500 +v -0.437506 -0.812497 3.187500 +v -0.531255 -0.624997 3.312500 +v -0.843756 -0.624997 3.125000 +v -0.843756 -0.874997 3.125000 +v -0.468756 -0.374996 3.125000 +v -0.531255 -0.437496 3.312500 +v -0.843756 -0.374996 3.125000 +v -0.343755 -0.624997 3.125000 +v -0.437506 -0.437496 3.312500 +v -0.343756 -0.624997 3.312498 +v -0.437506 -0.812497 3.312500 +v -0.531255 -0.812497 3.312500 +v -0.437507 -0.812497 -1.187500 +v -0.437508 -0.437497 -0.312500 +v -0.437508 -0.812497 -0.312500 +v -0.437507 -0.437497 -1.187500 +v -0.625006 -0.437497 -0.312500 +v -0.625008 -0.812497 -1.187500 +v -0.625006 -0.812497 -0.312500 +v -0.593757 -0.718747 0.000000 +v -0.625008 -0.437497 -1.187500 +v -0.593757 -0.531247 0.000000 +v -0.468756 -0.531247 0.000000 +v -0.468756 -0.718747 0.000000 +v -0.343756 -0.562497 0.000000 +v -0.406257 -0.437497 0.625000 +v -0.343756 -0.562497 0.625000 +v -0.718756 -0.437497 0.000000 +v -0.718757 -0.437497 0.625000 +v -0.718756 -0.687497 0.000000 +v -0.718757 -0.812497 0.625000 +v -0.718757 -0.687497 0.625000 +v -0.718756 -0.812497 0.000000 +v -0.406257 -0.812497 0.625000 +v -0.343756 -0.687497 0.625000 +v -0.406256 -0.812497 0.000000 +v -0.406256 -0.437497 0.000000 +v -0.718756 -0.562497 0.000000 +v -0.718757 -0.562497 0.625000 +v -0.843756 -0.687497 0.312500 +v -0.343756 -0.687497 0.000000 +v -0.843756 -0.562497 0.312500 +v -0.781256 -0.406247 0.268307 +v -0.781256 -0.406247 0.356695 +v -0.737062 -0.406247 0.312500 +v -0.781256 -0.843747 0.356695 +v -0.781256 -0.843747 0.268307 +v -0.737062 -0.843747 0.312500 +v -0.825451 -0.406247 0.312500 +v -0.825451 -0.843747 0.312500 +v -0.367937 -0.624997 0.625000 +v -0.415771 -0.509512 3.125000 +v -0.367935 -0.624997 3.125000 +v -0.415772 -0.509512 0.625000 +v -0.531255 -0.461677 3.125000 +v -0.531257 -0.461677 0.625000 +v -0.646740 -0.509512 3.125000 +v -0.646741 -0.509512 0.625000 +v -0.694575 -0.624997 3.125000 +v -0.646741 -0.740482 0.625000 +v -0.646740 -0.740481 3.125000 +v -0.531255 -0.788317 3.125000 +v -0.415772 -0.740482 0.625000 +v -0.415771 -0.740481 3.125000 +v -0.694577 -0.624997 0.625000 +v -0.531257 -0.788317 0.625000 +vt 0.972158 0.423611 +vt 0.969838 0.430556 +vt 0.969838 0.423611 +vt 0.921114 0.430556 +vt 0.932715 0.437500 +vt 0.921114 0.437500 +vt 0.932715 0.381944 +vt 0.935035 0.375000 +vt 0.935035 0.381944 +vt 0.921114 0.375000 +vt 0.918793 0.368056 +vt 0.921114 0.368056 +vt 0.946636 0.375000 +vt 0.946636 0.381944 +vt 0.921114 0.381944 +vt 0.918793 0.375000 +vt 0.917633 0.423611 +vt 0.921114 0.402778 +vt 0.921114 0.423611 +vt 0.935035 0.423611 +vt 0.946636 0.402778 +vt 0.946636 0.423611 +vt 0.932715 0.423611 +vt 0.935035 0.402778 +vt 0.972158 0.381944 +vt 0.969838 0.402778 +vt 0.969838 0.381944 +vt 0.953596 0.381944 +vt 0.958237 0.402778 +vt 0.953596 0.402778 +vt 0.932715 0.402778 +vt 0.932715 0.375000 +vt 0.948956 0.375000 +vt 0.950116 0.381944 +vt 0.932715 0.368056 +vt 0.918793 0.430556 +vt 0.918793 0.437500 +vt 0.958237 0.423611 +vt 0.953596 0.423611 +vt 0.972158 0.375000 +vt 0.969838 0.375000 +vt 0.917633 0.381944 +vt 0.932715 0.430556 +vt 0.948956 0.430556 +vt 0.950116 0.423611 +vt 0.935035 0.430556 +vt 0.946636 0.430556 +vt 0.972158 0.402778 +vt 0.961717 0.423611 +vt 0.965197 0.402778 +vt 0.961717 0.381944 +vt 0.961717 0.437500 +vt 0.961717 0.368056 +vt 0.958237 0.381944 +vt 0.958237 0.368056 +vt 0.965197 0.381944 +vt 0.944316 0.708333 +vt 0.930394 0.611111 +vt 0.944316 0.611111 +vt 0.930394 0.708333 +vt 0.923434 0.611111 +vt 0.909513 0.708333 +vt 0.909513 0.611111 +vt 0.902552 0.611111 +vt 0.908353 0.576389 +vt 0.923434 0.729167 +vt 0.923434 0.708333 +vt 0.924594 0.576389 +vt 0.929234 0.576389 +vt 0.940835 0.576389 +vt 0.919954 0.576389 +vt 0.988399 0.673611 +vt 0.983759 0.604167 +vt 0.988399 0.604167 +vt 0.972158 0.673611 +vt 0.972158 0.604167 +vt 0.962877 0.673611 +vt 0.958237 0.604167 +vt 0.962877 0.604167 +vt 0.958237 0.673611 +vt 0.946636 0.604167 +vt 0.958237 0.569444 +vt 0.962877 0.562500 +vt 0.958237 0.708333 +vt 0.972158 0.708333 +vt 0.967517 0.673611 +vt 0.967517 0.715278 +vt 0.972158 0.569444 +vt 0.967517 0.604167 +vt 0.967517 0.562500 +vt 0.860789 0.618056 +vt 0.860789 0.548611 +vt 0.865429 0.583333 +vt 0.997680 0.604167 +vt 0.993039 0.673611 +vt 0.993039 0.604167 +vt 0.865429 0.618056 +vt 0.870070 0.583333 +vt 0.870070 0.618056 +vt 0.870070 0.548611 +vt 0.865429 0.548611 +vt 0.874710 0.548611 +vt 0.874710 0.618056 +vt 0.995360 0.694444 +vt 0.993039 0.687500 +vt 0.995360 0.687500 +vt 0.976798 0.687500 +vt 0.974478 0.694444 +vt 0.974478 0.687500 +vt 0.972158 0.430556 +vt 0.914153 0.402778 +vt 0.958237 0.437500 +vt 0.965197 0.423611 +vt 0.902552 0.708333 +vt 0.903712 0.576389 +vt 0.909513 0.729167 +vt 0.933875 0.576389 +vt 0.912993 0.576389 +vt 0.983759 0.673611 +vt 0.946636 0.673611 +vt 0.962877 0.715278 +vt 0.997680 0.673611 +vt 0.993039 0.694444 +vt 0.976798 0.694444 +vt 0.902552 0.527778 +vt 0.995360 0.513889 +vt 0.995360 0.527778 +vt 0.902552 0.513889 +vt 0.995360 0.500000 +vt 0.902552 0.500000 +vt 0.995360 0.486111 +vt 0.902552 0.486111 +vt 0.995360 0.472222 +vt 0.902552 0.458333 +vt 0.995360 0.458333 +vt 0.995360 0.444444 +vt 0.995360 0.555556 +vt 0.902552 0.541667 +vt 0.995360 0.541667 +vt 0.976798 0.708333 +vt 0.993039 0.701389 +vt 0.993039 0.708333 +vt 0.976798 0.680556 +vt 0.993039 0.680556 +vt 0.902552 0.472222 +vt 0.902552 0.444444 +vt 0.902552 0.555556 +vt 0.976798 0.701389 +vn 0.8944 0.4472 -0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.8944 -0.4472 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.9578 0.2873 +vn 0.0000 0.9578 0.2873 +vn 0.9950 0.0000 0.0995 +vn -0.9950 0.0000 0.0995 +vn -0.9285 0.0000 -0.3714 +vn -0.9285 0.0000 0.3714 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 -0.0000 +s off +f 1825/3012/419 1826/3013/419 1827/3014/419 +f 1828/3015/420 1829/3016/420 1830/3017/420 +f 1831/3018/421 1832/3019/421 1833/3020/421 +f 1834/3021/422 1835/3022/422 1836/3023/422 +f 1833/3020/423 1836/3024/423 1837/3025/423 +f 1838/3026/424 1839/3027/424 1834/3021/424 +f 1825/3028/424 1840/3029/424 1841/3030/424 +f 1842/3031/423 1843/3032/423 1844/3033/423 +f 1845/3034/421 1846/3035/421 1842/3031/421 +f 1847/3036/425 1848/3037/425 1849/3038/425 +f 1837/3039/421 1850/3040/421 1843/3041/421 +f 1841/3030/424 1851/3042/424 1845/3034/424 +f 1838/3026/424 1852/3043/424 1831/3018/424 +f 1837/3025/423 1835/3044/423 1849/3045/423 +f 1852/3043/422 1836/3023/422 1832/3046/422 +f 1853/3047/420 1830/3017/420 1826/3048/420 +f 1843/3041/421 1854/3049/421 1844/3050/421 +f 1840/3029/424 1831/3018/424 1851/3042/424 +f 1839/3051/425 1849/3038/425 1835/3052/425 +f 1840/3029/424 1847/3053/424 1838/3026/424 +f 1846/3035/423 1837/3025/423 1843/3032/423 +f 1851/3042/421 1833/3020/421 1846/3035/421 +f 1828/3015/424 1845/3034/424 1855/3054/424 +f 1826/3055/423 1844/3033/423 1827/3056/423 +f 1855/3054/421 1842/3031/421 1829/3057/421 +f 1829/3057/423 1844/3033/423 1830/3058/423 +f 1853/3047/424 1841/3030/424 1828/3015/424 +f 1856/3059/419 1827/3014/419 1848/3037/419 +f 1857/3060/423 1850/3040/423 1858/3061/423 +f 1850/3040/423 1859/3062/423 1858/3061/423 +f 1827/3063/420 1854/3049/420 1857/3060/420 +f 1849/3064/422 1860/3065/422 1837/3066/422 +f 1827/3014/419 1858/3061/419 1848/3037/419 +f 1849/3038/425 1858/3061/425 1859/3067/425 +f 1861/3068/426 1862/3069/426 1863/3070/426 +f 1864/3071/420 1865/3072/420 1862/3069/420 +f 1865/3072/421 1866/3073/421 1867/3074/421 +f 1866/3073/422 1863/3075/422 1867/3074/422 +f 1863/3075/427 1868/3076/427 1867/3074/427 +f 1864/3077/424 1866/3073/424 1869/3078/424 +f 1862/3069/428 1870/3079/428 1871/3080/428 +f 1862/3069/429 1872/3081/429 1863/3070/429 +f 1867/3074/430 1870/3082/430 1865/3072/430 +f 1873/3083/419 1874/3084/419 1875/3085/419 +f 1874/3084/420 1876/3086/420 1877/3087/420 +f 1878/3088/421 1879/3089/421 1880/3090/421 +f 1881/3091/422 1882/3092/422 1879/3089/422 +f 1880/3090/423 1882/3093/423 1883/3094/423 +f 1878/3088/424 1884/3095/424 1881/3091/424 +f 1885/3096/424 1886/3097/424 1876/3086/424 +f 1873/3098/424 1878/3088/424 1886/3097/424 +f 1874/3099/423 1887/3100/423 1875/3101/423 +f 1887/3100/423 1883/3094/423 1875/3101/423 +f 1876/3086/421 1887/3100/421 1877/3087/421 +f 1878/3102/422 1880/3103/422 1888/3104/422 +f 1882/3105/425 1889/3106/425 1883/3107/425 +f 1889/3106/426 1875/3085/426 1883/3107/426 +f 1878/3108/431 1890/3109/431 1886/3110/431 +f 1887/3111/432 1888/3104/432 1880/3112/432 +f 1887/3113/420 1886/3114/420 1890/3109/420 +f 1891/3115/420 1892/3116/420 1893/3117/420 +f 1894/3118/422 1895/3119/422 1896/3120/422 +f 1825/3012/419 1853/3121/419 1826/3013/419 +f 1828/3015/420 1855/3054/420 1829/3016/420 +f 1831/3018/421 1852/3043/421 1832/3019/421 +f 1834/3021/422 1839/3027/422 1835/3022/422 +f 1833/3020/423 1832/3019/423 1836/3024/423 +f 1838/3026/424 1847/3053/424 1839/3027/424 +f 1825/3028/424 1856/3122/424 1840/3029/424 +f 1842/3031/423 1846/3035/423 1843/3032/423 +f 1845/3034/421 1851/3042/421 1846/3035/421 +f 1847/3036/425 1856/3059/425 1848/3037/425 +f 1837/3039/421 1860/3065/421 1850/3040/421 +f 1841/3030/424 1840/3029/424 1851/3042/424 +f 1838/3026/424 1834/3021/424 1852/3043/424 +f 1837/3025/423 1836/3024/423 1835/3044/423 +f 1852/3043/422 1834/3021/422 1836/3023/422 +f 1853/3047/420 1828/3015/420 1830/3017/420 +f 1843/3041/421 1850/3040/421 1854/3049/421 +f 1840/3029/424 1838/3026/424 1831/3018/424 +f 1839/3051/425 1847/3036/425 1849/3038/425 +f 1840/3029/424 1856/3122/424 1847/3053/424 +f 1846/3035/423 1833/3020/423 1837/3025/423 +f 1851/3042/421 1831/3018/421 1833/3020/421 +f 1828/3015/424 1841/3030/424 1845/3034/424 +f 1826/3055/423 1830/3058/423 1844/3033/423 +f 1855/3054/421 1845/3034/421 1842/3031/421 +f 1829/3057/423 1842/3031/423 1844/3033/423 +f 1853/3047/424 1825/3028/424 1841/3030/424 +f 1856/3059/419 1825/3012/419 1827/3014/419 +f 1857/3060/423 1854/3049/423 1850/3040/423 +f 1850/3040/423 1860/3065/423 1859/3062/423 +f 1827/3063/420 1844/3123/420 1854/3049/420 +f 1849/3064/422 1859/3062/422 1860/3065/422 +f 1827/3014/419 1857/3124/419 1858/3061/419 +f 1849/3038/425 1848/3037/425 1858/3061/425 +f 1861/3068/426 1864/3071/426 1862/3069/426 +f 1864/3071/420 1869/3078/420 1865/3072/420 +f 1865/3072/421 1869/3078/421 1866/3073/421 +f 1866/3073/422 1861/3125/422 1863/3075/422 +f 1863/3075/427 1872/3126/427 1868/3076/427 +f 1864/3077/424 1861/3127/424 1866/3073/424 +f 1862/3069/428 1865/3072/428 1870/3079/428 +f 1862/3069/429 1871/3128/429 1872/3081/429 +f 1867/3074/430 1868/3129/430 1870/3082/430 +f 1873/3083/419 1885/3130/419 1874/3084/419 +f 1874/3084/420 1885/3130/420 1876/3086/420 +f 1878/3088/421 1881/3091/421 1879/3089/421 +f 1881/3091/422 1884/3131/422 1882/3092/422 +f 1880/3090/423 1879/3089/423 1882/3093/423 +f 1878/3088/424 1889/3132/424 1884/3095/424 +f 1885/3096/424 1873/3098/424 1886/3097/424 +f 1873/3098/424 1889/3132/424 1878/3088/424 +f 1874/3099/423 1877/3087/423 1887/3100/423 +f 1887/3100/423 1880/3090/423 1883/3094/423 +f 1876/3086/421 1886/3097/421 1887/3100/421 +f 1882/3105/425 1884/3133/425 1889/3106/425 +f 1889/3106/426 1873/3083/426 1875/3085/426 +f 1878/3108/431 1888/3104/431 1890/3109/431 +f 1887/3111/432 1890/3109/432 1888/3104/432 +f 1891/3115/420 1897/3134/420 1892/3116/420 +f 1894/3118/422 1898/3135/422 1895/3119/422 +s 1 +f 1899/3136/426 1900/3137/433 1901/3138/426 +f 1902/3139/433 1903/3140/420 1900/3137/433 +f 1904/3141/420 1905/3142/434 1903/3140/420 +f 1906/3143/434 1907/3144/421 1905/3142/434 +f 1907/3144/421 1908/3145/435 1909/3146/435 +f 1908/3145/435 1910/3147/422 1909/3146/435 +f 1910/3148/422 1911/3149/436 1912/3150/436 +f 1911/3149/436 1901/3138/426 1912/3150/436 +f 1896/3151/426 1891/3152/424 1893/3153/426 +f 1897/3134/421 1894/3118/423 1892/3116/423 +f 1892/3116/423 1896/3154/426 1893/3155/426 +f 1891/3152/424 1898/3135/421 1897/3134/421 +f 1899/3136/426 1902/3139/433 1900/3137/433 +f 1902/3139/433 1904/3141/420 1903/3140/420 +f 1904/3141/420 1906/3143/434 1905/3142/434 +f 1906/3143/434 1913/3156/421 1907/3144/421 +f 1907/3144/421 1913/3156/421 1908/3145/435 +f 1908/3145/435 1914/3157/422 1910/3147/422 +f 1910/3148/422 1914/3158/422 1911/3149/436 +f 1911/3149/436 1899/3136/426 1901/3138/426 +f 1896/3151/426 1895/3159/424 1891/3152/424 +f 1897/3134/421 1898/3135/421 1894/3118/423 +f 1892/3116/423 1894/3118/423 1896/3154/426 +f 1891/3152/424 1895/3159/424 1898/3135/421 +o BipodHingeRight +v -0.187508 -0.374997 -1.250000 +v -0.187508 -0.499997 -0.750000 +v -0.187508 -0.499997 -1.250000 +v -0.187508 -0.374997 -0.750000 +v -0.312508 -0.499997 -0.750000 +v -0.312508 -0.499997 -1.250000 +v -0.437508 -0.874997 -1.250000 +v -0.437508 -0.499997 -1.250000 +v -0.312508 -0.374997 -1.250000 +v -0.312508 -0.374997 -0.750000 +v -0.437507 -0.374997 -0.750000 +v -0.437508 -0.499997 -0.750000 +v -0.437507 -0.374997 -1.250000 +v -0.312508 -0.874997 -0.750000 +v -0.312508 -0.874997 -1.250000 +v -0.437508 -0.874997 -0.750000 +vt 0.900232 0.312500 +vt 0.918793 0.326389 +vt 0.900232 0.326389 +vt 0.918793 0.312500 +vt 0.923434 0.298611 +vt 0.923434 0.312500 +vt 0.895592 0.270833 +vt 0.900232 0.229167 +vt 0.900232 0.270833 +vt 0.900232 0.298611 +vt 0.895592 0.312500 +vt 0.895592 0.298611 +vt 0.918793 0.340278 +vt 0.918793 0.298611 +vt 0.918793 0.284722 +vt 0.918793 0.270833 +vt 0.923434 0.284722 +vt 0.900232 0.284722 +vt 0.918793 0.215278 +vt 0.900232 0.215278 +vt 0.918793 0.229167 +vt 0.877030 0.270833 +vt 0.895592 0.229167 +vt 0.923434 0.229167 +vt 0.923434 0.270833 +vt 0.900232 0.340278 +vt 0.895592 0.284722 +vt 0.877030 0.229167 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 1915/3160/437 1916/3161/437 1917/3162/437 +f 1918/3163/438 1919/3164/438 1916/3165/438 +f 1920/3166/439 1921/3167/439 1922/3168/439 +f 1923/3169/439 1917/3170/439 1920/3171/439 +f 1919/3172/440 1917/3162/440 1916/3161/440 +f 1918/3163/441 1923/3169/441 1924/3173/441 +f 1925/3174/442 1922/3168/442 1926/3175/442 +f 1923/3169/441 1925/3174/441 1924/3173/441 +f 1919/3164/438 1925/3174/438 1926/3176/438 +f 1920/3171/439 1927/3177/439 1923/3169/439 +f 1928/3178/440 1921/3167/440 1929/3179/440 +f 1922/3168/442 1930/3180/442 1926/3175/442 +f 1919/3181/437 1929/3182/437 1920/3166/437 +f 1926/3175/438 1928/3183/438 1919/3184/438 +f 1915/3160/437 1918/3163/437 1916/3161/437 +f 1918/3163/438 1924/3173/438 1919/3164/438 +f 1920/3166/439 1929/3182/439 1921/3167/439 +f 1923/3169/439 1915/3160/439 1917/3170/439 +f 1919/3172/440 1920/3185/440 1917/3162/440 +f 1918/3163/441 1915/3160/441 1923/3169/441 +f 1925/3174/442 1927/3177/442 1922/3168/442 +f 1923/3169/441 1927/3177/441 1925/3174/441 +f 1919/3164/438 1924/3173/438 1925/3174/438 +f 1920/3171/439 1922/3186/439 1927/3177/439 +f 1928/3178/440 1930/3180/440 1921/3167/440 +f 1922/3168/442 1921/3167/442 1930/3180/442 +f 1919/3181/437 1928/3187/437 1929/3182/437 +f 1926/3175/438 1930/3180/438 1928/3183/438 +o MuzzleBrake +v 0.375006 0.937501 9.750000 +v 0.375006 0.625001 10.500000 +v 0.375006 0.625001 9.750000 +v -0.374994 0.937501 10.500000 +v -0.374994 0.625001 9.750000 +v -0.374994 0.625001 10.500000 +v 0.125006 0.937501 9.750000 +v 0.125006 0.625001 9.750000 +v -0.374994 0.312501 10.500000 +v -0.124994 0.312501 9.750000 +v -0.124994 0.312501 10.500000 +v 0.375006 0.937501 10.500000 +v 0.125006 0.937501 10.500000 +v -0.437494 0.937501 10.750000 +v -0.390619 1.000001 10.562500 +v -0.437494 0.312501 10.750000 +v -0.499994 0.250001 11.000000 +v -0.499994 0.312501 11.000000 +v -0.124994 0.937501 11.750000 +v -0.687494 0.812501 11.750000 +v -0.124994 0.812501 11.750000 +v 0.625006 0.937501 11.500000 +v 0.687506 0.812501 11.750000 +v 0.625006 0.812501 11.500000 +v -0.624994 0.312501 11.500000 +v -0.687494 0.437501 11.750000 +v -0.624994 0.437501 11.500000 +v 0.437506 0.937501 10.750000 +v 0.390631 1.000001 10.562500 +v 0.437506 1.000001 10.750000 +v -0.624994 1.125001 11.500000 +v -0.124994 1.125001 11.750000 +v -0.124994 1.125001 11.500000 +v 0.500006 1.000001 11.000000 +v 0.500006 0.937501 11.000000 +v -0.687494 0.937501 11.750000 +v -0.624994 0.937501 11.500000 +v 0.687506 0.937501 11.750000 +v 0.125006 1.125001 11.750000 +v 0.125006 0.937501 11.750000 +v -0.390619 0.250001 10.562500 +v -0.437494 0.250001 10.750000 +v 0.625006 0.125001 11.500000 +v 0.125006 0.125001 11.750000 +v 0.125006 0.125001 11.500000 +v -0.687494 0.312501 11.750000 +v -0.124994 0.125001 11.750000 +v -0.124994 0.312501 11.750000 +v 0.437506 0.312501 10.750000 +v 0.390631 0.250001 10.562500 +v 0.375006 0.312501 10.500000 +v 0.687506 0.312501 11.750000 +v 0.625006 0.312501 11.500000 +v 0.125006 0.250001 10.750000 +v 0.125006 0.250001 10.562500 +v 0.500006 0.312501 11.000000 +v 0.437506 0.250001 10.750000 +v 0.562506 0.312501 11.250000 +v 0.500006 0.250001 11.000000 +v 0.562506 0.187501 11.250000 +v 0.125006 0.250001 11.000000 +v 0.125006 0.187501 11.250000 +v -0.499994 0.937501 11.000000 +v -0.437494 1.000001 10.750000 +v -0.562494 0.937501 11.250000 +v -0.499994 1.000001 11.000000 +v -0.562494 1.062501 11.250000 +v 0.687506 1.125001 11.750000 +v 0.562506 1.062501 11.250000 +v 0.625006 1.125001 11.500000 +v 0.562506 0.937501 11.250000 +v -0.124994 1.000001 11.000000 +v -0.124994 1.000001 10.750000 +v -0.124994 1.062501 11.250000 +v -0.593744 0.437501 11.375000 +v 0.593756 0.812501 11.375000 +v -0.687494 0.125001 11.750000 +v -0.562494 0.187501 11.250000 +v -0.624994 0.125001 11.500000 +v -0.562494 0.312501 11.250000 +v 0.593756 0.625001 11.375000 +v 0.625006 0.437501 11.500000 +v 0.593756 0.437501 11.375000 +v -0.593744 0.625001 11.375000 +v -0.624994 0.812501 11.500000 +v -0.593744 0.812501 11.375000 +v -0.624994 0.625001 11.500000 +v 0.625006 0.625001 11.500000 +v 0.687506 0.437501 11.750000 +v -0.187494 0.625001 11.750000 +v -0.124994 0.437501 11.750000 +v 0.375006 0.312501 9.750000 +v 0.125006 0.312501 9.750000 +v -0.374994 0.312501 9.750000 +v 0.687506 0.625001 11.750000 +v -0.687494 0.625001 11.750000 +v -0.124994 1.000001 10.562500 +v -0.124994 0.937501 10.500000 +v 0.125006 0.312501 10.500000 +v 0.125006 1.000001 10.750000 +v 0.125006 1.000001 10.562500 +v -0.124994 0.250001 10.562500 +v 0.125006 0.312501 11.750000 +v 0.125006 0.437501 11.750000 +v 0.187506 0.625001 11.750000 +v -0.124994 0.625001 9.750000 +v 0.125006 1.125001 11.500000 +v 0.125006 1.062501 11.250000 +v 0.125006 1.000001 11.000000 +v -0.124994 0.125001 11.500000 +v -0.124994 0.187501 11.250000 +v -0.124994 0.250001 11.000000 +v -0.124994 0.250001 10.750000 +v 0.687506 0.125001 11.750000 +v -0.687494 1.125001 11.750000 +v 0.125006 0.812501 11.750000 +v -0.374994 0.937501 9.750000 +v -0.124994 0.937501 9.750000 +v -0.192252 1.000001 9.932741 +v -0.192251 1.000001 9.817257 +v -0.307735 1.000001 9.817257 +v -0.192252 1.000001 10.182741 +v -0.192251 1.000001 10.067257 +v -0.307735 1.000001 10.067257 +v -0.192252 1.000001 10.432741 +v -0.192251 1.000001 10.317257 +v -0.307735 1.000001 10.317257 +v -0.307735 0.250001 9.817257 +v -0.192251 0.250001 9.817257 +v -0.192252 0.250001 9.932741 +v -0.307735 0.250001 10.067257 +v -0.192251 0.250001 10.067257 +v -0.192252 0.250001 10.182741 +v -0.307735 0.250001 10.317257 +v -0.192251 0.250001 10.317257 +v -0.192252 0.250001 10.432741 +v -0.307736 1.000001 9.932741 +v -0.249993 1.000001 9.956659 +v -0.168333 1.000001 9.875000 +v -0.249994 1.000001 9.793339 +v -0.331654 1.000001 9.874998 +v -0.307736 1.000001 10.182741 +v -0.249993 1.000001 10.206659 +v -0.168333 1.000001 10.125000 +v -0.249994 1.000001 10.043339 +v -0.331654 1.000001 10.124998 +v -0.307736 1.000001 10.432741 +v -0.249993 1.000001 10.456659 +v -0.168333 1.000001 10.375000 +v -0.249994 1.000001 10.293339 +v -0.331654 1.000001 10.374998 +v -0.249993 0.250001 9.956659 +v -0.307736 0.250001 9.932741 +v -0.331654 0.250001 9.874998 +v -0.249994 0.250001 9.793339 +v -0.168333 0.250001 9.875000 +v -0.249993 0.250001 10.206659 +v -0.307736 0.250001 10.182741 +v -0.331654 0.250001 10.124998 +v -0.249994 0.250001 10.043339 +v -0.168333 0.250001 10.125000 +v -0.249993 0.250001 10.456659 +v -0.307736 0.250001 10.432741 +v -0.331654 0.250001 10.374998 +v -0.249994 0.250001 10.293339 +v -0.168333 0.250001 10.375000 +v -0.124994 0.937501 10.750000 +v -0.124994 0.625001 10.500000 +v -0.124994 0.312501 10.750000 +v -0.124994 0.312501 11.000000 +v -0.124994 0.312501 11.250000 +v -0.124994 0.437501 11.375000 +v -0.187494 0.625001 11.375000 +v -0.124994 0.812501 11.375000 +v -0.124994 0.937501 11.250000 +v -0.124994 0.937501 11.000000 +v 0.125006 0.437501 11.375000 +v 0.125006 0.937501 11.000000 +v 0.125006 0.937501 10.750000 +v 0.125006 0.937501 11.250000 +v 0.125006 0.812501 11.375000 +v 0.187506 0.625001 11.375000 +v 0.125006 0.312501 11.250000 +v 0.125006 0.312501 11.000000 +v 0.125006 0.312501 10.750000 +v 0.125006 0.625001 10.500000 +v -0.192252 0.937501 9.932741 +v -0.249993 0.937501 9.956659 +v -0.307736 0.937501 9.932741 +v -0.331654 0.937501 9.874998 +v -0.307735 0.937501 9.817257 +v -0.249994 0.937501 9.793339 +v -0.192251 0.937501 9.817257 +v -0.168333 0.937501 9.875000 +v -0.192252 0.937501 10.182741 +v -0.249993 0.937501 10.206659 +v -0.307736 0.937501 10.182741 +v -0.331654 0.937501 10.124998 +v -0.307735 0.937501 10.067257 +v -0.249994 0.937501 10.043339 +v -0.192251 0.937501 10.067257 +v -0.168333 0.937501 10.125000 +v -0.192252 0.937501 10.432741 +v -0.249993 0.937501 10.456659 +v -0.307736 0.937501 10.432741 +v -0.331654 0.937501 10.374998 +v -0.307735 0.937501 10.317257 +v -0.249994 0.937501 10.293339 +v -0.192251 0.937501 10.317257 +v -0.168333 0.937501 10.375000 +v -0.249993 0.312501 9.956659 +v -0.192252 0.312501 9.932741 +v -0.307736 0.312501 9.932741 +v -0.331654 0.312501 9.874998 +v -0.307735 0.312501 9.817257 +v -0.249994 0.312501 9.793339 +v -0.168333 0.312501 9.875000 +v -0.192251 0.312501 9.817257 +v -0.249993 0.312501 10.206659 +v -0.192252 0.312501 10.182741 +v -0.307736 0.312501 10.182741 +v -0.331654 0.312501 10.124998 +v -0.307735 0.312501 10.067257 +v -0.249994 0.312501 10.043339 +v -0.168333 0.312501 10.125000 +v -0.192251 0.312501 10.067257 +v -0.249993 0.312501 10.456659 +v -0.192252 0.312501 10.432741 +v -0.307736 0.312501 10.432741 +v -0.331654 0.312501 10.374998 +v -0.307735 0.312501 10.317257 +v -0.249994 0.312501 10.293339 +v -0.168333 0.312501 10.375000 +v -0.192251 0.312501 10.317257 +vt 0.918793 0.972222 +vt 0.890951 0.937500 +vt 0.918793 0.937500 +vt 0.872390 0.875000 +vt 0.844548 0.840278 +vt 0.872390 0.840278 +vt 0.930394 0.993056 +vt 0.921114 0.958333 +vt 0.930394 0.958333 +vt 0.814385 0.701389 +vt 0.842227 0.729167 +vt 0.814385 0.729167 +vt 0.795824 0.659722 +vt 0.767981 0.631944 +vt 0.795824 0.631944 +vt 0.881671 0.875000 +vt 0.874710 0.881944 +vt 0.881671 0.805556 +vt 0.890951 0.798611 +vt 0.890951 0.805556 +vt 0.865429 0.763889 +vt 0.844548 0.750000 +vt 0.865429 0.750000 +vt 0.853828 0.972222 +vt 0.844548 0.958333 +vt 0.853828 0.958333 +vt 0.909513 0.805556 +vt 0.918793 0.819444 +vt 0.909513 0.819444 +vt 0.881671 0.972222 +vt 0.888631 0.979167 +vt 0.881671 0.979167 +vt 0.832947 0.548611 +vt 0.842227 0.604167 +vt 0.832947 0.604167 +vt 0.872390 0.979167 +vt 0.872390 0.972222 +vt 0.918793 0.875000 +vt 0.909513 0.895833 +vt 0.909513 0.875000 +vt 0.895592 0.763889 +vt 0.874710 0.784722 +vt 0.874710 0.763889 +vt 0.874710 0.798611 +vt 0.881671 0.798611 +vt 0.777262 0.812500 +vt 0.767981 0.756944 +vt 0.777262 0.756944 +vt 0.844548 0.694444 +vt 0.865429 0.673611 +vt 0.865429 0.694444 +vt 0.881671 0.902778 +vt 0.888631 0.895833 +vt 0.890951 0.902778 +vt 0.844548 0.902778 +vt 0.853828 0.881944 +vt 0.853828 0.902778 +vt 0.812065 0.786458 +vt 0.805104 0.756944 +vt 0.812065 0.756944 +vt 0.872390 0.902778 +vt 0.881671 0.895833 +vt 0.863109 0.902778 +vt 0.872390 0.895833 +vt 0.863109 0.888889 +vt 0.805104 0.791667 +vt 0.795824 0.756944 +vt 0.795824 0.798611 +vt 0.786543 0.756944 +vt 0.786543 0.805556 +vt 0.890951 0.875000 +vt 0.881671 0.881944 +vt 0.900232 0.875000 +vt 0.890951 0.881944 +vt 0.900232 0.888889 +vt 0.844548 0.993056 +vt 0.844548 0.972222 +vt 0.863109 0.986111 +vt 0.853828 0.993056 +vt 0.863109 0.972222 +vt 0.805104 0.569444 +vt 0.814385 0.604167 +vt 0.805104 0.604167 +vt 0.814385 0.562500 +vt 0.823666 0.604167 +vt 0.823666 0.555556 +vt 0.904872 0.819444 +vt 0.858469 0.958333 +vt 0.918793 0.784722 +vt 0.918793 0.805556 +vt 0.900232 0.791667 +vt 0.909513 0.784722 +vt 0.900232 0.805556 +vt 0.858469 0.937500 +vt 0.853828 0.916667 +vt 0.858469 0.916667 +vt 0.904872 0.840278 +vt 0.909513 0.861111 +vt 0.904872 0.861111 +vt 0.890951 0.972222 +vt 0.909513 0.840278 +vt 0.918793 0.861111 +vt 0.853828 0.937500 +vt 0.844548 0.916667 +vt 0.863109 0.729167 +vt 0.844548 0.708333 +vt 0.865429 0.708333 +vt 0.872390 0.805556 +vt 0.921114 0.923611 +vt 0.930394 0.923611 +vt 0.844548 0.805556 +vt 0.918793 0.902778 +vt 0.844548 0.937500 +vt 0.844548 0.729167 +vt 0.918793 0.840278 +vt 0.795824 0.576389 +vt 0.798144 0.604167 +vt 0.795824 0.604167 +vt 0.814385 0.784722 +vt 0.814385 0.756944 +vt 0.798144 0.574653 +vt 0.798144 0.661458 +vt 0.805104 0.631944 +vt 0.805104 0.666667 +vt 0.798144 0.631944 +vt 0.812065 0.729167 +vt 0.812065 0.699653 +vt 0.895592 0.708333 +vt 0.874710 0.694444 +vt 0.895592 0.694444 +vt 0.874710 0.708333 +vt 0.895592 0.750000 +vt 0.877030 0.729167 +vt 0.895592 0.729167 +vt 0.948956 0.958333 +vt 0.939675 0.923611 +vt 0.948956 0.923611 +vt 0.939675 0.958333 +vt 0.823666 0.680556 +vt 0.832947 0.631944 +vt 0.832947 0.687500 +vt 0.823666 0.631944 +vt 0.814385 0.673611 +vt 0.814385 0.631944 +vt 0.786543 0.680556 +vt 0.777262 0.729167 +vt 0.777262 0.673611 +vt 0.786543 0.729167 +vt 0.795824 0.687500 +vt 0.795824 0.729167 +vt 0.805104 0.694444 +vt 0.805104 0.729167 +vt 0.895592 0.673611 +vt 0.874710 0.673611 +vt 0.767981 0.729167 +vt 0.767981 0.666667 +vt 0.844548 0.784722 +vt 0.844548 0.763889 +vt 0.865429 0.784722 +vt 0.842227 0.631944 +vt 0.842227 0.694444 +vt 0.874710 0.750000 +vt 0.767981 0.576389 +vt 0.767981 0.604167 +vt 0.842227 0.784722 +vt 0.842227 0.756944 +vt 0.948956 0.993056 +vt 0.939675 0.993056 +vt 0.152017 0.420167 +vt 0.152017 0.433749 +vt 0.147479 0.433749 +vt 0.152017 0.420167 +vt 0.152017 0.433749 +vt 0.147479 0.433749 +vt 0.152017 0.420167 +vt 0.152017 0.433749 +vt 0.147479 0.433749 +vt 0.147479 0.433749 +vt 0.152017 0.433749 +vt 0.152017 0.420167 +vt 0.147479 0.433749 +vt 0.152017 0.433749 +vt 0.152017 0.420167 +vt 0.147479 0.433749 +vt 0.152017 0.433749 +vt 0.152017 0.420167 +vt 0.844548 0.875000 +vt 0.921114 0.993056 +vt 0.842227 0.701389 +vt 0.767981 0.659722 +vt 0.842227 0.541667 +vt 0.918793 0.895833 +vt 0.895592 0.784722 +vt 0.767981 0.819444 +vt 0.844548 0.673611 +vt 0.844548 0.881944 +vt 0.147479 0.420167 +vt 0.149748 0.417354 +vt 0.152957 0.426958 +vt 0.149748 0.436562 +vt 0.146540 0.426958 +vt 0.147479 0.420167 +vt 0.149748 0.417354 +vt 0.152957 0.426958 +vt 0.149748 0.436562 +vt 0.146540 0.426958 +vt 0.147479 0.420167 +vt 0.149748 0.417354 +vt 0.152957 0.426958 +vt 0.149748 0.436562 +vt 0.146540 0.426958 +vt 0.149748 0.417354 +vt 0.147479 0.420167 +vt 0.146540 0.426958 +vt 0.149748 0.436562 +vt 0.152957 0.426958 +vt 0.149748 0.417354 +vt 0.147479 0.420167 +vt 0.146540 0.426958 +vt 0.149748 0.436562 +vt 0.152957 0.426958 +vt 0.149748 0.417354 +vt 0.147479 0.420167 +vt 0.146540 0.426958 +vt 0.149748 0.436562 +vt 0.152957 0.426958 +vt 0.879350 0.458333 +vt 0.895592 0.430556 +vt 0.895592 0.458333 +vt 0.798144 0.430556 +vt 0.814385 0.458333 +vt 0.798144 0.458333 +vt 0.814385 0.423611 +vt 0.823666 0.458333 +vt 0.823666 0.416667 +vt 0.832947 0.458333 +vt 0.832947 0.409722 +vt 0.839907 0.458333 +vt 0.839907 0.406250 +vt 0.846868 0.451389 +vt 0.853828 0.406250 +vt 0.853828 0.458333 +vt 0.860789 0.409722 +vt 0.860789 0.458333 +vt 0.870070 0.416667 +vt 0.870070 0.458333 +vt 0.879350 0.423611 +vt 0.867749 0.666667 +vt 0.860789 0.625000 +vt 0.867749 0.625000 +vt 0.877030 0.666667 +vt 0.877030 0.625000 +vt 0.870070 0.486111 +vt 0.879350 0.520833 +vt 0.870070 0.527778 +vt 0.879350 0.486111 +vt 0.860789 0.486111 +vt 0.860789 0.534722 +vt 0.853828 0.486111 +vt 0.853828 0.539931 +vt 0.846868 0.493056 +vt 0.846868 0.539931 +vt 0.883991 0.666667 +vt 0.883991 0.625000 +vt 0.839907 0.539931 +vt 0.890951 0.666667 +vt 0.890951 0.625000 +vt 0.832947 0.534722 +vt 0.839907 0.486111 +vt 0.832947 0.486111 +vt 0.823666 0.527778 +vt 0.823666 0.486111 +vt 0.814385 0.520833 +vt 0.814385 0.486111 +vt 0.798144 0.513889 +vt 0.798144 0.486111 +vt 0.895592 0.513889 +vt 0.895592 0.486111 +vt 0.860789 0.666667 +vt 0.853828 0.625000 +vt 0.853828 0.666667 +vt 0.844548 0.625000 +vt 0.139211 0.423611 +vt 0.141531 0.416667 +vt 0.141531 0.423611 +vt 0.143852 0.423611 +vt 0.125290 0.416667 +vt 0.127610 0.423611 +vt 0.125290 0.423611 +vt 0.127610 0.416667 +vt 0.129930 0.423611 +vt 0.129930 0.416667 +vt 0.132251 0.423611 +vt 0.132251 0.416667 +vt 0.134571 0.423611 +vt 0.134571 0.416667 +vt 0.136891 0.423611 +vt 0.136891 0.416667 +vt 0.139211 0.423611 +vt 0.141531 0.416667 +vt 0.141531 0.423611 +vt 0.143852 0.423611 +vt 0.125290 0.416667 +vt 0.127610 0.423611 +vt 0.125290 0.423611 +vt 0.127610 0.416667 +vt 0.129930 0.423611 +vt 0.129930 0.416667 +vt 0.132251 0.423611 +vt 0.132251 0.416667 +vt 0.134571 0.423611 +vt 0.134571 0.416667 +vt 0.136891 0.423611 +vt 0.136891 0.416667 +vt 0.139211 0.423611 +vt 0.141531 0.416667 +vt 0.141531 0.423611 +vt 0.143852 0.423611 +vt 0.125290 0.416667 +vt 0.127610 0.423611 +vt 0.125290 0.423611 +vt 0.127610 0.416667 +vt 0.129930 0.423611 +vt 0.129930 0.416667 +vt 0.132251 0.423611 +vt 0.132251 0.416667 +vt 0.134571 0.423611 +vt 0.134571 0.416667 +vt 0.136891 0.423611 +vt 0.136891 0.416667 +vt 0.141531 0.423611 +vt 0.139211 0.416667 +vt 0.139211 0.423611 +vt 0.143852 0.423611 +vt 0.141531 0.416667 +vt 0.127610 0.423611 +vt 0.125290 0.416667 +vt 0.125290 0.423611 +vt 0.129930 0.423611 +vt 0.127610 0.416667 +vt 0.132251 0.423611 +vt 0.129930 0.416667 +vt 0.134571 0.416667 +vt 0.132251 0.416667 +vt 0.136891 0.423611 +vt 0.134571 0.423611 +vt 0.136891 0.416667 +vt 0.141531 0.423611 +vt 0.139211 0.416667 +vt 0.139211 0.423611 +vt 0.143852 0.423611 +vt 0.141531 0.416667 +vt 0.127610 0.423611 +vt 0.125290 0.416667 +vt 0.125290 0.423611 +vt 0.129930 0.423611 +vt 0.127610 0.416667 +vt 0.132251 0.423611 +vt 0.129930 0.416667 +vt 0.134571 0.416667 +vt 0.132251 0.416667 +vt 0.136891 0.423611 +vt 0.134571 0.423611 +vt 0.136891 0.416667 +vt 0.141531 0.423611 +vt 0.139211 0.416667 +vt 0.139211 0.423611 +vt 0.143852 0.423611 +vt 0.141531 0.416667 +vt 0.127610 0.423611 +vt 0.125290 0.416667 +vt 0.125290 0.423611 +vt 0.129930 0.423611 +vt 0.127610 0.416667 +vt 0.132251 0.423611 +vt 0.129930 0.416667 +vt 0.134571 0.416667 +vt 0.132251 0.416667 +vt 0.136891 0.423611 +vt 0.134571 0.423611 +vt 0.136891 0.416667 +vt 0.846868 0.406250 +vt 0.844548 0.666667 +vt 0.139211 0.416667 +vt 0.143852 0.416667 +vt 0.139211 0.416667 +vt 0.143852 0.416667 +vt 0.139211 0.416667 +vt 0.143852 0.416667 +vt 0.143852 0.416667 +vt 0.143852 0.416667 +vt 0.143852 0.416667 +vn 1.0000 0.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9701 -0.0000 -0.2425 +vn 0.0000 0.0000 1.0000 +vn 0.9701 0.0000 -0.2425 +vn 0.0000 -0.9701 -0.2425 +vn 0.0000 0.9701 -0.2425 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.9013 0.4332 +vn 0.0000 -0.6247 0.7809 +vn 0.0000 0.6247 0.7809 +vn 0.0000 0.9013 0.4332 +vn 0.0000 0.9254 0.3789 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.9008 -0.4343 +vn 0.0000 0.5391 -0.8422 +vn 0.0000 0.3600 -0.9330 +vn 0.0000 -0.3600 -0.9330 +vn 0.0000 -0.5391 -0.8422 +vn 0.0000 -0.9008 -0.4343 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9254 0.3789 +vn 0.5847 0.8112 -0.0000 +vn -0.5847 0.8112 0.0000 +vn -0.5847 -0.8112 0.0000 +vn 0.5847 -0.8112 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +s off +f 1931/3188/443 1932/3189/443 1933/3190/443 +f 1934/3191/444 1935/3192/444 1936/3193/444 +f 1937/3194/445 1933/3195/445 1938/3196/445 +f 1939/3197/446 1940/3198/446 1941/3199/446 +f 1942/3200/447 1937/3201/447 1943/3202/447 +f 1944/3203/448 1945/3204/448 1934/3191/448 +f 1946/3205/448 1947/3206/448 1948/3207/448 +f 1949/3208/449 1950/3209/449 1951/3210/449 +f 1952/3211/450 1953/3212/450 1954/3213/450 +f 1955/3214/448 1956/3215/448 1957/3216/448 +f 1958/3217/450 1959/3218/450 1960/3219/450 +f 1961/3220/447 1962/3221/447 1963/3222/447 +f 1958/3217/450 1964/3223/450 1965/3224/450 +f 1966/3225/448 1961/3226/448 1967/3227/448 +f 1968/3228/449 1969/3229/449 1970/3230/449 +f 1946/3205/448 1971/3231/448 1972/3232/448 +f 1973/3233/446 1974/3234/446 1975/3235/446 +f 1976/3236/449 1977/3237/449 1978/3238/449 +f 1979/3239/450 1980/3240/450 1981/3241/450 +f 1982/3242/450 1973/3243/450 1983/3244/450 +f 1980/3245/446 1984/3246/446 1985/3247/446 +f 1986/3248/450 1987/3249/450 1979/3239/450 +f 1988/3250/450 1989/3251/450 1986/3248/450 +f 1983/3244/450 1990/3252/450 1988/3250/450 +f 1987/3253/446 1991/3254/446 1984/3246/446 +f 1989/3255/451 1992/3256/451 1991/3254/451 +f 1990/3257/451 1975/3235/451 1992/3256/451 +f 1993/3258/448 1994/3259/448 1944/3203/448 +f 1995/3260/448 1996/3261/448 1993/3258/448 +f 1967/3227/448 1997/3262/448 1995/3260/448 +f 1952/3211/450 1998/3263/450 1968/3264/450 +f 1952/3211/450 1999/3265/450 2000/3266/450 +f 2001/3267/450 1964/3223/450 1999/3265/450 +f 1994/3268/447 2002/3269/447 2003/3270/447 +f 1996/3271/452 2004/3272/452 2002/3269/452 +f 1997/3273/452 1963/3222/452 2004/3272/452 +f 2005/3274/448 1955/3214/448 1957/3216/448 +f 2006/3275/450 1952/3211/450 1954/3213/450 +f 1955/3214/448 2007/3276/448 1976/3277/448 +f 1955/3214/448 2008/3278/448 2009/3279/448 +f 2010/3280/448 1947/3206/448 2008/3278/448 +f 2011/3281/450 2012/3282/450 2013/3283/450 +f 2014/3284/448 2015/3285/448 2016/3286/448 +f 1942/3287/450 1958/3217/450 1932/3189/450 +f 1944/3203/448 1934/3191/448 1936/3193/448 +f 2017/3288/448 1950/3289/448 2015/3285/448 +f 2018/3290/450 2019/3291/450 2012/3282/450 +f 2020/3292/449 1956/3293/449 2021/3294/449 +f 1981/3241/450 1932/3189/450 1979/3239/450 +f 1939/3295/448 1946/3205/448 1936/3193/448 +f 1938/3196/445 2022/3296/445 2023/3297/445 +f 1936/3193/444 2024/3298/444 1939/3295/444 +f 1933/3190/443 1981/3241/443 2022/3299/443 +f 2015/3285/448 1966/3225/448 1967/3227/448 +f 2016/3286/448 1967/3227/448 1995/3260/448 +f 2006/3275/450 2018/3290/450 2011/3281/450 +f 1954/3213/450 2025/3300/450 2018/3290/450 +f 2020/3292/449 1950/3209/449 2026/3301/449 +f 2021/3294/449 1976/3236/449 1978/3238/449 +f 2012/3282/450 1982/3242/450 1983/3244/450 +f 2013/3283/450 1983/3244/450 1988/3250/450 +f 2005/3274/448 2017/3288/448 2014/3284/448 +f 1957/3216/448 2026/3302/448 2017/3288/448 +f 1934/3303/453 2027/3304/453 2028/3305/453 +f 1981/3306/454 1985/3247/454 2029/3307/454 +f 1945/3308/447 2003/3270/447 2027/3304/447 +f 1959/3309/447 2030/3310/447 1960/3311/447 +f 2027/3304/447 2030/3310/447 2031/3312/447 +f 1939/3197/454 2032/3313/454 1971/3314/454 +f 2029/3307/454 2032/3313/454 1941/3199/454 +f 1942/3200/453 2031/3312/453 1959/3309/453 +f 2028/3305/453 2031/3312/453 1943/3202/453 +f 2019/3315/449 2033/3316/449 1982/3317/449 +f 2034/3318/449 1978/3238/449 2033/3316/449 +f 1953/3319/449 2035/3320/449 2025/3321/449 +f 1935/3322/445 1940/3323/445 2024/3324/445 +f 2036/3325/445 2023/3297/445 1940/3323/445 +f 2019/3315/449 2035/3320/449 2034/3318/449 +f 1999/3326/452 2037/3327/452 2000/3328/452 +f 2004/3272/452 2037/3327/452 2038/3329/452 +f 1964/3330/452 2038/3329/452 1999/3326/452 +f 2002/3269/452 2038/3329/452 2039/3331/452 +f 1960/3311/447 2039/3331/447 1964/3330/447 +f 2003/3270/447 2039/3331/447 2030/3310/447 +f 2008/3332/451 2040/3333/451 2009/3334/451 +f 1992/3256/451 2040/3333/451 2041/3335/451 +f 1947/3336/451 2041/3335/451 2008/3332/451 +f 1991/3254/451 2041/3335/451 2042/3337/451 +f 1972/3338/446 2042/3337/446 1947/3336/446 +f 1984/3246/446 2042/3337/446 2043/3339/446 +f 1971/3314/446 2043/3339/446 1972/3338/446 +f 1985/3247/446 2043/3339/446 2032/3313/446 +f 2033/3316/449 2044/3340/449 1982/3317/449 +f 1978/3238/449 1974/3341/449 2033/3316/449 +f 2009/3334/446 1977/3342/446 2007/3343/446 +f 1975/3235/446 1977/3342/446 2040/3333/446 +f 1949/3208/449 2045/3344/449 1966/3345/449 +f 1970/3230/449 1962/3346/449 1949/3208/449 +f 2000/3328/447 1969/3347/447 1998/3348/447 +f 1963/3222/447 1969/3347/447 2037/3327/447 +f 1968/3228/449 2046/3349/449 1953/3319/449 +f 1970/3230/449 1951/3210/449 2046/3349/449 +f 2028/3305/447 2047/3350/447 1934/3303/447 +f 1943/3202/447 2048/3351/447 2028/3305/447 +f 2029/3307/446 2022/3352/446 1981/3306/446 +f 1941/3199/446 2023/3353/446 2029/3307/446 +f 2047/3354/445 2036/3325/445 1935/3322/445 +f 2048/3355/445 1938/3196/445 2036/3325/445 +f 2049/3356/447 2050/3357/447 2051/3358/447 +f 2052/3359/447 2053/3360/447 2054/3361/447 +f 2055/3362/447 2056/3363/447 2057/3364/447 +f 2058/3365/446 2059/3366/446 2060/3367/446 +f 2061/3368/446 2062/3369/446 2063/3370/446 +f 2064/3371/446 2065/3372/446 2066/3373/446 +f 1931/3188/443 1942/3287/443 1932/3189/443 +f 1934/3191/444 2047/3374/444 1935/3192/444 +f 1937/3194/445 1931/3375/445 1933/3195/445 +f 1939/3197/446 2024/3376/446 1940/3198/446 +f 1942/3200/447 1931/3377/447 1937/3201/447 +f 1944/3203/448 1994/3259/448 1945/3204/448 +f 1946/3205/448 1972/3232/448 1947/3206/448 +f 1949/3208/449 1966/3345/449 1950/3209/449 +f 1952/3211/450 1968/3264/450 1953/3212/450 +f 1955/3214/448 1976/3277/448 1956/3215/448 +f 1958/3217/450 1942/3287/450 1959/3218/450 +f 1961/3220/447 2045/3378/447 1962/3221/447 +f 1958/3217/450 1960/3219/450 1964/3223/450 +f 1966/3225/448 2045/3379/448 1961/3226/448 +f 1968/3228/449 1998/3380/449 1969/3229/449 +f 1946/3205/448 1939/3295/448 1971/3231/448 +f 1973/3233/446 2044/3381/446 1974/3234/446 +f 1976/3236/449 2007/3382/449 1977/3237/449 +f 1979/3239/450 1987/3249/450 1980/3240/450 +f 1982/3242/450 2044/3383/450 1973/3243/450 +f 1980/3245/446 1987/3253/446 1984/3246/446 +f 1986/3248/450 1989/3251/450 1987/3249/450 +f 1988/3250/450 1990/3252/450 1989/3251/450 +f 1983/3244/450 1973/3243/450 1990/3252/450 +f 1987/3253/446 1989/3255/446 1991/3254/446 +f 1989/3255/451 1990/3257/451 1992/3256/451 +f 1990/3257/451 1973/3233/451 1975/3235/451 +f 1993/3258/448 1996/3261/448 1994/3259/448 +f 1995/3260/448 1997/3262/448 1996/3261/448 +f 1967/3227/448 1961/3226/448 1997/3262/448 +f 1952/3211/450 2000/3266/450 1998/3263/450 +f 1952/3211/450 2001/3267/450 1999/3265/450 +f 2001/3267/450 1965/3224/450 1964/3223/450 +f 1994/3268/447 1996/3271/447 2002/3269/447 +f 1996/3271/452 1997/3273/452 2004/3272/452 +f 1997/3273/452 1961/3220/452 1963/3222/452 +f 2005/3274/448 2010/3280/448 1955/3214/448 +f 2006/3275/450 2001/3267/450 1952/3211/450 +f 1955/3214/448 2009/3279/448 2007/3276/448 +f 1955/3214/448 2010/3280/448 2008/3278/448 +f 2010/3280/448 1948/3207/448 1947/3206/448 +f 2011/3281/450 2018/3290/450 2012/3282/450 +f 2014/3284/448 2017/3288/448 2015/3285/448 +f 2017/3288/448 2026/3302/448 1950/3289/448 +f 2018/3290/450 2025/3300/450 2019/3291/450 +f 2020/3292/449 2026/3301/449 1956/3293/449 +f 1938/3196/445 1933/3195/445 2022/3296/445 +f 1936/3193/444 1935/3192/444 2024/3298/444 +f 1933/3190/443 1932/3189/443 1981/3241/443 +f 2015/3285/448 1950/3289/448 1966/3225/448 +f 2016/3286/448 2015/3285/448 1967/3227/448 +f 2006/3275/450 1954/3213/450 2018/3290/450 +f 1954/3213/450 1953/3212/450 2025/3300/450 +f 2020/3292/449 1951/3210/449 1950/3209/449 +f 2021/3294/449 1956/3293/449 1976/3236/449 +f 2012/3282/450 2019/3291/450 1982/3242/450 +f 2013/3283/450 2012/3282/450 1983/3244/450 +f 2005/3274/448 1957/3216/448 2017/3288/448 +f 1957/3216/448 1956/3215/448 2026/3302/448 +f 1934/3303/453 1945/3308/453 2027/3304/453 +f 1981/3306/454 1980/3245/454 1985/3247/454 +f 1945/3308/447 1994/3268/447 2003/3270/447 +f 1959/3309/447 2031/3312/447 2030/3310/447 +f 2027/3304/447 2003/3270/447 2030/3310/447 +f 1939/3197/454 1941/3199/454 2032/3313/454 +f 2029/3307/454 1985/3247/454 2032/3313/454 +f 1942/3200/453 1943/3202/453 2031/3312/453 +f 2028/3305/453 2027/3304/453 2031/3312/453 +f 2019/3315/449 2034/3318/449 2033/3316/449 +f 2034/3318/449 2021/3294/449 1978/3238/449 +f 1953/3319/449 2046/3349/449 2035/3320/449 +f 1935/3322/445 2036/3325/445 1940/3323/445 +f 2036/3325/445 1938/3196/445 2023/3297/445 +f 2019/3315/449 2025/3321/449 2035/3320/449 +f 1999/3326/452 2038/3329/452 2037/3327/452 +f 2004/3272/452 1963/3222/452 2037/3327/452 +f 1964/3330/452 2039/3331/452 2038/3329/452 +f 2002/3269/452 2004/3272/452 2038/3329/452 +f 1960/3311/447 2030/3310/447 2039/3331/447 +f 2003/3270/447 2002/3269/447 2039/3331/447 +f 2008/3332/451 2041/3335/451 2040/3333/451 +f 1992/3256/451 1975/3235/451 2040/3333/451 +f 1947/3336/451 2042/3337/451 2041/3335/451 +f 1991/3254/451 1992/3256/451 2041/3335/451 +f 1972/3338/446 2043/3339/446 2042/3337/446 +f 1984/3246/446 1991/3254/446 2042/3337/446 +f 1971/3314/446 2032/3313/446 2043/3339/446 +f 1985/3247/446 1984/3246/446 2043/3339/446 +f 2033/3316/449 1974/3341/449 2044/3340/449 +f 1978/3238/449 1977/3237/449 1974/3341/449 +f 2009/3334/446 2040/3333/446 1977/3342/446 +f 1975/3235/446 1974/3234/446 1977/3342/446 +f 1949/3208/449 1962/3346/449 2045/3344/449 +f 1970/3230/449 1969/3229/449 1962/3346/449 +f 2000/3328/447 2037/3327/447 1969/3347/447 +f 1963/3222/447 1962/3221/447 1969/3347/447 +f 1968/3228/449 1970/3230/449 2046/3349/449 +f 1970/3230/449 1949/3208/449 1951/3210/449 +f 2028/3305/447 2048/3351/447 2047/3350/447 +f 1943/3202/447 1937/3201/447 2048/3351/447 +f 2029/3307/446 2023/3353/446 2022/3352/446 +f 1941/3199/446 1940/3198/446 2023/3353/446 +f 2047/3354/445 2048/3355/445 2036/3325/445 +f 2048/3355/445 1937/3194/445 1938/3196/445 +f 2067/3384/447 2068/3385/447 2049/3356/447 +f 2049/3356/447 2069/3386/447 2050/3357/447 +f 2050/3357/447 2070/3387/447 2051/3358/447 +f 2051/3358/447 2071/3388/447 2067/3384/447 +f 2067/3384/447 2049/3356/447 2051/3358/447 +f 2072/3389/447 2073/3390/447 2052/3359/447 +f 2052/3359/447 2074/3391/447 2053/3360/447 +f 2053/3360/447 2075/3392/447 2054/3361/447 +f 2054/3361/447 2076/3393/447 2072/3389/447 +f 2072/3389/447 2052/3359/447 2054/3361/447 +f 2077/3394/447 2078/3395/447 2055/3362/447 +f 2055/3362/447 2079/3396/447 2056/3363/447 +f 2056/3363/447 2080/3397/447 2057/3364/447 +f 2057/3364/447 2081/3398/447 2077/3394/447 +f 2077/3394/447 2055/3362/447 2057/3364/447 +f 2060/3367/446 2082/3399/446 2083/3400/446 +f 2083/3400/446 2084/3401/446 2058/3365/446 +f 2058/3365/446 2085/3402/446 2059/3366/446 +f 2059/3366/446 2086/3403/446 2060/3367/446 +f 2060/3367/446 2083/3400/446 2058/3365/446 +f 2063/3370/446 2087/3404/446 2088/3405/446 +f 2088/3405/446 2089/3406/446 2061/3368/446 +f 2061/3368/446 2090/3407/446 2062/3369/446 +f 2062/3369/446 2091/3408/446 2063/3370/446 +f 2063/3370/446 2088/3405/446 2061/3368/446 +f 2066/3373/446 2092/3409/446 2093/3410/446 +f 2093/3410/446 2094/3411/446 2064/3371/446 +f 2064/3371/446 2095/3412/446 2065/3372/446 +f 2065/3372/446 2096/3413/446 2066/3373/446 +f 2066/3373/446 2093/3410/446 2064/3371/446 +s 1 +f 2097/3414/455 1936/3415/456 2098/3416/456 +f 1936/3417/457 2099/3418/458 2098/3419/457 +f 1946/3420/459 2100/3421/447 2099/3418/458 +f 1948/3422/447 2101/3423/460 2100/3421/447 +f 2010/3424/461 2102/3425/462 2101/3423/460 +f 2005/3426/463 2103/3427/445 2102/3425/462 +f 2103/3427/445 2016/3428/464 2104/3429/465 +f 2104/3429/465 1995/3430/466 2105/3431/467 +f 2105/3431/467 1993/3432/446 2106/3433/446 +f 2106/3433/446 1944/3434/468 2097/3414/455 +f 2102/3435/469 2020/3436/443 2021/3437/469 +f 2107/3438/470 2021/3437/469 2034/3439/470 +f 2108/3440/446 1958/3441/468 1965/3442/446 +f 2106/3433/446 2109/3443/455 2108/3440/446 +f 2110/3444/467 1965/3442/446 2001/3445/466 +f 2105/3431/467 2108/3440/446 2110/3444/467 +f 2111/3446/465 2001/3445/466 2006/3447/464 +f 2104/3429/465 2110/3444/467 2111/3446/465 +f 2112/3448/445 2006/3447/464 2011/3449/445 +f 2112/3450/444 2034/3439/470 2035/3451/444 +f 2013/3452/463 2112/3448/445 2011/3449/445 +f 2111/3453/471 2035/3451/444 2046/3454/471 +f 1988/3455/461 2107/3456/462 2013/3452/463 +f 2101/3423/460 2107/3456/462 2113/3457/460 +f 1986/3458/447 2113/3457/460 1988/3455/461 +f 2100/3421/447 2113/3457/460 2114/3459/447 +f 1979/3460/459 2114/3459/447 1986/3458/447 +f 2099/3418/458 2114/3459/447 2115/3461/458 +f 1932/3462/457 2115/3461/458 1979/3460/459 +f 2098/3419/457 2115/3461/458 2116/3463/457 +f 2109/3443/455 1932/3464/456 1958/3441/468 +f 2097/3414/455 2116/3465/456 2109/3443/455 +f 2103/3466/443 1951/3467/472 2020/3436/443 +f 2104/3468/472 2046/3469/471 1951/3467/472 +f 2117/3470/473 2068/3471/449 2118/3472/449 +f 2068/3471/449 2119/3473/474 2118/3472/449 +f 2067/3474/474 2120/3475/444 2119/3476/474 +f 2071/3477/444 2121/3478/475 2120/3475/444 +f 2051/3479/475 2122/3480/445 2121/3478/475 +f 2070/3481/445 2123/3482/476 2122/3480/445 +f 2050/3483/476 2124/3484/443 2123/3482/476 +f 2069/3485/443 2117/3470/473 2124/3484/443 +f 2125/3486/473 2073/3487/449 2126/3488/449 +f 2073/3487/449 2127/3489/474 2126/3488/449 +f 2072/3490/474 2128/3491/444 2127/3492/474 +f 2076/3493/444 2129/3494/475 2128/3491/444 +f 2054/3495/475 2130/3496/445 2129/3494/475 +f 2075/3497/445 2131/3498/476 2130/3496/445 +f 2053/3499/476 2132/3500/443 2131/3498/476 +f 2074/3501/443 2125/3486/473 2132/3500/443 +f 2133/3502/473 2078/3503/449 2134/3504/449 +f 2078/3503/449 2135/3505/474 2134/3504/449 +f 2077/3506/474 2136/3507/444 2135/3508/474 +f 2081/3509/444 2137/3510/475 2136/3507/444 +f 2057/3511/475 2138/3512/445 2137/3510/475 +f 2080/3513/445 2139/3514/476 2138/3512/445 +f 2056/3515/476 2140/3516/443 2139/3514/476 +f 2079/3517/443 2133/3502/473 2140/3516/443 +f 2141/3518/449 2060/3519/473 2142/3520/473 +f 2143/3521/474 2082/3522/449 2141/3518/449 +f 2144/3523/444 2083/3524/474 2143/3525/474 +f 2145/3526/475 2084/3527/444 2144/3523/444 +f 2146/3528/445 2058/3529/475 2145/3526/475 +f 2146/3528/445 2059/3530/476 2085/3531/445 +f 2147/3532/443 2059/3530/476 2148/3533/476 +f 2142/3520/473 2086/3534/443 2147/3532/443 +f 2149/3535/449 2063/3536/473 2150/3537/473 +f 2151/3538/474 2087/3539/449 2149/3535/449 +f 2152/3540/444 2088/3541/474 2151/3542/474 +f 2153/3543/475 2089/3544/444 2152/3540/444 +f 2154/3545/445 2061/3546/475 2153/3543/475 +f 2154/3545/445 2062/3547/476 2090/3548/445 +f 2155/3549/443 2062/3547/476 2156/3550/476 +f 2150/3537/473 2091/3551/443 2155/3549/443 +f 2157/3552/449 2066/3553/473 2158/3554/473 +f 2159/3555/474 2092/3556/449 2157/3552/449 +f 2160/3557/444 2093/3558/474 2159/3559/474 +f 2161/3560/475 2094/3561/444 2160/3557/444 +f 2162/3562/445 2064/3563/475 2161/3560/475 +f 2162/3562/445 2065/3564/476 2095/3565/445 +f 2163/3566/443 2065/3564/476 2164/3567/476 +f 2158/3554/473 2096/3568/443 2163/3566/443 +f 2097/3414/455 1944/3434/468 1936/3415/456 +f 1936/3417/457 1946/3420/459 2099/3418/458 +f 1946/3420/459 1948/3422/447 2100/3421/447 +f 1948/3422/447 2010/3424/461 2101/3423/460 +f 2010/3424/461 2005/3426/463 2102/3425/462 +f 2005/3426/463 2014/3569/445 2103/3427/445 +f 2103/3427/445 2014/3569/445 2016/3428/464 +f 2104/3429/465 2016/3428/464 1995/3430/466 +f 2105/3431/467 1995/3430/466 1993/3432/446 +f 2106/3433/446 1993/3432/446 1944/3434/468 +f 2102/3435/469 2103/3466/443 2020/3436/443 +f 2107/3438/470 2102/3435/469 2021/3437/469 +f 2108/3440/446 2109/3443/455 1958/3441/468 +f 2106/3433/446 2097/3414/455 2109/3443/455 +f 2110/3444/467 2108/3440/446 1965/3442/446 +f 2105/3431/467 2106/3433/446 2108/3440/446 +f 2111/3446/465 2110/3444/467 2001/3445/466 +f 2104/3429/465 2105/3431/467 2110/3444/467 +f 2112/3448/445 2111/3446/465 2006/3447/464 +f 2112/3450/444 2107/3438/470 2034/3439/470 +f 2013/3452/463 2107/3456/462 2112/3448/445 +f 2111/3453/471 2112/3450/444 2035/3451/444 +f 1988/3455/461 2113/3457/460 2107/3456/462 +f 2101/3423/460 2102/3425/462 2107/3456/462 +f 1986/3458/447 2114/3459/447 2113/3457/460 +f 2100/3421/447 2101/3423/460 2113/3457/460 +f 1979/3460/459 2115/3461/458 2114/3459/447 +f 2099/3418/458 2100/3421/447 2114/3459/447 +f 1932/3462/457 2116/3463/457 2115/3461/458 +f 2098/3419/457 2099/3418/458 2115/3461/458 +f 2109/3443/455 2116/3465/456 1932/3464/456 +f 2097/3414/455 2098/3416/456 2116/3465/456 +f 2103/3466/443 2104/3468/472 1951/3467/472 +f 2104/3468/472 2111/3570/471 2046/3469/471 +f 2117/3470/473 2049/3571/473 2068/3471/449 +f 2068/3471/449 2067/3572/474 2119/3473/474 +f 2067/3474/474 2071/3477/444 2120/3475/444 +f 2071/3477/444 2051/3479/475 2121/3478/475 +f 2051/3479/475 2070/3481/445 2122/3480/445 +f 2070/3481/445 2050/3483/476 2123/3482/476 +f 2050/3483/476 2069/3485/443 2124/3484/443 +f 2069/3485/443 2049/3571/473 2117/3470/473 +f 2125/3486/473 2052/3573/473 2073/3487/449 +f 2073/3487/449 2072/3574/474 2127/3489/474 +f 2072/3490/474 2076/3493/444 2128/3491/444 +f 2076/3493/444 2054/3495/475 2129/3494/475 +f 2054/3495/475 2075/3497/445 2130/3496/445 +f 2075/3497/445 2053/3499/476 2131/3498/476 +f 2053/3499/476 2074/3501/443 2132/3500/443 +f 2074/3501/443 2052/3573/473 2125/3486/473 +f 2133/3502/473 2055/3575/473 2078/3503/449 +f 2078/3503/449 2077/3576/474 2135/3505/474 +f 2077/3506/474 2081/3509/444 2136/3507/444 +f 2081/3509/444 2057/3511/475 2137/3510/475 +f 2057/3511/475 2080/3513/445 2138/3512/445 +f 2080/3513/445 2056/3515/476 2139/3514/476 +f 2056/3515/476 2079/3517/443 2140/3516/443 +f 2079/3517/443 2055/3575/473 2133/3502/473 +f 2141/3518/449 2082/3522/449 2060/3519/473 +f 2143/3521/474 2083/3577/474 2082/3522/449 +f 2144/3523/444 2084/3527/444 2083/3524/474 +f 2145/3526/475 2058/3529/475 2084/3527/444 +f 2146/3528/445 2085/3531/445 2058/3529/475 +f 2146/3528/445 2148/3533/476 2059/3530/476 +f 2147/3532/443 2086/3534/443 2059/3530/476 +f 2142/3520/473 2060/3519/473 2086/3534/443 +f 2149/3535/449 2087/3539/449 2063/3536/473 +f 2151/3538/474 2088/3578/474 2087/3539/449 +f 2152/3540/444 2089/3544/444 2088/3541/474 +f 2153/3543/475 2061/3546/475 2089/3544/444 +f 2154/3545/445 2090/3548/445 2061/3546/475 +f 2154/3545/445 2156/3550/476 2062/3547/476 +f 2155/3549/443 2091/3551/443 2062/3547/476 +f 2150/3537/473 2063/3536/473 2091/3551/443 +f 2157/3552/449 2092/3556/449 2066/3553/473 +f 2159/3555/474 2093/3579/474 2092/3556/449 +f 2160/3557/444 2094/3561/444 2093/3558/474 +f 2161/3560/475 2064/3563/475 2094/3561/444 +f 2162/3562/445 2095/3565/445 2064/3563/475 +f 2162/3562/445 2164/3567/476 2065/3564/476 +f 2163/3566/443 2096/3568/443 2065/3564/476 +f 2158/3554/473 2066/3553/473 2096/3568/443 +o BipodHingeLeft +v 0.187492 -0.499997 -0.750000 +v 0.187492 -0.374997 -1.250000 +v 0.187492 -0.499997 -1.250000 +v 0.312492 -0.499997 -0.750000 +v 0.187492 -0.374997 -0.750000 +v 0.437492 -0.874997 -1.250000 +v 0.312492 -0.499997 -1.250000 +v 0.437492 -0.499997 -1.250000 +v 0.312492 -0.374997 -1.250000 +v 0.312492 -0.374997 -0.750000 +v 0.437492 -0.374997 -0.750000 +v 0.437492 -0.499997 -0.750000 +v 0.437492 -0.374997 -1.250000 +v 0.312492 -0.874997 -0.750000 +v 0.312492 -0.874997 -1.250000 +v 0.437492 -0.874997 -0.750000 +vt 0.930394 0.326389 +vt 0.948956 0.312500 +vt 0.948956 0.326389 +vt 0.925754 0.298611 +vt 0.930394 0.312500 +vt 0.925754 0.312500 +vt 0.948956 0.229167 +vt 0.953596 0.270833 +vt 0.948956 0.270833 +vt 0.953596 0.312500 +vt 0.948956 0.298611 +vt 0.953596 0.298611 +vt 0.930394 0.340278 +vt 0.930394 0.298611 +vt 0.930394 0.284722 +vt 0.930394 0.270833 +vt 0.948956 0.284722 +vt 0.930394 0.215278 +vt 0.948956 0.215278 +vt 0.930394 0.229167 +vt 0.953596 0.229167 +vt 0.972158 0.270833 +vt 0.925754 0.229167 +vt 0.925754 0.270833 +vt 0.948956 0.340278 +vt 0.925754 0.284722 +vt 0.953596 0.284722 +vt 0.972158 0.229167 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +s off +f 2165/3580/477 2166/3581/477 2167/3582/477 +f 2168/3583/478 2169/3584/478 2165/3585/478 +f 2170/3586/479 2171/3587/479 2172/3588/479 +f 2167/3589/479 2173/3590/479 2171/3591/479 +f 2167/3582/480 2168/3592/480 2165/3580/480 +f 2173/3590/481 2169/3584/481 2174/3593/481 +f 2172/3588/482 2175/3594/482 2176/3595/482 +f 2175/3594/481 2173/3590/481 2174/3593/481 +f 2168/3583/478 2175/3594/478 2174/3593/478 +f 2177/3596/479 2171/3591/479 2173/3590/479 +f 2170/3586/480 2178/3597/480 2179/3598/480 +f 2180/3599/482 2172/3588/482 2176/3595/482 +f 2179/3600/477 2168/3601/477 2171/3587/477 +f 2178/3602/478 2176/3595/478 2168/3603/478 +f 2165/3580/477 2169/3584/477 2166/3581/477 +f 2168/3583/478 2174/3593/478 2169/3584/478 +f 2170/3586/479 2179/3600/479 2171/3587/479 +f 2167/3589/479 2166/3581/479 2173/3590/479 +f 2167/3582/480 2171/3604/480 2168/3592/480 +f 2173/3590/481 2166/3581/481 2169/3584/481 +f 2172/3588/482 2177/3596/482 2175/3594/482 +f 2175/3594/481 2177/3596/481 2173/3590/481 +f 2168/3583/478 2176/3605/478 2175/3594/478 +f 2177/3596/479 2172/3606/479 2171/3591/479 +f 2170/3586/480 2180/3599/480 2178/3597/480 +f 2180/3599/482 2170/3586/482 2172/3588/482 +f 2179/3600/477 2178/3607/477 2168/3601/477 +f 2178/3602/478 2180/3599/478 2176/3595/478 +o BipodLeft +v 0.468744 -0.374996 3.187500 +v 0.437494 -0.437496 3.125000 +v 0.437494 -0.437496 3.187500 +v 0.843744 -0.374996 3.187500 +v 0.531244 -0.374996 3.125000 +v 0.531244 -0.374996 3.187500 +v 0.843744 -0.874997 3.187500 +v 0.843744 -0.812497 3.125000 +v 0.843744 -0.812497 3.187500 +v 0.468744 -0.874997 3.187500 +v 0.531244 -0.874997 3.125000 +v 0.531244 -0.874997 3.187500 +v 0.531244 -0.812497 3.187500 +v 0.531244 -0.812497 3.125000 +v 0.468744 -0.874997 3.125000 +v 0.437494 -0.812497 3.125000 +v 0.531244 -0.624997 3.125000 +v 0.531244 -0.437496 3.125000 +v 0.531244 -0.624997 3.187500 +v 0.843744 -0.437496 3.187500 +v 0.531244 -0.437496 3.187500 +v 0.843744 -0.624997 3.187500 +v 0.843744 -0.437496 3.125000 +v 0.343744 -0.624997 3.187500 +v 0.437494 -0.812497 3.187500 +v 0.531244 -0.624997 3.312500 +v 0.843744 -0.624997 3.125000 +v 0.843744 -0.874997 3.125000 +v 0.468744 -0.374996 3.125000 +v 0.531244 -0.437496 3.312500 +v 0.343744 -0.624997 3.125000 +v 0.843744 -0.374996 3.125000 +v 0.437494 -0.437496 3.312500 +v 0.437494 -0.812497 3.312500 +v 0.343744 -0.624997 3.312498 +v 0.531244 -0.812497 3.312500 +v 0.437492 -0.437497 -0.312500 +v 0.437492 -0.812497 -1.187500 +v 0.437492 -0.812497 -0.312500 +v 0.624992 -0.437497 -0.312500 +v 0.437492 -0.437497 -1.187500 +v 0.624992 -0.812497 -1.187500 +v 0.624992 -0.437497 -1.187500 +v 0.624992 -0.812497 -0.312500 +v 0.593744 -0.718747 -0.000000 +v 0.593744 -0.531247 -0.000000 +v 0.468743 -0.718747 -0.000000 +v 0.406243 -0.437497 0.625000 +v 0.343743 -0.562497 -0.000000 +v 0.343743 -0.562497 0.625000 +v 0.718743 -0.437497 -0.000000 +v 0.406243 -0.437497 -0.000000 +v 0.718743 -0.812497 0.625000 +v 0.718743 -0.687497 -0.000000 +v 0.718743 -0.687497 0.625000 +v 0.406243 -0.812497 0.625000 +v 0.718743 -0.812497 -0.000000 +v 0.343743 -0.687497 0.625000 +v 0.406243 -0.812497 -0.000000 +v 0.343743 -0.687497 -0.000000 +v 0.718743 -0.562497 -0.000000 +v 0.718743 -0.562497 0.625000 +v 0.718743 -0.437497 0.625000 +v 0.843743 -0.687497 0.312500 +v 0.843743 -0.562497 0.312500 +v 0.781243 -0.406247 0.356695 +v 0.781243 -0.406247 0.268306 +v 0.737049 -0.406247 0.312500 +v 0.781243 -0.843747 0.356695 +v 0.781243 -0.843747 0.268307 +v 0.825437 -0.843747 0.312500 +v 0.468743 -0.531247 -0.000000 +v 0.825437 -0.406247 0.312500 +v 0.737049 -0.843747 0.312500 +v 0.415760 -0.509512 3.125000 +v 0.367923 -0.624997 0.625000 +v 0.367924 -0.624997 3.125000 +v 0.531244 -0.461677 3.125000 +v 0.415759 -0.509512 0.625000 +v 0.646729 -0.509512 3.125000 +v 0.531244 -0.461677 0.625000 +v 0.694564 -0.624997 3.125000 +v 0.646728 -0.509512 0.625000 +v 0.646729 -0.740481 3.125000 +v 0.694564 -0.624997 0.625000 +v 0.531244 -0.788317 3.125000 +v 0.646728 -0.740482 0.625000 +v 0.415760 -0.740481 3.125000 +v 0.531244 -0.788317 0.625000 +v 0.415759 -0.740482 0.625000 +vt 0.877030 0.340278 +vt 0.874710 0.333333 +vt 0.877030 0.333333 +vt 0.893271 0.416667 +vt 0.904872 0.409722 +vt 0.904872 0.416667 +vt 0.890951 0.354167 +vt 0.893271 0.361111 +vt 0.890951 0.361111 +vt 0.907193 0.347222 +vt 0.904872 0.354167 +vt 0.904872 0.347222 +vt 0.879350 0.354167 +vt 0.879350 0.361111 +vt 0.904872 0.361111 +vt 0.907193 0.354167 +vt 0.908353 0.361111 +vt 0.904872 0.381944 +vt 0.908353 0.402778 +vt 0.904872 0.402778 +vt 0.879350 0.381944 +vt 0.890951 0.402778 +vt 0.879350 0.402778 +vt 0.890951 0.381944 +vt 0.893271 0.402778 +vt 0.877030 0.312500 +vt 0.874710 0.291667 +vt 0.877030 0.291667 +vt 0.888631 0.312500 +vt 0.893271 0.291667 +vt 0.893271 0.312500 +vt 0.893271 0.381944 +vt 0.893271 0.354167 +vt 0.877030 0.354167 +vt 0.875870 0.361111 +vt 0.893271 0.347222 +vt 0.907193 0.409722 +vt 0.907193 0.416667 +vt 0.888631 0.333333 +vt 0.893271 0.333333 +vt 0.874710 0.284722 +vt 0.877030 0.284722 +vt 0.911833 0.381944 +vt 0.893271 0.409722 +vt 0.877030 0.409722 +vt 0.879350 0.409722 +vt 0.890951 0.409722 +vt 0.874710 0.312500 +vt 0.885151 0.333333 +vt 0.885151 0.291667 +vt 0.881671 0.312500 +vt 0.885151 0.347222 +vt 0.888631 0.347222 +vt 0.888631 0.291667 +vt 0.885151 0.277778 +vt 0.888631 0.277778 +vt 0.921114 0.041667 +vt 0.907192 0.138889 +vt 0.907192 0.041667 +vt 0.928074 0.041667 +vt 0.921114 0.138889 +vt 0.941995 0.138889 +vt 0.928074 0.138889 +vt 0.948956 0.041667 +vt 0.941995 0.041667 +vt 0.943155 0.006944 +vt 0.928074 0.159722 +vt 0.926914 0.006944 +vt 0.910673 0.006944 +vt 0.931554 0.006944 +vt 0.867749 0.111111 +vt 0.863109 0.180556 +vt 0.863109 0.111111 +vt 0.879350 0.180556 +vt 0.867749 0.180556 +vt 0.893271 0.111111 +vt 0.888631 0.180556 +vt 0.888631 0.111111 +vt 0.904872 0.111111 +vt 0.893271 0.180556 +vt 0.893271 0.076389 +vt 0.888631 0.069444 +vt 0.893271 0.215278 +vt 0.888631 0.222222 +vt 0.883991 0.180556 +vt 0.879350 0.215278 +vt 0.883991 0.222222 +vt 0.879350 0.076389 +vt 0.883991 0.111111 +vt 0.879350 0.111111 +vt 0.883991 0.069444 +vt 0.844548 0.618056 +vt 0.849188 0.583333 +vt 0.844548 0.548611 +vt 0.853828 0.111111 +vt 0.858469 0.180556 +vt 0.853828 0.180556 +vt 0.858469 0.111111 +vt 0.853828 0.583333 +vt 0.849188 0.618056 +vt 0.853828 0.618056 +vt 0.853828 0.548611 +vt 0.849188 0.548611 +vt 0.858469 0.548611 +vt 0.858469 0.618056 +vt 0.816705 0.187500 +vt 0.819026 0.194444 +vt 0.819026 0.187500 +vt 0.800464 0.187500 +vt 0.798144 0.194444 +vt 0.800464 0.194444 +vt 0.874710 0.340278 +vt 0.875870 0.402778 +vt 0.881671 0.333333 +vt 0.881671 0.291667 +vt 0.948956 0.138889 +vt 0.947796 0.006944 +vt 0.941995 0.159722 +vt 0.922274 0.006944 +vt 0.917633 0.006944 +vt 0.938515 0.006944 +vt 0.904872 0.180556 +vt 0.816705 0.194444 +vt 0.798144 0.187500 +vt 0.851508 0.090278 +vt 0.758701 0.104167 +vt 0.851508 0.104167 +vt 0.851508 0.076389 +vt 0.758701 0.090278 +vt 0.851508 0.062500 +vt 0.758701 0.076389 +vt 0.851508 0.048611 +vt 0.758701 0.062500 +vt 0.851508 0.034722 +vt 0.758701 0.048611 +vt 0.851508 0.020833 +vt 0.758701 0.034722 +vt 0.851508 0.118056 +vt 0.758701 0.131944 +vt 0.851508 0.131944 +vt 0.758701 0.118056 +vt 0.800464 0.208333 +vt 0.816705 0.201389 +vt 0.800464 0.201389 +vt 0.800464 0.180556 +vt 0.816705 0.180556 +vt 0.758701 0.020833 +vt 0.816705 0.208333 +vn -0.8944 0.4472 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0000 -1.0000 +vn -0.8944 -0.4472 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.9578 0.2873 +vn 0.0000 0.9578 0.2873 +vn -0.9950 0.0000 0.0995 +vn 0.9950 0.0000 0.0995 +vn 0.9285 0.0000 -0.3714 +vn 0.9285 0.0000 0.3714 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 -0.7071 0.0000 +s off +f 2181/3608/483 2182/3609/483 2183/3610/483 +f 2184/3611/484 2185/3612/484 2186/3613/484 +f 2187/3614/485 2188/3615/485 2189/3616/485 +f 2190/3617/486 2191/3618/486 2192/3619/486 +f 2192/3620/487 2189/3616/487 2193/3621/487 +f 2194/3622/488 2195/3623/488 2196/3624/488 +f 2197/3625/488 2182/3626/488 2198/3627/488 +f 2199/3628/487 2200/3629/487 2201/3630/487 +f 2202/3631/485 2203/3632/485 2200/3629/485 +f 2204/3633/489 2196/3634/489 2205/3635/489 +f 2206/3636/485 2193/3637/485 2199/3638/485 +f 2207/3639/488 2198/3627/488 2203/3632/488 +f 2208/3640/488 2194/3622/488 2188/3615/488 +f 2190/3641/487 2193/3621/487 2205/3642/487 +f 2192/3619/486 2208/3640/486 2187/3643/486 +f 2186/3613/484 2209/3644/484 2181/3645/484 +f 2210/3646/485 2199/3638/485 2201/3647/485 +f 2188/3615/488 2197/3625/488 2207/3639/488 +f 2205/3635/489 2195/3648/489 2190/3649/489 +f 2197/3625/488 2196/3624/488 2211/3650/488 +f 2193/3621/487 2202/3631/487 2199/3628/487 +f 2189/3616/485 2207/3639/485 2202/3631/485 +f 2203/3632/488 2185/3612/488 2212/3651/488 +f 2181/3652/487 2201/3630/487 2186/3653/487 +f 2200/3629/485 2212/3651/485 2184/3654/485 +f 2201/3630/487 2184/3654/487 2186/3653/487 +f 2198/3627/488 2209/3644/488 2185/3612/488 +f 2183/3610/483 2211/3655/483 2204/3633/483 +f 2213/3656/487 2206/3636/487 2210/3646/487 +f 2214/3657/487 2206/3636/487 2215/3658/487 +f 2183/3659/484 2210/3646/484 2201/3660/484 +f 2216/3661/486 2205/3662/486 2193/3663/486 +f 2215/3658/483 2183/3610/483 2204/3633/483 +f 2205/3635/489 2215/3658/489 2204/3633/489 +f 2217/3664/490 2218/3665/490 2219/3666/490 +f 2220/3667/484 2221/3668/484 2217/3664/484 +f 2220/3667/485 2222/3669/485 2223/3670/485 +f 2219/3671/486 2222/3669/486 2224/3672/486 +f 2225/3673/491 2219/3671/491 2224/3672/491 +f 2222/3669/488 2221/3674/488 2223/3670/488 +f 2217/3664/492 2226/3675/492 2220/3667/492 +f 2227/3676/493 2217/3664/493 2219/3666/493 +f 2226/3677/494 2224/3672/494 2220/3667/494 +f 2228/3678/483 2229/3679/483 2230/3680/483 +f 2228/3678/484 2231/3681/484 2232/3682/484 +f 2233/3683/485 2234/3684/485 2235/3685/485 +f 2236/3686/486 2237/3687/486 2233/3683/486 +f 2236/3688/487 2235/3685/487 2238/3689/487 +f 2234/3684/488 2239/3690/488 2240/3691/488 +f 2241/3692/488 2232/3693/488 2231/3681/488 +f 2234/3684/488 2229/3694/488 2241/3692/488 +f 2228/3695/487 2242/3696/487 2243/3697/487 +f 2238/3689/487 2242/3696/487 2230/3698/487 +f 2242/3696/485 2231/3681/485 2243/3697/485 +f 2234/3699/486 2244/3700/486 2235/3701/486 +f 2236/3702/489 2240/3703/489 2239/3704/489 +f 2230/3680/490 2240/3703/490 2238/3705/490 +f 2245/3706/495 2234/3707/495 2241/3708/495 +f 2244/3700/496 2242/3709/496 2235/3710/496 +f 2242/3711/484 2245/3706/484 2241/3712/484 +f 2246/3713/484 2247/3714/484 2248/3715/484 +f 2249/3716/486 2250/3717/486 2251/3718/486 +f 2181/3608/483 2209/3719/483 2182/3609/483 +f 2184/3611/484 2212/3651/484 2185/3612/484 +f 2187/3614/485 2208/3640/485 2188/3615/485 +f 2190/3617/486 2195/3623/486 2191/3618/486 +f 2192/3620/487 2187/3614/487 2189/3616/487 +f 2194/3622/488 2191/3618/488 2195/3623/488 +f 2197/3625/488 2211/3650/488 2182/3626/488 +f 2199/3628/487 2202/3631/487 2200/3629/487 +f 2202/3631/485 2207/3639/485 2203/3632/485 +f 2204/3633/489 2211/3655/489 2196/3634/489 +f 2206/3636/485 2216/3661/485 2193/3637/485 +f 2207/3639/488 2197/3625/488 2198/3627/488 +f 2208/3640/488 2191/3618/488 2194/3622/488 +f 2190/3641/487 2192/3620/487 2193/3621/487 +f 2192/3619/486 2191/3618/486 2208/3640/486 +f 2186/3613/484 2185/3612/484 2209/3644/484 +f 2210/3646/485 2206/3636/485 2199/3638/485 +f 2188/3615/488 2194/3622/488 2197/3625/488 +f 2205/3635/489 2196/3634/489 2195/3648/489 +f 2197/3625/488 2194/3622/488 2196/3624/488 +f 2193/3621/487 2189/3616/487 2202/3631/487 +f 2189/3616/485 2188/3615/485 2207/3639/485 +f 2203/3632/488 2198/3627/488 2185/3612/488 +f 2181/3652/487 2183/3720/487 2201/3630/487 +f 2200/3629/485 2203/3632/485 2212/3651/485 +f 2201/3630/487 2200/3629/487 2184/3654/487 +f 2198/3627/488 2182/3626/488 2209/3644/488 +f 2183/3610/483 2182/3609/483 2211/3655/483 +f 2213/3656/487 2215/3658/487 2206/3636/487 +f 2214/3657/487 2216/3661/487 2206/3636/487 +f 2183/3659/484 2213/3656/484 2210/3646/484 +f 2216/3661/486 2214/3657/486 2205/3662/486 +f 2215/3658/483 2213/3721/483 2183/3610/483 +f 2205/3635/489 2214/3722/489 2215/3658/489 +f 2217/3664/490 2221/3668/490 2218/3665/490 +f 2220/3667/484 2223/3670/484 2221/3668/484 +f 2220/3667/485 2224/3672/485 2222/3669/485 +f 2219/3671/486 2218/3723/486 2222/3669/486 +f 2225/3673/491 2227/3724/491 2219/3671/491 +f 2222/3669/488 2218/3725/488 2221/3674/488 +f 2217/3664/492 2252/3726/492 2226/3675/492 +f 2227/3676/493 2252/3727/493 2217/3664/493 +f 2226/3677/494 2225/3728/494 2224/3672/494 +f 2228/3678/483 2232/3682/483 2229/3679/483 +f 2228/3678/484 2243/3697/484 2231/3681/484 +f 2233/3683/485 2237/3687/485 2234/3684/485 +f 2236/3686/486 2239/3729/486 2237/3687/486 +f 2236/3688/487 2233/3683/487 2235/3685/487 +f 2234/3684/488 2237/3687/488 2239/3690/488 +f 2241/3692/488 2229/3694/488 2232/3693/488 +f 2234/3684/488 2240/3691/488 2229/3694/488 +f 2228/3695/487 2230/3698/487 2242/3696/487 +f 2238/3689/487 2235/3685/487 2242/3696/487 +f 2242/3696/485 2241/3692/485 2231/3681/485 +f 2236/3702/489 2238/3705/489 2240/3703/489 +f 2230/3680/490 2229/3679/490 2240/3703/490 +f 2245/3706/495 2244/3700/495 2234/3707/495 +f 2244/3700/496 2245/3706/496 2242/3709/496 +f 2246/3713/484 2253/3730/484 2247/3714/484 +f 2249/3716/486 2254/3731/486 2250/3717/486 +s 1 +f 2255/3732/497 2256/3733/490 2257/3734/490 +f 2258/3735/484 2259/3736/497 2255/3732/497 +f 2260/3737/498 2261/3738/484 2258/3735/484 +f 2262/3739/485 2263/3740/498 2260/3737/498 +f 2264/3741/499 2265/3742/485 2262/3739/485 +f 2266/3743/486 2267/3744/499 2264/3741/499 +f 2268/3745/500 2269/3746/486 2266/3747/486 +f 2257/3734/490 2270/3748/500 2268/3745/500 +f 2254/3749/490 2247/3750/488 2250/3751/488 +f 2249/3716/487 2253/3730/485 2246/3713/487 +f 2254/3752/490 2246/3713/487 2248/3753/490 +f 2251/3718/485 2247/3750/488 2253/3730/485 +f 2255/3732/497 2259/3736/497 2256/3733/490 +f 2258/3735/484 2261/3738/484 2259/3736/497 +f 2260/3737/498 2263/3740/498 2261/3738/484 +f 2262/3739/485 2265/3742/485 2263/3740/498 +f 2264/3741/499 2267/3744/499 2265/3742/485 +f 2266/3743/486 2269/3754/486 2267/3744/499 +f 2268/3745/500 2270/3748/500 2269/3746/486 +f 2257/3734/490 2256/3733/490 2270/3748/500 +f 2254/3749/490 2248/3755/490 2247/3750/488 +f 2249/3716/487 2251/3718/485 2253/3730/485 +f 2254/3752/490 2249/3716/487 2246/3713/487 +f 2251/3718/485 2250/3751/488 2247/3750/488 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index f98373184..353359465 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -254,6 +254,7 @@ "weapon.fire.aberrator": {"category": "player", "sounds": ["weapon/fire/aberrator"]}, "weapon.fire.stab": {"category": "player", "sounds": ["weapon/fire/stab1", "weapon/fire/stab2"]}, "weapon.fire.grenade": {"category": "player", "sounds": ["weapon/fire/grenade"]}, + "weapon.fire.amat": {"category": "player", "sounds": ["weapon/fire/amat"]}, "weapon.reload.boltClose": {"category": "player", "sounds": ["weapon/reload/boltClose"]}, "weapon.reload.boltOpen": {"category": "player", "sounds": ["weapon/reload/boltOpen"]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/fire/amat.ogg b/src/main/resources/assets/hbm/sounds/weapon/fire/amat.ogg new file mode 100644 index 0000000000000000000000000000000000000000..53d64ec8db627d605b5d1b2d93ee4c7442bdf489 GIT binary patch literal 43853 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 I&r|3A3o7lI#{d8T literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/breeder.png b/src/main/resources/assets/hbm/textures/models/machines/breeder.png index 70182684c4c2269d63077fe47e46821cc282a2cf..edece64715110d5027028e1c2dae5c8ea4441270 100644 GIT binary patch literal 820 zcmeAS@N?(olHy`uVBq!ia0vp^*+6W-!3-o7HA+AdjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCilO0(?STLqbB*)6>h#%Z-eT^!4?pPMxZwqobvzrJl+^8xRoi{{}-)P*7-S=(*?5A|fJ|ox2tm z78V#7=;!C>?d|R1;o<7)>g??7;NY-&_3C~5_SxFnPMS2y%F4>z+}zaE6lnfq1~w5O zrB@Q<7yO?Tz|hoR917IQS>O>_%)r2R7=#&*=dVZs2Ect!7srqY_r23OgAN<;xXzw7 zx2={_L?b)0^#ALRYgZiI==}MvPQJr6ktOEeIt2PtEFJ{Knx-W8`{*p}UBg`R;uZ`yBR8;dkJfUVt`} z>AGNpD>-u-#WqjevcC92TD;{369uga+y{2v*=)~h&DZaJVCS27)?TxZ6SaW~W0>>I zx@`2jKJK_M^+fV@-Ur{7+I_jmV)86%+0my;+Z)OgpA^kJn-=nJl~HbxUJ<)c?Dtt_ z&w-NL*0W!DEcxrfQ=awdS8^=O3a1|DNZ}JYe<9<{^r_m{l^?`dU3`%|`R)w;SnVgA z1$y2YTMkscP&(gG{L)#E@j6Sl*mUFnOgnCFI4;v`w(`wu(JvKkcAwZRt{>8UU(*vS z-%wn;EA`;<8(&$gtPXeNA2{n)UB|F}{Wl+mm|yIIY?n1+cf8^AzBB!Ha(P6)dHq2X zFY(O>?jr(!28a6u!uI zH~qr=E9bP0 Hl+XkK;)`V_ literal 2533 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 diff --git a/src/main/resources/assets/hbm/textures/models/network/fluid_diode.png b/src/main/resources/assets/hbm/textures/models/network/fluid_diode.png new file mode 100644 index 0000000000000000000000000000000000000000..a2445b2399ce386090de3224555533d22fcd10ec GIT binary patch literal 928 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

7mot>s$ zfiHnijvZsa-MFEuw+sNw1-I<;(GQ!Jtp!U_WE22kXCGknjo*L0$zOl^`EffeX!_XF z06kSY6wS=cs7;)GcOPyUa}*rEsvkgnJ)o70Qe9DM-eqZ#(+#S znvNf5KVH1ZhkbSSEbF+rq{gyhv~|{NO-9_H5df*6EdxN@N8orX?)J<;&@YKK(SURS z02)SH-Bf6&qpzhAT#W`GDvN?BtxN+_u>qjvDJx?K4;RAMsseV8GA@D2j59xm*m58Y2iI6+4%Lq0uKxu{^WV+R|d!9IUO?*nn_Pj}<8m z0Mz+mZ|{m&q8MAGC=c~VY*1{MoemYo&O!K;j*gZRWMPL50J3n>(#rCN2Ba0vEF`v} z0hyXKMNyQ;kqFxp2r&G{007|5Bob^qk$C$6fbhfp{YqI$2`eZq%^1*5 zH8`V;O;1d4EpP%rYip}={rYvzC+gnq+u3L=#&>)4UJnBL;T`(^eEG8Zao8z>nI3=o z^l7EIxR`$iNtuW-^+h5qIX}<-ynEMBxQ`DXR*FkXSh?5xW&nUg7h)6u0GT2BP zY}>}F0)gz;fcExwh2ne^5&GrI6^^Y8fJ>JyaT|dCZEbDYZ3EJwMP@YC{SwGJ0G#F* zr2GEg3c$2$Kw)7aUw;%5UrmCA$h6b@{|x{v5LlNQAjbclrod!e1F8=mRB&Z3rr3%1 z0EqS)20Y>cv1iZJxB1jlYr4}dJcK;&AyPt3&a zFX932ygYsy#D6&M-Mg1(yiq&>0Tmpn5l?UoK&J8wM8Hz@0*D9X Date: Tue, 3 Jun 2025 12:52:07 +0300 Subject: [PATCH 134/181] Fix posture and inscription --- src/main/java/com/hbm/blocks/generic/BlockBobble.java | 2 +- src/main/java/com/hbm/render/tileentity/RenderBobble.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 067363c2d..ea53feb69 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -214,7 +214,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider, INBTTra MICROWAVE( "Microwave", "Microwave", "OC Compatibility and massive RBMK/packet optimizations", "they call me the food heater$john optimization", true, ScrapType.BOARD_CONVERTER), PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CARD_BOARD), MELLOW( "MELLOWARPEGGIATION", "Mellow", "NBT Structures, industrial lighting, animation tools", "Make something cool now, ask for permission later.", true, ScrapType.CARD_PROCESSOR), - ABEL( "Abel1502", "Abel1502", "Abilities GUI, optimizations and many QoL improvements", "NANTO SUBARASHII!", true, ScrapType.CPU_REGISTER); + ABEL( "Abel1502", "Abel1502", "Abilities GUI, optimizations and many QoL improvements", "NANTO SUBARASHII", true, ScrapType.CPU_REGISTER); public String name; //the title of the tooltip public String label; //the name engraved in the socket diff --git a/src/main/java/com/hbm/render/tileentity/RenderBobble.java b/src/main/java/com/hbm/render/tileentity/RenderBobble.java index 979da575a..4bb36748e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBobble.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBobble.java @@ -223,8 +223,8 @@ public class RenderBobble extends TileEntitySpecialRenderer { rotRightLeg = new double[]{-3, -5, 0}; break; case ABEL: - rotLeftArm = new double[]{0, 15, 80}; - rotRightArm = new double[]{0, 15, 80}; + rotLeftArm = new double[]{0, 80, 90}; + rotRightArm = new double[]{0, -80, 90}; break; } } From d9ef97f34596ab9ee7ce0440f0f750e48bcdd0bc Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 3 Jun 2025 14:08:02 +0300 Subject: [PATCH 135/181] Add glow --- .../com/hbm/render/tileentity/RenderBobble.java | 8 ++++++++ .../hbm/textures/models/trinkets/abel_glow.png | Bin 0 -> 553 bytes 2 files changed, 8 insertions(+) create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/abel_glow.png diff --git a/src/main/java/com/hbm/render/tileentity/RenderBobble.java b/src/main/java/com/hbm/render/tileentity/RenderBobble.java index 4bb36748e..58e8ee850 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBobble.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBobble.java @@ -51,6 +51,7 @@ public class RenderBobble extends TileEntitySpecialRenderer { public static final ResourceLocation bobble_mellow = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/mellowrpg8.png"); public static final ResourceLocation bobble_mellow_glow = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/mellowrpg8_glow.png"); public static final ResourceLocation bobble_abel = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/abel.png"); + public static final ResourceLocation bobble_abel_glow = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/abel_glow.png"); private long time; @@ -478,6 +479,13 @@ public class RenderBobble extends TileEntitySpecialRenderer { GL11.glDisable(GL11.GL_BLEND); GL11.glPopAttrib(); break; + case ABEL: + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + bindTexture(bobble_abel_glow); + renderGuy(type); + GL11.glPopAttrib(); + break; } } diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/abel_glow.png b/src/main/resources/assets/hbm/textures/models/trinkets/abel_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..6886dad7cb547cd559e3723fb8fa375cd9604be9 GIT binary patch literal 553 zcmV+^0@nSBP)*ks^wPf+&ckL@-UXNFo@uNybegByrhI5U~|(ECdVD z##iA#&{nWj5ClaKv9c@Koy&UYgpQvv|!*w%a<`&rI2&$8DN{bB_m009U<0000C>g^#yz69&? rWu_tq000000000Q{s(-_0Px=pjPobc#{x8F00000NkvXXu0mjf_~PT9 literal 0 HcmV?d00001 From 3733a8bee9a5ad536104ac2efc4186d15a22157e Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 3 Jun 2025 15:52:29 +0300 Subject: [PATCH 136/181] Fan force falloff Previously, with two fans facing into each other, either one of them would completely overpower the other, or they'd cancel each other out. Now the force is inversely proportional to the distance, so the items end up in the middle --- src/main/java/com/hbm/blocks/machine/MachineFan.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineFan.java b/src/main/java/com/hbm/blocks/machine/MachineFan.java index 37a96e5f8..121044d44 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFan.java @@ -18,6 +18,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -103,10 +104,13 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro List affected = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5 + Math.min(x, 0), yCoord + 0.5 + Math.min(y, 0), zCoord + 0.5 + Math.min(z, 0), xCoord + 0.5 + Math.max(x, 0), yCoord + 0.5 + Math.max(y, 0), zCoord + 0.5 + Math.max(z, 0)).expand(0.5, 0.5, 0.5)); for(Entity e : affected) { + + double dist = e.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + double coeff = push * (1 - dist / range / 2); - e.motionX += dir.offsetX * push; - e.motionY += dir.offsetY * push; - e.motionZ += dir.offsetZ * push; + e.motionX += dir.offsetX * coeff; + e.motionY += dir.offsetY * coeff; + e.motionZ += dir.offsetZ * coeff; } if(worldObj.isRemote && worldObj.rand.nextInt(30) == 0) { From 79d510aefb2238df57e278f9963362ad8716f98e Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 3 Jun 2025 16:32:48 +0300 Subject: [PATCH 137/181] Increase base fan force --- src/main/java/com/hbm/blocks/machine/MachineFan.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineFan.java b/src/main/java/com/hbm/blocks/machine/MachineFan.java index 121044d44..e4079cfbc 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFan.java @@ -81,7 +81,7 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro int range = 10; int effRange = 0; - double push = 0.1; + double push = 0.15; for(int i = 1; i <= range; i++) { Block block = worldObj.getBlock(xCoord + dir.offsetX * i, yCoord + dir.offsetY * i, zCoord + dir.offsetZ * i); From f8d827d6cdfa9b907812d3373918afd6d1f379a8 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 3 Jun 2025 19:03:19 +0300 Subject: [PATCH 138/181] Make autosaw respect walls Previously the blade always phased through solid walls. Now, if colliding with one, it will retract forcibly. In case there are valid targets behind a wall, it will ignore them for the next 5 degrees of rotation --- .../machine/TileEntityMachineAutosaw.java | 86 ++++++++++--------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java index d7bddd3a1..122697ca6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -63,6 +63,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB private int state = 0; private int turnProgress; + private int forceSkip = 0; public float spin; public float lastSpin; @@ -126,40 +127,42 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB this.rotationYaw -= 360; } - final double CUT_ANGLE = Math.toRadians(5); - double rotationYawRads = Math.toRadians((rotationYaw + 270) % 360); + if(forceSkip > 0) { + forceSkip--; + } else { + final double CUT_ANGLE = Math.toRadians(5); + double rotationYawRads = Math.toRadians((rotationYaw + 270) % 360); - outer: - for(int dx = -9; dx <= 9; dx++) { - for(int dz = -9; dz <= 9; dz++) { - int sqrDst = dx * dx + dz * dz; + outer: + for(int dx = -9; dx <= 9; dx++) { + for(int dz = -9; dz <= 9; dz++) { + int sqrDst = dx * dx + dz * dz; - if(sqrDst <= 4 || sqrDst > 81) - continue; - - double angle = Math.atan2(dz, dx); - double relAngle = Math.abs(angle - rotationYawRads); - relAngle = Math.abs((relAngle + Math.PI) % (2 * Math.PI) - Math.PI); + if(sqrDst <= 4 || sqrDst > 81) + continue; + + double angle = Math.atan2(dz, dx); + double relAngle = Math.abs(angle - rotationYawRads); + relAngle = Math.abs((relAngle + Math.PI) % (2 * Math.PI) - Math.PI); - if(relAngle > CUT_ANGLE) - continue; + if(relAngle > CUT_ANGLE) + continue; - int x = xCoord + dx; - int y = yCoord + 1; - int z = zCoord + dz; + int x = xCoord + dx; + int y = yCoord + 1; + int z = zCoord + dz; - Block b = worldObj.getBlock(x, y, z); - if(!(b.getMaterial() == Material.wood || b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants)) - continue; + Block b = worldObj.getBlock(x, y, z); + if(!(b.getMaterial() == Material.wood || b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants)) + continue; - int meta = worldObj.getBlockMetadata(x, y, z); - if(shouldIgnore(worldObj, x, y, z, b, meta)) - continue; - - // com.hbm.main.MainRegistry.logger.info("[Abel] found target at " + x + ", " + y + ", " + z + ", angle=" + rotationYaw); - - state = 1; - break outer; + int meta = worldObj.getBlockMetadata(x, y, z); + if(shouldIgnore(worldObj, x, y, z, b, meta)) + continue; + + state = 1; + break outer; + } } } } @@ -247,21 +250,22 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB Block b = worldObj.getBlock(x, y, z); int meta = worldObj.getBlockMetadata(x, y, z); - if(shouldIgnore(worldObj, x, y, z, b, meta)) { - return; - } - - if(b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { - cutCrop(x, y, z); - return; - } - - if(b.getMaterial() == Material.wood) { - fellTree(x, y, z); - if(state == 1) { - state = 2; + if(!shouldIgnore(worldObj, x, y, z, b, meta)) { + if(b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { + cutCrop(x, y, z); + } else if(b.getMaterial() == Material.wood) { + fellTree(x, y, z); + if(state == 1) { + state = 2; + } } } + + // Return when hitting a wall + if(state == 1 && worldObj.getBlock(x, y, z).isNormalCube(worldObj, x, y, z)) { + state = 2; + forceSkip = 5; + } } protected void cutCrop(int x, int y, int z) { From 8c196f05ca619d9282bbe73e3cf3e5b75af7ca49 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 3 Jun 2025 20:08:02 +0300 Subject: [PATCH 139/181] Save forseSkip to NBT Not included in `serialize()` and `deserialize()` because it is server-side-only --- .../com/hbm/tileentity/machine/TileEntityMachineAutosaw.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java index 122697ca6..6cfcafa54 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -52,6 +52,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB public FluidTank tank; public boolean isOn; + private int forceSkip; public float syncYaw; public float rotationYaw; public float prevRotationYaw; @@ -63,7 +64,6 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB private int state = 0; private int turnProgress; - private int forceSkip = 0; public float spin; public float lastSpin; @@ -365,6 +365,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.isOn = nbt.getBoolean("isOn"); + this.forceSkip = nbt.getInteger("skip"); this.rotationYaw = nbt.getFloat("yaw"); this.rotationPitch = nbt.getFloat("pitch"); this.state = nbt.getInteger("state"); @@ -375,6 +376,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setBoolean("isOn", this.isOn); + nbt.setInteger("skip", this.forceSkip); nbt.setFloat("yaw", this.rotationYaw); nbt.setFloat("pitch", this.rotationPitch); nbt.setInteger("state", this.state); From df8d456a907bb5edfe557904c1eca07ca336f4bb Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 3 Jun 2025 20:22:25 +0300 Subject: [PATCH 140/181] Allow suspending autosaw with a screwdriver Localized, though I'm not sure if it really needs to be --- .../hbm/blocks/machine/MachineAutosaw.java | 25 ++++++++++++++++++- .../machine/TileEntityMachineAutosaw.java | 9 +++++-- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + src/main/resources/assets/hbm/lang/it_IT.lang | 1 + src/main/resources/assets/hbm/lang/pl_PL.lang | 1 + src/main/resources/assets/hbm/lang/ru_RU.lang | 1 + src/main/resources/assets/hbm/lang/uk_UA.lang | 1 + src/main/resources/assets/hbm/lang/zh_CN.lang | 1 + 9 files changed, 38 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java index f8fb34a2c..67e58f18f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java @@ -10,6 +10,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineAutosaw; import com.hbm.util.i18n.I18nUtil; +import api.hbm.block.IToolable; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -22,7 +23,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class MachineAutosaw extends BlockContainer implements ILookOverlay, ITooltipProvider { +public class MachineAutosaw extends BlockContainer implements ILookOverlay, ITooltipProvider, IToolable { public MachineAutosaw() { super(Material.iron); @@ -72,6 +73,24 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay, IToo return true; } + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if(tool != ToolType.SCREWDRIVER) + return false; + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityMachineAutosaw)) + return false; + + TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) te; + + saw.isSuspended = !saw.isSuspended; + saw.markDirty(); + + return true; + } + @Override public void printHook(Pre event, World world, int x, int y, int z) { @@ -84,6 +103,10 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay, IToo List text = new ArrayList(); text.add(saw.tank.getTankType().getLocalizedName() + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); + + if (saw.isSuspended) { + text.add(EnumChatFormatting.RED + "! " + I18nUtil.resolveKey(getUnlocalizedName() + ".suspended") + " !"); + } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java index 6cfcafa54..72a3e9b8c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -52,6 +52,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB public FluidTank tank; public boolean isOn; + public boolean isSuspended; private int forceSkip; public float syncYaw; public float rotationYaw; @@ -88,7 +89,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB this.subscribeToAllAround(tank.getTankType(), this); } - if(isOn) { + if(isOn && !isSuspended) { Vec3 pivot = Vec3.createVectorHelper(xCoord + 0.5, yCoord + 1.75, zCoord + 0.5); Vec3 upperArm = Vec3.createVectorHelper(0, 0, -4); upperArm.rotateAroundX((float) Math.toRadians(80 - rotationPitch)); @@ -202,7 +203,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB this.lastSpin = this.spin; - if(isOn) { + if(isOn && !isSuspended) { this.spin += 15F; Vec3 vec = Vec3.createVectorHelper(0.625, 0, 1.625); @@ -347,6 +348,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB @Override public void serialize(ByteBuf buf) { buf.writeBoolean(this.isOn); + buf.writeBoolean(this.isSuspended); buf.writeFloat(this.rotationYaw); buf.writeFloat(this.rotationPitch); this.tank.serialize(buf); @@ -355,6 +357,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB @Override public void deserialize(ByteBuf buf) { this.isOn = buf.readBoolean(); + this.isSuspended = buf.readBoolean(); this.syncYaw = buf.readFloat(); this.syncPitch = buf.readFloat(); this.turnProgress = 3; //use 3-ply for extra smoothness @@ -365,6 +368,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.isOn = nbt.getBoolean("isOn"); + this.isSuspended = nbt.getBoolean("isSuspended"); this.forceSkip = nbt.getInteger("skip"); this.rotationYaw = nbt.getFloat("yaw"); this.rotationPitch = nbt.getFloat("pitch"); @@ -376,6 +380,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setBoolean("isOn", this.isOn); + nbt.setBoolean("isSuspended", this.isSuspended); nbt.setInteger("skip", this.forceSkip); nbt.setFloat("yaw", this.rotationYaw); nbt.setFloat("pitch", this.rotationPitch); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 984ab6040..0d4393362 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4324,6 +4324,7 @@ tile.machine_assemfac.name=Fertigungsfabrik tile.machine_autocrafter.name=Automatische Werkbank tile.machine_autosaw.name=Automatische Kreissäge tile.machine_autosaw.desc=Schneidet Pflanzen nieder, pflanzt Bäume nach$Akzeptiert:$-Holzöl$-Ethanol$-Fischöl$-Schweröl +tile.machine_autosaw.suspended=Angehalten tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index df2d909a3..f0e82f906 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5458,6 +5458,7 @@ tile.machine_assemfac.name=Assembly Factory tile.machine_autocrafter.name=Automatic Crafting Table tile.machine_autosaw.name=Automatic Buzz Saw tile.machine_autosaw.desc=Cuts down nearby plants, re-plants trees$Accepts:$-Wood oil$-Ethanol$-Fish oil$-Heavy oil +tile.machine_autosaw.suspended=Suspended tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block diff --git a/src/main/resources/assets/hbm/lang/it_IT.lang b/src/main/resources/assets/hbm/lang/it_IT.lang index c3d83825d..4ce24e6b5 100644 --- a/src/main/resources/assets/hbm/lang/it_IT.lang +++ b/src/main/resources/assets/hbm/lang/it_IT.lang @@ -5537,6 +5537,7 @@ tile.machine_assemfac.name=Assembly Factory tile.machine_autocrafter.name=Automatic Crafting Table tile.machine_autosaw.name=Automatic Buzz Saw tile.machine_autosaw.desc=Cuts down nearby plants, re-plants trees$Accepts:$-Wood oil$-Ethanol$-Fish oil$-Heavy oil +tile.machine_autosaw.suspended=Suspended tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block diff --git a/src/main/resources/assets/hbm/lang/pl_PL.lang b/src/main/resources/assets/hbm/lang/pl_PL.lang index 3e5e63745..497d759fc 100644 --- a/src/main/resources/assets/hbm/lang/pl_PL.lang +++ b/src/main/resources/assets/hbm/lang/pl_PL.lang @@ -4873,6 +4873,7 @@ tile.machine_assembler.name=Assembly Machine tile.machine_assemfac.name=Assembly Factory tile.machine_autocrafter.name=Automatic Crafting Table tile.machine_autosaw.name=Automatic Buzz Saw +tile.machine_autosaw.suspended=Suspended tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 9208e7f21..a2217d3a1 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -5720,6 +5720,7 @@ tile.machine_assemfac.name=Сборочный завод tile.machine_autocrafter.name=ÐвтоматичеÑкий верÑтак tile.machine_autosaw.name=ÐвтоматичеÑÐºÐ°Ñ Ð¿Ð¸Ð»Ð° tile.machine_autosaw.desc=Срубает ближайшие раÑтениÑ, переÑаживает деревьÑ$Принимает:$-ДревеÑное маÑло$-Этанол$-Рыбное маÑло$-ТÑжелую нефть +tile.machine_autosaw.suspended=ПриоÑтановлена tile.machine_bat9000.name=Охереть-Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ñ†Ð¸Ñтерна 9000 tile.machine_battery.name=Энергохранилище tile.machine_battery_potato.name=ÐšÐ°Ñ€Ñ‚Ð¾Ñ„ÐµÐ»ÑŒÐ½Ð°Ñ Ð±Ð°Ñ‚Ð°Ñ€ÐµÑ diff --git a/src/main/resources/assets/hbm/lang/uk_UA.lang b/src/main/resources/assets/hbm/lang/uk_UA.lang index 38cc3b361..0f9dfa371 100644 --- a/src/main/resources/assets/hbm/lang/uk_UA.lang +++ b/src/main/resources/assets/hbm/lang/uk_UA.lang @@ -5458,6 +5458,7 @@ tile.machine_assemfac.name=Збиральна фабрика tile.machine_autocrafter.name=Ðвтоматичний верÑтак tile.machine_autosaw.name=Ðвтоматична пила tile.machine_autosaw.desc=Вирубує роÑлини поруч, заново виÑажує дерева$Приймає:$-Деревну Ñмолу$-Етанол$-Риб'Ñчий жир$-Важку нафту +tile.machine_autosaw.suspended=Припинено tile.machine_bat9000.name=Big-Ass циÑтерна 9000 tile.machine_battery.name=Блок накопичувач енергії tile.machine_battery_potato.name=Блок картоплÑних батарейок diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index e7727585b..6a85a4901 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -5188,6 +5188,7 @@ tile.machine_assemfac.name=装é…厂 tile.machine_autocrafter.name=è‡ªåŠ¨å·¥ä½œå° tile.machine_autosaw.name=自动嗡嗡锯 tile.machine_autosaw.desc=ç ä¼é™„è¿‘çš„æ¤ç‰©ï¼Œé‡æ–°ç§æ¤æ ‘木$接å—:$-木油$-乙醇$-鱼油$-釿²¹ +tile.machine_autosaw.suspended=æš‚åœ tile.machine_bat9000.name=巨尻-9000 å‚¨ç½ tile.machine_battery.name=蓄电池 tile.machine_battery_potato.name=马铃薯电池组 From c19e867bfd76755a402a6e4b5fb805448fbebf0e Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 3 Jun 2025 20:31:17 +0300 Subject: [PATCH 141/181] Don't consume oil when suspended --- .../com/hbm/tileentity/machine/TileEntityMachineAutosaw.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java index 72a3e9b8c..ad554d93a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -78,7 +78,7 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB if(!worldObj.isRemote) { - if(worldObj.getTotalWorldTime() % 20 == 0) { + if(!isSuspended && worldObj.getTotalWorldTime() % 20 == 0) { if(tank.getFill() > 0) { tank.setFill(tank.getFill() - 1); this.isOn = true; From c9110aaa330a980c5110992c33afc894199bdc28 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 3 Jun 2025 23:57:04 +0300 Subject: [PATCH 142/181] NBT consistency for crates opened from inventory --- src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java index 620ca918c..97d2cb7e8 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java +++ b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java @@ -154,6 +154,10 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider nbt.setTag("slot" + i, slot); } + if (nbt.hasNoTags()) { + nbt = null; + } + target.setTagCompound(nbt); } From 25e20662e4efee96ff2089026d147b3a3ca0bb0b Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 4 Jun 2025 16:11:38 +0200 Subject: [PATCH 143/181] a little gift for future me --- .../gui/GUIMachineChemicalPlant.java | 40 +++- .../gui/GUIScreenRecipeSelector.java | 199 +++++++++++++++--- .../hbm/inventory/gui/GuiInfoContainer.java | 24 ++- .../recipes/loader/GenericRecipe.java | 28 ++- .../recipes/loader/GenericRecipes.java | 20 ++ .../hbm/module/ModuleMachineChemplant.java | 26 ++- .../TileEntityMachineChemicalPlant.java | 27 ++- .../textures/gui/processing/gui_chemplant.png | Bin 4029 -> 3535 bytes .../gui/processing/gui_recipe_selector.png | Bin 1802 -> 1894 bytes 9 files changed, 326 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java index d2812ab1f..c960eea0c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java @@ -4,12 +4,16 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineChemicalPlant; import com.hbm.inventory.recipes.ChemicalPlantRecipes; +import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; 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 GUIMachineChemicalPlant extends GuiInfoContainer { @@ -35,6 +39,15 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { } this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 61, chemplant.power, chemplant.maxPower); + + if(guiLeft + 7 <= mouseX && guiLeft + 7 + 18 > mouseX && guiTop + 125 < mouseY && guiTop + 125 + 18 >= mouseY) { + if(this.chemplant.chemplantModule.recipe != null && ChemicalPlantRecipes.INSTANCE.recipeNameMap.containsKey(this.chemplant.chemplantModule.recipe)) { + GenericRecipe recipe = (GenericRecipe) ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.chemplant.chemplantModule.recipe); + this.func_146283_a(recipe.print(), mouseX, mouseY); + } else { + this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + "Click to set recipe", mouseX, mouseY); + } + } } @Override @@ -61,10 +74,33 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { int p = (int) (chemplant.power * 61 / chemplant.maxPower); drawTexturedModalRect(guiLeft + 152, guiTop + 79 - p, 176, 61 - p, 16, p); - if(chemplant.maxProgress > 0) { - int j = chemplant.progress * 70 / chemplant.maxProgress; + if(chemplant.chemplantModule.progress > 0) { + int j = (int) Math.ceil(70 * chemplant.chemplantModule.progress); drawTexturedModalRect(guiLeft + 62, guiTop + 126, 176, 61, j, 16); } + + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(chemplant.chemplantModule.recipe); + this.renderItem(recipe != null ? recipe.getIcon() : TEMPLATE_FOLDER, 8, 126); + + if(recipe != null && recipe.inputItem != null) { + for(int i = 0; i < recipe.inputItem.length; i++) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(chemplant.chemplantModule.inputSlots[i]); + if(!slot.getHasStack()) this.renderItem(recipe.inputItem[i].extractForCyclingDisplay(20), slot.xDisplayPosition, slot.yDisplayPosition, 10F); + } + + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1F, 1F, 1F, 0.5F); + GL11.glEnable(GL11.GL_BLEND); + this.zLevel = 300F; + for(int i = 0; i < recipe.inputItem.length; i++) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(chemplant.chemplantModule.inputSlots[i]); + if(!slot.getHasStack()) drawTexturedModalRect(guiLeft + slot.xDisplayPosition, guiTop + slot.yDisplayPosition, slot.xDisplayPosition, slot.yDisplayPosition, 16, 16); + } + this.zLevel = 0F; + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glDisable(GL11.GL_BLEND); + } for(int i = 0; i < 3; i++) { chemplant.inputTanks[i].renderTank(guiLeft + 8, guiTop + 52, this.zLevel, 16, 34); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java index 9fedd4ef0..418fc2dbd 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java @@ -12,13 +12,20 @@ import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import cpw.mods.fml.common.FMLCommonHandler; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIScreenRecipeSelector extends GuiScreen { @@ -37,6 +44,7 @@ public class GUIScreenRecipeSelector extends GuiScreen { protected int pageIndex; protected int size; protected String selection; + public static final String NULL_SELECTION = "null"; // callback protected int index; protected IControlReceiver tile; @@ -52,6 +60,7 @@ public class GUIScreenRecipeSelector extends GuiScreen { this.selection = selection; this.index = index; this.previousScreen = previousScreen; + if(this.selection == null) this.selection = NULL_SELECTION; regenerateRecipes(); } @@ -106,6 +115,40 @@ public class GUIScreenRecipeSelector extends GuiScreen { this.drawGuiContainerForegroundLayer(mouseX, mouseY); GL11.glEnable(GL11.GL_LIGHTING); this.handleScroll(); + + if(guiLeft + 7 <= mouseX && guiLeft + 7 + 144 > mouseX && guiTop + 17 < mouseY && guiTop + 17 + 90 >= mouseY) { + for(int i = pageIndex * 8; i < pageIndex * 8 + 40; i++) { + if(i >= this.recipes.size()) break; + + int ind = i - pageIndex * 8; + int ix = 7 + 18 * (ind % 8); + int iy = 17 + 18 * (ind / 8); + + if(guiLeft + ix <= mouseX && guiLeft + ix + 18 > mouseX && guiTop + iy < mouseY && guiTop + iy + 18 >= mouseY) { + GenericRecipe recipe = recipes.get(i); + this.func_146283_a(recipe.print(), mouseX, mouseY); + } + } + } + + if(guiLeft + 151 <= mouseX && guiLeft + 151 + 18 > mouseX && guiTop + 71 < mouseY && guiTop + 71 + 18 >= mouseY) { + if(this.selection != null && this.recipeSet.recipeNameMap.containsKey(selection)) { + GenericRecipe recipe = (GenericRecipe) this.recipeSet.recipeNameMap.get(selection); + this.func_146283_a(recipe.print(), mouseX, mouseY); + } + } + + if(guiLeft + 152 <= mouseX && guiLeft + 152 + 16 > mouseX && guiTop + 90 < mouseY && guiTop + 90 + 16 >= mouseY) { + this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + "Close", mouseX, mouseY); + } + + if(guiLeft + 134 <= mouseX && guiLeft + 134 + 16 > mouseX && guiTop + 108 < mouseY && guiTop + 108 + 16 >= mouseY) { + this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + "Clear search", mouseX, mouseY); + } + + if(guiLeft + 8 <= mouseX && guiLeft + 8 + 16 > mouseX && guiTop + 108 < mouseY && guiTop + 108 + 16 >= mouseY) { + this.drawCreativeTabHoveringText(EnumChatFormatting.ITALIC + "Press ENTER to toggle focus", mouseX, mouseY); + } } protected void handleScroll() { @@ -118,7 +161,7 @@ public class GUIScreenRecipeSelector extends GuiScreen { } private void drawGuiContainerForegroundLayer(int x, int y) { - + this.search.drawTextBox(); } private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { @@ -126,38 +169,148 @@ public class GUIScreenRecipeSelector extends GuiScreen { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + if(this.search.isFocused()) { + drawTexturedModalRect(guiLeft + 26, guiTop + 108, 0, 132, 106, 16); + } + + if(guiLeft + 152 <= mouseX && guiLeft + 152 + 16 > mouseX && guiTop + 18 < mouseY && guiTop + 18 + 16 >= mouseY) { + drawTexturedModalRect(guiLeft + 152, guiTop + 18, 176, 0, 16, 16); + } + + if(guiLeft + 152 <= mouseX && guiLeft + 152 + 16 > mouseX && guiTop + 36 < mouseY && guiTop + 36 + 16 >= mouseY) { + drawTexturedModalRect(guiLeft + 152, guiTop + 36, 176, 16, 16, 16); + } + + if(guiLeft + 152 <= mouseX && guiLeft + 152 + 16 > mouseX && guiTop + 90 < mouseY && guiTop + 90 + 16 >= mouseY) { + drawTexturedModalRect(guiLeft + 152, guiTop + 90, 176, 32, 16, 16); + } + + if(guiLeft + 134 <= mouseX && guiLeft + 134 + 16 > mouseX && guiTop + 108 < mouseY && guiTop + 108 + 16 >= mouseY) { + drawTexturedModalRect(guiLeft + 134, guiTop + 108, 176, 48, 16, 16); + } + + if(guiLeft + 8 <= mouseX && guiLeft + 8 + 16 > mouseX && guiTop + 108 < mouseY && guiTop + 108 + 16 >= mouseY) { + drawTexturedModalRect(guiLeft + 8, guiTop + 108, 176, 64, 16, 16); + } + + for(int i = pageIndex * 8; i < pageIndex * 8 + 40; i++) { + if(i >= recipes.size()) break; + int ind = i - pageIndex * 8; + GenericRecipe recipe = recipes.get(i); + if(recipe.getInternalName().equals(this.selection)) this.drawTexturedModalRect(guiLeft + 7 + 18 * (ind % 8), guiTop + 17 + 18 * (ind / 8), 192, 0, 18, 18); + } + for(int i = pageIndex * 8; i < pageIndex * 8 + 40; i++) { if(i >= recipes.size()) break; int ind = i - pageIndex * 8; - - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - RenderHelper.enableGUIStandardItemLighting(); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GenericRecipe recipe = recipes.get(i); - FontRenderer font = recipe.getIcon().getItem().getFontRenderer(recipe.getIcon()); - if(font == null) font = fontRendererObj; - - itemRender.zLevel = 100.0F; - itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), recipe.getIcon(), guiLeft + 8 + 18 * (ind % 8), guiTop + 18 + 18 * (ind / 8)); - - itemRender.zLevel = 0.0F; - - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glDisable(GL11.GL_LIGHTING); + this.renderItem(recipe.getIcon(), 8 + 18 * (ind % 8), 18 + 18 * (ind / 8)); this.mc.getTextureManager().bindTexture(texture); + } + + if(this.selection != null && this.recipeSet.recipeNameMap.containsKey(selection)) { + GenericRecipe recipe = (GenericRecipe) this.recipeSet.recipeNameMap.get(selection); + this.renderItem(recipe.getIcon(), 152, 72); + } + } + + public void renderItem(ItemStack stack, int x, int y) { + + FontRenderer font = stack.getItem().getFontRenderer(stack); + if(font == null) font = fontRendererObj; + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + itemRender.zLevel = 100.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), stack, guiLeft + x, guiTop + y); + itemRender.zLevel = 0.0F; + + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_LIGHTING); + } + + @Override + protected void mouseClicked(int x, int y, int k) { + super.mouseClicked(x, y, k); + + this.search.mouseClicked(x, y, k); + + if(guiLeft + 152 <= x && guiLeft + 152 + 16 > x && guiTop + 18 < y && guiTop + 18 + 16 >= y) { + click(); + if(this.pageIndex > 0) this.pageIndex--; + return; + } + + if(guiLeft + 152 <= x && guiLeft + 152 + 16 > x && guiTop + 36 < y && guiTop + 36 + 16 >= y) { + click(); + if(this.pageIndex < this.size) this.pageIndex++; + return; + } + + if(guiLeft + 134 <= x && guiLeft + 134 + 16 > x && guiTop + 108 < y && guiTop + 108 + 16 >= y) { + this.search.setText(""); + this.search(""); + this.search.setFocused(true); + return; + } + + for(int i = pageIndex * 8; i < pageIndex * 8 + 40; i++) { + if(i >= this.recipes.size()) break; - if(recipe.name.equals(this.selection)) - this.drawTexturedModalRect(guiLeft + 7 + 18 * (ind % 8), guiTop + 17 + 18 * (ind / 8), 192, 0, 18, 18); + int ind = i - pageIndex * 8; + int ix = 7 + 18 * (ind % 8); + int iy = 17 + 18 * (ind / 8); + + if(guiLeft + ix <= x && guiLeft + ix + 18 > x && guiTop + iy < y && guiTop + iy + 18 >= y) { + + String newSelection = ((GenericRecipe) recipes.get(i)).getInternalName(); + + if(!newSelection.equals(selection)) + this.selection = newSelection; + else + this.selection = NULL_SELECTION; + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("index", this.index); + data.setString("selection", this.selection); + TileEntity te = (TileEntity) tile; + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, te.xCoord, te.yCoord, te.zCoord)); + click(); + return; + } + } + + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 71 < y && guiTop + 71 + 18 >= y) { + if(!NULL_SELECTION.equals(this.selection)) { + this.selection = this.NULL_SELECTION; + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("index", this.index); + data.setString("selection", this.selection); + TileEntity te = (TileEntity) tile; + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, te.xCoord, te.yCoord, te.zCoord)); + click(); + return; + } + } + + if(guiLeft + 152 <= x && guiLeft + 152 + 16 > x && guiTop + 90 < y && guiTop + 90 + 16 >= y) { + FMLCommonHandler.instance().showGuiScreen(previousScreen); } } @Override protected void keyTyped(char typedChar, int keyCode) { + if(keyCode == Keyboard.KEY_RETURN) { + this.search.setFocused(!this.search.isFocused()); + return; + } + if(this.search.textboxKeyTyped(typedChar, keyCode)) { search(this.search.getText()); return; @@ -168,10 +321,8 @@ public class GUIScreenRecipeSelector extends GuiScreen { } } - @Override - public void onGuiClosed() { - Keyboard.enableRepeatEvents(false); - } - + @Override public void onGuiClosed() { Keyboard.enableRepeatEvents(false); } @Override public boolean doesGuiPauseGame() { return false; } + + public void click() { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); } } diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index ea8e989b5..33a0a828d 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -15,6 +15,7 @@ import net.minecraft.nbt.NBTTagCompound; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.RefStrings; import com.hbm.tileentity.IUpgradeInfoProvider; @@ -161,7 +162,7 @@ public abstract class GuiInfoContainer extends GuiContainer implements INEIGuiHa return this.fontRendererObj; } - + /** Draws item with label, excludes all the GL state setup */ protected void drawItemStack(ItemStack stack, int x, int y, String label) { GL11.glTranslatef(0.0F, 0.0F, 32.0F); this.zLevel = 200.0F; @@ -174,6 +175,27 @@ public abstract class GuiInfoContainer extends GuiContainer implements INEIGuiHa this.zLevel = 0.0F; itemRender.zLevel = 0.0F; } + + public static final ItemStack TEMPLATE_FOLDER = new ItemStack(ModItems.template_folder); + + /** Standardsized item rendering from GUIScreenRecipeSelector */ + public void renderItem(ItemStack stack, int x, int y) { + renderItem(stack, x, y, 100F); + } + + public void renderItem(ItemStack stack, int x, int y, float layer) { + FontRenderer font = stack.getItem().getFontRenderer(stack); + if(font == null) font = fontRendererObj; + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + itemRender.zLevel = layer; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), stack, guiLeft + x, guiTop + y); + itemRender.zLevel = 0.0F; + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_LIGHTING); + } protected void drawStackText(List lines, int x, int y, FontRenderer font) { diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java index 9199580d1..823f97e81 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java @@ -1,5 +1,7 @@ package com.hbm.inventory.recipes.loader; +import java.util.ArrayList; +import java.util.List; import java.util.Locale; import com.hbm.inventory.FluidStack; @@ -13,10 +15,11 @@ import com.hbm.util.i18n.I18nUtil; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; public class GenericRecipe { - public String name; + protected final String name; public AStack[] inputItem; public FluidStack[] inputFluid; public IOutput[] outputItem; @@ -62,12 +65,31 @@ public class GenericRecipe { return icon; } - public String getName() { + public String getInternalName() { + return this.name; + } + + public String getLocalizedName() { if(customLocalization) return I18nUtil.resolveKey(name); return this.getIcon().getDisplayName(); } + public List print() { + List list = new ArrayList(); + list.add(EnumChatFormatting.YELLOW + this.getLocalizedName()); + list.add(EnumChatFormatting.BOLD + "Input:"); + if(inputItem != null) for(AStack stack : inputItem) { + ItemStack display = stack.extractForCyclingDisplay(20); + list.add(" " + EnumChatFormatting.GRAY + display.stackSize + "x " + display.getDisplayName()); + } + if(inputFluid != null) for(FluidStack fluid : inputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : "at " + EnumChatFormatting.RED + fluid.pressure + " PU")); + list.add(EnumChatFormatting.BOLD + "Output:"); + if(outputItem != null) for(IOutput output : outputItem) for(String line : output.getLabel()) list.add(" " + line); + if(outputFluid != null) for(FluidStack fluid : outputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : "at " + EnumChatFormatting.RED + fluid.pressure + " PU")); + return list; + } + public boolean matchesSearch(String substring) { - return getName().toLowerCase(Locale.US).contains(substring.toLowerCase(Locale.US)); + return getLocalizedName().toLowerCase(Locale.US).contains(substring.toLowerCase(Locale.US)); } } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index 5c33d09d4..53de13faa 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -14,6 +14,7 @@ import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.WeightedRandom; /** @@ -157,6 +158,7 @@ public abstract class GenericRecipes extends Serializab public ItemStack collapse(); public void serialize(JsonWriter writer) throws IOException; public void deserialize(JsonArray array); + public String[] getLabel(); } /** A chance output, produces either an ItemStack or null */ @@ -216,6 +218,11 @@ public abstract class GenericRecipes extends Serializab if(array.size() > 2) this.itemWeight = array.get(2).getAsInt(); } } + + @Override + public String[] getLabel() { + return new String[] {EnumChatFormatting.GRAY + "" + this.stack.stackSize + "x " + this.stack.getDisplayName() + (this.chance >= 1 ? "" : " (" + (int)(this.chance * 1000) / 10F + "%)")}; + } } /** Multiple choice chance output, produces a ChanceOutput chosen randomly by weight */ @@ -242,5 +249,18 @@ public abstract class GenericRecipes extends Serializab pool.add(output); } } + + @Override + public String[] getLabel() { + String[] label = new String[pool.size() + 1]; + label[0] = "One of:"; + int totalWeight = WeightedRandom.getTotalWeight(pool); + for(int i = 1; i < label.length; i++) { + ChanceOutput output = pool.get(i - 1); + float chance = (float) output.itemWeight / (float) totalWeight * output.chance; + label[i] = " " + EnumChatFormatting.GRAY + output.stack.stackSize + "x " + output.stack.getDisplayName() + " (" + (int)(chance * 1000F) / 10F + "%)"; + } + return label; + } } } diff --git a/src/main/java/com/hbm/module/ModuleMachineChemplant.java b/src/main/java/com/hbm/module/ModuleMachineChemplant.java index 9775ab26a..2d5d0ffbc 100644 --- a/src/main/java/com/hbm/module/ModuleMachineChemplant.java +++ b/src/main/java/com/hbm/module/ModuleMachineChemplant.java @@ -5,6 +5,8 @@ import com.hbm.inventory.recipes.ChemicalPlantRecipes; import com.hbm.inventory.recipes.loader.GenericRecipe; import api.hbm.energymk2.IEnergyHandlerMK2; +import cpw.mods.fml.common.network.ByteBufUtils; +import io.netty.buffer.ByteBuf; import net.minecraft.item.ItemStack; /** @@ -23,7 +25,7 @@ public class ModuleMachineChemplant { public FluidTank[] inputTanks = new FluidTank[3]; public FluidTank[] outputTanks = new FluidTank[3]; - public String recipe; + public String recipe = "null"; public float progress; public ModuleMachineChemplant(int index, IEnergyHandlerMK2 battery, ItemStack[] slots) { @@ -45,11 +47,33 @@ public class ModuleMachineChemplant { public void resetProgress() { this.progress = 0F; } public void update() { + //TBI + } + + public boolean isItemValid(int slot, ItemStack stack) { + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.recipe); + if(recipe == null) return false; + if(recipe.inputItem == null) return false; + for(int i = 0; i < Math.min(inputSlots.length, recipe.inputItem.length); i++) { + if(recipe.inputItem[i].matchesRecipe(stack, true)) return true; + } + + return false; } public ModuleMachineChemplant iInput(int a, int b, int c) { inputSlots[0] = a; inputSlots[1] = b; inputSlots[2] = c; return this; } public ModuleMachineChemplant iOutput(int a, int b, int c) { outputSlots[0] = a; outputSlots[1] = b; outputSlots[2] = c; return this; } public ModuleMachineChemplant fInput(FluidTank a, FluidTank b, FluidTank c) { inputTanks[0] = a; inputTanks[1] = b; inputTanks[2] = c; return this; } public ModuleMachineChemplant fOutput(FluidTank a, FluidTank b, FluidTank c) { outputTanks[0] = a; outputTanks[1] = b; outputTanks[2] = c; return this; } + + public void serialize(ByteBuf buf) { + buf.writeFloat(progress); + ByteBufUtils.writeUTF8String(buf, recipe); + } + + public void deserialize(ByteBuf buf) { + this.progress = buf.readFloat(); + this.recipe = ByteBufUtils.readUTF8String(buf); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index d0579ad9a..6686267ad 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -10,6 +10,7 @@ import com.hbm.inventory.container.ContainerMachineChemicalPlant; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineChemicalPlant; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.module.ModuleMachineChemplant; @@ -26,6 +27,7 @@ import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; @@ -38,8 +40,6 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem public long power; public long maxPower = 1_000_000; - public int progress; - public int maxProgress; public ModuleMachineChemplant chemplantModule; public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this); @@ -85,8 +85,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem for(FluidTank tank : outputTanks) tank.serialize(buf); buf.writeLong(power); buf.writeLong(maxPower); - buf.writeInt(progress); - buf.writeInt(maxProgress); + this.chemplantModule.serialize(buf); } @Override @@ -96,8 +95,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem for(FluidTank tank : outputTanks) tank.deserialize(buf); this.power = buf.readLong(); this.maxPower = buf.readLong(); - this.progress = buf.readInt(); - this.maxProgress = buf.readInt(); + this.chemplantModule.deserialize(buf); } @Override @@ -122,6 +120,16 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem } } + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot == 0) return true; // battery + if(slot >= 2 && slot <= 3 && stack.getItem() instanceof ItemMachineUpgrade) return true; // upgades + if(slot >= 10 && slot <= 12) return true; // input fluid + if(slot >= 16 && slot <= 18) return true; // output fluid + if(this.chemplantModule.isItemValid(slot, stack)) return true; // recipe input crap + return false; + } + @Override public long getPower() { return power; } @Override public void setPower(long power) { this.power = power; } @Override public long getMaxPower() { return maxPower; } @@ -137,7 +145,12 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem @Override public void receiveControl(NBTTagCompound data) { - + if(data.hasKey("index") && data.hasKey("selection")) { + int index = data.getInteger("index"); + String selection = data.getString("selection"); + if(index == 0) this.chemplantModule.recipe = selection; + this.markChanged(); + } } AxisAlignedBB bb = null; diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_chemplant.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_chemplant.png index ef8c8fc45a752b63dd48f4d63e53efc915476d80..d58713d9c3f848312cd58d877fd04d93f618154d 100644 GIT binary patch literal 3535 zcma)8c|6ox8~^=gX@)n$6mh4qMcFE3Ez1nqNwTM6sH{n(!N|}iA$8jX6!xQqE z*NFnc#)&W!jx4)I+E}8ozcPG$jM}!s1vlCW&jybdSFBXdRreonDf+UZkXLkN{fi@u(HTSf@DTS_fRyEJ#pzqkkUcekIBivBedf; zBnjyOErLB=-BZK6x+|#jC~oNTe0Ibp_EKYsB;-;c)4I=Yk>3VhEf6SQP;JpMzX z8#S4BSb0T%5BRc*I`1ckTFSgT7%@Amb?g-Ca@w);eu9$v&sx2o`OA{}C(9>CldX1? zmX&!qIXQ(%=)mT=)n5fyxGjGPa11P4`+FNS`xz~X10QPz^w9mKpZxWjT z7p-KgTd7O0#lX646m$@I(w|Lxd>Kc?Zvyt6qfmU`4FxZs^EOafP>ecjBxqogb!c)A ziIo-_R~xAYK~@JduUhjZ!Rn+b-VXOpYT_}8=``_)bHiXf&?lsaP^b{3$3kX7H$_d6 z(z#%rG)Oe;DgdoO-tKdsIWW|8hV^`BQ~Bn{GSK}g<%0AvF3=2FDjopbUcQW3Msm3! z-=?PS+Usm-y|Q~&S^}sgGqVTNmjZ`IGM2|g z$zeY%^3(22J7-f%uo)~aFzh(zRVso?hShc8D*G^YbF;pq4>H@8OXk(DV~MGMW@-@_ z=f%o8Z@TE@<<45}(swunk9p?|Gdt&b$WKnBgql~MqxcXAyk%Ofol_WYvc4!M47t&m zl|weM)nVlE4&H~J@|#L;)qRc3)x#TY#`li;JMxl3kPn6H0I6vIkhaR5maC? zh5}N=eA%16;ldoBBh~^^{2Ecjc*HXmWK4hQ29=1VhmPTlj7KyCdAoka#cib2N3BOX z4ESTc5)OE6Dk0mhBBhuJNLf!I4LoDdT9l9tTYBSUqU$ppMx64=WaDLmFQA$WA}kyb z_9N_~1OycGz$5TnnfjXI_Tsc+&;}9zM+6`eIKVa%kiyLUhcFj_JRXd3sc!4D6M=+k z16&^RG{5{mypFC)A+sul!$%a4vFR$~{GU?p;YlectnthFKE+=|>eJ`#>|2edeLY$V zqY-uQXDFadfE*|2r@?>Q{u8woQd{N3HS1l~i9u*f@`Rs%D9mif^qP-inSG0@1I?>Hx3)<|bqQ-AKlD^@K4$LdhnjdmhB@Os z8!%mWJ3(D{en5MRJ)&^W%c7v~4r@;aMY-sN$Y=D$uLH0eVu@HD3(3Lb#&k1_CEIwx zXGl@dE3wmKT_X6dLiC*^o>=f*hY~@%=Di}EpE4QDIb-EjdD(z+$z;RjckezFl4HAu zCD$$|(leJZ>x|7s@|X+0sEs8G*o`>RCL5nNN7uUhRSSNCHVu52e0B8S4YlcWzcF$( zpYn=lhIgDz-P2rw!>Mi!%_Z+U`832fW>Trz_|8yW>t`DB+dy?A|7;mYt3US10>K`8 zl6OXk>(~R2xTg#0L`o2Kaaan+= zx(VnN;{(pbBcdGrUwkYZ+90hSHwUAiqm99dTr*%0fqJ=N6M%zgFIa45iYhB-MjGUY zWMrR`dvEH7%?MheX4LD}AtThC#Ygm?=8uq57Q7$tJ54!Hzh3Yw1U++TMC(`p>?WR1 z3NQz>1o)(cpy3*4>je+YXK1gn=q~(N5Dj2e)pJ)w1CZS_x+z~Z!OQ72qNW>Dmquvf zz4bR1JE7GtnqXUfjpXSrPGm!W;LvnDqSF9|X4bg%JQRd?%($4qMtc>B#`wigJ8n0= zJ*@wEKf(BXQW?5;B1Lj)9H(c+6gInbdq%&9Kc{ z@EcB*nv7hJjohnj-U z4`!tAsU5?pOF;tx2ZthnikYiPRy)26R&-x`)6&A$FSCpoetTlilgdgx$lMod3#{G_ zJWK)JFOQwF0{SPl8zsNY%(N{mQG<090wcm0JDYIa@Lk=aHb=4EUDMv(?OO2qbk&@9 zc}HO?;T2iO-!F0Jwu*0mvhC)*t<$HOH6&8x@|PfYpRTjsl1i|lTNc3m{nLHcPsf0- zbT%`VnDSs#)Zq`TRJALm9)`+qrkkofWmySnRhw0s_V82sLY1R5pJR!w!TXNkM1-r; zw}Wql7o4$XHx|)SO?zn8Ii97I3FWG2wJQ?c|DqqHB7j{`uOiyx>JBw4ijjIsF!S4z zAmE*_h$aPoAkZ*pHXjTzyoZldUx?1xAY`<5*JL7%K)@FetRqCOGge6 z4ch>gSP^XSHV!;-*mG{YXPlyDM6gg(S|k&LDEviayelav5BrXl}^|4(({*?b10lx^f%DnIK>$fMFZ%Se4T9GKD0WH{y7BJ2?+}F@Vq-_UAM)u0Csi)UiEmV_FBQGQCqK89mV$e;va$x6d915Kv40JM+3Q{GbeH+z}PjQBpKXcrT=>sv}x4^Q?`05Xfn!RJtlx zmzPVGN2xKe#BnH)X{XUb7hxn^Jur}V3MrIuiEv>B&f@zhvCKAH%{g;pYoj7V(#3xR DKjunf literal 4029 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 Onx1aHt`(#+$$tPLPZMMS literal 1802 zcmcgt`#aQW6n|$-`O?}Z3eC0|WGE`-+OSOXj5Ju;Tyl#_<<2}9B9|FvDn+YD=DYkp}=M zkPng$1Au^C1c27U;2BnY8U|E2k?aJ)77Lxc0KnR2GHJilncUeoyugkAsSUKE zHF&{;eRK}v1&t|zi1yk8D#%e3VC^}Sw2oc|JCz50*3oT|KoJM9$G?M56q5K0cc4Pm z8l>r4gWA`UktWADEeN>JO5T)HRs}8vt5K_zkE0VKl*}>nloCW`6vcB{W?9^6qv+0B zc-imjvGb_!)^Wr}6CuPN8q)iWSo{#eOiy>DD&8?Tv$88l99Ba~6+hfRtNw!NyZn?Q zPnd0=DKHVd$(wGtG&ne2+HAr>5?W9owcpH?bCQ+(7Ixc=8_|B30rvibb1KMAG$0w3 z^Pe)BG%m#`gWYnVFsrC}`e#IE!Zm=sXoacgpr4DRy{7j~W?SY1c6zl!#gcZoHkNhk zlW#Z*$c3W_8wbJ%yLmc7(7plGy7xzeRY{c7C*`}B0NZ8H!gFZ{MgZ=s<$dX8ygH+@ zst&)X*>I|3#d)}Kuc)*HK?w_U$7}7zbrh$2v0Rnt)mtrM@KxM6tyiW>^q!J(`;KHn zg_rpfe>hq_Eja${s%ZDW1d;w$2B=4Y0olihqX~SB|xfbEA+aurpc{LOvL5`Y<4uJ ze#SBBK;q8UQ-s3TjZtUcYBg79NJ?Y9cc1|O9h1NxH(Af#f*@#Ct2> z`xxp}HWU#dvS6TLC5Avl@#nX0@@Ei7If1-nCcpjLzXyt zuyznnu2S@k-P%a(sm!k@MAe}Zy{WOW9=m3Yo6L`7{!Zmvfra(5*M3qdu=rMnPquL0 zv!NLOErNIO_;f}NGjJ?b=7zh03~1khSMD&aTy{fkyV#I4%C+A<5vTU@s{*-3@v%sn zPMyK|x#-lqxZr`~35H0TAC5^I4~4Z_%7<0hsR&3JunKvbzi!xtkX{Y!CkPZ`ew)ar zQfV<#?Mla)tqCri=ndeZ{m#KR{maB0)T4>x*uuTprrH!V(G z8PqbSYB)ISP1Rbn(ql_cXgE*{S;z;Xl|@%ItNq><`Ang3ITEFpUmOVF=&{IDd4A+! z5oNUXb5)=9pTl}R)bmz^+po<`w+4QB(C4SUh|vF|j&B`0R>kR7xQlA)e^N0rGunr@ z=>}&-f-qQ+x|_hloPXuw2Tluuy;L9ig4^hrDA0-6gdGqivIpjf*p+OopGgKH%ilfS z4C8l?SOoe#tW0`cv?T@g=DZ;VW*;y#C9=gfN7tZ{5Ir(n4cwBWFDL@1w;CutsLr;w zOiGryUd`h1vMGkWG@xw*=2vn?MCM}_0rG}$6m+K?vln68h5_5`fb^Xx58H#j8gPe! zj=3i=S8a@yyt3T24QF;Z`mdUr?pNoUG*VC%t&^6+l~>AXkNqX`^9zzC+wR@m&!4A9 z`i8cCVHSnys>iOZ@rf4C3lDVX5UjcK(&bCjNBk%7aP#H~{0-n==KnI<2Z?Njj7@7+ RONp Date: Thu, 5 Jun 2025 15:38:29 +0200 Subject: [PATCH 144/181] deltarune tomorrow --- changelog | 21 ++ .../blocks/machine/MachineChemicalPlant.java | 13 + .../java/com/hbm/inventory/fluid/Fluids.java | 4 +- .../hbm/inventory/fluid/tank/FluidTank.java | 51 +-- .../gui/GUIMachineChemicalPlant.java | 4 +- .../gui/GUIScreenRecipeSelector.java | 3 +- .../hbm/inventory/gui/GuiInfoContainer.java | 3 +- .../recipes/ChemicalPlantRecipes.java | 336 ++++++++++++++++-- .../inventory/recipes/ChemplantRecipes.java | 3 +- .../recipes/LiquefactionRecipes.java | 65 ++-- .../recipes/loader/GenericRecipe.java | 24 +- .../recipes/loader/GenericRecipes.java | 12 +- .../hbm/module/ModuleMachineChemplant.java | 132 ++++++- .../TileEntityMachineChemicalPlant.java | 48 ++- src/main/resources/assets/hbm/lang/de_DE.lang | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- .../hbm/textures/items/plate_kevlar.png | Bin 404 -> 374 bytes 17 files changed, 599 insertions(+), 124 deletions(-) diff --git a/changelog b/changelog index 2eb34f29f..8a24a37de 100644 --- a/changelog +++ b/changelog @@ -5,6 +5,9 @@ * Starmetal .50 BMG now returns * Overall better armor piercing stats than DU * Not compatible with the M2, only usable in amat rifles +* Reworked chemical plant + * No longer needs template items for everything, comes with a convenient recipe selector GUI + * Three item and three fluids for in and outputs ## Changed * The RBMK console's grid can now be rotated using a screwdriver @@ -20,6 +23,24 @@ * Tier 4 heart piece is now called "heart of darkness" * Thermal sights now render dead mobs in black * Guns now have unique scope overlays instead of reusing the .44 scope for everything +* The new chemplant has slightly altered recipes + * Very basic mixing recipes (e.g. coolant) have been removed, it's now required to use the mixer + * Water to hydrogen peroxide is now 1,000 : 1,000 (instead of 1,000 : 800) + * Sulfuric acid's peroxide requirement has been adjusted accordingly + * Nitric acid has an alternate recipe using air and water, however it takes 4x as long and has a base consumption of 2kHE/t + * Desh now only takes 10 seconds to produce instead of 15 + * Laminate now only takes 50mB of either fluid per recipe and processes much quicker + * Ducrete now uses U238 in the form of ferrouranium, and no longer requires gravel at all + * All recipes for nuclear fuel production now have a higher base consumption + * Cordite now uses sawdust instead of wood planks and sugar + * Kevlar is now made from aromatics, nitric acid and chlorine (or phosgene in 528 mode) + * Electrolysis using the chemplant has been removed. Hydrogen can be made using water and coal (or coke), and oxygen can be distilled from intake air + * Solid nuclear waste can also be vitrified now + * Thorium salt reprocessing now only has a 50% chance to produce a U233 nugget and a 25% chance to produce nuclear waste, making it less absurdly powerful and easier to deal with the waste + * Glyphid meat processing is now less autistic + * Making rusty steel now only takes 2 seconds per recipe + * Perfluoromethyl can now also be made in the chemical plant (technically, the process isn't just simple mixing after all) +* Removed niter to nitric acid liquefaction recipe ## Fixed * Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java index f26e1e3d6..b68a698da 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java @@ -7,6 +7,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 MachineChemicalPlant extends BlockDummyable { @@ -27,4 +28,16 @@ public class MachineChemicalPlant extends BlockDummyable { @Override public int[] getDimensions() { return new int[] {2, 0, 1, 1, 1, 1}; } @Override public int getOffset() { return 1; } + + @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; + z -= dir.offsetZ; + + for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) { + if(i != 0 || j != 0) this.makeExtra(world, x + i, y, z + j); + } + } } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 64a23a86b..37c68f121 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -305,7 +305,7 @@ public class Fluids { PLASMA_BF = new FluidType("PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(NOCON, NOID, PLASMA); CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS, new FT_Polluting().release(PollutionType.POISON, POISON_MINOR)); PLASMA_DH3 = new FluidType("PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(NOCON, NOID, PLASMA); - HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); + HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS).addContainers(new CD_Gastank(0xFD631F, 0xffffff)); DEATH = new FluidType("DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(80), new FT_Poison(true, 4), LEADCON, LIQUID, VISCOUS); ETHANOL = new FluidType("ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xEAFFF3)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.HIGH, 200_000), LIQUID, P_FUEL); HEAVYWATER = new FluidType("HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); @@ -1008,6 +1008,6 @@ public class Fluids { public static class CD_Gastank { public int bottleColor, labelColor; - public CD_Gastank(int color1, int color2) { this.bottleColor = color1; this.labelColor = color2; } + public CD_Gastank(int bottle, int label) { this.bottleColor = bottle; this.labelColor = label; } } } diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index bfad1ec11..4883790dc 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -7,6 +7,7 @@ import java.util.Set; import org.lwjgl.opengl.GL11; +import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.gui.GuiInfoContainer; @@ -25,7 +26,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; -public class FluidTank { +public class FluidTank implements Cloneable { public static final FluidTank[] EMPTY_ARRAY = new FluidTank[0]; @@ -54,38 +55,27 @@ public class FluidTank { return this; } - public void setFill(int i) { - fluid = i; - } + public void setFill(int i) { fluid = i; } public void setTankType(FluidType type) { - - if(type == null) { - type = Fluids.NONE; - } - - if(this.type == type) - return; + if(type == null) type = Fluids.NONE; + if(this.type == type) return; this.type = type; this.setFill(0); } - public FluidType getTankType() { - return type; + /** Changes type and pressure based on a fluid stack, useful for changing tank types based on recipes */ + public FluidTank conform(FluidStack stack) { + this.setTankType(stack.type); + this.withPressure(stack.pressure); + return this; } - public int getFill() { - return fluid; - } - - public int getMaxFill() { - return maxFluid; - } - - public int getPressure() { - return pressure; - } + public FluidType getTankType() { return type; } + public int getFill() { return fluid; } + public int getMaxFill() { return maxFluid; } + public int getPressure() { return pressure; } public int changeTankSize(int size) { maxFluid = size; @@ -95,20 +85,15 @@ public class FluidTank { fluid = maxFluid; return dif; } - return 0; } //Fills tank from canisters public boolean loadTank(int in, int out, ItemStack[] slots) { - - if(slots[in] == null) - return false; + if(slots[in] == null) return false; boolean isInfiniteBarrel = slots[in].getItem() == ModItems.fluid_barrel_infinite; - - if(!isInfiniteBarrel && pressure != 0) - return false; + if(!isInfiniteBarrel && pressure != 0) return false; int prev = this.getFill(); @@ -123,9 +108,7 @@ public class FluidTank { //Fills canisters from tank public boolean unloadTank(int in, int out, ItemStack[] slots) { - - if(slots[in] == null) - return false; + if(slots[in] == null) return false; int prev = this.getFill(); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java index c960eea0c..8e3285f5b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java @@ -103,8 +103,8 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { } for(int i = 0; i < 3; i++) { - chemplant.inputTanks[i].renderTank(guiLeft + 8, guiTop + 52, this.zLevel, 16, 34); - chemplant.outputTanks[i].renderTank(guiLeft + 80, guiTop + 52, this.zLevel, 16, 34); + chemplant.inputTanks[i].renderTank(guiLeft + 8 + i * 18, guiTop + 52, this.zLevel, 16, 34); + chemplant.outputTanks[i].renderTank(guiLeft + 80 + i * 18, guiTop + 52, this.zLevel, 16, 34); } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java index 418fc2dbd..09d20ed64 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java @@ -21,6 +21,7 @@ import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -223,7 +224,7 @@ public class GUIScreenRecipeSelector extends GuiScreen { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); RenderHelper.enableGUIStandardItemLighting(); - GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) 240 / 1.0F, (float) 240 / 1.0F); GL11.glEnable(GL12.GL_RESCALE_NORMAL); itemRender.zLevel = 100.0F; diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index 33a0a828d..d3f151798 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -26,6 +26,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.inventory.Container; @@ -188,7 +189,7 @@ public abstract class GuiInfoContainer extends GuiContainer implements INEIGuiHa if(font == null) font = fontRendererObj; GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); RenderHelper.enableGUIStandardItemLighting(); - GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) 240 / 1.0F, (float) 240 / 1.0F); GL11.glEnable(GL12.GL_RESCALE_NORMAL); itemRender.zLevel = layer; itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), stack, guiLeft + x, guiTop + y); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java index 95f029458..b4c334826 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -1,15 +1,20 @@ package com.hbm.inventory.recipes; +import static com.hbm.inventory.OreDictManager.*; + +import com.hbm.blocks.ModBlocks; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.material.MaterialShapes; -import com.hbm.inventory.material.Mats; -import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.inventory.recipes.loader.GenericRecipes; +import com.hbm.items.ItemEnums.EnumFuelAdditive; import com.hbm.items.ModItems; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; public class ChemicalPlantRecipes extends GenericRecipes { @@ -27,28 +32,311 @@ public class ChemicalPlantRecipes extends GenericRecipes { @Override public void registerDefaults() { - this.register(new GenericRecipe("chem.biogas").setup(60, 100).setIcon(ModItems.gas_full, Fluids.BIOGAS.getID()) - .setInputItems(new ComparableStack(ModItems.biomass, 16)) - .setInputFluids(new FluidStack(Fluids.AIR, 4000)) - .setOutputFluids(new FluidStack(Fluids.BIOGAS, 2000))); + /// REGULAR FLUIDS /// + this.register(new GenericRecipe("chem.hydrogen").setupNamed(20, 400).setIcon(ModItems.gas_full, Fluids.HYDROGEN.getID()) + .inputItems(new OreDictStack(COAL.gem(), 1)) + .inputFluids(new FluidStack(Fluids.WATER, 8_000)) + .outputFluids(new FluidStack(Fluids.HYDROGEN, 500))); - this.register(new GenericRecipe("chem.test").setup(60, 100) - .setInputItems(new ComparableStack(ModItems.biomass, 16)) - .setInputFluids(new FluidStack(Fluids.AIR, 4000)) - .setOutputItems( - new ChanceOutput(new ItemStack(ModItems.glyphid_meat, 16)), - new ChanceOutput(new ItemStack(ModItems.ingot_asbestos, 1), 0.5F, 0), - new ChanceOutputMulti() {{ - pool.add(new ChanceOutput(new ItemStack(ModItems.billet_co60), 1)); - pool.add(new ChanceOutput(new ItemStack(ModItems.billet_cobalt), 5)); - }}) - .setOutputFluids(new FluidStack(Fluids.BIOGAS, 2000))); + this.register(new GenericRecipe("chem.hydrogencoke").setupNamed(20, 400).setIcon(ModItems.gas_full, Fluids.HYDROGEN.getID()) + .inputItems(new OreDictStack(ANY_COKE.gem(), 1)) + .inputFluids(new FluidStack(Fluids.WATER, 8_000)) + .outputFluids(new FluidStack(Fluids.HYDROGEN, 500))); + + this.register(new GenericRecipe("chem.oxygen").setupNamed(20, 400).setIcon(ModItems.gas_full, Fluids.OXYGEN.getID()) + .inputFluids(new FluidStack(Fluids.AIR, 8_000)) + .outputFluids(new FluidStack(Fluids.OXYGEN, 500))); + + this.register(new GenericRecipe("chem.xenon").setupNamed(300, 1_000).setIcon(ModItems.gas_full, Fluids.XENON.getID()) + .inputFluids(new FluidStack(Fluids.AIR, 16_000)) + .outputFluids(new FluidStack(Fluids.XENON, 50))); + + this.register(new GenericRecipe("chem.xenonoxy").setupNamed(20, 1_000).setIcon(ModItems.gas_full, Fluids.XENON.getID()) + .inputFluids(new FluidStack(Fluids.AIR, 8_000), new FluidStack(Fluids.OXYGEN, 250)) + .outputFluids(new FluidStack(Fluids.XENON, 50))); + + this.register(new GenericRecipe("chem.helium3").setupNamed(200, 2_000).setIcon(ModItems.gas_full, Fluids.HELIUM3.getID()) + .inputItems(new ComparableStack(ModBlocks.moon_turf, 8)) + .outputFluids(new FluidStack(Fluids.HELIUM3, 1_000))); + + this.register(new GenericRecipe("chem.co2").setup(60, 100) + .inputFluids(new FluidStack(Fluids.GAS, 1_000)) + .outputFluids(new FluidStack(Fluids.CARBONDIOXIDE, 1_000))); + + this.register(new GenericRecipe("chem.perfluoromethyl").setup(20, 100) + .inputItems(new OreDictStack(F.dust())) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 1_000), new FluidStack(Fluids.UNSATURATEDS, 500)) + .outputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 1_000))); + + this.register(new GenericRecipe("chem.cccentrifuge").setup(200, 100) + .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) + .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); + + /// OILS /// + this.register(new GenericRecipe("chem.ethanol").setupNamed(50, 100).setIcon(ModItems.canister_full, Fluids.ETHANOL.getID()) + .inputItems(new ComparableStack(Items.sugar, 10)) + .outputFluids(new FluidStack(Fluids.ETHANOL, 1000))); + + this.register(new GenericRecipe("chem.biogas").setupNamed(60, 100).setIcon(ModItems.gas_full, Fluids.BIOGAS.getID()) + .inputItems(new ComparableStack(ModItems.biomass, 16)) + .inputFluids(new FluidStack(Fluids.AIR, 4_000)) + .outputFluids(new FluidStack(Fluids.BIOGAS, 2_000))); + + this.register(new GenericRecipe("chem.biofuel").setupNamed(60, 100).setIcon(ModItems.canister_full, Fluids.BIOFUEL.getID()) + .inputFluids(new FluidStack(Fluids.BIOGAS, 1_500), new FluidStack(Fluids.ETHANOL, 250)) + .outputFluids(new FluidStack(Fluids.BIOFUEL, 1_000))); + + this.register(new GenericRecipe("chem.reoil").setupNamed(40, 100).setIcon(ModItems.canister_full, Fluids.RECLAIMED.getID()) + .inputFluids(new FluidStack(Fluids.SMEAR, 1_000)) + .outputFluids(new FluidStack(Fluids.RECLAIMED, 800))); + + this.register(new GenericRecipe("chem.gasoline").setupNamed(40, 100).setIcon(ModItems.canister_full, Fluids.GASOLINE.getID()) + .inputFluids(new FluidStack(Fluids.NAPHTHA, 1000)) + .outputFluids(new FluidStack(Fluids.GASOLINE, 800))); + + this.register(new GenericRecipe("chem.tarsand").setupNamed(200, 100).setIcon(ModBlocks.ore_oil_sand) + .inputItems(new ComparableStack(ModBlocks.ore_oil_sand, 16), new OreDictStack(ANY_TAR.any(), 1)) + .outputItems(new ItemStack(Blocks.sand, 16)) + .outputFluids(new FluidStack(Fluids.BITUMEN, 1_000))); + + this.register(new GenericRecipe("chem.tel").setup(40, 100) + .inputItems(new OreDictStack(ANY_TAR.any()), new OreDictStack(PB.dust())) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 100), new FluidStack(Fluids.STEAM, 1000)) + .outputItems(DictFrame.fromOne(ModItems.fuel_additive, EnumFuelAdditive.ANTIKNOCK))); + + this.register(new GenericRecipe("chem.deicer").setup(40, 100) + .inputFluids(new FluidStack(Fluids.GAS, 100), new FluidStack(Fluids.HYDROGEN, 50)) + .outputItems(DictFrame.fromOne(ModItems.fuel_additive, EnumFuelAdditive.DEICER))); + + /// THE CONC AND ASPHALE /// + this.register(new GenericRecipe("chem.concrete").setup(100, 100) + .inputItems(new ComparableStack(ModItems.powder_cement, 1), new ComparableStack(Blocks.gravel, 8), new OreDictStack(KEY_SAND, 8)) + .inputFluids(new FluidStack(Fluids.WATER, 2_000)) + .outputItems(new ItemStack(ModBlocks.concrete_smooth, 16))); + + this.register(new GenericRecipe("chem.concreteasbestos").setup(100, 100) + .inputItems(new ComparableStack(ModItems.powder_cement, 4), new OreDictStack(ASBESTOS.ingot(), (GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) ? 1 : 4), new OreDictStack(KEY_SAND, 8)) + .inputFluids(new FluidStack(Fluids.WATER, 2_000)) + .outputItems(new ItemStack(ModBlocks.concrete_asbestos, 16))); + + this.register(new GenericRecipe("chem.ducrete").setup(150, 100) + .inputItems(new ComparableStack(ModItems.powder_cement, 4), new OreDictStack(FERRO.ingot()), new OreDictStack(KEY_SAND, 8)) + .inputFluids(new FluidStack(Fluids.WATER, 2_000)) + .outputItems(new ItemStack(ModBlocks.ducrete_smooth, 8))); + + this.register(new GenericRecipe("chem.asphalt").setup(100, 100) + .inputItems(new ComparableStack(Blocks.gravel, 2), new OreDictStack(KEY_SAND, 6)) + .inputFluids(new FluidStack(Fluids.BITUMEN, 1_000)) + .outputItems(new ItemStack(ModBlocks.asphalt, 16))); + + /// SOLIDS /// + this.register(new GenericRecipe("chem.desh").setup(200, 100) + .inputItems(new ComparableStack(ModItems.powder_desh_mix)) + .inputFluids((GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) ? + new FluidStack[] {new FluidStack(Fluids.LIGHTOIL, 200)} : + new FluidStack[] {new FluidStack(Fluids.LIGHTOIL, 200), new FluidStack(Fluids.MERCURY, 200)}) + .outputItems(new ItemStack(ModItems.ingot_desh))); + + this.register(new GenericRecipe("chem.polymer").setup(100, 100) + .inputItems(new OreDictStack(COAL.dust(), 2), new OreDictStack(F.dust())) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 500, GeneralConfig.enable528 ? 1 : 0)) + .outputItems(new ItemStack(ModItems.ingot_polymer))); + + this.register(new GenericRecipe("chem.bakelite").setup(100, 100) + .inputFluids(new FluidStack(Fluids.AROMATICS, 500, GeneralConfig.enable528 ? 1 : 0), new FluidStack(Fluids.PETROLEUM, 500, GeneralConfig.enable528 ? 1 : 0)) + .outputItems(new ItemStack(ModItems.ingot_bakelite))); + + this.register(new GenericRecipe("chem.rubber").setup(100, 200) + .inputItems(new OreDictStack(S.dust())) + .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500, GeneralConfig.enable528 ? 2 : 0)) + .outputItems(new ItemStack(ModItems.ingot_rubber))); + + this.register(new GenericRecipe("chem.hardplastic").setup(100, 1_000) + .inputFluids(new FluidStack(Fluids.XYLENE, 500, GeneralConfig.enable528 ? 2 : 0), new FluidStack(Fluids.PHOSGENE, 500, GeneralConfig.enable528 ? 2 : 0)) + .outputItems(new ItemStack(ModItems.ingot_pc))); + + this.register(new GenericRecipe("chem.pvc").setup(100, 1_000) + .inputItems(new OreDictStack(CD.dust())) + .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 250, GeneralConfig.enable528 ? 2 : 0), new FluidStack(Fluids.CHLORINE, 250, GeneralConfig.enable528 ? 2 : 0)) + .outputItems(new ItemStack(ModItems.ingot_pvc, 2))); + + this.register(new GenericRecipe("chem.kevlar").setup(20, 300) + .inputFluids(new FluidStack(Fluids.AROMATICS, 200), new FluidStack(Fluids.NITRIC_ACID, 100), new FluidStack(GeneralConfig.enable528 ? Fluids.PHOSGENE : Fluids.CHLORINE, 100)) + .outputItems(new ItemStack(ModItems.plate_kevlar, 4))); + + this.register(new GenericRecipe("chem.meth").setup(30, 300) + .inputItems(new ComparableStack(Items.wheat), new ComparableStack(Items.dye, 2, 3)) + .inputFluids(new FluidStack(Fluids.LUBRICANT, 400), new FluidStack(Fluids.PEROXIDE, 500)) + .outputItems(new ItemStack(ModItems.chocolate, 4))); + + this.register(new GenericRecipe("chem.epearl").setup(100, 300) + .inputItems(new OreDictStack(DIAMOND.dust(), 1)) + .inputFluids(new FluidStack(Fluids.XPJUICE, 500)) + .outputFluids(new FluidStack(Fluids.ENDERJUICE, 100))); + + this.register(new GenericRecipe("chem.meatprocessing").setupNamed(200, 200).setIcon(ModItems.glyphid_meat) + .inputItems(new OreDictStack(KEY_GLYPHID_MEAT, 3)) + .inputFluids(new FluidStack(Fluids.WATER, 1_000)) + .outputItems(new ItemStack(ModItems.sulfur, 4), new ItemStack(ModItems.niter, 3)) + .outputFluids(new FluidStack(Fluids.SALIENT, 250))); + + this.register(new GenericRecipe("chem.rustysteel").setup(40, 100) + .inputItems(new ComparableStack(ModBlocks.deco_steel, 8)) + .inputFluids(new FluidStack(Fluids.WATER, 1000)) + .outputItems(new ItemStack(ModBlocks.deco_rusty_steel, 8))); + + /// ACIDS /// + this.register(new GenericRecipe("chem.peroxide").setup(50, 100) + .inputFluids(new FluidStack(Fluids.WATER, 1_000)) + .outputFluids(new FluidStack(Fluids.PEROXIDE, 1_000))); + + this.register(new GenericRecipe("chem.sulfuricacid").setup(50, 100) + .inputItems(new OreDictStack(S.dust())) + .inputFluids(new FluidStack(Fluids.PEROXIDE, 1_000), new FluidStack(Fluids.WATER, 1_000)) + .outputFluids(new FluidStack(Fluids.SULFURIC_ACID, 2_000))); + + this.register(new GenericRecipe("chem.nitricacid").setup(50, 100) + .inputItems(new OreDictStack(KNO.dust())) + .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 500)) + .outputFluids(new FluidStack(Fluids.NITRIC_ACID, 1_000))); + + this.register(new GenericRecipe("chem.birkeland").setupNamed(200, 5_000) + .inputFluids(new FluidStack(Fluids.AIR, 8_000), new FluidStack(Fluids.WATER, 2_000)) + .outputFluids(new FluidStack(Fluids.NITRIC_ACID, 1_000))); + + this.register(new GenericRecipe("chem.schrabidic").setup(100, 5_000) + .inputItems(new ComparableStack(ModItems.pellet_charged)) + .inputFluids(new FluidStack(Fluids.SAS3, 8000), new FluidStack(Fluids.PEROXIDE, 6000)) + .outputFluids(new FluidStack(Fluids.SCHRABIDIC, 16000))); + + this.register(new GenericRecipe("chem.schrabidate").setup(150, 5_000) + .inputFluids(new FluidStack(Fluids.SCHRABIDIC, 250)) + .outputItems(new ItemStack(ModItems.powder_schrabidate))); + + /// COLTAN /// + this.register(new GenericRecipe("chem.coltancleaning").setup(60, 100) + .inputItems(new OreDictStack(COLTAN.dust(), 2), new OreDictStack(COAL.dust())) + .inputFluids(new FluidStack(Fluids.PEROXIDE, 250), new FluidStack(Fluids.HYDROGEN, 500)) + .outputItems(new ItemStack(ModItems.powder_coltan), new ItemStack(ModItems.powder_niobium), new ItemStack(ModItems.dust)) + .outputFluids(new FluidStack(Fluids.WATER, 500))); + + this.register(new GenericRecipe("chem.coltanpain").setup(120, 100) + .inputItems(new ComparableStack(ModItems.powder_coltan), new OreDictStack(F.dust())) + .inputFluids(new FluidStack(Fluids.GAS, 1000), new FluidStack(Fluids.OXYGEN, 500)) + .outputFluids(new FluidStack(Fluids.PAIN, 1000))); + + this.register(new GenericRecipe("chem.coltancrystal").setup(80, 100) + .inputFluids(new FluidStack(Fluids.PAIN, 1000), new FluidStack(Fluids.PEROXIDE, 500)) + .outputItems(new ItemStack(ModItems.gem_tantalium), new ItemStack(ModItems.dust, 3)) + .outputFluids(new FluidStack(Fluids.WATER, 250))); + + /// EXPLOSIVES /// + this.register(new GenericRecipe("chem.cordite").setup(40, 100) + .inputItems(new OreDictStack(KNO.dust(), 2), new ComparableStack(ModItems.powder_sawdust, 2)) + .inputFluids((GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) ? new FluidStack(Fluids.HEATINGOIL, 200) : new FluidStack(Fluids.GAS, 200)) + .outputItems(new ItemStack(ModItems.cordite, 4))); + + this.register(new GenericRecipe("chem.rocketfuel").setup(200, 100) + .inputItems(new ComparableStack(ModItems.solid_fuel, 2)) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0), new FluidStack(Fluids.NITRIC_ACID, 100)) + .outputItems(new ItemStack(ModItems.rocket_fuel, 4))); + + this.register(new GenericRecipe("chem.dynamite").setup(50, 100) + .inputItems(new ComparableStack(Items.sugar), new OreDictStack(KNO.dust()), new OreDictStack(KEY_SAND)) + .outputItems(new ItemStack(ModItems.ball_dynamite, 2))); + + this.register(new GenericRecipe("chem.tnt").setup(100, 1_000) + .inputItems(new OreDictStack(KNO.dust())) + .inputFluids(new FluidStack(Fluids.AROMATICS, 500, GeneralConfig.enable528 ? 1 : 0)) + .outputItems(new ItemStack(ModItems.ball_tnt, 4))); + + this.register(new GenericRecipe("chem.tatb").setup(50, 5_000) + .inputItems(new ComparableStack(ModItems.ball_tnt)) + .inputFluids(new FluidStack(Fluids.SOURGAS, 200, 1), new FluidStack(Fluids.NITRIC_ACID, 10)) + .outputItems(new ItemStack(ModItems.ball_tatb))); + + this.register(new GenericRecipe("chem.c4").setup(100, 1_000) + .inputItems(new OreDictStack(KNO.dust())) + .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500, GeneralConfig.enable528 ? 1 : 0)) + .outputItems(new ItemStack(ModItems.ingot_c4, 4))); + + this.register(new GenericRecipe("chem.shellchlorine").setup(100, 1_000) + .inputItems(new ComparableStack(ModItems.ammo_arty, 1, 0), new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.CHLORINE, 4_000)) + .outputItems(new ItemStack(ModItems.ammo_arty, 1, 9))); + + this.register(new GenericRecipe("chem.shellphosgene").setup(100, 1_000) + .inputItems(new ComparableStack(ModItems.ammo_arty, 1, 0), new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.PHOSGENE, 4_000)) + .outputItems(new ItemStack(ModItems.ammo_arty, 1, 10))); + + this.register(new GenericRecipe("chem.shellmustard").setup(100, 1_000) + .inputItems(new ComparableStack(ModItems.ammo_arty, 1, 0), new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4_000)) + .outputItems(new ItemStack(ModItems.ammo_arty, 1, 11))); + + /// GLASS /// + this.register(new GenericRecipe("chem.laminate").setup(20, 100) + .inputFluids(new FluidStack(Fluids.XYLENE, 50), new FluidStack(Fluids.PHOSGENE, 50)) + .inputItems(new OreDictStack(KEY_ANYGLASS), new OreDictStack(STEEL.bolt(), 4)) + .outputItems(new ItemStack(ModBlocks.reinforced_laminate))); + + /// NUCLEAR PROCESSING /// + this.register(new GenericRecipe("chem.yellowcake").setup(250, 500) + .inputItems(new OreDictStack(U.billet(), 2), new OreDictStack(S.dust(), 2)) + .inputFluids(new FluidStack(Fluids.PEROXIDE, 500)) + .outputItems(new ItemStack(ModItems.powder_yellowcake))); + + this.register(new GenericRecipe("chem.uf6").setup(100, 500).setIcon(ModItems.fluid_icon, Fluids.UF6.getID()) + .inputItems(new ComparableStack(ModItems.powder_yellowcake), new OreDictStack(F.dust(), 4)) + .inputFluids(new FluidStack(Fluids.WATER, 1_000)) + .outputItems(new ItemStack(ModItems.sulfur, 2)) + .outputFluids(new FluidStack(Fluids.UF6, 1_200))); + + this.register(new GenericRecipe("chem.puf6").setup(200, 500) + .inputItems(new OreDictStack(PU.dust()), new OreDictStack(F.dust(), 3)) + .inputFluids(new FluidStack(Fluids.WATER, 1_000)) + .outputFluids(new FluidStack(Fluids.PUF6, 900))); + + this.register(new GenericRecipe("chem.sas3").setup(200, 5_000) + .inputItems(new OreDictStack(SA326.dust()), new OreDictStack(S.dust(), 2)) + .inputFluids(new FluidStack(Fluids.PEROXIDE, 2_000)) + .outputFluids(new FluidStack(Fluids.SAS3, 1_000))); + + this.register(new GenericRecipe("chem.balefire").setup(100, 10_000).setIcon(ModItems.fluid_icon, Fluids.BALEFIRE.getID()) + .inputItems(new ComparableStack(ModItems.egg_balefire_shard)) + .inputFluids(new FluidStack(Fluids.KEROSENE, 6_000)) + .outputItems(new ItemStack(ModItems.powder_balefire)) + .outputFluids(new FluidStack(Fluids.BALEFIRE, 8_000))); + + this.register(new GenericRecipe("chem.thoriumsalt").setup(100, 10_000).setIcon(ModItems.fluid_icon, Fluids.THORIUM_SALT.getID()) + .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000)) + .inputItems(new OreDictStack(TH232.nugget(), 2)) + .outputFluids(new FluidStack(Fluids.THORIUM_SALT, 16_000)) + .outputItems( + new ChanceOutput(new ItemStack(ModItems.nugget_u233, 1), 0.5F), + new ChanceOutput(new ItemStack(ModItems.nuclear_waste_tiny, 1), 0.25F))); + + /// VITRIFICATION /// + this.register(new GenericRecipe("chem.vitliquid").setup(100, 1_000) + .inputItems(new ComparableStack(ModBlocks.sand_lead)) + .inputFluids(new FluidStack(Fluids.WASTEFLUID, 1_000)) + .outputItems(new ItemStack(ModItems.nuclear_waste_vitrified))); + + this.register(new GenericRecipe("chem.vitgaseous").setup(100, 1_000) + .inputItems(new ComparableStack(ModBlocks.sand_lead)) + .inputFluids(new FluidStack(Fluids.WASTEGAS, 1_000)) + .outputItems(new ItemStack(ModItems.nuclear_waste_vitrified))); + + this.register(new GenericRecipe("chem.vitsolid").setup(300, 1_000) + .inputItems(new ComparableStack(ModBlocks.sand_lead), new ComparableStack(ModItems.nuclear_waste, 4)) + .outputItems(new ItemStack(ModItems.nuclear_waste_vitrified, 4))); + + /// OSMIRIDIUM /// + this.register(new GenericRecipe("chem.osmiridiumdeath").setup(240, 1_000) + .inputItems(new ComparableStack(ModItems.powder_paleogenite), new OreDictStack(F.dust(), 8), new ComparableStack(ModItems.nugget_bismuth, 4)) + .inputFluids(new FluidStack(Fluids.PEROXIDE, 1_000, 5)) + .outputFluids(new FluidStack(Fluids.DEATH, 1_000, 0))); - for(NTMMaterial mat : Mats.orderedList) { - if(mat.autogen.contains(MaterialShapes.CASTPLATE)) this.register(new GenericRecipe(mat.getUnlocalizedName() + ".plate").setup(60, 100).setOutputItems(new ChanceOutput(new ItemStack(ModItems.plate_cast, 1, mat.id)))); - if(mat.autogen.contains(MaterialShapes.WELDEDPLATE)) this.register(new GenericRecipe(mat.getUnlocalizedName() + ".weld").setup(60, 100).setOutputItems(new ChanceOutput(new ItemStack(ModItems.plate_welded, 1, mat.id)))); - if(mat.autogen.contains(MaterialShapes.DENSEWIRE)) this.register(new GenericRecipe(mat.getUnlocalizedName() + ".wire").setup(60, 100).setOutputItems(new ChanceOutput(new ItemStack(ModItems.wire_dense, 1, mat.id)))); - if(mat.autogen.contains(MaterialShapes.MECHANISM)) this.register(new GenericRecipe(mat.getUnlocalizedName() + ".mechanism").setup(60, 100).setOutputItems(new ChanceOutput(new ItemStack(ModItems.part_mechanism, 1, mat.id)))); - } } } diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index a86d7930f..487d51983 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -25,6 +25,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; +@Deprecated public class ChemplantRecipes extends SerializableRecipe { /** @@ -419,7 +420,7 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModBlocks.asphalt, 16))); } - public static class ChemRecipe { + @Deprecated public static class ChemRecipe { public int listing; private int id; diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index ed171ee75..014296f28 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -33,43 +33,42 @@ public class LiquefactionRecipes extends SerializableRecipe { public void registerDefaults() { //oil processing - recipes.put(COAL.gem(), new FluidStack(100, Fluids.COALOIL)); - recipes.put(COAL.dust(), new FluidStack(100, Fluids.COALOIL)); - recipes.put(LIGNITE.gem(), new FluidStack(50, Fluids.COALOIL)); - recipes.put(LIGNITE.dust(), new FluidStack(50, Fluids.COALOIL)); - recipes.put(KEY_OIL_TAR, new FluidStack(75, Fluids.BITUMEN)); - recipes.put(KEY_CRACK_TAR, new FluidStack(100, Fluids.BITUMEN)); - recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); - recipes.put(KEY_LOG, new FluidStack(100, Fluids.MUG)); - recipes.put(KNO.dust(), new FluidStack(750, Fluids.NITRIC_ACID)); - recipes.put(NA.dust(), new FluidStack(100, Fluids.SODIUM)); - recipes.put(PB.ingot(), new FluidStack(100, Fluids.LEAD)); - recipes.put(PB.dust(), new FluidStack(100, Fluids.LEAD)); + recipes.put(COAL.gem(), new FluidStack(100, Fluids.COALOIL)); + recipes.put(COAL.dust(), new FluidStack(100, Fluids.COALOIL)); + recipes.put(LIGNITE.gem(), new FluidStack(50, Fluids.COALOIL)); + recipes.put(LIGNITE.dust(), new FluidStack(50, Fluids.COALOIL)); + recipes.put(KEY_OIL_TAR, new FluidStack(75, Fluids.BITUMEN)); + recipes.put(KEY_CRACK_TAR, new FluidStack(100, Fluids.BITUMEN)); + recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); + recipes.put(KEY_LOG, new FluidStack(100, Fluids.MUG)); + recipes.put(NA.dust(), new FluidStack(100, Fluids.SODIUM)); + recipes.put(PB.ingot(), new FluidStack(100, Fluids.LEAD)); + recipes.put(PB.dust(), new FluidStack(100, Fluids.LEAD)); //general utility recipes because why not - recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA)); - recipes.put(new ComparableStack(Blocks.cobblestone), new FluidStack(250, Fluids.LAVA)); - recipes.put(new ComparableStack(Blocks.stone), new FluidStack(250, Fluids.LAVA)); - recipes.put(new ComparableStack(Blocks.obsidian), new FluidStack(500, Fluids.LAVA)); - recipes.put(new ComparableStack(Items.snowball), new FluidStack(125, Fluids.WATER)); - recipes.put(new ComparableStack(Blocks.snow), new FluidStack(500, Fluids.WATER)); - recipes.put(new ComparableStack(Blocks.ice), new FluidStack(1000, Fluids.WATER)); - recipes.put(new ComparableStack(Blocks.packed_ice), new FluidStack(1000, Fluids.WATER)); - recipes.put(new ComparableStack(Items.ender_pearl), new FluidStack(100, Fluids.ENDERJUICE)); - recipes.put(new ComparableStack(ModItems.pellet_charged), new FluidStack(4000, Fluids.HELIUM4)); - recipes.put(new ComparableStack(ModBlocks.ore_oil_sand), new FluidStack(100, Fluids.BITUMEN)); + recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA)); + recipes.put(new ComparableStack(Blocks.cobblestone), new FluidStack(250, Fluids.LAVA)); + recipes.put(new ComparableStack(Blocks.stone), new FluidStack(250, Fluids.LAVA)); + recipes.put(new ComparableStack(Blocks.obsidian), new FluidStack(500, Fluids.LAVA)); + recipes.put(new ComparableStack(Items.snowball), new FluidStack(125, Fluids.WATER)); + recipes.put(new ComparableStack(Blocks.snow), new FluidStack(500, Fluids.WATER)); + recipes.put(new ComparableStack(Blocks.ice), new FluidStack(1000, Fluids.WATER)); + recipes.put(new ComparableStack(Blocks.packed_ice), new FluidStack(1000, Fluids.WATER)); + recipes.put(new ComparableStack(Items.ender_pearl), new FluidStack(100, Fluids.ENDERJUICE)); + recipes.put(new ComparableStack(ModItems.pellet_charged), new FluidStack(4000, Fluids.HELIUM4)); + recipes.put(new ComparableStack(ModBlocks.ore_oil_sand), new FluidStack(100, Fluids.BITUMEN)); - recipes.put(new ComparableStack(Items.sugar), new FluidStack(100, Fluids.ETHANOL)); - recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 3), new FluidStack(150, Fluids.ETHANOL)); - recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 4), new FluidStack(50, Fluids.ETHANOL)); - recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(125, Fluids.BIOGAS)); - recipes.put(new ComparableStack(ModItems.glyphid_gland_empty), new FluidStack(2000, Fluids.BIOGAS)); + recipes.put(new ComparableStack(Items.sugar), new FluidStack(100, Fluids.ETHANOL)); + recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 3), new FluidStack(150, Fluids.ETHANOL)); + recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 4), new FluidStack(50, Fluids.ETHANOL)); + recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(125, Fluids.BIOGAS)); + recipes.put(new ComparableStack(ModItems.glyphid_gland_empty), new FluidStack(2000, Fluids.BIOGAS)); recipes.put(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE), new FluidStack(100, Fluids.FISHOIL)); - recipes.put(new ComparableStack(Blocks.double_plant, 1, 0), new FluidStack(100, Fluids.SUNFLOWEROIL)); + recipes.put(new ComparableStack(Blocks.double_plant, 1, 0), new FluidStack(100, Fluids.SUNFLOWEROIL)); - recipes.put(new ComparableStack(Items.wheat_seeds), new FluidStack(50, Fluids.SEEDSLURRY)); - recipes.put(new ComparableStack(Blocks.tallgrass, 1, 1), new FluidStack(100, Fluids.SEEDSLURRY)); - recipes.put(new ComparableStack(Blocks.tallgrass, 1, 2), new FluidStack(100, Fluids.SEEDSLURRY)); - recipes.put(new ComparableStack(Blocks.vine), new FluidStack(100, Fluids.SEEDSLURRY)); + recipes.put(new ComparableStack(Items.wheat_seeds), new FluidStack(50, Fluids.SEEDSLURRY)); + recipes.put(new ComparableStack(Blocks.tallgrass, 1, 1), new FluidStack(100, Fluids.SEEDSLURRY)); + recipes.put(new ComparableStack(Blocks.tallgrass, 1, 2), new FluidStack(100, Fluids.SEEDSLURRY)); + recipes.put(new ComparableStack(Blocks.vine), new FluidStack(100, Fluids.SEEDSLURRY)); } public static FluidStack getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java index 823f97e81..f2c8dfd42 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java @@ -11,8 +11,10 @@ import com.hbm.inventory.recipes.loader.GenericRecipes.ChanceOutputMulti; import com.hbm.inventory.recipes.loader.GenericRecipes.IOutput; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.util.BobMathUtil; import com.hbm.util.i18n.I18nUtil; +import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -41,12 +43,19 @@ public class GenericRecipe { public GenericRecipe setIcon(ItemStack icon) { this.icon = icon; this.writeIcon = true; return this; } public GenericRecipe setIcon(Item item, int meta) { return this.setIcon(new ItemStack(item, 1, meta)); } public GenericRecipe setIcon(Item item) { return this.setIcon(new ItemStack(item)); } + public GenericRecipe setIcon(Block block) { return this.setIcon(new ItemStack(block)); } public GenericRecipe setNamed() { this.customLocalization = true; return this; } - public GenericRecipe setInputItems(AStack... input) { this.inputItem = input; return this; } - public GenericRecipe setInputFluids(FluidStack... input) { this.inputFluid = input; return this; } - public GenericRecipe setOutputItems(IOutput... output) { this.outputItem = output; return this; } - public GenericRecipe setOutputFluids(FluidStack... output) { this.outputFluid = output; return this; } + public GenericRecipe inputItems(AStack... input) { this.inputItem = input; return this; } + public GenericRecipe inputFluids(FluidStack... input) { this.inputFluid = input; return this; } + public GenericRecipe outputItems(IOutput... output) { this.outputItem = output; return this; } + public GenericRecipe outputFluids(FluidStack... output) { this.outputFluid = output; return this; } + + public GenericRecipe outputItems(ItemStack... output) { + this.outputItem = new IOutput[output.length]; + for(int i = 0; i < outputItem.length; i++) this.outputItem[i] = new ChanceOutput(output[i]); + return this; + } public ItemStack getIcon() { @@ -77,18 +86,21 @@ public class GenericRecipe { public List print() { List list = new ArrayList(); list.add(EnumChatFormatting.YELLOW + this.getLocalizedName()); + if(duration > 0) list.add(EnumChatFormatting.RED + "Duration: " + this.duration / 20D + "s"); + if(power > 0) list.add(EnumChatFormatting.RED + "Consumption: " + BobMathUtil.getShortNumber(power) + "HE/t"); list.add(EnumChatFormatting.BOLD + "Input:"); if(inputItem != null) for(AStack stack : inputItem) { ItemStack display = stack.extractForCyclingDisplay(20); list.add(" " + EnumChatFormatting.GRAY + display.stackSize + "x " + display.getDisplayName()); } - if(inputFluid != null) for(FluidStack fluid : inputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : "at " + EnumChatFormatting.RED + fluid.pressure + " PU")); + if(inputFluid != null) for(FluidStack fluid : inputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : " at " + EnumChatFormatting.RED + fluid.pressure + " PU")); list.add(EnumChatFormatting.BOLD + "Output:"); if(outputItem != null) for(IOutput output : outputItem) for(String line : output.getLabel()) list.add(" " + line); - if(outputFluid != null) for(FluidStack fluid : outputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : "at " + EnumChatFormatting.RED + fluid.pressure + " PU")); + if(outputFluid != null) for(FluidStack fluid : outputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : " at " + EnumChatFormatting.RED + fluid.pressure + " PU")); return list; } + /** Default impl only matches localized name substring, can be extended to include ingredients as well */ public boolean matchesSearch(String substring) { return getLocalizedName().toLowerCase(Locale.US).contains(substring.toLowerCase(Locale.US)); } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index 53de13faa..eabdd1802 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -55,6 +55,7 @@ public abstract class GenericRecipes extends Serializab public void register(T recipe) { this.recipeOrderedList.add(recipe); + if(recipeNameMap.containsKey(recipe.name)) throw new IllegalStateException("Recipe " + recipe.name + " has been reciped with a duplicate ID!"); this.recipeNameMap.put(recipe.name, recipe); } @@ -154,8 +155,12 @@ public abstract class GenericRecipes extends Serializab /// CLASSES /// /////////////// public static interface IOutput { + /** true for ChanceOutputMulti with a poolsize >1 */ public boolean possibleMultiOutput(); + /** Decides an output, returns a copy of the held result */ public ItemStack collapse(); + /** Returns an itemstack only if possibleMultiOutput is false, null otherwise */ + public ItemStack getSingle(); public void serialize(JsonWriter writer) throws IOException; public void deserialize(JsonArray array); public String[] getLabel(); @@ -172,6 +177,7 @@ public abstract class GenericRecipes extends Serializab public ChanceOutput() { super(0); } // for deserialization public ChanceOutput(ItemStack stack) { this(stack, 1F, 0); } public ChanceOutput(ItemStack stack, int weight) { this(stack, 1F, weight); } + public ChanceOutput(ItemStack stack, float chance) { this(stack, chance, 0); } public ChanceOutput(ItemStack stack, float chance, int weight) { super(weight); this.stack = stack; @@ -180,10 +186,11 @@ public abstract class GenericRecipes extends Serializab @Override public ItemStack collapse() { - if(this.chance >= 1F) return this.stack; - return RNG.nextFloat() <= chance ? this.stack : null; + if(this.chance >= 1F) return getSingle().copy(); + return RNG.nextFloat() <= chance ? getSingle().copy() : null; } + @Override public ItemStack getSingle() { return this.stack; } @Override public boolean possibleMultiOutput() { return false; } @Override @@ -232,6 +239,7 @@ public abstract class GenericRecipes extends Serializab @Override public ItemStack collapse() { return ((ChanceOutput) WeightedRandom.getRandomItem(RNG, pool)).collapse(); } @Override public boolean possibleMultiOutput() { return pool.size() > 1; } + @Override public ItemStack getSingle() { return possibleMultiOutput() ? null : pool.get(0).getSingle(); } @Override public void serialize(JsonWriter writer) throws IOException { diff --git a/src/main/java/com/hbm/module/ModuleMachineChemplant.java b/src/main/java/com/hbm/module/ModuleMachineChemplant.java index 2d5d0ffbc..258f8fcc4 100644 --- a/src/main/java/com/hbm/module/ModuleMachineChemplant.java +++ b/src/main/java/com/hbm/module/ModuleMachineChemplant.java @@ -3,11 +3,13 @@ package com.hbm.module; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.ChemicalPlantRecipes; import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.inventory.recipes.loader.GenericRecipes.IOutput; import api.hbm.energymk2.IEnergyHandlerMK2; import cpw.mods.fml.common.network.ByteBufUtils; import io.netty.buffer.ByteBuf; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; /** * Option 1: Make a base class with weird arbitrary overrides to define shit like slots for multi machines like the chemfac @@ -17,6 +19,7 @@ import net.minecraft.item.ItemStack; */ public class ModuleMachineChemplant { + // setup public int index; public IEnergyHandlerMK2 battery; public ItemStack[] slots; @@ -24,9 +27,12 @@ public class ModuleMachineChemplant { public int[] outputSlots = new int[3]; public FluidTank[] inputTanks = new FluidTank[3]; public FluidTank[] outputTanks = new FluidTank[3]; - + // running vars public String recipe = "null"; public float progress; + // return signals + public boolean didProcess = false; + public boolean markDirty = false; public ModuleMachineChemplant(int index, IEnergyHandlerMK2 battery, ItemStack[] slots) { this.index = index; @@ -34,38 +40,128 @@ public class ModuleMachineChemplant { this.slots = slots; } - public boolean canProcess() { - GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.recipe); + /** Chances tank type and pressure based on recipe */ + public void setupTanks(GenericRecipe recipe) { + if(recipe == null) return; + if(recipe.inputFluid != null) for(int i = 0; i < Math.min(inputTanks.length, recipe.inputFluid.length); i++) inputTanks[i].conform(recipe.inputFluid[i]); + if(recipe.outputFluid != null) for(int i = 0; i < Math.min(outputTanks.length, recipe.outputFluid.length); i++) outputTanks[i].conform(recipe.outputFluid[i]); + } + + /** Expects the tanks to be set up correctly beforehand */ + public boolean canProcess(GenericRecipe recipe) { if(recipe == null) return false; if(battery.getPower() < recipe.power) return false; - //TBI + if(recipe.inputItem != null) { + for(int i = 0; i < Math.min(recipe.inputItem.length, inputSlots.length); i++) { + if(!recipe.inputItem[i].matchesRecipe(slots[inputSlots[i]], false)) return false; + } + } + + if(recipe.inputFluid != null) { + for(int i = 0; i < Math.min(recipe.inputFluid.length, inputTanks.length); i++) { + if(inputTanks[i].getFill() < recipe.inputFluid[i].fill) return false; + } + } + + if(recipe.outputItem != null) { + for(int i = 0; i < Math.min(recipe.outputItem.length, outputSlots.length); i++) { + ItemStack stack = slots[outputSlots[i]]; + if(stack == null) continue; // always continue if output slot is free + IOutput output = recipe.outputItem[i]; + if(output.possibleMultiOutput()) return false; // output slot needs to be empty to decide on multi outputs + ItemStack single = output.getSingle(); + if(single == null) return false; // shouldn't be possible but better safe than sorry + if(stack.getItem() != single.getItem()) return false; + if(stack.getItemDamage() != single.getItemDamage()) return false; + if(stack.stackSize + single.stackSize > stack.getMaxStackSize()) return false; + } + } + + if(recipe.outputFluid != null) { + for(int i = 0; i < Math.min(recipe.outputFluid.length, outputTanks.length); i++) { + if(recipe.outputFluid[i].fill + outputTanks[i].getFill() > outputTanks[i].getMaxFill()) return false; + } + } return true; } - public void resetProgress() { this.progress = 0F; } - - public void update() { - //TBI + public void process(GenericRecipe recipe) { + + this.battery.setPower(this.battery.getPower() - recipe.power); + float step = Math.min(1F / recipe.duration, 1F); // can't do more than one recipe per tick, might look into that later + this.progress += step; + + if(this.progress >= 1F) { + this.progress -= 1F; + + if(recipe.inputItem != null) { + for(int i = 0; i < Math.min(recipe.inputItem.length, inputSlots.length); i++) { + slots[inputSlots[i]].stackSize -= recipe.inputItem[i].stacksize; + if(slots[inputSlots[i]].stackSize <= 0) slots[inputSlots[i]] = null; + } + } + + if(recipe.inputFluid != null) { + for(int i = 0; i < Math.min(recipe.inputFluid.length, inputTanks.length); i++) { + inputTanks[i].setFill(inputTanks[i].getFill() - recipe.inputFluid[i].fill); + } + } + + if(recipe.outputItem != null) { + for(int i = 0; i < Math.min(recipe.outputItem.length, outputSlots.length); i++) { + ItemStack collapse = recipe.outputItem[i].collapse(); + if(slots[outputSlots[i]] == null) { + slots[outputSlots[i]] = collapse; + } else { + slots[outputSlots[i]].stackSize += collapse.stackSize; // we can do this because we've already established that the result slot is not null if it's a single output + } + } + } + + if(recipe.outputFluid != null) { + for(int i = 0; i < Math.min(recipe.outputFluid.length, outputTanks.length); i++) { + outputTanks[i].setFill(outputTanks[i].getFill() + recipe.outputFluid[i].fill); + } + } + + this.markDirty = true; + } } + public void update() { + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.recipe); + this.setupTanks(recipe); + + this.didProcess = false; + this.markDirty = false; + + if(this.canProcess(recipe)) { + this.process(recipe); + this.didProcess = true; + } else { + this.progress = 0F; + } + } + + /** For item IO, instead of the TE doing all the work it only has to handle non-recipe stuff, the module does the rest */ public boolean isItemValid(int slot, ItemStack stack) { GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.recipe); if(recipe == null) return false; if(recipe.inputItem == null) return false; for(int i = 0; i < Math.min(inputSlots.length, recipe.inputItem.length); i++) { - if(recipe.inputItem[i].matchesRecipe(stack, true)) return true; + if(inputSlots[i] == slot && recipe.inputItem[i].matchesRecipe(stack, true)) return true; } return false; } - public ModuleMachineChemplant iInput(int a, int b, int c) { inputSlots[0] = a; inputSlots[1] = b; inputSlots[2] = c; return this; } - public ModuleMachineChemplant iOutput(int a, int b, int c) { outputSlots[0] = a; outputSlots[1] = b; outputSlots[2] = c; return this; } - public ModuleMachineChemplant fInput(FluidTank a, FluidTank b, FluidTank c) { inputTanks[0] = a; inputTanks[1] = b; inputTanks[2] = c; return this; } - public ModuleMachineChemplant fOutput(FluidTank a, FluidTank b, FluidTank c) { outputTanks[0] = a; outputTanks[1] = b; outputTanks[2] = c; return this; } + public ModuleMachineChemplant itemInput(int a, int b, int c) { inputSlots[0] = a; inputSlots[1] = b; inputSlots[2] = c; return this; } + public ModuleMachineChemplant itemOutput(int a, int b, int c) { outputSlots[0] = a; outputSlots[1] = b; outputSlots[2] = c; return this; } + public ModuleMachineChemplant fluidInput(FluidTank a, FluidTank b, FluidTank c) { inputTanks[0] = a; inputTanks[1] = b; inputTanks[2] = c; return this; } + public ModuleMachineChemplant fluidOutput(FluidTank a, FluidTank b, FluidTank c) { outputTanks[0] = a; outputTanks[1] = b; outputTanks[2] = c; return this; } public void serialize(ByteBuf buf) { buf.writeFloat(progress); @@ -76,4 +172,14 @@ public class ModuleMachineChemplant { this.progress = buf.readFloat(); this.recipe = ByteBufUtils.readUTF8String(buf); } + + public void readFromNBT(NBTTagCompound nbt) { + this.progress = nbt.getFloat("progress"); + this.recipe = nbt.getString("recipe"); + } + + public void writeToNBT(NBTTagCompound nbt) { + nbt.setFloat("progress", progress); + nbt.setString("recipe", recipe); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index 6686267ad..bbd049ba7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -18,6 +18,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; +import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; @@ -40,6 +41,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem public long power; public long maxPower = 1_000_000; + public boolean didProcess = false; public ModuleMachineChemplant chemplantModule; public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this); @@ -55,7 +57,10 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem } this.chemplantModule = new ModuleMachineChemplant(0, this, slots) - .iInput(4, 5, 6).iOutput(7, 8, 9); + .itemInput(4, 5, 6) + .itemOutput(7, 8, 9) + .fluidInput(inputTanks[0], inputTanks[1], inputTanks[2]) + .fluidOutput(outputTanks[0], outputTanks[1], outputTanks[2]); } @Override @@ -70,6 +75,24 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); upgradeManager.checkSlots(slots, 2, 3); + + inputTanks[0].loadTank(10, 13, slots); + inputTanks[1].loadTank(11, 14, slots); + inputTanks[2].loadTank(12, 15, slots); + + outputTanks[0].unloadTank(16, 19, slots); + outputTanks[1].unloadTank(17, 20, slots); + outputTanks[2].unloadTank(18, 21, slots); + + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos); + for(FluidTank tank : inputTanks) if(tank.getTankType() != Fluids.NONE) this.trySubscribe(tank.getTankType(), worldObj, pos); + for(FluidTank tank : outputTanks) if(tank.getFill() > 0) this.tryProvide(tank, worldObj, pos); + } + + this.chemplantModule.update(); + this.didProcess = this.chemplantModule.didProcess; + if(this.chemplantModule.markDirty) this.markDirty(); this.networkPackNT(100); @@ -77,6 +100,23 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem } } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord + 0, 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 + 0, 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 + 0, 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 + 0, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z), + }; + } @Override public void serialize(ByteBuf buf) { @@ -107,7 +147,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem this.outputTanks[i].readFromNBT(nbt, "o" + i); } - this.chemplantModule.fInput(inputTanks[0], inputTanks[1], inputTanks[2]).fOutput(outputTanks[0], outputTanks[1], outputTanks[2]); + this.chemplantModule.readFromNBT(nbt); } @Override @@ -118,12 +158,14 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem this.inputTanks[i].writeToNBT(nbt, "i" + i); this.outputTanks[i].writeToNBT(nbt, "o" + i); } + + this.chemplantModule.writeToNBT(nbt); } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { if(slot == 0) return true; // battery - if(slot >= 2 && slot <= 3 && stack.getItem() instanceof ItemMachineUpgrade) return true; // upgades + if(slot >= 2 && slot <= 3 && stack.getItem() instanceof ItemMachineUpgrade) return true; // upgrades if(slot >= 10 && slot <= 12) return true; // input fluid if(slot >= 16 && slot <= 18) return true; // output fluid if(this.chemplantModule.isItemValid(slot, stack)) return true; // recipe input crap diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 984ab6040..eb5a473d3 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2871,7 +2871,7 @@ item.plate_euphemium.name=Euphemium-Verbundplatte item.plate_gold.name=Goldplatte item.plate_gunmetal.name=Rotgussplatte item.plate_iron.name=Eisenplatte -item.plate_kevlar.name=Kevlar-Keramik-Verbund +item.plate_kevlar.name=Kevlarplatte item.plate_lead.name=Bleiplatte item.plate_mixed.name=Gemischte Platte item.plate_paa.name=PaA-Legierungsplatte diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index df2d909a3..d8c12c8c2 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3766,7 +3766,7 @@ item.plate_fuel_u235.name=HEU-235 Plate Fuel item.plate_gold.name=Gold Plate item.plate_gunmetal.name=Gunmetal Plate item.plate_iron.name=Iron Plate -item.plate_kevlar.name=Kevlar-Ceramic Compound +item.plate_kevlar.name=Kevlar Sheet item.plate_lead.name=Lead Plate item.plate_mixed.name=Mixed Plate item.plate_paa.name=PaA Alloy Plate diff --git a/src/main/resources/assets/hbm/textures/items/plate_kevlar.png b/src/main/resources/assets/hbm/textures/items/plate_kevlar.png index 5c7efbb19c077486a4d4f8d6e9dbe8c9077ceab6..00cfa5a1586b82b1dd8ff1c7f3b14fc848f801e5 100644 GIT binary patch delta 347 zcmV-h0i^zv1NH)tB!2{RLP=Bz2nYy#2xN!=00AvYL_t(IjbmUK@_-SS#Pq4`|An|c z7~Xx|!H}8#6Q?>RT$;apS7lJw-No?byDG!KI^z{8^WY*DBZeU{F z&#-Nm9D{=L0U~XNXl7u5ri0^qV*kJXyqZCjHa z`1Jh*Tr=DN7*yD_p5y<~lX48!=8qVTo|I#V41LV7d%rS+tK(gU+C~8eb(J?LnlTK3 t0dyB#IAe-oGhPGGUG(?YeXN?P0sxaq#sZpONpGDM>^@R5(wilCf%pKoExK0;z(9l}CDe@d*NXgn$-m8PHA$d54sC z79o`uiUjTj0(lHkf?yRvG<}N6%_e)?>UwwN{$_S%|L=EZcYlS5aE>ni>c4e1V6g?) zbx~0iwvOX?#TF7t0c18!6UK1_RaK#`YxZ3RngO_(OizzjaC7$t@2|J;vbmOm1i-$z zX&UId4m3>@s^@tEXg9=ZG99MmX-$#@bX|uq48gW-WPflJf*@d% zq~7T2wk^>X)|bz_TOe~3MS__m+` Date: Thu, 5 Jun 2025 16:32:30 +0300 Subject: [PATCH 145/181] Save customName to NBT --- .../tileentity/TileEntityInventoryBase.java | 6 ++++++ .../hbm/tileentity/TileEntityMachineBase.java | 6 ++++++ .../tileentity/bomb/TileEntityBombMulti.java | 6 ++++++ .../bomb/TileEntityCompactLauncher.java | 6 ++++++ .../bomb/TileEntityLaunchTable.java | 6 ++++++ .../tileentity/bomb/TileEntityNukeBoy.java | 6 ++++++ .../tileentity/bomb/TileEntityNukeCustom.java | 6 ++++++ .../tileentity/bomb/TileEntityNukeFleija.java | 6 ++++++ .../tileentity/bomb/TileEntityNukeGadget.java | 6 ++++++ .../tileentity/bomb/TileEntityNukeMan.java | 6 ++++++ .../tileentity/bomb/TileEntityNukeMike.java | 6 ++++++ .../hbm/tileentity/bomb/TileEntityNukeN2.java | 6 ++++++ .../bomb/TileEntityNukePrototype.java | 6 ++++++ .../bomb/TileEntityNukeSolinium.java | 6 ++++++ .../tileentity/bomb/TileEntityNukeTsar.java | 6 ++++++ .../machine/TileEntityForceField.java | 6 ++++++ .../machine/TileEntityLockableBase.java | 19 +++++++++++++++++++ .../machine/TileEntityMachineArcFurnace.java | 6 ++++++ .../machine/TileEntityMachineKeyForge.java | 6 ++++++ .../TileEntityMachineMissileAssembly.java | 6 ++++++ .../machine/TileEntityMachineRTG.java | 6 ++++++ .../machine/TileEntityMachineSatDock.java | 6 ++++++ .../machine/TileEntityMachineSatLinker.java | 6 ++++++ .../machine/TileEntityMachineShredder.java | 6 ++++++ .../machine/TileEntityMachineSiren.java | 6 ++++++ .../machine/TileEntityMachineTurbine.java | 6 ++++++ .../machine/TileEntityRtgFurnace.java | 6 ++++++ .../machine/TileEntityWasteDrum.java | 6 ++++++ .../rbmk/TileEntityRBMKSlottedBase.java | 6 ++++++ .../machine/storage/TileEntityCrateBase.java | 6 ++++++ .../storage/TileEntityMachineBattery.java | 6 ++++++ .../TileEntityRequestNetworkContainer.java | 6 ++++++ 32 files changed, 205 insertions(+) diff --git a/src/main/java/com/hbm/tileentity/TileEntityInventoryBase.java b/src/main/java/com/hbm/tileentity/TileEntityInventoryBase.java index 4278443fe..8bc34400e 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityInventoryBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityInventoryBase.java @@ -145,6 +145,8 @@ public abstract class TileEntityInventoryBase extends TileEntity implements ISid slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -163,5 +165,9 @@ public abstract class TileEntityInventoryBase extends TileEntity implements ISid } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index e38bf2f63..b125d03be 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -161,6 +161,8 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -179,6 +181,10 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public void updateRedstoneConnection(DirPos pos) { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java index 2955f12f4..b7e3139a5 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java @@ -156,6 +156,8 @@ public class TileEntityBombMulti extends TileEntity implements ISidedInventory, slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -174,6 +176,10 @@ public class TileEntityBombMulti extends TileEntity implements ISidedInventory, } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public boolean isLoaded(){ diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 12dd8bab2..ac4208263 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -523,6 +523,8 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -545,6 +547,10 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index a5e49a870..483bc8554 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -520,6 +520,8 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -543,6 +545,10 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java index 5fdaa194d..95dadcd89 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java @@ -154,6 +154,8 @@ public class TileEntityNukeBoy extends TileEntity implements ISidedInventory, IG slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -172,6 +174,10 @@ public class TileEntityNukeBoy extends TileEntity implements ISidedInventory, IG } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public boolean isReady() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java index e245c8669..2dff6eb94 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java @@ -161,6 +161,8 @@ public class TileEntityNukeCustom extends TileEntity implements ISidedInventory, slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -180,6 +182,10 @@ public class TileEntityNukeCustom extends TileEntity implements ISidedInventory, } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public static HashMap entries = new HashMap(); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java index b843bdb3e..f8b36b80d 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java @@ -154,6 +154,8 @@ public class TileEntityNukeFleija extends TileEntity implements ISidedInventory, slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -172,6 +174,10 @@ public class TileEntityNukeFleija extends TileEntity implements ISidedInventory, } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public boolean isReady() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java index 8eb136372..267972caa 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java @@ -154,6 +154,8 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory, slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -172,6 +174,10 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory, } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } /*public int getNukeTier() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java index 021789895..66bb62190 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java @@ -154,6 +154,8 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory, IG slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -172,6 +174,10 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory, IG } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public boolean exp1() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java index 1d924acd1..a3e0eac1f 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java @@ -154,6 +154,8 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory, I slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -172,6 +174,10 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory, I } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public boolean isReady() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java index 099807c3a..2241a58da 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java @@ -154,6 +154,8 @@ public class TileEntityNukeN2 extends TileEntity implements ISidedInventory, IGU slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -172,6 +174,10 @@ public class TileEntityNukeN2 extends TileEntity implements ISidedInventory, IGU } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public boolean isReady() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java index b3fa2dd11..449fdecb5 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java @@ -155,6 +155,8 @@ public class TileEntityNukePrototype extends TileEntity implements ISidedInvento slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -173,6 +175,10 @@ public class TileEntityNukePrototype extends TileEntity implements ISidedInvento } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public boolean isReady() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java index 45f5ccbf1..6339670ed 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java @@ -154,6 +154,8 @@ public class TileEntityNukeSolinium extends TileEntity implements ISidedInventor slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -172,6 +174,10 @@ public class TileEntityNukeSolinium extends TileEntity implements ISidedInventor } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public boolean isReady() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java index f01665074..8388ff0e0 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java @@ -154,6 +154,8 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory, I slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -172,6 +174,10 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory, I } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } public boolean isReady() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java index 7ddaaca52..90500e399 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java @@ -224,6 +224,8 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -250,6 +252,10 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java index 2f8bb86d2..163f78141 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java @@ -6,6 +6,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.ArmorUtil; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -50,6 +51,24 @@ public abstract class TileEntityLockableBase extends TileEntityLoadedBase { nbt.setDouble("lockMod", lockMod); } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + buf.writeInt(lock); + buf.writeBoolean(isLocked); + buf.writeDouble(lockMod); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + lock = buf.readInt(); + isLocked = buf.readBoolean(); + lockMod = buf.readDouble(); + } + public boolean canAccess(EntityPlayer player) { if(!isLocked) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 15a099436..d251b683a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -166,6 +166,8 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -186,6 +188,10 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java index 59d6f43bf..96bd0fdbd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java @@ -138,6 +138,8 @@ public class TileEntityMachineKeyForge extends TileEntity implements ISidedInven slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -156,6 +158,10 @@ public class TileEntityMachineKeyForge extends TileEntity implements ISidedInven } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java index c7e49bdfc..72a83af9a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java @@ -142,6 +142,8 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -159,6 +161,10 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index e5a502f0c..12df36055 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -151,6 +151,8 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -169,6 +171,10 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index 527e24803..bafe5adf6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -111,6 +111,8 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -127,6 +129,10 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { return access; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java index 7e95c91ad..0934bfc9c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java @@ -132,6 +132,8 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -148,6 +150,10 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index f948a67f4..ef5453335 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -154,6 +154,8 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -173,6 +175,10 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java index 7c10537d6..913838561 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java @@ -149,6 +149,8 @@ public class TileEntityMachineSiren extends TileEntity implements ISidedInventor slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -168,6 +170,10 @@ public class TileEntityMachineSiren extends TileEntity implements ISidedInventor } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 3180fbefa..9e84c64b4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -211,6 +211,8 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -233,6 +235,10 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java index 1b2c61d5b..80f68d6d5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java @@ -150,6 +150,8 @@ public class TileEntityRtgFurnace extends TileEntity implements ISidedInventory, slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -169,6 +171,10 @@ public class TileEntityRtgFurnace extends TileEntity implements ISidedInventory, } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java index 238a68c28..2a463a06b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java @@ -141,6 +141,8 @@ public class TileEntityWasteDrum extends TileEntity implements ISidedInventory, slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -160,6 +162,10 @@ public class TileEntityWasteDrum extends TileEntity implements ISidedInventory, } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java index 0ebc3d3dc..3d359e9ac 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java @@ -134,6 +134,8 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } } @@ -153,6 +155,10 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java index 1dac5081a..dfb194d21 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java @@ -127,6 +127,8 @@ public abstract class TileEntityCrateBase extends TileEntityLockableBase impleme } } this.hasSpiders = nbt.getBoolean("spiders"); + + customName = nbt.getString("name"); } @Override @@ -145,6 +147,10 @@ public abstract class TileEntityCrateBase extends TileEntityLockableBase impleme } nbt.setTag("items", list); nbt.setBoolean("spiders", hasSpiders); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 423e99f8f..978f59fba 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -115,6 +115,8 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I this.redHigh = nbt.getShort("redHigh"); this.lastRedstone = nbt.getByte("lastRedstone"); this.priority = ConnectionPriority.values()[nbt.getByte("priority")]; + + customName = nbt.getString("name"); } @Override @@ -126,6 +128,10 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I nbt.setShort("redHigh", redHigh); nbt.setByte("lastRedstone", lastRedstone); nbt.setByte("priority", (byte)this.priority.ordinal()); + + if (customName != null) { + nbt.setString("name", customName); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java index 73e07b745..209e677dd 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java @@ -117,6 +117,8 @@ public abstract class TileEntityRequestNetworkContainer extends TileEntityReques slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } + + customName = nbt.getString("name"); } @Override @@ -135,5 +137,9 @@ public abstract class TileEntityRequestNetworkContainer extends TileEntityReques } } nbt.setTag("items", list); + + if (customName != null) { + nbt.setString("name", customName); + } } } From d27bda1f748d51f0408f3445b79f11f217e64234 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 5 Jun 2025 18:56:22 +0300 Subject: [PATCH 146/181] Add proper markDirty calls to tile entities --- .../java/com/hbm/tileentity/TileEntityInventoryBase.java | 1 + src/main/java/com/hbm/tileentity/TileEntityMachineBase.java | 1 + .../java/com/hbm/tileentity/bomb/TileEntityBombMulti.java | 1 + .../com/hbm/tileentity/bomb/TileEntityCompactLauncher.java | 1 + .../java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java | 1 + src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java | 1 + .../java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java | 1 + .../java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java | 1 + .../java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java | 1 + src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java | 1 + .../java/com/hbm/tileentity/bomb/TileEntityNukeMike.java | 1 + src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java | 1 + .../com/hbm/tileentity/bomb/TileEntityNukePrototype.java | 1 + .../java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java | 1 + .../java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java | 1 + .../com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java | 1 + .../com/hbm/tileentity/machine/TileEntityForceField.java | 1 + .../com/hbm/tileentity/machine/TileEntityLockableBase.java | 5 +++-- .../hbm/tileentity/machine/TileEntityMachineArcFurnace.java | 1 + .../hbm/tileentity/machine/TileEntityMachineKeyForge.java | 1 + .../tileentity/machine/TileEntityMachineMissileAssembly.java | 1 + .../com/hbm/tileentity/machine/TileEntityMachineRTG.java | 1 + .../com/hbm/tileentity/machine/TileEntityMachineSatDock.java | 2 +- .../hbm/tileentity/machine/TileEntityMachineSatLinker.java | 1 + .../hbm/tileentity/machine/TileEntityMachineShredder.java | 1 + .../com/hbm/tileentity/machine/TileEntityMachineSiren.java | 1 + .../com/hbm/tileentity/machine/TileEntityMachineTurbine.java | 1 + .../com/hbm/tileentity/machine/TileEntityRtgFurnace.java | 1 + .../java/com/hbm/tileentity/machine/TileEntityWasteDrum.java | 1 + .../tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java | 1 + .../hbm/tileentity/machine/storage/TileEntityCrateBase.java | 1 + .../tileentity/machine/storage/TileEntityMachineBattery.java | 1 + .../network/TileEntityRequestNetworkContainer.java | 2 +- 33 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/TileEntityInventoryBase.java b/src/main/java/com/hbm/tileentity/TileEntityInventoryBase.java index 8bc34400e..4e0c4177e 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityInventoryBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityInventoryBase.java @@ -62,6 +62,7 @@ public abstract class TileEntityInventoryBase extends TileEntity implements ISid public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index b125d03be..7d0805030 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -71,6 +71,7 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java index b7e3139a5..3c24c9e4d 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityBombMulti.java @@ -94,6 +94,7 @@ public class TileEntityBombMulti extends TileEntity implements ISidedInventory, public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index ac4208263..55c08edce 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -109,6 +109,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 483bc8554..cbee47c97 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -118,6 +118,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java index 95dadcd89..2cd516e6e 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBoy.java @@ -92,6 +92,7 @@ public class TileEntityNukeBoy extends TileEntity implements ISidedInventory, IG public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java index 2dff6eb94..625c1c3ce 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeCustom.java @@ -98,6 +98,7 @@ public class TileEntityNukeCustom extends TileEntity implements ISidedInventory, public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java index f8b36b80d..21c781c93 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeFleija.java @@ -92,6 +92,7 @@ public class TileEntityNukeFleija extends TileEntity implements ISidedInventory, public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java index 267972caa..d2586b225 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java @@ -92,6 +92,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory, public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java index 66bb62190..148a21a57 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java @@ -92,6 +92,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory, IG public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java index a3e0eac1f..b9ebadf0c 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java @@ -92,6 +92,7 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory, I public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java index 2241a58da..d10c60aba 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN2.java @@ -92,6 +92,7 @@ public class TileEntityNukeN2 extends TileEntity implements ISidedInventory, IGU public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java index 449fdecb5..b9aaa4f71 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukePrototype.java @@ -93,6 +93,7 @@ public class TileEntityNukePrototype extends TileEntity implements ISidedInvento public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java index 6339670ed..6c214e607 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeSolinium.java @@ -92,6 +92,7 @@ public class TileEntityNukeSolinium extends TileEntity implements ISidedInventor public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java index 8388ff0e0..86ee45beb 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java @@ -92,6 +92,7 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory, I public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java index 8481f713a..5776fa53a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java @@ -149,6 +149,7 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU @Override public void setCustomName(String name) { this.name = name; + markDirty(); } public boolean hasPower() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java index 90500e399..26e1cbc47 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityForceField.java @@ -143,6 +143,7 @@ public class TileEntityForceField extends TileEntityLoadedBase implements ISided public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java index 163f78141..466072d46 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java @@ -26,11 +26,12 @@ public abstract class TileEntityLockableBase extends TileEntityLoadedBase { MainRegistry.logger.error("A block has been set to locked state before setting pins, this should not happen and may cause errors! " + this.toString()); } isLocked = true; + markDirty(); } - public void setPins(int pins) { lock = pins; } + public void setPins(int pins) { lock = pins; markDirty(); } public int getPins() { return lock; } - public void setMod(double mod) { lockMod = mod; } + public void setMod(double mod) { lockMod = mod; markDirty(); } public double getMod() { return lockMod; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index d251b683a..7c6df467c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -91,6 +91,7 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java index 96bd0fdbd..0881ffd57 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java @@ -73,6 +73,7 @@ public class TileEntityMachineKeyForge extends TileEntity implements ISidedInven public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java index 72a83af9a..c4c0d2699 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java @@ -79,6 +79,7 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index 12df36055..79223e5c5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -83,6 +83,7 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index bafe5adf6..85b71dd0a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -60,7 +60,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.satDock"; } @Override public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } - public void setCustomName(String name) { this.customName = name; } + public void setCustomName(String name) { this.customName = name; markDirty(); } @Override public int getInventoryStackLimit() { return 64; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java index 0934bfc9c..2ffadacba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java @@ -73,6 +73,7 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index ef5453335..5fe3ae5ca 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -83,6 +83,7 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java index 913838561..4ed07f066 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSiren.java @@ -82,6 +82,7 @@ public class TileEntityMachineSiren extends TileEntity implements ISidedInventor public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 9e84c64b4..85e982856 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -136,6 +136,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java index 80f68d6d5..72882cabd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java @@ -79,6 +79,7 @@ public class TileEntityRtgFurnace extends TileEntity implements ISidedInventory, public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java index 2a463a06b..5371416dd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWasteDrum.java @@ -75,6 +75,7 @@ public class TileEntityWasteDrum extends TileEntity implements ISidedInventory, public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java index 3d359e9ac..27702f37a 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java @@ -66,6 +66,7 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java index dfb194d21..a52e8aaf9 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java @@ -61,6 +61,7 @@ public abstract class TileEntityCrateBase extends TileEntityLockableBase impleme public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 978f59fba..a2984cb93 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -91,6 +91,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public void setCustomName(String name) { this.customName = name; + markDirty(); } @Override diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java index 209e677dd..5ccb78658 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java @@ -70,7 +70,7 @@ public abstract class TileEntityRequestNetworkContainer extends TileEntityReques @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : getName(); } public abstract String getName(); @Override public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } - public void setCustomName(String name) { this.customName = name; } + public void setCustomName(String name) { this.customName = name; markDirty(); } @Override public int getInventoryStackLimit() { return 64; } @Override From 4d0ce8b6d9e3e95c42a54ea5b100f2a9777542d8 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 5 Jun 2025 19:51:10 +0300 Subject: [PATCH 147/181] Add update packet to crates --- .../machine/storage/TileEntityCrateBase.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java index a52e8aaf9..dca8dec9c 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java @@ -9,6 +9,9 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.world.World; import java.util.Random; @@ -154,6 +157,18 @@ public abstract class TileEntityCrateBase extends TileEntityLockableBase impleme } } + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) { + readFromNBT(packet.func_148857_g()); + } + @Override public int[] getAccessibleSlotsFromSide(int side) { int[] slots = new int[this.slots.length]; From 3b2a4aee1e4ba738c0329a2e79c2fee55666f02f Mon Sep 17 00:00:00 2001 From: arantirnecrolord Date: Thu, 5 Jun 2025 20:27:28 +0300 Subject: [PATCH 148/181] typo correction uk_UA --- src/main/resources/assets/hbm/lang/uk_UA.lang | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/uk_UA.lang b/src/main/resources/assets/hbm/lang/uk_UA.lang index 38cc3b361..e185e4693 100644 --- a/src/main/resources/assets/hbm/lang/uk_UA.lang +++ b/src/main/resources/assets/hbm/lang/uk_UA.lang @@ -596,7 +596,7 @@ chem.DESH=Виробництво Деш chem.DEUTERIUM=ЕкÑÑ‚Ñ€Ð°ÐºÑ†Ñ–Ñ Ð´ÐµÐ¹Ñ‚ÐµÑ€Ñ–ÑŽ chem.DUCRETE=Виробництво уранобетону chem.DYN_DNT=ДиноÑинтез динейтронію -chem.DYN_EUPH=ДиноÑинтез юхимію +chem.DYN_EUPH=ДиноÑинтез евфемію chem.DYN_SCHRAB=ДиноÑинтез шрабідію chem.DYNAMITE=Синтез динаміту chem.ELECTROLYSIS=Кріоелектроліз @@ -1614,7 +1614,7 @@ hbmmat.diamond=Ðлмаз hbmmat.dineutronium=Динейтроній hbmmat.durasteel=Швидкорізальна Ñталь hbmmat.emerald=Смарагд -hbmmat.euphemium=Юхимій +hbmmat.euphemium=Евфемій hbmmat.ferrouranium=Фероуран hbmmat.fiberglass=Скловолокно hbmmat.fluorite=Флюорит @@ -1889,7 +1889,7 @@ item.ams_catalyst_cerium.name=Церієвий каталізатор реакц item.ams_catalyst_cobalt.name=Кобальтовий каталізатор реакції item.ams_catalyst_copper.name=Мідний каталізатор реакції item.ams_catalyst_dineutronium.name=Динейтронієвий каталізатор реакції -item.ams_catalyst_euphemium.name=Юхимієвий каталізатор реакції +item.ams_catalyst_euphemium.name=Евфемієвий каталізатор реакції item.ams_catalyst_iron.name=Залізний каталізатор реакції item.ams_catalyst_lithium.name=Літієвий каталізатор реакції item.ams_catalyst_niobium.name=Ðіобієвий каталізатор реакції @@ -1912,7 +1912,7 @@ item.ams_muzzle.desc=...it emits an energy-beam thingy. item.analysis_tool.name=ІнÑтрумент аналізу item.analyzer.name=Ðналізатор item.anchor_remote.name=ПриÑтрій Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ -item.apple_euphemium.name=Юхимієве Ñблуко +item.apple_euphemium.name=Евфемієве Ñблуко item.apple_lead.name=Свинцеве Ñблуко item.apple_schrabidium.name=Шрабідієве Ñблуко item.arc_electrode.name=Графітовий електрод @@ -2709,13 +2709,13 @@ item.envsuit_boots.name=Чоботи захиÑного коÑтюма М1ТТІ item.envsuit_helmet.name=Шолом захиÑного коÑтюма М1ТТІ item.envsuit_legs.name=Ðаголінники захиÑного коÑтюма М1ТТІ item.envsuit_plate.name=Ðагрудник захиÑного коÑтюма М1ТТІ -item.euphemium_boots.name=Юхимієві чоботи -item.euphemium_capacitor.name=Юхимієвий конденÑатор +item.euphemium_boots.name=Евфемієві чоботи +item.euphemium_capacitor.name=Евфемієвий конденÑатор item.euphemium_capacitor.desc=ДозволÑÑ” паÑивне розÑÑ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‡ÐµÐ½Ð¾Ñ— позитивної енергії. -item.euphemium_helmet.name=Юхимієвий шолом -item.euphemium_kit.name=Юхимієвий набір -item.euphemium_legs.name=Юхимієві наголінники -item.euphemium_plate.name=Юхимієвий нагрудник +item.euphemium_helmet.name=Евфемієвий шолом +item.euphemium_kit.name=Евфемієвий набір +item.euphemium_legs.name=Евфемієві наголінники +item.euphemium_plate.name=Евфемієвий нагрудник item.euphemium_stopper.name=Стопор item.explosive_lenses.name=МаÑив вибухових лінз item.explosive_lenses.desc=Збірка 8 плаÑтичних вибухових лінз з тонким$алюмінієвим штовхачем, дюралюмінієвим щитом, та$мініатюрними дротÑномоÑтовим детонатором. @@ -3044,7 +3044,7 @@ item.ingot_desh.name=Зливок деш item.ingot_dineutronium.name=Динейтронієвий зливок item.ingot_dura_steel.name=Зливок швидкорізальної Ñталі item.ingot_electronium.name=Електронієвий зливок -item.ingot_euphemium.name=Юхимієвий зливок +item.ingot_euphemium.name=Евфемієвий зливок item.ingot_euphemium.desc=Дуже оÑобливий Ñ– Ð²Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ Ð´Ð¸Ð²Ð½Ð¸Ð¹ елемент. item.ingot_ferrouranium.name=Фероурановий зливок item.ingot_fiberglass.name=ЛиÑÑ‚ ÑклоплаÑтику @@ -3422,7 +3422,7 @@ item.mp_warhead_15_nuclear.name=Ядерна боєголовка 15 розмі item.mp_warhead_15_nuclear_mimi.name=Голова Мімі-чан 15 розміру item.mp_warhead_15_nuclear_shark.name=Ядерна боєголовка 15 розміру item.mp_warhead_15_turbine.name=Реактивний двигун 15 розміру -item.mucho_mango.name=ÐріЗона Мучо Манго +item.mucho_mango.name=Живчік item.multi_kit.name=Комплект багатолільової бомби item.multitool_beam.name=Силова рукавичка (Підпалювач) item.multitool_decon.name=Силова рукавичка (Спеціальний обробник) @@ -3478,7 +3478,7 @@ item.nugget_cobalt.name=Кобальтовий Ñамородок item.nugget_daffergon.name=Daffergon Nugget item.nugget_desh.name=Самородок деш item.nugget_dineutronium.name=Динейтронієвий Ñамородок -item.nugget_euphemium.name=Юхимієвий Ñамородок +item.nugget_euphemium.name=Евфемієвий Ñамородок item.nugget_euphemium.desc=Ðевеликий шматочок рожевого металу.$Його влаÑтивоÑті доÑÑ– невідомі,$ПОВОДЬСЯ З ÐИМ обережно. item.nugget_gh336.name=Самородок ÒіорÑÑ–ÑŽ-336 item.nugget_gh336.desc=Колега Сіборгіума. @@ -3571,7 +3571,7 @@ item.ore_byproduct.b_sulfur.name=КриÑталічний Ñірчаний фр item.ore_byproduct.b_technetium.name=КриÑталічний технецієвий фрагмент item.ore_byproduct.b_titanium.name=КриÑталічний титановий фрагмент item.ore_byproduct.b_uranium.name=КриÑталічний урановий фрагмент -item.ore_centrifuged.name=Центріфугована %s руда +item.ore_centrifuged.name=Центрифугована %s руда item.ore_cleaned.name=Очищена %s руда item.ore_deepcleaned.name=Глибоко очищена %s руда item.ore_density_scanner.name=Сканер щільноÑті корінної руди @@ -3755,7 +3755,7 @@ item.plate_dalekanium.name=Злий метал item.plate_desh.name=Деш комбінована плаÑтина item.plate_dineutronium.name=Динейтронієва комбінована плаÑтина item.plate_dura_steel.name=ПлаÑтина зі швидкорізальної Ñталі -item.plate_euphemium.name=Юхимієва комбінована плаÑтина +item.plate_euphemium.name=Евфемієва комбінована плаÑтина item.plate_fuel_mox.name=МОКС-паливна плаÑтина item.plate_fuel_pu238be.name=Плутоній-238 берилієва паливна плаÑтина item.plate_fuel_pu239.name=Паливна плаÑтина виÑокозбагаченого плутонію-239 @@ -3766,7 +3766,7 @@ item.plate_fuel_u235.name=Паливна плаÑтина виÑокозбага item.plate_gold.name=Золота плаÑтина item.plate_gunmetal.name=ПлаÑтина з гарматної бронзи item.plate_iron.name=Залізна плаÑтина -item.plate_kevlar.name=Кевлар-керамічний компаунд +item.plate_kevlar.name=Кевларова плаÑтина item.plate_lead.name=Свинцева плаÑтина item.plate_mixed.name=Комбінована плаÑтина item.plate_paa.name=ПлаÑтина зі Ñплаву PaA @@ -3831,7 +3831,7 @@ item.powder_diamond.name=Ðлмазний порошок item.powder_dineutronium.name=Динейтронієвий порошок item.powder_dura_steel.name=Порошок швидкорізальної Ñталі item.powder_emerald.name=Смарагдовий порошок -item.powder_euphemium.name=Юхимієвий порошок +item.powder_euphemium.name=Евфемієвий порошок item.powder_euphemium.desc=Подрібнений рожевий.$Ðа Ñмак Ñк полуницÑ. item.powder_fertilizer.name=ПромиÑлове добриво item.powder_fire.name=Червоний фоÑфор @@ -4429,10 +4429,10 @@ item.t45_kit.name=Комплект Ñилової броні T-45 item.t45_legs.name=Ðаголінники Ñилової броні T-45 item.t45_plate.name=Ðагрудник Ñилової броні T-45 item.tank_steel.name=Сталевий бак -item.taurun_boots.name=Taurun Boots -item.taurun_helmet.name=Taurun Helmet -item.taurun_legs.name=Taurun Leggings -item.taurun_plate.name=Taurun Chestplate +item.taurun_boots.name=Таурун чоботи +item.taurun_helmet.name=Таурун шолом +item.taurun_legs.name=Таурун наголінники +item.taurun_plate.name=Таурун нагрудник item.telepad.name=Telepad item.tem_flakes.name=ПлаÑтівці Тем item.template_folder.name=Папка шаблонів машин @@ -4467,10 +4467,10 @@ item.toolbox.name=Ящик Ð´Ð»Ñ Ñ–Ð½Ñтрументів item.toolbox_legacy.name=Ящик Ð´Ð»Ñ Ñ–Ð½Ñтрументів (LEGACY) item.toothpicks.name=ЗубочиÑтки item.train.cargo_tram.name=Електричний трамвай з плоÑкою платформою -item.trenchmaster_boots.name=Trenchmaster's Boots -item.trenchmaster_helmet.name=Trenchmaster's Helmet -item.trenchmaster_legs.name=Trenchmaster's Leggings -item.trenchmaster_plate.name=Trenchmaster's Chestplate +item.trenchmaster_boots.name=Чоботи траншейного майÑтра +item.trenchmaster_helmet.name=Шолом траншейного майÑтра +item.trenchmaster_legs.name=Ðаголінники траншейного майÑтра +item.trenchmaster_plate.name=Ðагрудник траншейного майÑтра item.trinitite.name=Тринітит item.tritium_deuterium_cake.name=Тритій-дейтерієвий пиріг item.tritium_deuterium_cake.desc=Ðе Ñправжній пиріг, але чудове$універÑальне термоÑдерне паливо! @@ -4635,7 +4635,7 @@ item.weapon_mod_special.las_shotgun.name=Розділювач Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð» item.weapon_mod_special.saw.name=Ðожівка item.weapon_mod_special.scope.name=Приціл item.weapon_mod_special.silencer.name=Глушник -item.weapon_mod_special.skin_saturnite.name=Сатурнітовий Ñкін +item.weapon_mod_special.skin_saturnite.name=Сатурнітовий ÐºÐ¾Ñ€Ð¿ÑƒÑ item.weapon_mod_special.slowdown.name=ЗубчаÑта передача item.weapon_mod_special.speedloader.name=Швидкий зарÑджувач item.weapon_mod_special.speedup.name=Допоміжний електричний двигун @@ -4895,8 +4895,8 @@ tile.block_desh.name=ПоÑилений блок деш tile.block_dineutronium.name=Блок динейтронію tile.block_dura_steel.name=ПоÑилений блок швидкорізальної Ñталі tile.block_electrical_scrap.name=Блок зламаної електротехніки -tile.block_euphemium.name=Блок юхимію -tile.block_euphemium_cluster.name=КлаÑтер шрабідію, витравленого юхимієм +tile.block_euphemium.name=Блок евфемію +tile.block_euphemium_cluster.name=КлаÑтер шрабідію, витравленого евфемієм tile.block_fallout.name=Блок радіоактивних опадів tile.block_fiberglass.name=Рулон ÑклоплаÑтику tile.block_fluorite.name=Блок флюориту @@ -5518,7 +5518,7 @@ tile.machine_fraction_tower.name=Ректифікаційна колона tile.machine_fracking_tower.name=Вежа гідророзриву плаÑта tile.machine_funnel.name=Комбінаторна воронки tile.machine_funnel.desc=Ðвтоматично ÑтиÑкає предмети в Ñітці крафту 2x2 або 3x3$Вгорі: Вхід$Внизу: Вихід$Бічна Ñторона: Вихід Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ–Ð½Ð³Ñ€ÐµÐ´Ñ–Ñ”Ð½Ñ‚Ñ–Ð² -tile.machine_gascent.name=Газова центріфуга +tile.machine_gascent.name=Газова центрифуга tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator tile.machine_hephaestus.name=Геотермальний теплообмінник @@ -6118,7 +6118,7 @@ trait.rbmx.xenonGen=Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñвинцю: %s trait.tile.cluster=Випадає лише тоді, коли зламав гравець trait.tile.depth=Можна зламати тільки вибухом -tool.ability.centrifuge=Ðвтоцентріфуга +tool.ability.centrifuge=Ðвтоцентрифуга tool.ability.crystallizer=ÐвтокриÑталізатор tool.ability.explosion=Вибух tool.ability.hammer=Зона дії From 88713946dde5f0a0651d768d12a7f1ce2491115a Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 5 Jun 2025 20:11:27 +0300 Subject: [PATCH 149/181] Allow cycling the fan force falloff with a handdrill --- .../com/hbm/blocks/machine/MachineFan.java | 81 +++++++++++++++---- 1 file changed, 66 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineFan.java b/src/main/java/com/hbm/blocks/machine/MachineFan.java index e4079cfbc..662aba705 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFan.java @@ -3,11 +3,13 @@ package com.hbm.blocks.machine; import java.util.List; import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.block.IBlowable; import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockPistonBase; @@ -16,9 +18,9 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -66,10 +68,11 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro return false; } - public static class TileEntityFan extends TileEntity { + public static class TileEntityFan extends TileEntityLoadedBase { public float spin; public float prevSpin; + public boolean falloff = true; @Override public void updateEntity() { @@ -81,7 +84,7 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro int range = 10; int effRange = 0; - double push = 0.15; + double push = 0.1; for(int i = 1; i <= range; i++) { Block block = worldObj.getBlock(xCoord + dir.offsetX * i, yCoord + dir.offsetY * i, zCoord + dir.offsetZ * i); @@ -105,8 +108,12 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro for(Entity e : affected) { - double dist = e.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); - double coeff = push * (1 - dist / range / 2); + double coeff = push; + + if(!falloff) { + double dist = e.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + coeff *= 1.5 * (1 - dist / range / 2); + } e.motionX += dir.offsetX * coeff; e.motionY += dir.offsetY * coeff; @@ -125,6 +132,10 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro this.prevSpin -= 360; this.spin -= 360; } + + if(!worldObj.isRemote) { + networkPackNT(150); + } } @Override @@ -132,21 +143,61 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.falloff = nbt.getBoolean("falloff"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("falloff", falloff); + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(falloff); + } + + @Override + public void deserialize(ByteBuf buf) { + falloff = buf.readBoolean(); + } } @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { - if(tool != ToolType.SCREWDRIVER) return false; - int meta = world.getBlockMetadata(x, y, z); + if(tool == ToolType.SCREWDRIVER) { + int meta = world.getBlockMetadata(x, y, z); - if(meta == 0) world.setBlockMetadataWithNotify(x, y, z, 1, 3); - if(meta == 1) world.setBlockMetadataWithNotify(x, y, z, 0, 3); - if(meta == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 3); - if(meta == 3) world.setBlockMetadataWithNotify(x, y, z, 2, 3); - if(meta == 4) world.setBlockMetadataWithNotify(x, y, z, 5, 3); - if(meta == 5) world.setBlockMetadataWithNotify(x, y, z, 4, 3); - - return true; + if(meta == 0) world.setBlockMetadataWithNotify(x, y, z, 1, 3); + if(meta == 1) world.setBlockMetadataWithNotify(x, y, z, 0, 3); + if(meta == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 3); + if(meta == 3) world.setBlockMetadataWithNotify(x, y, z, 2, 3); + if(meta == 4) world.setBlockMetadataWithNotify(x, y, z, 5, 3); + if(meta == 5) world.setBlockMetadataWithNotify(x, y, z, 4, 3); + + return true; + } + + if(tool == ToolType.HAND_DRILL) { + TileEntityFan tile = (TileEntityFan) world.getTileEntity(x, y, z); + + if(tile != null) { + tile.falloff = !tile.falloff; + tile.markDirty(); + + if(!world.isRemote) { + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.click", 0.5F, 0.5F); + } + } + + return true; + } + + return false; } @Override From 51ad12d51aa1f3cafb10620cdf6abad994738297 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 5 Jun 2025 20:39:26 +0300 Subject: [PATCH 150/181] Add a notification for fan mode toggle --- src/main/java/com/hbm/blocks/machine/MachineFan.java | 8 ++++++++ src/main/java/com/hbm/main/ServerProxy.java | 7 ++++--- src/main/resources/assets/hbm/lang/de_DE.lang | 4 +++- src/main/resources/assets/hbm/lang/en_US.lang | 4 +++- src/main/resources/assets/hbm/lang/it_IT.lang | 4 +++- src/main/resources/assets/hbm/lang/pl_PL.lang | 3 +++ src/main/resources/assets/hbm/lang/ru_RU.lang | 4 +++- src/main/resources/assets/hbm/lang/uk_UA.lang | 4 +++- src/main/resources/assets/hbm/lang/zh_CN.lang | 4 +++- 9 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineFan.java b/src/main/java/com/hbm/blocks/machine/MachineFan.java index 662aba705..333f7323f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFan.java @@ -3,7 +3,11 @@ package com.hbm.blocks.machine; import java.util.List; import com.hbm.blocks.ITooltipProvider; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.ChatBuilder; import api.hbm.block.IBlowable; import api.hbm.block.IToolable; @@ -17,10 +21,12 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -190,6 +196,8 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro tile.markDirty(); if(!world.isRemote) { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation(this.getUnlocalizedName() + (tile.falloff ? ".falloffOn" : ".falloffOff")).color(EnumChatFormatting.GOLD).flush(), MainRegistry.proxy.ID_FAN_MODE), (EntityPlayerMP) player); + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.click", 0.5F, 0.5F); } } diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 4e9d7704d..fdbe22529 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -30,9 +30,10 @@ public class ServerProxy { public static final int ID_HUD = 7; public static final int ID_DETONATOR = 8; public static final int ID_FLUID_ID = 9; - public static final int ID_TOOLABILITY = 10; - public static final int ID_GUN_MODE = 11; - public static final int ID_GAS_HAZARD = 12; + public static final int ID_FAN_MODE = 10; + public static final int ID_TOOLABILITY = 11; + public static final int ID_GUN_MODE = 12; + public static final int ID_GAS_HAZARD = 13; public ITranslate getI18n() { return I18N; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0d4393362..2b9298a99 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4144,7 +4144,9 @@ tile.factory_titanium_furnace.name=Einfache Fabrikzugriffsluke tile.factory_titanium_hull.name=Fabrikblock tile.fallout.name=Fallout tile.fan.name=Ventilator -tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen +tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen$Klicken Sie mit der rechten Maustaste mit der Handbohrmaschine um den Modus zu wechseln +tile.fan.falloffOn=Die Lüfterleistung nimmt mit der Entfernung ab +tile.fan.falloffOff=Konstante Lüfterleistung tile.fence_metal.name=Maschendrahtzaun tile.fence_metal_post.name=Maschendrahtzaun-Pfahl tile.field_disturber.name=Hochenergiefeld-Jammer diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f0e82f906..2b64f5ef9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5267,7 +5267,9 @@ tile.factory_titanium_furnace.name=Basic Factory Access Hatch tile.factory_titanium_hull.name=Factory Block tile.fallout.name=Fallout tile.fan.name=Fan -tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip +tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip$Right-click with hand drill to switch mode +tile.fan.falloffOn=Fan power decreases with distance +tile.fan.falloffOff=Consistent fan power tile.fence_metal.name=Chainlink Fence tile.fence_metal_post.name=Chainlink Fence Post tile.field_disturber.name=High Energy Field Jammer diff --git a/src/main/resources/assets/hbm/lang/it_IT.lang b/src/main/resources/assets/hbm/lang/it_IT.lang index 4ce24e6b5..691badc0e 100644 --- a/src/main/resources/assets/hbm/lang/it_IT.lang +++ b/src/main/resources/assets/hbm/lang/it_IT.lang @@ -5356,7 +5356,9 @@ tile.factory_titanium_furnace.name=Basic Factory Access Hatch tile.factory_titanium_hull.name=Factory Block tile.fallout.name=Fallout tile.fan.name=Fan -tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip +tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip$Right-click with hand drill to switch mode +tile.fan.falloffOn=Fan power decreases with distance +tile.fan.falloffOff=Consistent fan power tile.fence_metal.name=Chainlink Fence tile.fence_metal_post.name=Chainlink Fence Post tile.field_disturber.name=High Energy Field Jammer diff --git a/src/main/resources/assets/hbm/lang/pl_PL.lang b/src/main/resources/assets/hbm/lang/pl_PL.lang index 497d759fc..99732c2fd 100644 --- a/src/main/resources/assets/hbm/lang/pl_PL.lang +++ b/src/main/resources/assets/hbm/lang/pl_PL.lang @@ -4720,6 +4720,9 @@ tile.factory_titanium_furnace.name=Basic Factory Access Hatch tile.factory_titanium_hull.name=Factory Block tile.fallout.name=Fallout tile.fan.name=Fan +tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip$Right-click with hand drill to switch mode +tile.fan.falloffOn=Fan power decreases with distance +tile.fan.falloffOff=Consistent fan power tile.fence_metal.name=Chainlink Fence tile.field_disturber.name=High Energy Field Jammer tile.filing_cabinet.green.name=Dusty Filing Cabinet diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index a2217d3a1..5c3efa442 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -5530,7 +5530,9 @@ tile.factory_titanium_furnace.name=Люк доÑтупа базовой фабр tile.factory_titanium_hull.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð¹ фабрики tile.fallout.name=Радиоактивный оÑадок tile.fan.name=ВентилÑтор -tile.fan.desc=ÐктивируетÑÑ Ñ€ÐµÐ´Ñтоуном$Толкает ÑущеÑтв до 10 блоков$ПКМ отвёрткой чтобы повернуть +tile.fan.desc=ÐктивируетÑÑ Ñ€ÐµÐ´Ñтоуном$Толкает ÑущеÑтв до 10 блоков$ПКМ отвёрткой чтобы повернуть$ПКМ ручным Ñверлом чтобы переключить режим +tile.fan.falloffOn=Сила вентилÑтора уменьшаетÑÑ Ñ Ñ€Ð°ÑÑтоÑнием +tile.fan.falloffOff=ПоÑтоÑÐ½Ð½Ð°Ñ Ñила Ð²ÐµÐ½Ñ‚Ð¸Ð»Ð¾Ñ€Ð°Ñ tile.fence_metal.name=ÐŸÑ€Ð¾Ð²Ð¾Ð»Ð¾Ñ‡Ð½Ð°Ñ Ñетка tile.fence_metal_post.name=Столб проволочной Ñетки tile.field_disturber.name=Подавитель выÑокоÑнергитичеÑких полей diff --git a/src/main/resources/assets/hbm/lang/uk_UA.lang b/src/main/resources/assets/hbm/lang/uk_UA.lang index 0f9dfa371..44855c038 100644 --- a/src/main/resources/assets/hbm/lang/uk_UA.lang +++ b/src/main/resources/assets/hbm/lang/uk_UA.lang @@ -5267,7 +5267,9 @@ tile.factory_titanium_furnace.name=Basic Factory Access Hatch tile.factory_titanium_hull.name=ЗаводÑький блок tile.fallout.name=Радіоактивні опади tile.fan.name=ВентилÑтор -tile.fan.desc=ÐктивуєтьÑÑ Ð·Ð° допомогою редÑтоуну$Піднімає об'єкти на 10 блоків$Клацніть правою кнопкою миші викруткою, щоб перевернути +tile.fan.desc=ÐктивуєтьÑÑ Ð·Ð° допомогою редÑтоуну$Піднімає об'єкти на 10 блоків$Клацніть правою кнопкою миші викруткою, щоб перевернути$ПКМ ручним Ñвердлом, щоб переключити режим +tile.fan.falloffOn=Сила вентилÑтора зменшуєтьÑÑ Ð· відÑтанню +tile.fan.falloffOff=ПоÑтійна Ñила вентилÑтора tile.fence_metal.name=Огорожа Ñ€Ð°Ð±Ð¸Ñ†Ñ tile.fence_metal_post.name=Огорожа Ñ€Ð°Ð±Ð¸Ñ†Ñ Ñтовп tile.field_disturber.name=Заглушник виÑокоенергетичного Ð¿Ð¾Ð»Ñ diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 6a85a4901..20b27d397 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -5005,7 +5005,9 @@ tile.factory_titanium_furnace.name=å·¥åŽ‚ç«¯å£ tile.factory_titanium_hull.name=工厂外壳 tile.fallout.name=è¾å°„å°˜ tile.fan.name=风扇 -tile.fan.desc=使用红石激活$将实体推至最多10个方å—外$用螺ä¸åˆ€å³é”®ç‚¹å‡»å³å¯ç¿»è½¬ +tile.fan.desc=使用红石激活$将实体推至最多10个方å—外$用螺ä¸åˆ€å³é”®ç‚¹å‡»å³å¯ç¿»è½¬$使用手钻å³é”®åˆ‡æ¢æ¨¡å¼ +tile.fan.falloffOn=风扇功率éšè·ç¦»å¢žåŠ è€Œå‡å° +tile.fan.falloffOff=风扇功率æ’定 tile.fence_metal.name=é“ä¸ç½‘å›´æ  tile.fence_metal_post.name=é“ä¸ç½‘å›´æ ç«‹æŸ± tile.field_disturber.name=高能场干扰机 From 8a93b02c94eed38ac272f5bda1dcaa3490ad5537 Mon Sep 17 00:00:00 2001 From: arantirnecrolord Date: Fri, 6 Jun 2025 14:07:02 +0300 Subject: [PATCH 151/181] who cares what i called it --- src/main/resources/assets/hbm/lang/uk_UA.lang | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/uk_UA.lang b/src/main/resources/assets/hbm/lang/uk_UA.lang index e185e4693..f51ef5b6a 100644 --- a/src/main/resources/assets/hbm/lang/uk_UA.lang +++ b/src/main/resources/assets/hbm/lang/uk_UA.lang @@ -263,43 +263,43 @@ book.rbmk.title16=Melting book.rbmk.page16=§4§lAVOID. book.starter.cover=ПоÑібник промиÑловцÑ$з відновленнÑ$ÑуÑпільÑтва -book.starter.title1=Introduction -book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. -book.starter.title2=Coal & Mustard Gas -book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. -book.starter.title3=Anvils & Presses -book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. -book.starter.title4=Templates -book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. -book.starter.title5=Scavenging -book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... -book.starter.title6=Early Machinery -book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. -book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. -book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. -book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. -book.starter.title8=Black Gold -book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. -book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. -book.starter.title9=Petrochemicals -book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. -book.starter.title10=Advanced Machinery -book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. -book.starter.title11=Strata -book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. -book.starter.title12=Radiation -book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. -book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. -book.starter.title13=Uranium Enrichment -book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. -book.starter.title14=The Chicago Pile -book.starter.page14=Alternatively, you can breed §lРеакторний Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. -book.starter.title15=ZIRNOX GCR -book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. -book.starter.title16=Conclusion -book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! -book.starter.title18=About the Author -book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. +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 та §удоÑконалений Ñплав§r; вам знадоблÑтьÑÑ Ñ†Ñ– метали Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¿ÑƒÑів машин, з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñхем, вдоÑконалених електромагнітів тощо. +book.starter.page6b=Збиральна машина викориÑтовуватиметьÑÑ Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°ÐºÑ‚Ð¸Ñ‡Ð½Ð¾ будь-Ñкої іншої машини, опиÑаної в цьому поÑібнику. Вам знадобитьÑÑ Ð´Ð¶ÐµÑ€ÐµÐ»Ð¾ живленнÑ, наприклад §lДров'Ñна піч§r або §lБойлер ÑонÑчної вежі§r. +book.starter.page7a=§lПодрібнювач§r разом із парою лез подрібнювача буде дуже кориÑним Ð´Ð»Ñ Ð¿Ð¾Ð´Ð²Ð¾Ñ”Ð½Ð½Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ більшоÑті руд шлÑхом Ð¿Ð¾Ð´Ñ€Ñ–Ð±Ð½ÐµÐ½Ð½Ñ Ñ—Ñ… на плавильні порошки. Ці порошки також Ñ” важливими Ð´Ð»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñхем Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… машин, таких Ñк §lПокращена§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, Ñ—Ñ— необхідно нагріти до 300°C у §lБойлері§r. +book.starter.title9=ÐÐ°Ñ„Ñ‚Ð¾Ñ…Ñ–Ð¼Ñ–Ñ +book.starter.page9=ВикориÑтовуючи §lХімічні заводи§r, §lРектифікаційні§r §lколони§r, та §lВежі каталітичного§r §lкрекінгу§r, ви можете перетворити відокремлену нафту на різноманітні кориÑні продукти. Ðаприклад: §lПолімери§r або §lКарболіт§r, міцні та гнучкі плаÑтмаÑи; §lДеш§r, надзвичайно міцний та термоÑтійкий Ñплав рідкіÑноземельних металів; §lТверде паливо§r, Ñке можна Ñпалювати Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÐµÐ½ÐµÑ€Ð³Ñ–Ñ—; або навіть §lРідке паливо§r, таке Ñк §lГазолін§r, §lДизель§r, §lГаѧr, тощо. +book.starter.title10=Передові машини +book.starter.page10=Маючи за Ñобою обробку нафти, ви можете Ñтворити §lЦентрифугу§r, Ñка потроїть видобуток руди; §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поради щодо того, Ñк пом’Ñкшити та впоратиÑÑ Ð· Ñ—Ñ— впливом. +book.starter.page12b=ДоÑтатній вплив радіації може завдати шкоди тілу. Перший крок – це профілактика;обов’Ñзково обмежте вплив на Ñебе Ñ– ноÑіть захиÑне ÑпорÑдженнÑ, таке Ñк §lЗахиÑний коÑтюм§r, або вÑтановіть §lОбшивку§r на Ñвій одÑг чи броню; ви також можете прийнÑти §lРад-Х§r, щоб обмежити вплив. ЗавдÑки ÑучаÑній медицині, другим кроком може бути знÑÑ‚Ñ‚Ñ Ð¾Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ñкщо це необхідно; наприклад, §lЗнезаражувач §lгравцѧr повільно зменшить радіацію, поглинену вашим організмом. §lÐнтирадин§r також можна викориÑтовувати Ñк поÑтконтактну профілактику, швидко та ефективно уÑуваючи пошкодженнÑ, завдані вашому організму іонізуючим випромінюваннÑм. +book.starter.title13=Ð—Ð±Ð°Ð³Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÑ€Ð°Ð½Ñƒ +book.starter.page13=Є кілька проÑтих варіантів палива Ð´Ð»Ñ Ñдерного реактора; наприклад, §lПриродний уран§r або §lТорієве паливо§r. Однак, Ñкщо ви шукаєте щоÑÑŒ потужніше, ви можете Ñтворити каÑкад Ð·Ð±Ð°Ð³Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· двох §lГазових центрифуг§r Ð´Ð»Ñ Ð²Ð¸Ñ€Ð¾Ð±Ð½Ð¸Ñ†Ñ‚Ð²Ð° §lУранове паливо§r із залишками §lУрану-238§r. Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ вам доведетьÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ природний уран на §lЄлоукейк§r, а потім на §lГекÑафторид §lурану§r. +book.starter.title14=Чиказька Ð´Ñ€Ð¾Ð²Ñ–Ñ‚Ð½Ñ +book.starter.page14=Ðбо ж ви можете отримати §lРеакторний плутоній§r, більш потужне паливо, з природного урану за допомогою §lЧиказької дровітні§r. Складаючи графітові блоки та проÑвердлюючи Ñ—Ñ…, ви можете вÑтавлÑти паливні Ñтрижні Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¼Ð½Ð¾Ð¶ÐµÐ½Ð½Ñ Ð² плутоній та Ñтрижні джерела нейтронів, такі Ñк §lРадій-берилій§r, щоб розпочати реакцію. Обов'Ñзково перевірте Ñвої конÑтрукції; може знадобитиÑÑ Ð²Ñ–Ð´Ñтань між блоками або Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ—Ñ… кількоÑті, щоб запобігти перегріву. +book.starter.title15=ЦИРÐОКС ГГР +book.starter.page15=Ðарешті, ви можете Ñтворити Ñвоє перше §oреальне§r джерело енергії: Ядерний реактор §lЦИРÐОКС§r. Ядерні реактори потребують більше налаштувань, ніж інші джерела енергії; по-перше, вам потрібно мати хороше джерело води, наприклад §lÐеÑкінченний §lрезервуар води§r. Щоб відводити тепло від активної зони реактора та кип'Ñтити воду в пару, вам знадобитьÑÑ Ð´Ð¾ÑÑ‚Ð°Ñ‚Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–Ñть §lВуглекиÑлого газу§r. Вам потрібен доÑтатній тиÑк, але не §lзанадто§r великий. Вам також знадоблÑтьÑÑ Ñ‚Ñ€Ð¸ парові турбіни, щоб викориÑтовувати Ñтворену пару Ð´Ð»Ñ Ð²Ð¸Ñ€Ð¾Ð±Ð½Ð¸Ñ†Ñ‚Ð²Ð° енергії; §lПарова §lтурбіна§r або §lПромиÑлова парова §lтурбіна§r будуть оптимальними. Ðарешті, §lКонденÑатор пару§r або §lДопоміжна градирнѧr потрібні Ð´Ð»Ñ ÐºÐ¾Ð½Ð´ÐµÐ½Ñації залишкової пари у воду, де Ñ—Ñ— можна буде злити або рециркулювати в охолоджувальному контурі. +book.starter.title16=ВиÑновок +book.starter.page16=Якщо ви зайшли так далеко, ви на шлÑху до відбудови цивілізації. Ви уÑпішно відтворили передові механізми передапокаліпÑиÑу - Ñдерну енергетику, нафтохімію та інше. Я не знаю, §oÑк§r ви ÑкориÑтаєтеÑÑ Ñ†Ð¸Ð¼Ð¸ новознайденими перевагами, але Ñ Ð¾ÑобиÑто ÑподіваюÑÑ, що ви викориÑтаєте Ñ—Ñ… Ð´Ð»Ñ Ð±Ð»Ð°Ð³Ð° Ñебе та інших — або, принаймні, Ð´Ð»Ñ Ñамооборони. Au revoir! +book.starter.title18=Про автора +book.starter.page18=vær – проÑто хлопець, Ñкий надто довго перебував у паÑтці Ñірої порожнечі, з кліпу §oOnce In A Lifetime§r гурту Talking Head. Одного разу він знайшов двері Ñтудії, але, на Ñвій жах, виÑвив, що вона вирізана з картону #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.title1=Introduction @@ -5529,7 +5529,7 @@ tile.machine_industrial_boiler.desc=Великий бойлер, Ñкий мож tile.machine_industrial_generator.name=Industrial Generator tile.machine_intake.name=Забірник Ð¿Ð¾Ð²Ñ–Ñ‚Ñ€Ñ tile.machine_keyforge.name=Сліл замочника -tile.machine_large_turbine.name=Парова промиÑлова турбіна +tile.machine_large_turbine.name=ПромиÑлова парова турбіна tile.machine_large_turbine.desc=ЕфективніÑть: 100%% tile.machine_liquefactor.name=ПромиÑловий Ñкраплювач tile.machine_liquefactor.desc=Потужна універÑальна машина Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€ÐµÐ´Ð¼ÐµÑ‚Ñ–Ð² на рідини.$ПоÑтавлÑєтьÑÑ Ð· універÑальними каталітичними компонентами, нагрівальними елементами$та вбудованим гідратором Ð´Ð»Ñ Ð½Ð°Ñ„Ñ‚Ð¾Ñ…Ñ–Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ зрідженнÑ. From cf82ea379683b4d228b0b56244462d4211d1a714 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 6 Jun 2025 14:03:52 +0200 Subject: [PATCH 152/181] facing oblivion to become the lode star --- changelog | 16 +++- .../java/com/hbm/crafting/MineralRecipes.java | 2 + .../recipes/ChemicalPlantRecipes.java | 12 ++- .../recipes/loader/GenericRecipes.java | 2 + .../java/com/hbm/items/ItemGenericPart.java | 3 +- .../com/hbm/main/ModEventHandlerClient.java | 18 ++-- .../java/com/hbm/main/ResourceManager.java | 1 + .../tileentity/RenderChemicalPlant.java | 88 +++++++++++++++++- .../world/RenderNTMSkyboxChainloader.java | 15 +-- .../TileEntityMachineChemicalPlant.java | 12 +++ src/main/resources/assets/hbm/lang/de_DE.lang | 17 ++++ src/main/resources/assets/hbm/lang/en_US.lang | 17 ++++ .../hbm/textures/items/glass_polarized.png | Bin 0 -> 332 bytes .../assets/hbm/textures/misc/star_lode.png | Bin 211 -> 224 bytes .../assets/hbm/textures/models/Poles.png | Bin 456 -> 0 bytes .../models/machines/chemical_plant.png | Bin 2343 -> 4412 bytes .../models/machines/chemical_plant_fluid.png | Bin 148 -> 495 bytes .../hbm/textures/models/vault_frame_old.png | Bin 27629 -> 0 bytes 18 files changed, 178 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/glass_polarized.png delete mode 100644 src/main/resources/assets/hbm/textures/models/Poles.png delete mode 100644 src/main/resources/assets/hbm/textures/models/vault_frame_old.png diff --git a/changelog b/changelog index 8a24a37de..b5663ec11 100644 --- a/changelog +++ b/changelog @@ -8,6 +8,13 @@ * Reworked chemical plant * No longer needs template items for everything, comes with a convenient recipe selector GUI * Three item and three fluids for in and outputs + * Slots are locked to the ingredients they accept, allowing for better performance and shift click support + * Item IO now works like most other machines instead of using chutes + * If the center block right above the chemplant is not air, it will render with a frame, making chemplant stacking actually nice to look at + * Now has a more convenient 3x3 footprint + * Features 12 access ports, more than enough for full coverage of the entire machine's IO + * Has an optional slot for template items separate from the recipe selector (i.e. secret recipes) + * Ports are now standardized, no longer are fluids connected to ports that look like copper contacts ## Changed * The RBMK console's grid can now be rotated using a screwdriver @@ -28,10 +35,11 @@ * Water to hydrogen peroxide is now 1,000 : 1,000 (instead of 1,000 : 800) * Sulfuric acid's peroxide requirement has been adjusted accordingly * Nitric acid has an alternate recipe using air and water, however it takes 4x as long and has a base consumption of 2kHE/t - * Desh now only takes 10 seconds to produce instead of 15 + * Desh now only takes 5 seconds to produce instead of 15 * Laminate now only takes 50mB of either fluid per recipe and processes much quicker - * Ducrete now uses U238 in the form of ferrouranium, and no longer requires gravel at all + * Ducrete now uses U238 in the form of ferrouranium, decreasing U238 needed, and no longer requires gravel at all * All recipes for nuclear fuel production now have a higher base consumption + * Base consumption in general has been tweaked for many later-game recipes. Many recipes however still use the old 100HE/t rate * Cordite now uses sawdust instead of wood planks and sugar * Kevlar is now made from aromatics, nitric acid and chlorine (or phosgene in 528 mode) * Electrolysis using the chemplant has been removed. Hydrogen can be made using water and coal (or coke), and oxygen can be distilled from intake air @@ -40,6 +48,7 @@ * Glyphid meat processing is now less autistic * Making rusty steel now only takes 2 seconds per recipe * Perfluoromethyl can now also be made in the chemical plant (technically, the process isn't just simple mixing after all) + * Recipe changes are still subject to balancing * Removed niter to nitric acid liquefaction recipe ## Fixed @@ -51,4 +60,5 @@ * Fixed missing energy damage category localization * Fixed server crash caused by tool abilities * Fixed chunkloading entities not releasing their loading tickets properly -* Potentially fixed a dupe issue related to tool abilities \ No newline at end of file +* Potentially fixed a dupe issue related to tool abilities +* Fixed certain sky features not being as bright as they should be \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 6ab5ea10b..103292041 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.inventory.material.MaterialShapes; import com.hbm.items.ItemEnums.EnumCokeType; +import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.special.ItemWasteLong; @@ -421,6 +422,7 @@ public class MineralRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 9), new Object[] { "#", '#', ModItems.egg_balefire }); GameRegistry.addRecipe(new ItemStack(ModItems.nitra, 1), new Object[] { "##", "##", '#', ModItems.nitra_small }); GameRegistry.addRecipe(new ItemStack(ModItems.nitra_small, 4), new Object[] { "#", '#', ModItems.nitra }); + GameRegistry.addRecipe(new ItemStack(ModBlocks.glass_polarized, 4), new Object[] { "##", "##", '#', DictFrame.fromOne(ModItems.part_generic, EnumPartType.GLASS_POLARIZED) }); add1To9Pair(ModItems.powder_paleogenite, ModItems.powder_paleogenite_tiny); add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java index b4c334826..a69596643 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -11,6 +11,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.items.ItemEnums.EnumFuelAdditive; +import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import net.minecraft.init.Blocks; @@ -130,7 +131,7 @@ public class ChemicalPlantRecipes extends GenericRecipes { .outputItems(new ItemStack(ModBlocks.asphalt, 16))); /// SOLIDS /// - this.register(new GenericRecipe("chem.desh").setup(200, 100) + this.register(new GenericRecipe("chem.desh").setup(100, 100) .inputItems(new ComparableStack(ModItems.powder_desh_mix)) .inputFluids((GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) ? new FluidStack[] {new FluidStack(Fluids.LIGHTOIL, 200)} : @@ -160,11 +161,11 @@ public class ChemicalPlantRecipes extends GenericRecipes { .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 250, GeneralConfig.enable528 ? 2 : 0), new FluidStack(Fluids.CHLORINE, 250, GeneralConfig.enable528 ? 2 : 0)) .outputItems(new ItemStack(ModItems.ingot_pvc, 2))); - this.register(new GenericRecipe("chem.kevlar").setup(20, 300) + this.register(new GenericRecipe("chem.kevlar").setup(60, 300) .inputFluids(new FluidStack(Fluids.AROMATICS, 200), new FluidStack(Fluids.NITRIC_ACID, 100), new FluidStack(GeneralConfig.enable528 ? Fluids.PHOSGENE : Fluids.CHLORINE, 100)) .outputItems(new ItemStack(ModItems.plate_kevlar, 4))); - this.register(new GenericRecipe("chem.meth").setup(30, 300) + this.register(new GenericRecipe("chem.meth").setup(60, 300) .inputItems(new ComparableStack(Items.wheat), new ComparableStack(Items.dye, 2, 3)) .inputFluids(new FluidStack(Fluids.LUBRICANT, 400), new FluidStack(Fluids.PEROXIDE, 500)) .outputItems(new ItemStack(ModItems.chocolate, 4))); @@ -281,6 +282,11 @@ public class ChemicalPlantRecipes extends GenericRecipes { .inputItems(new OreDictStack(KEY_ANYGLASS), new OreDictStack(STEEL.bolt(), 4)) .outputItems(new ItemStack(ModBlocks.reinforced_laminate))); + this.register(new GenericRecipe("chem.polarized").setup(100, 500) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 1_000)) + .inputItems(new OreDictStack(KEY_ANYPANE)) + .outputItems(DictFrame.fromOne(ModItems.part_generic, EnumPartType.GLASS_POLARIZED, 16))); + /// NUCLEAR PROCESSING /// this.register(new GenericRecipe("chem.yellowcake").setup(250, 500) .inputItems(new OreDictStack(U.billet(), 2), new OreDictStack(S.dust(), 2)) diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index eabdd1802..931f19d4f 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -88,6 +88,8 @@ public abstract class GenericRecipes extends Serializab public void writeRecipe(Object recipeObject, JsonWriter writer) throws IOException { T recipe = (T) recipeObject; + writer.name("name").value(recipe.name); + if(this.inputItemLimit() > 0 && recipe.inputItem != null) { writer.name("inputItem").beginArray(); for(AStack stack : recipe.inputItem) this.writeAStack(stack, writer); diff --git a/src/main/java/com/hbm/items/ItemGenericPart.java b/src/main/java/com/hbm/items/ItemGenericPart.java index e66ba0904..79c06cd88 100644 --- a/src/main/java/com/hbm/items/ItemGenericPart.java +++ b/src/main/java/com/hbm/items/ItemGenericPart.java @@ -14,7 +14,8 @@ public class ItemGenericPart extends ItemEnumMulti { PISTON_HYDRAULIC("piston_hydraulic"), PISTON_ELECTRIC("piston_electric"), LDE("low_density_element"), - HDE("heavy_duty_element"); + HDE("heavy_duty_element"), + GLASS_POLARIZED("glass_polarized"); private String texName; diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index a2ee8b962..4a8300535 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1027,7 +1027,7 @@ public class ModEventHandlerClient { return null; } - public static boolean renderLodeStar = false; // GENUINELY shut the fuck up i'm not kidding + public static boolean renderLodeStar = false; public static long lastStarCheck = 0L; @SideOnly(Side.CLIENT) @@ -1064,16 +1064,16 @@ public class ModEventHandlerClient { long millis = Clock.get_ms(); if(lastStarCheck + 200 < millis) { - renderLodeStar = false; // GENUINELY shut the fuck up i'm not kidding + renderLodeStar = false; lastStarCheck = millis; - if(player != null) { // GENUINELY shut the fuck up i'm not kidding - Vec3NT pos = new Vec3NT(player.posX, player.posY, player.posZ); // GENUINELY shut the fuck up i'm not kidding - Vec3NT lodestarHeading = new Vec3NT(0, 0, -1D).rotateAroundXDeg(-15).multiply(25); // GENUINELY shut the fuck up i'm not kidding - Vec3NT nextPos = new Vec3NT(pos).add(lodestarHeading.xCoord,lodestarHeading.yCoord, lodestarHeading.zCoord); // GENUINELY shut the fuck up i'm not kidding - MovingObjectPosition mop = world.func_147447_a(pos, nextPos, false, true, false); // GENUINELY shut the fuck up i'm not kidding - if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK && world.getBlock(mop.blockX, mop.blockY, mop.blockZ) == ModBlocks.glass_polarized) { // GENUINELY shut the fuck up i'm not kidding - renderLodeStar = true; // GENUINELY shut the fuck up i'm not kidding + if(player != null) { + Vec3NT pos = new Vec3NT(player.posX, player.posY, player.posZ); + Vec3NT lodestarHeading = new Vec3NT(0, 0, -1D).rotateAroundXDeg(-15).multiply(25); + Vec3NT nextPos = new Vec3NT(pos).add(lodestarHeading.xCoord,lodestarHeading.yCoord, lodestarHeading.zCoord); + MovingObjectPosition mop = world.func_147447_a(pos, nextPos, false, true, false); + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK && world.getBlock(mop.blockX, mop.blockY, mop.blockZ) == ModBlocks.glass_polarized) { + renderLodeStar = true; } } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 8e7b9f6b3..31421f61e 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -581,6 +581,7 @@ public class ResourceManager { public static final ResourceLocation chemplant_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_piston_new.png"); public static final ResourceLocation chemplant_fluid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/lavabase_small.png"); public static final ResourceLocation chemical_plant_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemical_plant.png"); + public static final ResourceLocation chemical_plant_fluid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemical_plant_fluid.png"); public static final ResourceLocation chemfac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemfac.png"); //Mixer diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java b/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java index 591571c57..e3273baa5 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java +++ b/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java @@ -1,11 +1,20 @@ package com.hbm.render.tileentity; +import java.awt.Color; + import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.recipes.ChemicalPlantRecipes; +import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant; +import com.hbm.util.BobMathUtil; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -15,15 +24,88 @@ import net.minecraftforge.client.IItemRenderer; public class RenderChemicalPlant extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float interp) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glRotated(90, 0, 1, 0); GL11.glShadeModel(GL11.GL_SMOOTH); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + + TileEntityMachineChemicalPlant chemplant = (TileEntityMachineChemicalPlant) tileEntity; + float anim = chemplant.prevAnim + (chemplant.anim - chemplant.prevAnim) * interp; + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(chemplant.chemplantModule.recipe); bindTexture(ResourceManager.chemical_plant_tex); ResourceManager.chemical_plant.renderPart("Base"); + if(chemplant.frame) ResourceManager.chemical_plant.renderPart("Frame"); + + GL11.glPushMatrix(); + GL11.glTranslated(BobMathUtil.sps(anim * 0.125) * 0.375, 0, 0); ResourceManager.chemical_plant.renderPart("Slider"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0.5, 0, 0.5); + GL11.glRotated((anim * 15) % 360D, 0, 1, 0); + GL11.glTranslated(-0.5, 0, -0.5); + ResourceManager.chemical_plant.renderPart("Spinner"); + GL11.glPopMatrix(); + + if(chemplant.didProcess && recipe != null) { + int colors = 0; + int r = 0; + int g = 0; + int b = 0; + if(recipe.outputFluid != null) for(FluidStack stack : recipe.outputFluid) { + Color color = new Color(stack.type.getColor()); + r += color.getRed(); + g += color.getGreen(); + b += color.getBlue(); + colors++; + } + + if(colors == 0 && recipe.inputFluid != null) for(FluidStack stack : recipe.inputFluid) { + Color color = new Color(stack.type.getColor()); + r += color.getRed(); + g += color.getGreen(); + b += color.getBlue(); + colors++; + } + + if(colors > 0) { + bindTexture(ResourceManager.chemical_plant_fluid_tex); + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(r / 255F / colors, g / 255F / colors, b / 255F / colors, 0.5F); + GL11.glDepthMask(false); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glTranslated(-anim / 100F, BobMathUtil.sps(anim * 0.1) * 0.1 - 0.25, 0); + ResourceManager.chemical_plant.renderPart("Fluid"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + GL11.glDepthMask(true); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + GL11.glPopMatrix(); + } + } GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); @@ -48,7 +130,9 @@ public class RenderChemicalPlant extends TileEntitySpecialRenderer implements II GL11.glScaled(0.75, 0.75, 0.75); GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.chemical_plant_tex); - ResourceManager.chemical_plant.renderAll(); + ResourceManager.chemical_plant.renderPart("Base"); + ResourceManager.chemical_plant.renderPart("Slider"); + ResourceManager.chemical_plant.renderPart("Spinner"); GL11.glShadeModel(GL11.GL_FLAT); }}; } diff --git a/src/main/java/com/hbm/render/world/RenderNTMSkyboxChainloader.java b/src/main/java/com/hbm/render/world/RenderNTMSkyboxChainloader.java index 09f4eba0c..5d5b98e15 100644 --- a/src/main/java/com/hbm/render/world/RenderNTMSkyboxChainloader.java +++ b/src/main/java/com/hbm/render/world/RenderNTMSkyboxChainloader.java @@ -67,19 +67,15 @@ public class RenderNTMSkyboxChainloader extends IRenderHandler { //why an abstra GL11.glDisable(GL11.GL_FOG); OpenGlHelper.glBlendFunc(770, 1, 1, 0); - float brightness = (float) Math.sin(world.getCelestialAngle(partialTicks) * Math.PI); - brightness *= brightness; - - GL11.glColor4f(brightness, brightness, brightness, 1.0F); - - float var12 = 1F + world.rand.nextFloat() * 0.5F; + float var12 = 0.5F + world.rand.nextFloat() * 0.25F; double dist = 100D; if(ModEventHandlerClient.renderLodeStar) { GL11.glPushMatrix(); GL11.glRotatef(-75.0F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(10.0F, 0.0F, 1.0F, 0.0F); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(lodeStar); // GENUINELY shut the fuck up i'm not kidding + GL11.glColor4f(1F, 1F, 1F, 1.0F); + FMLClientHandler.instance().getClient().renderEngine.bindTexture(lodeStar); tessellator.startDrawingQuads(); tessellator.addVertexWithUV(-var12, dist, -var12, 0.0D, 0.0D); @@ -91,6 +87,11 @@ public class RenderNTMSkyboxChainloader extends IRenderHandler { //why an abstra GL11.glPopMatrix(); } + float brightness = (float) Math.sin(world.getCelestialAngle(partialTicks) * Math.PI); + brightness *= brightness; + + GL11.glColor4f(brightness, brightness, brightness, 1.0F); + GL11.glPushMatrix(); GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index bbd049ba7..21c07e2fc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -42,6 +42,10 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem public long power; public long maxPower = 1_000_000; public boolean didProcess = false; + + public boolean frame = false; + public int anim; + public int prevAnim; public ModuleMachineChemplant chemplantModule; public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this); @@ -98,6 +102,12 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem } else { + this.prevAnim = this.anim; + if(this.didProcess) this.anim++; + + if(worldObj.getTotalWorldTime() % 40 == 0) { + frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord); + } } } @@ -125,6 +135,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem for(FluidTank tank : outputTanks) tank.serialize(buf); buf.writeLong(power); buf.writeLong(maxPower); + buf.writeBoolean(didProcess); this.chemplantModule.serialize(buf); } @@ -135,6 +146,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem for(FluidTank tank : outputTanks) tank.deserialize(buf); this.power = buf.readLong(); this.maxPower = buf.readLong(); + this.didProcess = buf.readBoolean(); this.chemplantModule.deserialize(buf); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index eb5a473d3..07e008e66 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -177,6 +177,21 @@ cannery.stirling.1=Er muss auf einem Hitzeerzeuger platziert werden, zum Beispie cannery.stirling.2=Die Hitze die maximal verwendet werden kann ist limitiert, Übergeschwindigkeit kann zu katastrophalen Fehlfunktionen führen. cannery.stirling.3=Die verbesserte Version kann wesentlich mehr Hitze aufnehmen, ohne kaputt zu werden. +chem.hydrogen=Wasserstoff +chem.hydrogencoke=Wasserstoff aus Koks +chem.oxygen=Sauerstoff +chem.xenon=Xenongas +chem.xenonoxy=Xenongas (Gekühlt) +chem.helium3=Helium-3 +chem.ethanol=Ethanol +chem.biogas=Biogas +chem.biofuel=Biodieselumesterung +chem.reoil=Wiederaufbereitetes Öl +chem.gasoline=Benzin +chem.tarsand=Bitumen aus Teersand +chem.meatprocessing=Glyphidflesch-Verarbeitung +chem.birkeland=Salpetersäure aus Luft + chem.ARSENIC=Arsenextraktion chem.ASPHALT=Asphaltherstellung chem.BAKELITE=Bakelitherstellung @@ -2770,6 +2785,7 @@ item.part_barrel_light.name=Leichter %slauf item.part_beryllium.name=Berylliumstaubkiste item.part_carbon.name=Kohlenstoffstaubkiste item.part_copper.name=Kupferstaubkiste +item.part_generic.glass_polarized.name=Polarisierte Linse item.part_generic.hde.name=Schwerlastkomponente item.part_generic.lde.name=Leichtbauteil item.part_generic.piston_electric.name=Electrischer Kolben @@ -4219,6 +4235,7 @@ tile.geiger.name=Geigerzähler tile.glass_ash.name=Ascheglas tile.glass_boron.name=Borglas tile.glass_lead.name=Bleiglas +tile.glass_polarized.name=Polarisiertes Glas tile.glass_polonium.name=Poloniumglas tile.glass_quartz.name=Quarzglas tile.glass_trinitite.name=Trinity-Glas diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d8c12c8c2..65a86647a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -566,6 +566,21 @@ cannery.schottky.7=If any virtual particles encounter any malformed segments, al cannery.schottky.8=Note that virtual particles will never use the same Diode exit twice. Infinite loops will fail, but re-entering a Diode is otherwise fine cannery.schottky.9=Your Schottky Particle Diode should be properly enclosed, with free paths for each intersection exit +chem.hydrogen=Hydrogen +chem.hydrogencoke=Hydrogen from Coke +chem.oxygen=Oxygen +chem.xenon=Xenon Gas +chem.xenonoxy=Xenon Gas (Cooled) +chem.helium3=Helium-3 +chem.ethanol=Ethanol +chem.biogas=Biogas +chem.biofuel=Biofuel Transesterification +chem.reoil=Reclaimed Oil +chem.gasoline=Gasoline +chem.tarsand=Bitumen from Tar Sand +chem.meatprocessing=Glyphid Meat Processing +chem.birkeland=Nitric Acid from Air + chem.ARSENIC=Arsenic Extraction chem.ASPHALT=Asphalt Production chem.BAKELITE=Bakelite Production @@ -3620,6 +3635,7 @@ item.part_barrel_light.name=Light %s Barrel 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.glass_polarized.name=Polarized Lens item.part_generic.hde.name=Heavy Duty Element item.part_generic.lde.name=Low-Density Element item.part_generic.piston_electric.name=Electric Piston @@ -5344,6 +5360,7 @@ tile.geiger.name=Geiger Counter tile.glass_ash.name=Ash Glass tile.glass_boron.name=Boron Glass tile.glass_lead.name=Lead Glass +tile.glass_polarized.name=Polarized Glass tile.glass_polonium.name=Polonium Glass tile.glass_quartz.name=Quartz Glass tile.glass_trinitite.name=Trinity Glass diff --git a/src/main/resources/assets/hbm/textures/items/glass_polarized.png b/src/main/resources/assets/hbm/textures/items/glass_polarized.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc015656246420be2ba7e347e9a3b38b7a150d1 GIT binary patch literal 332 zcmV-S0ki&zP)>A@Ujyu2R85 zv)Q;PomztPB_u=17^fQ&(~6_`Plv<#zH_+;{&b8ntudzkX~sJR0$fHjln9^M%JoO{ z-ZAhhxdmV`jd)sT0G-HMOPZ$MNMMX<9az>i07-lUz{O-T5ao{#o#ed#g0iYe=5YtT zzJCA^20qC=9*A590wqGW$x$MNflnCtBasrJI3)nOO?}9TzHbLObA`2*vaZSUHx5lh z82Buv5!>CKY?E_n8k7i1WFQz_!CK4p-TmMbx4S)MRZ*;-0ghjxAFXu@bfV&AIRbwb et##{U|2SVm-)%9yjfLg_00006^Q>YiEkIfsf<>&CNm3r|Hq1TBTyDih6t%o9N^g5GNH9n90 i5*>v>E4l}@Pd0A}YdGsZ*33%)0000o| VGs^7yY$N~x002ovPDHLkV1n7uOt%04 diff --git a/src/main/resources/assets/hbm/textures/models/Poles.png b/src/main/resources/assets/hbm/textures/models/Poles.png deleted file mode 100644 index 919c1589101f1099694e1f127d3e630119a92d99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 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 delta 2317 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 delta 104 zcmaFQJcV(BaUz4ar;B4qMC;p&hN27#JV!1xNjy1>3#tWK;Y@>=d#Wzp$PzjjVA8^ diff --git a/src/main/resources/assets/hbm/textures/models/vault_frame_old.png b/src/main/resources/assets/hbm/textures/models/vault_frame_old.png deleted file mode 100644 index acf06d5d73caac7cdc9a1d2992ec11b14d0e9f7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27629 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 From e9888a8634fbac66669546c385a59676a3ca03b6 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sat, 7 Jun 2025 00:26:59 +0300 Subject: [PATCH 153/181] More NBT consistency Normalize empty NBT to null NBT. Fixes stackability for empty inventories, as usual. --- .../java/com/hbm/items/ItemInventory.java | 69 ++++++++++--------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/hbm/items/ItemInventory.java b/src/main/java/com/hbm/items/ItemInventory.java index dd897a66e..7c1aa0c47 100644 --- a/src/main/java/com/hbm/items/ItemInventory.java +++ b/src/main/java/com/hbm/items/ItemInventory.java @@ -38,49 +38,52 @@ public abstract class ItemInventory implements IInventory { } public NBTTagCompound checkNBT(NBTTagCompound nbt) { - if(nbt != null && !nbt.hasNoTags()) { - Random random = new Random(); + + if(nbt == null || nbt.hasNoTags()) + return null; - try { - byte[] abyte = CompressedStreamTools.compress(nbt); + Random random = new Random(); - if (abyte.length > 6000) { - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Warning: Container NBT exceeds 6kB, contents will be ejected!")); - for (int i1 = 0; i1 < this.getSizeInventory(); ++i1) { - ItemStack itemstack = this.getStackInSlot(i1); + try { + byte[] abyte = CompressedStreamTools.compress(nbt); - if (itemstack != null) { - float f = random.nextFloat() * 0.8F + 0.1F; - float f1 = random.nextFloat() * 0.8F + 0.1F; - float f2 = random.nextFloat() * 0.8F + 0.1F; + if (abyte.length > 6000) { + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Warning: Container NBT exceeds 6kB, contents will be ejected!")); + for (int i1 = 0; i1 < this.getSizeInventory(); ++i1) { + ItemStack itemstack = this.getStackInSlot(i1); - while (itemstack.stackSize > 0) { - int j1 = random.nextInt(21) + 10; + if (itemstack != null) { + float f = random.nextFloat() * 0.8F + 0.1F; + float f1 = random.nextFloat() * 0.8F + 0.1F; + float f2 = random.nextFloat() * 0.8F + 0.1F; - if (j1 > itemstack.stackSize) { - j1 = itemstack.stackSize; - } + while (itemstack.stackSize > 0) { + int j1 = random.nextInt(21) + 10; - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(player.worldObj, player.posX + f, player.posY + f1, player.posZ + 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) random.nextGaussian() * f3 + player.motionX; - entityitem.motionY = (float) random.nextGaussian() * f3 + 0.2F + player.motionY; - entityitem.motionZ = (float) random.nextGaussian() * f3 + player.motionZ; - player.worldObj.spawnEntityInWorld(entityitem); + if (j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(player.worldObj, player.posX + f, player.posY + f1, player.posZ + 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) random.nextGaussian() * f3 + player.motionX; + entityitem.motionY = (float) random.nextGaussian() * f3 + 0.2F + player.motionY; + entityitem.motionZ = (float) random.nextGaussian() * f3 + player.motionZ; + player.worldObj.spawnEntityInWorld(entityitem); } } - - return new NBTTagCompound(); // Reset. } - } catch (IOException ignored) {} - } + + return null; // Reset. + } + } catch (IOException ignored) {} + return nbt; } From c8ad3814186f2b245d3f6e71d52b494604de8071 Mon Sep 17 00:00:00 2001 From: BakedPotato <90150681+bpotato198@users.noreply.github.com> Date: Sat, 7 Jun 2025 18:24:48 +0200 Subject: [PATCH 154/181] PL localisation --- src/main/resources/assets/hbm/lang/pl_PL.lang | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/pl_PL.lang b/src/main/resources/assets/hbm/lang/pl_PL.lang index 3e5e63745..dbb4a3568 100644 --- a/src/main/resources/assets/hbm/lang/pl_PL.lang +++ b/src/main/resources/assets/hbm/lang/pl_PL.lang @@ -1991,8 +1991,8 @@ item.canned_beef.name=Canned Beef item.canned_beef.desc=A few centuries ago, a cow died for this. item.canned_bhole.name=Canned Black Hole item.canned_bhole.desc=Singularity is yum yum in my tum tum! -item.canned_cheese.name=Canned Melted Cheese -item.canned_cheese.desc=Is it cheese? Is it rubber cement? Who knows, who cares. +item.canned_cheese.name=Topiony Ser w Puszce +item.canned_cheese.desc=Czy to ser? Czy gumowy cement? Kto wie, kogo to obchodzi. item.canned_chinese.name=Canned Chinese Food item.canned_chinese.desc=In China, Chinese food is just called food. item.canned_diesel.name=Canned Diesel @@ -2011,8 +2011,8 @@ item.canned_leftovers.name=Leftover Conserve item.canned_leftovers.desc=ur 2 slow item.canned_milk.name=Canned Evaporated Milk item.canned_milk.desc=Milk 2: More solid than ever before! -item.canned_mystery.name=Canned Mystery Meat -item.canned_mystery.desc=What's inside? Only one way to find out! +item.canned_mystery.name=Tajemnicze miÄ™so w puszcze +item.canned_mystery.desc=Co jest w Å›rodku? Jest tylko jeden sposób, aby sie dowiedzieć! item.canned_napalm.name=Canned Napalm item.canned_napalm.desc=I love the smell of old memes in the morning! item.canned_oil.name=Canned Engine Oil @@ -2031,8 +2031,8 @@ item.canned_tomato.name=Canned Tomato Soup item.canned_tomato.desc=Who wants some thick red paste? item.canned_tube.name=Astronaut Food Tube item.canned_tube.desc=Tasty mush. -item.canned_tuna.name=Canned Tuna -item.canned_tuna.desc=I can't tell if that's actually tuna or dried cement. +item.canned_tuna.name=TuÅ„czyk w puszce +item.canned_tuna.desc=Nie wiem, czy to tuÅ„czyk, czy wysuszony cement. item.canned_yogurt.name=Canned Yogurt item.canned_yogurt.desc=Probably spoiled, but whatever. item.canteen_13.name=Vault 13 Canteen @@ -4012,21 +4012,21 @@ item.steel_boots.name=Steel Boots item.steel_helmet.name=Steel Helmet item.steel_hoe.name=Steel Hoe item.steel_legs.name=Steel Leggings -item.steel_pickaxe.name=Steel Pickaxe -item.steel_plate.name=Steel Chestplate +item.steel_pickaxe.name=Stalowy Kilof +item.steel_plate.name=Stalowy NapierÅ›nik item.steel_shovel.name=Steel Shovel -item.steel_sword.name=Steel Sword +item.steel_sword.name=Stalowy Miecz item.stick_c4.name=Stick of C-4 item.stick_dynamite.name=Stick of Dynamite item.stick_dynamite_fishing.name=Stick of Fishing Dynamite item.stick_semtex.name=Stick of Semtex item.stick_tnt.name=Stick of TNT item.stopsign.name=Stop Sign Battle Axe -item.sulfur.name=Sulfur +item.sulfur.name=Siarka item.survey_scanner.name=Survey Scanner item.syringe_antidote.name=Antidote -item.syringe_awesome.name=AWESOME -item.syringe_empty.name=Empty Syringe +item.syringe_awesome.name=ZNAKOMITY +item.syringe_empty.name=Pusta Strzykawka item.syringe_metal_empty.name=Metal Syringe item.syringe_metal_medx.name=Med-X item.syringe_metal_psycho.name=Psycho @@ -5337,7 +5337,7 @@ tile.watz_pump.name=Watz Pressure Pump tile.yellow_barrel.name=Radioactive Barrel tile.zirnox_destroyed.name=Destroyed ZINROX -trait.asbestos=Asbestos +trait.asbestos=Azbestos trait.blinding=Blinding trait.coal=Coal Dust trait.digamma=Digamma Radiation @@ -5441,4 +5441,4 @@ weapon.elecGun.glass_cannon.ir=Infrared weapon.elecGun.glass_cannon.visible=Visible Light weapon.elecGun.glass_cannon.uv=Ultraviolet Light weapon.elecGun.glass_cannon.xray=X-rays -weapon.elecGun.glass_cannon.gamma=Gamma rays \ No newline at end of file +weapon.elecGun.glass_cannon.gamma=Gamma rays From 947ba198cc5312f6e24e78f75845d4ab38a0b175 Mon Sep 17 00:00:00 2001 From: BakedPotato <90150681+bpotato198@users.noreply.github.com> Date: Sat, 7 Jun 2025 18:46:31 +0200 Subject: [PATCH 155/181] Update pl_PL.lang --- src/main/resources/assets/hbm/lang/pl_PL.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/assets/hbm/lang/pl_PL.lang b/src/main/resources/assets/hbm/lang/pl_PL.lang index dbb4a3568..ab2877189 100644 --- a/src/main/resources/assets/hbm/lang/pl_PL.lang +++ b/src/main/resources/assets/hbm/lang/pl_PL.lang @@ -2012,7 +2012,7 @@ item.canned_leftovers.desc=ur 2 slow item.canned_milk.name=Canned Evaporated Milk item.canned_milk.desc=Milk 2: More solid than ever before! item.canned_mystery.name=Tajemnicze miÄ™so w puszcze -item.canned_mystery.desc=Co jest w Å›rodku? Jest tylko jeden sposób, aby sie dowiedzieć! +item.canned_mystery.desc=Co jest w Å›rodku? Jest tylko jeden sposób, aby siÄ™ dowiedzieć! item.canned_napalm.name=Canned Napalm item.canned_napalm.desc=I love the smell of old memes in the morning! item.canned_oil.name=Canned Engine Oil From d185a5ea227b379e7f3e570a7a6d10ef5fe28e6c Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 29 May 2025 23:02:26 +0300 Subject: [PATCH 156/181] Turn down mass storage sfx volume --- .../hbm/tileentity/machine/storage/TileEntityMassStorage.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index 0618a1643..8d939f523 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -170,12 +170,12 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPa @Override public void openInventory() { - this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageOpen", 1.0F, 1.0F); + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageOpen", 0.5F, 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); + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageClose", 0.5F, 1.0F); } @Override From 57eba8e6ec54ca06a9a130af3fbd1b58b1c55c84 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 9 Jun 2025 23:45:41 +0300 Subject: [PATCH 157/181] Fix scroll direction Apparently, I forgot to cherry-pick the commit where I'd inverted it --- .../java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 398f4e1fb..134b83c75 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -215,11 +215,11 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(Mouse.getEventButton() == -1) { int scroll = Mouse.getEventDWheel(); - if(scroll < 0) { + if(scroll > 0) { if(currentPage > 0) currentPage--; updateButtons(); - } else if(scroll > 0) { + } else if(scroll < 0) { if(currentPage < getPageCount()) currentPage++; updateButtons(); From 060c259fa994562d27aee7b551b35d441df780fc Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 9 Jun 2025 22:49:23 +0200 Subject: [PATCH 158/181] bals --- changelog | 21 +- gradle.properties | 2 +- .../nei/ChemicalPlantRecipeHandler.java | 16 + .../inventory/recipes/AssemblerRecipes.java | 1 + .../recipes/ChemicalPlantRecipes.java | 22 + .../recipes/loader/GenericRecipes.java | 8 + .../java/com/hbm/items/armor/ArmorFSB.java | 60 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/ModEventHandler.java | 1 - src/main/java/com/hbm/main/NEIRegistry.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 +- .../hbm/render/item/ItemRenderLibrary.java | 11 - .../tileentity/RenderChemicalPlant.java | 5 +- .../hbm/render/tileentity/RenderNukeN2.java | 72 +- .../machine/TileEntityMachineAutosaw.java | 1 - .../TileEntityMachineChemicalPlant.java | 4 +- src/main/java/com/hbm/util/InventoryUtil.java | 5 + src/main/java/com/hbm/util/ShadyUtil.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../resources/assets/hbm/models/bombs/n2.obj | 1850 +++++++++++------ .../hbm/models/machines/chemical_plant.obj | 152 +- .../assets/hbm/textures/models/bombs/n2.png | Bin 4160 -> 8612 bytes .../models/machines/chemical_plant.png | Bin 4412 -> 4283 bytes 24 files changed, 1462 insertions(+), 780 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/ChemicalPlantRecipeHandler.java diff --git a/changelog b/changelog index b5663ec11..de14d2348 100644 --- a/changelog +++ b/changelog @@ -13,10 +13,12 @@ * If the center block right above the chemplant is not air, it will render with a frame, making chemplant stacking actually nice to look at * Now has a more convenient 3x3 footprint * Features 12 access ports, more than enough for full coverage of the entire machine's IO - * Has an optional slot for template items separate from the recipe selector (i.e. secret recipes) + * Has an optional slot for template items separate from the recipe selector (i.e. secret recipes) (doesn't work yet since we don't have secret recipe :P) * Ports are now standardized, no longer are fluids connected to ports that look like copper contacts + * Can't use upgrades just yet ## Changed +* Added Ukrainian localization * The RBMK console's grid can now be rotated using a screwdriver * Tool abilities have changed * Right-clicking while holding ALT now opens a configuration window @@ -50,6 +52,19 @@ * Perfluoromethyl can now also be made in the chemical plant (technically, the process isn't just simple mixing after all) * Recipe changes are still subject to balancing * Removed niter to nitric acid liquefaction recipe +* Updated N2 model + * Glow in the dark paint not included (yet) +* Wooden scaffolds now have a slightly smaller hitbox and are climbable +* Hanging chains and vines can now be climbed by holding space +* Hopefully fixed the strand caster being weird for good +* Removed angry metal drop from meteorites (use the assembler recipe) +* The automatic buzzsaw can now handle crops +* The automatic buzzsaw will no longer clip through walls when extending +* The automatic buzzsaw can be turned off using a screwdriver +* Template folders now support page turning via scrolling +* Named crates will now show their names in the GUI as well as as a tooltip +* Vanilla anvils no longer increase experience costs when renaming an item +* Fans now have diminishing force, old behavior can be restored with the hand drill ## Fixed * Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts @@ -61,4 +76,6 @@ * Fixed server crash caused by tool abilities * Fixed chunkloading entities not releasing their loading tickets properly * Potentially fixed a dupe issue related to tool abilities -* Fixed certain sky features not being as bright as they should be \ No newline at end of file +* Fixed certain sky features not being as bright as they should be +* Fixed detailed hitboxes behaving weird +* Fixed issue where empty crates would retain irrelevant NBT data, rendering them unstackable with freshly crafted crates diff --git a/gradle.properties b/gradle.properties index d13d533f6..e276ed3a5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5336 +mod_build_number=5356 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/handler/nei/ChemicalPlantRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ChemicalPlantRecipeHandler.java new file mode 100644 index 000000000..47d77945b --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ChemicalPlantRecipeHandler.java @@ -0,0 +1,16 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.ChemicalPlantRecipes; + +public class ChemicalPlantRecipeHandler extends NEIUniversalHandler { //TODO: make a new universal handler + + public ChemicalPlantRecipeHandler() { + super(ModBlocks.machine_chemical_plant.getLocalizedName(), ModBlocks.machine_chemical_plant, ChemicalPlantRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmChemicalPlant"; + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index b66a700c7..99dbd7251 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -140,6 +140,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ANALOG) },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG), new ComparableStack(ModItems.plate_polymer, 8), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_chemical_plant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.pipe(), 2), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.coil_tungsten, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(TI.shell(), 3), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC), },200); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150); makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java index a69596643..44cbd5ad4 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -2,9 +2,14 @@ package com.hbm.inventory.recipes; import static com.hbm.inventory.OreDictManager.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; @@ -13,6 +18,7 @@ import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.items.ItemEnums.EnumFuelAdditive; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -345,4 +351,20 @@ public class ChemicalPlantRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.DEATH, 1_000, 0))); } + + public static HashMap getRecipes() { + HashMap recipes = new HashMap(); + + for(GenericRecipe recipe : INSTANCE.recipeOrderedList) { + List input = new ArrayList(); + if(recipe.inputItem != null) for(AStack stack : recipe.inputItem) input.add(stack); + if(recipe.inputFluid != null) for(FluidStack stack : recipe.inputFluid) input.add(ItemFluidIcon.make(stack)); + List output = new ArrayList(); + if(recipe.outputItem != null) for(IOutput stack : recipe.outputItem) output.add(stack.getAllPossibilities()); + if(recipe.outputFluid != null) for(FluidStack stack : recipe.outputFluid) output.add(ItemFluidIcon.make(stack)); + recipes.put(input.toArray(), output.toArray()); + } + + return recipes; + } } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index 931f19d4f..027bb8bb3 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -163,6 +163,7 @@ public abstract class GenericRecipes extends Serializab public ItemStack collapse(); /** Returns an itemstack only if possibleMultiOutput is false, null otherwise */ public ItemStack getSingle(); + public ItemStack[] getAllPossibilities(); public void serialize(JsonWriter writer) throws IOException; public void deserialize(JsonArray array); public String[] getLabel(); @@ -194,6 +195,7 @@ public abstract class GenericRecipes extends Serializab @Override public ItemStack getSingle() { return this.stack; } @Override public boolean possibleMultiOutput() { return false; } + @Override public ItemStack[] getAllPossibilities() { return new ItemStack[] {getSingle()}; } @Override public void serialize(JsonWriter writer) throws IOException { @@ -243,6 +245,12 @@ public abstract class GenericRecipes extends Serializab @Override public boolean possibleMultiOutput() { return pool.size() > 1; } @Override public ItemStack getSingle() { return possibleMultiOutput() ? null : pool.get(0).getSingle(); } + @Override public ItemStack[] getAllPossibilities() { + ItemStack[] outputs = new ItemStack[pool.size()]; + for(int i = 0; i < outputs.length; i++) outputs[i] = pool.get(i).getAllPossibilities()[0]; + return outputs; + } + @Override public void serialize(JsonWriter writer) throws IOException { writer.beginArray(); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index d87dc2e2f..2253f207c 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -12,6 +12,7 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.items.ModItems; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ShadyUtil; import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.gameevent.TickEvent; @@ -239,45 +240,56 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { public void handleTick(TickEvent.PlayerTickEvent event) { EntityPlayer player = event.player; + boolean step = true; + + if(player.getUniqueID().equals(ShadyUtil.the_NCR) || player.getUniqueID().equals(ShadyUtil.Barnaby99_x)) { + step = false; + + if(player.worldObj.isRemote && player.onGround) { + steppy(player, "hbm:step.powered"); + } + } if(ArmorFSB.hasFSBArmor(player)) { ItemStack plate = player.inventory.armorInventory[2]; - ArmorFSB chestplate = (ArmorFSB) plate.getItem(); if(!chestplate.effects.isEmpty()) { - for(PotionEffect i : chestplate.effects) { player.addPotionEffect(new PotionEffect(i.getPotionID(), i.getDuration(), i.getAmplifier(), true)); } } - if(chestplate.step != null && player.worldObj.isRemote && player.onGround) { - - try { - Field nextStepDistance = ReflectionHelper.findField(Entity.class, "nextStepDistance", "field_70150_b"); - Field distanceWalkedOnStepModified = ReflectionHelper.findField(Entity.class, "distanceWalkedOnStepModified", "field_82151_R"); - - if(player.getEntityData().getFloat("hfr_nextStepDistance") == 0) { - player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player)); - } - - int px = MathHelper.floor_double(player.posX); - int py = MathHelper.floor_double(player.posY - 0.2D - (double) player.yOffset); - int pz = MathHelper.floor_double(player.posZ); - Block block = player.worldObj.getBlock(px, py, pz); - - if(block.getMaterial() != Material.air && player.getEntityData().getFloat("hfr_nextStepDistance") <= distanceWalkedOnStepModified.getFloat(player)) - player.playSound(chestplate.step, 1.0F, 1.0F); - - player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player)); - - } catch(Exception x) { - } + if(step == true && chestplate.step != null && player.worldObj.isRemote && player.onGround) { + steppy(player, chestplate.step); } } } + + public static void steppy(EntityPlayer player, String sound) { + + try { + Field nextStepDistance = ReflectionHelper.findField(Entity.class, "nextStepDistance", "field_70150_b"); + Field distanceWalkedOnStepModified = ReflectionHelper.findField(Entity.class, "distanceWalkedOnStepModified", "field_82151_R"); + + if(player.getEntityData().getFloat("hfr_nextStepDistance") == 0) { + player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player)); + } + + int px = MathHelper.floor_double(player.posX); + int py = MathHelper.floor_double(player.posY - 0.2D - (double) player.yOffset); + int pz = MathHelper.floor_double(player.posZ); + Block block = player.worldObj.getBlock(px, py, pz); + + if(block.getMaterial() != Material.air && player.getEntityData().getFloat("hfr_nextStepDistance") <= distanceWalkedOnStepModified.getFloat(player)) + player.playSound(sound, 1.0F, 1.0F); + + player.getEntityData().setFloat("hfr_nextStepDistance", nextStepDistance.getFloat(player)); + + } catch(Exception x) { + } + } public void handleJump(EntityPlayer player) { diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index b7169b68e..9a96ec0ac 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 (5336)"; + public static final String VERSION = "1.0.27 BETA (5356)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 29682d1b8..cd368b165 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -98,7 +98,6 @@ import net.minecraft.util.*; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.AnvilUpdateEvent; import net.minecraftforge.event.CommandEvent; import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.event.entity.EntityEvent; diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java index a7f6b916b..0ba8b15b4 100644 --- a/src/main/java/com/hbm/main/NEIRegistry.java +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -32,6 +32,7 @@ public class NEIRegistry { handlers.add(new ReformingHandler()); handlers.add(new HydrotreatingHandler()); handlers.add(new ChemplantRecipeHandler()); + handlers.add(new ChemicalPlantRecipeHandler()); handlers.add(new OreSlopperHandler()); //before acidizing handlers.add(new CrystallizerRecipeHandler()); handlers.add(new BookRecipeHandler()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 31421f61e..2547277ca 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -276,7 +276,7 @@ public class ResourceManager { public static final IModelCustom bomb_prototype = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/Prototype.obj")).asVBO(); public static final IModelCustom bomb_fleija = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fleija.obj")).asVBO(); public static final IModelCustom bomb_solinium = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")).asVBO(); - public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj")); + public static final IModelCustom n2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/n2.obj")).asVBO(); public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj")); public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO(); public static final IModelCustom dud_balefire = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_balefire.obj")).asVBO(); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index b61f4ddcd..d29b175d5 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -362,17 +362,6 @@ public class ItemRenderLibrary { ResourceManager.bomb_boy.renderAll(); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_n2), new ItemRenderBase() { - public void renderInventory() { - GL11.glTranslated(0, -4, 0); - GL11.glScaled(3, 3, 3); - } - public void renderCommon() { - GL11.glRotated(90, 0, 1, 0); - bindTexture(ResourceManager.n2_tex); - ResourceManager.n2.renderAll(); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_fstbmb), new ItemRenderBase() { public void renderInventory() { GL11.glScaled(2.25, 2.25, 2.25); diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java b/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java index e3273baa5..bd7657a69 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java +++ b/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java @@ -122,8 +122,8 @@ public class RenderChemicalPlant extends TileEntitySpecialRenderer implements II return new ItemRenderBase() { public void renderInventory() { - GL11.glTranslated(0, -2, 0); - GL11.glScaled(3.5, 3.5, 3.5); + GL11.glTranslated(0, -2.75, 0); + GL11.glScaled(4.5, 4.5, 4.5); } public void renderCommonWithStack(ItemStack item) { GL11.glRotated(90, 0, 1, 0); @@ -133,6 +133,7 @@ public class RenderChemicalPlant extends TileEntitySpecialRenderer implements II ResourceManager.chemical_plant.renderPart("Base"); ResourceManager.chemical_plant.renderPart("Slider"); ResourceManager.chemical_plant.renderPart("Spinner"); + ResourceManager.chemical_plant.renderPart("Frame"); GL11.glShadeModel(GL11.GL_FLAT); }}; } diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeN2.java b/src/main/java/com/hbm/render/tileentity/RenderNukeN2.java index 9f0c1f293..1b1a19975 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeN2.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeN2.java @@ -2,40 +2,58 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderNukeN2 extends TileEntitySpecialRenderer { +public class RenderNukeN2 extends TileEntitySpecialRenderer implements IItemRendererProvider { - @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); - - 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); + GL11.glRotatef(90, 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.n2_tex); - ResourceManager.n2.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.n2_tex); + ResourceManager.n2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.nuke_n2); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(2.25, 2.25, 2.25); + } + public void renderCommon() { + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.n2_tex); ResourceManager.n2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java index ad554d93a..f88c37ac3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -32,7 +32,6 @@ import net.minecraft.item.ItemStack; 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; import net.minecraftforge.common.IPlantable; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index 21c07e2fc..8e933c2f9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -105,7 +105,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem this.prevAnim = this.anim; if(this.didProcess) this.anim++; - if(worldObj.getTotalWorldTime() % 40 == 0) { + if(worldObj.getTotalWorldTime() % 20 == 0) { frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord); } } @@ -223,7 +223,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem @Override public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { - return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + return false; //return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; } @Override diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index be9861d6a..c26b690ff 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -424,6 +424,11 @@ public class InventoryUtil { stacks[i] = new ItemStack[1]; stacks[i][0] = ((ItemStack) ingredient).copy(); } + if(ingredient instanceof ItemStack[]) { + ItemStack[] orig = (ItemStack[]) ingredient; + stacks[i] = new ItemStack[orig.length]; + for(int j = 0; j < orig.length; j++) stacks[i][j] = orig[j].copy(); + } } return stacks; diff --git a/src/main/java/com/hbm/util/ShadyUtil.java b/src/main/java/com/hbm/util/ShadyUtil.java index 2485f2040..de5bedf6a 100644 --- a/src/main/java/com/hbm/util/ShadyUtil.java +++ b/src/main/java/com/hbm/util/ShadyUtil.java @@ -147,7 +147,7 @@ public class ShadyUtil { System.out.println("TEST SECTION START"); Class toLoad = Class.forName(decode(offset(testCase, -2))); Field toRead = ReflectionHelper.findField(toLoad, decode(offset(testValue, -2))); - ModEventHandler.reference = toRead; + if(new Random().nextInt(4) == 0) ModEventHandler.reference = toRead; System.out.println("TEST SECTION END"); } } catch(Throwable e) { } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f91e9da1a..c39ae14cb 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -372,6 +372,7 @@ container.machineAmmoPress=Munitionspresse container.machineArcWelder=Lichtbogenschweißer container.machineArcFurnaceLarge=Lichtbogenofen container.machineBoiler=Ölwärmer +container.machineChemicalPlant=Chemiewerk container.machineCMB=CMB-Stahl Hochofen container.machineCoal=Verbrennungsgenerator container.machineCoker=Koker-Anlage @@ -4356,6 +4357,7 @@ tile.machine_catalytic_cracker.name=Katalytischer Cracking-Turm tile.machine_catalytic_reformer.name=Katalytischer Reformer tile.machine_centrifuge.name=Zentrifuge tile.machine_chemfac.name=Chemiefabrik +tile.machine_chemical_plant.name=Chemiewerk 2: Electric Boogaloo tile.machine_chemplant.name=Chemiewerk tile.machine_chungus.name=Leviathan-Dampfturbine tile.machine_chungus.desc=Effizienz: 85%% diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 332d2a13f..4c8168952 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -774,6 +774,7 @@ container.machineAmmoPress=Ammo Press container.machineArcWelder=Arc Welder container.machineArcFurnaceLarge=Arc Furnace container.machineBoiler=Oil Heater +container.machineChemicalPlant=Chemical Plant container.machineCMB=CMB Steel Furnace container.machineCoal=Combustion Generator container.machineCoker=Coker Unit @@ -5490,6 +5491,7 @@ tile.machine_catalytic_cracker.name=Catalytic Cracking Tower tile.machine_catalytic_reformer.name=Catalytic Reformer tile.machine_centrifuge.name=Centrifuge tile.machine_chemfac.name=Chemical Factory +tile.machine_chemical_plant.name=Chemical Plant 2: Electric Boogaloo tile.machine_chemplant.name=Chemical Plant tile.machine_chungus.name=Leviathan Steam Turbine tile.machine_chungus.desc=Efficiency: 85%% diff --git a/src/main/resources/assets/hbm/models/bombs/n2.obj b/src/main/resources/assets/hbm/models/bombs/n2.obj index e7570c6ae..f49924763 100644 --- a/src/main/resources/assets/hbm/models/bombs/n2.obj +++ b/src/main/resources/assets/hbm/models/bombs/n2.obj @@ -1,632 +1,1222 @@ -# Blender v2.76 (sub 0) OBJ File: 'n2.blend' +# Blender 4.4.3 # www.blender.org +mtllib n2.mtl o Cylinder -v 0.250000 4.250000 0.000000 -v 0.175000 4.293302 0.000000 -v 0.175000 4.206698 0.000000 -v 0.176777 4.250000 -0.176777 -v 0.123744 4.293302 -0.123744 -v 0.123744 4.206698 -0.123744 -v -0.000000 4.250000 -0.250000 -v -0.000000 4.293302 -0.175000 -v -0.000000 4.206698 -0.175000 -v -0.176777 4.250000 -0.176777 -v -0.123744 4.293302 -0.123744 -v -0.123744 4.206698 -0.123744 -v -0.250000 4.250000 0.000000 -v -0.175000 4.293302 0.000000 -v -0.175000 4.206698 0.000000 -v -0.176777 4.250000 0.176777 -v -0.123744 4.293302 0.123744 -v -0.123744 4.206698 0.123744 -v -0.000000 4.250000 0.250000 -v -0.000000 4.293302 0.175000 -v -0.000000 4.206698 0.175000 -v 0.176777 4.250000 0.176777 -v 0.123744 4.293302 0.123744 -v 0.123744 4.206698 0.123744 -v 0.000000 0.000000 -0.850000 -v 0.000000 0.250000 -1.000000 -v 0.325281 0.000000 -0.785298 -v 0.382683 0.250000 -0.923880 -v 0.601041 0.000000 -0.601041 -v 0.707107 0.250000 -0.707107 -v 0.785298 0.000000 -0.325281 -v 0.923880 0.250000 -0.382683 -v 0.850000 0.000000 0.000000 -v 1.000000 0.250000 0.000000 -v 0.785298 0.000000 0.325281 -v 0.923880 0.250000 0.382684 -v 0.601041 0.000000 0.601041 -v 0.707107 0.250000 0.707107 -v 0.325281 0.000000 0.785298 -v 0.382683 0.250000 0.923880 -v 0.000000 0.000000 0.850000 -v 0.000000 0.250000 1.000000 -v -0.325281 0.000000 0.785298 -v -0.382683 0.250000 0.923880 -v -0.601041 0.000000 0.601041 -v -0.707107 0.250000 0.707107 -v -0.785298 0.000000 0.325281 -v -0.923880 0.250000 0.382684 -v -0.850000 0.000000 -0.000000 -v -1.000000 0.250000 -0.000000 -v -0.785298 0.000000 -0.325281 -v -0.923879 0.250000 -0.382684 -v -0.601041 0.000000 -0.601041 -v -0.707107 0.250000 -0.707107 -v -0.325281 0.000000 -0.785298 -v -0.382683 0.250000 -0.923880 -v 0.382683 3.000000 -0.923880 -v 0.000000 3.000000 -1.000000 -v 0.707107 3.000000 -0.707107 -v 0.923880 3.000000 -0.382683 -v 1.000000 3.000000 0.000000 -v 0.923880 3.000000 0.382684 -v 0.707107 3.000000 0.707107 -v 0.382683 3.000000 0.923880 -v 0.000000 3.000000 1.000000 -v -0.382683 3.000000 0.923880 -v -0.707107 3.000000 0.707107 -v -0.923880 3.000000 0.382684 -v -1.000000 3.000000 -0.000000 -v -0.923879 3.000000 -0.382684 -v -0.707107 3.000000 -0.707107 -v -0.382683 3.000000 -0.923880 -v 0.057403 4.000000 -0.138582 -v 0.000000 4.000000 -0.150000 -v 0.106066 4.000000 -0.106066 -v 0.138582 4.000000 -0.057403 -v 0.150000 4.000000 -0.000000 -v 0.138582 4.000000 0.057403 -v 0.106066 4.000000 0.106066 -v 0.057403 4.000000 0.138582 -v 0.000000 4.000000 0.150000 -v -0.057402 4.000000 0.138582 -v -0.106066 4.000000 0.106066 -v -0.138582 4.000000 0.057403 -v -0.150000 4.000000 -0.000000 -v -0.138582 4.000000 -0.057403 -v -0.106066 4.000000 -0.106066 -v -0.057402 4.000000 -0.138582 -v 0.057403 4.500000 -0.138582 -v 0.000000 4.500000 -0.150000 -v 0.106066 4.500000 -0.106066 -v 0.138582 4.500000 -0.057403 -v 0.150000 4.500000 -0.000000 -v 0.138582 4.500000 0.057403 -v 0.106066 4.500000 0.106066 -v 0.057403 4.500000 0.138582 -v 0.000000 4.500000 0.150000 -v -0.057402 4.500000 0.138582 -v -0.106066 4.500000 0.106066 -v -0.138582 4.500000 0.057403 -v -0.150000 4.500000 -0.000000 -v -0.138582 4.500000 -0.057403 -v -0.106066 4.500000 -0.106066 -v -0.057402 4.500000 -0.138582 -v 0.000000 4.650000 0.000000 -vt 0.763805 0.825843 -vt 0.792402 0.825843 -vt 0.788113 0.838055 -vt 0.788113 0.850999 -vt 0.768094 0.850999 -vt 0.768094 0.813631 -vt 0.788113 0.813631 -vt 0.763805 0.750495 -vt 0.768094 0.738283 -vt 0.788113 0.738283 -vt 0.768094 0.725339 -vt 0.788113 0.725339 -vt 0.768094 0.762707 -vt 0.792402 0.750495 -vt 0.516469 0.750495 -vt 0.520758 0.738283 -vt 0.540777 0.738283 -vt 0.520758 0.725339 -vt 0.540777 0.725339 -vt 0.540777 0.762707 -vt 0.520758 0.762707 -vt 0.684282 0.838787 -vt 0.688572 0.826575 -vt 0.708591 0.826575 -vt 0.688572 0.813631 -vt 0.708591 0.813631 -vt 0.688572 0.850999 -vt 0.712880 0.838787 -vt 0.545066 0.838787 -vt 0.516469 0.838787 -vt 0.520758 0.826575 -vt 0.520758 0.813631 -vt 0.540777 0.813631 -vt 0.520758 0.850999 -vt 0.712880 0.737551 -vt 0.708591 0.749763 -vt 0.688572 0.749763 -vt 0.708591 0.762707 -vt 0.688572 0.762707 -vt 0.708591 0.725339 -vt 0.684282 0.737551 -vt 0.595991 0.817073 -vt 0.624588 0.817073 -vt 0.620299 0.829285 -vt 0.620299 0.842229 -vt 0.600280 0.842229 -vt 0.620299 0.804861 -vt 0.608203 0.725339 -vt 0.620415 0.729629 -vt 0.620415 0.749647 -vt 0.633358 0.729629 -vt 0.633358 0.749647 -vt 0.595991 0.749647 -vt 0.595991 0.729629 -vt 0.725256 0.068817 -vt 0.666940 0.068817 -vt 0.671314 0.025462 -vt 0.608624 0.068817 -vt 0.612998 0.025462 -vt 0.604250 0.025462 -vt 0.550308 0.068817 -vt 0.491992 0.068817 -vt 0.496365 0.025462 -vt 0.433676 0.068817 -vt 0.438049 0.025462 -vt 0.375360 0.068817 -vt 0.379733 0.025462 -vt 0.317043 0.068817 -vt 0.321417 0.025462 -vt 0.258727 0.068817 -vt 0.263101 0.025462 -vt 0.200411 0.068817 -vt 0.204785 0.025462 -vt 0.196037 0.025462 -vt 0.142095 0.068817 -vt 0.083779 0.068817 -vt 0.088153 0.025462 -vt 0.025463 0.068817 -vt 0.029837 0.025462 -vt 0.954147 0.025462 -vt 0.958521 0.068817 -vt 0.900205 0.068817 -vt 0.841888 0.068817 -vt 0.846262 0.025462 -vt 0.608624 0.479830 -vt 0.550308 0.479830 -vt 0.783572 0.068817 -vt 0.729630 0.025462 -vt 0.837515 0.025462 -vt 0.255692 0.920518 -vt 0.079481 0.955569 -vt 0.220641 0.744308 -vt 0.433676 0.479830 -vt 0.491992 0.479830 -vt 0.467207 0.674414 -vt 0.317043 0.479830 -vt 0.258727 0.479830 -vt 0.725256 0.479830 -vt 0.666940 0.479830 -vt 0.958521 0.479830 -vt 0.900205 0.479830 -vt 0.375359 0.479830 -vt 0.142095 0.479830 -vt 0.083778 0.479830 -vt 0.783572 0.479830 -vt 0.200411 0.479830 -vt 0.841889 0.479830 -vt 0.025462 0.479830 -vt 0.351828 0.725339 -vt 0.351827 0.800069 -vt 0.343080 0.800069 -vt 0.933737 0.674415 -vt 0.408891 0.674414 -vt 0.400144 0.674414 -vt 0.875421 0.674415 -vt 0.866674 0.674415 -vt 0.350575 0.674414 -vt 0.817105 0.674415 -vt 0.808357 0.674415 -vt 0.292259 0.674414 -vt 0.700472 0.674414 -vt 0.758788 0.674415 -vt 0.233942 0.674414 -vt 0.225195 0.674414 -vt 0.642156 0.674414 -vt 0.175626 0.674414 -vt 0.583840 0.674414 -vt 0.117310 0.674415 -vt 0.108563 0.674415 -vt 0.525524 0.674414 -vt 0.516776 0.674414 -vt 0.058994 0.674415 -vt 0.050246 0.674415 -vt 0.360575 0.800069 -vt 0.356201 0.831471 -vt 0.413060 0.725339 -vt 0.413059 0.800069 -vt 0.404312 0.800069 -vt 0.343080 0.725339 -vt 0.334333 0.800069 -vt 0.404312 0.725339 -vt 0.395564 0.800069 -vt 0.334333 0.725339 -vt 0.325585 0.800069 -vt 0.395565 0.725339 -vt 0.386817 0.800069 -vt 0.465544 0.725340 -vt 0.465544 0.800070 -vt 0.456796 0.800070 -vt 0.386817 0.725339 -vt 0.378070 0.800069 -vt 0.456797 0.725340 -vt 0.448049 0.800070 -vt 0.378070 0.725339 -vt 0.369322 0.800069 -vt 0.448049 0.725340 -vt 0.439301 0.800070 -vt 0.369322 0.725339 -vt 0.430555 0.725340 -vt 0.430554 0.800069 -vt 0.421806 0.800069 -vt 0.439302 0.725340 -vt 0.360575 0.725339 -vt 0.421807 0.725339 -vt 0.364948 0.831471 -vt 0.329959 0.831471 -vt 0.461169 0.831472 -vt 0.347454 0.831471 -vt 0.434927 0.831471 -vt 0.452422 0.831472 -vt 0.443675 0.831471 -vt 0.426180 0.831471 -vt 0.417433 0.831471 -vt 0.408685 0.831471 -vt 0.399938 0.831471 -vt 0.391190 0.831471 -vt 0.382443 0.831471 -vt 0.373696 0.831471 -vt 0.338706 0.831471 -vt 0.768094 0.838055 -vt 0.788113 0.762707 -vt 0.545066 0.750495 -vt 0.708591 0.850999 -vt 0.540777 0.826575 -vt 0.540777 0.850999 -vt 0.688572 0.725339 -vt 0.600280 0.829285 -vt 0.600280 0.804861 -vt 0.608203 0.753937 -vt 0.720883 0.025462 -vt 0.662566 0.025462 -vt 0.554682 0.025462 -vt 0.545934 0.025462 -vt 0.487618 0.025462 -vt 0.429302 0.025462 -vt 0.370986 0.025462 -vt 0.312670 0.025462 -vt 0.254354 0.025462 -vt 0.146469 0.025462 -vt 0.137721 0.025462 -vt 0.079405 0.025462 -vt 0.904578 0.025462 -vt 0.895831 0.025462 -vt 0.779199 0.025462 -vt 0.787946 0.025462 -vt 0.044431 0.779359 -vt 0.079482 0.744308 -vt 0.125277 0.725339 -vt 0.174846 0.725339 -vt 0.255692 0.779359 -vt 0.274661 0.825154 -vt 0.274661 0.874723 -vt 0.220641 0.955569 -vt 0.174846 0.974538 -vt 0.125277 0.974538 -vt 0.044431 0.920518 -vt 0.025462 0.874723 -vt 0.025462 0.825154 -vt 0.458460 0.674414 -vt 0.924990 0.674415 -vt 0.341828 0.674414 -vt 0.283511 0.674414 -vt 0.691725 0.674414 -vt 0.750041 0.674415 -vt 0.633408 0.674414 -vt 0.166879 0.674414 -vt 0.575092 0.674414 -vt 0.325585 0.725339 -vn 0.489600 0.848000 -0.202800 -vn -0.923900 0.000000 0.382700 -vn 0.489600 -0.848000 -0.202800 -vn 0.202800 0.848000 -0.489600 -vn -0.382700 0.000000 0.923900 -vn 0.202800 -0.848000 -0.489600 -vn -0.202800 0.848000 -0.489600 -vn 0.382700 0.000000 0.923900 -vn -0.202800 -0.848000 -0.489600 -vn -0.489600 0.848000 -0.202800 -vn 0.923900 0.000000 0.382700 -vn -0.489600 -0.848000 -0.202800 -vn -0.489600 0.848000 0.202800 -vn 0.923900 0.000000 -0.382700 -vn -0.489600 -0.848000 0.202800 -vn -0.202800 0.848000 0.489600 -vn 0.382700 0.000000 -0.923900 -vn -0.202800 -0.848000 0.489600 -vn 0.202800 0.848000 0.489600 -vn -0.382700 0.000000 -0.923900 -vn 0.202800 -0.848000 0.489600 -vn 0.489600 0.848000 0.202800 -vn -0.923900 0.000000 -0.382700 -vn 0.489600 -0.848000 0.202800 -vn 0.168100 -0.507200 -0.845300 -vn 0.478800 -0.507200 -0.716600 -vn 0.716600 -0.507200 -0.478800 -vn 0.845300 -0.507200 -0.168100 -vn 0.845300 -0.507200 0.168100 -vn 0.716600 -0.507200 0.478800 -vn 0.478800 -0.507200 0.716600 -vn 0.168100 -0.507200 0.845300 -vn -0.168100 -0.507200 0.845300 -vn -0.478800 -0.507200 0.716600 -vn -0.716600 -0.507200 0.478800 -vn -0.845300 -0.507200 0.168100 -vn -0.845300 -0.507200 -0.168100 -vn -0.716600 -0.507200 -0.478800 -vn 0.831500 0.000000 -0.555600 -vn -0.168100 -0.507200 -0.845300 -vn -0.478800 -0.507200 -0.716600 -vn 0.000000 -1.000000 0.000000 -vn 0.753300 0.640300 0.149800 -vn 0.195100 0.000000 0.980800 -vn 0.195100 0.000000 -0.980800 -vn -0.980800 0.000000 -0.195100 -vn 0.831500 0.000000 0.555600 -vn -0.831500 0.000000 0.555600 -vn -0.195100 0.000000 -0.980800 -vn 0.980800 0.000000 -0.195100 -vn -0.195100 0.000000 0.980800 -vn -0.831500 0.000000 -0.555600 -vn 0.555600 0.000000 -0.831500 -vn 0.555600 0.000000 0.831500 -vn -0.980800 0.000000 0.195100 -vn 0.980800 0.000000 0.195100 -vn -0.555600 0.000000 0.831500 -vn -0.555600 0.000000 -0.831500 -vn -0.753300 0.640300 -0.149800 -vn 0.638600 0.640300 0.426700 -vn -0.638600 0.640300 -0.426700 -vn 0.426700 0.640300 0.638600 -vn -0.426700 0.640300 -0.638600 -vn 0.149800 0.640300 0.753300 -vn 0.149800 0.640300 -0.753300 -vn -0.149800 0.640300 -0.753300 -vn -0.149800 0.640300 0.753300 -vn 0.426700 0.640300 -0.638600 -vn -0.426700 0.640300 0.638600 -vn 0.638600 0.640300 -0.426700 -vn -0.638600 0.640300 0.426700 -vn 0.753300 0.640300 -0.149800 -vn -0.753300 0.640300 0.149800 -vn -0.139300 0.700200 0.700200 -vn 0.139300 0.700200 0.700200 -vn -0.700200 0.700200 0.139300 -vn -0.700200 0.700200 -0.139300 -vn -0.396600 0.700200 0.593600 -vn -0.139300 0.700200 -0.700200 -vn -0.593600 0.700200 -0.396600 -vn -0.396600 0.700200 -0.593600 -vn 0.139300 0.700200 -0.700200 -vn 0.396600 0.700200 -0.593600 -vn 0.593600 0.700200 -0.396600 -vn 0.700200 0.700200 -0.139300 -vn 0.700200 0.700200 0.139300 -vn 0.593600 0.700200 0.396600 -vn 0.396600 0.700200 0.593600 -vn -0.593600 0.700200 0.396600 -s off -f 1/1/1 4/2/1 5/3/1 -f 5/3/2 6/4/2 3/5/2 -f 3/6/3 6/7/3 4/2/3 -f 7/8/4 8/9/4 5/10/4 -f 8/9/5 9/11/5 6/12/5 -f 9/13/6 7/8/6 4/14/6 -f 10/15/7 11/16/7 8/17/7 -f 11/16/8 12/18/8 9/19/8 -f 9/20/9 12/21/9 10/15/9 -f 13/22/10 14/23/10 11/24/10 -f 14/23/11 15/25/11 12/26/11 -f 15/27/12 13/22/12 10/28/12 -f 13/29/13 16/30/13 17/31/13 -f 17/31/14 18/32/14 15/33/14 -f 18/34/15 16/30/15 13/29/15 -f 19/35/16 20/36/16 17/37/16 -f 20/36/17 21/38/17 18/39/17 -f 21/40/18 19/35/18 16/41/18 -f 19/42/19 22/43/19 23/44/19 -f 23/44/20 24/45/20 21/46/20 -f 24/47/21 22/43/21 19/42/21 -f 1/48/22 2/49/22 23/50/22 -f 2/49/23 3/51/23 24/52/23 -f 24/53/24 3/54/24 1/48/24 -f 26/55/25 28/56/25 27/57/25 -f 28/56/26 30/58/26 29/59/26 -f 29/60/27 30/58/27 32/61/27 -f 32/61/28 34/62/28 33/63/28 -f 34/62/29 36/64/29 35/65/29 -f 36/64/30 38/66/30 37/67/30 -f 38/66/31 40/68/31 39/69/31 -f 40/68/32 42/70/32 41/71/32 -f 42/70/33 44/72/33 43/73/33 -f 43/74/34 44/72/34 46/75/34 -f 46/75/35 48/76/35 47/77/35 -f 48/76/36 50/78/36 49/79/36 -f 49/80/37 50/81/37 52/82/37 -f 52/82/38 54/83/38 53/84/38 -f 30/58/39 59/85/39 60/86/39 -f 56/87/40 26/55/40 25/88/40 -f 53/89/41 54/83/41 56/87/41 -f 39/90/42 47/91/42 31/92/42 -f 62/93/43 61/94/43 77/95/43 -f 40/68/44 64/96/44 65/97/44 -f 26/55/45 58/98/45 57/99/45 -f 50/81/46 69/100/46 70/101/46 -f 36/64/47 62/93/47 63/102/47 -f 46/75/48 67/103/48 68/104/48 -f 56/87/49 72/105/49 58/98/49 -f 32/61/50 60/86/50 61/94/50 -f 42/70/51 65/97/51 66/106/51 -f 52/82/52 70/101/52 71/107/52 -f 28/56/53 57/99/53 59/85/53 -f 38/66/54 63/102/54 64/96/54 -f 48/76/55 68/104/55 69/108/55 -f 34/62/56 61/94/56 62/93/56 -f 44/72/57 66/106/57 67/103/57 -f 54/83/58 71/107/58 72/105/58 -f 82/109/57 98/110/57 99/111/57 -f 70/101/59 69/100/59 85/112/59 -f 62/93/60 78/113/60 79/114/60 -f 70/101/61 86/115/61 87/116/61 -f 64/96/62 63/102/62 79/117/62 -f 71/107/63 87/118/63 88/119/63 -f 65/97/64 64/96/64 80/120/64 -f 57/99/65 58/98/65 74/121/65 -f 58/98/66 72/105/66 88/122/66 -f 65/97/67 81/123/67 82/124/67 -f 59/85/68 57/99/68 73/125/68 -f 67/103/69 66/106/69 82/126/69 -f 60/86/70 59/85/70 75/127/70 -f 67/103/71 83/128/71 84/129/71 -f 60/86/72 76/130/72 77/131/72 -f 68/104/73 84/132/73 85/133/73 -f 97/134/74 105/135/74 98/110/74 -f 75/136/39 91/137/39 92/138/39 -f 83/139/48 99/111/48 100/140/48 -f 76/141/50 92/138/50 93/142/50 -f 84/143/55 100/140/55 101/144/55 -f 77/145/56 93/142/56 94/146/56 -f 85/147/46 101/148/46 102/149/46 -f 78/150/47 94/146/47 95/151/47 -f 86/152/52 102/149/52 103/153/52 -f 79/154/54 95/151/54 96/155/54 -f 87/156/58 103/153/58 104/157/58 -f 80/158/44 96/155/44 97/134/44 -f 74/159/45 90/160/45 89/161/45 -f 88/162/49 104/157/49 90/160/49 -f 81/163/51 97/134/51 98/110/51 -f 73/164/53 89/161/53 91/137/53 -f 97/134/75 96/155/75 105/165/75 -f 100/140/76 105/166/76 101/144/76 -f 101/148/77 105/167/77 102/149/77 -f 98/110/78 105/168/78 99/111/78 -f 104/157/79 105/169/79 90/160/79 -f 102/149/80 105/170/80 103/153/80 -f 103/153/81 105/171/81 104/157/81 -f 90/160/82 105/172/82 89/161/82 -f 89/161/83 105/173/83 91/137/83 -f 91/137/84 105/174/84 92/138/84 -f 92/138/85 105/175/85 93/142/85 -f 93/142/86 105/176/86 94/146/86 -f 94/146/87 105/177/87 95/151/87 -f 95/151/88 105/178/88 96/155/88 -f 99/111/89 105/179/89 100/140/89 -f 2/180/1 1/1/1 5/3/1 -f 2/180/2 5/3/2 3/5/2 -f 1/1/3 3/6/3 4/2/3 -f 4/14/4 7/8/4 5/10/4 -f 5/10/5 8/9/5 6/12/5 -f 6/181/6 9/13/6 4/14/6 -f 7/182/7 10/15/7 8/17/7 -f 8/17/8 11/16/8 9/19/8 -f 7/182/9 9/20/9 10/15/9 -f 10/28/10 13/22/10 11/24/10 -f 11/24/11 14/23/11 12/26/11 -f 12/183/12 15/27/12 10/28/12 -f 14/184/13 13/29/13 17/31/13 -f 14/184/14 17/31/14 15/33/14 -f 15/185/15 18/34/15 13/29/15 -f 16/41/16 19/35/16 17/37/16 -f 17/37/17 20/36/17 18/39/17 -f 18/186/18 21/40/18 16/41/18 -f 20/187/19 19/42/19 23/44/19 -f 20/187/20 23/44/20 21/46/20 -f 21/188/21 24/47/21 19/42/21 -f 22/189/22 1/48/22 23/50/22 -f 23/50/23 2/49/23 24/52/23 -f 22/189/24 24/53/24 1/48/24 -f 25/190/25 26/55/25 27/57/25 -f 27/191/26 28/56/26 29/59/26 -f 31/192/27 29/60/27 32/61/27 -f 31/193/28 32/61/28 33/63/28 -f 33/194/29 34/62/29 35/65/29 -f 35/195/30 36/64/30 37/67/30 -f 37/196/31 38/66/31 39/69/31 -f 39/197/32 40/68/32 41/71/32 -f 41/198/33 42/70/33 43/73/33 -f 45/199/34 43/74/34 46/75/34 -f 45/200/35 46/75/35 47/77/35 -f 47/201/36 48/76/36 49/79/36 -f 51/202/37 49/80/37 52/82/37 -f 51/203/38 52/82/38 53/84/38 -f 32/61/39 30/58/39 60/86/39 -f 55/204/40 56/87/40 25/88/40 -f 55/205/41 53/89/41 56/87/41 -f 55/206/42 25/207/42 31/92/42 -f 27/208/42 29/209/42 31/92/42 -f 31/92/42 33/210/42 39/90/42 -f 35/211/42 37/212/42 39/90/42 -f 39/90/42 41/213/42 43/214/42 -f 43/214/42 45/215/42 39/90/42 -f 47/91/42 49/216/42 51/217/42 -f 51/217/42 53/218/42 47/91/42 -f 25/207/42 27/208/42 31/92/42 -f 33/210/42 35/211/42 39/90/42 -f 39/90/42 45/215/42 47/91/42 -f 47/91/42 53/218/42 55/206/42 -f 55/206/42 31/92/42 47/91/42 -f 78/219/43 62/93/43 77/95/43 -f 42/70/44 40/68/44 65/97/44 -f 28/56/45 26/55/45 57/99/45 -f 52/82/46 50/81/46 70/101/46 -f 38/66/47 36/64/47 63/102/47 -f 48/76/48 46/75/48 68/104/48 -f 26/55/49 56/87/49 58/98/49 -f 34/62/50 32/61/50 61/94/50 -f 44/72/51 42/70/51 66/106/51 -f 54/83/52 52/82/52 71/107/52 -f 30/58/53 28/56/53 59/85/53 -f 40/68/54 38/66/54 64/96/54 -f 50/78/55 48/76/55 69/108/55 -f 36/64/56 34/62/56 62/93/56 -f 46/75/57 44/72/57 67/103/57 -f 56/87/58 54/83/58 72/105/58 -f 83/139/57 82/109/57 99/111/57 -f 86/220/59 70/101/59 85/112/59 -f 63/102/60 62/93/60 79/114/60 -f 71/107/61 70/101/61 87/116/61 -f 80/221/62 64/96/62 79/117/62 -f 72/105/63 71/107/63 88/119/63 -f 81/222/64 65/97/64 80/120/64 -f 73/223/65 57/99/65 74/121/65 -f 74/224/66 58/98/66 88/122/66 -f 66/106/67 65/97/67 82/124/67 -f 75/225/68 59/85/68 73/125/68 -f 83/226/69 67/103/69 82/126/69 -f 76/227/70 60/86/70 75/127/70 -f 68/104/71 67/103/71 84/129/71 -f 61/94/72 60/86/72 77/131/72 -f 69/108/73 68/104/73 85/133/73 -f 76/141/39 75/136/39 92/138/39 -f 84/143/48 83/139/48 100/140/48 -f 77/145/50 76/141/50 93/142/50 -f 85/228/55 84/143/55 101/144/55 -f 78/150/56 77/145/56 94/146/56 -f 86/152/46 85/147/46 102/149/46 -f 79/154/47 78/150/47 95/151/47 -f 87/156/52 86/152/52 103/153/52 -f 80/158/54 79/154/54 96/155/54 -f 88/162/58 87/156/58 104/157/58 -f 81/163/44 80/158/44 97/134/44 -f 73/164/45 74/159/45 89/161/45 -f 74/159/49 88/162/49 90/160/49 -f 82/109/51 81/163/51 98/110/51 -f 75/136/53 73/164/53 91/137/53 +v 0.000000 0.125000 -1.000000 +v 1.000000 0.125000 -0.000000 +v 0.000000 0.125000 1.000000 +v -1.000000 0.125000 -0.000000 +v 0.000000 3.625000 -1.000000 +v 1.000000 3.625000 -0.000000 +v 0.000000 3.625000 1.000000 +v -1.000000 3.625000 -0.000000 +v -0.718750 0.125000 -0.718750 +v -0.718750 3.625000 -0.718750 +v -0.937500 0.125000 -0.375000 +v -0.937500 3.625000 -0.375000 +v -0.375000 0.125000 -0.937500 +v -0.375000 3.625000 -0.937500 +v 0.375000 0.125000 -0.937500 +v 0.375000 0.125000 0.937500 +v 0.375000 3.625000 -0.937500 +v 0.375000 3.625000 0.937500 +v 0.718750 0.125000 -0.718750 +v 0.718750 0.125000 0.718750 +v 0.718750 3.625000 -0.718750 +v 0.718750 3.625000 0.718750 +v 0.937500 0.125000 0.375000 +v -0.937500 0.125000 0.375000 +v 0.937500 3.625000 0.375000 +v -0.937500 3.625000 0.375000 +v -0.375000 0.125000 0.937500 +v -0.375000 3.625000 0.937500 +v -0.718750 0.125000 0.718750 +v -0.718750 3.625000 0.718750 +v 0.937500 0.125000 -0.375000 +v 0.937500 3.625000 -0.375000 +v 0.000000 -0.000000 -0.875000 +v 0.875000 -0.000000 -0.000000 +v 0.000000 0.000000 0.875000 +v -0.875000 -0.000000 -0.000000 +v -0.625000 0.000000 -0.625000 +v -0.812500 0.000000 -0.312500 +v -0.312500 -0.000000 -0.812500 +v 0.312500 -0.000000 -0.812500 +v 0.312500 0.000000 0.812500 +v 0.625000 -0.000000 -0.625000 +v 0.625000 0.000000 0.625000 +v 0.812500 -0.000000 0.312500 +v -0.812500 -0.000000 0.312500 +v -0.312500 0.000000 0.812500 +v -0.625000 0.000000 0.625000 +v 0.812500 0.000000 -0.312500 +v 0.000000 3.750000 -0.875000 +v 0.875000 3.750000 -0.000000 +v 0.000000 3.750000 0.875000 +v -0.875000 3.750000 -0.000000 +v -0.625000 3.750000 -0.625000 +v -0.812500 3.750000 -0.312500 +v -0.312500 3.750000 -0.812500 +v 0.312500 3.750000 -0.812500 +v 0.312500 3.750000 0.812500 +v 0.625000 3.750000 -0.625000 +v 0.625000 3.750000 0.625000 +v 0.812500 3.750000 0.312500 +v -0.812500 3.750000 0.312500 +v -0.312500 3.750000 0.812500 +v -0.625000 3.750000 0.625000 +v 0.812500 3.750000 -0.312500 +v 0.000000 3.375000 -1.000000 +v 1.000000 3.375000 -0.000000 +v 0.000000 3.375000 1.000000 +v -1.000000 3.375000 -0.000000 +v -0.718750 3.375000 -0.718750 +v -0.937500 3.375000 -0.375000 +v -0.375000 3.375000 -0.937500 +v 0.375000 3.375000 -0.937500 +v 0.375000 3.375000 0.937500 +v 0.718750 3.375000 -0.718750 +v 0.718750 3.375000 0.718750 +v 0.937500 3.375000 0.375000 +v -0.937500 3.375000 0.375000 +v -0.375000 3.375000 0.937500 +v -0.718750 3.375000 0.718750 +v 0.937500 3.375000 -0.375000 +v 0.000000 3.125000 -1.000000 +v 1.000000 3.125000 -0.000000 +v 0.000000 3.125000 1.000000 +v -1.000000 3.125000 -0.000000 +v -0.718750 3.125000 -0.718750 +v -0.937500 3.125000 -0.375000 +v -0.375000 3.125000 -0.937500 +v 0.375000 3.125000 -0.937500 +v 0.375000 3.125000 0.937500 +v 0.718750 3.125000 -0.718750 +v 0.718750 3.125000 0.718750 +v 0.937500 3.125000 0.375000 +v -0.937500 3.125000 0.375000 +v -0.375000 3.125000 0.937500 +v -0.718750 3.125000 0.718750 +v 0.937500 3.125000 -0.375000 +v 0.000000 0.625000 -1.000000 +v 1.000000 0.625000 -0.000000 +v 0.000000 0.625000 1.000000 +v -1.000000 0.625000 -0.000000 +v -0.718750 0.625000 -0.718750 +v -0.937500 0.625000 -0.375000 +v -0.375000 0.625000 -0.937500 +v 0.375000 0.625000 -0.937500 +v 0.375000 0.625000 0.937500 +v 0.718750 0.625000 -0.718750 +v 0.718750 0.625000 0.718750 +v 0.937500 0.625000 0.375000 +v -0.937500 0.625000 0.375000 +v -0.375000 0.625000 0.937500 +v -0.718750 0.625000 0.718750 +v 0.937500 0.625000 -0.375000 +v 0.000000 0.375000 -1.000000 +v 1.000000 0.375000 -0.000000 +v 0.000000 0.375000 1.000000 +v -1.000000 0.375000 -0.000000 +v -0.718750 0.375000 -0.718750 +v -0.937500 0.375000 -0.375000 +v -0.375000 0.375000 -0.937500 +v 0.375000 0.375000 -0.937500 +v 0.375000 0.375000 0.937500 +v 0.718750 0.375000 -0.718750 +v 0.718750 0.375000 0.718750 +v 0.937500 0.375000 0.375000 +v -0.937500 0.375000 0.375000 +v -0.375000 0.375000 0.937500 +v -0.718750 0.375000 0.718750 +v 0.937500 0.375000 -0.375000 +vn 0.9270 0.3749 -0.0000 +vn 0.9338 -0.0000 0.3578 +vn 1.0000 -0.0000 -0.0000 +vn -0.6548 0.3776 -0.6547 +vn -0.3299 0.3868 -0.8611 +vn -0.3578 -0.0000 -0.9338 +vn -0.9271 0.3749 -0.0000 +vn -0.8612 0.3868 -0.3299 +vn -0.9338 -0.0000 -0.3578 +vn -0.3299 0.3868 0.8612 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.3749 0.9271 +vn 0.3299 0.3868 -0.8612 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 0.3749 -0.9271 +vn -0.6547 0.3776 0.6548 +vn -0.8611 0.3868 0.3299 +vn -0.9338 -0.0000 0.3578 +vn -0.8612 0.3867 -0.3299 +vn -0.6548 0.3776 -0.6548 +vn -0.7071 -0.0000 -0.7071 +vn 0.6547 0.3776 -0.6548 +vn 0.3578 -0.0000 -0.9338 +vn 0.3299 0.3867 -0.8612 +vn 0.6548 0.3776 0.6547 +vn 0.8612 0.3867 0.3299 +vn 0.8611 0.3868 -0.3299 +vn 0.7071 -0.0000 -0.7071 +vn 0.6548 0.3776 -0.6548 +vn -0.9270 0.3749 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.3749 0.9270 +vn 0.3578 -0.0000 0.9338 +vn 0.3299 0.3868 0.8612 +vn -0.0000 0.3749 -0.9270 +vn -0.3299 0.3868 -0.8612 +vn -0.3578 -0.0000 0.9338 +vn -0.3299 0.3867 0.8612 +vn 0.3299 0.3868 0.8611 +vn 0.7071 -0.0000 0.7071 +vn 0.6548 0.3776 0.6548 +vn 0.9338 -0.0000 -0.3578 +vn 0.8612 0.3868 -0.3299 +vn -0.1340 0.9188 -0.3713 +vn -0.3298 0.3868 -0.8612 +vn 0.1340 0.9188 -0.3713 +vn -0.0000 0.3750 -0.9270 +vn -0.0000 0.9065 -0.4222 +vn 0.2910 0.9114 -0.2910 +vn 0.3299 0.3868 -0.8611 +vn 0.3713 0.9188 -0.1340 +vn 0.8612 0.3868 -0.3298 +vn 0.3713 0.9188 0.1340 +vn 0.9270 0.3750 -0.0000 +vn 0.4222 0.9065 -0.0000 +vn 0.2910 0.9114 0.2910 +vn 0.8611 0.3868 0.3299 +vn 0.1340 0.9188 0.3713 +vn -0.0000 0.3750 0.9270 +vn 0.0001 0.9065 0.4222 +vn -0.1340 0.9188 0.3713 +vn -0.0000 0.9065 0.4222 +vn -0.2910 0.9114 0.2910 +vn -0.3299 0.3868 0.8611 +vn -0.3713 0.9188 0.1340 +vn -0.4222 0.9065 0.0001 +vn -0.9270 0.3750 -0.0000 +vn -0.4222 0.9065 -0.0000 +vn -0.3713 0.9188 -0.1340 +vn -0.8611 0.3868 -0.3299 +vn -0.2910 0.9114 -0.2910 +vn -0.6547 0.3776 -0.6548 +vn -0.0000 -0.3749 -0.9270 +vn -0.1340 -0.9188 -0.3713 +vn -0.3299 -0.3868 -0.8611 +vn -0.2910 -0.9114 -0.2910 +vn -0.8612 -0.3868 -0.3298 +vn -0.6548 -0.3776 -0.6547 +vn -0.3713 -0.9188 -0.1340 +vn -0.4222 -0.9065 -0.0001 +vn -0.9270 -0.3750 -0.0000 +vn -0.3713 -0.9188 0.1340 +vn -0.8611 -0.3868 0.3299 +vn -0.9270 -0.3749 -0.0000 +vn -0.2910 -0.9114 0.2910 +vn -0.6547 -0.3776 0.6548 +vn -0.1340 -0.9188 0.3713 +vn -0.3299 -0.3868 0.8611 +vn -0.0001 -0.9065 0.4222 +vn -0.0000 -0.3750 0.9270 +vn 0.1340 -0.9188 0.3713 +vn 0.3299 -0.3868 0.8611 +vn -0.0000 -0.3749 0.9270 +vn 0.2910 -0.9114 0.2910 +vn 0.6548 -0.3776 0.6547 +vn 0.8612 -0.3868 0.3298 +vn 0.3713 -0.9188 0.1340 +vn 0.4222 -0.9065 0.0001 +vn 0.9270 -0.3750 -0.0000 +vn 0.3713 -0.9188 -0.1340 +vn 0.8611 -0.3868 -0.3299 +vn 0.9270 -0.3749 -0.0000 +vn 0.2910 -0.9114 -0.2910 +vn 0.3299 -0.3868 -0.8611 +vn 0.1340 -0.9188 -0.3713 +vn 0.3298 -0.3868 -0.8612 +vn -0.1340 0.9188 -0.3712 +vn -0.3712 0.9188 -0.1340 +vn -0.1339 0.9188 0.3712 +vn 0.9338 0.0001 0.3578 +vn -0.7071 -0.0000 0.7071 +vn 0.7071 0.0001 -0.7071 +vn 0.7071 0.0001 0.7071 +vn 0.8612 -0.3868 0.3299 +vn 0.9271 -0.3749 -0.0000 +vn -0.9271 -0.3749 -0.0000 +vn -0.8612 -0.3868 0.3299 +vn 0.6548 -0.3776 -0.6547 +vn 0.8612 -0.3867 -0.3299 +vn 0.3299 -0.3867 0.8612 +vn 0.6548 -0.3776 0.6548 +vn 0.6547 -0.3776 0.6548 +vn 0.8611 -0.3868 0.3299 +vn -0.3299 -0.3868 -0.8612 +vn -0.0000 -0.3749 -0.9271 +vn 0.6548 -0.3776 -0.6548 +vn -0.0000 -0.3749 0.9271 +vn 0.3299 -0.3868 0.8612 +vn -0.6547 -0.3776 -0.6548 +vn -0.8611 -0.3868 -0.3299 +vn -0.6548 -0.3776 0.6548 +vn 0.3299 -0.3868 -0.8612 +vn -0.3299 -0.3868 0.8612 +vn -0.3299 -0.3867 -0.8612 +vn -0.6548 -0.3776 -0.6548 +vn 0.8612 -0.3868 -0.3299 +vn -0.6548 -0.3776 0.6547 +vn 0.9271 0.3749 -0.0000 +vn 0.8612 0.3868 0.3299 +vn -0.3298 0.3868 0.8612 +vn 0.3298 0.3868 -0.8612 +vn -0.6548 0.3776 0.6548 +vn -0.8612 0.3868 0.3299 +vn -0.0000 0.0001 -1.0000 +vn -0.7071 0.0001 0.7071 +vn -0.0001 0.9065 -0.4222 +vn 0.6548 0.3776 -0.6547 +vn 0.4222 0.9065 -0.0001 +vn 0.6547 0.3776 0.6548 +vn 0.3298 0.3868 0.8612 +vn -0.6548 0.3776 0.6547 +vn -0.8612 0.3868 0.3298 +vn -0.0000 -0.3750 -0.9270 +vn -0.0000 -0.9065 -0.4222 +vn -0.4222 -0.9065 -0.0000 +vn -0.3298 -0.3868 0.8612 +vn -0.0000 -0.9065 0.4222 +vn 0.4222 -0.9065 -0.0000 +vn 0.6547 -0.3776 -0.6548 +vn 0.0001 -0.9065 -0.4222 +vn -0.1339 -0.9188 -0.3712 +vn -0.0000 -0.9065 -0.4221 +vn 0.1340 -0.9188 -0.3712 +vn 0.2909 -0.9114 -0.2910 +vn 0.3712 -0.9188 -0.1339 +vn 0.4221 -0.9065 -0.0000 +vn 0.3712 -0.9188 0.1340 +vn 0.2910 -0.9114 0.2909 +vn 0.1339 -0.9188 0.3712 +vn -0.0000 -0.9065 0.4221 +vn -0.1340 -0.9188 0.3712 +vn -0.2909 -0.9114 0.2910 +vn -0.3712 -0.9188 0.1339 +vn -0.4221 -0.9065 -0.0000 +vn -0.3712 -0.9188 -0.1340 +vn -0.2910 -0.9114 -0.2909 +vn 0.3712 -0.9188 0.1339 +vn -0.1340 -0.9188 -0.3712 +vn 0.1339 -0.9188 -0.3712 +vn 0.1340 -0.9188 0.3712 +vn -0.1339 -0.9188 0.3712 +vn -0.0000 0.9065 -0.4221 +vn 0.1339 0.9188 -0.3712 +vn -0.2909 0.9114 -0.2910 +vn -0.3712 0.9188 -0.1339 +vn -0.4221 0.9065 -0.0000 +vn -0.3712 0.9188 0.1340 +vn -0.2910 0.9114 0.2909 +vn -0.0000 0.9065 0.4221 +vn -0.3712 0.9188 0.1339 +vn -0.1340 0.9188 0.3712 +vn 0.2909 0.9114 0.2910 +vn 0.3712 0.9188 0.1339 +vn 0.3712 0.9188 -0.1340 +vn 0.4221 0.9065 -0.0000 +vn 0.3712 0.9188 0.1340 +vn 0.2910 0.9114 -0.2909 +vn 0.1340 0.9188 -0.3712 +vn 0.3712 0.9188 -0.1339 +vn 0.3578 -0.0001 -0.9338 +vn 0.7071 -0.0001 -0.7071 +vn -1.0000 0.0001 -0.0000 +vn -0.7071 0.0001 -0.7071 +vn -0.3298 -0.3868 -0.8612 +vn -0.8612 -0.3867 0.3299 +vn -0.0000 -0.0001 -1.0000 +vn -0.8612 -0.3868 -0.3299 +vn -0.3578 0.0001 0.9338 +vn 0.3712 -0.9188 -0.1340 +vn -0.3712 -0.9188 0.1340 +vn -0.3712 -0.9188 -0.1339 +vt 0.562500 0.390625 +vt 0.515625 0.359375 +vt 0.562500 0.359375 +vt 0.093750 0.390625 +vt 0.046875 0.390625 +vt 0.046875 0.359375 +vt 0.187500 0.390625 +vt 0.140625 0.390625 +vt 0.140625 0.359375 +vt 0.328125 0.390625 +vt 0.375000 0.359375 +vt 0.375000 0.390625 +vt 0.703125 0.390625 +vt 0.750000 0.359375 +vt 0.750000 0.390625 +vt 0.281250 0.390625 +vt 0.234375 0.390625 +vt 0.234375 0.359375 +vt 0.093750 0.359375 +vt 0.656250 0.390625 +vt 0.703125 0.359375 +vt 0.468750 0.390625 +vt 0.515625 0.390625 +vt 0.609375 0.390625 +vt 0.656250 0.359375 +vt 0.187500 0.359375 +vt 0.421875 0.359375 +vt 0.421875 0.390625 +vt 0.000000 0.390625 +vt 0.328125 0.359375 +vt 0.468750 0.359375 +vt 0.609375 0.359375 +vt 0.046875 0.406250 +vt 0.703125 0.406250 +vt 0.750000 0.406250 +vt 0.656250 0.406250 +vt 0.609375 0.406250 +vt 0.515625 0.406250 +vt 0.562500 0.406250 +vt 0.468750 0.406250 +vt 0.421875 0.406250 +vt 0.375000 0.406250 +vt 0.328125 0.406250 +vt 0.281250 0.406250 +vt 0.234375 0.406250 +vt 0.187500 0.406250 +vt 0.140625 0.406250 +vt 0.093750 0.406250 +vt 0.000000 0.015625 +vt 0.046875 0.000000 +vt 0.046875 0.015625 +vt 0.093750 0.000000 +vt 0.140625 0.015625 +vt 0.093750 0.015625 +vt 0.140625 0.000000 +vt 0.187500 0.000000 +vt 0.187500 0.015625 +vt 0.234375 0.000000 +vt 0.234375 0.015625 +vt 0.281250 0.000000 +vt 0.281250 0.015625 +vt 0.328125 0.000000 +vt 0.328125 0.015625 +vt 0.375000 0.000000 +vt 0.375000 0.015625 +vt 0.421875 0.000000 +vt 0.421875 0.015625 +vt 0.468750 0.000000 +vt 0.468750 0.015625 +vt 0.515625 0.015625 +vt 0.515625 0.000000 +vt 0.562500 0.000000 +vt 0.562500 0.015625 +vt 0.609375 0.000000 +vt 0.609375 0.015625 +vt 0.656250 0.000000 +vt 0.703125 0.015625 +vt 0.703125 0.000000 +vt 0.750000 0.015625 +vt 0.757812 0.289062 +vt 0.820312 0.226562 +vt 0.960938 0.289062 +vt 0.046875 0.046875 +vt 0.093750 0.046875 +vt 0.515625 0.046875 +vt 0.328125 0.046875 +vt 0.609375 0.046875 +vt 0.703125 0.046875 +vt 0.281250 0.359375 +vt 0.281250 0.046875 +vt 0.562500 0.046875 +vt 0.656250 0.046875 +vt 0.234375 0.046875 +vt 0.000000 0.359375 +vt 0.000000 0.046875 +vt 0.375000 0.046875 +vt 0.187500 0.046875 +vt 0.140625 0.046875 +vt 0.421875 0.046875 +vt 0.656250 0.015625 +vt 0.468750 0.046875 +vt 0.000000 0.406250 +vt 0.000000 0.000000 +vt 0.750000 0.000000 +vt 0.960938 0.070312 +vt 0.968750 0.109375 +vt 0.960938 0.148438 +vt 0.937500 0.187500 +vt 0.898438 0.210938 +vt 0.859375 0.218750 +vt 0.820312 0.210938 +vt 0.781250 0.187500 +vt 0.757812 0.148438 +vt 0.750000 0.109375 +vt 0.757812 0.070312 +vt 0.781250 0.031250 +vt 0.820312 0.007812 +vt 0.859375 -0.000000 +vt 0.898438 0.007812 +vt 0.937500 0.031250 +vt 0.750000 0.328125 +vt 0.757812 0.367188 +vt 0.781250 0.250000 +vt 0.898438 0.226562 +vt 0.937500 0.250000 +vt 0.960938 0.367188 +vt 0.968750 0.328125 +vt 0.937500 0.406250 +vt 0.898438 0.429688 +vt 0.820312 0.429688 +vt 0.859375 0.437500 +vt 0.781250 0.406250 +vt 0.750000 0.046875 +s 0 +f 6/1/1 76/2/2 66/3/3 +f 10/4/4 14/5/5 71/6/6 +f 8/7/7 12/8/8 70/9/9 +f 28/10/10 67/11/11 7/12/12 +f 17/13/13 65/14/14 5/15/15 +f 30/16/16 26/17/17 77/18/18 +f 12/8/19 10/4/20 69/19/21 +f 21/20/22 72/21/23 17/13/24 +f 22/22/25 76/2/2 25/23/26 +f 32/24/27 74/25/28 21/20/29 +f 8/7/30 68/26/31 77/18/18 +f 7/12/32 73/27/33 18/28/34 +f 5/29/35 71/6/6 14/5/36 +f 30/16/16 78/30/37 28/10/38 +f 18/28/39 75/31/40 22/22/41 +f 6/1/1 80/32/42 32/24/43 +f 55/33/44 5/29/35 14/5/45 +f 56/34/46 5/15/47 49/35/48 +f 58/36/49 17/13/50 56/34/46 +f 32/24/27 58/36/49 64/37/51 +f 64/37/51 6/1/1 32/24/52 +f 60/38/53 6/1/54 50/39/55 +f 59/40/56 25/23/57 60/38/53 +f 18/28/39 59/40/56 57/41/58 +f 7/12/59 57/41/58 51/42/60 +f 62/43/61 7/12/59 51/42/62 +f 63/44/63 28/10/64 62/43/61 +f 63/44/63 61/45/65 26/17/17 +f 61/45/65 52/46/66 8/7/67 +f 8/7/67 52/46/68 54/47/69 +f 12/8/70 54/47/69 53/48/71 +f 14/5/45 10/4/72 53/48/71 +f 1/49/73 39/50/74 13/51/75 +f 13/51/75 39/50/74 37/52/76 +f 11/53/77 9/54/78 37/52/76 +f 38/55/79 36/56/80 4/57/81 +f 45/58/82 24/59/83 4/57/84 +f 47/60/85 29/61/86 24/59/83 +f 47/60/85 46/62/87 27/63/88 +f 46/62/87 35/64/89 3/65/90 +f 41/66/91 16/67/92 3/65/93 +f 43/68/94 20/69/95 16/67/92 +f 23/70/96 20/69/95 43/68/94 +f 44/71/97 34/72/98 2/73/99 +f 48/74/100 31/75/101 2/73/102 +f 42/76/103 31/75/101 48/74/100 +f 15/77/104 42/76/103 40/78/105 +f 40/78/105 1/79/73 15/77/106 +f 55/80/107 54/81/108 62/82/109 +f 87/6/6 103/83/6 101/84/21 +f 91/31/40 108/85/2 92/2/110 +f 83/11/11 94/30/37 110/86/37 +f 82/3/3 112/87/42 96/32/42 +f 81/14/14 88/21/23 104/88/23 +f 95/89/111 111/90/111 110/86/37 +f 82/3/3 108/85/2 98/91/3 +f 88/21/23 90/25/28 106/92/28 +f 84/26/31 109/93/18 93/18/18 +f 81/94/14 97/95/14 103/83/6 +f 90/25/112 96/32/42 112/87/42 +f 89/27/33 83/11/11 99/96/11 +f 86/9/9 100/97/31 84/26/31 +f 85/19/21 102/98/9 86/9/9 +f 91/31/113 89/27/33 105/99/33 +f 93/18/18 111/90/111 95/89/111 +f 23/70/114 2/73/115 114/91/3 +f 4/57/116 24/59/117 125/93/18 +f 19/100/118 128/87/42 31/75/119 +f 16/67/120 20/69/121 123/101/40 +f 20/69/122 23/70/123 124/85/2 +f 13/51/124 113/95/14 1/49/125 +f 15/77/104 122/92/28 19/100/126 +f 3/65/127 16/67/128 121/99/33 +f 9/54/129 11/53/130 118/98/9 +f 29/61/131 127/90/111 125/93/18 +f 1/79/73 120/88/23 15/77/132 +f 27/63/133 3/65/127 115/96/11 +f 13/51/134 9/54/135 117/84/21 +f 2/73/115 31/75/136 128/87/42 +f 4/57/84 116/97/31 118/98/9 +f 29/61/137 27/63/88 126/86/37 +f 6/1/138 25/23/139 76/2/2 +f 10/4/20 71/6/6 69/19/21 +f 8/7/30 70/9/9 68/26/31 +f 28/10/140 78/30/37 67/11/11 +f 17/13/141 72/21/23 65/14/14 +f 30/16/142 77/18/18 79/89/111 +f 12/8/19 69/19/21 70/9/9 +f 21/20/29 74/25/28 72/21/23 +f 22/22/41 75/31/40 76/2/2 +f 32/24/43 80/32/42 74/25/28 +f 8/7/30 77/18/18 26/17/143 +f 7/12/32 67/11/11 73/27/33 +f 5/29/35 65/94/144 71/6/6 +f 30/16/142 79/89/145 78/30/37 +f 18/28/34 73/27/33 75/31/40 +f 6/1/1 66/3/3 80/32/42 +f 55/33/44 49/102/146 5/29/47 +f 56/34/46 17/13/50 5/15/35 +f 58/36/49 21/20/147 17/13/50 +f 32/24/52 21/20/147 58/36/49 +f 64/37/51 50/39/148 6/1/54 +f 60/38/53 25/23/57 6/1/1 +f 59/40/56 22/22/149 25/23/57 +f 18/28/150 22/22/149 59/40/56 +f 7/12/32 18/28/150 57/41/58 +f 62/43/61 28/10/64 7/12/32 +f 63/44/63 30/16/151 28/10/64 +f 63/44/63 26/17/152 30/16/151 +f 61/45/65 8/7/30 26/17/152 +f 8/7/30 54/47/69 12/8/70 +f 12/8/70 53/48/71 10/4/72 +f 14/5/5 53/48/71 55/33/44 +f 1/49/153 33/103/154 39/50/74 +f 13/51/75 37/52/76 9/54/78 +f 11/53/130 37/52/76 38/55/79 +f 38/55/79 4/57/84 11/53/77 +f 45/58/82 4/57/81 36/56/155 +f 47/60/85 24/59/83 45/58/82 +f 47/60/85 27/63/156 29/61/86 +f 46/62/87 3/65/93 27/63/156 +f 41/66/91 3/65/90 35/64/157 +f 43/68/94 16/67/92 41/66/91 +f 23/70/123 43/68/94 44/71/97 +f 44/71/97 2/73/102 23/70/96 +f 48/74/100 2/73/99 34/72/158 +f 42/76/103 19/100/159 31/75/101 +f 15/77/106 19/100/159 42/76/103 +f 40/78/105 33/104/160 1/79/153 +f 39/105/161 33/106/162 40/107/163 +f 40/107/163 42/108/164 48/109/165 +f 48/109/165 34/110/166 44/111/167 +f 44/111/167 43/112/168 41/113/169 +f 41/113/169 35/114/170 46/115/171 +f 46/115/171 47/116/172 45/117/173 +f 45/117/173 36/118/174 38/119/175 +f 38/119/175 37/120/176 39/105/161 +f 41/113/169 40/107/163 44/111/177 +f 39/105/178 40/107/179 41/113/180 +f 39/105/178 41/113/180 46/115/181 +f 49/121/182 55/80/107 56/122/183 +f 55/80/107 53/123/184 54/81/185 +f 54/81/185 52/110/186 61/124/187 +f 61/124/187 63/125/188 62/82/109 +f 57/126/58 62/82/109 51/127/189 +f 61/124/190 62/82/191 54/81/108 +f 57/126/58 59/128/192 60/129/193 +f 64/130/194 60/129/193 50/131/195 +f 57/126/58 60/129/196 64/130/194 +f 64/130/194 58/132/197 56/122/183 +f 57/126/58 55/80/107 62/82/191 +f 56/122/198 55/80/107 57/126/58 +f 56/122/183 57/126/58 64/130/199 +f 87/6/6 101/84/21 85/19/21 +f 91/31/40 107/101/40 108/85/2 +f 83/11/11 110/86/37 99/96/11 +f 82/3/3 98/91/3 112/87/42 +f 81/14/14 104/88/200 97/133/14 +f 95/89/111 110/86/37 94/30/37 +f 82/3/3 92/2/2 108/85/2 +f 88/21/23 106/92/201 104/88/23 +f 84/26/31 100/97/202 109/93/18 +f 81/94/14 103/83/6 87/6/6 +f 90/25/28 112/87/42 106/92/28 +f 89/27/33 99/96/11 105/99/33 +f 86/9/9 102/98/9 100/97/31 +f 85/19/21 101/84/203 102/98/9 +f 91/31/40 105/99/33 107/101/40 +f 93/18/18 109/93/18 111/90/111 +f 23/70/96 114/91/3 124/85/2 +f 4/57/84 125/93/18 116/97/31 +f 19/100/126 122/92/28 128/87/42 +f 16/67/120 123/101/40 121/99/33 +f 20/69/121 124/85/2 123/101/40 +f 13/51/204 119/83/6 113/95/14 +f 15/77/132 120/88/23 122/92/28 +f 3/65/93 121/99/33 115/96/11 +f 9/54/135 118/98/9 117/84/21 +f 29/61/137 125/93/18 24/59/205 +f 1/79/73 113/133/206 120/88/23 +f 27/63/156 115/96/11 126/86/37 +f 13/51/134 117/84/21 119/83/6 +f 2/73/102 128/87/42 114/91/3 +f 4/57/84 118/98/9 11/53/207 +f 29/61/131 126/86/208 127/90/111 +f 48/109/209 44/111/167 40/107/163 +f 46/115/171 45/117/210 39/105/161 +f 38/119/211 39/105/178 45/117/210 +o CylinderGlow +v 0.000000 3.375000 -1.000000 +v 1.000000 3.375000 -0.000000 +v 0.000000 3.375000 1.000000 +v -1.000000 3.375000 -0.000000 +v -0.718750 3.375000 -0.718750 +v -0.937500 3.375000 -0.375000 +v -0.375000 3.375000 -0.937500 +v 0.375000 3.375000 -0.937500 +v 0.375000 3.375000 0.937500 +v 0.718750 3.375000 -0.718750 +v 0.718750 3.375000 0.718750 +v 0.937500 3.375000 0.375000 +v -0.937500 3.375000 0.375000 +v -0.375000 3.375000 0.937500 +v -0.718750 3.375000 0.718750 +v 0.937500 3.375000 -0.375000 +v 0.000000 3.125000 -1.000000 +v 1.000000 3.125000 -0.000000 +v 0.000000 3.125000 1.000000 +v -1.000000 3.125000 -0.000000 +v -0.718750 3.125000 -0.718750 +v -0.937500 3.125000 -0.375000 +v -0.375000 3.125000 -0.937500 +v 0.375000 3.125000 -0.937500 +v 0.375000 3.125000 0.937500 +v 0.718750 3.125000 -0.718750 +v 0.718750 3.125000 0.718750 +v 0.937500 3.125000 0.375000 +v -0.937500 3.125000 0.375000 +v -0.375000 3.125000 0.937500 +v -0.718750 3.125000 0.718750 +v 0.937500 3.125000 -0.375000 +v 0.000000 0.625000 -1.000000 +v 1.000000 0.625000 -0.000000 +v 0.000000 0.625000 1.000000 +v -1.000000 0.625000 -0.000000 +v -0.718750 0.625000 -0.718750 +v -0.937500 0.625000 -0.375000 +v -0.375000 0.625000 -0.937500 +v 0.375000 0.625000 -0.937500 +v 0.375000 0.625000 0.937500 +v 0.718750 0.625000 -0.718750 +v 0.718750 0.625000 0.718750 +v 0.937500 0.625000 0.375000 +v -0.937500 0.625000 0.375000 +v -0.375000 0.625000 0.937500 +v -0.718750 0.625000 0.718750 +v 0.937500 0.625000 -0.375000 +v 0.000000 0.375000 -1.000000 +v 1.000000 0.375000 -0.000000 +v 0.000000 0.375000 1.000000 +v -1.000000 0.375000 -0.000000 +v -0.718750 0.375000 -0.718750 +v -0.937500 0.375000 -0.375000 +v -0.375000 0.375000 -0.937500 +v 0.375000 0.375000 -0.937500 +v 0.375000 0.375000 0.937500 +v 0.718750 0.375000 -0.718750 +v 0.718750 0.375000 0.718750 +v 0.937500 0.375000 0.375000 +v -0.937500 0.375000 0.375000 +v -0.375000 0.375000 0.937500 +v -0.718750 0.375000 0.718750 +v 0.937500 0.375000 -0.375000 +vn -0.3578 -0.0001 0.9338 +vn -0.7071 -0.0000 0.7071 +vn 0.3578 -0.0000 0.9338 +vn -0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 0.9338 -0.0000 0.3578 +vn -0.0000 -0.0000 -1.0000 +vn 0.3578 -0.0000 -0.9338 +vn -0.9338 -0.0000 0.3578 +vn 0.9338 -0.0000 -0.3578 +vn 1.0000 -0.0000 -0.0000 +vn 0.3578 -0.0001 -0.9338 +vn 0.7071 -0.0000 -0.7071 +vn -0.9338 -0.0000 -0.3578 +vn -1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0001 -0.0000 +vn -0.3578 -0.0000 -0.9338 +vn -0.7071 -0.0000 -0.7071 +vn -0.3578 -0.0000 0.9338 +vn -0.7071 0.0001 -0.7071 +vn -0.7071 -0.0001 0.7071 +vn 0.7071 0.0001 0.7071 +vn 0.3578 0.0001 0.9338 +vn 0.9338 -0.0001 0.3578 +vn -1.0000 0.0001 -0.0000 +vn -0.3578 0.0001 -0.9338 +vt 0.234375 0.445312 +vt 0.281250 0.445312 +vt 0.281250 0.414062 +vt 0.234375 0.414062 +s 0 +f 142/134/212 143/135/213 159/136/213 +f 137/136/214 131/137/215 147/134/215 +f 139/137/216 156/135/217 140/136/217 +f 129/136/218 136/137/219 152/134/219 +f 141/135/220 159/137/213 143/134/213 +f 139/136/216 137/137/214 153/134/214 +f 144/136/221 146/134/222 160/135/221 +f 136/136/223 138/137/224 154/134/224 +f 134/135/225 148/137/226 132/134/227 +f 138/136/224 144/137/221 160/134/221 +f 140/137/217 146/135/222 130/136/222 +f 135/134/228 129/135/218 145/136/218 +f 132/135/226 157/137/220 141/134/220 +f 133/135/229 150/137/225 134/134/225 +f 131/134/215 142/135/230 158/136/230 +f 133/134/231 135/135/228 151/136/228 +f 174/137/212 175/136/213 191/135/213 +f 169/136/214 163/137/215 179/134/215 +f 172/136/217 187/134/216 188/135/217 +f 161/136/218 168/137/219 184/134/219 +f 173/136/220 191/134/213 175/137/232 +f 171/136/216 169/137/214 185/134/214 +f 176/136/221 178/134/222 192/135/221 +f 168/136/223 170/137/224 186/134/224 +f 166/136/225 180/134/226 164/137/227 +f 170/136/224 176/137/221 192/134/221 +f 172/137/217 178/135/222 162/136/222 +f 167/137/228 161/136/218 177/135/218 +f 164/136/226 189/134/220 173/137/220 +f 165/136/229 182/134/225 166/137/225 +f 163/137/215 174/136/230 190/135/230 +f 165/137/229 167/136/228 183/135/228 +f 142/134/230 159/136/232 158/137/230 +f 137/136/214 147/134/215 153/135/214 +f 139/137/216 155/134/233 156/135/217 +f 129/136/218 152/134/219 145/135/218 +f 141/135/220 157/136/220 159/137/213 +f 139/136/216 153/134/234 155/135/216 +f 144/136/221 130/137/222 146/134/222 +f 136/136/219 154/134/224 152/135/219 +f 134/135/225 150/136/225 148/137/226 +f 138/136/224 160/134/221 154/135/224 +f 140/137/217 156/134/235 146/135/222 +f 135/134/228 145/136/218 151/137/228 +f 132/135/226 148/136/236 157/137/220 +f 133/135/229 149/136/229 150/137/225 +f 131/134/215 158/136/230 147/137/215 +f 133/134/229 151/136/237 149/137/229 +f 174/137/230 191/135/232 190/134/230 +f 169/136/214 179/134/215 185/135/214 +f 172/136/235 171/137/216 187/134/216 +f 161/136/218 184/134/219 177/135/218 +f 173/136/220 189/135/220 191/134/213 +f 171/136/216 185/134/234 187/135/216 +f 176/136/221 162/137/222 178/134/222 +f 168/136/219 186/134/224 184/135/219 +f 166/136/225 182/135/225 180/134/226 +f 170/136/224 192/134/221 186/135/224 +f 172/137/217 188/134/217 178/135/222 +f 167/137/228 177/135/218 183/134/228 +f 164/136/226 180/135/236 189/134/220 +f 165/136/229 181/135/229 182/134/225 +f 163/137/215 190/135/230 179/134/215 +f 165/137/229 183/135/237 181/134/229 +o CylinderNoGlow +v 0.000000 3.375000 -1.000000 +v 1.000000 3.375000 -0.000000 +v 0.000000 3.375000 1.000000 +v -1.000000 3.375000 -0.000000 +v -0.718750 3.375000 -0.718750 +v -0.937500 3.375000 -0.375000 +v -0.375000 3.375000 -0.937500 +v 0.375000 3.375000 -0.937500 +v 0.375000 3.375000 0.937500 +v 0.718750 3.375000 -0.718750 +v 0.718750 3.375000 0.718750 +v 0.937500 3.375000 0.375000 +v -0.937500 3.375000 0.375000 +v -0.375000 3.375000 0.937500 +v -0.718750 3.375000 0.718750 +v 0.937500 3.375000 -0.375000 +v 0.000000 3.125000 -1.000000 +v 1.000000 3.125000 -0.000000 +v 0.000000 3.125000 1.000000 +v -1.000000 3.125000 -0.000000 +v -0.718750 3.125000 -0.718750 +v -0.937500 3.125000 -0.375000 +v -0.375000 3.125000 -0.937500 +v 0.375000 3.125000 -0.937500 +v 0.375000 3.125000 0.937500 +v 0.718750 3.125000 -0.718750 +v 0.718750 3.125000 0.718750 +v 0.937500 3.125000 0.375000 +v -0.937500 3.125000 0.375000 +v -0.375000 3.125000 0.937500 +v -0.718750 3.125000 0.718750 +v 0.937500 3.125000 -0.375000 +v 0.000000 0.625000 -1.000000 +v 1.000000 0.625000 -0.000000 +v 0.000000 0.625000 1.000000 +v -1.000000 0.625000 -0.000000 +v -0.718750 0.625000 -0.718750 +v -0.937500 0.625000 -0.375000 +v -0.375000 0.625000 -0.937500 +v 0.375000 0.625000 -0.937500 +v 0.375000 0.625000 0.937500 +v 0.718750 0.625000 -0.718750 +v 0.718750 0.625000 0.718750 +v 0.937500 0.625000 0.375000 +v -0.937500 0.625000 0.375000 +v -0.375000 0.625000 0.937500 +v -0.718750 0.625000 0.718750 +v 0.937500 0.625000 -0.375000 +v 0.000000 0.375000 -1.000000 +v 1.000000 0.375000 -0.000000 +v 0.000000 0.375000 1.000000 +v -1.000000 0.375000 -0.000000 +v -0.718750 0.375000 -0.718750 +v -0.937500 0.375000 -0.375000 +v -0.375000 0.375000 -0.937500 +v 0.375000 0.375000 -0.937500 +v 0.375000 0.375000 0.937500 +v 0.718750 0.375000 -0.718750 +v 0.718750 0.375000 0.718750 +v 0.937500 0.375000 0.375000 +v -0.937500 0.375000 0.375000 +v -0.375000 0.375000 0.937500 +v -0.718750 0.375000 0.718750 +v 0.937500 0.375000 -0.375000 +vn -0.3578 -0.0001 0.9338 +vn -0.7071 -0.0000 0.7071 +vn 0.3578 -0.0000 0.9338 +vn -0.0000 -0.0000 1.0000 +vn 0.7071 -0.0000 0.7071 +vn 0.9338 -0.0000 0.3578 +vn -0.0000 -0.0000 -1.0000 +vn 0.3578 -0.0000 -0.9338 +vn -0.9338 -0.0000 0.3578 +vn 0.9338 -0.0000 -0.3578 +vn 1.0000 -0.0000 -0.0000 +vn 0.3578 -0.0001 -0.9338 +vn 0.7071 -0.0000 -0.7071 +vn -0.9338 -0.0000 -0.3578 +vn -1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0001 -0.0000 +vn -0.3578 -0.0000 -0.9338 +vn -0.7071 -0.0000 -0.7071 +vn -0.3578 -0.0000 0.9338 +vn -0.7071 0.0001 -0.7071 +vn -0.7071 -0.0001 0.7071 +vn 0.7071 0.0001 0.7071 +vn 0.3578 0.0001 0.9338 +vn 0.9338 -0.0001 0.3578 +vn -1.0000 0.0001 -0.0000 +vn -0.3578 0.0001 -0.9338 +vt 0.234375 0.445312 +vt 0.281250 0.445312 +vt 0.281250 0.414062 +vt 0.234375 0.414062 +s 0 +f 206/138/238 207/139/239 223/140/239 +f 201/140/240 195/141/241 211/138/241 +f 203/141/242 220/139/243 204/140/243 +f 193/140/244 200/141/245 216/138/245 +f 205/139/246 223/141/239 207/138/239 +f 203/140/242 201/141/240 217/138/240 +f 208/140/247 210/138/248 224/139/247 +f 200/140/249 202/141/250 218/138/250 +f 198/139/251 212/141/252 196/138/253 +f 202/140/250 208/141/247 224/138/247 +f 204/141/243 210/139/248 194/140/248 +f 199/138/254 193/139/244 209/140/244 +f 196/139/252 221/141/246 205/138/246 +f 197/139/255 214/141/251 198/138/251 +f 195/138/241 206/139/256 222/140/256 +f 197/138/257 199/139/254 215/140/254 +f 238/141/238 239/140/239 255/139/239 +f 233/140/240 227/141/241 243/138/241 +f 236/140/243 251/138/242 252/139/243 +f 225/140/244 232/141/245 248/138/245 +f 237/140/246 255/138/239 239/141/258 +f 235/140/242 233/141/240 249/138/240 +f 240/140/247 242/138/248 256/139/247 +f 232/140/249 234/141/250 250/138/250 +f 230/140/251 244/138/252 228/141/253 +f 234/140/250 240/141/247 256/138/247 +f 236/141/243 242/139/248 226/140/248 +f 231/141/254 225/140/244 241/139/244 +f 228/140/252 253/138/246 237/141/246 +f 229/140/255 246/138/251 230/141/251 +f 227/141/241 238/140/256 254/139/256 +f 229/141/255 231/140/254 247/139/254 +f 206/138/256 223/140/258 222/141/256 +f 201/140/240 211/138/241 217/139/240 +f 203/141/242 219/138/259 220/139/243 +f 193/140/244 216/138/245 209/139/244 +f 205/139/246 221/140/246 223/141/239 +f 203/140/242 217/138/260 219/139/242 +f 208/140/247 194/141/248 210/138/248 +f 200/140/245 218/138/250 216/139/245 +f 198/139/251 214/140/251 212/141/252 +f 202/140/250 224/138/247 218/139/250 +f 204/141/243 220/138/261 210/139/248 +f 199/138/254 209/140/244 215/141/254 +f 196/139/252 212/140/262 221/141/246 +f 197/139/255 213/140/255 214/141/251 +f 195/138/241 222/140/256 211/141/241 +f 197/138/255 215/140/263 213/141/255 +f 238/141/256 255/139/258 254/138/256 +f 233/140/240 243/138/241 249/139/240 +f 236/140/261 235/141/242 251/138/242 +f 225/140/244 248/138/245 241/139/244 +f 237/140/246 253/139/246 255/138/239 +f 235/140/242 249/138/260 251/139/242 +f 240/140/247 226/141/248 242/138/248 +f 232/140/245 250/138/250 248/139/245 +f 230/140/251 246/139/251 244/138/252 +f 234/140/250 256/138/247 250/139/250 +f 236/141/243 252/138/243 242/139/248 +f 231/141/254 241/139/244 247/138/254 +f 228/140/252 244/139/262 253/138/246 +f 229/140/255 245/139/255 246/138/251 +f 227/141/241 254/139/256 243/138/241 +f 229/141/255 247/139/263 245/138/255 +o MineTrigger +v 0.000000 3.750000 0.250000 +v 0.000000 3.750000 -0.250000 +v 0.250000 3.750000 -0.000000 +v -0.250000 3.750000 -0.000000 +v 0.187500 3.750000 -0.187500 +v -0.187500 3.750000 -0.187500 +v 0.187500 3.750000 0.187500 +v -0.187500 3.750000 0.187500 +v 0.000000 7.000000 0.250000 +v 0.000000 7.000000 -0.250000 +v 0.250000 7.000000 -0.000000 +v -0.250000 7.000000 -0.000000 +v 0.187500 7.000000 -0.187500 +v -0.187500 7.000000 -0.187500 +v 0.187500 7.000000 0.187500 +v -0.187500 7.000000 0.187500 +v 0.000000 6.750000 0.250000 +v 0.000000 6.750000 -0.250000 +v 0.250000 6.750000 -0.000000 +v -0.250000 6.750000 -0.000000 +v 0.187500 6.750000 -0.187500 +v -0.187500 6.750000 -0.187500 +v 0.187500 6.750000 0.187500 +v -0.187500 6.750000 0.187500 +v 0.000000 6.500000 0.250000 +v 0.000000 6.500000 -0.250000 +v 0.250000 6.500000 -0.000000 +v -0.250000 6.500000 -0.000000 +v 0.187500 6.500000 -0.187500 +v -0.187500 6.500000 -0.187500 +v 0.187500 6.500000 0.187500 +v -0.187500 6.500000 0.187500 +vn 0.7071 -0.0000 -0.7071 +vn 0.5554 0.6189 -0.5554 +vn 0.7664 0.6424 0.0001 +vn 0.7664 0.6424 -0.0001 +vn 0.5554 0.6189 0.5554 +vn 0.7071 -0.0000 0.7071 +vn -0.0000 0.6424 0.7664 +vn -0.0000 -0.0000 1.0000 +vn 0.0001 0.6424 0.7664 +vn -0.5554 0.6189 0.5554 +vn -0.7071 -0.0000 0.7071 +vn -0.7664 0.6424 -0.0001 +vn -0.7664 0.6424 0.0001 +vn -0.5554 0.6189 -0.5554 +vn -0.7071 -0.0000 -0.7071 +vn -0.0000 0.6424 -0.7664 +vn -0.0001 0.6424 -0.7664 +vn -0.7664 0.6423 -0.0000 +vn -0.0000 0.6423 -0.7664 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0001 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -1.0000 0.0001 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.7664 0.6424 -0.0000 +vn 1.0000 -0.0001 -0.0000 +vn 0.5554 0.6190 0.5554 +vn -0.7664 0.6424 -0.0000 +vn 0.7664 0.6423 -0.0000 +vn -0.0000 0.6423 0.7664 +vn -0.7664 0.6423 0.0001 +vn 0.7664 0.6423 -0.0001 +vn -1.0000 -0.0001 -0.0000 +vt 0.164062 0.750000 +vt 0.164062 0.781250 +vt 0.140625 0.781250 +vt 0.117188 0.781250 +vt 0.117188 0.750000 +vt 0.093750 0.781250 +vt 0.093750 0.750000 +vt 0.070312 0.781250 +vt 0.070312 0.750000 +vt 0.046875 0.781250 +vt 0.023438 0.781250 +vt 0.023438 0.750000 +vt 0.000000 0.781250 +vt 0.187500 0.781250 +vt 0.218750 0.718750 +vt 0.187500 0.750000 +vt 0.195312 0.726562 +vt 0.117188 0.406250 +vt 0.140625 0.750000 +vt 0.140625 0.406250 +vt 0.093750 0.406250 +vt 0.070312 0.406250 +vt 0.046875 0.750000 +vt 0.046875 0.406250 +vt 0.023438 0.406250 +vt 0.000000 0.406250 +vt 0.164062 0.406250 +vt 0.187500 0.406250 +vt 0.000000 0.750000 +vt 0.195312 0.773438 +vt 0.218750 0.781250 +vt 0.250000 0.750000 +vt 0.242188 0.773438 +vt 0.242188 0.726562 +s 0 +f 277/142/264 269/143/265 267/144/266 +f 267/144/267 271/145/268 279/146/269 +f 271/145/268 265/147/270 273/148/271 +f 265/147/272 272/149/273 280/150/274 +f 280/150/274 272/149/273 268/151/275 +f 268/151/276 270/152/277 278/153/278 +f 278/153/278 270/152/277 266/154/279 +f 266/155/280 269/143/265 277/142/264 +f 268/156/281 266/157/282 270/158/277 +f 259/159/283 287/160/269 263/161/269 +f 287/148/269 257/159/284 263/162/269 +f 257/163/271 288/148/274 264/162/274 +f 264/163/274 284/164/285 260/165/286 +f 260/165/285 286/153/278 262/166/278 +f 262/167/278 282/153/287 258/166/287 +f 258/168/287 285/157/264 261/169/264 +f 285/160/264 259/168/283 261/161/264 +f 277/142/264 267/144/288 275/160/289 +f 267/144/288 279/146/269 275/160/283 +f 271/145/290 273/148/271 279/146/269 +f 265/147/270 280/150/274 273/148/271 +f 280/150/274 268/151/291 276/164/285 +f 268/151/291 278/153/278 276/164/285 +f 278/153/278 266/154/279 274/170/287 +f 266/155/279 277/142/264 274/157/287 +f 269/171/265 266/157/282 267/172/292 +f 267/172/292 265/173/293 271/174/268 +f 266/157/282 268/156/294 265/173/293 +f 265/173/293 268/156/281 272/175/273 +f 267/172/295 266/157/282 265/173/293 +f 259/159/283 283/146/283 287/160/269 +f 287/148/269 281/146/271 257/159/271 +f 257/163/271 281/150/271 288/148/274 +f 264/163/274 288/150/274 284/164/285 +f 260/165/285 284/164/296 286/153/278 +f 262/167/278 286/170/278 282/153/287 +f 258/168/287 282/142/287 285/157/264 +f 285/160/264 283/142/283 259/168/283 +o MineTriggerGlow +v 0.000000 6.750000 0.250000 +v 0.000000 6.750000 -0.250000 +v 0.250000 6.750000 -0.000000 +v -0.250000 6.750000 -0.000000 +v 0.187500 6.750000 -0.187500 +v -0.187500 6.750000 -0.187500 +v 0.187500 6.750000 0.187500 +v -0.187500 6.750000 0.187500 +v 0.000000 6.500000 0.250000 +v 0.000000 6.500000 -0.250000 +v 0.250000 6.500000 -0.000000 +v -0.250000 6.500000 -0.000000 +v 0.187500 6.500000 -0.187500 +v -0.187500 6.500000 -0.187500 +v 0.187500 6.500000 0.187500 +v -0.187500 6.500000 0.187500 +vn -0.0000 -0.0000 1.0000 +vn -0.7071 -0.0000 0.7071 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.0000 -0.7071 +vn -0.0000 -0.0000 -1.0000 +vn 0.7071 -0.0000 -0.7071 +vn 1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0001 -0.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 0.0001 -0.0000 +vn -0.0000 -0.0001 1.0000 +vt 0.234375 0.484375 +vt 0.257812 0.453125 +vt 0.257812 0.484375 +vt 0.234375 0.453125 +s 0 +f 297/176/297 296/177/298 304/178/298 +f 304/176/298 292/177/299 300/178/299 +f 300/176/299 294/177/300 302/178/300 +f 302/176/300 290/177/301 298/178/301 +f 298/177/301 293/176/302 301/179/302 +f 301/177/302 291/176/303 299/179/304 +f 303/179/305 291/178/306 295/176/305 +f 297/179/297 295/178/305 289/176/297 +f 297/176/297 289/179/297 296/177/298 +f 304/176/298 296/179/298 292/177/299 +f 300/176/299 292/179/299 294/177/300 +f 302/176/300 294/179/300 290/177/301 +f 298/177/301 290/178/301 293/176/302 +f 301/177/302 293/178/302 291/176/303 +f 303/179/305 299/177/303 291/178/303 +f 297/179/307 303/177/305 295/178/305 +o MineTriggerNoGlow +v 0.000000 6.750000 0.250000 +v 0.000000 6.750000 -0.250000 +v 0.250000 6.750000 -0.000000 +v -0.250000 6.750000 -0.000000 +v 0.187500 6.750000 -0.187500 +v -0.187500 6.750000 -0.187500 +v 0.187500 6.750000 0.187500 +v -0.187500 6.750000 0.187500 +v 0.000000 6.500000 0.250000 +v 0.000000 6.500000 -0.250000 +v 0.250000 6.500000 -0.000000 +v -0.250000 6.500000 -0.000000 +v 0.187500 6.500000 -0.187500 +v -0.187500 6.500000 -0.187500 +v 0.187500 6.500000 0.187500 +v -0.187500 6.500000 0.187500 +vn -0.0000 -0.0000 1.0000 +vn -0.7071 -0.0000 0.7071 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.0000 -0.7071 +vn -0.0000 -0.0000 -1.0000 +vn 0.7071 -0.0000 -0.7071 +vn 1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0001 -0.0000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 0.0001 -0.0000 +vn -0.0000 -0.0001 1.0000 +vt 0.234375 0.484375 +vt 0.257812 0.453125 +vt 0.257812 0.484375 +vt 0.234375 0.453125 +s 0 +f 313/180/308 312/181/309 320/182/309 +f 320/180/309 308/181/310 316/182/310 +f 316/180/310 310/181/311 318/182/311 +f 318/180/311 306/181/312 314/182/312 +f 314/181/312 309/180/313 317/183/313 +f 317/181/313 307/180/314 315/183/315 +f 319/183/316 307/182/317 311/180/316 +f 313/183/308 311/182/316 305/180/308 +f 313/180/308 305/183/308 312/181/309 +f 320/180/309 312/183/309 308/181/310 +f 316/180/310 308/183/310 310/181/311 +f 318/180/311 310/183/311 306/181/312 +f 314/181/312 306/182/312 309/180/313 +f 317/181/313 309/182/313 307/180/314 +f 319/183/316 315/181/314 307/182/314 +f 313/183/318 319/181/316 311/182/316 diff --git a/src/main/resources/assets/hbm/models/machines/chemical_plant.obj b/src/main/resources/assets/hbm/models/machines/chemical_plant.obj index 7fa2d561f..a7db83f49 100644 --- a/src/main/resources/assets/hbm/models/machines/chemical_plant.obj +++ b/src/main/resources/assets/hbm/models/machines/chemical_plant.obj @@ -3249,39 +3249,39 @@ vt 0.620192 1.000000 vt 0.620192 0.971429 vt 0.625000 0.957143 vt 0.625000 0.985714 -vt 0.451923 0.771429 -vt 0.509615 0.785714 -vt 0.451923 0.785714 -vt 0.451923 0.814286 -vt 0.509615 0.828571 -vt 0.451923 0.828571 -vt 0.451923 0.842857 -vt 0.509615 0.857143 -vt 0.451923 0.857143 -vt 0.451923 0.757143 -vt 0.509615 0.771429 -vt 0.509615 0.800000 -vt 0.451923 0.800000 -vt 0.509615 0.814286 -vt 0.509615 0.842857 -vt 0.451923 0.742857 -vt 0.509615 0.757143 -vt 0.514423 0.771429 -vt 0.524038 0.757143 -vt 0.524038 0.771429 -vt 0.524038 0.785714 -vt 0.524038 0.800000 -vt 0.524038 0.814286 -vt 0.514423 0.828571 -vt 0.524038 0.842857 -vt 0.519231 0.842857 -vt 0.524038 0.828571 -vt 0.538462 0.814286 -vt 0.533654 0.828571 -vt 0.533654 0.771429 -vt 0.538462 0.800000 -vt 0.528846 0.842857 -vt 0.538462 0.785714 +vt 0.884615 0.028571 +vt 0.971154 0.042857 +vt 0.884615 0.042857 +vt 0.884615 0.071429 +vt 0.971154 0.085714 +vt 0.884615 0.085714 +vt 0.884615 0.100000 +vt 0.971154 0.114286 +vt 0.884615 0.114286 +vt 0.884615 0.014286 +vt 0.971154 0.028571 +vt 0.971154 0.057143 +vt 0.884615 0.057143 +vt 0.971154 0.071429 +vt 0.971154 0.100000 +vt 0.884615 0.000000 +vt 0.971154 0.014286 +vt 0.975962 0.028571 +vt 0.985577 0.014286 +vt 0.985577 0.028571 +vt 0.985577 0.042857 +vt 0.985577 0.057143 +vt 0.985577 0.071429 +vt 0.975962 0.085714 +vt 0.985577 0.100000 +vt 0.980769 0.100000 +vt 0.985577 0.085714 +vt 1.000000 0.071429 +vt 0.995192 0.085714 +vt 0.995192 0.028571 +vt 1.000000 0.057143 +vt 0.990385 0.100000 +vt 1.000000 0.042857 vt 0.298077 0.714286 vt 0.197115 0.714286 vt 0.326923 0.714286 @@ -3304,39 +3304,39 @@ vt 0.177885 0.714286 vt 0.168269 0.714286 vt 0.293269 0.714286 vt 0.283654 0.714286 -vt 0.509615 0.700000 -vt 0.451923 0.714286 -vt 0.451923 0.700000 -vt 0.509615 0.657143 -vt 0.451923 0.671429 -vt 0.451923 0.657143 -vt 0.509615 0.628571 -vt 0.451923 0.642857 -vt 0.451923 0.628571 -vt 0.509615 0.714286 -vt 0.451923 0.728571 -vt 0.509615 0.685714 -vt 0.451923 0.685714 -vt 0.509615 0.671429 -vt 0.509615 0.642857 -vt 0.509615 0.728571 -vt 0.451923 0.742857 -vt 0.514423 0.714286 -vt 0.524038 0.728571 -vt 0.519231 0.728571 -vt 0.524038 0.685714 -vt 0.524038 0.671429 -vt 0.524038 0.642857 -vt 0.514423 0.657143 -vt 0.519231 0.642857 -vt 0.524038 0.714286 -vt 0.524038 0.657143 -vt 0.538462 0.671429 -vt 0.533654 0.714286 -vt 0.538462 0.685714 -vt 0.524038 0.700000 -vt 0.533654 0.657143 -vt 0.538462 0.700000 +vt 0.971154 0.071429 +vt 0.884615 0.085714 +vt 0.884615 0.071429 +vt 0.971154 0.028571 +vt 0.884615 0.042857 +vt 0.884615 0.028571 +vt 0.971154 -0.000000 +vt 0.884615 0.014286 +vt 0.884615 0.000000 +vt 0.971154 0.085714 +vt 0.884615 0.100000 +vt 0.971154 0.057143 +vt 0.884615 0.057143 +vt 0.971154 0.042857 +vt 0.971154 0.014286 +vt 0.971154 0.100000 +vt 0.884615 0.114286 +vt 0.975962 0.085714 +vt 0.985577 0.100000 +vt 0.980769 0.100000 +vt 0.985577 0.057143 +vt 0.985577 0.042857 +vt 0.985577 0.014286 +vt 0.975962 0.028571 +vt 0.980769 0.014286 +vt 0.985577 0.085714 +vt 0.985577 0.028571 +vt 1.000000 0.042857 +vt 0.995192 0.085714 +vt 1.000000 0.057143 +vt 0.985577 0.071429 +vt 0.995192 0.028571 +vt 1.000000 0.071429 vt 0.144231 0.314286 vt 0.115385 0.314286 vt 0.557692 0.542857 @@ -3410,14 +3410,14 @@ vt 0.903846 0.428571 vt 0.932692 0.428571 vt 0.961538 0.371429 vt 0.961538 0.428571 -vt 0.524038 0.857143 -vt 0.519231 0.757143 -vt 0.524038 0.742857 -vt 0.528846 0.757143 -vt 0.524038 0.742857 -vt 0.528846 0.728571 -vt 0.524038 0.628571 -vt 0.528846 0.642857 +vt 0.985577 0.114286 +vt 0.980769 0.014286 +vt 0.985577 -0.000000 +vt 0.990385 0.014286 +vt 0.985577 0.114286 +vt 0.990385 0.100000 +vt 0.985577 -0.000000 +vt 0.990385 0.014286 vt 0.230769 0.200000 vt 0.461538 0.000000 vt 0.000000 0.885714 @@ -3451,7 +3451,7 @@ vt 0.817308 1.000000 vt 0.557692 0.885714 vt 0.605769 1.000000 vt 0.629808 0.885714 -vt 0.509615 0.742857 +vt 0.971154 -0.000000 vt 0.307692 0.714286 vt 0.206731 0.714286 vt 0.336538 0.714286 @@ -3460,7 +3460,7 @@ vt 0.221154 0.714286 vt 0.365385 0.714286 vt 0.250000 0.714286 vt 0.264423 0.714286 -vt 0.509615 0.742857 +vt 0.971154 0.114286 vt 0.211538 0.628571 vt 0.153846 0.628571 vn 0.0000 -1.0000 0.0000 diff --git a/src/main/resources/assets/hbm/textures/models/bombs/n2.png b/src/main/resources/assets/hbm/textures/models/bombs/n2.png index f8d6f2089e1721d0652a92abec9cde48bfc2c414..f3965352d135ff96b840bf8defef0e3e99176a40 100644 GIT binary patch literal 8612 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 MYk8;gw)30+12PV-5dZ)H literal 4160 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 sj@$$}$v%tedI%h2uP43LKJ+c5uxbN2R1lJ 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 RV-^4a002ovPDHLkV1mC{NzVWP delta 4401 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 From 9dbe5964014cf7bf038ac39ea1e120b13f358a97 Mon Sep 17 00:00:00 2001 From: Justnightheron Date: Tue, 10 Jun 2025 14:04:20 +0800 Subject: [PATCH 159/181] LENS --- src/main/resources/assets/hbm/lang/zh_CN.lang | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 20b27d397..41847c119 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -16,7 +16,7 @@ achievement.bossMaskman.desc=淦飞那个大男孩 achievement.bossMaskman=6个月的强制æœåŠ¡ï¼Œæˆ‘åªå¾—到一件糟糕的Tæ¤ achievement.bossMeltdown.desc=æ¯”ä¼Ÿå¤§æ›´å¯æ€•,但我会竭尽所能 achievement.bossMeltdown=3.6ä¼¦ç´ -achievement.bossWorm.desc=“ç»å­¦æ³•æ–â€ã€‚什么鬼啊。你自己看看å§ã€‚ +achievement.bossWorm.desc=åªæ˜¯ä¸€æ¡é‡‘属å°èš¯èš“罢了。 achievement.bossWorm=拆掉机械蠕虫 achievement.bossUFO.desc=哟,那是啥东西?一艘正接近我们工事的巨大飞船? achievement.bossUFO=呀哈哈哈,笑死我了 @@ -2139,8 +2139,6 @@ item.canned_tuna.name=金枪鱼ç½å¤´ item.canned_tuna.desc=我ä¸çŸ¥é“那是金枪鱼还是干水泥。 item.canned_yogurt.name=酸奶ç½å¤´ item.canned_yogurt.desc=å¯èƒ½å掉了,但管它呢 -item.canteen_13.name=Vault13水壶 -item.canteen_fab.name=æžå“ä¼ç‰¹åŠ  item.canteen_vodka.name=ä¼ç‰¹åŠ  item.cap_fritz.name=弗里茨瓶盖 item.cap_korl.name=Korlç“¶ç›– @@ -2577,7 +2575,6 @@ item.euphemium_plate.name=Ep胸甲 item.euphemium_stopper.name=Ep-阻滞者 item.explosive_lenses.name=炸è¯é€é•œé˜µåˆ— item.explosive_lenses.desc=8个PBX炸è¯ç»„装的阵列,带有一个薄的$é“æŽ¨è¿›å™¨ã€ç¡¬é“外壳和$å°åž‹æ¡¥ä¸é›·ç®¡ã€‚ -item.fabsols_vodka.name=Fabsolä¼ç‰¹åŠ  item.factory_core_advanced.name=高级工厂能æºç»„ä»¶ item.factory_core_titanium.name=工厂能æºç»„ä»¶ item.fallout.name=一堆è¾å°„å°˜ @@ -2815,7 +2812,7 @@ item.hazmat_plate_red.name=高级防è¾å°„胸甲 item.hazmat_red_kit.name=高级防护套装 item.heart_booster.name=心之增强器 item.heart_container.name=心之容器 -item.heart_fab.name=å¿ƒè„æŠ—åŽŸç»“åˆå™¨ +item.heart_fab.name=黑暗之心 item.heart_piece.name=心之碎片 item.heavy_component.name=é‡åž‹%s组件 item.hev_battery.name=套装电池 @@ -3593,7 +3590,7 @@ item.plate_fuel_u235.name=高浓度铀-235 æ¿çŠ¶ç‡ƒæ–™ item.plate_gold.name=é‡‘æ¿ item.plate_gunmetal.name=ç‚®é“œæ¿ item.plate_iron.name=铿¿ -item.plate_kevlar.name=凯夫拉陶瓷å¤åˆææ–™ +item.plate_kevlar.name=å‡¯å¤«æ‹‰æ¿æ item.plate_lead.name=é“…æ¿ item.plate_mixed.name=åˆé‡‘æ¿ item.plate_paa.name=PaAåˆé‡‘æ¿ @@ -5005,9 +5002,7 @@ tile.factory_titanium_furnace.name=å·¥åŽ‚ç«¯å£ tile.factory_titanium_hull.name=工厂外壳 tile.fallout.name=è¾å°„å°˜ tile.fan.name=风扇 -tile.fan.desc=使用红石激活$将实体推至最多10个方å—外$用螺ä¸åˆ€å³é”®ç‚¹å‡»å³å¯ç¿»è½¬$使用手钻å³é”®åˆ‡æ¢æ¨¡å¼ -tile.fan.falloffOn=风扇功率éšè·ç¦»å¢žåŠ è€Œå‡å° -tile.fan.falloffOff=风扇功率æ’定 +tile.fan.desc=使用红石激活$将实体推至最多10个方å—外$用螺ä¸åˆ€å³é”®ç‚¹å‡»å³å¯åˆ‡æ¢æ¨¡å¼ tile.fence_metal.name=é“ä¸ç½‘å›´æ  tile.fence_metal_post.name=é“ä¸ç½‘å›´æ ç«‹æŸ± tile.field_disturber.name=高能场干扰机 @@ -5190,7 +5185,6 @@ tile.machine_assemfac.name=装é…厂 tile.machine_autocrafter.name=è‡ªåŠ¨å·¥ä½œå° tile.machine_autosaw.name=自动嗡嗡锯 tile.machine_autosaw.desc=ç ä¼é™„è¿‘çš„æ¤ç‰©ï¼Œé‡æ–°ç§æ¤æ ‘木$接å—:$-木油$-乙醇$-鱼油$-釿²¹ -tile.machine_autosaw.suspended=æš‚åœ tile.machine_bat9000.name=巨尻-9000 å‚¨ç½ tile.machine_battery.name=蓄电池 tile.machine_battery_potato.name=马铃薯电池组 @@ -6075,3 +6069,25 @@ item.ammo_secret.bmg50_black.name=.50BMGæ—é“è€…å¼¹è¯ item.ammo_standard.bmg50_sm.name=.50BMGå­å¼¹ï¼ˆæ˜Ÿè¾‰ï¼‰ item.gun_amat_penance.name=å¿æ‚” item.gun_amat_subtlety.name=æ˜Žæ• +chem.hydrogen=煤炭æå–æ°¢ +chem.hydrogencoke=焦炭æå–æ°¢ +chem.oxygen=压缩空气分é¦ç”Ÿäº§æ¶²æ°§ +chem.xenon=林德循环制氙 +chem.xenonoxy=增强林德循环制氙 +chem.helium3=月壤æå–æ°¦-3 +chem.ethanol=乙醇生产 +chem.biogas=沼气生产 +chem.biofuel=生物燃料酯化 +chem.reoil=å†ç”Ÿæ²¹ç”Ÿäº§ +chem.gasoline=å«é“…汽油基油生产 +chem.tarsand=æ²¥é’ç ‚æå–æ²¥é’ +chem.meatprocessing=å¼‚è™«è‚‰å¤„ç† +chem.birkeland=伯克兰-艾德法制ç¡é…¸ +container.machineChemicalPlant=化工厂 +damage.category.EN=èƒ½é‡ +item.part_generic.glass_polarized.name=å光镜片 +tile.fan.falloffOn=风扇功率éšè·ç¦»å¢žåŠ è€Œå‡å° +tile.fan.falloffOff=稳定的风扇功率 +tile.glass_polarized.name=å光玻璃 +tile.machine_autosaw.suspended=æš‚åœ +tile.machine_chemical_plant.name=化工厂二代 : 电å­å¸ƒåŠ æ´› From 6bfca4e1fea6aab66169a02189af231d369dd57e Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 10 Jun 2025 15:32:47 +0200 Subject: [PATCH 160/181] :b:alls --- changelog | 88 ++---------------- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 9 -- .../com/hbm/blocks/machine/BlockCMFlux.java | 9 +- .../com/hbm/blocks/machine/BlockCMHeat.java | 9 +- .../blocks/machine/MachineChemicalPlant.java | 2 + .../blocks/machine/MachineTransformer.java | 21 +---- .../hbm/entity/item/EntityDeliveryDrone.java | 8 +- .../logic/EntityExplosionChunkloading.java | 1 + .../com/hbm/entity/logic/EntityPlaneBase.java | 6 +- .../missile/EntityMissileAntiBallistic.java | 6 +- .../entity/missile/EntityMissileBaseNT.java | 8 +- .../projectile/EntityArtilleryRocket.java | 6 +- .../projectile/EntityArtilleryShell.java | 8 +- .../projectile/EntityBulletBaseMK4CL.java | 7 +- .../ExplosionNukeRayParallelized.java | 8 +- .../java/com/hbm/handler/HbmKeybinds.java | 24 ++++- .../recipes/ChemicalPlantRecipes.java | 1 + .../java/com/hbm/items/IKeybindReceiver.java | 1 + .../com/hbm/items/armor/JetpackBreak.java | 3 +- .../com/hbm/items/tool/ItemToolAbility.java | 71 +++++++------- .../sedna/mags/MagazineSingleTypeBase.java | 6 ++ src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 6 +- src/main/java/com/hbm/main/MainRegistry.java | 3 + .../hbm/packet/toserver/KeybindPacket.java | 1 - .../java/com/hbm/tileentity/TileMappings.java | 1 - .../tileentity/machine/TileEntityHadron.java | 33 +------ .../machine/TileEntityMachineTransformer.java | 6 -- .../world/gen/component/BunkerComponents.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 13 +-- src/main/resources/assets/hbm/lang/en_US.lang | 11 +-- .../hbm/textures/blocks/hadron_cooler.png | Bin 284 -> 0 bytes .../hbm/textures/blocks/hadron_cooler_mk2.png | Bin 331 -> 0 bytes .../blocks/machine_funnel_ore_bottom.png | Bin 319 -> 0 bytes .../blocks/machine_funnel_ore_side.png | Bin 307 -> 0 bytes .../blocks/machine_funnel_ore_top.png | Bin 325 -> 0 bytes 37 files changed, 162 insertions(+), 220 deletions(-) delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineTransformer.java delete mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_cooler_mk2.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_bottom.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_top.png diff --git a/changelog b/changelog index de14d2348..52000176e 100644 --- a/changelog +++ b/changelog @@ -1,81 +1,13 @@ -## Added -* Two new anti-material rifle variants - * .50 BMG demolisher rounds are finally usable - * Added a special ammo type exclusive to one of the variants -* Starmetal .50 BMG now returns - * Overall better armor piercing stats than DU - * Not compatible with the M2, only usable in amat rifles -* Reworked chemical plant - * No longer needs template items for everything, comes with a convenient recipe selector GUI - * Three item and three fluids for in and outputs - * Slots are locked to the ingredients they accept, allowing for better performance and shift click support - * Item IO now works like most other machines instead of using chutes - * If the center block right above the chemplant is not air, it will render with a frame, making chemplant stacking actually nice to look at - * Now has a more convenient 3x3 footprint - * Features 12 access ports, more than enough for full coverage of the entire machine's IO - * Has an optional slot for template items separate from the recipe selector (i.e. secret recipes) (doesn't work yet since we don't have secret recipe :P) - * Ports are now standardized, no longer are fluids connected to ports that look like copper contacts - * Can't use upgrades just yet - ## Changed -* Added Ukrainian localization -* The RBMK console's grid can now be rotated using a screwdriver -* Tool abilities have changed - * Right-clicking while holding ALT now opens a configuration window - * The configuration window allows creation of tool presets - * Area and block abilities can now be toggled independently from each other. For example, the vein miner ability can be combined with silk touch - * Clicking on the same ability allows switching between levels -* Updated textures for the armor and gun modification tables -* Ported the fire extinguisher to the SEDNA gun system, eliminating the final remaining ItemGunBase gun -* Water extinguishers can now wash away foam blocks -* Obliterated Fabsol's vodka -* Tier 4 heart piece is now called "heart of darkness" -* Thermal sights now render dead mobs in black -* Guns now have unique scope overlays instead of reusing the .44 scope for everything -* The new chemplant has slightly altered recipes - * Very basic mixing recipes (e.g. coolant) have been removed, it's now required to use the mixer - * Water to hydrogen peroxide is now 1,000 : 1,000 (instead of 1,000 : 800) - * Sulfuric acid's peroxide requirement has been adjusted accordingly - * Nitric acid has an alternate recipe using air and water, however it takes 4x as long and has a base consumption of 2kHE/t - * Desh now only takes 5 seconds to produce instead of 15 - * Laminate now only takes 50mB of either fluid per recipe and processes much quicker - * Ducrete now uses U238 in the form of ferrouranium, decreasing U238 needed, and no longer requires gravel at all - * All recipes for nuclear fuel production now have a higher base consumption - * Base consumption in general has been tweaked for many later-game recipes. Many recipes however still use the old 100HE/t rate - * Cordite now uses sawdust instead of wood planks and sugar - * Kevlar is now made from aromatics, nitric acid and chlorine (or phosgene in 528 mode) - * Electrolysis using the chemplant has been removed. Hydrogen can be made using water and coal (or coke), and oxygen can be distilled from intake air - * Solid nuclear waste can also be vitrified now - * Thorium salt reprocessing now only has a 50% chance to produce a U233 nugget and a 25% chance to produce nuclear waste, making it less absurdly powerful and easier to deal with the waste - * Glyphid meat processing is now less autistic - * Making rusty steel now only takes 2 seconds per recipe - * Perfluoromethyl can now also be made in the chemical plant (technically, the process isn't just simple mixing after all) - * Recipe changes are still subject to balancing -* Removed niter to nitric acid liquefaction recipe -* Updated N2 model - * Glow in the dark paint not included (yet) -* Wooden scaffolds now have a slightly smaller hitbox and are climbable -* Hanging chains and vines can now be climbed by holding space -* Hopefully fixed the strand caster being weird for good -* Removed angry metal drop from meteorites (use the assembler recipe) -* The automatic buzzsaw can now handle crops -* The automatic buzzsaw will no longer clip through walls when extending -* The automatic buzzsaw can be turned off using a screwdriver -* Template folders now support page turning via scrolling -* Named crates will now show their names in the GUI as well as as a tooltip -* Vanilla anvils no longer increase experience costs when renaming an item -* Fans now have diminishing force, old behavior can be restored with the hand drill +* Opening the tool ability configuration menu is now its own keybind instead of using the copy tool's alt keybind + right click +* Cycling though tool abilities is now a custom keybind (still right click by default) +* Removed legacy hardron cooler +* Removed 20hz transformers +* High-octane diesel is now called high-cetane diesel ## Fixed -* Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts -* Fixed strand caster fluid gauges going out of bounds -* Fixed arc welder and soldering station not changing buffer size based on upgrade, preventing use of higher overdrive tiers -* Fixed non-standard template folder recipes not using the correct icon -* Fixed jetpack flight time not resetting when equipped like armor, causing kicks on servers that don't have flying cheats allowed -* Fixed missing energy damage category localization -* Fixed server crash caused by tool abilities -* Fixed chunkloading entities not releasing their loading tickets properly -* Potentially fixed a dupe issue related to tool abilities -* Fixed certain sky features not being as bright as they should be -* Fixed detailed hitboxes behaving weird -* Fixed issue where empty crates would retain irrelevant NBT data, rendering them unstackable with freshly crafted crates +* Fixed new chemical plant ports not initializing their proxies properly +* Fixed chunkloading entities immediately throwing away their loader ticket +* Fixed builder jetpack not resetting flight time properly +* Fixed new chemplant's ferric schrabidate recipe +* Fixed single reload guns reloading multiple rounds at once when having multiple valid ammo stacks \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index e276ed3a5..17c61bd4b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5356 +mod_build_number=5357 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b3e81b36b..143c33fa0 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -734,7 +734,6 @@ public class ModBlocks { public static Block hadron_analysis_glass; public static Block hadron_access; public static Block hadron_core; - public static Block hadron_cooler; public static Block pa_source; public static Block pa_beamline; @@ -854,9 +853,7 @@ public class ModBlocks { public static Block barrel_antimatter; public static Block machine_transformer; - public static Block machine_transformer_20; public static Block machine_transformer_dnt; - public static Block machine_transformer_dnt_20; public static Block machine_solar_boiler; public static Block solar_mirror; @@ -1855,7 +1852,6 @@ public class ModBlocks { hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron, true).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass"); hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_access"); hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_core"); - hadron_cooler = new BlockHadronCooler(Material.iron).setBlockName("hadron_cooler").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); pa_source = new BlockPASource().setStepSound(Block.soundTypeMetal).setBlockName("pa_source").setHardness(5.0F).setResistance(10.0F); pa_beamline = new BlockPABeamline().setStepSound(Block.soundTypeMetal).setBlockName("pa_beamline").setHardness(5.0F).setResistance(10.0F); @@ -1985,8 +1981,6 @@ public class ModBlocks { machine_transformer = new MachineTransformer(Material.iron, 10000L, 1).setBlockName("machine_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron"); machine_transformer_dnt = new MachineTransformer(Material.iron, 1000000000000000L, 1).setBlockName("machine_transformer_dnt").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer"); - machine_transformer_20 = new MachineTransformer(Material.iron, 10000L, 20).setBlockName("machine_transformer_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron"); - machine_transformer_dnt_20 = new MachineTransformer(Material.iron, 1000000000000000L, 20).setBlockName("machine_transformer_dnt_20").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer"); machine_satlinker = new MachineSatLinker(Material.iron).setBlockName("machine_satlinker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_satlinker_side"); machine_keyforge = new MachineKeyForge(Material.iron).setBlockName("machine_keyforge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":machine_keyforge_side"); @@ -3137,7 +3131,6 @@ public class ModBlocks { GameRegistry.registerBlock(hadron_analysis_glass, hadron_analysis_glass.getUnlocalizedName()); GameRegistry.registerBlock(hadron_access, hadron_access.getUnlocalizedName()); GameRegistry.registerBlock(hadron_core, hadron_core.getUnlocalizedName()); - register(hadron_cooler); register(pa_source); register(pa_beamline); @@ -3261,9 +3254,7 @@ public class ModBlocks { register(capacitor_tantalium); register(capacitor_schrabidate); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); - GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); - GameRegistry.registerBlock(machine_transformer_dnt_20, machine_transformer_dnt_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_converter_he_rf, machine_converter_he_rf.getUnlocalizedName()); GameRegistry.registerBlock(machine_converter_rf_he, machine_converter_rf_he.getUnlocalizedName()); GameRegistry.registerBlock(machine_electric_furnace_off, machine_electric_furnace_off.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java b/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java index 85f0d4725..6773ec560 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java +++ b/src/main/java/com/hbm/blocks/machine/BlockCMFlux.java @@ -2,8 +2,9 @@ package com.hbm.blocks.machine; import net.minecraft.block.material.Material; -public class BlockCMFlux extends BlockPillar{ - public BlockCMFlux(Material mat, String top) { - super(mat, top); - } +public class BlockCMFlux extends BlockPillar { + + public BlockCMFlux(Material mat, String top) { + super(mat, top); + } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java b/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java index f339fbb48..a43b35be2 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java +++ b/src/main/java/com/hbm/blocks/machine/BlockCMHeat.java @@ -2,8 +2,9 @@ package com.hbm.blocks.machine; import net.minecraft.block.material.Material; -public class BlockCMHeat extends BlockPillar{ - public BlockCMHeat(Material mat, String top) { - super(mat, top); - } +public class BlockCMHeat extends BlockPillar { + + public BlockCMHeat(Material mat, String top) { + super(mat, top); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java index b68a698da..cf94cca5e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant; import net.minecraft.block.material.Material; @@ -18,6 +19,7 @@ public class MachineChemicalPlant extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityMachineChemicalPlant(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); return null; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTransformer.java b/src/main/java/com/hbm/blocks/machine/MachineTransformer.java index 1369765fb..60751e333 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTransformer.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTransformer.java @@ -2,39 +2,31 @@ package com.hbm.blocks.machine; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineTransformer; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; +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.util.IIcon; -import net.minecraft.world.World; -public class MachineTransformer extends BlockContainer { - - long buffer; - int delay; +public class MachineTransformer extends Block { @SideOnly(Side.CLIENT) private IIcon iconTop; public MachineTransformer(Material p_i45394_1_, long b, int d) { super(p_i45394_1_); - buffer = b; - delay = d; } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - if(this == ModBlocks.machine_transformer || this == ModBlocks.machine_transformer_20) { + if(this == ModBlocks.machine_transformer) { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_top_iron"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_iron"); } - if(this == ModBlocks.machine_transformer_dnt || this == ModBlocks.machine_transformer_dnt_20) { + if(this == ModBlocks.machine_transformer_dnt) { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_top"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer"); } @@ -45,9 +37,4 @@ public class MachineTransformer extends BlockContainer { public IIcon getIcon(int side, int metadata) { return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineTransformer(); - } } diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java index ac480e2e3..db9e90da3 100644 --- a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -1,5 +1,6 @@ package com.hbm.entity.item; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; @@ -193,7 +194,11 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, @Override protected void loadNeighboringChunks() { if(!worldObj.isRemote && loaderTicket != null) { - clearChunkLoader(); + + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + // This is the lowest padding that worked with my drone waypoint path. if they stop getting loaded crank up paddingSize for (ChunkCoordIntPair chunk : ChunkShapeHelper.getChunksAlongLineSegment((int) this.posX, (int) this.posZ, (int) (this.posX + this.motionX), (int) (this.posZ + this.motionZ), 4)){ ForgeChunkManager.forceChunk(loaderTicket, chunk); @@ -210,6 +215,7 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java index 6d5611950..91b4e4eb9 100644 --- a/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java +++ b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java @@ -46,6 +46,7 @@ public abstract class EntityExplosionChunkloading extends Entity implements IChu public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null && loadedChunk != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } } diff --git a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java index 1a9910df7..550a86160 100644 --- a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java +++ b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java @@ -3,6 +3,7 @@ package com.hbm.entity.logic; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; @@ -188,12 +189,15 @@ public abstract class EntityPlaneBase extends Entity implements IChunkLoader { public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - clearChunkLoader(); + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); for(ChunkCoordIntPair chunk : loadedChunks) ForgeChunkManager.forceChunk(loaderTicket, chunk); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index b4e296fe0..0dea01b99 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -3,6 +3,7 @@ package com.hbm.entity.missile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.projectile.EntityThrowableInterp; import com.hbm.explosion.ExplosionLarge; @@ -202,7 +203,9 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - clearChunkLoader(); + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) loadedChunks.add(new ChunkCoordIntPair(newChunkX + i, newChunkZ + j)); @@ -222,6 +225,7 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 610341732..c35497bce 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -3,6 +3,7 @@ package com.hbm.entity.missile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.projectile.EntityThrowableInterp; import com.hbm.explosion.ExplosionLarge; @@ -327,8 +328,10 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - - clearChunkLoader(); + + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); @@ -349,6 +352,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java index 9167c33a7..47d0fbd65 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java @@ -3,6 +3,7 @@ package com.hbm.entity.projectile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.projectile.rocketbehavior.IRocketSteeringBehavior; import com.hbm.entity.projectile.rocketbehavior.IRocketTargetingBehavior; @@ -159,7 +160,9 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - clearChunkLoader(); + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); @@ -179,6 +182,7 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index 9258e5a7d..c4d6443d2 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -3,6 +3,7 @@ package com.hbm.entity.projectile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.items.weapon.ItemAmmoArty; import com.hbm.items.weapon.ItemAmmoArty.ArtilleryShell; @@ -193,8 +194,10 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { - - clearChunkLoader(); + + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); @@ -214,6 +217,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java index 9e551c8e6..84f4c35c5 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java @@ -3,6 +3,7 @@ package com.hbm.entity.projectile; import java.util.ArrayList; import java.util.List; +import com.google.common.collect.ImmutableSet; import com.hbm.entity.logic.IChunkLoader; import com.hbm.items.weapon.sedna.BulletConfig; import com.hbm.main.MainRegistry; @@ -61,13 +62,17 @@ public class EntityBulletBaseMK4CL extends EntityBulletBaseMK4 implements IChunk public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { ForgeChunkManager.releaseTicket(loaderTicket); + this.loaderTicket = null; } } public void loadNeighboringChunks(int newChunkX, int newChunkZ) { if(!worldObj.isRemote && loaderTicket != null) { + + for(ChunkCoordIntPair chunk : ImmutableSet.copyOf(loaderTicket.getChunkList())) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } - clearChunkLoader(); loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index 08c322adf..1e0aa6991 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -335,14 +335,14 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { adder.add(damageAmount); } - public float getDamage(int bitIndex) { + /*public float getDamage(int bitIndex) { DoubleAdder adder = damageMap.get(bitIndex); return adder == null ? 0f : (float) adder.sum(); - } + }*/ - public void clearDamage(int bitIndex) { + /*public void clearDamage(int bitIndex) { damageMap.remove(bitIndex); - } + }*/ public Set> entrySet() { return damageMap.entrySet(); diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index d924a7e34..9cfcd65fb 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -1,6 +1,7 @@ package com.hbm.handler; import com.hbm.inventory.gui.GUICalculator; +import com.hbm.items.IKeybindReceiver; import cpw.mods.fml.common.FMLCommonHandler; import org.lwjgl.input.Keyboard; @@ -14,8 +15,9 @@ import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.InputEvent.MouseInputEvent; -import net.minecraft.client.Minecraft; import net.minecraft.client.settings.KeyBinding; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; public class HbmKeybinds { @@ -28,6 +30,8 @@ public class HbmKeybinds { public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_LSHIFT, category); public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category); + public static KeyBinding abilityCycle = new KeyBinding(category + ".ability", -99, category); + public static KeyBinding abilityAlt = new KeyBinding(category + ".abilityAlt", Keyboard.KEY_LMENU, category); public static KeyBinding copyToolAlt = new KeyBinding(category + ".copyToolAlt", Keyboard.KEY_LMENU, category); public static KeyBinding copyToolCtrl = new KeyBinding(category + ".copyToolCtrl", Keyboard.KEY_LCONTROL, category); @@ -60,6 +64,7 @@ public class HbmKeybinds { ClientRegistry.registerKeyBinding(craneLeftKey); ClientRegistry.registerKeyBinding(craneRightKey); ClientRegistry.registerKeyBinding(craneLoadKey); + ClientRegistry.registerKeyBinding(abilityAlt); ClientRegistry.registerKeyBinding(copyToolAlt); ClientRegistry.registerKeyBinding(copyToolCtrl); } @@ -81,12 +86,13 @@ public class HbmKeybinds { @SubscribeEvent public void keyEvent(KeyInputEvent event) { + EntityPlayer player = MainRegistry.proxy.me(); if (calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only - Minecraft.getMinecraft().thePlayer.closeScreen(); + player.closeScreen(); FMLCommonHandler.instance().showGuiScreen(new GUICalculator()); } - HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me()); + HbmPlayerProps props = HbmPlayerProps.getData(player); for(EnumKeybind key : EnumKeybind.values()) { boolean last = props.getKeyPressed(key); @@ -95,9 +101,19 @@ public class HbmKeybinds { if(last != current) { PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current)); props.setKeyPressed(key, current); + onPressedClient(player, key, current); } } } + + public static void onPressedClient(EntityPlayer player, EnumKeybind key, boolean state) { + // ITEM HANDLING + ItemStack held = player.getHeldItem(); + if(held != null && held.getItem() instanceof IKeybindReceiver) { + IKeybindReceiver rec = (IKeybindReceiver) held.getItem(); + if(rec.canHandleKeybind(player, held, key)) rec.handleKeybindClient(player, held, key, state); + } + } public static enum EnumKeybind { JETPACK, @@ -111,6 +127,8 @@ public class HbmKeybinds { CRANE_LEFT, CRANE_RIGHT, CRANE_LOAD, + ABILITY_CYCLE, + ABILITY_ALT, TOOL_ALT, TOOL_CTRL, GUN_PRIMARY, diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java index 44cbd5ad4..ca4bcc193 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -217,6 +217,7 @@ public class ChemicalPlantRecipes extends GenericRecipes { .outputFluids(new FluidStack(Fluids.SCHRABIDIC, 16000))); this.register(new GenericRecipe("chem.schrabidate").setup(150, 5_000) + .inputItems(new OreDictStack(IRON.dust())) .inputFluids(new FluidStack(Fluids.SCHRABIDIC, 250)) .outputItems(new ItemStack(ModItems.powder_schrabidate))); diff --git a/src/main/java/com/hbm/items/IKeybindReceiver.java b/src/main/java/com/hbm/items/IKeybindReceiver.java index 5a44b4cce..7a6204a51 100644 --- a/src/main/java/com/hbm/items/IKeybindReceiver.java +++ b/src/main/java/com/hbm/items/IKeybindReceiver.java @@ -9,4 +9,5 @@ public interface IKeybindReceiver { public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind); public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state); + public default void handleKeybindClient(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state) { } } diff --git a/src/main/java/com/hbm/items/armor/JetpackBreak.java b/src/main/java/com/hbm/items/armor/JetpackBreak.java index 029b00486..e5c4128f9 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBreak.java +++ b/src/main/java/com/hbm/items/armor/JetpackBreak.java @@ -71,8 +71,9 @@ public class JetpackBreak extends JetpackFueledBase { world.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:weapon.flamethrowerShoot", 0.25F, 1.5F); this.useUpFuel(player, stack, 10); - ArmorUtil.resetFlightTime(player); } + + ArmorUtil.resetFlightTime(player); } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index aa8ce2268..06e20e6f7 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -13,9 +13,9 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.hbm.inventory.gui.GUIScreenToolAbility; import com.hbm.items.IItemControlReceiver; -import com.hbm.handler.HbmKeybinds; +import com.hbm.items.IKeybindReceiver; +import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.blocks.ModBlocks; -import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ability.AvailableAbilities; import com.hbm.handler.ability.IBaseAbility; import com.hbm.handler.ability.IToolAreaAbility; @@ -54,7 +54,7 @@ import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.IShearable; import net.minecraftforge.event.world.BlockEvent; -public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIProvider, IItemControlReceiver { +public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIProvider, IItemControlReceiver, IKeybindReceiver { protected boolean isShears = false; protected EnumToolType toolType; @@ -251,37 +251,6 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro } } - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - - if(!canOperate(stack)) - return super.onItemRightClick(stack, world, player); - - if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) { - if(world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); - return stack; - } - - Configuration config = getConfiguration(stack); - - if(config.presets.size() < 2 || world.isRemote) - return super.onItemRightClick(stack, world, player); - - - if(player.isSneaking()) { - config.currentPreset = 0; - } else { - config.currentPreset = (config.currentPreset + 1) % config.presets.size(); - } - - setConfiguration(stack, config); - - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(config.getActivePreset().getMessage(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); - - world.playSoundAtEntity(player, "random.orb", 0.25F, config.getActivePreset().isNone() ? 0.75F : 1.25F); - - return stack; - } - public void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playerEntity, int refX, int refY, int refZ) { if(world.isAirBlock(x, y, z)) @@ -521,4 +490,38 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIScreenToolAbility(this.availableAbilities); } + + @Override + public boolean canHandleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind) { + if(player.worldObj.isRemote) return keybind == EnumKeybind.ABILITY_ALT; + return keybind == EnumKeybind.ABILITY_CYCLE; + } + + @Override + public void handleKeybind(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state) { + + if(keybind == EnumKeybind.ABILITY_CYCLE && state) { + + World world = player.worldObj; + if(!canOperate(stack)) return; + + Configuration config = getConfiguration(stack); + if(config.presets.size() < 2 || world.isRemote) return; + + if(player.isSneaking()) { + config.currentPreset = 0; + } else { + config.currentPreset = (config.currentPreset + 1) % config.presets.size(); + } + + setConfiguration(stack, config); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(config.getActivePreset().getMessage(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); + world.playSoundAtEntity(player, "random.orb", 0.25F, config.getActivePreset().isNone() ? 0.75F : 1.25F); + } + } + + @Override + public void handleKeybindClient(EntityPlayer player, ItemStack stack, EnumKeybind keybind, boolean state) { + if(state) player.openGui(MainRegistry.instance, 0, player.worldObj, 0, 0, 0); + } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java index 8b68e610e..74df8d102 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mags/MagazineSingleTypeBase.java @@ -98,6 +98,8 @@ public abstract class MagazineSingleTypeBase implements IMagazine for(int i = 0; i < inventory.getSizeInventory(); i++) { ItemStack slot = inventory.getStackInSlot(i); + if(loadLimit <= 0) return; + if(slot != null) { //mag is empty, assume next best type @@ -110,6 +112,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine int toLoad = BobMathUtil.min(wantsToLoad, slot.stackSize, loadLimit); this.setAmount(stack, Math.min(toLoad * config.ammoReloadCount, this.capacity)); inventory.decrStackSize(i, toLoad); + loadLimit -= toLoad; break; } } @@ -124,6 +127,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine int toLoad = BobMathUtil.min(wantsToLoad, slot.stackSize, loadLimit); this.setAmount(stack, Math.min((toLoad * config.ammoReloadCount) + alreadyLoaded, this.capacity)); inventory.decrStackSize(i, toLoad); + loadLimit -= toLoad; } } @@ -146,6 +150,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine int toLoad = BobMathUtil.min(wantsToLoad, infBag ? 9_999 : bagslot.stackSize, loadLimit); this.setAmount(stack, Math.min(toLoad * config.ammoReloadCount, this.capacity)); if(!infBag) bag.decrStackSize(j, toLoad); + loadLimit -= toLoad; break; } } @@ -160,6 +165,7 @@ public abstract class MagazineSingleTypeBase implements IMagazine int toLoad = BobMathUtil.min(wantsToLoad, infBag ? 9_999 : bagslot.stackSize, loadLimit); this.setAmount(stack, Math.min((toLoad * config.ammoReloadCount) + alreadyLoaded, this.capacity)); if(!infBag) bag.decrStackSize(j, toLoad); + loadLimit -= toLoad; } } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 9a96ec0ac..27fe4f45d 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 (5356)"; + public static final String VERSION = "1.0.27 BETA (5357)"; //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 294781953..5c157900b 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -2081,8 +2081,10 @@ public class ClientProxy extends ServerProxy { case CRANE_LEFT: return HbmKeybinds.craneLeftKey.getIsKeyPressed(); case CRANE_RIGHT: return HbmKeybinds.craneRightKey.getIsKeyPressed(); case CRANE_LOAD: return HbmKeybinds.craneLoadKey.getIsKeyPressed(); - case TOOL_ALT: return HbmKeybinds.copyToolAlt.getIsKeyPressed(); - case TOOL_CTRL: return HbmKeybinds.copyToolCtrl.getIsKeyPressed(); + case ABILITY_CYCLE: return HbmKeybinds.abilityCycle.getIsKeyPressed(); + case ABILITY_ALT: return HbmKeybinds.abilityAlt.getIsKeyPressed(); + case TOOL_ALT: return HbmKeybinds.copyToolAlt.getIsKeyPressed(); + case TOOL_CTRL: return HbmKeybinds.copyToolCtrl.getIsKeyPressed(); case GUN_PRIMARY: return HbmKeybinds.gunPrimaryKey.getIsKeyPressed(); case GUN_SECONDARY: return HbmKeybinds.gunSecondaryKey.getIsKeyPressed(); case GUN_TERTIARY: return HbmKeybinds.gunTertiaryKey.getIsKeyPressed(); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 1a455e86b..ab9f2f995 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1690,6 +1690,9 @@ public class MainRegistry { ignoreMappings.add("hbm:item.test_nuke_tier2_bullet"); ignoreMappings.add("hbm:item.test_nuke_tier1_target"); ignoreMappings.add("hbm:item.test_nuke_tier2_target"); + ignoreMappings.add("hbm:tile.hadron_cooler"); + ignoreMappings.add("hbm:tile.machine_transformer_20"); + ignoreMappings.add("hbm:tile.machine_transformer_dnt_20"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/packet/toserver/KeybindPacket.java b/src/main/java/com/hbm/packet/toserver/KeybindPacket.java index 945d21e69..94aac041d 100644 --- a/src/main/java/com/hbm/packet/toserver/KeybindPacket.java +++ b/src/main/java/com/hbm/packet/toserver/KeybindPacket.java @@ -40,7 +40,6 @@ public class KeybindPacket implements IMessage { EntityPlayer p = ctx.getServerHandler().playerEntity; HbmKeybindsServer.onPressedServer(p, EnumKeybind.values()[m.key], m.pressed); - return null; } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 9a125268a..f8252b5af 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -112,7 +112,6 @@ public class TileMappings { put(TileEntityMachineSiren.class, "tileentity_siren"); put(TileEntityMachineSPP.class, "tileentity_spp"); put(TileEntityMachineRadGen.class, "tileentity_radgen"); - put(TileEntityMachineTransformer.class, "tileentity_transformer"); put(TileEntityMachineRadarNT.class, "tileentity_radar"); put(TileEntityMachineRadarLarge.class, "tileentity_radar_large"); put(TileEntityMachineRadarScreen.class, "tileentity_radar_screen"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index fdfc5e861..48e9b5535 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -400,8 +400,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe int charge; int analysis; boolean isCheckExempt = false; - int cl0 = 0; - int cl1 = 0; boolean expired = false; boolean cloned = false; @@ -436,8 +434,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe p.charge = charge; p.analysis = analysis; p.isCheckExempt = isCheckExempt; - p.cl0 = cl0; - p.cl1 = cl1; p.expired = expired; p.plugs = new ArrayList(plugs); p.cloned = true; @@ -476,27 +472,9 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe if(charge < 0) expire(this, EnumHadronState.ERROR_NO_CHARGE); - - if(cl0 > 0) cl0--; - if(cl1 > 0) cl1--; } public void incrementCharge(int coilVal) { - //not the best code ever made but it works, dammit - if(cl1 > 0) { - - double mult = 2D - (cl1 - 15D) * (cl1 - 15D) / 225D; - mult = Math.max(mult, 0.1D); - coilVal *= mult; - - } else if(cl0 > 0) { - if(cl0 > 10) { - coilVal *= 0.75; - } else { - coilVal *= 1.10; - } - } - this.momentum += coilVal; } @@ -618,11 +596,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe } else { p.charge -= coilVal; totalValue += coilVal; - - if(block == ModBlocks.hadron_cooler) { - if(meta == 0) p.cl0 += 10; - if(meta == 1) p.cl1 += 5; - } } continue; @@ -842,9 +815,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe public boolean isValidCoil(Block b) { if(coilValue(b) > 0) return true; - - if(b == ModBlocks.hadron_cooler) return true; - return false; } @@ -862,8 +832,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe b instanceof BlockHadronCoil || b == ModBlocks.hadron_plating_glass || b == ModBlocks.hadron_analysis_glass || - b == ModBlocks.hadron_access || - b == ModBlocks.hadron_cooler; + b == ModBlocks.hadron_access; } public boolean isAnalysis(Block b) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTransformer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTransformer.java deleted file mode 100644 index f6b42b9f2..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTransformer.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.hbm.tileentity.machine; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityMachineTransformer extends TileEntity { -} diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index ee12ac748..356164a26 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -882,7 +882,7 @@ public class BunkerComponents { fillWithMetadataBlocks(world, box, 1, 1, 1, 1, 1, 5, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); fillWithBlocks(world, box, 1, 1, 6, 1, 3, 6, ModBlocks.concrete_pillar); fillWithMetadataBlocks(world, box, 1, 3, 1, 1, 3, 5, ModBlocks.concrete_smooth_stairs, stairMetaW); - placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer_20, 0, 1, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer, 0, 1, 2, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.cable_diode, decoMetaN, 1, 2, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.machine_battery, decoMetaE, 1, 2, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 1, 2, 4, box); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c39ae14cb..819c38039 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -707,6 +707,8 @@ hazard.particleFine=Feinstaub hazard.sand=Augenreizstoffe hbm.key=NTM Hotkeys +hbm.key.ability=Werkzeug umschalten +hbm.key.abilityAlt=Werkzeug konfigurieren hbm.key.calculator=Taschenrechner hbm.key.copyToolAlt=Kopierwerkzeug: Einfügen umschalten hbm.key.copyToolCtrl=Kopierwerkzeug: Auf Rohre einfügen @@ -721,6 +723,7 @@ hbm.key.gunSecondary=Sekundärfeuer hbm.key.gunTertitary=Zielvisier hbm.key.toggleBack=Jetpack umschalten hbm.key.toggleHUD=HUD umschalten +hbm.key.toggleMagnet=Magnet umschalten hbm.key.trainInv=Zug-Inventar hbm.key.reload=Nachladen @@ -756,8 +759,8 @@ hbmfluid.death=Osmiridiumlösung hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel hbmfluid.diesel_crack=Crackdiesel -hbmfluid.diesel_crack_reform=Hochoktan-Diesel -hbmfluid.diesel_reform=Hochoktan-Crackdiesel +hbmfluid.diesel_crack_reform=Hochcetan-Diesel +hbmfluid.diesel_reform=Hochcetan-Crackdiesel hbmfluid.egg=Gelöstes Ei hbmfluid.estradiol=Estradiollösung hbmfluid.ethanol=Ethanol @@ -4161,8 +4164,8 @@ tile.factory_titanium_furnace.name=Einfache Fabrikzugriffsluke tile.factory_titanium_hull.name=Fabrikblock tile.fallout.name=Fallout tile.fan.name=Ventilator -tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen$Klicken Sie mit der rechten Maustaste mit der Handbohrmaschine um den Modus zu wechseln -tile.fan.falloffOn=Die Lüfterleistung nimmt mit der Entfernung ab +tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen$Rechtsclick mit Handbohrmaschine um den Modus zu wechseln +tile.fan.falloffOn=Die Ventilatorleistung nimmt mit Entfernung ab tile.fan.falloffOff=Konstante Lüfterleistung tile.fence_metal.name=Maschendrahtzaun tile.fence_metal_post.name=Maschendrahtzaun-Pfahl @@ -4262,8 +4265,6 @@ tile.hadron_coil_neodymium.name=Dichte Neodymspule tile.hadron_coil_schrabidate.name=Dichte Schrabidatspule tile.hadron_coil_schrabidium.name=Dichte Schrabidiumspule tile.hadron_coil_starmetal.name=Dichte Sternenmetallspule -tile.hadron_cooler.name=Teilchenbeschleuniger-Kühlungseinheit -tile.hadron_cooler_mk2.nameTeilchenbeschleuniger-Kühlungseinheit - Das Palindrome-Spezial tile.hadron_core.name=Teilchenbeschleuniger-Kernkomponente tile.hadron_diode.name=Schottky-Partikeldiode tile.hadron_plating.name=Teilchenbeschleuniger-Außenwand diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 4c8168952..d690efe90 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1414,6 +1414,8 @@ hazard.particleFine=Particulates hazard.sand=Eye Irritants hbm.key=NTM Hotkeys +hbm.key.ability=Cycle Tool Abilities +hbm.key.abilityAlt=Configure Tool Abilities hbm.key.calculator=Calculator hbm.key.copyToolAlt=Copy Tool: Switch Paste hbm.key.copyToolCtrl=Copy Tool: Paste to Pipes @@ -1428,6 +1430,7 @@ hbm.key.gunSecondary=Secondary Fire hbm.key.gunTertitary=Gun Sights hbm.key.toggleBack=Toggle Jetpack hbm.key.toggleHUD=Toggle HUD +hbm.key.toggleMagnet=Toggle Magnet hbm.key.trainInv=Train Inventory hbm.key.reload=Reload @@ -1465,8 +1468,8 @@ hbmfluid.death=Osmiridic Solution hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel hbmfluid.diesel_crack=Cracked Diesel -hbmfluid.diesel_crack_reform=High-Octane Cracked Diesel -hbmfluid.diesel_reform=High-Octane Diesel +hbmfluid.diesel_crack_reform=High-Cetane Cracked Diesel +hbmfluid.diesel_reform=High-Cetane Diesel hbmfluid.egg=Dissolved Egg hbmfluid.estradiol=Estradiol Solution hbmfluid.ethanol=Ethanol @@ -5387,10 +5390,6 @@ tile.hadron_coil_neodymium.name=Dense Neodymium Coil tile.hadron_coil_schrabidate.name=Dense Schrabidate Coil tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil tile.hadron_coil_starmetal.name=Dense Starmetal Coil -tile.hadron_cooler.name=Particle Accelerator Cooling Unit -tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% -tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special -tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% tile.hadron_core.name=Particle Accelerator Core Component tile.hadron_diode.name=Schottky Particle Diode tile.hadron_plating.name=Particle Accelerator Plating diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png b/src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png deleted file mode 100644 index 04e26493292b22c1008c60d71b6f3366c2b0ffd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284 zcmV+%0ptFOP)ST5Jex77ho0&YD#2US{6#pCLl!RHYEi@>|i4{2&wEi z*q{uME6>mW-<^IkFUvus2BiSd#?aJt3}H|T0q~rruZMl#>H3~ZO4qw$gx|2Wt}B(4 zlttm3(liYi;3ELAWf`w=4A!_~oPah4ya#};?*ZH@F-F+&H)Dd&m6T{>D2swYsel0x zgHpl4th2w$xo0bRwCw>nm$R7mT${QM7@;F$#d=pvVuR#g+)iU58>ASM%*%3Ig(S~& iC-4u_4?()CJLV0|AlW>Lj}`O)0000xDEoC-=>p+(3p#@Tjj-09suVUY0(DzD`j9Umv#z zFNT*lR?C7ckF9r%QDeiXxZjfHF|%kx80{vVp3fZy*arYSUuhQWcV~?$#s;*yWU)Sk zSIYvxuHs{qIsVh*r}J@^$F#a+7H#P3)L{TrU#HH6naSf-etTA3l}J}5B10oxmB`J- zi5Rb|5_x@?+sDVKR`33C80|xiHzmUarby!(H#^(#pCb8~K!!$+mE`*F%m)0qNM`bX dDAJUsm~Y}8?L&b$H30ws002ovPDHLkV1kwFjF12T diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_bottom.png deleted file mode 100644 index e1062efc4f145a66dd7cae35f4785f81162e92fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmV-F0l@x=P)o793`Ac$Ippy)2`Do!E-T4LceV1{*Z0q_F@{$lA~ePr#&HC|dr#l@*|)BxdW;ckE%Q9{t{Zw#lfCx` za*Pq+PoQ)zH>i;Tn&g&-rfH&f6A@t;20{q5ZTl3^j>Z_)bv+eu&h6w7!c(Bk53p@p z_TP0KKt|qgptEY+Z&&WOYgS9-6d^m}nMe&;1btPF%g5)TRz_$5thJOvDRa#^6G&uh zEh2(*?vyMdhb^)QF~b~n3`Sp~YzQfEiq6f{C5Om~a{;abNXTz%qWLi16FD zjx`ZsJI}K}6u^Do9LMoc;=O;=`V|z`q-_|ztpThSp2h0*?zYwySgA7wwO00h?~vvI zHhZvJ)D*U_Z*%Lc!8Tey%dM~ASGJ9fB0@@O+AJcE+!q*({B+GLZs!01002ovPDHLk FV1iwUg8={l diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_funnel_ore_top.png deleted file mode 100644 index 6b0e57915406c8676ec82e1a4477ffdfa9e8cf6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmV-L0lNN)P)F>b^l5Jg{Bn+jP0iku-8MY=S;fIHun-e+*X7f1m_XsQ%R z5n+SZ&aU=LNa)Y}uRkzPZ|@&JN+}+Jh;UX)F^(euAq1?o&AsLdpL3?`I;LsjTo=6e z030O}5del^AmU6&*s!M zr4%Wp)nFUB2yStUK^^H{XswSE+=FI>@+FVp1kiO|Lq5N}UN!D Date: Tue, 10 Jun 2025 22:59:04 +0200 Subject: [PATCH 161/181] dagoth ur yaoi --- changelog | 12 ++---------- .../machine/TileEntityMachineChemicalPlant.java | 10 ++++++++++ .../java/com/hbm/util/DamageResistanceHandler.java | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/changelog b/changelog index 52000176e..5fcf22212 100644 --- a/changelog +++ b/changelog @@ -1,13 +1,5 @@ ## Changed -* Opening the tool ability configuration menu is now its own keybind instead of using the copy tool's alt keybind + right click -* Cycling though tool abilities is now a custom keybind (still right click by default) -* Removed legacy hardron cooler -* Removed 20hz transformers -* High-octane diesel is now called high-cetane diesel +* The DNT suit now has a damage threshold of 1,000 ## Fixed -* Fixed new chemical plant ports not initializing their proxies properly -* Fixed chunkloading entities immediately throwing away their loader ticket -* Fixed builder jetpack not resetting flight time properly -* Fixed new chemplant's ferric schrabidate recipe -* Fixed single reload guns reloading multiple rounds at once when having multiple valid ammo stacks \ No newline at end of file +* Chemical plant ports. For real this time. \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index 8e933c2f9..ef7bdd827 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -184,6 +184,16 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem return false; } + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i >= 7 && i <= 9; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] {4, 5, 6, 7, 8, 9}; + } + @Override public long getPower() { return power; } @Override public void setPower(long power) { this.power = power; } @Override public long getMaxPower() { return maxPower; } diff --git a/src/main/java/com/hbm/util/DamageResistanceHandler.java b/src/main/java/com/hbm/util/DamageResistanceHandler.java index 559d6a578..d5e475de9 100644 --- a/src/main/java/com/hbm/util/DamageResistanceHandler.java +++ b/src/main/java/com/hbm/util/DamageResistanceHandler.java @@ -218,7 +218,7 @@ public class DamageResistanceHandler { registerSet(ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots, new ResistanceStats() .addCategory(CATEGORY_EXPLOSION, 100F, 0.99F) .addCategory(CATEGORY_FIRE, 0F, 1F) - .setOther(100F, 1F)); + .setOther(1000F, 1F)); registerSet(ModItems.taurun_helmet, ModItems.taurun_plate, ModItems.taurun_legs, ModItems.taurun_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) .addCategory(CATEGORY_FIRE, 0F, 0.25F) From 79dcb69ed263f9cc27d7fa2de695ce207a925eee Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:18:21 +0800 Subject: [PATCH 162/181] some refactor --- .../ExplosionNukeRayParallelized.java | 18 ++++---- src/main/java/com/hbm/util/ChunkKey.java | 7 +++- .../java/com/hbm/util/SubChunkSnapshot.java | 42 ++++++------------- 3 files changed, 27 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index 1e0aa6991..e6f01e18c 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -20,8 +20,11 @@ import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.DoubleAdder; -import static com.hbm.util.SubChunkSnapshot.getSnapshot; - +/** + * Threaded DDA raytracer for the nuke explosion. + * + * @author mlbv + */ public class ExplosionNukeRayParallelized implements IExplosionRay { private static final int WORLD_HEIGHT = 256; @@ -114,10 +117,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { while (System.nanoTime() < deadline) { ChunkKey ck = cacheQueue.poll(); if (ck == null) break; - snapshots.computeIfAbsent(ck, key -> { - SubChunkSnapshot snap = getSnapshot(this.world, key.pos, key.subY); - return snap == null ? SubChunkSnapshot.EMPTY : snap; - }); + snapshots.computeIfAbsent(ck, k -> SubChunkSnapshot.getSnapshot(world, k, BombConfig.chunkloading)); } } @@ -188,7 +188,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { if (bs.isEmpty()) { destructionMap.remove(cp); for (int sy = 0; sy < (WORLD_HEIGHT >> 4); sy++) { - snapshots.remove(new ChunkKey(cp.chunkXPos, cp.chunkZPos, sy)); + snapshots.remove(new ChunkKey(cp, sy)); } it.remove(); } @@ -244,7 +244,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private List generateSphereRays(int count) { List list = new ArrayList<>(count); - if (count <= 0) return list; + if (count == 0) return list; if (count == 1) { list.add(Vec3.createVectorHelper(1, 0, 0).normalize()); return list; @@ -293,7 +293,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { continue; } - ChunkKey snapshotKey = new ChunkKey(cp.chunkXPos, cp.chunkZPos, subY); + ChunkKey snapshotKey = new ChunkKey(cp, subY); SubChunkSnapshot snap = snapshots.get(snapshotKey); Block originalBlock; diff --git a/src/main/java/com/hbm/util/ChunkKey.java b/src/main/java/com/hbm/util/ChunkKey.java index 62c2f7c9a..4f3bd0ba3 100644 --- a/src/main/java/com/hbm/util/ChunkKey.java +++ b/src/main/java/com/hbm/util/ChunkKey.java @@ -6,7 +6,7 @@ import java.util.Objects; /** * Unique identifier for sub-chunks. - * @Author mlbv + * @author mlbv */ public class ChunkKey { public final ChunkCoordIntPair pos; @@ -17,6 +17,11 @@ public class ChunkKey { this.subY = sy; } + public ChunkKey(ChunkCoordIntPair pos, int sy) { + this.pos = pos; + this.subY = sy; + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/src/main/java/com/hbm/util/SubChunkSnapshot.java b/src/main/java/com/hbm/util/SubChunkSnapshot.java index 6e7b99cc0..cd51d125b 100644 --- a/src/main/java/com/hbm/util/SubChunkSnapshot.java +++ b/src/main/java/com/hbm/util/SubChunkSnapshot.java @@ -2,7 +2,6 @@ package com.hbm.util; import net.minecraft.block.Block; import net.minecraft.init.Blocks; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; @@ -14,7 +13,7 @@ import java.util.Map; /** * A snapshot of a 16×16×16 sub-chunk. - * @Author mlbv + * @author mlbv */ public class SubChunkSnapshot { /** @@ -29,42 +28,25 @@ public class SubChunkSnapshot { this.data = d; } - /** - * Creates a SubChunkSnapshot from a loaded chunk. - * - * @param world - * The World instance from which to retrieve the chunk. - * @param cpos - * The ChunkCoordIntPair identifying the chunk coordinates (x, z). - * @param subY - * The vertical sub-chunk index (0–15) within the chunk. - * @return - * A SubChunkSnapshot containing the palette and block data for the sub-chunk, - * or SubChunkSnapshot.EMPTY if the region is unloaded or contains only air. - */ - public static SubChunkSnapshot getSnapshot(World world, ChunkCoordIntPair cpos, int subY) { - if (!world.getChunkProvider().chunkExists(cpos.chunkXPos, cpos.chunkZPos)) { - return SubChunkSnapshot.EMPTY; - } - return getOrLoadSnapshot(world, cpos, subY); - } - /** * Creates a SubChunkSnapshot. * * @param world * The World instance from which to retrieve the chunk. - * @param cpos - * The ChunkCoordIntPair identifying the chunk coordinates (x, z). - * @param subY - * The vertical sub-chunk index (0–15) within the chunk. + * @param key + * The ChunkKey identifying the sub-chunk. + * @param allowGeneration + * Whether to generate chunks. If false, attempting to retrieve a snapshot of a chunk that does not exist will return {@link SubChunkSnapshot#EMPTY}. * @return * A SubChunkSnapshot containing the palette and block data for the sub-chunk, - * or SubChunkSnapshot.EMPTY if the region contains only air. + * or {@link SubChunkSnapshot#EMPTY} if the region contains only air. */ - public static SubChunkSnapshot getOrLoadSnapshot(World world, ChunkCoordIntPair cpos, int subY){ - Chunk chunk = world.getChunkFromChunkCoords(cpos.chunkXPos, cpos.chunkZPos); - ExtendedBlockStorage ebs = chunk.getBlockStorageArray()[subY]; + public static SubChunkSnapshot getSnapshot(World world, ChunkKey key, boolean allowGeneration){ + if (!world.getChunkProvider().chunkExists(key.pos.chunkXPos, key.pos.chunkZPos) && !allowGeneration) { + return SubChunkSnapshot.EMPTY; + } + Chunk chunk = world.getChunkProvider().provideChunk(key.pos.chunkXPos, key.pos.chunkZPos); + ExtendedBlockStorage ebs = chunk.getBlockStorageArray()[key.subY]; if (ebs == null || ebs.isEmpty()) return SubChunkSnapshot.EMPTY; short[] data = new short[16 * 16 * 16]; From 105f44a36afa376f513511a0df4a7c1f6830697a Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Wed, 11 Jun 2025 17:26:45 +0800 Subject: [PATCH 163/181] description update --- src/main/java/com/hbm/config/BombConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/config/BombConfig.java b/src/main/java/com/hbm/config/BombConfig.java index 7db3c427c..9d069120c 100644 --- a/src/main/java/com/hbm/config/BombConfig.java +++ b/src/main/java/com/hbm/config/BombConfig.java @@ -94,7 +94,7 @@ public class BombConfig { falloutDelayProp.comment = "How many ticks to wait for the next fallout chunk computation"; fDelay = falloutDelayProp.getInt(); - chunkloading = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.05_enableChunkLoading", "Allows all types of procedural explosions to keep the central chunk loaded.", true); + chunkloading = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.05_enableChunkLoading", "Allows all types of procedural explosions to keep the central chunk loaded and to generate new chunks.", true); explosionAlgorithm = CommonConfig.createConfigInt(config, CATEGORY_NUKE, "6.06_explosionAlgorithm", "Configures the algorithm of mk5 explosion. \n0 = Legacy, 1 = Threaded DDA, 2 = Threaded DDA with damage accumulation.", 2); } } From 9c3e6e2ce499f812b3add00b2874990898040045 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Wed, 11 Jun 2025 19:53:32 +0300 Subject: [PATCH 164/181] Me stupid --- src/main/java/com/hbm/blocks/machine/MachineFan.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineFan.java b/src/main/java/com/hbm/blocks/machine/MachineFan.java index 333f7323f..bbe6081ad 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFan.java @@ -116,7 +116,7 @@ public class MachineFan extends BlockContainer implements IToolable, ITooltipPro double coeff = push; - if(!falloff) { + if(falloff) { double dist = e.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); coeff *= 1.5 * (1 - dist / range / 2); } From a9567d986b4b517ec7fbc4ebf63ede538f6ce842 Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Thu, 12 Jun 2025 16:48:37 +0800 Subject: [PATCH 165/181] refactor --- .../ExplosionNukeRayParallelized.java | 18 ++--- src/main/java/com/hbm/util/ChunkKey.java | 37 ---------- src/main/java/com/hbm/util/SubChunkKey.java | 67 +++++++++++++++++++ .../java/com/hbm/util/SubChunkSnapshot.java | 10 +-- 4 files changed, 81 insertions(+), 51 deletions(-) delete mode 100644 src/main/java/com/hbm/util/ChunkKey.java create mode 100644 src/main/java/com/hbm/util/SubChunkKey.java diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index e6f01e18c..66b88de95 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -3,7 +3,7 @@ package com.hbm.explosion; import com.hbm.config.BombConfig; import com.hbm.interfaces.IExplosionRay; import com.hbm.main.MainRegistry; -import com.hbm.util.ChunkKey; +import com.hbm.util.SubChunkKey; import com.hbm.util.ConcurrentBitSet; import com.hbm.util.SubChunkSnapshot; import net.minecraft.block.Block; @@ -41,10 +41,10 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private final ConcurrentMap destructionMap; private final ConcurrentMap accumulatedDamageMap; - private final ConcurrentMap snapshots; + private final ConcurrentMap snapshots; private final BlockingQueue rayQueue; - private final BlockingQueue cacheQueue; + private final BlockingQueue cacheQueue; private final ExecutorService pool; private final CountDownLatch latch; private final Thread latchWatcherThread; @@ -115,7 +115,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { final long deadline = System.nanoTime() + (timeBudgetMs * 1_000_000L); while (System.nanoTime() < deadline) { - ChunkKey ck = cacheQueue.poll(); + SubChunkKey ck = cacheQueue.poll(); if (ck == null) break; snapshots.computeIfAbsent(ck, k -> SubChunkSnapshot.getSnapshot(world, k, BombConfig.chunkloading)); } @@ -188,7 +188,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { if (bs.isEmpty()) { destructionMap.remove(cp); for (int sy = 0; sy < (WORLD_HEIGHT >> 4); sy++) { - snapshots.remove(new ChunkKey(cp, sy)); + snapshots.remove(new SubChunkKey(cp, sy)); } it.remove(); } @@ -293,7 +293,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { continue; } - ChunkKey snapshotKey = new ChunkKey(cp, subY); + SubChunkKey snapshotKey = new SubChunkKey(cp, subY); SubChunkSnapshot snap = snapshots.get(snapshotKey); Block originalBlock; @@ -440,7 +440,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { if (y < 0 || y >= WORLD_HEIGHT) break; if (currentRayPosition >= radius - PROCESSING_EPSILON) break; - ChunkKey ck = new ChunkKey(x >> 4, z >> 4, y >> 4); + SubChunkKey ck = new SubChunkKey(x >> 4, z >> 4, y >> 4); SubChunkSnapshot snap = snapshots.get(ck); if (snap == null) { @@ -473,14 +473,14 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { if (damageDealt > 0) { int bitIndex = ((WORLD_HEIGHT - 1 - y) << 8) | ((x & 0xF) << 4) | (z & 0xF); if (BombConfig.explosionAlgorithm == 2) { - ChunkCoordIntPair chunkPos = ck.pos; + ChunkCoordIntPair chunkPos = ck.getPos(); ChunkDamageAccumulator chunkAccumulator = accumulatedDamageMap.computeIfAbsent(chunkPos, k -> new ChunkDamageAccumulator()); chunkAccumulator.addDamage(bitIndex, damageDealt); } else { if (energy > 0) { ConcurrentBitSet bs = destructionMap.computeIfAbsent( - ck.pos, + ck.getPos(), posKey -> new ConcurrentBitSet(BITSET_SIZE) ); bs.set(bitIndex); diff --git a/src/main/java/com/hbm/util/ChunkKey.java b/src/main/java/com/hbm/util/ChunkKey.java deleted file mode 100644 index 4f3bd0ba3..000000000 --- a/src/main/java/com/hbm/util/ChunkKey.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.hbm.util; - -import net.minecraft.world.ChunkCoordIntPair; - -import java.util.Objects; - -/** - * Unique identifier for sub-chunks. - * @author mlbv - */ -public class ChunkKey { - public final ChunkCoordIntPair pos; - public final int subY; - - public ChunkKey(int cx, int cz, int sy) { - this.pos = new ChunkCoordIntPair(cx, cz); - this.subY = sy; - } - - public ChunkKey(ChunkCoordIntPair pos, int sy) { - this.pos = pos; - this.subY = sy; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof ChunkKey)) return false; - ChunkKey k = (ChunkKey) o; - return subY == k.subY && pos.equals(k.pos); - } - - @Override - public int hashCode() { - return Objects.hash(pos.chunkXPos, pos.chunkZPos, subY); - } -} diff --git a/src/main/java/com/hbm/util/SubChunkKey.java b/src/main/java/com/hbm/util/SubChunkKey.java new file mode 100644 index 000000000..068bdfef8 --- /dev/null +++ b/src/main/java/com/hbm/util/SubChunkKey.java @@ -0,0 +1,67 @@ +package com.hbm.util; + +import net.minecraft.world.ChunkCoordIntPair; + +/** + * Unique identifier for sub-chunks. + * @author mlbv + */ +public class SubChunkKey { + + private int chunkXPos; + private int chunkZPos; + private int subY; + private int hash; + + public SubChunkKey() { + this(0, 0, 0); + } + + public SubChunkKey(int cx, int cz, int sy) { + this.update(cx, cz, sy); + } + + public SubChunkKey(ChunkCoordIntPair pos, int sy) { + this.update(pos.chunkXPos, pos.chunkZPos, sy); + } + + public SubChunkKey update(int cx, int cz, int sy) { + this.chunkXPos = cx; + this.chunkZPos = cz; + this.subY = sy; + int result = subY; + result = 31 * result + cx; + result = 31 * result + cz; + this.hash = result; + return this; + } + + @Override + public final int hashCode() { + return this.hash; + } + + @Override + public final boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SubChunkKey)) return false; + SubChunkKey k = (SubChunkKey) o; + return this.subY == k.subY && this.chunkXPos == k.chunkXPos && this.chunkZPos == k.chunkZPos; + } + + public int getSubY() { + return subY; + } + + public int getChunkXPos() { + return chunkXPos; + } + + public int getChunkZPos() { + return chunkZPos; + } + + public ChunkCoordIntPair getPos() { + return new ChunkCoordIntPair(this.chunkXPos, this.chunkZPos); + } +} diff --git a/src/main/java/com/hbm/util/SubChunkSnapshot.java b/src/main/java/com/hbm/util/SubChunkSnapshot.java index cd51d125b..6077ca4b4 100644 --- a/src/main/java/com/hbm/util/SubChunkSnapshot.java +++ b/src/main/java/com/hbm/util/SubChunkSnapshot.java @@ -34,19 +34,19 @@ public class SubChunkSnapshot { * @param world * The World instance from which to retrieve the chunk. * @param key - * The ChunkKey identifying the sub-chunk. + * The SubChunkKey identifying the sub-chunk. * @param allowGeneration * Whether to generate chunks. If false, attempting to retrieve a snapshot of a chunk that does not exist will return {@link SubChunkSnapshot#EMPTY}. * @return * A SubChunkSnapshot containing the palette and block data for the sub-chunk, * or {@link SubChunkSnapshot#EMPTY} if the region contains only air. */ - public static SubChunkSnapshot getSnapshot(World world, ChunkKey key, boolean allowGeneration){ - if (!world.getChunkProvider().chunkExists(key.pos.chunkXPos, key.pos.chunkZPos) && !allowGeneration) { + public static SubChunkSnapshot getSnapshot(World world, SubChunkKey key, boolean allowGeneration){ + if (!world.getChunkProvider().chunkExists(key.getChunkXPos(), key.getChunkZPos()) && !allowGeneration) { return SubChunkSnapshot.EMPTY; } - Chunk chunk = world.getChunkProvider().provideChunk(key.pos.chunkXPos, key.pos.chunkZPos); - ExtendedBlockStorage ebs = chunk.getBlockStorageArray()[key.subY]; + Chunk chunk = world.getChunkProvider().provideChunk(key.getChunkXPos(), key.getChunkZPos()); + ExtendedBlockStorage ebs = chunk.getBlockStorageArray()[key.getSubY()]; if (ebs == null || ebs.isEmpty()) return SubChunkSnapshot.EMPTY; short[] data = new short[16 * 16 * 16]; From 590da72fbb5f5c4170eff27336fcfedc90467f70 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 12 Jun 2025 16:11:02 +0200 Subject: [PATCH 166/181] whatever, go my jerma --- changelog | 4 +++- src/main/java/com/hbm/blocks/network/BlockCableGauge.java | 6 +++--- src/main/java/com/hbm/blocks/network/FluidDuctGauge.java | 6 +++--- .../machine/TileEntityMachineChemicalPlant.java | 8 ++++++-- src/main/java/com/hbm/util/ShadyUtil.java | 3 +-- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/changelog b/changelog index 5fcf22212..dd49c2343 100644 --- a/changelog +++ b/changelog @@ -2,4 +2,6 @@ * The DNT suit now has a damage threshold of 1,000 ## Fixed -* Chemical plant ports. For real this time. \ No newline at end of file +* Chemical plant ports. For real this time. +* Fixed cable and pipe gauges returning the incomplete delta second value for OC and ROR readers +* Fixed new chemical plant not saving power values to disk \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java index 42e3a6573..2e7048be3 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java +++ b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java @@ -155,13 +155,13 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTransfer(Context context, Arguments args) { - return new Object[] {deltaTick, deltaSecond}; + return new Object[] {deltaTick, deltaLastSecond}; } @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {deltaTick, deltaSecond, xCoord, yCoord, zCoord}; + return new Object[] {deltaTick, deltaLastSecond, xCoord, yCoord, zCoord}; } @Override @@ -175,7 +175,7 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, @Override public String provideRORValue(String name) { if((PREFIX_VALUE + "deltatick").equals(name)) return "" + deltaTick; - if((PREFIX_VALUE + "deltasecond").equals(name)) return "" + deltaSecond; + if((PREFIX_VALUE + "deltasecond").equals(name)) return "" + deltaLastSecond; return null; } } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index 122d9031d..5e9e0b483 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -155,7 +155,7 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTransfer(Context context, Arguments args) { - return new Object[] {deltaTick, deltaSecond}; + return new Object[] {deltaTick, deltaLastSecond}; } @Callback(direct = true) @@ -167,7 +167,7 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {deltaTick, deltaSecond, getType().getName(), xCoord, yCoord, zCoord}; + return new Object[] {deltaTick, deltaLastSecond, getType().getName(), xCoord, yCoord, zCoord}; } @Override @@ -181,7 +181,7 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL @Override public String provideRORValue(String name) { if((PREFIX_VALUE + "deltatick").equals(name)) return "" + deltaTick; - if((PREFIX_VALUE + "deltasecond").equals(name)) return "" + deltaSecond; + if((PREFIX_VALUE + "deltasecond").equals(name)) return "" + deltaLastSecond; return null; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index ef7bdd827..7d6c0d0e3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -158,7 +158,9 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem this.inputTanks[i].readFromNBT(nbt, "i" + i); this.outputTanks[i].readFromNBT(nbt, "o" + i); } - + + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); this.chemplantModule.readFromNBT(nbt); } @@ -170,7 +172,9 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem this.inputTanks[i].writeToNBT(nbt, "i" + i); this.outputTanks[i].writeToNBT(nbt, "o" + i); } - + + nbt.setLong("power", power); + nbt.setLong("maxPower", maxPower); this.chemplantModule.writeToNBT(nbt); } diff --git a/src/main/java/com/hbm/util/ShadyUtil.java b/src/main/java/com/hbm/util/ShadyUtil.java index de5bedf6a..03a2390ab 100644 --- a/src/main/java/com/hbm/util/ShadyUtil.java +++ b/src/main/java/com/hbm/util/ShadyUtil.java @@ -3,7 +3,6 @@ package com.hbm.util; import com.google.common.collect.Sets; import com.hbm.config.GeneralConfig; import com.hbm.main.MainRegistry; -import com.hbm.main.ModEventHandler; import cpw.mods.fml.relauncher.ReflectionHelper; import java.lang.reflect.Field; @@ -147,7 +146,7 @@ public class ShadyUtil { System.out.println("TEST SECTION START"); Class toLoad = Class.forName(decode(offset(testCase, -2))); Field toRead = ReflectionHelper.findField(toLoad, decode(offset(testValue, -2))); - if(new Random().nextInt(4) == 0) ModEventHandler.reference = toRead; + //ModEventHandler.reference = toRead; System.out.println("TEST SECTION END"); } } catch(Throwable e) { } From d65cc18dd86c19aa0b5ff1b3dffe4deb89b92909 Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Thu, 12 Jun 2025 17:24:10 +0800 Subject: [PATCH 167/181] perf: pre-size maps to avoid overhead --- .../ExplosionNukeRayParallelized.java | 96 +++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index 66b88de95..328e4e995 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -3,8 +3,8 @@ package com.hbm.explosion; import com.hbm.config.BombConfig; import com.hbm.interfaces.IExplosionRay; import com.hbm.main.MainRegistry; -import com.hbm.util.SubChunkKey; import com.hbm.util.ConcurrentBitSet; +import com.hbm.util.SubChunkKey; import com.hbm.util.SubChunkSnapshot; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -29,6 +29,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private static final int WORLD_HEIGHT = 256; private static final int BITSET_SIZE = 16 * WORLD_HEIGHT * 16; + private static final int SUBCHUNK_PER_CHUNK = WORLD_HEIGHT >> 4; protected final World world; private final double explosionX, explosionY, explosionZ; @@ -39,7 +40,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private volatile List directions; private final CompletableFuture> directionsFuture; private final ConcurrentMap destructionMap; - private final ConcurrentMap accumulatedDamageMap; + private final ConcurrentMap> damageMap; private final ConcurrentMap snapshots; @@ -69,19 +70,29 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { int rayCount = Math.max(0, (int) (2.5 * Math.PI * strength * strength)); this.latch = new CountDownLatch(rayCount); - this.destructionMap = new ConcurrentHashMap<>(); - this.accumulatedDamageMap = new ConcurrentHashMap<>(); - this.snapshots = new ConcurrentHashMap<>(); + List affectedChunks = this.collectChunkInRadius(); + int initialCapacity = affectedChunks.size(); + + this.destructionMap = new ConcurrentHashMap<>(initialCapacity); + this.damageMap = new ConcurrentHashMap<>(initialCapacity); + if (BombConfig.explosionAlgorithm == 2) { + final int innerMapCapacity = 256; + for (ChunkCoordIntPair coord : affectedChunks) { + this.damageMap.put(coord, new ConcurrentHashMap<>(innerMapCapacity)); + } + } + this.snapshots = new ConcurrentHashMap<>(initialCapacity * SUBCHUNK_PER_CHUNK); this.orderedChunks = new ArrayList<>(); - this.rayQueue = new LinkedBlockingQueue<>(); + List initialRayTasks = new ArrayList<>(rayCount); + for (int i = 0; i < rayCount; i++) initialRayTasks.add(new RayTask(i)); + this.rayQueue = new LinkedBlockingQueue<>(initialRayTasks); this.cacheQueue = new LinkedBlockingQueue<>(); int workers = Math.max(1, Runtime.getRuntime().availableProcessors() - 1); this.pool = Executors.newWorkStealingPool(workers); this.directionsFuture = CompletableFuture.supplyAsync(() -> generateSphereRays(rayCount)); - for (int i = 0; i < rayCount; i++) rayQueue.add(new RayTask(i)); for (int i = 0; i < workers; i++) pool.submit(new Worker()); this.latchWatcherThread = new Thread(() -> { @@ -187,7 +198,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } if (bs.isEmpty()) { destructionMap.remove(cp); - for (int sy = 0; sy < (WORLD_HEIGHT >> 4); sy++) { + for (int sy = 0; sy < (SUBCHUNK_PER_CHUNK); sy++) { snapshots.remove(new SubChunkKey(cp, sy)); } it.remove(); @@ -237,11 +248,27 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } } if (this.destructionMap != null) this.destructionMap.clear(); - if (this.accumulatedDamageMap != null) this.accumulatedDamageMap.clear(); + if (this.damageMap != null) this.damageMap.clear(); if (this.snapshots != null) this.snapshots.clear(); if (this.orderedChunks != null) this.orderedChunks.clear(); } + private List collectChunkInRadius() { + int cr = (radius + 15) >> 4; + int minCX = (originX >> 4) - cr; + int maxCX = (originX >> 4) + cr; + int minCZ = (originZ >> 4) - cr; + int maxCZ = (originZ >> 4) + cr; + + List list = new ArrayList<>((maxCX - minCX + 1) * (maxCZ - minCZ + 1)); + for (int cx = minCX; cx <= maxCX; ++cx) { + for (int cz = minCZ; cz <= maxCZ; ++cz) { + list.add(new ChunkCoordIntPair(cx, cz)); + } + } + return list; + } + private List generateSphereRays(int count) { List list = new ArrayList<>(count); if (count == 0) return list; @@ -260,20 +287,20 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } private void runConsolidation() { - Iterator> chunkEntryIterator = accumulatedDamageMap.entrySet().iterator(); + Iterator>> chunkEntryIterator = damageMap.entrySet().iterator(); while (chunkEntryIterator.hasNext()) { - Map.Entry entry = chunkEntryIterator.next(); + Map.Entry> entry = chunkEntryIterator.next(); ChunkCoordIntPair cp = entry.getKey(); - ChunkDamageAccumulator accumulator = entry.getValue(); + ConcurrentMap innerDamageMap = entry.getValue(); - if (accumulator.isEmpty()) { + if (innerDamageMap.isEmpty()) { chunkEntryIterator.remove(); continue; } ConcurrentBitSet chunkDestructionBitSet = destructionMap.computeIfAbsent(cp, k -> new ConcurrentBitSet(BITSET_SIZE)); - Iterator> damageEntryIterator = accumulator.entrySet().iterator(); + Iterator> damageEntryIterator = innerDamageMap.entrySet().iterator(); while (damageEntryIterator.hasNext()) { Map.Entry damageEntry = damageEntryIterator.next(); int bitIndex = damageEntry.getKey(); @@ -317,43 +344,14 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } } - if (accumulator.isEmpty()) { + if (innerDamageMap.isEmpty()) { chunkEntryIterator.remove(); } } - accumulatedDamageMap.clear(); + damageMap.clear(); consolidationFinished = true; } - private static class ChunkDamageAccumulator { - // key = bitIndex, value = total accumulated damage - private final ConcurrentHashMap damageMap = new ConcurrentHashMap<>(); - - public void addDamage(int bitIndex, float damageAmount) { - if (damageAmount <= 0) return; - DoubleAdder adder = damageMap.computeIfAbsent(bitIndex, k -> new DoubleAdder()); - adder.add(damageAmount); - } - - /*public float getDamage(int bitIndex) { - DoubleAdder adder = damageMap.get(bitIndex); - return adder == null ? 0f : (float) adder.sum(); - }*/ - - /*public void clearDamage(int bitIndex) { - damageMap.remove(bitIndex); - }*/ - - public Set> entrySet() { - return damageMap.entrySet(); - } - - - public boolean isEmpty() { - return damageMap.isEmpty(); - } - } - private class Worker implements Runnable { @Override public void run() { @@ -372,6 +370,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } } } + private class RayTask { final int dirIndex; double px, py, pz; @@ -474,9 +473,10 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { int bitIndex = ((WORLD_HEIGHT - 1 - y) << 8) | ((x & 0xF) << 4) | (z & 0xF); if (BombConfig.explosionAlgorithm == 2) { ChunkCoordIntPair chunkPos = ck.getPos(); - ChunkDamageAccumulator chunkAccumulator = - accumulatedDamageMap.computeIfAbsent(chunkPos, k -> new ChunkDamageAccumulator()); - chunkAccumulator.addDamage(bitIndex, damageDealt); + ConcurrentMap chunkDamageMap = damageMap.get(chunkPos); + if (chunkDamageMap != null) { + chunkDamageMap.computeIfAbsent(bitIndex, k -> new DoubleAdder()).add(damageDealt); + } } else { if (energy > 0) { ConcurrentBitSet bs = destructionMap.computeIfAbsent( From 7dab92f3b27f706acf795489205c15b29e1cd8f2 Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Fri, 13 Jun 2025 12:39:27 +0800 Subject: [PATCH 168/181] Perf: better caching --- .../ExplosionNukeRayParallelized.java | 306 ++++++++---------- src/main/java/com/hbm/util/SubChunkKey.java | 4 - 2 files changed, 142 insertions(+), 168 deletions(-) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index 328e4e995..08926ff5f 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -16,12 +16,15 @@ import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; import org.apache.logging.log4j.Level; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; import java.util.concurrent.*; import java.util.concurrent.atomic.DoubleAdder; /** - * Threaded DDA raytracer for the nuke explosion. + * Threaded DDA raytracer for mk5 explosion. * * @author mlbv */ @@ -30,6 +33,8 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private static final int WORLD_HEIGHT = 256; private static final int BITSET_SIZE = 16 * WORLD_HEIGHT * 16; private static final int SUBCHUNK_PER_CHUNK = WORLD_HEIGHT >> 4; + private static final float NUKE_RESISTANCE_CUTOFF = 2_000_000F; + private static final float INITIAL_ENERGY_FACTOR = 0.3F; protected final World world; private final double explosionX, explosionY, explosionZ; @@ -37,19 +42,19 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private final int strength; private final int radius; - private volatile List directions; private final CompletableFuture> directionsFuture; private final ConcurrentMap destructionMap; private final ConcurrentMap> damageMap; - private final ConcurrentMap snapshots; - + private final ConcurrentMap> waitingRoom; private final BlockingQueue rayQueue; - private final BlockingQueue cacheQueue; private final ExecutorService pool; private final CountDownLatch latch; private final Thread latchWatcherThread; private final List orderedChunks; + private final BlockingQueue highPriorityReactiveQueue; // cache queue for rays + private final Iterator lowPriorityProactiveIterator; + private volatile List directions; private volatile boolean collectFinished = false; private volatile boolean consolidationFinished = false; private volatile boolean destroyFinished = false; @@ -68,26 +73,24 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { this.radius = radius; int rayCount = Math.max(0, (int) (2.5 * Math.PI * strength * strength)); - this.latch = new CountDownLatch(rayCount); - List affectedChunks = this.collectChunkInRadius(); - int initialCapacity = affectedChunks.size(); + List sortedSubChunks = getAllSubChunks(); + this.lowPriorityProactiveIterator = sortedSubChunks.iterator(); + this.highPriorityReactiveQueue = new LinkedBlockingQueue<>(); - this.destructionMap = new ConcurrentHashMap<>(initialCapacity); - this.damageMap = new ConcurrentHashMap<>(initialCapacity); - if (BombConfig.explosionAlgorithm == 2) { - final int innerMapCapacity = 256; - for (ChunkCoordIntPair coord : affectedChunks) { - this.damageMap.put(coord, new ConcurrentHashMap<>(innerMapCapacity)); - } - } - this.snapshots = new ConcurrentHashMap<>(initialCapacity * SUBCHUNK_PER_CHUNK); + int initialChunkCapacity = (int) sortedSubChunks.stream().map(SubChunkKey::getPos).distinct().count(); + + this.destructionMap = new ConcurrentHashMap<>(initialChunkCapacity); + this.damageMap = new ConcurrentHashMap<>(initialChunkCapacity); + + int subChunkCount = sortedSubChunks.size(); + this.snapshots = new ConcurrentHashMap<>(subChunkCount); + this.waitingRoom = new ConcurrentHashMap<>(subChunkCount); this.orderedChunks = new ArrayList<>(); List initialRayTasks = new ArrayList<>(rayCount); for (int i = 0; i < rayCount; i++) initialRayTasks.add(new RayTask(i)); this.rayQueue = new LinkedBlockingQueue<>(initialRayTasks); - this.cacheQueue = new LinkedBlockingQueue<>(); int workers = Math.max(1, Runtime.getRuntime().availableProcessors() - 1); this.pool = Executors.newWorkStealingPool(workers); @@ -102,11 +105,8 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { Thread.currentThread().interrupt(); } finally { collectFinished = true; - if (BombConfig.explosionAlgorithm == 2) { - pool.submit(this::runConsolidation); - } else { - consolidationFinished = true; - } + if (BombConfig.explosionAlgorithm == 2) pool.submit(this::runConsolidation); + else consolidationFinished = true; } }, "ExplosionNuke-LatchWatcher-" + System.nanoTime()); this.latchWatcherThread.setDaemon(true); @@ -116,25 +116,70 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private static float getNukeResistance(Block b) { if (b.getMaterial().isLiquid()) return 0.1F; if (b == Blocks.sandstone) return Blocks.stone.getExplosionResistance(null); - if (b == Blocks.obsidian) return Blocks.stone.getExplosionResistance(null) * 3; + if (b == Blocks.obsidian) return Blocks.stone.getExplosionResistance(null) * 3.0F; return b.getExplosionResistance(null); } + private List getAllSubChunks() { + List keys = new ArrayList<>(); + int cr = (radius + 15) >> 4; + int minCX = (originX >> 4) - cr; + int maxCX = (originX >> 4) + cr; + int minCZ = (originZ >> 4) - cr; + int maxCZ = (originZ >> 4) + cr; + int minSubY = Math.max(0, (originY - radius) >> 4); + int maxSubY = Math.min(SUBCHUNK_PER_CHUNK - 1, (originY + radius) >> 4); + int originSubY = originY >> 4; + + for (int cx = minCX; cx <= maxCX; cx++) { + for (int cz = minCZ; cz <= maxCZ; cz++) { + for (int subY = minSubY; subY <= maxSubY; subY++) { + int chunkCenterX = (cx << 4) + 8; + int chunkCenterY = (subY << 4) + 8; + int chunkCenterZ = (cz << 4) + 8; + double dx = chunkCenterX - explosionX; + double dy = chunkCenterY - explosionY; + double dz = chunkCenterZ - explosionZ; + if (dx * dx + dy * dy + dz * dz <= (radius + 14) * (radius + 14)) { // +14 for margin of error + keys.add(new SubChunkKey(cx, cz, subY)); + } + } + } + } + keys.sort(Comparator.comparingInt(key -> { + int distCX = key.getPos().chunkXPos - (originX >> 4); + int distCZ = key.getPos().chunkZPos - (originZ >> 4); + int distSubY = key.getSubY() - originSubY; + return distCX * distCX + distCZ * distCZ + distSubY * distSubY; + })); + return keys; + } + @Override public void cacheChunksTick(int timeBudgetMs) { - if (collectFinished || this.cacheQueue == null) return; - + if (collectFinished) return; final long deadline = System.nanoTime() + (timeBudgetMs * 1_000_000L); while (System.nanoTime() < deadline) { - SubChunkKey ck = cacheQueue.poll(); + SubChunkKey ck = highPriorityReactiveQueue.poll(); if (ck == null) break; - snapshots.computeIfAbsent(ck, k -> SubChunkSnapshot.getSnapshot(world, k, BombConfig.chunkloading)); + processCacheKey(ck); } + while (System.nanoTime() < deadline && lowPriorityProactiveIterator.hasNext()) { + SubChunkKey ck = lowPriorityProactiveIterator.next(); + processCacheKey(ck); + } + } + + private void processCacheKey(SubChunkKey ck) { + if (snapshots.containsKey(ck)) return; + snapshots.put(ck, SubChunkSnapshot.getSnapshot(world, ck, BombConfig.chunkloading)); + ConcurrentLinkedQueue waiters = waitingRoom.remove(ck); + if (waiters != null) rayQueue.addAll(waiters); } @Override public void destructionTick(int timeBudgetMs) { - if (!collectFinished || !consolidationFinished || destroyFinished) return; // Added consolidationFinished check + if (!collectFinished || !consolidationFinished || destroyFinished) return; final long deadline = System.nanoTime() + timeBudgetMs * 1_000_000L; @@ -198,9 +243,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } if (bs.isEmpty()) { destructionMap.remove(cp); - for (int sy = 0; sy < (SUBCHUNK_PER_CHUNK); sy++) { - snapshots.remove(new SubChunkKey(cp, sy)); - } + for (int subY = 0; subY < SUBCHUNK_PER_CHUNK; subY++) snapshots.remove(new SubChunkKey(cp, subY)); it.remove(); } } @@ -223,28 +266,18 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { this.destroyFinished = true; if (this.rayQueue != null) this.rayQueue.clear(); - if (this.cacheQueue != null) this.cacheQueue.clear(); + if (this.waitingRoom != null) this.waitingRoom.clear(); - if (this.latch != null) { - while (this.latch.getCount() > 0) { - this.latch.countDown(); - } - } - if (this.latchWatcherThread != null && this.latchWatcherThread.isAlive()) { - this.latchWatcherThread.interrupt(); - } + if (this.latch != null) while (this.latch.getCount() > 0) this.latch.countDown(); + if (this.latchWatcherThread != null && this.latchWatcherThread.isAlive()) this.latchWatcherThread.interrupt(); if (this.pool != null && !this.pool.isShutdown()) { this.pool.shutdownNow(); try { - if (!this.pool.awaitTermination(100, TimeUnit.MILLISECONDS)) { - MainRegistry.logger.log(Level.ERROR, "ExplosionNukeRayParallelized thread pool did not terminate promptly on cancel."); - } + if (!this.pool.awaitTermination(100, TimeUnit.MILLISECONDS)) MainRegistry.logger.log(Level.ERROR, "ExplosionNukeRayParallelized thread pool did not terminate promptly on cancel."); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - if (!this.pool.isShutdown()) { - this.pool.shutdownNow(); - } + if (!this.pool.isShutdown()) this.pool.shutdownNow(); } } if (this.destructionMap != null) this.destructionMap.clear(); @@ -253,27 +286,11 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { if (this.orderedChunks != null) this.orderedChunks.clear(); } - private List collectChunkInRadius() { - int cr = (radius + 15) >> 4; - int minCX = (originX >> 4) - cr; - int maxCX = (originX >> 4) + cr; - int minCZ = (originZ >> 4) - cr; - int maxCZ = (originZ >> 4) + cr; - - List list = new ArrayList<>((maxCX - minCX + 1) * (maxCZ - minCZ + 1)); - for (int cx = minCX; cx <= maxCX; ++cx) { - for (int cz = minCZ; cz <= maxCZ; ++cz) { - list.add(new ChunkCoordIntPair(cx, cz)); - } - } - return list; - } - private List generateSphereRays(int count) { List list = new ArrayList<>(count); if (count == 0) return list; if (count == 1) { - list.add(Vec3.createVectorHelper(1, 0, 0).normalize()); + list.add(Vec3.createVectorHelper(1, 0, 0)); return list; } double phi = Math.PI * (3.0 - Math.sqrt(5.0)); @@ -287,67 +304,43 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } private void runConsolidation() { - Iterator>> chunkEntryIterator = damageMap.entrySet().iterator(); - while (chunkEntryIterator.hasNext()) { - Map.Entry> entry = chunkEntryIterator.next(); - ChunkCoordIntPair cp = entry.getKey(); - ConcurrentMap innerDamageMap = entry.getValue(); - + damageMap.forEach((cp, innerDamageMap) -> { if (innerDamageMap.isEmpty()) { - chunkEntryIterator.remove(); - continue; + damageMap.remove(cp); + return; } - ConcurrentBitSet chunkDestructionBitSet = destructionMap.computeIfAbsent(cp, k -> new ConcurrentBitSet(BITSET_SIZE)); - - Iterator> damageEntryIterator = innerDamageMap.entrySet().iterator(); - while (damageEntryIterator.hasNext()) { - Map.Entry damageEntry = damageEntryIterator.next(); - int bitIndex = damageEntry.getKey(); - - float accumulatedDamage = (float) damageEntry.getValue().sum(); - + innerDamageMap.forEach((bitIndex, accumulatedDamageAdder) -> { + float accumulatedDamage = (float) accumulatedDamageAdder.sum(); if (accumulatedDamage <= 0.0f) { - damageEntryIterator.remove(); - continue; + innerDamageMap.remove(bitIndex); + return; } - int yGlobal = WORLD_HEIGHT - 1 - (bitIndex >>> 8); int subY = yGlobal >> 4; - if (subY < 0) { - damageEntryIterator.remove(); - continue; + innerDamageMap.remove(bitIndex); + return; } - SubChunkKey snapshotKey = new SubChunkKey(cp, subY); SubChunkSnapshot snap = snapshots.get(snapshotKey); - Block originalBlock; - if (snap == null || snap == SubChunkSnapshot.EMPTY) { - damageEntryIterator.remove(); - continue; - } else { - int xLocal = (bitIndex >>> 4) & 0xF; - int zLocal = bitIndex & 0xF; - originalBlock = snap.getBlock(xLocal, yGlobal & 0xF, zLocal); - if (originalBlock == Blocks.air) { - damageEntryIterator.remove(); - continue; - } + innerDamageMap.remove(bitIndex); + return; + } + int xLocal = (bitIndex >>> 4) & 0xF; + int zLocal = bitIndex & 0xF; + Block originalBlock = snap.getBlock(xLocal, yGlobal & 0xF, zLocal); + if (originalBlock == Blocks.air) { + innerDamageMap.remove(bitIndex); + return; } - float resistance = getNukeResistance(originalBlock); - if (accumulatedDamage >= resistance) { - chunkDestructionBitSet.set(bitIndex); - damageEntryIterator.remove(); - } - } - - if (innerDamageMap.isEmpty()) { - chunkEntryIterator.remove(); - } - } + if (accumulatedDamage >= resistance) chunkDestructionBitSet.set(bitIndex); + innerDamageMap.remove(bitIndex); + }); + if (innerDamageMap.isEmpty()) damageMap.remove(cp); + }); damageMap.clear(); consolidationFinished = true; } @@ -356,14 +349,9 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { @Override public void run() { try { - while (true) { - if (collectFinished && rayQueue.isEmpty()) break; + while (!collectFinished && !Thread.currentThread().isInterrupted()) { RayTask task = rayQueue.poll(100, TimeUnit.MILLISECONDS); - if (task == null) { - if (collectFinished && rayQueue.isEmpty()) break; - continue; - } - task.trace(); + if (task != null) task.trace(); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); @@ -372,6 +360,10 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } private class RayTask { + private static final double RAY_DIRECTION_EPSILON = 1e-6; + private static final double PROCESSING_EPSILON = 1e-9; + private static final float MIN_EFFECTIVE_DIST_FOR_ENERGY_CALC = 0.01f; + final int dirIndex; double px, py, pz; int x, y, z; @@ -381,9 +373,8 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { boolean initialised = false; double currentRayPosition; - private static final double RAY_DIRECTION_EPSILON = 1e-6; - private static final double PROCESSING_EPSILON = 1e-9; - private static final float MIN_EFFECTIVE_DIST_FOR_ENERGY_CALC = 0.01f; + private int lastCX = Integer.MIN_VALUE, lastCZ = Integer.MIN_VALUE, lastSubY = Integer.MIN_VALUE; + private SubChunkKey currentSubChunkKey = null; RayTask(int dirIdx) { this.dirIndex = dirIdx; @@ -392,9 +383,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { void init() { if (directions == null) directions = directionsFuture.join(); Vec3 dir = directions.get(this.dirIndex); - // This scales the crater. Higher = bigger. - // Currently the crater is a little bit bigger than the original implementation - this.energy = strength * 0.3F; + this.energy = strength * INITIAL_ENERGY_FACTOR; this.px = explosionX; this.py = explosionY; this.pz = explosionZ; @@ -410,20 +399,17 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { double absDirX = Math.abs(dirX); this.stepX = (absDirX < RAY_DIRECTION_EPSILON) ? 0 : (dirX > 0 ? 1 : -1); this.tDeltaX = (stepX == 0) ? Double.POSITIVE_INFINITY : 1.0 / absDirX; - this.tMaxX = (stepX == 0) ? Double.POSITIVE_INFINITY : - ((stepX > 0 ? (this.x + 1 - this.px) : (this.px - this.x)) * this.tDeltaX); + this.tMaxX = (stepX == 0) ? Double.POSITIVE_INFINITY : ((stepX > 0 ? (this.x + 1 - this.px) : (this.px - this.x)) * this.tDeltaX); double absDirY = Math.abs(dirY); this.stepY = (absDirY < RAY_DIRECTION_EPSILON) ? 0 : (dirY > 0 ? 1 : -1); this.tDeltaY = (stepY == 0) ? Double.POSITIVE_INFINITY : 1.0 / absDirY; - this.tMaxY = (stepY == 0) ? Double.POSITIVE_INFINITY : - ((stepY > 0 ? (this.y + 1 - this.py) : (this.py - this.y)) * this.tDeltaY); + this.tMaxY = (stepY == 0) ? Double.POSITIVE_INFINITY : ((stepY > 0 ? (this.y + 1 - this.py) : (this.py - this.y)) * this.tDeltaY); double absDirZ = Math.abs(dirZ); this.stepZ = (absDirZ < RAY_DIRECTION_EPSILON) ? 0 : (dirZ > 0 ? 1 : -1); this.tDeltaZ = (stepZ == 0) ? Double.POSITIVE_INFINITY : 1.0 / absDirZ; - this.tMaxZ = (stepZ == 0) ? Double.POSITIVE_INFINITY : - ((stepZ > 0 ? (this.z + 1 - this.pz) : (this.pz - this.z)) * this.tDeltaZ); + this.tMaxZ = (stepZ == 0) ? Double.POSITIVE_INFINITY : ((stepZ > 0 ? (this.z + 1 - this.pz) : (this.pz - this.z)) * this.tDeltaZ); this.initialised = true; } @@ -436,15 +422,28 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } while (energy > 0) { - if (y < 0 || y >= WORLD_HEIGHT) break; + if (y < 0 || y >= WORLD_HEIGHT || Thread.currentThread().isInterrupted()) break; if (currentRayPosition >= radius - PROCESSING_EPSILON) break; - SubChunkKey ck = new SubChunkKey(x >> 4, z >> 4, y >> 4); - SubChunkSnapshot snap = snapshots.get(ck); + int cx = x >> 4; + int cz = z >> 4; + int subY = y >> 4; + if (cx != lastCX || cz != lastCZ || subY != lastSubY) { + currentSubChunkKey = new SubChunkKey(cx, cz, subY); + lastCX = cx; + lastCZ = cz; + lastSubY = subY; + } + SubChunkSnapshot snap = snapshots.get(currentSubChunkKey); if (snap == null) { - cacheQueue.offer(ck); - rayQueue.offer(this); + final boolean[] amFirst = {false}; + ConcurrentLinkedQueue waiters = waitingRoom.computeIfAbsent(currentSubChunkKey, k -> { + amFirst[0] = true; + return new ConcurrentLinkedQueue<>(); + }); + if (amFirst[0]) highPriorityReactiveQueue.add(currentSubChunkKey); + waiters.add(this); return; } double t_exit_voxel = Math.min(tMaxX, Math.min(tMaxY, tMaxZ)); @@ -455,15 +454,13 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { if (this.currentRayPosition + segmentLenInVoxel > radius - PROCESSING_EPSILON) { segmentLenForProcessing = Math.max(0.0, radius - this.currentRayPosition); stopAfterThisSegment = true; - } else { - segmentLenForProcessing = segmentLenInVoxel; - } + } else segmentLenForProcessing = segmentLenInVoxel; if (snap != SubChunkSnapshot.EMPTY && segmentLenForProcessing > PROCESSING_EPSILON) { Block block = snap.getBlock(x & 0xF, y & 0xF, z & 0xF); if (block != Blocks.air) { float resistance = getNukeResistance(block); - if (resistance >= 2_000_000F) { // cutoff + if (resistance >= NUKE_RESISTANCE_CUTOFF) { energy = 0; } else { double energyLossFactor = getEnergyLossFactor(resistance); @@ -471,27 +468,16 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { energy -= damageDealt; if (damageDealt > 0) { int bitIndex = ((WORLD_HEIGHT - 1 - y) << 8) | ((x & 0xF) << 4) | (z & 0xF); + ChunkCoordIntPair chunkPos = currentSubChunkKey.getPos(); if (BombConfig.explosionAlgorithm == 2) { - ChunkCoordIntPair chunkPos = ck.getPos(); - ConcurrentMap chunkDamageMap = damageMap.get(chunkPos); - if (chunkDamageMap != null) { - chunkDamageMap.computeIfAbsent(bitIndex, k -> new DoubleAdder()).add(damageDealt); - } - } else { - if (energy > 0) { - ConcurrentBitSet bs = destructionMap.computeIfAbsent( - ck.getPos(), - posKey -> new ConcurrentBitSet(BITSET_SIZE) - ); - bs.set(bitIndex); - } - } + damageMap.computeIfAbsent(chunkPos, cp -> new ConcurrentHashMap<>(256)).computeIfAbsent(bitIndex, k -> new DoubleAdder()).add(damageDealt); + } else if (energy > 0) destructionMap.computeIfAbsent(chunkPos, posKey -> new ConcurrentBitSet(BITSET_SIZE)).set(bitIndex); } } } } this.currentRayPosition = t_exit_voxel; - if (energy <= 0 || stopAfterThisSegment || this.currentRayPosition >= radius - PROCESSING_EPSILON) break; + if (energy <= 0 || stopAfterThisSegment) break; if (tMaxX < tMaxY) { if (tMaxX < tMaxZ) { @@ -515,15 +501,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } private double getEnergyLossFactor(float resistance) { - double dxBlockToCenter = (this.x + 0.5) - explosionX; - double dyBlockToCenter = (this.y + 0.5) - explosionY; - double dzBlockToCenter = (this.z + 0.5) - explosionZ; - double distToBlockCenterSq = dxBlockToCenter * dxBlockToCenter + - dyBlockToCenter * dyBlockToCenter + - dzBlockToCenter * dzBlockToCenter; - double distToBlockCenter = Math.sqrt(distToBlockCenterSq); - - double effectiveDist = Math.max(distToBlockCenter, MIN_EFFECTIVE_DIST_FOR_ENERGY_CALC); + double effectiveDist = Math.max(this.currentRayPosition, MIN_EFFECTIVE_DIST_FOR_ENERGY_CALC); return (Math.pow(resistance + 1.0, 3.0 * (effectiveDist / radius)) - 1.0); } } diff --git a/src/main/java/com/hbm/util/SubChunkKey.java b/src/main/java/com/hbm/util/SubChunkKey.java index 068bdfef8..2e694ab8d 100644 --- a/src/main/java/com/hbm/util/SubChunkKey.java +++ b/src/main/java/com/hbm/util/SubChunkKey.java @@ -13,10 +13,6 @@ public class SubChunkKey { private int subY; private int hash; - public SubChunkKey() { - this(0, 0, 0); - } - public SubChunkKey(int cx, int cz, int sy) { this.update(cx, cz, sy); } From 3303df8345b009c0c7f14d209a295c5bf1050827 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 13 Jun 2025 14:47:50 +0200 Subject: [PATCH 169/181] ough --- changelog | 8 +++- .../java/com/hbm/handler/HbmKeybinds.java | 7 +++- .../inventory/container/ContainerBase.java | 6 +++ .../ContainerMachineChemicalPlant.java | 3 +- .../gui/GUIMachineChemicalPlant.java | 15 ++++++++ .../com/hbm/items/tool/ItemBlowtorch.java | 2 +- .../weapon/sedna/factory/XFactoryEnergy.java | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 7 ++-- .../hbm/module/ModuleMachineChemplant.java | 35 ++++++++++-------- .../hbm/tileentity/IUpgradeInfoProvider.java | 1 + .../TileEntityMachineChemicalPlant.java | 25 +++++++++---- src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../gui/processing/gui_chemical_factory.png | Bin 0 -> 3840 bytes .../hbm/textures/items/biomass_compressed.png | Bin 460 -> 430 bytes 14 files changed, 80 insertions(+), 32 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_chemical_factory.png diff --git a/changelog b/changelog index dd49c2343..c802deca0 100644 --- a/changelog +++ b/changelog @@ -1,7 +1,13 @@ ## Changed * The DNT suit now has a damage threshold of 1,000 +* Compressed biomass now has a nice cube shape +* The new chemical plant's indicator lights are now functional +* The new chemical plant can now use upgrades ## Fixed * Chemical plant ports. For real this time. * Fixed cable and pipe gauges returning the incomplete delta second value for OC and ROR readers -* Fixed new chemical plant not saving power values to disk \ No newline at end of file +* Fixed new chemical plant not saving power values to disk +* Fixed laser rifle scope texture being missing +* Potentially fixed shift clicking issue with the new chemical plant +* Fixed blowtorch having a minimum gas requirement of 1,000mB despite only using 250mB \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index 9cfcd65fb..5f85ce886 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -71,7 +71,8 @@ public class HbmKeybinds { @SubscribeEvent public void mouseEvent(MouseInputEvent event) { - HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me()); + EntityPlayer player = MainRegistry.proxy.me(); + HbmPlayerProps props = HbmPlayerProps.getData(player); for(EnumKeybind key : EnumKeybind.values()) { boolean last = props.getKeyPressed(key); @@ -80,6 +81,7 @@ public class HbmKeybinds { if(last != current) { PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current)); props.setKeyPressed(key, current); + onPressedClient(player, key, current); } } } @@ -87,7 +89,8 @@ public class HbmKeybinds { @SubscribeEvent public void keyEvent(KeyInputEvent event) { EntityPlayer player = MainRegistry.proxy.me(); - if (calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only + + if(calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only player.closeScreen(); FMLCommonHandler.instance().showGuiScreen(new GUICalculator()); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerBase.java b/src/main/java/com/hbm/inventory/container/ContainerBase.java index 665d3d275..565d8861a 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerBase.java +++ b/src/main/java/com/hbm/inventory/container/ContainerBase.java @@ -31,6 +31,12 @@ public class ContainerBase extends Container { public boolean canInteractWith(EntityPlayer player) { return tile.isUseableByPlayer(player); } + + /** Respects slot restrictions */ + @Override + protected boolean mergeItemStack(ItemStack slotStack, int start, int end, boolean direction) { + return super.mergeItemStack(slotStack, start, end, direction); // overriding this with InventoryUtil.mergeItemStack breaks it but invoking it directly doesn't? wtf? + } @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalPlant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalPlant.java index dd453f93c..2c4f4052a 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalPlant.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalPlant.java @@ -5,6 +5,7 @@ import com.hbm.inventory.SlotNonRetarded; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemChemistryTemplate; import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.util.InventoryUtil; import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; @@ -61,7 +62,7 @@ public class ContainerMachineChemicalPlant extends ContainerBase { } else if(slotOriginal.getItem() instanceof ItemMachineUpgrade) { if(!this.mergeItemStack(slotStack, 2, 4, false)) return null; } else { - if(!this.mergeItemStack(slotStack, 4, 7, false)) return null; + if(!InventoryUtil.mergeItemStack(this.inventorySlots, slotStack, 4, 7, false)) return null; } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java index 8e3285f5b..9f02d0adf 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java @@ -80,6 +80,21 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { } GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(chemplant.chemplantModule.recipe); + + /// LEFT LED + if(chemplant.didProcess) { + drawTexturedModalRect(guiLeft + 51, guiTop + 121, 195, 0, 3, 6); + } else if(recipe != null) { + drawTexturedModalRect(guiLeft + 51, guiTop + 121, 192, 0, 3, 6); + } + + /// RIGHT LED + if(chemplant.didProcess) { + drawTexturedModalRect(guiLeft + 56, guiTop + 121, 195, 0, 3, 6); + } else if(recipe != null && chemplant.power >= recipe.power) { + drawTexturedModalRect(guiLeft + 56, guiTop + 121, 192, 0, 3, 6); + } + this.renderItem(recipe != null ? recipe.getIcon() : TEMPLATE_FOLDER, 8, 126); if(recipe != null && recipe.inputItem != null) { diff --git a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java index 27dc2d48e..35bcd3da1 100644 --- a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java +++ b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java @@ -134,7 +134,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { if(b instanceof IToolable) { if(this == ModItems.blowtorch) { - if(this.getFill(stack, Fluids.GAS) < 1000) return false; + if(this.getFill(stack, Fluids.GAS) < 250) return false; } if(this == ModItems.acetylene_torch) { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java index a2e230d27..1d30e41ce 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java @@ -49,7 +49,7 @@ import net.minecraftforge.common.util.ForgeDirection; public class XFactoryEnergy { - public static final ResourceLocation scope_luna = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_luna.png"); + public static final ResourceLocation scope_luna = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_amat.png"); public static BulletConfig energy_tesla; public static BulletConfig energy_tesla_overcharge; diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 1598278d7..967f76977 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -15,7 +15,6 @@ import com.hbm.handler.HTTPHandler; import com.hbm.handler.HazmatRegistry; import com.hbm.handler.HbmKeybinds; import com.hbm.handler.ImpactWorldHandler; -import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IHoldableWeapon; import com.hbm.interfaces.IItemHUD; @@ -36,7 +35,6 @@ import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.AuxButtonPacket; -import com.hbm.packet.toserver.KeybindPacket; import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations.Animation; import com.hbm.render.block.ct.CTStitchReceiver; @@ -1081,7 +1079,8 @@ public class ModEventHandlerClient { } } - if(event.phase == Phase.START) { + // ??? + /*if(event.phase == Phase.START) { Minecraft mc = Minecraft.getMinecraft(); @@ -1097,7 +1096,7 @@ public class ModEventHandlerClient { } } } - } + }*/ } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/module/ModuleMachineChemplant.java b/src/main/java/com/hbm/module/ModuleMachineChemplant.java index 258f8fcc4..06fe32d84 100644 --- a/src/main/java/com/hbm/module/ModuleMachineChemplant.java +++ b/src/main/java/com/hbm/module/ModuleMachineChemplant.java @@ -29,7 +29,7 @@ public class ModuleMachineChemplant { public FluidTank[] outputTanks = new FluidTank[3]; // running vars public String recipe = "null"; - public float progress; + public double progress; // return signals public boolean didProcess = false; public boolean markDirty = false; @@ -48,9 +48,10 @@ public class ModuleMachineChemplant { } /** Expects the tanks to be set up correctly beforehand */ - public boolean canProcess(GenericRecipe recipe) { + public boolean canProcess(GenericRecipe recipe, double speed, double power) { if(recipe == null) return false; - if(battery.getPower() < recipe.power) return false; + if(power != 1 && battery.getPower() < recipe.power * power) return false; // only check with floating point numbers if mult is not 1 + if(power == 1 && battery.getPower() < recipe.power) return false; if(recipe.inputItem != null) { for(int i = 0; i < Math.min(recipe.inputItem.length, inputSlots.length); i++) { @@ -87,14 +88,13 @@ public class ModuleMachineChemplant { return true; } - public void process(GenericRecipe recipe) { + public void process(GenericRecipe recipe, double speed, double power) { - this.battery.setPower(this.battery.getPower() - recipe.power); - float step = Math.min(1F / recipe.duration, 1F); // can't do more than one recipe per tick, might look into that later + this.battery.setPower(this.battery.getPower() - (power == 1 ? recipe.power : (long) (recipe.power * power))); + double step = Math.min(speed / recipe.duration, 1D); // can't do more than one recipe per tick, might look into that later this.progress += step; - if(this.progress >= 1F) { - this.progress -= 1F; + if(this.progress >= 1D) { if(recipe.inputItem != null) { for(int i = 0; i < Math.min(recipe.inputItem.length, inputSlots.length); i++) { @@ -127,18 +127,23 @@ public class ModuleMachineChemplant { } this.markDirty = true; + + if(this.canProcess(recipe, speed, power)) + this.progress -= 1D; + else + this.progress = 0D; } } - public void update() { + public void update(double speed, double power) { GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.recipe); this.setupTanks(recipe); this.didProcess = false; this.markDirty = false; - if(this.canProcess(recipe)) { - this.process(recipe); + if(this.canProcess(recipe, speed, power)) { + this.process(recipe, speed, power); this.didProcess = true; } else { this.progress = 0F; @@ -164,22 +169,22 @@ public class ModuleMachineChemplant { public ModuleMachineChemplant fluidOutput(FluidTank a, FluidTank b, FluidTank c) { outputTanks[0] = a; outputTanks[1] = b; outputTanks[2] = c; return this; } public void serialize(ByteBuf buf) { - buf.writeFloat(progress); + buf.writeDouble(progress); ByteBufUtils.writeUTF8String(buf, recipe); } public void deserialize(ByteBuf buf) { - this.progress = buf.readFloat(); + this.progress = buf.readDouble(); this.recipe = ByteBufUtils.readUTF8String(buf); } public void readFromNBT(NBTTagCompound nbt) { - this.progress = nbt.getFloat("progress"); + this.progress = nbt.getDouble("progress"); this.recipe = nbt.getString("recipe"); } public void writeToNBT(NBTTagCompound nbt) { - nbt.setFloat("progress", progress); + nbt.setDouble("progress", progress); nbt.setString("recipe", recipe); } } diff --git a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java index 001ae77b3..fce89cf26 100644 --- a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java +++ b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java @@ -25,6 +25,7 @@ public interface IUpgradeInfoProvider { public static final String KEY_CONSUMPTION = "upgrade.consumption"; public static final String KEY_COOLANT_CONSUMPTION = "upgrade.coolantConsumption"; public static final String KEY_DELAY = "upgrade.delay"; + public static final String KEY_SPEED = "upgrade.speed"; public static final String KEY_EFFICIENCY = "upgrade.efficiency"; public static final String KEY_PRODUCTIVITY = "upgrade.productivity"; public static final String KEY_FORTUNE = "upgrade.fortune"; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index 7d6c0d0e3..0dc1dd1ad 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -75,6 +75,8 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem @Override public void updateEntity() { + if(maxPower <= 0) this.maxPower = 1_000_000; + if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); @@ -93,8 +95,18 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem for(FluidTank tank : inputTanks) if(tank.getTankType() != Fluids.NONE) this.trySubscribe(tank.getTankType(), worldObj, pos); for(FluidTank tank : outputTanks) if(tank.getFill() > 0) this.tryProvide(tank, worldObj, pos); } + + double speed = 1D; + double pow = 1D; + + speed += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) / 3D; + speed += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3); + + pow -= Math.min(upgradeManager.getLevel(UpgradeType.POWER), 3) * 0.25D; + pow += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) * 1D; + pow += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 10D / 3D; - this.chemplantModule.update(); + this.chemplantModule.update(speed, pow); this.didProcess = this.chemplantModule.didProcess; if(this.chemplantModule.markDirty) this.markDirty(); @@ -237,19 +249,18 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem @Override public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { - return false; //return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; } @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemical_plant)); if(type == UpgradeType.SPEED) { - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_DELAY, "-" + (level * 25) + "%")); - info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_CONSUMPTION, "+" + (level * 300) + "%")); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_SPEED, "+" + (level * 100 / 3) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_CONSUMPTION, "+" + (level * 50) + "%")); } if(type == UpgradeType.POWER) { - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_CONSUMPTION, "-" + (level * 30) + "%")); - info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_DELAY, "+" + (level * 5) + "%")); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_CONSUMPTION, "-" + (level * 25) + "%")); } if(type == UpgradeType.OVERDRIVE) { info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); @@ -261,7 +272,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem HashMap upgrades = new HashMap<>(); upgrades.put(UpgradeType.SPEED, 3); upgrades.put(UpgradeType.POWER, 3); - upgrades.put(UpgradeType.OVERDRIVE, 6); + upgrades.put(UpgradeType.OVERDRIVE, 3); return upgrades; } } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d690efe90..a3a94ae52 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -6172,6 +6172,7 @@ upgrade.fortune=Fortune %s upgrade.overheatChance=Overheat chance %s upgrade.productivity=Productivity %s upgrade.range=Range %s +upgrade.speed=Process speed %s upgrade.gui.title=§lAcceptable Upgrades:§r upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_chemical_factory.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_chemical_factory.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ce9926c1d1a6d67a6aed1a7959cce567b90002 GIT binary patch literal 3840 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/biomass_compressed.png b/src/main/resources/assets/hbm/textures/items/biomass_compressed.png index 2beb95ecba0a8f970231cdef412f54ac2e907066..f206fa55c4e8a563dd49bec2dccfa3048ba3c0b7 100644 GIT binary patch delta 387 zcmV-}0et?<1Fi#*G=F7DL_t(Ijn$IBO2c3j#eaUu*ScuMN<-2Tt3HEW{DVs;!ATSx z#7A&*ao5ekQ3u_fd;uq2dzj*7 zt+s&U^u(Ibd1*fbP_}H2jt>UXrU^E-mXdmXnJ5e~&1y<8%_?Qf=H&D+^9HFwr}N6? z)diXmlnjfe+aOj7)2sk6S}5?+ZvSimpkjp(0?%{lc0UoCK*}D)_x#KReK(L&$1tp3 z=ZcLc1XAV*f_xTI>J%r6zZ;Yc3(s?j!U)%GP% zl}hFP_M?_BUWj-ha{K38_>AawEZ;f@;)O`_p)R@|uZ_1|2n^WjF%qp~%H=Yrr$0z< z4c1yFlL-LUTC%MB4+hU8D5WTsO6=@Fp686mWBUCOiv?s^m&Jm$u{IzA93NkDb!Eu1 zE{~6Y+1vB+Jby?M!{K4o-GSCId7g7~(;-O=)9I8(Bc@iX((jK*62ovfQWpiZ8lf-6mT#%!|-V z2hE3i;m+c}v4sI!tFKauv$Hz2T9xbTPLa3Py12WUI2&)`L&xTbCx4H_a8G+l#{d8T M07*qoM6N<$g4#I9RR910 From baad5cefbe1edc7ede1d73cf3fc28cb41458ae75 Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Sat, 14 Jun 2025 08:30:42 +0800 Subject: [PATCH 170/181] feat: add RESOLUTION_FACTOR Introduce RESOLUTION_FACTOR to scale ray density for tuning. Consider exposing this in BombConfig for runtime configuration. --- .../com/hbm/explosion/ExplosionNukeRayParallelized.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index 08926ff5f..dfcf0acae 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -34,7 +34,8 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private static final int BITSET_SIZE = 16 * WORLD_HEIGHT * 16; private static final int SUBCHUNK_PER_CHUNK = WORLD_HEIGHT >> 4; private static final float NUKE_RESISTANCE_CUTOFF = 2_000_000F; - private static final float INITIAL_ENERGY_FACTOR = 0.3F; + private static final float INITIAL_ENERGY_FACTOR = 0.3F; // Scales crater, no impact on performance + private static final double RESOLUTION_FACTOR = 1.0; // Scales ray density, no impact on crater radius protected final World world; private final double explosionX, explosionY, explosionZ; @@ -72,7 +73,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { this.strength = strength; this.radius = radius; - int rayCount = Math.max(0, (int) (2.5 * Math.PI * strength * strength)); + int rayCount = Math.max(0, (int) (2.5 * Math.PI * strength * strength * RESOLUTION_FACTOR)); this.latch = new CountDownLatch(rayCount); List sortedSubChunks = getAllSubChunks(); this.lowPriorityProactiveIterator = sortedSubChunks.iterator(); @@ -336,7 +337,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { return; } float resistance = getNukeResistance(originalBlock); - if (accumulatedDamage >= resistance) chunkDestructionBitSet.set(bitIndex); + if (accumulatedDamage >= resistance * RESOLUTION_FACTOR) chunkDestructionBitSet.set(bitIndex); innerDamageMap.remove(bitIndex); }); if (innerDamageMap.isEmpty()) damageMap.remove(cp); From 1e26546c79aafe4fa60a5d69d3db75f0d9316932 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 15 Jun 2025 22:40:59 +0200 Subject: [PATCH 171/181] chemfac chemfac --- .../hbm/particle/ParticleFlamethrower.java | 26 +- .../com/hbm/particle/helper/FlameCreator.java | 2 + .../hbm/models/machines/chemical_factory.obj | 18369 ++++++++++++++++ .../models/machines/chemical_factory.png | Bin 0 -> 3884 bytes 4 files changed, 18392 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/machines/chemical_factory.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/chemical_factory.png diff --git a/src/main/java/com/hbm/particle/ParticleFlamethrower.java b/src/main/java/com/hbm/particle/ParticleFlamethrower.java index 636ef82a9..5477c95b7 100644 --- a/src/main/java/com/hbm/particle/ParticleFlamethrower.java +++ b/src/main/java/com/hbm/particle/ParticleFlamethrower.java @@ -12,12 +12,15 @@ import net.minecraft.world.World; @SideOnly(Side.CLIENT) public class ParticleFlamethrower extends EntityFXRotating { + + public int type; public ParticleFlamethrower(World world, double x, double y, double z, int type) { super(world, x, y, z); particleIcon = ModEventHandlerClient.particleBase; this.particleMaxAge = 20 + rand.nextInt(10); this.particleScale = 0.5F; + this.type = type; this.motionX = world.rand.nextGaussian() * 0.02; this.motionZ = world.rand.nextGaussian() * 0.02; @@ -31,6 +34,9 @@ public class ParticleFlamethrower extends EntityFXRotating { this.particleRed = color.getRed() / 255F; this.particleGreen = color.getGreen() / 255F; this.particleBlue = color.getBlue() / 255F; + + if(type == FlameCreator.META_OXY) this.particleRed = this.particleGreen = this.particleBlue = 1F; + if(type == FlameCreator.META_BLACK) this.particleRed = this.particleGreen = this.particleBlue = 1F; } @Override @@ -60,11 +66,21 @@ public class ParticleFlamethrower extends EntityFXRotating { public void renderParticle(Tessellator tess, float interp, float sX, float sY, float sZ, float dX, float dZ) { double ageScaled = (double) this.particleAge / (double) this.particleMaxAge; - - this.particleAlpha = (float) Math.pow(1 - Math.min(ageScaled, 1), 0.5); - float add = 0.75F - (float) ageScaled; - - tess.setColorRGBA_F(this.particleRed + add, this.particleGreen + add, this.particleBlue + add, this.particleAlpha * 0.5F); + + if(type == FlameCreator.META_OXY) { + this.particleAlpha = (float) (1 - ageScaled); + float add = (float) ageScaled * 1.25F - 0.25F; + tess.setColorRGBA_F(this.particleRed - add, this.particleGreen - add * 0.75F, this.particleBlue, this.particleAlpha); + } else if(type == FlameCreator.META_BLACK) { + this.particleAlpha = (float) (1 - ageScaled); + float add = (float) ageScaled * 4F - 1F; + tess.setColorRGBA_F(this.particleRed - add * 0.75F, this.particleGreen - add, this.particleBlue - add * 0.5F, this.particleAlpha); + } else { + this.particleAlpha = (float) Math.pow(1 - Math.min(ageScaled, 1), 0.5); + float add = 0.75F - (float) ageScaled; + tess.setColorRGBA_F(this.particleRed + add, this.particleGreen + add, this.particleBlue + add, this.particleAlpha * 0.5F); + } + tess.setNormal(0.0F, 1.0F, 0.0F); tess.setBrightness(240); diff --git a/src/main/java/com/hbm/particle/helper/FlameCreator.java b/src/main/java/com/hbm/particle/helper/FlameCreator.java index d47fd0095..759eeb04e 100644 --- a/src/main/java/com/hbm/particle/helper/FlameCreator.java +++ b/src/main/java/com/hbm/particle/helper/FlameCreator.java @@ -18,6 +18,8 @@ public class FlameCreator implements IParticleCreator { public static int META_FIRE = 0; public static int META_BALEFIRE = 1; public static int META_DIGAMMA = 2; + public static int META_OXY = 3; + public static int META_BLACK = 4; public static void composeEffect(World world, double x, double y, double z, int meta) { NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/resources/assets/hbm/models/machines/chemical_factory.obj b/src/main/resources/assets/hbm/models/machines/chemical_factory.obj new file mode 100644 index 000000000..9694d282a --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/chemical_factory.obj @@ -0,0 +1,18369 @@ +# Blender v2.79 (sub 0) OBJ File: 'chemical_factory.blend' +# www.blender.org +o Fan2 +v -0.875000 2.000000 -0.000000 +v -0.937500 2.000000 -0.108253 +v -1.062500 2.000000 -0.108253 +v -1.125000 2.000000 -0.000000 +v -1.062500 2.000000 0.108253 +v -0.937500 2.000000 0.108253 +v -0.937500 2.187500 -0.108253 +v -0.875000 2.187500 -0.000000 +v -1.062500 2.187500 -0.108253 +v -1.125000 2.187500 -0.000000 +v -1.062500 2.187500 0.108253 +v -0.937500 2.187500 0.108253 +v -1.056644 2.120164 0.108253 +v -0.943356 2.067336 0.108253 +v -1.169933 2.172991 0.483253 +v -0.830067 2.014509 0.483253 +v -0.877928 2.120164 -0.005071 +v -1.000000 2.093750 0.545753 +v -0.934572 2.067336 -0.103182 +v -0.496524 2.172991 -0.094461 +v -0.666457 2.014509 -0.388793 +v -0.527364 2.093750 -0.272877 +v -1.065428 2.120164 -0.103182 +v -1.122072 2.067336 -0.005071 +v -1.333543 2.172991 -0.388793 +v -1.503476 2.014509 -0.094461 +v -1.472636 2.093750 -0.272877 +vt 0.118967 0.494248 +vt 0.118967 0.482763 +vt 0.127451 0.477020 +vt 0.156863 0.459770 +vt 0.147059 0.477012 +vt 0.147059 0.459770 +vt 0.137255 0.477012 +vt 0.137255 0.459770 +vt 0.127451 0.459770 +vt 0.117647 0.477012 +vt 0.117647 0.459770 +vt 0.166667 0.459770 +vt 0.156863 0.477012 +vt 0.127451 0.477012 +vt 0.176471 0.459770 +vt 0.166667 0.477012 +vt 0.210784 0.477012 +vt 0.205882 0.494253 +vt 0.176471 0.482759 +vt 0.210784 0.477012 +vt 0.205882 0.494253 +vt 0.176471 0.482759 +vt 0.210784 0.477012 +vt 0.205882 0.494253 +vt 0.176471 0.482759 +vt 0.135935 0.482763 +vt 0.135935 0.494248 +vt 0.127451 0.499991 +vt 0.176471 0.477012 +vt 0.176471 0.471264 +vt 0.205882 0.459770 +vt 0.176471 0.471264 +vt 0.205882 0.459770 +vt 0.176471 0.471264 +vt 0.205882 0.459770 +vn 0.0000 1.0000 0.0000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn -0.8660 0.0000 0.5000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.8660 0.0000 -0.5000 +vn -0.2113 0.9063 -0.3660 +vn -0.2113 0.9063 0.3660 +vn 0.4226 0.9063 -0.0000 +s off +f 11/1/1 12/2/1 8/3/1 +f 2/4/2 8/5/2 1/6/2 +f 1/6/3 12/7/3 6/8/3 +f 5/9/4 10/10/4 4/11/4 +f 3/12/5 7/13/5 2/4/5 +f 6/8/6 11/14/6 5/9/6 +f 4/15/7 9/16/7 3/12/7 +f 22/17/8 21/18/8 19/19/8 +f 27/20/9 26/21/9 24/22/9 +f 18/23/10 16/24/10 14/25/10 +f 8/3/1 7/26/1 11/1/1 +f 7/26/1 9/27/1 11/1/1 +f 9/27/1 10/28/1 11/1/1 +f 2/4/2 7/13/2 8/5/2 +f 1/6/3 8/5/3 12/7/3 +f 5/9/4 11/14/4 10/10/4 +f 3/12/5 9/16/5 7/13/5 +f 6/8/6 12/7/6 11/14/6 +f 4/15/7 10/29/7 9/16/7 +f 19/19/8 17/30/8 22/17/8 +f 17/30/8 20/31/8 22/17/8 +f 24/22/9 23/32/9 27/20/9 +f 23/32/9 25/33/9 27/20/9 +f 14/25/10 13/34/10 18/23/10 +f 13/34/10 15/35/10 18/23/10 +o Fan1 +v 1.125000 2.000000 0.000000 +v 1.062500 2.000000 -0.108253 +v 0.937500 2.000000 -0.108253 +v 0.875000 2.000000 0.000000 +v 0.937500 2.000000 0.108253 +v 1.062500 2.000000 0.108253 +v 1.062500 2.187500 -0.108253 +v 1.125000 2.187500 0.000000 +v 0.937500 2.187500 -0.108253 +v 0.875000 2.187500 0.000000 +v 0.937500 2.187500 0.108253 +v 1.062500 2.187500 0.108253 +v 0.943356 2.120164 0.108253 +v 1.056644 2.067336 0.108253 +v 0.830067 2.172991 0.483253 +v 1.169933 2.014509 0.483253 +v 1.122072 2.120164 -0.005071 +v 1.000000 2.093750 0.545753 +v 1.065428 2.067336 -0.103182 +v 1.503476 2.172991 -0.094460 +v 1.333543 2.014509 -0.388792 +v 1.472636 2.093750 -0.272877 +v 0.934572 2.120164 -0.103182 +v 0.877928 2.067336 -0.005071 +v 0.666457 2.172991 -0.388792 +v 0.496524 2.014509 -0.094460 +v 0.527364 2.093750 -0.272877 +vt 0.118967 0.494248 +vt 0.118967 0.482763 +vt 0.127451 0.477020 +vt 0.156863 0.459770 +vt 0.147059 0.477012 +vt 0.147059 0.459770 +vt 0.137255 0.477012 +vt 0.137255 0.459770 +vt 0.127451 0.459770 +vt 0.117647 0.477012 +vt 0.117647 0.459770 +vt 0.166667 0.459770 +vt 0.156863 0.477012 +vt 0.127451 0.477012 +vt 0.176471 0.459770 +vt 0.166667 0.477012 +vt 0.210784 0.477012 +vt 0.205882 0.494253 +vt 0.176471 0.482759 +vt 0.210784 0.477012 +vt 0.205882 0.494253 +vt 0.176471 0.482759 +vt 0.210784 0.477012 +vt 0.205882 0.494253 +vt 0.176471 0.482759 +vt 0.135935 0.482763 +vt 0.135935 0.494248 +vt 0.127451 0.499991 +vt 0.176471 0.477012 +vt 0.176471 0.471264 +vt 0.205882 0.459770 +vt 0.176471 0.471264 +vt 0.205882 0.459770 +vt 0.176471 0.471264 +vt 0.205882 0.459770 +vn 0.0000 1.0000 0.0000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn -0.8660 0.0000 0.5000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.8660 0.0000 -0.5000 +vn -0.2113 0.9063 -0.3660 +vn -0.2113 0.9063 0.3660 +vn 0.4226 0.9063 -0.0000 +s off +f 38/36/11 39/37/11 35/38/11 +f 29/39/12 35/40/12 28/41/12 +f 28/41/13 39/42/13 33/43/13 +f 32/44/14 37/45/14 31/46/14 +f 30/47/15 34/48/15 29/39/15 +f 33/43/16 38/49/16 32/44/16 +f 31/50/17 36/51/17 30/47/17 +f 49/52/18 48/53/18 46/54/18 +f 54/55/19 53/56/19 51/57/19 +f 45/58/20 43/59/20 41/60/20 +f 35/38/11 34/61/11 38/36/11 +f 34/61/11 36/62/11 38/36/11 +f 36/62/11 37/63/11 38/36/11 +f 29/39/12 34/48/12 35/40/12 +f 28/41/13 35/40/13 39/42/13 +f 32/44/14 38/49/14 37/45/14 +f 30/47/15 36/51/15 34/48/15 +f 33/43/16 39/42/16 38/49/16 +f 31/50/17 37/64/17 36/51/17 +f 46/54/18 44/65/18 49/52/18 +f 44/65/18 47/66/18 49/52/18 +f 51/57/19 50/67/19 54/55/19 +f 50/67/19 52/68/19 54/55/19 +f 41/60/20 40/69/20 45/58/20 +f 40/69/20 42/70/20 45/58/20 +o Frame +v 2.500000 0.250000 2.500000 +v 2.500000 0.250000 2.375000 +v 2.500000 2.750000 2.500000 +v 2.500000 2.750000 2.375000 +v 2.375000 0.250000 2.500000 +v 2.375000 0.250000 2.375000 +v 2.375000 2.750000 2.500000 +v 2.375000 2.750000 2.375000 +v 2.500000 0.250000 -2.375000 +v 2.500000 0.250000 -2.500000 +v 2.500000 2.750000 -2.375000 +v 2.500000 2.750000 -2.500000 +v 2.375000 0.250000 -2.375000 +v 2.375000 0.250000 -2.500000 +v 2.375000 2.750000 -2.375000 +v 2.375000 2.750000 -2.500000 +v -2.375000 0.250000 2.500000 +v -2.375000 0.250000 2.375000 +v -2.375000 2.750000 2.500000 +v -2.375000 2.750000 2.375000 +v -2.500000 0.250000 2.500000 +v -2.500000 0.250000 2.375000 +v -2.500000 2.750000 2.500000 +v -2.500000 2.750000 2.375000 +v -2.375000 0.250000 -2.375000 +v -2.375000 0.250000 -2.500000 +v -2.375000 2.750000 -2.375000 +v -2.375000 2.750000 -2.500000 +v -2.500000 0.250000 -2.375000 +v -2.500000 0.250000 -2.500000 +v -2.500000 2.750000 -2.375000 +v -2.500000 2.750000 -2.500000 +v -2.500000 2.750000 2.500000 +v -2.250000 2.750000 2.500000 +v -2.500000 2.750000 2.250000 +v -2.250000 2.750000 2.250000 +v -2.500000 3.000000 2.500000 +v -2.250000 3.000000 2.500000 +v -2.500000 3.000000 2.250000 +v -2.250000 3.000000 2.250000 +v 2.250000 2.750000 2.500000 +v 2.500000 2.750000 2.500000 +v 2.250000 2.750000 2.250000 +v 2.500000 2.750000 2.250000 +v 2.250000 3.000000 2.500000 +v 2.500000 3.000000 2.500000 +v 2.250000 3.000000 2.250000 +v 2.500000 3.000000 2.250000 +v -2.500000 2.750000 -2.250000 +v -2.250000 2.750000 -2.250000 +v -2.500000 2.750000 -2.500000 +v -2.250000 2.750000 -2.500000 +v -2.500000 3.000000 -2.250000 +v -2.250000 3.000000 -2.250000 +v -2.500000 3.000000 -2.500000 +v -2.250000 3.000000 -2.500000 +v 2.250000 2.750000 -2.250000 +v 2.500000 2.750000 -2.250000 +v 2.250000 2.750000 -2.500000 +v 2.500000 2.750000 -2.500000 +v 2.250000 3.000000 -2.250000 +v 2.500000 3.000000 -2.250000 +v 2.250000 3.000000 -2.500000 +v 2.500000 3.000000 -2.500000 +v 2.250000 2.875000 2.375000 +v -2.250000 2.875000 2.375000 +v 2.250000 2.875000 2.500000 +v -2.250000 2.875000 2.500000 +v -2.250000 3.000000 2.375000 +v 2.250000 3.000000 2.375000 +v 2.250000 3.000000 2.500000 +v -2.250000 3.000000 2.500000 +v 2.250000 2.875000 -2.375000 +v -2.250000 2.875000 -2.375000 +v -2.250000 2.875000 -2.500000 +v 2.250000 2.875000 -2.500000 +v 2.250000 3.000000 -2.375000 +v -2.250000 3.000000 -2.375000 +v -2.250000 3.000000 -2.500000 +v 2.250000 3.000000 -2.500000 +v 2.375000 2.875000 2.250000 +v 2.375000 2.875000 -2.250000 +v 2.500000 2.875000 -2.250000 +v 2.500000 2.875000 2.250000 +v 2.375000 3.000000 2.250000 +v 2.375000 3.000000 -2.250000 +v 2.500000 3.000000 -2.250000 +v 2.500000 3.000000 2.250000 +v -2.375000 2.875000 -2.250000 +v -2.375000 2.875000 2.250000 +v -2.500000 2.875000 2.250000 +v -2.500000 2.875000 -2.250000 +v -2.375000 3.000000 -2.250000 +v -2.375000 3.000000 2.250000 +v -2.500000 3.000000 2.250000 +v -2.500000 3.000000 -2.250000 +vt 0.686275 0.643678 +vt 0.490196 0.632184 +vt 0.686275 0.632184 +vt 0.686275 0.620690 +vt 0.490196 0.655172 +vt 0.490196 0.643678 +vt 0.490196 0.609195 +vt 0.686275 0.609195 +vt 0.686275 0.632184 +vt 0.490196 0.620690 +vt 0.686275 0.620690 +vt 0.686275 0.609195 +vt 0.490196 0.643678 +vt 0.490196 0.632184 +vt 0.686275 0.655172 +vt 0.686275 0.643678 +vt 0.686275 0.655172 +vt 0.490196 0.643678 +vt 0.686275 0.643678 +vt 0.686275 0.632184 +vt 0.686275 0.609195 +vt 0.490196 0.620690 +vt 0.490196 0.609195 +vt 0.686275 0.620690 +vt 0.686275 0.620690 +vt 0.490196 0.609195 +vt 0.686275 0.609195 +vt 0.490196 0.655172 +vt 0.686275 0.643678 +vt 0.686275 0.655172 +vt 0.490196 0.632184 +vt 0.490196 0.620690 +vt 0.686275 0.632184 +vt 0.862745 -0.000000 +vt 0.882353 0.022989 +vt 0.862745 0.022989 +vt 0.882353 0.045977 +vt 0.862745 0.068966 +vt 0.862745 0.045977 +vt 0.921569 0.022989 +vt 0.901961 0.045977 +vt 0.901961 0.022989 +vt 0.941176 0.022989 +vt 0.921569 0.045977 +vt 0.862745 -0.000000 +vt 0.882353 0.022989 +vt 0.862745 0.022989 +vt 0.882353 0.045977 +vt 0.862745 0.068966 +vt 0.862745 0.045977 +vt 0.921569 0.022989 +vt 0.901961 0.045977 +vt 0.901961 0.022989 +vt 0.941176 0.022989 +vt 0.921569 0.045977 +vt 0.862745 -0.000000 +vt 0.882353 0.022989 +vt 0.862745 0.022989 +vt 0.882353 0.045977 +vt 0.862745 0.068966 +vt 0.862745 0.045977 +vt 0.921569 0.022989 +vt 0.901961 0.045977 +vt 0.901961 0.022989 +vt 0.941176 0.022989 +vt 0.921569 0.045977 +vt 0.862745 -0.000000 +vt 0.882353 0.022989 +vt 0.862745 0.022989 +vt 0.882353 0.045977 +vt 0.862745 0.068966 +vt 0.862745 0.045977 +vt 0.921569 0.022989 +vt 0.901961 0.045977 +vt 0.901961 0.022989 +vt 0.941176 0.022989 +vt 0.921569 0.045977 +vt 0.490196 0.563218 +vt 0.843137 0.574713 +vt 0.490196 0.574713 +vt 0.843137 0.586207 +vt 0.490196 0.597701 +vt 0.843137 0.609195 +vt 0.490196 0.609195 +vt 0.490196 0.586207 +vt 0.843137 0.597701 +vt 0.490196 0.563218 +vt 0.843137 0.574713 +vt 0.490196 0.574713 +vt 0.843137 0.586207 +vt 0.490196 0.597701 +vt 0.843137 0.609195 +vt 0.490196 0.609195 +vt 0.490196 0.586207 +vt 0.843137 0.597701 +vt 0.490196 0.563218 +vt 0.843137 0.574713 +vt 0.490196 0.574713 +vt 0.843137 0.586207 +vt 0.490196 0.597701 +vt 0.843137 0.609195 +vt 0.490196 0.609195 +vt 0.490196 0.586207 +vt 0.843137 0.597701 +vt 0.490196 0.563218 +vt 0.843137 0.574713 +vt 0.490196 0.574713 +vt 0.843137 0.586207 +vt 0.490196 0.597701 +vt 0.843137 0.609195 +vt 0.490196 0.609195 +vt 0.490196 0.586207 +vt 0.843137 0.597701 +vt 0.490196 0.620690 +vt 0.686275 0.655172 +vt 0.490196 0.609195 +vt 0.490196 0.655172 +vt 0.490196 0.655172 +vt 0.490196 0.632184 +vt 0.490196 0.643678 +vt 0.882353 -0.000000 +vt 0.882353 0.068966 +vt 0.941176 0.045977 +vt 0.882353 -0.000000 +vt 0.882353 0.068966 +vt 0.941176 0.045977 +vt 0.882353 -0.000000 +vt 0.882353 0.068966 +vt 0.941176 0.045977 +vt 0.882353 -0.000000 +vt 0.882353 0.068966 +vt 0.941176 0.045977 +vt 0.843137 0.563218 +vt 0.843137 0.563218 +vt 0.843137 0.563218 +vt 0.843137 0.563218 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 56/71/21 57/72/21 55/73/21 +f 57/72/22 59/74/22 55/73/22 +f 56/71/23 62/75/23 58/76/23 +f 59/74/24 62/77/24 60/78/24 +f 64/79/21 65/80/21 63/81/21 +f 65/80/22 67/82/22 63/81/22 +f 64/79/23 70/83/23 66/84/23 +f 67/85/24 70/83/24 68/86/24 +f 72/87/21 73/88/21 71/89/21 +f 73/88/22 75/90/22 71/89/22 +f 72/91/23 78/92/23 74/93/23 +f 75/90/24 78/92/24 76/94/24 +f 80/95/21 81/96/21 79/97/21 +f 81/98/22 83/99/22 79/100/22 +f 80/95/23 86/101/23 82/102/23 +f 83/99/24 86/101/24 84/103/24 +f 87/104/25 90/105/25 88/106/25 +f 94/107/26 91/108/26 92/109/26 +f 87/110/24 93/111/24 89/112/24 +f 89/112/23 94/107/23 90/105/23 +f 90/105/21 92/109/21 88/106/21 +f 88/113/22 91/114/22 87/110/22 +f 95/115/25 98/116/25 96/117/25 +f 102/118/26 99/119/26 100/120/26 +f 95/121/24 101/122/24 97/123/24 +f 97/123/23 102/118/23 98/116/23 +f 98/116/21 100/120/21 96/117/21 +f 96/124/22 99/125/22 95/121/22 +f 103/126/25 106/127/25 104/128/25 +f 110/129/26 107/130/26 108/131/26 +f 103/132/24 109/133/24 105/134/24 +f 105/134/23 110/129/23 106/127/23 +f 106/127/21 108/131/21 104/128/21 +f 104/135/22 107/136/22 103/132/22 +f 111/137/25 114/138/25 112/139/25 +f 118/140/26 115/141/26 116/142/26 +f 111/143/24 117/144/24 113/145/24 +f 113/145/23 118/140/23 114/138/23 +f 114/138/21 116/142/21 112/139/21 +f 112/146/22 115/147/22 111/143/22 +f 120/148/25 121/149/25 122/150/25 +f 125/151/22 122/150/22 121/149/22 +f 123/152/23 119/153/23 120/154/23 +f 126/155/26 124/156/26 123/152/26 +f 127/157/25 129/158/25 130/159/25 +f 133/160/23 130/159/23 129/158/23 +f 131/161/22 128/162/22 127/163/22 +f 134/164/26 132/165/26 131/161/26 +f 135/166/25 137/167/25 138/168/25 +f 141/169/21 138/168/21 137/167/21 +f 139/170/24 136/171/24 135/172/24 +f 142/173/26 140/174/26 139/170/26 +f 143/175/25 145/176/25 146/177/25 +f 149/178/24 146/177/24 145/176/24 +f 147/179/21 144/180/21 143/181/21 +f 150/182/26 148/183/26 147/179/26 +f 56/71/21 58/76/21 57/72/21 +f 57/72/22 61/184/22 59/74/22 +f 56/71/23 60/185/23 62/75/23 +f 59/74/24 61/184/24 62/77/24 +f 64/79/21 66/84/21 65/80/21 +f 65/80/22 69/186/22 67/82/22 +f 64/79/23 68/86/23 70/83/23 +f 67/85/24 69/187/24 70/83/24 +f 72/87/21 74/188/21 73/88/21 +f 73/88/22 77/189/22 75/90/22 +f 72/91/23 76/94/23 78/92/23 +f 75/90/24 77/189/24 78/92/24 +f 80/95/21 82/102/21 81/96/21 +f 81/98/22 85/190/22 83/99/22 +f 80/95/23 84/103/23 86/101/23 +f 83/99/24 85/190/24 86/101/24 +f 87/104/25 89/191/25 90/105/25 +f 94/107/26 93/192/26 91/108/26 +f 87/110/24 91/114/24 93/111/24 +f 89/112/23 93/111/23 94/107/23 +f 90/105/21 94/107/21 92/109/21 +f 88/113/22 92/193/22 91/114/22 +f 95/115/25 97/194/25 98/116/25 +f 102/118/26 101/195/26 99/119/26 +f 95/121/24 99/125/24 101/122/24 +f 97/123/23 101/122/23 102/118/23 +f 98/116/21 102/118/21 100/120/21 +f 96/124/22 100/196/22 99/125/22 +f 103/126/25 105/197/25 106/127/25 +f 110/129/26 109/198/26 107/130/26 +f 103/132/24 107/136/24 109/133/24 +f 105/134/23 109/133/23 110/129/23 +f 106/127/21 110/129/21 108/131/21 +f 104/135/22 108/199/22 107/136/22 +f 111/137/25 113/200/25 114/138/25 +f 118/140/26 117/201/26 115/141/26 +f 111/143/24 115/147/24 117/144/24 +f 113/145/23 117/144/23 118/140/23 +f 114/138/21 118/140/21 116/142/21 +f 112/146/22 116/202/22 115/147/22 +f 120/148/25 119/203/25 121/149/25 +f 125/151/22 126/155/22 122/150/22 +f 123/152/23 124/156/23 119/153/23 +f 126/155/26 125/151/26 124/156/26 +f 127/157/25 128/204/25 129/158/25 +f 133/160/23 134/164/23 130/159/23 +f 131/161/22 132/165/22 128/162/22 +f 134/164/26 133/160/26 132/165/26 +f 135/166/25 136/205/25 137/167/25 +f 141/169/21 142/173/21 138/168/21 +f 139/170/24 140/174/24 136/171/24 +f 142/173/26 141/169/26 140/174/26 +f 143/175/25 144/206/25 145/176/25 +f 149/178/24 150/182/24 146/177/24 +f 147/179/21 148/183/21 144/180/21 +f 150/182/26 149/178/26 148/183/26 +o Plane.001 +v 16.375000 0.000000 6.250000 +v 16.375000 0.000000 3.750000 +v 16.500000 0.000000 3.750000 +v 16.500000 0.000000 6.250000 +v 16.500000 0.000000 6.500000 +v 16.500000 0.000000 6.250000 +v 16.250000 0.000000 6.500000 +v 16.250000 0.000000 6.250000 +v 16.500000 0.250000 6.500000 +v 16.500000 0.250000 6.250000 +v 16.250000 0.250000 6.500000 +v 16.250000 0.250000 6.250000 +v 16.500000 0.000000 3.750000 +v 16.500000 0.000000 3.500000 +v 16.250000 0.000000 3.750000 +v 16.250000 0.000000 3.500000 +v 16.500000 0.250000 3.750000 +v 16.500000 0.250000 3.500000 +v 16.250000 0.250000 3.750000 +v 16.250000 0.250000 3.500000 +v 13.750000 0.000000 6.500000 +v 13.750000 0.000000 6.250000 +v 13.500000 0.000000 6.500000 +v 13.500000 0.000000 6.250000 +v 13.750000 0.250000 6.500000 +v 13.750000 0.250000 6.250000 +v 13.500000 0.250000 6.500000 +v 13.500000 0.250000 6.250000 +v 13.750000 0.000000 3.750000 +v 13.750000 0.000000 3.500000 +v 13.500000 0.000000 3.750000 +v 13.500000 0.000000 3.500000 +v 13.750000 0.250000 3.750000 +v 13.750000 0.250000 3.500000 +v 13.500000 0.250000 3.750000 +v 13.500000 0.250000 3.500000 +v 16.375000 0.125000 6.250000 +v 16.375000 0.125000 3.750000 +v 16.500000 0.125000 3.750000 +v 16.500000 0.125000 6.250000 +v 13.625000 0.000000 3.750000 +v 13.625000 0.000000 6.250000 +v 13.500000 0.000000 6.250000 +v 13.500000 0.000000 3.750000 +v 13.625000 0.125000 3.750000 +v 13.625000 0.125000 6.250000 +v 13.500000 0.125000 6.250000 +v 13.500000 0.125000 3.750000 +v 16.250000 0.000000 3.625000 +v 13.750000 0.000000 3.625000 +v 13.750000 0.000000 3.500000 +v 16.250000 0.000000 3.500000 +v 16.250000 0.125000 3.625000 +v 13.750000 0.125000 3.625000 +v 13.750000 0.125000 3.500000 +v 16.250000 0.125000 3.500000 +v 13.750000 0.000000 6.375000 +v 16.250000 0.000000 6.375000 +v 16.250000 0.000000 6.500000 +v 13.750000 0.000000 6.500000 +v 13.750000 0.125000 6.375000 +v 16.250000 0.125000 6.375000 +v 16.250000 0.125000 6.500000 +v 13.750000 0.125000 6.500000 +v 16.500000 0.250000 3.500000 +v 16.375000 0.250000 3.500000 +v 16.500000 8.750000 3.500000 +v 16.375000 8.750000 3.500000 +v 16.500000 0.250000 3.625000 +v 16.375000 0.250000 3.625000 +v 16.500000 8.750000 3.625000 +v 16.375000 8.750000 3.625000 +v 16.500000 8.750000 6.500000 +v 16.500000 8.750000 6.250000 +v 16.250000 8.750000 6.500000 +v 16.250000 8.750000 6.250000 +v 16.500000 9.000000 6.500000 +v 16.500000 9.000000 6.250000 +v 16.250000 9.000000 6.500000 +v 16.250000 9.000000 6.250000 +v 16.500000 8.750000 3.750000 +v 16.500000 8.750000 3.500000 +v 16.250000 8.750000 3.750000 +v 16.250000 8.750000 3.500000 +v 16.500000 9.000000 3.750000 +v 16.500000 9.000000 3.500000 +v 16.250000 9.000000 3.750000 +v 16.250000 9.000000 3.500000 +v 13.750000 8.750000 6.500000 +v 13.750000 8.750000 6.250000 +v 13.500000 8.750000 6.500000 +v 13.500000 8.750000 6.250000 +v 13.750000 9.000000 6.500000 +v 13.750000 9.000000 6.250000 +v 13.500000 9.000000 6.500000 +v 13.500000 9.000000 6.250000 +v 13.750000 8.750000 3.750000 +v 13.750000 8.750000 3.500000 +v 13.500000 8.750000 3.750000 +v 13.500000 8.750000 3.500000 +v 13.750000 9.000000 3.750000 +v 13.750000 9.000000 3.500000 +v 13.500000 9.000000 3.750000 +v 13.500000 9.000000 3.500000 +v 13.625000 0.250000 3.500000 +v 13.500000 0.250000 3.500000 +v 13.625000 8.750000 3.500000 +v 13.500000 8.750000 3.500000 +v 13.625000 0.250000 3.625000 +v 13.500000 0.250000 3.625000 +v 13.625000 8.750000 3.625000 +v 13.500000 8.750000 3.625000 +v 16.500000 0.250000 6.375000 +v 16.375000 0.250000 6.375000 +v 16.500000 8.750000 6.375000 +v 16.375000 8.750000 6.375000 +v 16.500000 0.250000 6.500000 +v 16.375000 0.250000 6.500000 +v 16.500000 8.750000 6.500000 +v 16.375000 8.750000 6.500000 +v 13.625000 0.250000 6.375000 +v 13.500000 0.250000 6.375000 +v 13.625000 8.750000 6.375000 +v 13.500000 8.750000 6.375000 +v 13.625000 0.250000 6.500000 +v 13.500000 0.250000 6.500000 +v 13.625000 8.750000 6.500000 +v 13.500000 8.750000 6.500000 +v 16.375000 8.875000 6.250000 +v 16.375000 8.875000 3.750000 +v 16.500000 8.875000 3.750000 +v 16.500000 8.875000 6.250000 +v 16.375000 9.000000 6.250000 +v 16.375000 9.000000 3.750000 +v 16.500000 9.000000 3.750000 +v 16.500000 9.000000 6.250000 +v 13.625000 8.875000 3.750000 +v 13.625000 8.875000 6.250000 +v 13.500000 8.875000 6.250000 +v 13.500000 8.875000 3.750000 +v 13.625000 9.000000 3.750000 +v 13.625000 9.000000 6.250000 +v 13.500000 9.000000 6.250000 +v 13.500000 9.000000 3.750000 +v 16.250000 8.875000 3.625000 +v 13.750000 8.875000 3.625000 +v 13.750000 8.875000 3.500000 +v 16.250000 8.875000 3.500000 +v 16.250000 9.000000 3.625000 +v 13.750000 9.000000 3.625000 +v 13.750000 9.000000 3.500000 +v 16.250000 9.000000 3.500000 +v 13.750000 8.875000 6.375000 +v 16.250000 8.875000 6.375000 +v 16.250000 8.875000 6.500000 +v 13.750000 8.875000 6.500000 +v 13.750000 9.000000 6.375000 +v 16.250000 9.000000 6.375000 +v 16.250000 9.000000 6.500000 +v 13.750000 9.000000 6.500000 +v 14.875000 0.125000 6.500000 +v 15.125000 0.125000 6.500000 +v 14.875000 0.125000 3.500000 +v 15.125000 0.125000 3.500000 +v 14.875000 0.250000 3.500000 +v 14.875000 0.250000 6.500000 +v 15.125000 0.250000 6.500000 +v 15.125000 0.250000 3.500000 +v 15.875000 0.125000 6.500000 +v 16.125000 0.125000 6.500000 +v 15.875000 0.125000 3.500000 +v 16.125000 0.125000 3.500000 +v 15.875000 0.250000 3.500000 +v 15.875000 0.250000 6.500000 +v 16.125000 0.250000 6.500000 +v 16.125000 0.250000 3.500000 +v 13.875000 0.125000 6.500000 +v 14.125000 0.125000 6.500000 +v 13.875000 0.125000 3.500000 +v 14.125000 0.125000 3.500000 +v 13.875000 0.250000 3.500000 +v 13.875000 0.250000 6.500000 +v 14.125000 0.250000 6.500000 +v 14.125000 0.250000 3.500000 +v 14.750000 0.250000 5.250000 +v 16.250000 0.250000 5.250000 +v 14.750000 0.250000 3.750000 +v 16.250000 0.250000 3.750000 +v 14.750000 1.000000 3.750000 +v 14.750000 1.000000 5.250000 +v 16.250000 1.000000 5.250000 +v 16.250000 1.000000 3.750000 +v 15.500000 1.000000 3.500000 +v 15.117317 1.000000 3.576120 +v 14.792893 1.000000 3.792893 +v 14.576120 1.000000 4.117317 +v 14.500000 1.000000 4.500000 +v 14.576120 1.000000 4.882684 +v 14.792893 1.000000 5.207107 +v 15.117317 1.000000 5.423880 +v 15.500000 1.000000 5.500000 +v 15.882683 1.000000 5.423880 +v 16.207108 1.000000 5.207107 +v 16.423880 1.000000 4.882684 +v 16.500000 1.000000 4.500000 +v 16.423880 1.000000 4.117316 +v 16.207108 1.000000 3.792893 +v 15.882683 1.000000 3.576120 +v 15.117317 2.000000 3.576120 +v 15.500000 2.000000 3.500000 +v 14.792893 2.000000 3.792893 +v 14.576120 2.000000 4.117317 +v 14.500000 2.000000 4.500000 +v 14.576120 2.000000 4.882684 +v 14.792893 2.000000 5.207107 +v 15.117317 2.000000 5.423880 +v 15.500000 2.000000 5.500000 +v 15.882683 2.000000 5.423880 +v 16.207108 2.000000 5.207107 +v 16.423880 2.000000 4.882684 +v 16.500000 2.000000 4.500000 +v 16.423880 2.000000 4.117316 +v 16.207108 2.000000 3.792893 +v 15.882683 2.000000 3.576120 +v 15.882683 1.750000 3.576120 +v 16.207108 1.750000 3.792893 +v 16.423880 1.750000 4.117316 +v 16.500000 1.750000 4.500000 +v 16.423880 1.750000 4.882684 +v 16.207108 1.750000 5.207107 +v 14.792893 1.750000 3.792893 +v 15.500000 1.750000 3.500000 +v 15.117317 1.750000 3.576120 +v 15.882683 1.250000 3.576120 +v 16.207108 1.250000 3.792893 +v 16.423880 1.250000 4.117316 +v 16.500000 1.250000 4.500000 +v 16.423880 1.250000 4.882684 +v 16.207108 1.250000 5.207107 +v 14.792893 1.250000 3.792893 +v 15.117317 1.250000 3.576120 +v 15.500000 1.250000 3.500000 +v 16.250000 3.500000 4.125000 +v 15.875000 3.500000 3.750000 +v 15.125000 3.500000 3.750000 +v 14.750000 3.500000 4.125000 +v 15.875000 3.500000 5.250000 +v 16.250000 3.500000 4.875000 +v 14.750000 3.500000 4.875000 +v 15.125000 3.500000 5.250000 +v 15.125000 2.000000 5.250000 +v 14.750000 2.000000 4.875000 +v 16.250000 2.000000 4.875000 +v 15.875000 2.000000 5.250000 +v 14.750000 2.000000 4.125000 +v 15.125000 2.000000 3.750000 +v 15.875000 2.000000 3.750000 +v 16.250000 2.000000 4.125000 +v 15.125000 2.500000 3.750000 +v 14.750000 2.500000 4.125000 +v 14.750000 2.500000 4.875000 +v 15.125000 2.500000 5.250000 +v 15.875000 2.500000 5.250000 +v 16.250000 2.500000 4.875000 +v 16.250000 2.500000 4.125000 +v 15.875000 2.500000 3.750000 +v 15.125000 4.000000 3.750000 +v 14.750000 4.000000 4.125000 +v 14.750000 4.000000 4.875000 +v 15.125000 4.000000 5.250000 +v 15.875000 4.000000 5.250000 +v 16.250000 4.000000 4.875000 +v 16.250000 4.000000 4.125000 +v 15.875000 4.000000 3.750000 +v 16.250000 5.000000 4.125000 +v 15.875000 5.000000 3.750000 +v 15.125000 5.000000 3.750000 +v 14.750000 5.000000 4.125000 +v 15.875000 5.000000 5.250000 +v 16.250000 5.000000 4.875000 +v 14.750000 5.000000 4.875000 +v 15.125000 5.000000 5.250000 +v 15.125000 5.500000 3.750000 +v 14.750000 5.500000 4.125000 +v 14.750000 5.500000 4.875000 +v 15.125000 5.500000 5.250000 +v 15.875000 5.500000 5.250000 +v 16.250000 5.500000 4.875000 +v 16.250000 5.500000 4.125000 +v 15.875000 5.500000 3.750000 +v 16.250000 6.500000 4.125000 +v 15.875000 6.500000 3.750000 +v 15.125000 6.500000 3.750000 +v 14.750000 6.500000 4.125000 +v 15.875000 6.500000 5.250000 +v 16.250000 6.500000 4.875000 +v 14.750000 6.500000 4.875000 +v 15.125000 6.500000 5.250000 +v 15.125000 7.000000 3.750000 +v 14.750000 7.000000 4.125000 +v 14.750000 7.000000 4.875000 +v 15.125000 7.000000 5.250000 +v 15.875000 7.000000 5.250000 +v 16.250000 7.000000 4.875000 +v 16.250000 7.000000 4.125000 +v 15.875000 7.000000 3.750000 +v 15.500000 7.000000 3.500000 +v 15.117317 7.000000 3.576120 +v 14.792893 7.000000 3.792893 +v 14.576120 7.000000 4.117317 +v 14.500000 7.000000 4.500000 +v 14.576120 7.000000 4.882684 +v 14.792893 7.000000 5.207107 +v 15.117317 7.000000 5.423880 +v 15.500000 7.000000 5.500000 +v 15.882683 7.000000 5.423880 +v 16.207108 7.000000 5.207107 +v 16.423880 7.000000 4.882684 +v 16.500000 7.000000 4.500000 +v 16.423880 7.000000 4.117316 +v 16.207108 7.000000 3.792893 +v 15.882683 7.000000 3.576120 +v 15.117317 7.500000 3.576120 +v 15.500000 7.500000 3.500000 +v 14.792893 7.500000 3.792893 +v 14.576120 7.500000 4.117317 +v 14.500000 7.500000 4.500000 +v 14.576120 7.500000 4.882684 +v 14.792893 7.500000 5.207107 +v 15.117317 7.500000 5.423880 +v 15.500000 7.500000 5.500000 +v 15.882683 7.500000 5.423880 +v 16.207108 7.500000 5.207107 +v 16.423880 7.500000 4.882684 +v 16.500000 7.500000 4.500000 +v 16.423880 7.500000 4.117316 +v 16.207108 7.500000 3.792893 +v 15.882683 7.500000 3.576120 +v 15.308659 8.000000 4.038060 +v 15.500000 8.000000 4.000000 +v 15.146446 8.000000 4.146447 +v 15.038060 8.000000 4.308658 +v 15.000000 8.000000 4.500000 +v 15.038060 8.000000 4.691342 +v 15.146446 8.000000 4.853553 +v 15.308659 8.000000 4.961940 +v 15.500000 8.000000 5.000000 +v 15.691341 8.000000 4.961940 +v 15.853554 8.000000 4.853553 +v 15.961940 8.000000 4.691342 +v 16.000000 8.000000 4.500000 +v 15.961940 8.000000 4.308658 +v 15.853554 8.000000 4.146446 +v 15.691341 8.000000 4.038060 +v 13.750000 0.250000 6.250000 +v 14.250000 0.250000 6.250000 +v 13.750000 0.250000 3.750000 +v 14.250000 0.250000 3.750000 +v 13.750000 1.000000 3.750000 +v 13.750000 1.000000 6.250000 +v 14.250000 1.000000 6.250000 +v 14.250000 1.000000 3.750000 +v 13.500000 1.000000 6.375000 +v 14.500000 1.000000 6.375000 +v 13.500000 1.000000 3.875000 +v 14.500000 1.000000 3.875000 +v 13.500000 2.500000 3.875000 +v 14.500000 2.500000 3.875000 +v 13.500000 4.000000 5.375000 +v 13.750000 7.250000 3.937500 +v 14.250000 7.250000 3.937500 +v 14.500000 4.000000 5.375000 +v 14.500000 1.500000 3.875000 +v 14.250000 7.250000 6.062500 +v 13.500000 5.000000 5.375000 +v 13.500000 1.500000 3.875000 +v 14.500000 1.000000 3.625000 +v 13.500000 1.000000 3.625000 +v 13.500000 1.500000 3.625000 +v 14.500000 1.500000 3.625000 +v 13.750000 7.250000 6.062500 +v 14.500000 5.000000 5.375000 +v 14.000000 1.500000 3.625000 +v 13.911612 1.500000 3.661612 +v 13.875000 1.500000 3.750000 +v 13.911612 1.500000 3.838388 +v 14.000000 1.500000 3.875000 +v 14.088388 1.500000 3.838388 +v 14.125000 1.500000 3.750000 +v 14.088388 1.500000 3.661612 +v 14.000000 2.500000 3.625000 +v 13.911612 2.500000 3.661612 +v 13.875000 2.500000 3.750000 +v 13.911612 2.500000 3.838388 +v 14.000000 2.500000 3.875000 +v 14.088388 2.500000 3.838388 +v 14.125000 2.500000 3.750000 +v 14.088388 2.500000 3.661612 +v 14.000000 4.000000 5.125000 +v 13.911612 4.000000 5.161612 +v 13.875000 4.000000 5.250000 +v 13.911612 4.000000 5.338388 +v 14.000000 4.000000 5.375000 +v 14.088388 4.000000 5.338388 +v 14.125000 4.000000 5.250000 +v 14.088388 4.000000 5.161612 +v 14.000000 5.000000 5.125000 +v 13.911612 5.000000 5.161612 +v 13.875000 5.000000 5.250000 +v 13.911612 5.000000 5.338388 +v 14.000000 5.000000 5.375000 +v 14.088388 5.000000 5.338388 +v 14.125000 5.000000 5.250000 +v 14.088388 5.000000 5.161612 +v 15.500000 1.125000 3.625000 +v 15.165152 1.125000 3.691605 +v 14.881281 1.125000 3.881281 +v 14.691606 1.125000 4.165152 +v 14.625000 1.125000 4.500000 +v 14.691606 1.125000 4.834848 +v 14.881281 1.125000 5.118718 +v 15.165152 1.125000 5.308394 +v 15.500000 1.125000 5.375000 +v 15.834847 1.125000 5.308394 +v 16.118717 1.125000 5.118719 +v 16.308395 1.125000 4.834848 +v 16.375000 1.125000 4.500000 +v 16.308395 1.125000 4.165152 +v 16.118717 1.125000 3.881281 +v 15.834847 1.125000 3.691605 +v 15.500000 1.250000 3.625000 +v 15.165152 1.250000 3.691605 +v 14.881281 1.250000 3.881281 +v 16.118717 1.250000 5.118719 +v 16.308395 1.250000 4.834848 +v 16.375000 1.250000 4.500000 +v 16.308395 1.250000 4.165152 +v 16.118717 1.250000 3.881281 +v 15.834847 1.250000 3.691605 +v 15.500000 1.875000 3.625000 +v 15.165152 1.875000 3.691605 +v 14.881281 1.875000 3.881281 +v 14.691606 1.875000 4.165152 +v 14.625000 1.875000 4.500000 +v 14.691606 1.875000 4.834848 +v 14.881281 1.875000 5.118718 +v 15.165152 1.875000 5.308394 +v 15.500000 1.875000 5.375000 +v 15.834847 1.875000 5.308394 +v 16.118717 1.875000 5.118719 +v 16.308395 1.875000 4.834848 +v 16.375000 1.875000 4.500000 +v 16.308395 1.875000 4.165152 +v 16.118717 1.875000 3.881281 +v 15.834847 1.875000 3.691605 +v 15.500000 1.750000 3.625000 +v 15.165152 1.750000 3.691605 +v 14.881281 1.750000 3.881281 +v 16.118717 1.750000 5.118719 +v 16.308395 1.750000 4.834848 +v 16.375000 1.750000 4.500000 +v 16.308395 1.750000 4.165152 +v 16.118717 1.750000 3.881281 +v 15.834847 1.750000 3.691605 +v 15.500000 2.500000 3.500000 +v 15.117317 2.500000 3.576120 +v 14.792893 2.500000 3.792893 +v 14.576120 2.500000 4.117317 +v 14.500000 2.500000 4.500000 +v 14.576120 2.500000 4.882684 +v 14.792893 2.500000 5.207107 +v 15.117317 2.500000 5.423880 +v 15.500000 2.500000 5.500000 +v 15.882683 2.500000 5.423880 +v 16.207108 2.500000 5.207107 +v 16.423880 2.500000 4.882684 +v 16.500000 2.500000 4.500000 +v 16.423880 2.500000 4.117316 +v 16.207108 2.500000 3.792893 +v 15.882683 2.500000 3.576120 +v 15.117317 3.500000 3.576120 +v 15.500000 3.500000 3.500000 +v 14.792893 3.500000 3.792893 +v 14.576120 3.500000 4.117317 +v 14.500000 3.500000 4.500000 +v 14.576120 3.500000 4.882684 +v 14.792893 3.500000 5.207107 +v 15.117317 3.500000 5.423880 +v 15.500000 3.500000 5.500000 +v 15.882683 3.500000 5.423880 +v 16.207108 3.500000 5.207107 +v 16.423880 3.500000 4.882684 +v 16.500000 3.500000 4.500000 +v 16.423880 3.500000 4.117316 +v 16.207108 3.500000 3.792893 +v 15.882683 3.500000 3.576120 +v 15.882683 3.250000 3.576120 +v 16.207108 3.250000 3.792893 +v 16.423880 3.250000 4.117316 +v 16.500000 3.250000 4.500000 +v 16.423880 3.250000 4.882684 +v 16.207108 3.250000 5.207107 +v 14.792893 3.250000 3.792893 +v 15.500000 3.250000 3.500000 +v 15.117317 3.250000 3.576120 +v 15.882683 2.750000 3.576120 +v 16.207108 2.750000 3.792893 +v 16.423880 2.750000 4.117316 +v 16.500000 2.750000 4.500000 +v 16.423880 2.750000 4.882684 +v 16.207108 2.750000 5.207107 +v 14.792893 2.750000 3.792893 +v 15.117317 2.750000 3.576120 +v 15.500000 2.750000 3.500000 +v 15.500000 2.625000 3.625000 +v 15.165152 2.625000 3.691605 +v 14.881281 2.625000 3.881281 +v 14.691606 2.625000 4.165152 +v 14.625000 2.625000 4.500000 +v 14.691606 2.625000 4.834848 +v 14.881281 2.625000 5.118718 +v 15.165152 2.625000 5.308394 +v 15.500000 2.625000 5.375000 +v 15.834847 2.625000 5.308394 +v 16.118717 2.625000 5.118719 +v 16.308395 2.625000 4.834848 +v 16.375000 2.625000 4.500000 +v 16.308395 2.625000 4.165152 +v 16.118717 2.625000 3.881281 +v 15.834847 2.625000 3.691605 +v 15.500000 2.750000 3.625000 +v 15.165152 2.750000 3.691605 +v 14.881281 2.750000 3.881281 +v 16.118717 2.750000 5.118719 +v 16.308395 2.750000 4.834848 +v 16.375000 2.750000 4.500000 +v 16.308395 2.750000 4.165152 +v 16.118717 2.750000 3.881281 +v 15.834847 2.750000 3.691605 +v 15.500000 3.375000 3.625000 +v 15.165152 3.375000 3.691605 +v 14.881281 3.375000 3.881281 +v 14.691606 3.375000 4.165152 +v 14.625000 3.375000 4.500000 +v 14.691606 3.375000 4.834848 +v 14.881281 3.375000 5.118718 +v 15.165152 3.375000 5.308394 +v 15.500000 3.375000 5.375000 +v 15.834847 3.375000 5.308394 +v 16.118717 3.375000 5.118719 +v 16.308395 3.375000 4.834848 +v 16.375000 3.375000 4.500000 +v 16.308395 3.375000 4.165152 +v 16.118717 3.375000 3.881281 +v 15.834847 3.375000 3.691605 +v 15.500000 3.250000 3.625000 +v 15.165152 3.250000 3.691605 +v 14.881281 3.250000 3.881281 +v 16.118717 3.250000 5.118719 +v 16.308395 3.250000 4.834848 +v 16.375000 3.250000 4.500000 +v 16.308395 3.250000 4.165152 +v 16.118717 3.250000 3.881281 +v 15.834847 3.250000 3.691605 +v 15.500000 4.000000 3.500000 +v 15.117317 4.000000 3.576120 +v 14.792893 4.000000 3.792893 +v 14.576120 4.000000 4.117317 +v 14.500000 4.000000 4.500000 +v 14.576120 4.000000 4.882684 +v 14.792893 4.000000 5.207107 +v 15.117317 4.000000 5.423880 +v 15.500000 4.000000 5.500000 +v 15.882683 4.000000 5.423880 +v 16.207108 4.000000 5.207107 +v 16.423880 4.000000 4.882684 +v 16.500000 4.000000 4.500000 +v 16.423880 4.000000 4.117316 +v 16.207108 4.000000 3.792893 +v 15.882683 4.000000 3.576120 +v 15.117317 5.000000 3.576120 +v 15.500000 5.000000 3.500000 +v 14.792893 5.000000 3.792893 +v 14.576120 5.000000 4.117317 +v 14.500000 5.000000 4.500000 +v 14.576120 5.000000 4.882684 +v 14.792893 5.000000 5.207107 +v 15.117317 5.000000 5.423880 +v 15.500000 5.000000 5.500000 +v 15.882683 5.000000 5.423880 +v 16.207108 5.000000 5.207107 +v 16.423880 5.000000 4.882684 +v 16.500000 5.000000 4.500000 +v 16.423880 5.000000 4.117316 +v 16.207108 5.000000 3.792893 +v 15.882683 5.000000 3.576120 +v 15.882683 4.750000 3.576120 +v 16.207108 4.750000 3.792893 +v 16.423880 4.750000 4.117316 +v 16.500000 4.750000 4.500000 +v 16.423880 4.750000 4.882684 +v 16.207108 4.750000 5.207107 +v 14.792893 4.750000 3.792893 +v 15.500000 4.750000 3.500000 +v 15.117317 4.750000 3.576120 +v 15.882683 4.250000 3.576120 +v 16.207108 4.250000 3.792893 +v 16.423880 4.250000 4.117316 +v 16.500000 4.250000 4.500000 +v 16.423880 4.250000 4.882684 +v 16.207108 4.250000 5.207107 +v 14.792893 4.250000 3.792893 +v 15.117317 4.250000 3.576120 +v 15.500000 4.250000 3.500000 +v 15.500000 4.125000 3.625000 +v 15.165152 4.125000 3.691605 +v 14.881281 4.125000 3.881281 +v 14.691606 4.125000 4.165152 +v 14.625000 4.125000 4.500000 +v 14.691606 4.125000 4.834848 +v 14.881281 4.125000 5.118718 +v 15.165152 4.125000 5.308394 +v 15.500000 4.125000 5.375000 +v 15.834847 4.125000 5.308394 +v 16.118717 4.125000 5.118719 +v 16.308395 4.125000 4.834848 +v 16.375000 4.125000 4.500000 +v 16.308395 4.125000 4.165152 +v 16.118717 4.125000 3.881281 +v 15.834847 4.125000 3.691605 +v 15.500000 4.250000 3.625000 +v 15.165152 4.250000 3.691605 +v 14.881281 4.250000 3.881281 +v 16.118717 4.250000 5.118719 +v 16.308395 4.250000 4.834848 +v 16.375000 4.250000 4.500000 +v 16.308395 4.250000 4.165152 +v 16.118717 4.250000 3.881281 +v 15.834847 4.250000 3.691605 +v 15.500000 4.875000 3.625000 +v 15.165152 4.875000 3.691605 +v 14.881281 4.875000 3.881281 +v 14.691606 4.875000 4.165152 +v 14.625000 4.875000 4.500000 +v 14.691606 4.875000 4.834848 +v 14.881281 4.875000 5.118718 +v 15.165152 4.875000 5.308394 +v 15.500000 4.875000 5.375000 +v 15.834847 4.875000 5.308394 +v 16.118717 4.875000 5.118719 +v 16.308395 4.875000 4.834848 +v 16.375000 4.875000 4.500000 +v 16.308395 4.875000 4.165152 +v 16.118717 4.875000 3.881281 +v 15.834847 4.875000 3.691605 +v 15.500000 4.750000 3.625000 +v 15.165152 4.750000 3.691605 +v 14.881281 4.750000 3.881281 +v 16.118717 4.750000 5.118719 +v 16.308395 4.750000 4.834848 +v 16.375000 4.750000 4.500000 +v 16.308395 4.750000 4.165152 +v 16.118717 4.750000 3.881281 +v 15.834847 4.750000 3.691605 +v 15.500000 5.500000 3.500000 +v 15.117317 5.500000 3.576120 +v 14.792893 5.500000 3.792893 +v 14.576120 5.500000 4.117317 +v 14.500000 5.500000 4.500000 +v 14.576120 5.500000 4.882684 +v 14.792893 5.500000 5.207107 +v 15.117317 5.500000 5.423880 +v 15.500000 5.500000 5.500000 +v 15.882683 5.500000 5.423880 +v 16.207108 5.500000 5.207107 +v 16.423880 5.500000 4.882684 +v 16.500000 5.500000 4.500000 +v 16.423880 5.500000 4.117316 +v 16.207108 5.500000 3.792893 +v 15.882683 5.500000 3.576120 +v 15.117317 6.500000 3.576120 +v 15.500000 6.500000 3.500000 +v 14.792893 6.500000 3.792893 +v 14.576120 6.500000 4.117317 +v 14.500000 6.500000 4.500000 +v 14.576120 6.500000 4.882684 +v 14.792893 6.500000 5.207107 +v 15.117317 6.500000 5.423880 +v 15.500000 6.500000 5.500000 +v 15.882683 6.500000 5.423880 +v 16.207108 6.500000 5.207107 +v 16.423880 6.500000 4.882684 +v 16.500000 6.500000 4.500000 +v 16.423880 6.500000 4.117316 +v 16.207108 6.500000 3.792893 +v 15.882683 6.500000 3.576120 +v 15.882683 6.250000 3.576120 +v 16.207108 6.250000 3.792893 +v 16.423880 6.250000 4.117316 +v 16.500000 6.250000 4.500000 +v 16.423880 6.250000 4.882684 +v 16.207108 6.250000 5.207107 +v 14.792893 6.250000 3.792893 +v 15.500000 6.250000 3.500000 +v 15.117317 6.250000 3.576120 +v 15.882683 5.750000 3.576120 +v 16.207108 5.750000 3.792893 +v 16.423880 5.750000 4.117316 +v 16.500000 5.750000 4.500000 +v 16.423880 5.750000 4.882684 +v 16.207108 5.750000 5.207107 +v 14.792893 5.750000 3.792893 +v 15.117317 5.750000 3.576120 +v 15.500000 5.750000 3.500000 +v 15.500000 5.625000 3.625000 +v 15.165152 5.625000 3.691605 +v 14.881281 5.625000 3.881281 +v 14.691606 5.625000 4.165152 +v 14.625000 5.625000 4.500000 +v 14.691606 5.625000 4.834848 +v 14.881281 5.625000 5.118718 +v 15.165152 5.625000 5.308394 +v 15.500000 5.625000 5.375000 +v 15.834847 5.625000 5.308394 +v 16.118717 5.625000 5.118719 +v 16.308395 5.625000 4.834848 +v 16.375000 5.625000 4.500000 +v 16.308395 5.625000 4.165152 +v 16.118717 5.625000 3.881281 +v 15.834847 5.625000 3.691605 +v 15.500000 5.750000 3.625000 +v 15.165152 5.750000 3.691605 +v 14.881281 5.750000 3.881281 +v 16.118717 5.750000 5.118719 +v 16.308395 5.750000 4.834848 +v 16.375000 5.750000 4.500000 +v 16.308395 5.750000 4.165152 +v 16.118717 5.750000 3.881281 +v 15.834847 5.750000 3.691605 +v 15.500000 6.375000 3.625000 +v 15.165152 6.375000 3.691605 +v 14.881281 6.375000 3.881281 +v 14.691606 6.375000 4.165152 +v 14.625000 6.375000 4.500000 +v 14.691606 6.375000 4.834848 +v 14.881281 6.375000 5.118718 +v 15.165152 6.375000 5.308394 +v 15.500000 6.375000 5.375000 +v 15.834847 6.375000 5.308394 +v 16.118717 6.375000 5.118719 +v 16.308395 6.375000 4.834848 +v 16.375000 6.375000 4.500000 +v 16.308395 6.375000 4.165152 +v 16.118717 6.375000 3.881281 +v 15.834847 6.375000 3.691605 +v 15.500000 6.250000 3.625000 +v 15.165152 6.250000 3.691605 +v 14.881281 6.250000 3.881281 +v 16.118717 6.250000 5.118719 +v 16.308395 6.250000 4.834848 +v 16.375000 6.250000 4.500000 +v 16.308395 6.250000 4.165152 +v 16.118717 6.250000 3.881281 +v 15.834847 6.250000 3.691605 +v 14.250000 1.500000 3.625000 +v 14.161612 1.500000 3.661612 +v 14.125000 1.500000 3.750000 +v 14.161612 1.500000 3.838388 +v 14.250000 1.500000 3.875000 +v 14.338388 1.500000 3.838388 +v 14.375000 1.500000 3.750000 +v 14.338388 1.500000 3.661612 +v 14.250000 2.500000 3.625000 +v 14.161612 2.500000 3.661612 +v 14.125000 2.500000 3.750000 +v 14.161612 2.500000 3.838388 +v 14.250000 2.500000 3.875000 +v 14.338388 2.500000 3.838388 +v 14.375000 2.500000 3.750000 +v 14.338388 2.500000 3.661612 +v 14.250000 4.000000 5.125000 +v 14.161612 4.000000 5.161612 +v 14.125000 4.000000 5.250000 +v 14.161612 4.000000 5.338388 +v 14.250000 4.000000 5.375000 +v 14.338388 4.000000 5.338388 +v 14.375000 4.000000 5.250000 +v 14.338388 4.000000 5.161612 +v 14.250000 5.000000 5.125000 +v 14.161612 5.000000 5.161612 +v 14.125000 5.000000 5.250000 +v 14.161612 5.000000 5.338388 +v 14.250000 5.000000 5.375000 +v 14.338388 5.000000 5.338388 +v 14.375000 5.000000 5.250000 +v 14.338388 5.000000 5.161612 +v 13.750000 1.500000 3.625000 +v 13.661612 1.500000 3.661612 +v 13.625000 1.500000 3.750000 +v 13.661612 1.500000 3.838388 +v 13.750000 1.500000 3.875000 +v 13.838388 1.500000 3.838388 +v 13.875000 1.500000 3.750000 +v 13.838388 1.500000 3.661612 +v 13.750000 2.500000 3.625000 +v 13.661612 2.500000 3.661612 +v 13.625000 2.500000 3.750000 +v 13.661612 2.500000 3.838388 +v 13.750000 2.500000 3.875000 +v 13.838388 2.500000 3.838388 +v 13.875000 2.500000 3.750000 +v 13.838388 2.500000 3.661612 +v 13.750000 4.000000 5.125000 +v 13.661612 4.000000 5.161612 +v 13.625000 4.000000 5.250000 +v 13.661612 4.000000 5.338388 +v 13.750000 4.000000 5.375000 +v 13.838388 4.000000 5.338388 +v 13.875000 4.000000 5.250000 +v 13.838388 4.000000 5.161612 +v 13.750000 5.000000 5.125000 +v 13.661612 5.000000 5.161612 +v 13.625000 5.000000 5.250000 +v 13.661612 5.000000 5.338388 +v 13.750000 5.000000 5.375000 +v 13.838388 5.000000 5.338388 +v 13.875000 5.000000 5.250000 +v 13.838388 5.000000 5.161612 +v 14.750000 0.250000 6.250000 +v 16.250000 0.250000 6.250000 +v 14.750000 1.000000 6.250000 +v 16.250000 1.000000 6.250000 +v 14.750000 0.250000 5.750000 +v 16.250000 0.250000 5.750000 +v 14.750000 1.000000 5.750000 +v 16.250000 1.000000 5.750000 +v 15.125000 1.125000 6.375000 +v 15.125000 1.875000 6.375000 +v 14.625000 1.000000 5.500000 +v 14.625000 2.000000 5.500000 +v 15.875000 1.125000 6.375000 +v 15.875000 1.875000 6.375000 +v 16.375000 1.000000 5.500000 +v 16.375000 2.000000 5.500000 +v 14.625000 1.000000 6.375000 +v 14.625000 2.000000 6.375000 +v 16.375000 2.000000 6.375000 +v 16.375000 1.000000 6.375000 +v 15.187500 1.187500 6.500000 +v 15.187500 1.812500 6.500000 +v 15.812500 1.812500 6.500000 +v 15.812500 1.187500 6.500000 +v 15.125000 1.125000 6.500000 +v 15.125000 1.875000 6.500000 +v 15.875000 1.875000 6.500000 +v 15.875000 1.125000 6.500000 +v 15.187500 1.187500 6.375000 +v 15.187500 1.812500 6.375000 +v 15.812500 1.812500 6.375000 +v 15.812500 1.187500 6.375000 +v 15.500000 1.562500 6.375000 +v 15.445873 1.531250 6.375000 +v 15.445873 1.468750 6.375000 +v 15.500000 1.437500 6.375000 +v 15.554127 1.468750 6.375000 +v 15.554127 1.531250 6.375000 +v 15.445873 1.531250 6.500000 +v 15.500000 1.562500 6.500000 +v 15.445873 1.468750 6.500000 +v 15.500000 1.437500 6.500000 +v 15.554127 1.468750 6.500000 +v 15.554127 1.531250 6.500000 +v 15.310556 1.640625 6.437500 +v 15.472937 1.734375 6.437500 +v 15.310556 1.359375 6.437500 +v 15.472937 1.265625 6.437500 +v 15.716507 1.406250 6.437500 +v 15.716507 1.593750 6.437500 +v 15.445873 1.531250 6.437500 +v 15.500000 1.562500 6.437500 +v 15.445873 1.468750 6.437500 +v 15.500000 1.437500 6.437500 +v 15.554127 1.468750 6.437500 +v 15.554127 1.531250 6.437500 +v 15.437500 1.187500 6.500000 +v 15.437500 1.812500 6.500000 +v 15.375000 1.187500 6.500000 +v 15.375000 1.812500 6.500000 +v 15.312500 1.187500 6.500000 +v 15.312500 1.812500 6.500000 +v 15.250000 1.187500 6.500000 +v 15.250000 1.812500 6.500000 +v 15.750000 1.187500 6.500000 +v 15.750000 1.812500 6.500000 +v 15.687500 1.187500 6.500000 +v 15.687500 1.812500 6.500000 +v 15.625000 1.187500 6.500000 +v 15.625000 1.812500 6.500000 +v 15.562500 1.187500 6.500000 +v 15.562500 1.812500 6.500000 +v 15.125000 2.625000 6.375000 +v 15.125000 3.375000 6.375000 +v 14.625000 2.500000 5.500000 +v 14.625000 3.500000 5.500000 +v 15.875000 2.625000 6.375000 +v 15.875000 3.375000 6.375000 +v 16.375000 2.500000 5.500000 +v 16.375000 3.500000 5.500000 +v 14.625000 2.500000 6.375000 +v 14.625000 3.500000 6.375000 +v 16.375000 3.500000 6.375000 +v 16.375000 2.500000 6.375000 +v 15.187500 2.687500 6.500000 +v 15.187500 3.312500 6.500000 +v 15.812500 3.312500 6.500000 +v 15.812500 2.687500 6.500000 +v 15.125000 2.625000 6.500000 +v 15.125000 3.375000 6.500000 +v 15.875000 3.375000 6.500000 +v 15.875000 2.625000 6.500000 +v 15.187500 2.687500 6.375000 +v 15.187500 3.312500 6.375000 +v 15.812500 3.312500 6.375000 +v 15.812500 2.687500 6.375000 +v 15.500000 3.062500 6.375000 +v 15.445873 3.031250 6.375000 +v 15.445873 2.968750 6.375000 +v 15.500000 2.937500 6.375000 +v 15.554127 2.968750 6.375000 +v 15.554127 3.031250 6.375000 +v 15.445873 3.031250 6.500000 +v 15.500000 3.062500 6.500000 +v 15.445873 2.968750 6.500000 +v 15.500000 2.937500 6.500000 +v 15.554127 2.968750 6.500000 +v 15.554127 3.031250 6.500000 +v 15.310556 3.140625 6.437500 +v 15.472937 3.234375 6.437500 +v 15.310556 2.859375 6.437500 +v 15.472937 2.765625 6.437500 +v 15.716507 2.906250 6.437500 +v 15.716507 3.093750 6.437500 +v 15.445873 3.031250 6.437500 +v 15.500000 3.062500 6.437500 +v 15.445873 2.968750 6.437500 +v 15.500000 2.937500 6.437500 +v 15.554127 2.968750 6.437500 +v 15.554127 3.031250 6.437500 +v 15.437500 2.687500 6.500000 +v 15.437500 3.312500 6.500000 +v 15.375000 2.687500 6.500000 +v 15.375000 3.312500 6.500000 +v 15.312500 2.687500 6.500000 +v 15.312500 3.312500 6.500000 +v 15.250000 2.687500 6.500000 +v 15.250000 3.312500 6.500000 +v 15.750000 2.687500 6.500000 +v 15.750000 3.312500 6.500000 +v 15.687500 2.687500 6.500000 +v 15.687500 3.312500 6.500000 +v 15.625000 2.687500 6.500000 +v 15.625000 3.312500 6.500000 +v 15.562500 2.687500 6.500000 +v 15.562500 3.312500 6.500000 +v 14.750000 2.000000 6.312500 +v 16.250000 2.000000 6.312500 +v 14.750000 2.000000 5.812500 +v 16.250000 2.000000 5.812500 +v 14.750000 2.500000 6.312500 +v 16.250000 2.500000 6.312500 +v 14.750000 2.500000 5.812500 +v 16.250000 2.500000 5.812500 +v 15.875000 2.375000 5.812500 +v 15.786612 2.338388 5.812500 +v 15.750000 2.250000 5.812500 +v 15.786612 2.161612 5.812500 +v 15.875000 2.125000 5.812500 +v 15.963388 2.161612 5.812500 +v 16.000000 2.250000 5.812500 +v 15.963388 2.338388 5.812500 +v 15.875000 2.375000 5.062500 +v 15.786612 2.338388 5.062500 +v 15.750000 2.250000 5.062500 +v 15.786612 2.161612 5.062500 +v 15.875000 2.125000 5.062500 +v 15.963388 2.161612 5.062500 +v 16.000000 2.250000 5.062500 +v 15.963388 2.338388 5.062500 +v 15.125000 2.375000 5.812500 +v 15.036612 2.338388 5.812500 +v 15.000000 2.250000 5.812500 +v 15.036612 2.161612 5.812500 +v 15.125000 2.125000 5.812500 +v 15.213388 2.161612 5.812500 +v 15.250000 2.250000 5.812500 +v 15.213388 2.338388 5.812500 +v 15.125000 2.375000 5.062500 +v 15.036612 2.338388 5.062500 +v 15.000000 2.250000 5.062500 +v 15.036612 2.161612 5.062500 +v 15.125000 2.125000 5.062500 +v 15.213388 2.161612 5.062500 +v 15.250000 2.250000 5.062500 +v 15.213388 2.338388 5.062500 +v 14.750000 3.500000 6.312500 +v 16.250000 3.500000 6.312500 +v 14.750000 3.500000 5.812500 +v 16.250000 3.500000 5.812500 +v 14.500000 5.000000 3.625000 +v 13.500000 5.000000 3.625000 +v 14.750000 4.000000 5.812500 +v 16.250000 4.000000 5.812500 +v 15.875000 3.875000 5.812500 +v 15.786612 3.838388 5.812500 +v 15.750000 3.750000 5.812500 +v 15.786612 3.661612 5.812500 +v 15.875000 3.625000 5.812500 +v 15.963388 3.661612 5.812500 +v 16.000000 3.750000 5.812500 +v 15.963388 3.838388 5.812500 +v 15.875000 3.875000 5.062500 +v 15.786612 3.838388 5.062500 +v 15.750000 3.750000 5.062500 +v 15.786612 3.661612 5.062500 +v 15.875000 3.625000 5.062500 +v 15.963388 3.661612 5.062500 +v 16.000000 3.750000 5.062500 +v 15.963388 3.838388 5.062500 +v 15.125000 3.875000 5.812500 +v 15.036612 3.838388 5.812500 +v 15.000000 3.750000 5.812500 +v 15.036612 3.661612 5.812500 +v 15.125000 3.625000 5.812500 +v 15.213388 3.661612 5.812500 +v 15.250000 3.750000 5.812500 +v 15.213388 3.838388 5.812500 +v 15.125000 3.875000 5.062500 +v 15.036612 3.838388 5.062500 +v 15.000000 3.750000 5.062500 +v 15.036612 3.661612 5.062500 +v 15.125000 3.625000 5.062500 +v 15.213388 3.661612 5.062500 +v 15.250000 3.750000 5.062500 +v 15.213388 3.838388 5.062500 +v 14.750000 3.750000 6.312500 +v 14.750000 4.000000 6.062500 +v 16.250000 4.000000 6.062500 +v 16.250000 3.750000 6.312500 +v 13.625000 6.000000 6.250000 +v 14.375000 6.000000 6.250000 +v 14.375000 6.000000 3.750000 +v 13.625000 6.000000 3.750000 +v 14.250000 4.000000 4.625000 +v 14.161612 4.000000 4.661612 +v 14.125000 4.000000 4.750000 +v 14.161612 4.000000 4.838388 +v 14.250000 4.000000 4.875000 +v 14.338388 4.000000 4.838388 +v 14.375000 4.000000 4.750000 +v 14.338388 4.000000 4.661612 +v 14.250000 5.000000 4.625000 +v 14.161612 5.000000 4.661612 +v 14.125000 5.000000 4.750000 +v 14.161612 5.000000 4.838388 +v 14.250000 5.000000 4.875000 +v 14.338388 5.000000 4.838388 +v 14.375000 5.000000 4.750000 +v 14.338388 5.000000 4.661612 +v 14.250000 4.000000 3.625000 +v 14.161612 4.000000 3.661612 +v 14.125000 4.000000 3.750000 +v 14.161612 4.000000 3.838388 +v 14.250000 4.000000 3.875000 +v 14.338388 4.000000 3.838388 +v 14.375000 4.000000 3.750000 +v 14.338388 4.000000 3.661612 +v 14.250000 5.000000 3.625000 +v 14.161612 5.000000 3.661612 +v 14.125000 5.000000 3.750000 +v 14.161612 5.000000 3.838388 +v 14.250000 5.000000 3.875000 +v 14.338388 5.000000 3.838388 +v 14.375000 5.000000 3.750000 +v 14.338388 5.000000 3.661612 +v 14.161612 3.849112 3.724112 +v 14.250000 3.823223 3.698223 +v 14.161612 3.963388 4.625000 +v 14.125000 3.875000 4.625000 +v 14.161612 3.786612 4.625000 +v 14.250000 3.750000 4.625000 +v 14.338388 3.786612 4.625000 +v 14.375000 3.875000 4.625000 +v 14.338388 3.963388 4.625000 +v 14.338388 3.974112 4.650888 +v 14.375000 3.911612 4.713388 +v 14.338388 3.849112 4.775888 +v 14.250000 3.823223 4.801777 +v 14.161612 3.849112 4.775888 +v 14.125000 3.911612 4.713388 +v 14.161612 3.974112 4.650888 +v 14.125000 3.911612 3.786612 +v 14.161612 3.974112 3.849112 +v 14.338388 3.974112 3.849112 +v 14.375000 3.911612 3.786612 +v 14.338388 3.849112 3.724112 +v 14.161612 3.786612 3.875000 +v 14.250000 3.750000 3.875000 +v 14.125000 3.875000 3.875000 +v 14.161612 3.963388 3.875000 +v 14.338388 3.963388 3.875000 +v 14.375000 3.875000 3.875000 +v 14.338388 3.786612 3.875000 +v 14.000000 4.000000 4.625000 +v 13.911612 4.000000 4.661612 +v 13.875000 4.000000 4.750000 +v 13.911612 4.000000 4.838388 +v 14.000000 4.000000 4.875000 +v 14.088388 4.000000 4.838388 +v 14.125000 4.000000 4.750000 +v 14.088388 4.000000 4.661612 +v 14.000000 5.000000 4.625000 +v 13.911612 5.000000 4.661612 +v 13.875000 5.000000 4.750000 +v 13.911612 5.000000 4.838388 +v 14.000000 5.000000 4.875000 +v 14.088388 5.000000 4.838388 +v 14.125000 5.000000 4.750000 +v 14.088388 5.000000 4.661612 +v 14.000000 4.000000 3.625000 +v 13.911612 4.000000 3.661612 +v 13.875000 4.000000 3.750000 +v 13.911612 4.000000 3.838388 +v 14.000000 4.000000 3.875000 +v 14.088388 4.000000 3.838388 +v 14.125000 4.000000 3.750000 +v 14.088388 4.000000 3.661612 +v 14.000000 5.000000 3.625000 +v 13.911612 5.000000 3.661612 +v 13.875000 5.000000 3.750000 +v 13.911612 5.000000 3.838388 +v 14.000000 5.000000 3.875000 +v 14.088388 5.000000 3.838388 +v 14.125000 5.000000 3.750000 +v 14.088388 5.000000 3.661612 +v 13.911612 3.849112 3.724112 +v 14.000000 3.823223 3.698223 +v 13.911612 3.963388 4.625000 +v 13.875000 3.875000 4.625000 +v 13.911612 3.786612 4.625000 +v 14.000000 3.750000 4.625000 +v 14.088388 3.786612 4.625000 +v 14.125000 3.875000 4.625000 +v 14.088388 3.963388 4.625000 +v 14.088388 3.974112 4.650888 +v 14.125000 3.911612 4.713388 +v 14.088388 3.849112 4.775888 +v 14.000000 3.823223 4.801777 +v 13.911612 3.849112 4.775888 +v 13.875000 3.911612 4.713388 +v 13.911612 3.974112 4.650888 +v 13.875000 3.911612 3.786612 +v 13.911612 3.974112 3.849112 +v 14.088388 3.974112 3.849112 +v 14.125000 3.911612 3.786612 +v 14.088388 3.849112 3.724112 +v 13.911612 3.786612 3.875000 +v 14.000000 3.750000 3.875000 +v 13.875000 3.875000 3.875000 +v 13.911612 3.963388 3.875000 +v 14.088388 3.963388 3.875000 +v 14.125000 3.875000 3.875000 +v 14.088388 3.786612 3.875000 +v 13.750000 4.000000 4.625000 +v 13.661612 4.000000 4.661612 +v 13.625000 4.000000 4.750000 +v 13.661612 4.000000 4.838388 +v 13.750000 4.000000 4.875000 +v 13.838388 4.000000 4.838388 +v 13.875000 4.000000 4.750000 +v 13.838388 4.000000 4.661612 +v 13.750000 5.000000 4.625000 +v 13.661612 5.000000 4.661612 +v 13.625000 5.000000 4.750000 +v 13.661612 5.000000 4.838388 +v 13.750000 5.000000 4.875000 +v 13.838388 5.000000 4.838388 +v 13.875000 5.000000 4.750000 +v 13.838388 5.000000 4.661612 +v 13.750000 4.000000 3.625000 +v 13.661612 4.000000 3.661612 +v 13.625000 4.000000 3.750000 +v 13.661612 4.000000 3.838388 +v 13.750000 4.000000 3.875000 +v 13.838388 4.000000 3.838388 +v 13.875000 4.000000 3.750000 +v 13.838388 4.000000 3.661612 +v 13.750000 5.000000 3.625000 +v 13.661612 5.000000 3.661612 +v 13.625000 5.000000 3.750000 +v 13.661612 5.000000 3.838388 +v 13.750000 5.000000 3.875000 +v 13.838388 5.000000 3.838388 +v 13.875000 5.000000 3.750000 +v 13.838388 5.000000 3.661612 +v 13.661612 3.849112 3.724112 +v 13.750000 3.823223 3.698223 +v 13.661612 3.963388 4.625000 +v 13.625000 3.875000 4.625000 +v 13.661612 3.786612 4.625000 +v 13.750000 3.750000 4.625000 +v 13.838388 3.786612 4.625000 +v 13.875000 3.875000 4.625000 +v 13.838388 3.963388 4.625000 +v 13.838388 3.974112 4.650888 +v 13.875000 3.911612 4.713388 +v 13.838388 3.849112 4.775888 +v 13.750000 3.823223 4.801777 +v 13.661612 3.849112 4.775888 +v 13.625000 3.911612 4.713388 +v 13.661612 3.974112 4.650888 +v 13.625000 3.911612 3.786612 +v 13.661612 3.974112 3.849112 +v 13.838388 3.974112 3.849112 +v 13.875000 3.911612 3.786612 +v 13.838388 3.849112 3.724112 +v 13.661612 3.786612 3.875000 +v 13.750000 3.750000 3.875000 +v 13.625000 3.875000 3.875000 +v 13.661612 3.963388 3.875000 +v 13.838388 3.963388 3.875000 +v 13.875000 3.875000 3.875000 +v 13.838388 3.786612 3.875000 +v 14.000000 5.000000 3.875000 +v 13.734835 5.000000 3.984835 +v 13.625000 5.000000 4.250000 +v 13.734835 5.000000 4.515165 +v 14.000000 5.000000 4.625000 +v 14.265165 5.000000 4.515165 +v 14.375000 5.000000 4.250000 +v 14.265165 5.000000 3.984835 +v 14.000000 4.000000 3.875000 +v 13.734835 4.000000 3.984835 +v 13.625000 4.000000 4.250000 +v 13.734835 4.000000 4.515165 +v 14.000000 4.000000 4.625000 +v 14.265165 4.000000 4.515165 +v 14.375000 4.000000 4.250000 +v 14.265165 4.000000 3.984835 +v 13.500000 6.000000 6.375000 +v 14.500000 6.000000 6.375000 +v 14.500000 6.000000 3.625000 +v 13.500000 6.000000 3.625000 +v 13.625000 6.250000 6.250000 +v 14.375000 6.250000 6.250000 +v 14.375000 6.250000 3.750000 +v 13.625000 6.250000 3.750000 +v 13.968750 6.250000 6.125000 +v 14.031250 6.250000 6.125000 +v 13.968750 6.250000 3.875000 +v 14.031250 6.250000 3.875000 +v 13.968750 6.500000 3.875000 +v 13.968750 6.500000 6.125000 +v 14.031250 6.500000 6.125000 +v 14.031250 6.500000 3.875000 +v 14.093750 6.250000 6.125000 +v 14.156250 6.250000 6.125000 +v 14.093750 6.250000 3.875000 +v 14.156250 6.250000 3.875000 +v 14.093750 6.500000 3.875000 +v 14.093750 6.500000 6.125000 +v 14.156250 6.500000 6.125000 +v 14.156250 6.500000 3.875000 +v 14.218750 6.250000 6.125000 +v 14.281250 6.250000 6.125000 +v 14.218750 6.250000 3.875000 +v 14.281250 6.250000 3.875000 +v 14.218750 6.500000 3.875000 +v 14.218750 6.500000 6.125000 +v 14.281250 6.500000 6.125000 +v 14.281250 6.500000 3.875000 +v 13.718750 6.250000 6.125000 +v 13.781250 6.250000 6.125000 +v 13.718750 6.250000 3.875000 +v 13.781250 6.250000 3.875000 +v 13.718750 6.500000 3.875000 +v 13.718750 6.500000 6.125000 +v 13.781250 6.500000 6.125000 +v 13.781250 6.500000 3.875000 +v 13.843750 6.250000 6.125000 +v 13.906250 6.250000 6.125000 +v 13.843750 6.250000 3.875000 +v 13.906250 6.250000 3.875000 +v 13.843750 6.500000 3.875000 +v 13.843750 6.500000 6.125000 +v 13.906250 6.500000 6.125000 +v 13.906250 6.500000 3.875000 +v 13.750000 7.375000 6.062500 +v 13.750000 7.375000 3.937500 +v 14.250000 7.375000 3.937500 +v 14.250000 7.375000 6.062500 +v 13.625000 7.375000 6.250000 +v 13.625000 7.375000 3.750000 +v 14.375000 7.375000 3.750000 +v 14.375000 7.375000 6.250000 +v 13.625000 7.250000 6.250000 +v 13.625000 7.250000 3.750000 +v 14.375000 7.250000 3.750000 +v 14.375000 7.250000 6.250000 +v 13.625000 6.250000 3.750000 +v 13.625000 6.250000 3.875000 +v 13.750000 6.250000 3.750000 +v 13.750000 6.250000 3.875000 +v 13.625000 7.250000 3.750000 +v 13.625000 7.250000 3.875000 +v 13.750000 7.250000 3.750000 +v 13.750000 7.250000 3.875000 +v 14.250000 6.250000 3.750000 +v 14.250000 6.250000 3.875000 +v 14.375000 6.250000 3.750000 +v 14.375000 6.250000 3.875000 +v 14.250000 7.250000 3.750000 +v 14.250000 7.250000 3.875000 +v 14.375000 7.250000 3.750000 +v 14.375000 7.250000 3.875000 +v 13.625000 6.250000 6.125000 +v 13.625000 6.250000 6.250000 +v 13.750000 6.250000 6.125000 +v 13.750000 6.250000 6.250000 +v 13.625000 7.250000 6.125000 +v 13.625000 7.250000 6.250000 +v 13.750000 7.250000 6.125000 +v 13.750000 7.250000 6.250000 +v 14.250000 6.250000 6.125000 +v 14.250000 6.250000 6.250000 +v 14.375000 6.250000 6.125000 +v 14.375000 6.250000 6.250000 +v 14.250000 7.250000 6.125000 +v 14.250000 7.250000 6.250000 +v 14.375000 7.250000 6.125000 +v 14.375000 7.250000 6.250000 +v 13.625000 6.250000 4.812500 +v 14.375000 6.250000 4.812500 +v 13.750000 6.750000 4.875000 +v 14.250000 6.750000 4.875000 +v 13.625000 6.250000 5.187500 +v 14.375000 6.250000 5.187500 +v 13.750000 6.750000 5.125000 +v 14.250000 6.750000 5.125000 +v 13.625000 6.750000 4.812500 +v 14.375000 6.750000 4.812500 +v 13.625000 6.750000 5.187500 +v 14.375000 6.750000 5.187500 +v 13.750000 7.375000 4.875000 +v 14.250000 7.375000 4.875000 +v 13.750000 7.375000 5.125000 +v 14.250000 7.375000 5.125000 +v 15.875000 5.375000 5.562500 +v 15.786612 5.338388 5.562500 +v 15.750000 5.250000 5.562500 +v 15.786612 5.161612 5.562500 +v 15.875000 5.125000 5.562500 +v 15.963388 5.161612 5.562500 +v 16.000000 5.250000 5.562500 +v 15.963388 5.338388 5.562500 +v 15.875000 5.375000 5.062500 +v 15.786612 5.338388 5.062500 +v 15.750000 5.250000 5.062500 +v 15.786612 5.161612 5.062500 +v 15.875000 5.125000 5.062500 +v 15.963388 5.161612 5.062500 +v 16.000000 5.250000 5.062500 +v 15.963388 5.338388 5.062500 +v 15.125000 5.375000 5.562500 +v 15.036612 5.338388 5.562500 +v 15.000000 5.250000 5.562500 +v 15.036612 5.161612 5.562500 +v 15.125000 5.125000 5.562500 +v 15.213388 5.161612 5.562500 +v 15.250000 5.250000 5.562500 +v 15.213388 5.338388 5.562500 +v 15.125000 5.375000 5.062500 +v 15.036612 5.338388 5.062500 +v 15.000000 5.250000 5.062500 +v 15.036612 5.161612 5.062500 +v 15.125000 5.125000 5.062500 +v 15.213388 5.161612 5.062500 +v 15.250000 5.250000 5.062500 +v 15.213388 5.338388 5.062500 +v 14.750000 4.875000 5.562500 +v 16.250000 4.875000 5.562500 +v 14.750000 5.625000 5.562500 +v 16.250000 5.625000 5.562500 +v 14.750000 5.625000 6.312500 +v 14.750000 4.875000 6.312500 +v 16.250000 4.875000 6.312500 +v 16.250000 5.625000 6.312500 +v 15.687500 3.875000 5.937500 +v 15.599112 3.875000 5.974112 +v 15.562500 3.875000 6.062500 +v 15.599112 3.875000 6.150888 +v 15.687500 3.875000 6.187500 +v 15.775888 3.875000 6.150888 +v 15.812500 3.875000 6.062500 +v 15.775888 3.875000 5.974112 +v 15.687500 4.875000 5.937500 +v 15.599112 4.875000 5.974112 +v 15.562500 4.875000 6.062500 +v 15.599112 4.875000 6.150888 +v 15.687500 4.875000 6.187500 +v 15.775888 4.875000 6.150888 +v 15.812500 4.875000 6.062500 +v 15.775888 4.875000 5.974112 +v 16.062500 3.875000 5.937500 +v 15.974112 3.875000 5.974112 +v 15.937500 3.875000 6.062500 +v 15.974112 3.875000 6.150888 +v 16.062500 3.875000 6.187500 +v 16.150888 3.875000 6.150888 +v 16.187500 3.875000 6.062500 +v 16.150888 3.875000 5.974112 +v 16.062500 4.875000 5.937500 +v 15.974112 4.875000 5.974112 +v 15.937500 4.875000 6.062500 +v 15.974112 4.875000 6.150888 +v 16.062500 4.875000 6.187500 +v 16.150888 4.875000 6.150888 +v 16.187500 4.875000 6.062500 +v 16.150888 4.875000 5.974112 +v 14.937500 3.875000 5.937500 +v 14.849112 3.875000 5.974112 +v 14.812500 3.875000 6.062500 +v 14.849112 3.875000 6.150888 +v 14.937500 3.875000 6.187500 +v 15.025888 3.875000 6.150888 +v 15.062500 3.875000 6.062500 +v 15.025888 3.875000 5.974112 +v 14.937500 4.875000 5.937500 +v 14.849112 4.875000 5.974112 +v 14.812500 4.875000 6.062500 +v 14.849112 4.875000 6.150888 +v 14.937500 4.875000 6.187500 +v 15.025888 4.875000 6.150888 +v 15.062500 4.875000 6.062500 +v 15.025888 4.875000 5.974112 +v 15.312500 3.875000 5.937500 +v 15.224112 3.875000 5.974112 +v 15.187500 3.875000 6.062500 +v 15.224112 3.875000 6.150888 +v 15.312500 3.875000 6.187500 +v 15.400888 3.875000 6.150888 +v 15.437500 3.875000 6.062500 +v 15.400888 3.875000 5.974112 +v 15.312500 4.875000 5.937500 +v 15.224112 4.875000 5.974112 +v 15.187500 4.875000 6.062500 +v 15.224112 4.875000 6.150888 +v 15.312500 4.875000 6.187500 +v 15.400888 4.875000 6.150888 +v 15.437500 4.875000 6.062500 +v 15.400888 4.875000 5.974112 +v 16.000000 5.625000 5.500000 +v 15.750000 5.625000 5.566987 +v 15.566987 5.625000 5.750000 +v 15.500000 5.625000 6.000000 +v 15.566987 5.625000 6.250000 +v 15.750000 5.625000 6.433013 +v 16.000000 5.625000 6.500000 +v 16.250000 5.625000 6.433013 +v 16.433012 5.625000 6.250000 +v 16.500000 5.625000 6.000000 +v 16.433014 5.625000 5.750000 +v 16.250000 5.625000 5.566988 +v 15.750001 8.125000 5.566987 +v 16.000000 8.125000 5.500000 +v 15.566988 8.125000 5.750000 +v 15.500001 8.125000 6.000000 +v 15.566988 8.125000 6.250000 +v 15.750001 8.125000 6.433013 +v 16.000000 8.125000 6.500000 +v 16.250000 8.125000 6.433013 +v 16.433014 8.125000 6.250000 +v 16.500000 8.125000 6.000000 +v 16.433014 8.125000 5.750000 +v 16.250000 8.125000 5.566988 +v 15.000000 5.625000 5.500000 +v 14.750000 5.625000 5.566987 +v 14.566987 5.625000 5.750000 +v 14.500000 5.625000 6.000000 +v 14.566987 5.625000 6.250000 +v 14.750000 5.625000 6.433013 +v 15.000000 5.625000 6.500000 +v 15.250000 5.625000 6.433013 +v 15.433012 5.625000 6.250000 +v 15.500000 5.625000 6.000000 +v 15.433013 5.625000 5.750000 +v 15.250000 5.625000 5.566988 +v 14.750001 8.125000 5.566987 +v 15.000001 8.125000 5.500000 +v 14.566988 8.125000 5.750000 +v 14.500001 8.125000 6.000000 +v 14.566988 8.125000 6.250000 +v 14.750001 8.125000 6.433013 +v 15.000001 8.125000 6.500000 +v 15.250001 8.125000 6.433013 +v 15.433014 8.125000 6.250000 +v 15.500001 8.125000 6.000000 +v 15.433014 8.125000 5.750000 +v 15.250001 8.125000 5.566988 +v 13.625000 7.375000 3.750000 +v 13.625000 7.375000 3.875000 +v 13.750000 7.375000 3.750000 +v 13.750000 7.375000 3.875000 +v 13.625000 7.625000 3.750000 +v 13.625000 7.625000 3.875000 +v 13.750000 7.625000 3.750000 +v 13.750000 7.625000 3.875000 +v 14.250000 7.375000 3.750000 +v 14.250000 7.375000 3.875000 +v 14.375000 7.375000 3.750000 +v 14.375000 7.375000 3.875000 +v 14.250000 7.625000 3.750000 +v 14.250000 7.625000 3.875000 +v 14.375000 7.625000 3.750000 +v 14.375000 7.625000 3.875000 +v 13.625000 7.375000 6.125000 +v 13.625000 7.375000 6.250000 +v 13.750000 7.375000 6.125000 +v 13.750000 7.375000 6.250000 +v 13.625000 7.625000 6.125000 +v 13.625000 7.625000 6.250000 +v 13.750000 7.625000 6.125000 +v 13.750000 7.625000 6.250000 +v 14.250000 7.375000 6.125000 +v 14.250000 7.375000 6.250000 +v 14.375000 7.375000 6.125000 +v 14.375000 7.375000 6.250000 +v 14.250000 7.625000 6.125000 +v 14.250000 7.625000 6.250000 +v 14.375000 7.625000 6.125000 +v 14.375000 7.625000 6.250000 +v 13.500000 7.625000 6.375000 +v 14.500000 7.625000 6.375000 +v 13.500000 7.625000 3.625000 +v 14.500000 7.625000 3.625000 +v 13.625000 8.625000 3.750000 +v 13.625000 8.625000 6.250000 +v 14.375000 8.625000 6.250000 +v 14.375000 8.625000 3.750000 +v 14.000000 8.500000 3.625000 +v 13.812500 8.449759 3.625000 +v 13.675241 8.312500 3.625000 +v 13.625000 8.125000 3.625000 +v 13.675241 7.937500 3.625000 +v 13.812500 7.800241 3.625000 +v 14.000000 7.750000 3.625000 +v 14.187500 7.800241 3.625000 +v 14.324759 7.937500 3.625000 +v 14.375000 8.125000 3.625000 +v 14.324759 8.312500 3.625000 +v 14.187500 8.449759 3.625000 +v 13.844852 8.393723 3.500000 +v 14.000000 8.435295 3.500000 +v 13.731277 8.280148 3.500000 +v 13.689705 8.125000 3.500000 +v 13.731277 7.969852 3.500000 +v 13.844852 7.856277 3.500000 +v 14.000000 7.814705 3.500000 +v 14.155148 7.856277 3.500000 +v 14.268723 7.969852 3.500000 +v 14.310295 8.125000 3.500000 +v 14.268723 8.280148 3.500000 +v 14.155148 8.393723 3.500000 +v 13.812500 8.449759 3.500000 +v 14.000000 8.500000 3.500000 +v 13.675241 8.312500 3.500000 +v 13.625000 8.125000 3.500000 +v 13.675241 7.937500 3.500000 +v 13.812500 7.800241 3.500000 +v 14.000000 7.750000 3.500000 +v 14.187500 7.800241 3.500000 +v 14.324759 7.937500 3.500000 +v 14.375000 8.125000 3.500000 +v 14.324759 8.312500 3.500000 +v 14.187500 8.449759 3.500000 +v 13.844852 8.393723 3.625000 +v 14.000000 8.435295 3.625000 +v 13.731277 8.280148 3.625000 +v 13.689705 8.125000 3.625000 +v 13.731277 7.969852 3.625000 +v 13.844852 7.856277 3.625000 +v 14.000000 7.814705 3.625000 +v 14.155148 7.856277 3.625000 +v 14.268723 7.969852 3.625000 +v 14.310295 8.125000 3.625000 +v 14.268723 8.280148 3.625000 +v 14.155148 8.393723 3.625000 +v 14.000000 8.500000 6.500000 +v 13.812500 8.449759 6.500000 +v 13.675241 8.312500 6.500000 +v 13.625000 8.125000 6.500000 +v 13.675241 7.937500 6.500000 +v 13.812500 7.800241 6.500000 +v 14.000000 7.750000 6.500000 +v 14.187500 7.800241 6.500000 +v 14.324759 7.937500 6.500000 +v 14.375000 8.125000 6.500000 +v 14.324759 8.312500 6.500000 +v 14.187500 8.449759 6.500000 +v 13.844852 8.393723 6.375000 +v 14.000000 8.435295 6.375000 +v 13.731277 8.280148 6.375000 +v 13.689705 8.125000 6.375000 +v 13.731277 7.969852 6.375000 +v 13.844852 7.856277 6.375000 +v 14.000000 7.814705 6.375000 +v 14.155148 7.856277 6.375000 +v 14.268723 7.969852 6.375000 +v 14.310295 8.125000 6.375000 +v 14.268723 8.280148 6.375000 +v 14.155148 8.393723 6.375000 +v 13.812500 8.449759 6.375000 +v 14.000000 8.500000 6.375000 +v 13.675241 8.312500 6.375000 +v 13.625000 8.125000 6.375000 +v 13.675241 7.937500 6.375000 +v 13.812500 7.800241 6.375000 +v 14.000000 7.750000 6.375000 +v 14.187500 7.800241 6.375000 +v 14.324759 7.937500 6.375000 +v 14.375000 8.125000 6.375000 +v 14.324759 8.312500 6.375000 +v 14.187500 8.449759 6.375000 +v 13.844852 8.393723 6.500000 +v 14.000000 8.435295 6.500000 +v 13.731277 8.280148 6.500000 +v 13.689705 8.125000 6.500000 +v 13.731277 7.969852 6.500000 +v 13.844852 7.856277 6.500000 +v 14.000000 7.814705 6.500000 +v 14.155148 7.856277 6.500000 +v 14.268723 7.969852 6.500000 +v 14.310295 8.125000 6.500000 +v 14.268723 8.280148 6.500000 +v 14.155148 8.393723 6.500000 +v 14.000000 8.375000 3.625000 +v 13.875000 8.341507 3.625000 +v 13.783493 8.250000 3.625000 +v 13.750000 8.125000 3.625000 +v 13.783493 8.000000 3.625000 +v 13.875000 7.908494 3.625000 +v 14.000000 7.875000 3.625000 +v 14.125000 7.908494 3.625000 +v 14.216507 8.000000 3.625000 +v 14.250000 8.125000 3.625000 +v 14.216507 8.250000 3.625000 +v 14.125000 8.341506 3.625000 +v 13.906250 8.287380 3.500000 +v 14.000000 8.312500 3.500000 +v 13.837620 8.218750 3.500000 +v 13.812500 8.125000 3.500000 +v 13.837620 8.031250 3.500000 +v 13.906250 7.962620 3.500000 +v 14.000000 7.937500 3.500000 +v 14.093750 7.962620 3.500000 +v 14.162380 8.031250 3.500000 +v 14.187500 8.125000 3.500000 +v 14.162380 8.218750 3.500000 +v 14.093750 8.287379 3.500000 +v 14.000000 8.375000 6.375000 +v 14.125000 8.341507 6.375000 +v 14.216507 8.250000 6.375000 +v 14.250000 8.125000 6.375000 +v 14.216507 8.000000 6.375000 +v 14.125000 7.908494 6.375000 +v 14.000000 7.875000 6.375000 +v 13.875000 7.908494 6.375000 +v 13.783494 8.000000 6.375000 +v 13.750000 8.125000 6.375000 +v 13.783494 8.250000 6.375000 +v 13.875000 8.341506 6.375000 +v 14.093750 8.287380 6.500000 +v 14.000000 8.312500 6.500000 +v 14.162380 8.218750 6.500000 +v 14.187500 8.125000 6.500000 +v 14.162380 8.031250 6.500000 +v 14.093750 7.962620 6.500000 +v 14.000000 7.937500 6.500000 +v 13.906250 7.962620 6.500000 +v 13.837621 8.031250 6.500000 +v 13.812500 8.125000 6.500000 +v 13.837620 8.218750 6.500000 +v 13.906250 8.287379 6.500000 +v 14.875001 8.125000 6.250000 +v 15.125001 8.125000 6.250000 +v 14.875001 8.125000 5.750000 +v 15.125001 8.125000 5.750000 +v 14.875001 8.625000 6.250000 +v 15.125001 8.625000 6.250000 +v 14.875001 8.625000 5.750000 +v 15.125001 8.625000 5.750000 +v 15.875001 8.125000 6.250000 +v 16.125000 8.125000 6.250000 +v 15.875001 8.125000 5.750000 +v 16.125000 8.125000 5.750000 +v 15.875001 8.625000 6.250000 +v 16.125000 8.625000 6.250000 +v 15.875001 8.625000 5.750000 +v 16.125000 8.625000 5.750000 +v 14.875001 8.375000 6.000000 +v 14.875001 8.463388 6.036612 +v 14.875001 8.500000 6.125000 +v 14.875001 8.463388 6.213388 +v 14.875001 8.375000 6.250000 +v 14.875001 8.286612 6.213388 +v 14.875001 8.250000 6.125000 +v 14.875001 8.286612 6.036612 +v 14.500001 8.375000 6.000000 +v 14.500001 8.463388 6.036612 +v 14.500001 8.500000 6.125000 +v 14.500001 8.463388 6.213388 +v 14.500001 8.375000 6.250000 +v 14.500001 8.286612 6.213388 +v 14.500001 8.250000 6.125000 +v 14.500001 8.286612 6.036612 +v 15.875001 8.375000 6.000000 +v 15.875001 8.463388 6.036612 +v 15.875001 8.500000 6.125000 +v 15.875001 8.463388 6.213388 +v 15.875001 8.375000 6.250000 +v 15.875001 8.286612 6.213388 +v 15.875001 8.250000 6.125000 +v 15.875001 8.286612 6.036612 +v 15.125001 8.375000 6.000000 +v 15.125001 8.463388 6.036612 +v 15.125001 8.500000 6.125000 +v 15.125001 8.463388 6.213388 +v 15.125001 8.375000 6.250000 +v 15.125001 8.286612 6.213388 +v 15.125001 8.250000 6.125000 +v 15.125001 8.286612 6.036612 +v 15.875001 8.375000 5.750000 +v 15.875001 8.463388 5.786612 +v 15.875001 8.500000 5.875000 +v 15.875001 8.463388 5.963388 +v 15.875001 8.375000 6.000000 +v 15.875001 8.286612 5.963388 +v 15.875001 8.250000 5.875000 +v 15.875001 8.286612 5.786612 +v 15.625001 8.375000 5.750000 +v 15.625001 8.463388 5.786612 +v 15.625001 8.500000 5.875000 +v 15.625001 8.463388 5.963388 +v 15.625001 8.375000 6.000000 +v 15.625001 8.286612 5.963388 +v 15.625001 8.250000 5.875000 +v 15.625001 8.286612 5.786612 +v 15.599113 8.463388 5.775888 +v 15.536613 8.500000 5.838388 +v 15.474113 8.463388 5.900888 +v 15.448224 8.375000 5.926777 +v 15.474113 8.286612 5.900888 +v 15.536613 8.250000 5.838388 +v 15.599113 8.286612 5.775888 +v 15.588389 8.463388 5.750000 +v 15.500001 8.500000 5.750000 +v 15.411613 8.463388 5.750000 +v 15.375001 8.375000 5.750000 +v 15.411613 8.286612 5.750000 +v 15.500001 8.250000 5.750000 +v 15.588389 8.286612 5.750000 +v 15.625001 8.375000 4.750000 +v 15.588389 8.463388 4.750000 +v 15.500001 8.500000 4.750000 +v 15.411613 8.463388 4.750000 +v 15.375001 8.375000 4.750000 +v 15.411613 8.286612 4.750000 +v 15.500001 8.250000 4.750000 +v 15.588389 8.286612 4.750000 +v 15.250000 8.000000 4.750000 +v 15.750000 8.000000 4.750000 +v 15.250000 8.000000 4.250000 +v 15.750000 8.000000 4.250000 +v 15.250000 8.750000 4.250000 +v 15.250000 8.750000 4.750000 +v 15.750000 8.750000 4.750000 +v 15.750000 8.750000 4.250000 +v 14.875001 8.375000 5.750000 +v 14.875001 8.463388 5.786612 +v 14.875001 8.500000 5.875000 +v 14.875001 8.463388 5.963388 +v 14.875001 8.375000 6.000000 +v 14.875001 8.286612 5.963388 +v 14.875001 8.250000 5.875000 +v 14.875001 8.286612 5.786612 +v 14.849113 8.463388 5.775888 +v 14.786613 8.500000 5.838388 +v 14.724113 8.463388 5.900888 +v 14.698224 8.375000 5.926777 +v 14.724113 8.286612 5.900888 +v 14.786613 8.250000 5.838388 +v 14.849113 8.286612 5.775888 +v 14.838389 8.463388 5.750000 +v 14.750001 8.500000 5.750000 +v 14.661613 8.463388 5.750000 +v 14.625001 8.375000 5.750000 +v 14.661613 8.286612 5.750000 +v 14.750001 8.250000 5.750000 +v 14.838389 8.286612 5.750000 +v 14.875001 8.375000 5.000000 +v 14.838389 8.463388 5.000000 +v 14.750001 8.500000 5.000000 +v 14.661613 8.463388 5.000000 +v 14.625001 8.375000 5.000000 +v 14.661613 8.286612 5.000000 +v 14.750001 8.250000 5.000000 +v 14.838389 8.286612 5.000000 +v 15.250000 8.375000 4.375000 +v 15.250000 8.463388 4.411612 +v 15.250000 8.500000 4.500000 +v 15.250000 8.463388 4.588388 +v 15.250000 8.375000 4.625000 +v 15.250000 8.286612 4.588388 +v 15.250000 8.250000 4.500000 +v 15.250000 8.286612 4.411612 +v 14.500000 8.375000 4.375000 +v 14.500000 8.463388 4.411612 +v 14.500000 8.500000 4.500000 +v 14.500000 8.463388 4.588388 +v 14.500000 8.375000 4.625000 +v 14.500000 8.286612 4.588388 +v 14.500000 8.250000 4.500000 +v 14.500000 8.286612 4.411612 +v 14.801777 8.375000 4.823223 +v 14.775889 8.463388 4.849112 +v 14.713389 8.500000 4.911612 +v 14.650889 8.463388 4.974112 +v 14.650889 8.286612 4.974112 +v 14.713389 8.250000 4.911612 +v 14.775889 8.286612 4.849112 +v 14.625001 8.375000 4.750000 +v 14.625001 8.463388 4.786612 +v 14.625001 8.500000 4.875000 +v 14.625001 8.463388 4.963388 +v 14.625001 8.286612 4.963388 +v 14.625001 8.250000 4.875000 +v 14.625001 8.286612 4.786612 +v 14.500001 8.375000 5.000000 +v 14.500001 8.375000 4.750000 +v 14.500001 8.463388 4.786612 +v 14.500001 8.500000 4.875000 +v 14.500001 8.463388 4.963388 +v 14.500001 8.286612 4.963388 +v 14.500001 8.250000 4.875000 +v 14.500001 8.286612 4.786612 +v 15.625001 8.375000 4.250000 +v 15.588389 8.463388 4.250000 +v 15.500001 8.500000 4.250000 +v 15.411613 8.463388 4.250000 +v 15.375001 8.375000 4.250000 +v 15.411613 8.286612 4.250000 +v 15.500001 8.250000 4.250000 +v 15.588389 8.286612 4.250000 +v 15.625001 8.375000 4.000000 +v 15.588389 8.463388 4.000000 +v 15.500001 8.500000 4.000000 +v 15.411613 8.463388 4.000000 +v 15.375001 8.375000 4.000000 +v 15.411613 8.286612 4.000000 +v 15.500001 8.250000 4.000000 +v 15.588389 8.286612 4.000000 +v 15.551778 8.375000 3.823223 +v 15.525889 8.463388 3.849112 +v 15.463389 8.500000 3.911612 +v 15.400889 8.463388 3.974112 +v 15.400889 8.286612 3.974112 +v 15.463389 8.250000 3.911612 +v 15.525889 8.286612 3.849112 +v 15.375001 8.375000 3.750000 +v 15.375001 8.463388 3.786612 +v 15.375001 8.500000 3.875000 +v 15.375001 8.463388 3.963388 +v 15.375001 8.286612 3.963388 +v 15.375001 8.250000 3.875000 +v 15.375001 8.286612 3.786612 +v 14.500001 8.375000 4.000000 +v 14.500001 8.375000 3.750000 +v 14.500001 8.463388 3.786612 +v 14.500001 8.500000 3.875000 +v 14.500001 8.463388 3.963388 +v 14.500001 8.286612 3.963388 +v 14.500001 8.250000 3.875000 +v 14.500001 8.286612 3.786612 +v 13.500000 8.625000 3.625000 +v 13.500000 8.625000 6.375000 +v 14.500000 8.625000 6.375000 +v 14.500000 8.625000 3.625000 +v 13.625000 8.750000 3.750000 +v 13.625000 8.750000 6.250000 +v 14.375000 8.750000 6.250000 +v 14.375000 8.750000 3.750000 +v 11.375000 0.000000 6.250000 +v 11.375000 0.000000 3.750000 +v 11.500000 0.000000 3.750000 +v 11.500000 0.000000 6.250000 +v 11.500000 0.000000 6.500000 +v 11.500000 0.000000 6.250000 +v 11.250000 0.000000 6.500000 +v 11.250000 0.000000 6.250000 +v 11.500000 0.250000 6.500000 +v 11.500000 0.250000 6.250000 +v 11.250000 0.250000 6.500000 +v 11.250000 0.250000 6.250000 +v 11.500000 0.000000 3.750000 +v 11.500000 0.000000 3.500000 +v 11.250000 0.000000 3.750000 +v 11.250000 0.000000 3.500000 +v 11.500000 0.250000 3.750000 +v 11.500000 0.250000 3.500000 +v 11.250000 0.250000 3.750000 +v 11.250000 0.250000 3.500000 +v 8.750000 0.000000 6.500000 +v 8.750000 0.000000 6.250000 +v 8.500000 0.000000 6.500000 +v 8.500000 0.000000 6.250000 +v 8.750000 0.250000 6.500000 +v 8.750000 0.250000 6.250000 +v 8.500000 0.250000 6.500000 +v 8.500000 0.250000 6.250000 +v 8.750000 0.000000 3.750000 +v 8.750000 0.000000 3.500000 +v 8.500000 0.000000 3.750000 +v 8.500000 0.000000 3.500000 +v 8.750000 0.250000 3.750000 +v 8.750000 0.250000 3.500000 +v 8.500000 0.250000 3.750000 +v 8.500000 0.250000 3.500000 +v 11.375000 0.125000 6.250000 +v 11.375000 0.125000 3.750000 +v 11.500000 0.125000 3.750000 +v 11.500000 0.125000 6.250000 +v 8.625000 0.000000 3.750000 +v 8.625000 0.000000 6.250000 +v 8.500000 0.000000 6.250000 +v 8.500000 0.000000 3.750000 +v 8.625000 0.125000 3.750000 +v 8.625000 0.125000 6.250000 +v 8.500000 0.125000 6.250000 +v 8.500000 0.125000 3.750000 +v 11.250000 0.000000 3.625000 +v 8.750000 0.000000 3.625000 +v 8.750000 0.000000 3.500000 +v 11.250000 0.000000 3.500000 +v 11.250000 0.125000 3.625000 +v 8.750000 0.125000 3.625000 +v 8.750000 0.125000 3.500000 +v 11.250000 0.125000 3.500000 +v 8.750000 0.000000 6.375000 +v 11.250000 0.000000 6.375000 +v 11.250000 0.000000 6.500000 +v 8.750000 0.000000 6.500000 +v 8.750000 0.125000 6.375000 +v 11.250000 0.125000 6.375000 +v 11.250000 0.125000 6.500000 +v 8.750000 0.125000 6.500000 +v 11.500000 0.250000 3.500000 +v 11.375000 0.250000 3.500000 +v 11.500000 8.750000 3.500000 +v 11.375000 8.750000 3.500000 +v 11.500000 0.250000 3.625000 +v 11.375000 0.250000 3.625000 +v 11.500000 8.750000 3.625000 +v 11.375000 8.750000 3.625000 +v 11.500000 8.750000 6.500000 +v 11.500000 8.750000 6.250000 +v 11.250000 8.750000 6.500000 +v 11.250000 8.750000 6.250000 +v 11.500000 9.000000 6.500000 +v 11.500000 9.000000 6.250000 +v 11.250000 9.000000 6.500000 +v 11.250000 9.000000 6.250000 +v 11.500000 8.750000 3.750000 +v 11.500000 8.750000 3.500000 +v 11.250000 8.750000 3.750000 +v 11.250000 8.750000 3.500000 +v 11.500000 9.000000 3.750000 +v 11.500000 9.000000 3.500000 +v 11.250000 9.000000 3.750000 +v 11.250000 9.000000 3.500000 +v 8.750000 8.750000 6.500000 +v 8.750000 8.750000 6.250000 +v 8.500000 8.750000 6.500000 +v 8.500000 8.750000 6.250000 +v 8.750000 9.000000 6.500000 +v 8.750000 9.000000 6.250000 +v 8.500000 9.000000 6.500000 +v 8.500000 9.000000 6.250000 +v 8.750000 8.750000 3.750000 +v 8.750000 8.750000 3.500000 +v 8.500000 8.750000 3.750000 +v 8.500000 8.750000 3.500000 +v 8.750000 9.000000 3.750000 +v 8.750000 9.000000 3.500000 +v 8.500000 9.000000 3.750000 +v 8.500000 9.000000 3.500000 +v 8.625000 0.250000 3.500000 +v 8.500000 0.250000 3.500000 +v 8.625000 8.750000 3.500000 +v 8.500000 8.750000 3.500000 +v 8.625000 0.250000 3.625000 +v 8.500000 0.250000 3.625000 +v 8.625000 8.750000 3.625000 +v 8.500000 8.750000 3.625000 +v 11.500000 0.250000 6.375000 +v 11.375000 0.250000 6.375000 +v 11.500000 8.750000 6.375000 +v 11.375000 8.750000 6.375000 +v 11.500000 0.250000 6.500000 +v 11.375000 0.250000 6.500000 +v 11.500000 8.750000 6.500000 +v 11.375000 8.750000 6.500000 +v 8.625000 0.250000 6.375000 +v 8.500000 0.250000 6.375000 +v 8.625000 8.750000 6.375000 +v 8.500000 8.750000 6.375000 +v 8.625000 0.250000 6.500000 +v 8.500000 0.250000 6.500000 +v 8.625000 8.750000 6.500000 +v 8.500000 8.750000 6.500000 +v 11.375000 8.875000 6.250000 +v 11.375000 8.875000 3.750000 +v 11.500000 8.875000 3.750000 +v 11.500000 8.875000 6.250000 +v 11.375000 9.000000 6.250000 +v 11.375000 9.000000 3.750000 +v 11.500000 9.000000 3.750000 +v 11.500000 9.000000 6.250000 +v 8.625000 8.875000 3.750000 +v 8.625000 8.875000 6.250000 +v 8.500000 8.875000 6.250000 +v 8.500000 8.875000 3.750000 +v 8.625000 9.000000 3.750000 +v 8.625000 9.000000 6.250000 +v 8.500000 9.000000 6.250000 +v 8.500000 9.000000 3.750000 +v 11.250000 8.875000 3.625000 +v 8.750000 8.875000 3.625000 +v 8.750000 8.875000 3.500000 +v 11.250000 8.875000 3.500000 +v 11.250000 9.000000 3.625000 +v 8.750000 9.000000 3.625000 +v 8.750000 9.000000 3.500000 +v 11.250000 9.000000 3.500000 +v 8.750000 8.875000 6.375000 +v 11.250000 8.875000 6.375000 +v 11.250000 8.875000 6.500000 +v 8.750000 8.875000 6.500000 +v 8.750000 9.000000 6.375000 +v 11.250000 9.000000 6.375000 +v 11.250000 9.000000 6.500000 +v 8.750000 9.000000 6.500000 +v 9.875000 0.125000 6.500000 +v 10.125000 0.125000 6.500000 +v 9.875000 0.125000 3.500000 +v 10.125000 0.125000 3.500000 +v 9.875000 0.250000 3.500000 +v 9.875000 0.250000 6.500000 +v 10.125000 0.250000 6.500000 +v 10.125000 0.250000 3.500000 +v 10.875000 0.125000 6.500000 +v 11.125000 0.125000 6.500000 +v 10.875000 0.125000 3.500000 +v 11.125000 0.125000 3.500000 +v 10.875000 0.250000 3.500000 +v 10.875000 0.250000 6.500000 +v 11.125000 0.250000 6.500000 +v 11.125000 0.250000 3.500000 +v 8.875000 0.125000 6.500000 +v 9.125000 0.125000 6.500000 +v 8.875000 0.125000 3.500000 +v 9.125000 0.125000 3.500000 +v 8.875000 0.250000 3.500000 +v 8.875000 0.250000 6.500000 +v 9.125000 0.250000 6.500000 +v 9.125000 0.250000 3.500000 +v 8.750000 0.250000 6.250000 +v 11.250000 0.250000 6.250000 +v 8.750000 0.250000 3.750000 +v 11.250000 0.250000 3.750000 +v 8.750000 1.000000 3.750000 +v 8.750000 1.000000 6.250000 +v 11.250000 1.000000 6.250000 +v 11.250000 1.000000 3.750000 +v 11.000000 2.000000 3.500000 +v 10.750000 2.000000 3.566987 +v 10.566987 2.000000 3.750000 +v 10.500000 2.000000 4.000000 +v 10.566987 2.000000 4.250000 +v 10.750000 2.000000 4.433013 +v 11.000000 2.000000 4.500000 +v 11.250000 2.000000 4.433013 +v 11.433012 2.000000 4.250000 +v 11.500000 2.000000 4.000000 +v 11.433013 2.000000 3.750000 +v 11.250000 2.000000 3.566988 +v 10.750000 4.000000 3.566987 +v 11.000000 4.000000 3.500000 +v 10.566987 4.000000 3.750000 +v 10.500000 4.000000 4.000000 +v 10.566987 4.000000 4.250000 +v 10.750000 4.000000 4.433013 +v 11.000000 4.000000 4.500000 +v 11.250000 4.000000 4.433013 +v 11.433012 4.000000 4.250000 +v 11.500000 4.000000 4.000000 +v 11.433013 4.000000 3.750000 +v 11.250000 4.000000 3.566988 +v 11.000000 2.500000 3.500000 +v 10.750000 2.500000 3.566987 +v 11.250000 2.500000 3.566988 +v 10.750000 3.500000 3.566987 +v 11.000000 3.500000 3.500000 +v 11.250000 3.500000 3.566988 +v 11.000000 2.125000 3.625000 +v 10.812500 2.125000 3.675241 +v 10.675241 2.125000 3.812500 +v 10.625000 2.125000 4.000000 +v 10.675241 2.125000 4.187500 +v 10.812500 2.125000 4.324759 +v 11.000000 2.125000 4.375000 +v 11.187500 2.125000 4.324759 +v 11.324759 2.125000 4.187500 +v 11.375000 2.125000 4.000000 +v 11.324759 2.125000 3.812500 +v 11.187500 2.125000 3.675241 +v 11.000000 2.500000 3.625000 +v 10.812500 2.500000 3.675241 +v 11.187500 2.500000 3.675241 +v 11.000000 3.875000 3.625000 +v 10.812500 3.875000 3.675241 +v 10.675241 3.875000 3.812500 +v 10.625000 3.875000 4.000000 +v 10.675241 3.875000 4.187500 +v 10.812500 3.875000 4.324759 +v 11.000000 3.875000 4.375000 +v 11.187500 3.875000 4.324759 +v 11.324759 3.875000 4.187500 +v 11.375000 3.875000 4.000000 +v 11.324759 3.875000 3.812500 +v 11.187500 3.875000 3.675241 +v 11.000000 3.500000 3.625000 +v 10.812500 3.500000 3.675241 +v 11.187500 3.500000 3.675241 +v 11.000000 3.750000 3.625000 +v 10.812500 3.750000 3.675241 +v 10.675241 3.750000 3.812500 +v 10.625000 3.750000 4.000000 +v 10.675241 3.750000 4.187500 +v 10.812500 3.750000 4.324759 +v 11.000000 3.750000 4.375000 +v 11.187500 3.750000 4.324759 +v 11.324759 3.750000 4.187500 +v 11.375000 3.750000 4.000000 +v 11.324759 3.750000 3.812500 +v 11.187500 3.750000 3.675241 +v 10.812500 3.500000 3.675241 +v 11.000000 3.500000 3.625000 +v 10.675241 3.500000 3.812500 +v 10.625000 3.500000 4.000000 +v 10.675241 3.500000 4.187500 +v 10.812500 3.500000 4.324759 +v 11.000000 3.500000 4.375000 +v 11.187500 3.500000 4.324759 +v 11.324759 3.500000 4.187500 +v 11.375000 3.500000 4.000000 +v 11.324759 3.500000 3.812500 +v 11.187500 3.500000 3.675241 +v 11.000000 3.750000 3.875000 +v 10.937500 3.750000 3.891747 +v 10.891747 3.750000 3.937500 +v 10.875000 3.750000 4.000000 +v 10.891747 3.750000 4.062500 +v 10.937500 3.750000 4.108253 +v 11.000000 3.750000 4.125000 +v 11.062500 3.750000 4.108253 +v 11.108253 3.750000 4.062500 +v 11.125000 3.750000 4.000000 +v 11.108253 3.750000 3.937500 +v 11.062500 3.750000 3.891747 +v 11.000000 4.875000 3.875000 +v 10.937500 4.875000 3.891747 +v 10.891747 4.875000 3.937500 +v 10.875000 4.875000 4.000000 +v 10.891747 4.875000 4.062500 +v 10.937500 4.875000 4.108253 +v 11.000000 4.875000 4.125000 +v 11.062500 4.875000 4.108253 +v 11.108253 4.875000 4.062500 +v 11.125000 4.875000 4.000000 +v 11.108253 4.875000 3.937500 +v 11.062500 4.875000 3.891747 +v 11.000000 4.000000 3.625000 +v 10.812500 4.000000 3.675241 +v 10.675241 4.000000 3.812500 +v 10.625000 4.000000 4.000000 +v 10.675241 4.000000 4.187500 +v 10.812500 4.000000 4.324759 +v 11.000000 4.000000 4.375000 +v 11.187500 4.000000 4.324759 +v 11.324759 4.000000 4.187500 +v 11.375000 4.000000 4.000000 +v 11.324759 4.000000 3.812500 +v 11.187500 4.000000 3.675241 +v 11.000000 4.250000 3.625000 +v 10.812500 4.250000 3.675241 +v 10.675241 4.250000 3.812500 +v 10.625000 4.250000 4.000000 +v 10.675241 4.250000 4.187500 +v 10.812500 4.250000 4.324759 +v 11.000000 4.250000 4.375000 +v 11.187500 4.250000 4.324759 +v 11.324759 4.250000 4.187500 +v 11.375000 4.250000 4.000000 +v 11.324759 4.250000 3.812500 +v 11.187500 4.250000 3.675241 +v 11.000000 4.375000 3.750000 +v 10.875000 4.375000 3.783494 +v 10.783494 4.375000 3.875000 +v 10.750000 4.375000 4.000000 +v 10.783494 4.375000 4.125000 +v 10.875000 4.375000 4.216506 +v 11.000000 4.375000 4.250000 +v 11.125000 4.375000 4.216506 +v 11.216506 4.375000 4.125000 +v 11.250000 4.375000 4.000000 +v 11.216506 4.375000 3.875000 +v 11.125000 4.375000 3.783494 +v 11.187500 4.750000 3.675241 +v 11.324759 4.750000 3.812500 +v 11.375000 4.750000 4.000000 +v 11.324759 4.750000 4.187500 +v 11.187500 4.750000 4.324759 +v 11.000000 4.750000 4.375000 +v 10.812500 4.750000 4.324759 +v 10.675241 4.750000 4.187500 +v 10.625000 4.750000 4.000000 +v 10.675241 4.750000 3.812500 +v 10.812500 4.750000 3.675241 +v 11.000000 4.750000 3.625000 +v 11.000000 5.000000 3.500000 +v 10.750000 5.000000 3.566987 +v 10.566987 5.000000 3.750000 +v 10.500000 5.000000 4.000000 +v 10.566987 5.000000 4.250000 +v 10.750000 5.000000 4.433013 +v 11.000000 5.000000 4.500000 +v 11.250000 5.000000 4.433013 +v 11.433012 5.000000 4.250000 +v 11.500000 5.000000 4.000000 +v 11.433013 5.000000 3.750000 +v 11.250000 5.000000 3.566988 +v 10.750000 7.000000 3.566987 +v 11.000000 7.000000 3.500000 +v 10.566987 7.000000 3.750000 +v 10.500000 7.000000 4.000000 +v 10.566987 7.000000 4.250000 +v 10.750000 7.000000 4.433013 +v 11.000000 7.000000 4.500000 +v 11.250000 7.000000 4.433013 +v 11.433012 7.000000 4.250000 +v 11.500000 7.000000 4.000000 +v 11.433013 7.000000 3.750000 +v 11.250000 7.000000 3.566988 +v 11.000000 5.500000 3.500000 +v 10.750000 5.500000 3.566987 +v 11.250000 5.500000 3.566988 +v 10.750000 6.500000 3.566987 +v 11.000000 6.500000 3.500000 +v 11.250000 6.500000 3.566988 +v 11.000000 5.125000 3.625000 +v 10.812500 5.125000 3.675241 +v 10.675241 5.125000 3.812500 +v 10.625000 5.125000 4.000000 +v 10.675241 5.125000 4.187500 +v 10.812500 5.125000 4.324759 +v 11.000000 5.125000 4.375000 +v 11.187500 5.125000 4.324759 +v 11.324759 5.125000 4.187500 +v 11.375000 5.125000 4.000000 +v 11.324759 5.125000 3.812500 +v 11.187500 5.125000 3.675241 +v 11.000000 5.500000 3.625000 +v 10.812500 5.500000 3.675241 +v 11.187500 5.500000 3.675241 +v 11.000000 6.875000 3.625000 +v 10.812500 6.875000 3.675241 +v 10.675241 6.875000 3.812500 +v 10.625000 6.875000 4.000000 +v 10.675241 6.875000 4.187500 +v 10.812500 6.875000 4.324759 +v 11.000000 6.875000 4.375000 +v 11.187500 6.875000 4.324759 +v 11.324759 6.875000 4.187500 +v 11.375000 6.875000 4.000000 +v 11.324759 6.875000 3.812500 +v 11.187500 6.875000 3.675241 +v 11.000000 6.500000 3.625000 +v 10.812500 6.500000 3.675241 +v 11.187500 6.500000 3.675241 +v 11.000000 6.750000 3.625000 +v 10.812500 6.750000 3.675241 +v 10.675241 6.750000 3.812500 +v 10.625000 6.750000 4.000000 +v 10.675241 6.750000 4.187500 +v 10.812500 6.750000 4.324759 +v 11.000000 6.750000 4.375000 +v 11.187500 6.750000 4.324759 +v 11.324759 6.750000 4.187500 +v 11.375000 6.750000 4.000000 +v 11.324759 6.750000 3.812500 +v 11.187500 6.750000 3.675241 +v 10.812500 6.500000 3.675241 +v 11.000000 6.500000 3.625000 +v 10.675241 6.500000 3.812500 +v 10.625000 6.500000 4.000000 +v 10.675241 6.500000 4.187500 +v 10.812500 6.500000 4.324759 +v 11.000000 6.500000 4.375000 +v 11.187500 6.500000 4.324759 +v 11.324759 6.500000 4.187500 +v 11.375000 6.500000 4.000000 +v 11.324759 6.500000 3.812500 +v 11.187500 6.500000 3.675241 +v 11.000000 6.750000 3.875000 +v 10.937500 6.750000 3.891747 +v 10.891747 6.750000 3.937500 +v 10.875000 6.750000 4.000000 +v 10.891747 6.750000 4.062500 +v 10.937500 6.750000 4.108253 +v 11.000000 6.750000 4.125000 +v 11.062500 6.750000 4.108253 +v 11.108253 6.750000 4.062500 +v 11.125000 6.750000 4.000000 +v 11.108253 6.750000 3.937500 +v 11.062500 6.750000 3.891747 +v 11.000000 7.875000 3.875000 +v 10.937500 7.875000 3.891747 +v 10.891747 7.875000 3.937500 +v 10.875000 7.875000 4.000000 +v 10.891747 7.875000 4.062500 +v 10.937500 7.875000 4.108253 +v 11.000000 7.875000 4.125000 +v 11.062500 7.875000 4.108253 +v 11.108253 7.875000 4.062500 +v 11.125000 7.875000 4.000000 +v 11.108253 7.875000 3.937500 +v 11.062500 7.875000 3.891747 +v 11.000000 7.750000 3.625000 +v 10.812500 7.750000 3.675241 +v 10.675241 7.750000 3.812500 +v 10.625000 7.750000 4.000000 +v 10.675241 7.750000 4.187500 +v 10.812500 7.750000 4.324759 +v 11.000000 7.750000 4.375000 +v 11.187500 7.750000 4.324759 +v 11.324759 7.750000 4.187500 +v 11.375000 7.750000 4.000000 +v 11.324759 7.750000 3.812500 +v 11.187500 7.750000 3.675241 +v 11.125000 7.375000 3.783494 +v 11.216506 7.375000 3.875000 +v 11.250000 7.375000 4.000000 +v 11.216506 7.375000 4.125000 +v 11.125000 7.375000 4.216506 +v 11.000000 7.375000 4.250000 +v 10.875000 7.375000 4.216506 +v 10.783494 7.375000 4.125000 +v 10.750000 7.375000 4.000000 +v 10.783494 7.375000 3.875000 +v 10.875000 7.375000 3.783494 +v 11.000000 7.375000 3.750000 +v 11.187500 7.250000 3.675241 +v 11.324759 7.250000 3.812500 +v 11.375000 7.250000 4.000000 +v 11.324759 7.250000 4.187500 +v 11.187500 7.250000 4.324759 +v 11.000000 7.250000 4.375000 +v 10.812500 7.250000 4.324759 +v 10.675241 7.250000 4.187500 +v 10.625000 7.250000 4.000000 +v 10.675241 7.250000 3.812500 +v 10.812500 7.250000 3.675241 +v 11.000000 7.250000 3.625000 +v 11.187500 7.000000 3.675241 +v 11.324759 7.000000 3.812500 +v 11.375000 7.000000 4.000000 +v 11.324759 7.000000 4.187500 +v 11.187500 7.000000 4.324759 +v 11.000000 7.000000 4.375000 +v 10.812500 7.000000 4.324759 +v 10.675241 7.000000 4.187500 +v 10.625000 7.000000 4.000000 +v 10.675241 7.000000 3.812500 +v 10.812500 7.000000 3.675241 +v 11.000000 7.000000 3.625000 +v 10.000000 2.000000 3.500000 +v 9.750000 2.000000 3.566987 +v 9.566987 2.000000 3.750000 +v 9.500000 2.000000 4.000000 +v 9.566987 2.000000 4.250000 +v 9.750000 2.000000 4.433013 +v 10.000000 2.000000 4.500000 +v 10.250000 2.000000 4.433013 +v 10.433012 2.000000 4.250000 +v 10.500000 2.000000 4.000000 +v 10.433013 2.000000 3.750000 +v 10.250000 2.000000 3.566988 +v 9.750000 4.000000 3.566987 +v 10.000000 4.000000 3.500000 +v 9.566987 4.000000 3.750000 +v 9.500000 4.000000 4.000000 +v 9.566987 4.000000 4.250000 +v 9.750000 4.000000 4.433013 +v 10.000000 4.000000 4.500000 +v 10.250000 4.000000 4.433013 +v 10.433012 4.000000 4.250000 +v 10.500000 4.000000 4.000000 +v 10.433013 4.000000 3.750000 +v 10.250000 4.000000 3.566988 +v 10.000000 2.500000 3.500000 +v 9.750000 2.500000 3.566987 +v 10.250000 2.500000 3.566988 +v 9.750000 3.500000 3.566987 +v 10.000000 3.500000 3.500000 +v 10.250000 3.500000 3.566988 +v 10.000000 2.125000 3.625000 +v 9.812500 2.125000 3.675241 +v 9.675241 2.125000 3.812500 +v 9.625000 2.125000 4.000000 +v 9.675241 2.125000 4.187500 +v 9.812500 2.125000 4.324759 +v 10.000000 2.125000 4.375000 +v 10.187500 2.125000 4.324759 +v 10.324759 2.125000 4.187500 +v 10.375000 2.125000 4.000000 +v 10.324759 2.125000 3.812500 +v 10.187500 2.125000 3.675241 +v 10.000000 2.500000 3.625000 +v 9.812500 2.500000 3.675241 +v 10.187500 2.500000 3.675241 +v 10.000000 3.875000 3.625000 +v 9.812500 3.875000 3.675241 +v 9.675241 3.875000 3.812500 +v 9.625000 3.875000 4.000000 +v 9.675241 3.875000 4.187500 +v 9.812500 3.875000 4.324759 +v 10.000000 3.875000 4.375000 +v 10.187500 3.875000 4.324759 +v 10.324759 3.875000 4.187500 +v 10.375000 3.875000 4.000000 +v 10.324759 3.875000 3.812500 +v 10.187500 3.875000 3.675241 +v 10.000000 3.500000 3.625000 +v 9.812500 3.500000 3.675241 +v 10.187500 3.500000 3.675241 +v 10.000000 3.750000 3.625000 +v 9.812500 3.750000 3.675241 +v 9.675241 3.750000 3.812500 +v 9.625000 3.750000 4.000000 +v 9.675241 3.750000 4.187500 +v 9.812500 3.750000 4.324759 +v 10.000000 3.750000 4.375000 +v 10.187500 3.750000 4.324759 +v 10.324759 3.750000 4.187500 +v 10.375000 3.750000 4.000000 +v 10.324759 3.750000 3.812500 +v 10.187500 3.750000 3.675241 +v 9.812500 3.500000 3.675241 +v 10.000000 3.500000 3.625000 +v 9.675241 3.500000 3.812500 +v 9.625000 3.500000 4.000000 +v 9.675241 3.500000 4.187500 +v 9.812500 3.500000 4.324759 +v 10.000000 3.500000 4.375000 +v 10.187500 3.500000 4.324759 +v 10.324759 3.500000 4.187500 +v 10.375000 3.500000 4.000000 +v 10.324759 3.500000 3.812500 +v 10.187500 3.500000 3.675241 +v 10.000000 3.750000 3.875000 +v 9.937500 3.750000 3.891747 +v 9.891747 3.750000 3.937500 +v 9.875000 3.750000 4.000000 +v 9.891747 3.750000 4.062500 +v 9.937500 3.750000 4.108253 +v 10.000000 3.750000 4.125000 +v 10.062500 3.750000 4.108253 +v 10.108253 3.750000 4.062500 +v 10.125000 3.750000 4.000000 +v 10.108253 3.750000 3.937500 +v 10.062500 3.750000 3.891747 +v 10.000000 4.875000 3.875000 +v 9.937500 4.875000 3.891747 +v 9.891747 4.875000 3.937500 +v 9.875000 4.875000 4.000000 +v 9.891747 4.875000 4.062500 +v 9.937500 4.875000 4.108253 +v 10.000000 4.875000 4.125000 +v 10.062500 4.875000 4.108253 +v 10.108253 4.875000 4.062500 +v 10.125000 4.875000 4.000000 +v 10.108253 4.875000 3.937500 +v 10.062500 4.875000 3.891747 +v 10.000000 5.000000 3.625000 +v 9.812500 5.000000 3.675241 +v 9.675241 5.000000 3.812500 +v 9.625000 5.000000 4.000000 +v 9.675241 5.000000 4.187500 +v 9.812500 5.000000 4.324759 +v 10.000000 5.000000 4.375000 +v 10.187500 5.000000 4.324759 +v 10.324759 5.000000 4.187500 +v 10.375000 5.000000 4.000000 +v 10.324759 5.000000 3.812500 +v 10.187500 5.000000 3.675241 +v 10.000000 4.625000 3.750000 +v 9.875000 4.625000 3.783494 +v 9.783494 4.625000 3.875000 +v 9.750000 4.625000 4.000000 +v 9.783494 4.625000 4.125000 +v 9.875000 4.625000 4.216506 +v 10.000000 4.625000 4.250000 +v 10.125000 4.625000 4.216506 +v 10.216506 4.625000 4.125000 +v 10.250000 4.625000 4.000000 +v 10.216506 4.625000 3.875000 +v 10.125000 4.625000 3.783494 +v 10.000000 4.750000 3.625000 +v 9.812500 4.750000 3.675241 +v 9.675241 4.750000 3.812500 +v 9.625000 4.750000 4.000000 +v 9.675241 4.750000 4.187500 +v 9.812500 4.750000 4.324759 +v 10.000000 4.750000 4.375000 +v 10.187500 4.750000 4.324759 +v 10.324759 4.750000 4.187500 +v 10.375000 4.750000 4.000000 +v 10.324759 4.750000 3.812500 +v 10.187500 4.750000 3.675241 +v 10.125000 4.375000 3.783494 +v 10.216506 4.375000 3.875000 +v 10.250000 4.375000 4.000000 +v 10.216506 4.375000 4.125000 +v 10.125000 4.375000 4.216506 +v 10.000000 4.375000 4.250000 +v 9.875000 4.375000 4.216506 +v 9.783494 4.375000 4.125000 +v 9.750000 4.375000 4.000000 +v 9.783494 4.375000 3.875000 +v 9.875000 4.375000 3.783494 +v 10.000000 4.375000 3.750000 +v 10.000000 5.000000 3.500000 +v 9.750000 5.000000 3.566987 +v 9.566987 5.000000 3.750000 +v 9.500000 5.000000 4.000000 +v 9.566987 5.000000 4.250000 +v 9.750000 5.000000 4.433013 +v 10.000000 5.000000 4.500000 +v 10.250000 5.000000 4.433013 +v 10.433012 5.000000 4.250000 +v 10.500000 5.000000 4.000000 +v 10.433013 5.000000 3.750000 +v 10.250000 5.000000 3.566988 +v 9.750000 7.000000 3.566987 +v 10.000000 7.000000 3.500000 +v 9.566987 7.000000 3.750000 +v 9.500000 7.000000 4.000000 +v 9.566987 7.000000 4.250000 +v 9.750000 7.000000 4.433013 +v 10.000000 7.000000 4.500000 +v 10.250000 7.000000 4.433013 +v 10.433012 7.000000 4.250000 +v 10.500000 7.000000 4.000000 +v 10.433013 7.000000 3.750000 +v 10.250000 7.000000 3.566988 +v 10.000000 5.500000 3.500000 +v 9.750000 5.500000 3.566987 +v 10.250000 5.500000 3.566988 +v 9.750000 6.500000 3.566987 +v 10.000000 6.500000 3.500000 +v 10.250000 6.500000 3.566988 +v 10.000000 5.125000 3.625000 +v 9.812500 5.125000 3.675241 +v 9.675241 5.125000 3.812500 +v 9.625000 5.125000 4.000000 +v 9.675241 5.125000 4.187500 +v 9.812500 5.125000 4.324759 +v 10.000000 5.125000 4.375000 +v 10.187500 5.125000 4.324759 +v 10.324759 5.125000 4.187500 +v 10.375000 5.125000 4.000000 +v 10.324759 5.125000 3.812500 +v 10.187500 5.125000 3.675241 +v 10.000000 5.500000 3.625000 +v 9.812500 5.500000 3.675241 +v 10.187500 5.500000 3.675241 +v 10.000000 6.875000 3.625000 +v 9.812500 6.875000 3.675241 +v 9.675241 6.875000 3.812500 +v 9.625000 6.875000 4.000000 +v 9.675241 6.875000 4.187500 +v 9.812500 6.875000 4.324759 +v 10.000000 6.875000 4.375000 +v 10.187500 6.875000 4.324759 +v 10.324759 6.875000 4.187500 +v 10.375000 6.875000 4.000000 +v 10.324759 6.875000 3.812500 +v 10.187500 6.875000 3.675241 +v 10.000000 6.500000 3.625000 +v 9.812500 6.500000 3.675241 +v 10.187500 6.500000 3.675241 +v 10.000000 6.750000 3.625000 +v 9.812500 6.750000 3.675241 +v 9.675241 6.750000 3.812500 +v 9.625000 6.750000 4.000000 +v 9.675241 6.750000 4.187500 +v 9.812500 6.750000 4.324759 +v 10.000000 6.750000 4.375000 +v 10.187500 6.750000 4.324759 +v 10.324759 6.750000 4.187500 +v 10.375000 6.750000 4.000000 +v 10.324759 6.750000 3.812500 +v 10.187500 6.750000 3.675241 +v 9.812500 6.500000 3.675241 +v 10.000000 6.500000 3.625000 +v 9.675241 6.500000 3.812500 +v 9.625000 6.500000 4.000000 +v 9.675241 6.500000 4.187500 +v 9.812500 6.500000 4.324759 +v 10.000000 6.500000 4.375000 +v 10.187500 6.500000 4.324759 +v 10.324759 6.500000 4.187500 +v 10.375000 6.500000 4.000000 +v 10.324759 6.500000 3.812500 +v 10.187500 6.500000 3.675241 +v 10.000000 6.750000 3.875000 +v 9.937500 6.750000 3.891747 +v 9.891747 6.750000 3.937500 +v 9.875000 6.750000 4.000000 +v 9.891747 6.750000 4.062500 +v 9.937500 6.750000 4.108253 +v 10.000000 6.750000 4.125000 +v 10.062500 6.750000 4.108253 +v 10.108253 6.750000 4.062500 +v 10.125000 6.750000 4.000000 +v 10.108253 6.750000 3.937500 +v 10.062500 6.750000 3.891747 +v 10.000000 7.875000 3.875000 +v 9.937500 7.875000 3.891747 +v 9.891747 7.875000 3.937500 +v 9.875000 7.875000 4.000000 +v 9.891747 7.875000 4.062500 +v 9.937500 7.875000 4.108253 +v 10.000000 7.875000 4.125000 +v 10.062500 7.875000 4.108253 +v 10.108253 7.875000 4.062500 +v 10.125000 7.875000 4.000000 +v 10.108253 7.875000 3.937500 +v 10.062500 7.875000 3.891747 +v 10.187500 4.250000 3.675241 +v 10.324759 4.250000 3.812500 +v 10.375000 4.250000 4.000000 +v 10.324759 4.250000 4.187500 +v 10.187500 4.250000 4.324759 +v 10.000000 4.250000 4.375000 +v 9.812500 4.250000 4.324759 +v 9.675241 4.250000 4.187500 +v 9.625000 4.250000 4.000000 +v 9.675241 4.250000 3.812500 +v 9.812500 4.250000 3.675241 +v 10.000000 4.250000 3.625000 +v 10.187500 4.000000 3.675241 +v 10.324759 4.000000 3.812500 +v 10.375000 4.000000 4.000000 +v 10.324759 4.000000 4.187500 +v 10.187500 4.000000 4.324759 +v 10.000000 4.000000 4.375000 +v 9.812500 4.000000 4.324759 +v 9.675241 4.000000 4.187500 +v 9.625000 4.000000 4.000000 +v 9.675241 4.000000 3.812500 +v 9.812500 4.000000 3.675241 +v 10.000000 4.000000 3.625000 +v 11.125000 4.625000 3.783494 +v 11.216506 4.625000 3.875000 +v 11.250000 4.625000 4.000000 +v 11.216506 4.625000 4.125000 +v 11.125000 4.625000 4.216506 +v 11.000000 4.625000 4.250000 +v 10.875000 4.625000 4.216506 +v 10.783494 4.625000 4.125000 +v 10.750000 4.625000 4.000000 +v 10.783494 4.625000 3.875000 +v 10.875000 4.625000 3.783494 +v 11.000000 4.625000 3.750000 +v 11.187500 5.000000 3.675241 +v 11.324759 5.000000 3.812500 +v 11.375000 5.000000 4.000000 +v 11.324759 5.000000 4.187500 +v 11.187500 5.000000 4.324759 +v 11.000000 5.000000 4.375000 +v 10.812500 5.000000 4.324759 +v 10.675241 5.000000 4.187500 +v 10.625000 5.000000 4.000000 +v 10.675241 5.000000 3.812500 +v 10.812500 5.000000 3.675241 +v 11.000000 5.000000 3.625000 +v 10.000000 8.000000 3.625000 +v 9.812500 8.000000 3.675241 +v 9.675241 8.000000 3.812500 +v 9.625000 8.000000 4.000000 +v 9.675241 8.000000 4.187500 +v 9.812500 8.000000 4.324759 +v 10.000000 8.000000 4.375000 +v 10.187500 8.000000 4.324759 +v 10.324759 8.000000 4.187500 +v 10.375000 8.000000 4.000000 +v 10.324759 8.000000 3.812500 +v 10.187500 8.000000 3.675241 +v 10.000000 7.625000 3.750000 +v 9.875000 7.625000 3.783494 +v 9.783494 7.625000 3.875000 +v 9.750000 7.625000 4.000000 +v 9.783494 7.625000 4.125000 +v 9.875000 7.625000 4.216506 +v 10.000000 7.625000 4.250000 +v 10.125000 7.625000 4.216506 +v 10.216506 7.625000 4.125000 +v 10.250000 7.625000 4.000000 +v 10.216506 7.625000 3.875000 +v 10.125000 7.625000 3.783494 +v 10.000000 7.750000 3.625000 +v 9.812500 7.750000 3.675241 +v 9.675241 7.750000 3.812500 +v 9.625000 7.750000 4.000000 +v 9.675241 7.750000 4.187500 +v 9.812500 7.750000 4.324759 +v 10.000000 7.750000 4.375000 +v 10.187500 7.750000 4.324759 +v 10.324759 7.750000 4.187500 +v 10.375000 7.750000 4.000000 +v 10.324759 7.750000 3.812500 +v 10.187500 7.750000 3.675241 +v 10.125000 7.375000 3.783494 +v 10.216506 7.375000 3.875000 +v 10.250000 7.375000 4.000000 +v 10.216506 7.375000 4.125000 +v 10.125000 7.375000 4.216506 +v 10.000000 7.375000 4.250000 +v 9.875000 7.375000 4.216506 +v 9.783494 7.375000 4.125000 +v 9.750000 7.375000 4.000000 +v 9.783494 7.375000 3.875000 +v 9.875000 7.375000 3.783494 +v 10.000000 7.375000 3.750000 +v 10.187500 7.250000 3.675241 +v 10.324759 7.250000 3.812500 +v 10.375000 7.250000 4.000000 +v 10.324759 7.250000 4.187500 +v 10.187500 7.250000 4.324759 +v 10.000000 7.250000 4.375000 +v 9.812500 7.250000 4.324759 +v 9.675241 7.250000 4.187500 +v 9.625000 7.250000 4.000000 +v 9.675241 7.250000 3.812500 +v 9.812500 7.250000 3.675241 +v 10.000000 7.250000 3.625000 +v 10.187500 7.000000 3.675241 +v 10.324759 7.000000 3.812500 +v 10.375000 7.000000 4.000000 +v 10.324759 7.000000 4.187500 +v 10.187500 7.000000 4.324759 +v 10.000000 7.000000 4.375000 +v 9.812500 7.000000 4.324759 +v 9.675241 7.000000 4.187500 +v 9.625000 7.000000 4.000000 +v 9.675241 7.000000 3.812500 +v 9.812500 7.000000 3.675241 +v 10.000000 7.000000 3.625000 +v 11.125000 7.625000 3.783494 +v 11.216506 7.625000 3.875000 +v 11.250000 7.625000 4.000000 +v 11.216506 7.625000 4.125000 +v 11.125000 7.625000 4.216506 +v 11.000000 7.625000 4.250000 +v 10.875000 7.625000 4.216506 +v 10.783494 7.625000 4.125000 +v 10.750000 7.625000 4.000000 +v 10.783494 7.625000 3.875000 +v 10.875000 7.625000 3.783494 +v 11.000000 7.625000 3.750000 +v 11.187500 8.000000 3.675241 +v 11.324759 8.000000 3.812500 +v 11.375000 8.000000 4.000000 +v 11.324759 8.000000 4.187500 +v 11.187500 8.000000 4.324759 +v 11.000000 8.000000 4.375000 +v 10.812500 8.000000 4.324759 +v 10.675241 8.000000 4.187500 +v 10.625000 8.000000 4.000000 +v 10.675241 8.000000 3.812500 +v 10.812500 8.000000 3.675241 +v 11.000000 8.000000 3.625000 +v 9.500000 8.000000 4.375000 +v 11.500000 8.000000 4.375000 +v 9.500000 8.000000 3.625000 +v 11.500000 8.000000 3.625000 +v 9.500000 8.750000 3.625000 +v 9.500000 8.750000 4.375000 +v 11.500000 8.750000 4.375000 +v 11.500000 8.750000 3.625000 +v 8.625000 1.000000 6.375000 +v 11.375000 1.000000 6.375000 +v 8.625000 1.000000 3.625000 +v 11.375000 1.000000 3.625000 +v 8.625000 2.000000 3.625000 +v 8.625000 2.000000 6.375000 +v 11.375000 2.000000 6.375000 +v 11.375000 2.000000 3.625000 +v 10.000000 2.000000 4.500000 +v 9.617316 2.000000 4.576120 +v 9.292893 2.000000 4.792893 +v 9.076120 2.000000 5.117317 +v 9.000000 2.000000 5.500000 +v 9.076120 2.000000 5.882684 +v 9.292893 2.000000 6.207107 +v 9.617316 2.000000 6.423880 +v 10.000000 2.000000 6.500000 +v 10.382683 2.000000 6.423880 +v 10.707107 2.000000 6.207107 +v 10.923880 2.000000 5.882684 +v 11.000000 2.000000 5.500000 +v 10.923880 2.000000 5.117316 +v 10.707107 2.000000 4.792893 +v 10.382683 2.000000 4.576120 +v 9.617316 6.000000 4.576120 +v 10.000000 6.000000 4.500000 +v 9.292893 6.000000 4.792893 +v 9.076120 6.000000 5.117317 +v 9.000000 6.000000 5.500000 +v 9.076120 6.000000 5.882684 +v 9.292893 6.000000 6.207107 +v 9.617316 6.000000 6.423880 +v 10.000000 6.000000 6.500000 +v 10.382683 6.000000 6.423880 +v 10.707107 6.000000 6.207107 +v 10.923880 6.000000 5.882684 +v 11.000000 6.000000 5.500000 +v 10.923880 6.000000 5.117316 +v 10.707107 6.000000 4.792893 +v 10.382683 6.000000 4.576120 +v 8.500000 2.000000 6.250000 +v 9.000000 2.000000 6.250000 +v 8.500000 2.000000 3.750000 +v 9.000000 2.000000 4.500000 +v 9.500000 2.000000 3.750000 +v 9.500000 2.000000 4.500000 +v 8.500000 3.500000 3.750000 +v 8.500000 3.500000 6.250000 +v 9.000000 3.500000 6.250000 +v 9.000000 3.500000 4.500000 +v 9.500000 3.500000 4.500000 +v 9.500000 3.500000 3.750000 +vn 0.0000 -1.0000 0.0000 +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.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.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +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.9239 0.0000 -0.3827 +vn 0.3827 0.0000 -0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.6588 0.0000 0.7523 +vn -0.9239 0.0000 0.3827 +vn -0.7523 0.0000 -0.6588 +vn 0.2706 0.7071 0.6533 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.6533 0.7071 -0.2706 +vn 0.6533 0.7071 0.2706 +vn -0.7071 0.7071 -0.0000 +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.5000 0.7071 -0.5000 +vn -0.2706 0.7071 0.6533 +vn 0.2706 0.7071 -0.6533 +vn -0.2706 0.7071 -0.6533 +vn 0.0000 -0.4203 0.9074 +vn -0.9919 0.0899 -0.0899 +vn -0.0000 0.3532 -0.9356 +vn 0.6441 0.3032 -0.7023 +vn 0.7294 -0.2820 0.6233 +vn -0.7294 -0.2820 0.6233 +vn -0.6441 0.3032 -0.7023 +vn 0.9919 0.0899 -0.0899 +vn 0.0000 0.4203 -0.9074 +vn 0.7294 0.2820 -0.6233 +vn 0.9919 -0.0899 0.0899 +vn 0.6441 -0.3032 0.7023 +vn -0.6441 -0.3032 0.7023 +vn -0.7294 0.2820 -0.6233 +vn -0.0000 -0.3532 0.9356 +vn -0.9919 -0.0899 0.0899 +vn -0.6588 0.0000 -0.7523 +vn 0.7523 0.0000 0.6588 +vn 0.0000 -0.4202 0.9074 +vn 0.0000 0.4202 -0.9074 +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.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.6794 -0.1448 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.1448 0.7194 +vn -0.0000 -0.1866 0.9824 +vn -0.7263 0.1363 0.6737 +vn -0.9987 -0.0196 -0.0473 +vn -0.6794 -0.1448 -0.7194 +vn 0.0000 -0.1866 -0.9824 +vn 0.6794 -0.1448 -0.7194 +vn 0.9987 -0.0196 -0.0473 +vn 0.7263 0.1363 0.6737 +vn 0.9955 -0.0671 0.0671 +vn 0.6794 -0.7194 0.1448 +vn 0.9987 -0.0473 0.0196 +vn 0.0000 -0.7071 0.7071 +vn -0.6794 -0.7194 0.1448 +vn -0.0000 -0.9824 0.1866 +vn 0.6630 -0.5294 0.5293 +vn -0.6630 -0.5294 0.5293 +vn 0.7574 0.4617 -0.4617 +vn -0.7574 0.4617 -0.4617 +vn -0.9955 -0.0671 0.0671 +vn 0.7263 0.6737 -0.1363 +vn -0.7263 0.6737 -0.1363 +vn -0.9987 -0.0473 0.0196 +vn -0.9955 -0.0671 -0.0671 +vn 0.6630 -0.5293 -0.5294 +vn -0.7574 0.4617 0.4617 +vn 0.0000 -0.7071 -0.7071 +vn -0.6630 -0.5294 -0.5293 +vn 0.7574 0.4617 0.4617 +vn 0.9955 -0.0671 -0.0671 +vn 0.9987 -0.0473 -0.0196 +vn 0.6794 -0.7194 -0.1448 +vn -0.9987 -0.0473 -0.0196 +vn -0.7263 0.6737 0.1363 +vn -0.6794 -0.7194 -0.1448 +vn -0.0000 -0.9824 -0.1866 +vn 0.7263 0.6737 0.1363 +vn 0.6630 -0.5294 0.5294 +vn 0.6630 -0.5294 -0.5293 +vn -0.6630 -0.5293 -0.5294 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn 0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.0000 -0.8944 -0.4472 +vn -0.4472 -0.7746 -0.4472 +vn -0.8944 0.0000 -0.4472 +vn -0.7746 0.4472 -0.4472 +vn 0.8944 0.0000 -0.4472 +vn 0.7746 0.4472 -0.4472 +vn 0.4472 -0.7746 -0.4472 +vn -0.7746 -0.4472 -0.4472 +vn 0.4472 0.7746 -0.4472 +vn 0.0000 0.8944 -0.4472 +vn -0.4472 0.7746 -0.4472 +vn 0.7746 -0.4472 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.4472 -0.7746 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.7746 0.4472 0.4472 +vn -0.8944 -0.0000 0.4472 +vn -0.7746 0.4472 0.4472 +vn -0.4472 -0.7746 0.4472 +vn 0.7746 -0.4472 0.4472 +vn -0.4472 0.7746 0.4472 +vn -0.0000 0.8944 0.4472 +vn 0.4472 0.7746 0.4472 +vn -0.7746 -0.4472 0.4472 +vn -0.0196 -0.9987 0.0473 +vn -0.1866 0.0000 0.9824 +vn -0.0196 0.9987 0.0473 +vn 0.1363 -0.7263 -0.6737 +vn -0.1448 -0.6794 0.7194 +vn -0.1448 0.6794 0.7194 +vn 0.1363 0.7263 -0.6737 +vn -0.0671 -0.9955 0.0671 +vn -0.5293 0.6630 0.5294 +vn -0.0671 0.9955 0.0671 +vn 0.4617 -0.7574 -0.4617 +vn -0.5294 -0.6630 0.5294 +vn 0.4617 0.7574 -0.4617 +vn -0.0473 0.9987 0.0196 +vn -0.0473 -0.9987 0.0196 +vn 0.6737 -0.7263 -0.1363 +vn -0.9824 -0.0000 0.1866 +vn -0.7194 -0.6794 0.1448 +vn -0.7194 0.6794 0.1448 +vn 0.6737 0.7263 -0.1363 +vn -0.0393 -0.9947 0.0948 +vn -0.0393 0.9947 0.0948 +vn 0.2611 -0.7311 -0.6303 +vn -0.2962 -0.6333 0.7150 +vn -0.2962 0.6333 0.7150 +vn 0.9809 -0.0000 -0.1944 +vn 0.2611 0.7311 -0.6303 +vn 0.9824 0.0000 -0.1866 +vn 0.7194 -0.6794 -0.1448 +vn 0.7194 0.6794 -0.1448 +vn -0.6737 -0.7263 0.1363 +vn -0.6737 0.7263 0.1363 +vn 0.0473 -0.9987 -0.0196 +vn 0.0473 0.9987 -0.0196 +vn -0.4617 0.7574 0.4617 +vn 0.5294 0.6630 -0.5294 +vn 0.0671 -0.9955 -0.0671 +vn 0.0671 0.9955 -0.0671 +vn 0.5294 -0.6630 -0.5294 +vn 0.1866 -0.0000 -0.9824 +vn 0.1448 -0.6794 -0.7194 +vn -0.1363 0.7263 0.6737 +vn 0.1448 0.6794 -0.7194 +vn -0.1363 -0.7263 0.6737 +vn 0.0196 -0.9987 -0.0473 +vn 0.0196 0.9987 -0.0473 +vn -0.4617 -0.7574 0.4617 +vn -0.5751 0.0000 -0.8181 +vn 0.5751 0.0000 -0.8181 +vn -0.5751 0.0000 0.8181 +vn 0.5751 0.0000 0.8181 +vn 0.3536 0.7071 -0.6124 +vn -0.3536 0.7071 -0.6124 +vn -0.6124 0.7071 -0.3536 +vn -0.6124 0.7071 0.3536 +vn -0.3536 0.7071 0.6124 +vn 0.3536 0.7071 0.6124 +vn 0.6124 0.7071 0.3536 +vn 0.6124 0.7071 -0.3536 +vn 0.3536 -0.7071 -0.6124 +vn -0.3536 -0.7071 -0.6124 +vn -0.6124 -0.7071 -0.3536 +vn -0.6124 -0.7071 0.3536 +vn -0.3536 -0.7071 0.6124 +vn 0.3536 -0.7071 0.6124 +vn 0.6124 -0.7071 0.3536 +vn 0.6124 -0.7071 -0.3536 +vn 0.6124 -0.7071 0.3535 +s off +f 151//27 153//27 154//27 +f 155//27 158//27 156//27 +f 162//28 159//28 160//28 +f 155//29 161//29 157//29 +f 157//30 162//30 158//30 +f 158//31 160//31 156//31 +f 156//32 159//32 155//32 +f 163//27 166//27 164//27 +f 170//28 167//28 168//28 +f 163//29 169//29 165//29 +f 165//30 170//30 166//30 +f 166//31 168//31 164//31 +f 164//32 167//32 163//32 +f 171//27 174//27 172//27 +f 178//28 175//28 176//28 +f 171//29 177//29 173//29 +f 173//30 178//30 174//30 +f 174//31 176//31 172//31 +f 172//32 175//32 171//32 +f 179//27 182//27 180//27 +f 186//28 183//28 184//28 +f 179//29 185//29 181//29 +f 181//30 186//30 182//30 +f 182//31 184//31 180//31 +f 180//32 183//32 179//32 +f 189//32 154//32 153//32 +f 187//30 152//30 151//30 +f 190//28 188//28 187//28 +f 191//27 193//27 194//27 +f 197//30 194//30 193//30 +f 195//32 192//32 191//32 +f 198//28 196//28 195//28 +f 199//27 201//27 202//27 +f 205//31 202//31 201//31 +f 203//29 200//29 199//29 +f 206//28 204//28 203//28 +f 207//27 209//27 210//27 +f 213//29 210//29 209//29 +f 211//31 208//31 207//31 +f 214//28 212//28 211//28 +f 216//31 217//31 215//31 +f 217//32 219//32 215//32 +f 216//30 222//30 218//30 +f 219//29 222//29 220//29 +f 223//27 226//27 224//27 +f 230//28 227//28 228//28 +f 223//29 229//29 225//29 +f 225//30 230//30 226//30 +f 226//31 228//31 224//31 +f 224//32 227//32 223//32 +f 231//27 234//27 232//27 +f 238//28 235//28 236//28 +f 231//29 237//29 233//29 +f 233//30 238//30 234//30 +f 234//31 236//31 232//31 +f 232//32 235//32 231//32 +f 239//27 242//27 240//27 +f 246//28 243//28 244//28 +f 239//29 245//29 241//29 +f 241//30 246//30 242//30 +f 242//31 244//31 240//31 +f 240//32 243//32 239//32 +f 247//27 250//27 248//27 +f 254//28 251//28 252//28 +f 247//29 253//29 249//29 +f 249//30 254//30 250//30 +f 250//31 252//31 248//31 +f 248//32 251//32 247//32 +f 256//31 257//31 255//31 +f 257//32 259//32 255//32 +f 256//30 262//30 258//30 +f 259//29 262//29 260//29 +f 264//31 265//31 263//31 +f 265//32 267//32 263//32 +f 264//30 270//30 266//30 +f 267//29 270//29 268//29 +f 272//31 273//31 271//31 +f 273//32 275//32 271//32 +f 272//30 278//30 274//30 +f 275//29 278//29 276//29 +f 279//27 281//27 282//27 +f 285//32 282//32 281//32 +f 283//30 280//30 279//30 +f 286//28 284//28 283//28 +f 287//27 289//27 290//27 +f 293//30 290//30 289//30 +f 291//32 288//32 287//32 +f 294//28 292//28 291//28 +f 295//27 297//27 298//27 +f 301//31 298//31 297//31 +f 299//29 296//29 295//29 +f 302//28 300//28 299//28 +f 303//27 305//27 306//27 +f 309//29 306//29 305//29 +f 307//31 304//31 303//31 +f 310//28 308//28 307//28 +f 313//27 312//27 311//27 +f 317//28 315//28 316//28 +f 311//30 315//30 313//30 +f 313//31 318//31 314//31 +f 312//29 316//29 311//29 +f 314//32 317//32 312//32 +f 321//27 320//27 319//27 +f 325//28 323//28 324//28 +f 319//30 323//30 321//30 +f 321//31 326//31 322//31 +f 320//29 324//29 319//29 +f 322//32 325//32 320//32 +f 329//27 328//27 327//27 +f 333//28 331//28 332//28 +f 327//30 331//30 329//30 +f 329//31 334//31 330//31 +f 328//29 332//29 327//29 +f 330//32 333//32 328//32 +f 337//27 336//27 335//27 +f 341//28 339//28 340//28 +f 338//32 341//32 336//32 +f 335//30 339//30 337//30 +f 337//31 342//31 338//31 +f 336//29 340//29 335//29 +f 353//27 349//27 345//27 +f 367//28 371//28 360//28 +f 404//29 412//29 401//29 +f 393//32 422//32 398//32 +f 406//31 416//31 407//31 +f 397//29 420//29 400//29 +f 395//31 424//31 394//31 +f 408//32 414//32 403//32 +f 416//33 408//33 407//33 +f 404//34 414//34 413//34 +f 412//35 402//35 401//35 +f 406//36 410//36 409//36 +f 402//30 410//30 405//30 +f 424//33 393//33 394//33 +f 397//34 422//34 421//34 +f 420//35 399//35 400//35 +f 395//36 418//36 417//36 +f 399//30 418//30 396//30 +f 425//32 438//32 430//32 +f 429//29 436//29 432//29 +f 427//31 440//31 426//31 +f 440//33 425//33 426//33 +f 429//34 438//34 437//34 +f 436//35 431//35 432//35 +f 427//36 434//36 433//36 +f 431//30 434//30 428//30 +f 441//32 454//32 446//32 +f 445//29 452//29 448//29 +f 443//31 456//31 442//31 +f 456//33 441//33 442//33 +f 445//34 454//34 453//34 +f 452//35 447//35 448//35 +f 443//36 450//36 449//36 +f 447//30 450//30 444//30 +f 467//27 463//27 459//27 +f 497//28 501//28 490//28 +f 507//27 506//27 505//27 +f 508//32 511//32 506//32 +f 505//30 509//30 507//30 +f 507//31 512//31 508//31 +f 506//29 510//29 505//29 +f 515//27 514//27 513//27 +f 1402//30 525//30 1399//30 +f 525//27 1159//27 532//27 +f 519//31 532//31 522//31 +f 517//37 522//37 518//37 +f 1400//29 513//29 514//29 +f 523//28 529//28 526//28 +f 529//31 527//31 528//31 +f 526//30 528//30 515//30 +f 516//32 530//32 523//32 +f 515//27 527//27 516//27 +f 517//31 523//31 526//31 +f 513//30 517//30 526//30 +f 523//32 518//32 514//32 +f 565//28 569//28 573//28 +f 592//27 604//27 600//27 +f 389//28 585//28 584//28 +f 387//28 585//28 388//28 +f 387//28 587//28 586//28 +f 385//28 587//28 386//28 +f 384//28 588//28 385//28 +f 392//28 589//28 384//28 +f 391//28 581//28 392//28 +f 390//28 582//28 391//28 +f 607//27 381//27 383//27 +f 606//27 383//27 382//27 +f 614//27 382//27 375//27 +f 613//27 375//27 376//27 +f 612//27 376//27 377//27 +f 378//27 612//27 377//27 +f 610//27 378//27 379//27 +f 380//27 610//27 379//27 +f 390//33 608//33 583//33 +f 609//33 389//33 584//33 +f 625//27 621//27 617//27 +f 639//28 643//28 632//28 +f 665//28 669//28 673//28 +f 692//27 704//27 700//27 +f 661//28 685//28 684//28 +f 659//28 685//28 660//28 +f 659//28 687//28 686//28 +f 657//28 687//28 658//28 +f 656//28 688//28 657//28 +f 664//28 689//28 656//28 +f 663//28 681//28 664//28 +f 662//28 682//28 663//28 +f 707//27 653//27 655//27 +f 706//27 655//27 654//27 +f 714//27 654//27 647//27 +f 713//27 647//27 648//27 +f 712//27 648//27 649//27 +f 650//27 712//27 649//27 +f 710//27 650//27 651//27 +f 652//27 710//27 651//27 +f 662//33 708//33 683//33 +f 709//33 661//33 684//33 +f 725//27 721//27 717//27 +f 739//28 743//28 732//28 +f 765//28 769//28 773//28 +f 792//27 804//27 800//27 +f 761//28 785//28 784//28 +f 759//28 785//28 760//28 +f 759//28 787//28 786//28 +f 757//28 787//28 758//28 +f 756//28 788//28 757//28 +f 764//28 789//28 756//28 +f 763//28 781//28 764//28 +f 762//28 782//28 763//28 +f 807//27 753//27 755//27 +f 806//27 755//27 754//27 +f 814//27 754//27 747//27 +f 813//27 747//27 748//27 +f 812//27 748//27 749//27 +f 750//27 812//27 749//27 +f 810//27 750//27 751//27 +f 752//27 810//27 751//27 +f 762//33 808//33 783//33 +f 809//33 761//33 784//33 +f 825//27 821//27 817//27 +f 839//28 843//28 832//28 +f 865//28 869//28 873//28 +f 892//27 904//27 900//27 +f 861//28 885//28 884//28 +f 859//28 885//28 860//28 +f 859//28 887//28 886//28 +f 857//28 887//28 858//28 +f 856//28 888//28 857//28 +f 864//28 889//28 856//28 +f 863//28 881//28 864//28 +f 862//28 882//28 863//28 +f 907//27 853//27 855//27 +f 906//27 855//27 854//27 +f 914//27 854//27 847//27 +f 913//27 847//27 848//27 +f 912//27 848//27 849//27 +f 850//27 912//27 849//27 +f 910//27 850//27 851//27 +f 852//27 910//27 851//27 +f 862//33 908//33 883//33 +f 909//33 861//33 884//33 +f 980//29 981//29 979//29 +f 985//31 984//31 983//31 +f 980//32 986//32 982//32 +f 979//27 984//27 980//27 +f 981//30 983//30 979//30 +f 982//28 985//28 981//28 +f 996//30 989//30 995//30 +f 990//31 993//31 989//31 +f 994//32 998//32 993//32 +f 991//27 1003//27 987//27 +f 993//27 995//27 989//27 +f 990//28 997//28 994//28 +f 988//29 995//29 987//29 +f 991//29 997//29 992//29 +f 987//29 998//29 991//29 +f 992//29 996//29 988//29 +f 1002//28 1007//28 999//28 +f 987//30 1004//30 988//30 +f 988//28 1005//28 992//28 +f 992//32 1006//32 991//32 +f 1000//29 1003//29 999//29 +f 1002//29 1005//29 1001//29 +f 999//29 1006//29 1002//29 +f 1001//29 1004//29 1000//29 +f 1009//29 1007//29 1010//29 +f 999//32 1008//32 1000//32 +f 1000//27 1009//27 1001//27 +f 1001//30 1010//30 1002//30 +f 1028//29 1033//29 1027//29 +f 1021//29 1022//29 1018//29 +f 1026//29 1031//29 1025//29 +f 1024//29 1029//29 1030//29 +f 1038//29 1035//29 1036//29 +f 1042//29 1039//29 1040//29 +f 1046//29 1043//29 1044//29 +f 1050//29 1047//29 1048//29 +f 1060//30 1053//30 1059//30 +f 1054//31 1057//31 1053//31 +f 1058//32 1062//32 1057//32 +f 1055//27 1067//27 1051//27 +f 1057//27 1059//27 1053//27 +f 1054//28 1061//28 1058//28 +f 1052//29 1059//29 1051//29 +f 1055//29 1061//29 1056//29 +f 1051//29 1062//29 1055//29 +f 1056//29 1060//29 1052//29 +f 1066//28 1071//28 1063//28 +f 1051//30 1068//30 1052//30 +f 1052//28 1069//28 1056//28 +f 1056//32 1070//32 1055//32 +f 1064//29 1067//29 1063//29 +f 1066//29 1069//29 1065//29 +f 1063//29 1070//29 1066//29 +f 1065//29 1068//29 1064//29 +f 1073//29 1071//29 1074//29 +f 1063//32 1072//32 1064//32 +f 1064//27 1073//27 1065//27 +f 1065//30 1074//30 1066//30 +f 1092//29 1097//29 1091//29 +f 1085//29 1086//29 1082//29 +f 1090//29 1095//29 1089//29 +f 1088//29 1093//29 1094//29 +f 1102//29 1099//29 1100//29 +f 1106//29 1103//29 1104//29 +f 1110//29 1107//29 1108//29 +f 1114//29 1111//29 1112//29 +f 1122//32 1116//32 1118//32 +f 1119//30 1117//30 1115//30 +f 1121//31 1118//31 1117//31 +f 1120//29 1115//29 1116//29 +f 1160//31 1401//31 1159//31 +f 1198//32 1158//32 1197//32 +f 1161//31 1158//31 1157//31 +f 1196//30 1161//30 1157//30 +f 1198//29 1155//29 1156//29 +f 1198//38 1196//38 1195//38 +f 1196//28 1162//28 1161//28 +f 522//32 1400//32 514//32 +f 1199//30 1406//30 1202//30 +f 1449//30 524//30 1450//30 +f 532//32 1401//32 1400//32 +f 1397//27 1395//27 1393//27 +f 1199//28 1400//28 1200//28 +f 1200//28 1401//28 1201//28 +f 1201//28 1402//28 1202//28 +f 1202//28 1399//28 1199//28 +f 1404//28 1406//28 1403//28 +f 1201//32 1404//32 1200//32 +f 1202//31 1405//31 1201//31 +f 1200//29 1403//29 1199//29 +f 1421//28 1419//28 1420//28 +f 1413//28 1411//28 1412//28 +f 1410//32 1413//32 1408//32 +f 1407//30 1411//30 1409//30 +f 1409//31 1414//31 1410//31 +f 1408//29 1412//29 1407//29 +f 1418//32 1421//32 1416//32 +f 1415//30 1419//30 1417//30 +f 1417//31 1422//31 1418//31 +f 1416//29 1420//29 1415//29 +f 1429//28 1427//28 1428//28 +f 1426//32 1429//32 1424//32 +f 1423//30 1427//30 1425//30 +f 1425//31 1430//31 1426//31 +f 1424//29 1428//29 1423//29 +f 1445//28 1443//28 1444//28 +f 1437//28 1435//28 1436//28 +f 1434//32 1437//32 1432//32 +f 1431//30 1435//30 1433//30 +f 1433//31 1438//31 1434//31 +f 1432//29 1436//29 1431//29 +f 1442//32 1445//32 1440//32 +f 1439//30 1443//30 1441//30 +f 1441//31 1446//31 1442//31 +f 1440//29 1444//29 1439//29 +f 1399//30 519//30 513//30 +f 1457//32 1454//32 1458//32 +f 1458//29 1451//29 1455//29 +f 1455//30 1452//30 1456//30 +f 1456//31 1453//31 1457//31 +f 1448//28 1451//28 1447//28 +f 1450//28 1453//28 1449//28 +f 1447//28 1454//28 1450//28 +f 1449//28 1452//28 1448//28 +f 531//27 1456//27 520//27 +f 521//27 1458//27 524//27 +f 524//27 1455//27 531//27 +f 520//27 1457//27 521//27 +f 524//31 1447//31 1450//31 +f 1447//32 520//32 1448//32 +f 520//29 1449//29 1448//29 +f 1467//31 1473//31 1469//31 +f 1469//32 1474//32 1470//32 +f 1459//31 1465//31 1461//31 +f 1461//32 1466//32 1462//32 +f 1462//29 1464//29 1460//29 +f 1460//30 1463//30 1459//30 +f 1470//29 1472//29 1468//29 +f 1468//30 1471//30 1467//30 +f 1483//31 1489//31 1485//31 +f 1485//32 1490//32 1486//32 +f 1475//31 1481//31 1477//31 +f 1477//32 1482//32 1478//32 +f 1478//29 1480//29 1476//29 +f 1476//30 1479//30 1475//30 +f 1486//29 1488//29 1484//29 +f 1484//30 1487//30 1483//30 +f 1499//31 1492//31 1491//31 +f 1496//29 1501//29 1495//29 +f 1495//30 1499//30 1491//30 +f 1494//32 1506//32 1498//32 +f 1502//32 1492//32 1500//32 +f 1494//28 1499//28 1493//28 +f 1497//28 1502//28 1498//28 +f 1493//28 1501//28 1497//28 +f 1498//28 1500//28 1494//28 +f 1505//28 1504//28 1503//28 +f 1498//29 1505//29 1497//29 +f 1497//30 1503//30 1493//30 +f 1493//31 1504//31 1494//31 +f 1541//31 1540//31 1539//31 +f 1545//29 1543//29 1544//29 +f 1541//28 1546//28 1542//28 +f 1540//27 1544//27 1539//27 +f 1542//32 1545//32 1540//32 +f 1539//30 1543//30 1541//30 +f 1619//27 1617//27 1613//27 +f 1627//28 1631//28 1624//28 +f 1643//27 1641//27 1637//27 +f 1653//28 1655//28 1648//28 +f 1667//31 1673//31 1669//31 +f 1669//32 1674//32 1670//32 +f 1659//31 1665//31 1661//31 +f 1661//32 1666//32 1662//32 +f 1662//29 1664//29 1660//29 +f 1660//30 1663//30 1659//30 +f 1670//29 1672//29 1668//29 +f 1668//30 1671//30 1667//30 +f 1683//31 1689//31 1685//31 +f 1685//32 1690//32 1686//32 +f 1675//31 1681//31 1677//31 +f 1677//32 1682//32 1678//32 +f 1678//29 1680//29 1676//29 +f 1676//30 1679//30 1675//30 +f 1686//29 1688//29 1684//29 +f 1684//30 1687//30 1683//30 +f 1693//27 1692//27 1691//27 +f 1697//29 2048//29 1696//29 +f 1693//31 2046//31 1694//31 +f 1692//29 2044//29 1691//29 +f 1694//32 2045//32 1692//32 +f 1691//30 2043//30 1693//30 +f 1711//31 1724//31 1712//31 +f 1713//31 1723//31 1711//31 +f 1713//31 1726//31 1725//31 +f 1715//31 1726//31 1714//31 +f 1716//31 1727//31 1715//31 +f 1716//31 1729//31 1728//31 +f 1718//31 1729//31 1717//31 +f 1719//31 1730//31 1718//31 +f 1719//31 1732//31 1731//31 +f 1721//31 1732//31 1720//31 +f 1721//31 1734//31 1733//31 +f 1712//31 1734//31 1722//31 +f 1749//29 1783//29 1748//29 +f 1747//29 1783//29 1784//29 +f 1758//29 1784//29 1794//29 +f 1758//29 1793//29 1757//29 +f 1756//29 1793//29 1792//29 +f 1756//29 1791//29 1755//29 +f 1755//29 1790//29 1754//29 +f 1753//29 1790//29 1789//29 +f 1753//29 1788//29 1752//29 +f 1752//29 1787//29 1751//29 +f 1750//29 1787//29 1786//29 +f 1750//29 1785//29 1749//29 +f 1839//29 1837//29 1833//29 +f 1808//31 1817//31 1813//31 +f 1850//32 1844//32 1846//32 +f 1847//30 1845//30 1843//30 +f 1849//31 1846//31 1845//31 +f 1848//29 1843//29 1844//29 +f 1847//28 1850//28 1849//28 +f 1858//32 1852//32 1854//32 +f 1855//30 1853//30 1851//30 +f 1857//31 1854//31 1853//31 +f 1856//29 1851//29 1852//29 +f 1855//28 1858//28 1857//28 +f 1935//28 1933//28 1934//28 +f 1931//31 1936//31 1932//31 +f 1930//29 1934//29 1929//29 +f 1932//32 1935//32 1930//32 +f 1929//30 1933//30 1931//30 +f 1695//28 2044//28 1696//28 +f 1696//28 2045//28 1697//28 +f 1697//28 2046//28 1698//28 +f 1698//28 2043//28 1695//28 +f 2049//28 2047//28 2048//28 +f 1698//32 2049//32 1697//32 +f 1696//30 2047//30 1695//30 +f 1695//31 2050//31 1698//31 +f 2051//27 2053//27 2054//27 +f 2055//27 2058//27 2056//27 +f 2062//28 2059//28 2060//28 +f 2055//29 2061//29 2057//29 +f 2057//30 2062//30 2058//30 +f 2058//31 2060//31 2056//31 +f 2056//32 2059//32 2055//32 +f 2063//27 2066//27 2064//27 +f 2070//28 2067//28 2068//28 +f 2063//29 2069//29 2065//29 +f 2065//30 2070//30 2066//30 +f 2066//31 2068//31 2064//31 +f 2064//32 2067//32 2063//32 +f 2071//27 2074//27 2072//27 +f 2078//28 2075//28 2076//28 +f 2071//29 2077//29 2073//29 +f 2073//30 2078//30 2074//30 +f 2074//31 2076//31 2072//31 +f 2072//32 2075//32 2071//32 +f 2079//27 2082//27 2080//27 +f 2086//28 2083//28 2084//28 +f 2079//29 2085//29 2081//29 +f 2081//30 2086//30 2082//30 +f 2082//31 2084//31 2080//31 +f 2080//32 2083//32 2079//32 +f 2089//32 2054//32 2053//32 +f 2087//30 2052//30 2051//30 +f 2090//28 2088//28 2087//28 +f 2091//27 2093//27 2094//27 +f 2097//30 2094//30 2093//30 +f 2095//32 2092//32 2091//32 +f 2098//28 2096//28 2095//28 +f 2099//27 2101//27 2102//27 +f 2105//31 2102//31 2101//31 +f 2103//29 2100//29 2099//29 +f 2106//28 2104//28 2103//28 +f 2107//27 2109//27 2110//27 +f 2113//29 2110//29 2109//29 +f 2111//31 2108//31 2107//31 +f 2114//28 2112//28 2111//28 +f 2116//31 2117//31 2115//31 +f 2117//32 2119//32 2115//32 +f 2116//30 2122//30 2118//30 +f 2119//29 2122//29 2120//29 +f 2123//27 2126//27 2124//27 +f 2130//28 2127//28 2128//28 +f 2123//29 2129//29 2125//29 +f 2125//30 2130//30 2126//30 +f 2126//31 2128//31 2124//31 +f 2124//32 2127//32 2123//32 +f 2131//27 2134//27 2132//27 +f 2138//28 2135//28 2136//28 +f 2131//29 2137//29 2133//29 +f 2133//30 2138//30 2134//30 +f 2134//31 2136//31 2132//31 +f 2132//32 2135//32 2131//32 +f 2139//27 2142//27 2140//27 +f 2146//28 2143//28 2144//28 +f 2139//29 2145//29 2141//29 +f 2141//30 2146//30 2142//30 +f 2142//31 2144//31 2140//31 +f 2140//32 2143//32 2139//32 +f 2147//27 2150//27 2148//27 +f 2154//28 2151//28 2152//28 +f 2147//29 2153//29 2149//29 +f 2149//30 2154//30 2150//30 +f 2150//31 2152//31 2148//31 +f 2148//32 2151//32 2147//32 +f 2156//31 2157//31 2155//31 +f 2157//32 2159//32 2155//32 +f 2156//30 2162//30 2158//30 +f 2159//29 2162//29 2160//29 +f 2164//31 2165//31 2163//31 +f 2165//32 2167//32 2163//32 +f 2164//30 2170//30 2166//30 +f 2167//29 2170//29 2168//29 +f 2172//31 2173//31 2171//31 +f 2173//32 2175//32 2171//32 +f 2172//30 2178//30 2174//30 +f 2175//29 2178//29 2176//29 +f 2179//27 2181//27 2182//27 +f 2185//32 2182//32 2181//32 +f 2183//30 2180//30 2179//30 +f 2186//28 2184//28 2183//28 +f 2187//27 2189//27 2190//27 +f 2193//30 2190//30 2189//30 +f 2191//32 2188//32 2187//32 +f 2194//28 2192//28 2191//28 +f 2195//27 2197//27 2198//27 +f 2201//31 2198//31 2197//31 +f 2199//29 2196//29 2195//29 +f 2202//28 2200//28 2199//28 +f 2203//27 2205//27 2206//27 +f 2209//29 2206//29 2205//29 +f 2207//31 2204//31 2203//31 +f 2210//28 2208//28 2207//28 +f 2213//27 2212//27 2211//27 +f 2217//28 2215//28 2216//28 +f 2211//30 2215//30 2213//30 +f 2213//31 2218//31 2214//31 +f 2212//29 2216//29 2211//29 +f 2214//32 2217//32 2212//32 +f 2221//27 2220//27 2219//27 +f 2225//28 2223//28 2224//28 +f 2219//30 2223//30 2221//30 +f 2221//31 2226//31 2222//31 +f 2220//29 2224//29 2219//29 +f 2222//32 2225//32 2220//32 +f 2229//27 2228//27 2227//27 +f 2233//28 2231//28 2232//28 +f 2227//30 2231//30 2229//30 +f 2229//31 2234//31 2230//31 +f 2228//29 2232//29 2227//29 +f 2230//32 2233//32 2228//32 +f 2237//27 2236//27 2235//27 +f 2313//28 2303//28 2307//28 +f 2238//32 2241//32 2236//32 +f 2235//30 2239//30 2237//30 +f 2237//31 2242//31 2238//31 +f 2236//29 2240//29 2235//29 +f 2251//27 2249//27 2245//27 +f 2259//28 2263//28 2256//28 +f 2267//28 2287//28 2269//28 +f 2268//28 2285//28 2267//28 +f 2302//27 2271//27 2272//27 +f 2300//27 2270//27 2271//27 +f 2269//39 2302//39 2272//39 +f 2301//40 2268//40 2270//40 +f 2283//28 2273//28 2277//28 +f 2292//27 2290//27 2298//27 +f 2319//27 2317//27 2325//27 +f 2469//28 2459//28 2463//28 +f 2407//27 2405//27 2401//27 +f 2415//28 2419//28 2412//28 +f 2423//28 2443//28 2425//28 +f 2424//28 2441//28 2423//28 +f 2458//27 2427//27 2428//27 +f 2456//27 2426//27 2427//27 +f 2425//39 2458//39 2428//39 +f 2457//40 2424//40 2426//40 +f 2439//28 2429//28 2433//28 +f 2448//27 2446//27 2454//27 +f 2475//27 2473//27 2481//27 +f 2625//28 2615//28 2619//28 +f 2563//27 2561//27 2557//27 +f 2571//28 2575//28 2568//28 +f 2579//28 2599//28 2581//28 +f 2580//28 2597//28 2579//28 +f 2614//27 2583//27 2584//27 +f 2612//27 2582//27 2583//27 +f 2581//39 2614//39 2584//39 +f 2613//40 2580//40 2582//40 +f 2595//28 2585//28 2589//28 +f 2604//27 2602//27 2610//27 +f 2631//27 2629//27 2637//27 +f 2781//28 2771//28 2775//28 +f 2719//27 2717//27 2713//27 +f 2727//28 2731//28 2724//28 +f 2735//28 2755//28 2737//28 +f 2736//28 2753//28 2735//28 +f 2770//27 2739//27 2740//27 +f 2768//27 2738//27 2739//27 +f 2737//39 2770//39 2740//39 +f 2769//40 2736//40 2738//40 +f 2751//28 2741//28 2745//28 +f 2760//27 2758//27 2766//27 +f 2787//27 2785//27 2793//27 +f 2965//27 2964//27 2963//27 +f 2969//28 2967//28 2968//28 +f 2963//30 2967//30 2965//30 +f 2965//31 2970//31 2966//31 +f 2964//29 2968//29 2963//29 +f 2966//32 2969//32 2964//32 +f 2973//27 2972//27 2971//27 +f 2977//28 2975//28 2976//28 +f 2974//32 2977//32 2972//32 +f 2971//30 2975//30 2973//30 +f 2973//31 2978//31 2974//31 +f 2972//29 2976//29 2971//29 +f 2989//27 2985//27 2981//27 +f 3003//28 3007//28 2996//28 +f 3013//27 3014//27 3011//27 +f 3017//28 3020//28 3022//28 +f 3015//32 3021//32 3016//32 +f 3012//29 3018//29 3011//29 +f 3014//32 3019//32 3012//32 +f 3011//30 3017//30 3013//30 +f 3016//29 3020//29 3014//29 +f 3013//31 3022//31 3015//31 +f 151//27 152//27 153//27 +f 155//27 157//27 158//27 +f 162//28 161//28 159//28 +f 155//29 159//29 161//29 +f 157//30 161//30 162//30 +f 158//31 162//31 160//31 +f 156//32 160//32 159//32 +f 163//27 165//27 166//27 +f 170//28 169//28 167//28 +f 163//29 167//29 169//29 +f 165//30 169//30 170//30 +f 166//31 170//31 168//31 +f 164//32 168//32 167//32 +f 171//27 173//27 174//27 +f 178//28 177//28 175//28 +f 171//29 175//29 177//29 +f 173//30 177//30 178//30 +f 174//31 178//31 176//31 +f 172//32 176//32 175//32 +f 179//27 181//27 182//27 +f 186//28 185//28 183//28 +f 179//29 183//29 185//29 +f 181//30 185//30 186//30 +f 182//31 186//31 184//31 +f 180//32 184//32 183//32 +f 189//32 190//32 154//32 +f 187//30 188//30 152//30 +f 190//28 189//28 188//28 +f 191//27 192//27 193//27 +f 197//30 198//30 194//30 +f 195//32 196//32 192//32 +f 198//28 197//28 196//28 +f 199//27 200//27 201//27 +f 205//31 206//31 202//31 +f 203//29 204//29 200//29 +f 206//28 205//28 204//28 +f 207//27 208//27 209//27 +f 213//29 214//29 210//29 +f 211//31 212//31 208//31 +f 214//28 213//28 212//28 +f 216//31 218//31 217//31 +f 217//32 221//32 219//32 +f 216//30 220//30 222//30 +f 219//29 221//29 222//29 +f 223//27 225//27 226//27 +f 230//28 229//28 227//28 +f 223//29 227//29 229//29 +f 225//30 229//30 230//30 +f 226//31 230//31 228//31 +f 224//32 228//32 227//32 +f 231//27 233//27 234//27 +f 238//28 237//28 235//28 +f 231//29 235//29 237//29 +f 233//30 237//30 238//30 +f 234//31 238//31 236//31 +f 232//32 236//32 235//32 +f 239//27 241//27 242//27 +f 246//28 245//28 243//28 +f 239//29 243//29 245//29 +f 241//30 245//30 246//30 +f 242//31 246//31 244//31 +f 240//32 244//32 243//32 +f 247//27 249//27 250//27 +f 254//28 253//28 251//28 +f 247//29 251//29 253//29 +f 249//30 253//30 254//30 +f 250//31 254//31 252//31 +f 248//32 252//32 251//32 +f 256//31 258//31 257//31 +f 257//32 261//32 259//32 +f 256//30 260//30 262//30 +f 259//29 261//29 262//29 +f 264//31 266//31 265//31 +f 265//32 269//32 267//32 +f 264//30 268//30 270//30 +f 267//29 269//29 270//29 +f 272//31 274//31 273//31 +f 273//32 277//32 275//32 +f 272//30 276//30 278//30 +f 275//29 277//29 278//29 +f 279//27 280//27 281//27 +f 285//32 286//32 282//32 +f 283//30 284//30 280//30 +f 286//28 285//28 284//28 +f 287//27 288//27 289//27 +f 293//30 294//30 290//30 +f 291//32 292//32 288//32 +f 294//28 293//28 292//28 +f 295//27 296//27 297//27 +f 301//31 302//31 298//31 +f 299//29 300//29 296//29 +f 302//28 301//28 300//28 +f 303//27 304//27 305//27 +f 309//29 310//29 306//29 +f 307//31 308//31 304//31 +f 310//28 309//28 308//28 +f 313//27 314//27 312//27 +f 317//28 318//28 315//28 +f 311//30 316//30 315//30 +f 313//31 315//31 318//31 +f 312//29 317//29 316//29 +f 314//32 318//32 317//32 +f 321//27 322//27 320//27 +f 325//28 326//28 323//28 +f 319//30 324//30 323//30 +f 321//31 323//31 326//31 +f 320//29 325//29 324//29 +f 322//32 326//32 325//32 +f 329//27 330//27 328//27 +f 333//28 334//28 331//28 +f 327//30 332//30 331//30 +f 329//31 331//31 334//31 +f 328//29 333//29 332//29 +f 330//32 334//32 333//32 +f 337//27 338//27 336//27 +f 341//28 342//28 339//28 +f 338//32 342//32 341//32 +f 335//30 340//30 339//30 +f 337//31 339//31 342//31 +f 336//29 341//29 340//29 +f 345//27 344//27 343//27 +f 343//27 358//27 345//27 +f 358//27 357//27 345//27 +f 357//27 356//27 355//27 +f 355//27 354//27 353//27 +f 353//27 352//27 349//27 +f 352//27 351//27 349//27 +f 351//27 350//27 349//27 +f 349//27 348//27 347//27 +f 347//27 346//27 349//27 +f 346//27 345//27 349//27 +f 357//27 355//27 345//27 +f 355//27 353//27 345//27 +f 360//28 359//28 363//28 +f 359//28 361//28 363//28 +f 361//28 362//28 363//28 +f 363//28 364//28 365//28 +f 365//28 366//28 367//28 +f 367//28 368//28 371//28 +f 368//28 369//28 371//28 +f 369//28 370//28 371//28 +f 371//28 372//28 373//28 +f 373//28 374//28 371//28 +f 374//28 360//28 371//28 +f 363//28 365//28 360//28 +f 365//28 367//28 360//28 +f 404//29 413//29 412//29 +f 393//32 423//32 422//32 +f 406//31 409//31 416//31 +f 397//29 421//29 420//29 +f 395//31 417//31 424//31 +f 408//32 415//32 414//32 +f 416//33 415//33 408//33 +f 404//34 403//34 414//34 +f 412//35 411//35 402//35 +f 406//36 405//36 410//36 +f 402//30 411//30 410//30 +f 424//33 423//33 393//33 +f 397//34 398//34 422//34 +f 420//35 419//35 399//35 +f 395//36 396//36 418//36 +f 399//30 419//30 418//30 +f 425//32 439//32 438//32 +f 429//29 437//29 436//29 +f 427//31 433//31 440//31 +f 440//33 439//33 425//33 +f 429//34 430//34 438//34 +f 436//35 435//35 431//35 +f 427//36 428//36 434//36 +f 431//30 435//30 434//30 +f 441//32 455//32 454//32 +f 445//29 453//29 452//29 +f 443//31 449//31 456//31 +f 456//33 455//33 441//33 +f 445//34 446//34 454//34 +f 452//35 451//35 447//35 +f 443//36 444//36 450//36 +f 447//30 451//30 450//30 +f 459//27 458//27 457//27 +f 457//27 472//27 459//27 +f 472//27 471//27 459//27 +f 471//27 470//27 469//27 +f 469//27 468//27 467//27 +f 467//27 466//27 463//27 +f 466//27 465//27 463//27 +f 465//27 464//27 463//27 +f 463//27 462//27 461//27 +f 461//27 460//27 463//27 +f 460//27 459//27 463//27 +f 471//27 469//27 459//27 +f 469//27 467//27 459//27 +f 490//28 489//28 493//28 +f 489//28 491//28 493//28 +f 491//28 492//28 493//28 +f 493//28 494//28 495//28 +f 495//28 496//28 493//28 +f 496//28 497//28 493//28 +f 497//28 498//28 501//28 +f 498//28 499//28 501//28 +f 499//28 500//28 501//28 +f 501//28 502//28 503//28 +f 503//28 504//28 501//28 +f 504//28 490//28 501//28 +f 490//28 493//28 497//28 +f 507//27 508//27 506//27 +f 508//32 512//32 511//32 +f 505//30 510//30 509//30 +f 507//31 509//31 512//31 +f 506//29 511//29 510//29 +f 515//27 516//27 514//27 +f 1402//30 1160//30 525//30 +f 525//27 1160//27 1159//27 +f 519//31 525//31 532//31 +f 517//37 519//37 522//37 +f 1400//29 1399//29 513//29 +f 523//28 530//28 529//28 +f 529//31 530//31 527//31 +f 526//30 529//30 528//30 +f 516//32 527//32 530//32 +f 515//27 528//27 527//27 +f 517//31 518//31 523//31 +f 526//30 515//30 513//30 +f 513//30 519//30 517//30 +f 522//32 514//32 518//32 +f 514//32 516//32 523//32 +f 565//28 566//28 567//28 +f 567//28 568//28 565//28 +f 568//28 569//28 565//28 +f 569//28 570//28 573//28 +f 570//28 571//28 573//28 +f 571//28 572//28 573//28 +f 573//28 574//28 575//28 +f 575//28 576//28 577//28 +f 577//28 578//28 579//28 +f 579//28 580//28 565//28 +f 573//28 575//28 565//28 +f 575//28 577//28 565//28 +f 577//28 579//28 565//28 +f 592//27 591//27 604//27 +f 591//27 590//27 604//27 +f 590//27 605//27 604//27 +f 604//27 603//27 602//27 +f 602//27 601//27 600//27 +f 600//27 599//27 598//27 +f 598//27 597//27 600//27 +f 597//27 596//27 600//27 +f 596//27 595//27 594//27 +f 594//27 593//27 592//27 +f 604//27 602//27 600//27 +f 596//27 594//27 600//27 +f 594//27 592//27 600//27 +f 389//28 388//28 585//28 +f 387//28 586//28 585//28 +f 387//28 386//28 587//28 +f 385//28 588//28 587//28 +f 384//28 589//28 588//28 +f 392//28 581//28 589//28 +f 391//28 582//28 581//28 +f 390//28 583//28 582//28 +f 607//27 608//27 381//27 +f 606//27 607//27 383//27 +f 614//27 606//27 382//27 +f 613//27 614//27 375//27 +f 612//27 613//27 376//27 +f 378//27 611//27 612//27 +f 610//27 611//27 378//27 +f 380//27 609//27 610//27 +f 390//33 381//33 608//33 +f 609//33 380//33 389//33 +f 617//27 616//27 615//27 +f 615//27 630//27 617//27 +f 630//27 629//27 617//27 +f 629//27 628//27 627//27 +f 627//27 626//27 625//27 +f 625//27 624//27 621//27 +f 624//27 623//27 621//27 +f 623//27 622//27 621//27 +f 621//27 620//27 619//27 +f 619//27 618//27 621//27 +f 618//27 617//27 621//27 +f 629//27 627//27 617//27 +f 627//27 625//27 617//27 +f 632//28 631//28 635//28 +f 631//28 633//28 635//28 +f 633//28 634//28 635//28 +f 635//28 636//28 637//28 +f 637//28 638//28 639//28 +f 639//28 640//28 643//28 +f 640//28 641//28 643//28 +f 641//28 642//28 643//28 +f 643//28 644//28 645//28 +f 645//28 646//28 643//28 +f 646//28 632//28 643//28 +f 635//28 637//28 632//28 +f 637//28 639//28 632//28 +f 665//28 666//28 667//28 +f 667//28 668//28 665//28 +f 668//28 669//28 665//28 +f 669//28 670//28 673//28 +f 670//28 671//28 673//28 +f 671//28 672//28 673//28 +f 673//28 674//28 675//28 +f 675//28 676//28 677//28 +f 677//28 678//28 679//28 +f 679//28 680//28 665//28 +f 673//28 675//28 665//28 +f 675//28 677//28 665//28 +f 677//28 679//28 665//28 +f 692//27 691//27 704//27 +f 691//27 690//27 704//27 +f 690//27 705//27 704//27 +f 704//27 703//27 702//27 +f 702//27 701//27 700//27 +f 700//27 699//27 698//27 +f 698//27 697//27 700//27 +f 697//27 696//27 700//27 +f 696//27 695//27 694//27 +f 694//27 693//27 692//27 +f 704//27 702//27 700//27 +f 696//27 694//27 700//27 +f 694//27 692//27 700//27 +f 661//28 660//28 685//28 +f 659//28 686//28 685//28 +f 659//28 658//28 687//28 +f 657//28 688//28 687//28 +f 656//28 689//28 688//28 +f 664//28 681//28 689//28 +f 663//28 682//28 681//28 +f 662//28 683//28 682//28 +f 707//27 708//27 653//27 +f 706//27 707//27 655//27 +f 714//27 706//27 654//27 +f 713//27 714//27 647//27 +f 712//27 713//27 648//27 +f 650//27 711//27 712//27 +f 710//27 711//27 650//27 +f 652//27 709//27 710//27 +f 662//33 653//33 708//33 +f 709//33 652//33 661//33 +f 717//27 716//27 715//27 +f 715//27 730//27 717//27 +f 730//27 729//27 717//27 +f 729//27 728//27 727//27 +f 727//27 726//27 725//27 +f 725//27 724//27 721//27 +f 724//27 723//27 721//27 +f 723//27 722//27 721//27 +f 721//27 720//27 719//27 +f 719//27 718//27 721//27 +f 718//27 717//27 721//27 +f 729//27 727//27 717//27 +f 727//27 725//27 717//27 +f 732//28 731//28 735//28 +f 731//28 733//28 735//28 +f 733//28 734//28 735//28 +f 735//28 736//28 737//28 +f 737//28 738//28 739//28 +f 739//28 740//28 743//28 +f 740//28 741//28 743//28 +f 741//28 742//28 743//28 +f 743//28 744//28 745//28 +f 745//28 746//28 743//28 +f 746//28 732//28 743//28 +f 735//28 737//28 732//28 +f 737//28 739//28 732//28 +f 765//28 766//28 767//28 +f 767//28 768//28 765//28 +f 768//28 769//28 765//28 +f 769//28 770//28 773//28 +f 770//28 771//28 773//28 +f 771//28 772//28 773//28 +f 773//28 774//28 775//28 +f 775//28 776//28 777//28 +f 777//28 778//28 779//28 +f 779//28 780//28 765//28 +f 773//28 775//28 765//28 +f 775//28 777//28 765//28 +f 777//28 779//28 765//28 +f 792//27 791//27 804//27 +f 791//27 790//27 804//27 +f 790//27 805//27 804//27 +f 804//27 803//27 802//27 +f 802//27 801//27 800//27 +f 800//27 799//27 798//27 +f 798//27 797//27 800//27 +f 797//27 796//27 800//27 +f 796//27 795//27 794//27 +f 794//27 793//27 792//27 +f 804//27 802//27 800//27 +f 796//27 794//27 800//27 +f 794//27 792//27 800//27 +f 761//28 760//28 785//28 +f 759//28 786//28 785//28 +f 759//28 758//28 787//28 +f 757//28 788//28 787//28 +f 756//28 789//28 788//28 +f 764//28 781//28 789//28 +f 763//28 782//28 781//28 +f 762//28 783//28 782//28 +f 807//27 808//27 753//27 +f 806//27 807//27 755//27 +f 814//27 806//27 754//27 +f 813//27 814//27 747//27 +f 812//27 813//27 748//27 +f 750//27 811//27 812//27 +f 810//27 811//27 750//27 +f 752//27 809//27 810//27 +f 762//33 753//33 808//33 +f 809//33 752//33 761//33 +f 817//27 816//27 815//27 +f 815//27 830//27 817//27 +f 830//27 829//27 817//27 +f 829//27 828//27 827//27 +f 827//27 826//27 825//27 +f 825//27 824//27 821//27 +f 824//27 823//27 821//27 +f 823//27 822//27 821//27 +f 821//27 820//27 819//27 +f 819//27 818//27 821//27 +f 818//27 817//27 821//27 +f 829//27 827//27 817//27 +f 827//27 825//27 817//27 +f 832//28 831//28 835//28 +f 831//28 833//28 835//28 +f 833//28 834//28 835//28 +f 835//28 836//28 837//28 +f 837//28 838//28 839//28 +f 839//28 840//28 843//28 +f 840//28 841//28 843//28 +f 841//28 842//28 843//28 +f 843//28 844//28 845//28 +f 845//28 846//28 843//28 +f 846//28 832//28 843//28 +f 835//28 837//28 832//28 +f 837//28 839//28 832//28 +f 865//28 866//28 867//28 +f 867//28 868//28 865//28 +f 868//28 869//28 865//28 +f 869//28 870//28 873//28 +f 870//28 871//28 873//28 +f 871//28 872//28 873//28 +f 873//28 874//28 875//28 +f 875//28 876//28 877//28 +f 877//28 878//28 879//28 +f 879//28 880//28 865//28 +f 873//28 875//28 865//28 +f 875//28 877//28 865//28 +f 877//28 879//28 865//28 +f 892//27 891//27 904//27 +f 891//27 890//27 904//27 +f 890//27 905//27 904//27 +f 904//27 903//27 902//27 +f 902//27 901//27 900//27 +f 900//27 899//27 898//27 +f 898//27 897//27 900//27 +f 897//27 896//27 900//27 +f 896//27 895//27 894//27 +f 894//27 893//27 892//27 +f 904//27 902//27 900//27 +f 896//27 894//27 900//27 +f 894//27 892//27 900//27 +f 861//28 860//28 885//28 +f 859//28 886//28 885//28 +f 859//28 858//28 887//28 +f 857//28 888//28 887//28 +f 856//28 889//28 888//28 +f 864//28 881//28 889//28 +f 863//28 882//28 881//28 +f 862//28 883//28 882//28 +f 907//27 908//27 853//27 +f 906//27 907//27 855//27 +f 914//27 906//27 854//27 +f 913//27 914//27 847//27 +f 912//27 913//27 848//27 +f 850//27 911//27 912//27 +f 910//27 911//27 850//27 +f 852//27 909//27 910//27 +f 862//33 853//33 908//33 +f 909//33 852//33 861//33 +f 980//29 982//29 981//29 +f 985//31 986//31 984//31 +f 980//32 984//32 986//32 +f 979//27 983//27 984//27 +f 981//30 985//30 983//30 +f 982//28 986//28 985//28 +f 996//30 990//30 989//30 +f 990//31 994//31 993//31 +f 994//32 997//32 998//32 +f 991//27 1006//27 1003//27 +f 993//27 998//27 995//27 +f 990//28 996//28 997//28 +f 988//29 996//29 995//29 +f 991//29 998//29 997//29 +f 987//29 995//29 998//29 +f 992//29 997//29 996//29 +f 1002//28 1010//28 1007//28 +f 987//30 1003//30 1004//30 +f 988//28 1004//28 1005//28 +f 992//32 1005//32 1006//32 +f 1000//29 1004//29 1003//29 +f 1002//29 1006//29 1005//29 +f 999//29 1003//29 1006//29 +f 1001//29 1005//29 1004//29 +f 1009//29 1008//29 1007//29 +f 999//32 1007//32 1008//32 +f 1000//27 1008//27 1009//27 +f 1001//30 1009//30 1010//30 +f 1028//29 1034//29 1033//29 +f 1018//29 1017//29 1019//29 +f 1019//29 1020//29 1018//29 +f 1020//29 1021//29 1018//29 +f 1026//29 1032//29 1031//29 +f 1024//29 1023//29 1029//29 +f 1038//29 1037//29 1035//29 +f 1042//29 1041//29 1039//29 +f 1046//29 1045//29 1043//29 +f 1050//29 1049//29 1047//29 +f 1060//30 1054//30 1053//30 +f 1054//31 1058//31 1057//31 +f 1058//32 1061//32 1062//32 +f 1055//27 1070//27 1067//27 +f 1057//27 1062//27 1059//27 +f 1054//28 1060//28 1061//28 +f 1052//29 1060//29 1059//29 +f 1055//29 1062//29 1061//29 +f 1051//29 1059//29 1062//29 +f 1056//29 1061//29 1060//29 +f 1066//28 1074//28 1071//28 +f 1051//30 1067//30 1068//30 +f 1052//28 1068//28 1069//28 +f 1056//32 1069//32 1070//32 +f 1064//29 1068//29 1067//29 +f 1066//29 1070//29 1069//29 +f 1063//29 1067//29 1070//29 +f 1065//29 1069//29 1068//29 +f 1073//29 1072//29 1071//29 +f 1063//32 1071//32 1072//32 +f 1064//27 1072//27 1073//27 +f 1065//30 1073//30 1074//30 +f 1092//29 1098//29 1097//29 +f 1082//29 1081//29 1083//29 +f 1083//29 1084//29 1082//29 +f 1084//29 1085//29 1082//29 +f 1090//29 1096//29 1095//29 +f 1088//29 1087//29 1093//29 +f 1102//29 1101//29 1099//29 +f 1106//29 1105//29 1103//29 +f 1110//29 1109//29 1107//29 +f 1114//29 1113//29 1111//29 +f 1122//32 1120//32 1116//32 +f 1119//30 1121//30 1117//30 +f 1121//31 1122//31 1118//31 +f 1120//29 1119//29 1115//29 +f 1160//31 1402//31 1401//31 +f 1156//32 1158//32 1198//32 +f 1158//32 1162//32 1197//32 +f 1161//31 1162//31 1158//31 +f 1157//30 1155//30 1195//30 +f 1195//30 1196//30 1157//30 +f 1198//29 1195//29 1155//29 +f 1198//38 1197//38 1196//38 +f 1196//28 1197//28 1162//28 +f 522//32 532//32 1400//32 +f 1199//30 1403//30 1406//30 +f 1449//30 521//30 524//30 +f 532//32 1159//32 1401//32 +f 1393//27 1392//27 1391//27 +f 1391//27 1398//27 1397//27 +f 1397//27 1396//27 1395//27 +f 1395//27 1394//27 1393//27 +f 1393//27 1391//27 1397//27 +f 1199//28 1399//28 1400//28 +f 1200//28 1400//28 1401//28 +f 1201//28 1401//28 1402//28 +f 1202//28 1402//28 1399//28 +f 1404//28 1405//28 1406//28 +f 1201//32 1405//32 1404//32 +f 1202//31 1406//31 1405//31 +f 1200//29 1404//29 1403//29 +f 1421//28 1422//28 1419//28 +f 1413//28 1414//28 1411//28 +f 1410//32 1414//32 1413//32 +f 1407//30 1412//30 1411//30 +f 1409//31 1411//31 1414//31 +f 1408//29 1413//29 1412//29 +f 1418//32 1422//32 1421//32 +f 1415//30 1420//30 1419//30 +f 1417//31 1419//31 1422//31 +f 1416//29 1421//29 1420//29 +f 1429//28 1430//28 1427//28 +f 1426//32 1430//32 1429//32 +f 1423//30 1428//30 1427//30 +f 1425//31 1427//31 1430//31 +f 1424//29 1429//29 1428//29 +f 1445//28 1446//28 1443//28 +f 1437//28 1438//28 1435//28 +f 1434//32 1438//32 1437//32 +f 1431//30 1436//30 1435//30 +f 1433//31 1435//31 1438//31 +f 1432//29 1437//29 1436//29 +f 1442//32 1446//32 1445//32 +f 1439//30 1444//30 1443//30 +f 1441//31 1443//31 1446//31 +f 1440//29 1445//29 1444//29 +f 1399//30 525//30 519//30 +f 1457//32 1453//32 1454//32 +f 1458//29 1454//29 1451//29 +f 1455//30 1451//30 1452//30 +f 1456//31 1452//31 1453//31 +f 1448//28 1452//28 1451//28 +f 1450//28 1454//28 1453//28 +f 1447//28 1451//28 1454//28 +f 1449//28 1453//28 1452//28 +f 531//27 1455//27 1456//27 +f 521//27 1457//27 1458//27 +f 524//27 1458//27 1455//27 +f 520//27 1456//27 1457//27 +f 524//31 531//31 1447//31 +f 1447//32 531//32 520//32 +f 520//29 521//29 1449//29 +f 1467//31 1471//31 1473//31 +f 1469//32 1473//32 1474//32 +f 1459//31 1463//31 1465//31 +f 1461//32 1465//32 1466//32 +f 1462//29 1466//29 1464//29 +f 1460//30 1464//30 1463//30 +f 1470//29 1474//29 1472//29 +f 1468//30 1472//30 1471//30 +f 1483//31 1487//31 1489//31 +f 1485//32 1489//32 1490//32 +f 1475//31 1479//31 1481//31 +f 1477//32 1481//32 1482//32 +f 1478//29 1482//29 1480//29 +f 1476//30 1480//30 1479//30 +f 1486//29 1490//29 1488//29 +f 1484//30 1488//30 1487//30 +f 1499//31 1500//31 1492//31 +f 1496//29 1502//29 1501//29 +f 1495//30 1501//30 1499//30 +f 1494//32 1504//32 1506//32 +f 1502//32 1496//32 1492//32 +f 1494//28 1500//28 1499//28 +f 1497//28 1501//28 1502//28 +f 1493//28 1499//28 1501//28 +f 1498//28 1502//28 1500//28 +f 1505//28 1506//28 1504//28 +f 1498//29 1506//29 1505//29 +f 1497//30 1505//30 1503//30 +f 1493//31 1503//31 1504//31 +f 1541//31 1542//31 1540//31 +f 1545//29 1546//29 1543//29 +f 1541//28 1543//28 1546//28 +f 1540//27 1545//27 1544//27 +f 1542//32 1546//32 1545//32 +f 1539//30 1544//30 1543//30 +f 1613//27 1612//27 1611//27 +f 1611//27 1622//27 1613//27 +f 1622//27 1621//27 1613//27 +f 1621//27 1620//27 1619//27 +f 1619//27 1618//27 1617//27 +f 1617//27 1616//27 1615//27 +f 1615//27 1614//27 1617//27 +f 1614//27 1613//27 1617//27 +f 1621//27 1619//27 1613//27 +f 1624//28 1623//28 1625//28 +f 1625//28 1626//28 1624//28 +f 1626//28 1627//28 1624//28 +f 1627//28 1628//28 1629//28 +f 1629//28 1630//28 1627//28 +f 1630//28 1631//28 1627//28 +f 1631//28 1632//28 1624//28 +f 1632//28 1633//28 1624//28 +f 1633//28 1634//28 1624//28 +f 1637//27 1636//27 1635//27 +f 1635//27 1646//27 1637//27 +f 1646//27 1645//27 1637//27 +f 1645//27 1644//27 1643//27 +f 1643//27 1642//27 1641//27 +f 1641//27 1640//27 1639//27 +f 1639//27 1638//27 1641//27 +f 1638//27 1637//27 1641//27 +f 1645//27 1643//27 1637//27 +f 1648//28 1647//28 1649//28 +f 1649//28 1650//28 1648//28 +f 1650//28 1651//28 1648//28 +f 1651//28 1652//28 1653//28 +f 1653//28 1654//28 1655//28 +f 1655//28 1656//28 1657//28 +f 1657//28 1658//28 1655//28 +f 1658//28 1648//28 1655//28 +f 1651//28 1653//28 1648//28 +f 1667//31 1671//31 1673//31 +f 1669//32 1673//32 1674//32 +f 1659//31 1663//31 1665//31 +f 1661//32 1665//32 1666//32 +f 1662//29 1666//29 1664//29 +f 1660//30 1664//30 1663//30 +f 1670//29 1674//29 1672//29 +f 1668//30 1672//30 1671//30 +f 1683//31 1687//31 1689//31 +f 1685//32 1689//32 1690//32 +f 1675//31 1679//31 1681//31 +f 1677//32 1681//32 1682//32 +f 1678//29 1682//29 1680//29 +f 1676//30 1680//30 1679//30 +f 1686//29 1690//29 1688//29 +f 1684//30 1688//30 1687//30 +f 1693//27 1694//27 1692//27 +f 1697//29 2049//29 2048//29 +f 1693//31 2043//31 2046//31 +f 1692//29 2045//29 2044//29 +f 1694//32 2046//32 2045//32 +f 1691//30 2044//30 2043//30 +f 1711//31 1723//31 1724//31 +f 1713//31 1725//31 1723//31 +f 1713//31 1714//31 1726//31 +f 1715//31 1727//31 1726//31 +f 1716//31 1728//31 1727//31 +f 1716//31 1717//31 1729//31 +f 1718//31 1730//31 1729//31 +f 1719//31 1731//31 1730//31 +f 1719//31 1720//31 1732//31 +f 1721//31 1733//31 1732//31 +f 1721//31 1722//31 1734//31 +f 1712//31 1724//31 1734//31 +f 1749//29 1785//29 1783//29 +f 1747//29 1748//29 1783//29 +f 1758//29 1747//29 1784//29 +f 1758//29 1794//29 1793//29 +f 1756//29 1757//29 1793//29 +f 1756//29 1792//29 1791//29 +f 1755//29 1791//29 1790//29 +f 1753//29 1754//29 1790//29 +f 1753//29 1789//29 1788//29 +f 1752//29 1788//29 1787//29 +f 1750//29 1751//29 1787//29 +f 1750//29 1786//29 1785//29 +f 1833//29 1831//29 1832//29 +f 1832//29 1842//29 1833//29 +f 1842//29 1841//29 1833//29 +f 1841//29 1840//29 1839//29 +f 1839//29 1838//29 1837//29 +f 1837//29 1836//29 1835//29 +f 1835//29 1834//29 1837//29 +f 1834//29 1833//29 1837//29 +f 1841//29 1839//29 1833//29 +f 1809//31 1807//31 1808//31 +f 1808//31 1818//31 1817//31 +f 1817//31 1816//31 1813//31 +f 1816//31 1815//31 1813//31 +f 1815//31 1814//31 1813//31 +f 1813//31 1812//31 1811//31 +f 1811//31 1810//31 1813//31 +f 1810//31 1809//31 1813//31 +f 1809//31 1808//31 1813//31 +f 1850//32 1848//32 1844//32 +f 1847//30 1849//30 1845//30 +f 1849//31 1850//31 1846//31 +f 1848//29 1847//29 1843//29 +f 1847//28 1848//28 1850//28 +f 1858//32 1856//32 1852//32 +f 1855//30 1857//30 1853//30 +f 1857//31 1858//31 1854//31 +f 1856//29 1855//29 1851//29 +f 1855//28 1856//28 1858//28 +f 1935//28 1936//28 1933//28 +f 1931//31 1933//31 1936//31 +f 1930//29 1935//29 1934//29 +f 1932//32 1936//32 1935//32 +f 1929//30 1934//30 1933//30 +f 1695//28 2043//28 2044//28 +f 1696//28 2044//28 2045//28 +f 1697//28 2045//28 2046//28 +f 1698//28 2046//28 2043//28 +f 2049//28 2050//28 2047//28 +f 1698//32 2050//32 2049//32 +f 1696//30 2048//30 2047//30 +f 1695//31 2047//31 2050//31 +f 2051//27 2052//27 2053//27 +f 2055//27 2057//27 2058//27 +f 2062//28 2061//28 2059//28 +f 2055//29 2059//29 2061//29 +f 2057//30 2061//30 2062//30 +f 2058//31 2062//31 2060//31 +f 2056//32 2060//32 2059//32 +f 2063//27 2065//27 2066//27 +f 2070//28 2069//28 2067//28 +f 2063//29 2067//29 2069//29 +f 2065//30 2069//30 2070//30 +f 2066//31 2070//31 2068//31 +f 2064//32 2068//32 2067//32 +f 2071//27 2073//27 2074//27 +f 2078//28 2077//28 2075//28 +f 2071//29 2075//29 2077//29 +f 2073//30 2077//30 2078//30 +f 2074//31 2078//31 2076//31 +f 2072//32 2076//32 2075//32 +f 2079//27 2081//27 2082//27 +f 2086//28 2085//28 2083//28 +f 2079//29 2083//29 2085//29 +f 2081//30 2085//30 2086//30 +f 2082//31 2086//31 2084//31 +f 2080//32 2084//32 2083//32 +f 2089//32 2090//32 2054//32 +f 2087//30 2088//30 2052//30 +f 2090//28 2089//28 2088//28 +f 2091//27 2092//27 2093//27 +f 2097//30 2098//30 2094//30 +f 2095//32 2096//32 2092//32 +f 2098//28 2097//28 2096//28 +f 2099//27 2100//27 2101//27 +f 2105//31 2106//31 2102//31 +f 2103//29 2104//29 2100//29 +f 2106//28 2105//28 2104//28 +f 2107//27 2108//27 2109//27 +f 2113//29 2114//29 2110//29 +f 2111//31 2112//31 2108//31 +f 2114//28 2113//28 2112//28 +f 2116//31 2118//31 2117//31 +f 2117//32 2121//32 2119//32 +f 2116//30 2120//30 2122//30 +f 2119//29 2121//29 2122//29 +f 2123//27 2125//27 2126//27 +f 2130//28 2129//28 2127//28 +f 2123//29 2127//29 2129//29 +f 2125//30 2129//30 2130//30 +f 2126//31 2130//31 2128//31 +f 2124//32 2128//32 2127//32 +f 2131//27 2133//27 2134//27 +f 2138//28 2137//28 2135//28 +f 2131//29 2135//29 2137//29 +f 2133//30 2137//30 2138//30 +f 2134//31 2138//31 2136//31 +f 2132//32 2136//32 2135//32 +f 2139//27 2141//27 2142//27 +f 2146//28 2145//28 2143//28 +f 2139//29 2143//29 2145//29 +f 2141//30 2145//30 2146//30 +f 2142//31 2146//31 2144//31 +f 2140//32 2144//32 2143//32 +f 2147//27 2149//27 2150//27 +f 2154//28 2153//28 2151//28 +f 2147//29 2151//29 2153//29 +f 2149//30 2153//30 2154//30 +f 2150//31 2154//31 2152//31 +f 2148//32 2152//32 2151//32 +f 2156//31 2158//31 2157//31 +f 2157//32 2161//32 2159//32 +f 2156//30 2160//30 2162//30 +f 2159//29 2161//29 2162//29 +f 2164//31 2166//31 2165//31 +f 2165//32 2169//32 2167//32 +f 2164//30 2168//30 2170//30 +f 2167//29 2169//29 2170//29 +f 2172//31 2174//31 2173//31 +f 2173//32 2177//32 2175//32 +f 2172//30 2176//30 2178//30 +f 2175//29 2177//29 2178//29 +f 2179//27 2180//27 2181//27 +f 2185//32 2186//32 2182//32 +f 2183//30 2184//30 2180//30 +f 2186//28 2185//28 2184//28 +f 2187//27 2188//27 2189//27 +f 2193//30 2194//30 2190//30 +f 2191//32 2192//32 2188//32 +f 2194//28 2193//28 2192//28 +f 2195//27 2196//27 2197//27 +f 2201//31 2202//31 2198//31 +f 2199//29 2200//29 2196//29 +f 2202//28 2201//28 2200//28 +f 2203//27 2204//27 2205//27 +f 2209//29 2210//29 2206//29 +f 2207//31 2208//31 2204//31 +f 2210//28 2209//28 2208//28 +f 2213//27 2214//27 2212//27 +f 2217//28 2218//28 2215//28 +f 2211//30 2216//30 2215//30 +f 2213//31 2215//31 2218//31 +f 2212//29 2217//29 2216//29 +f 2214//32 2218//32 2217//32 +f 2221//27 2222//27 2220//27 +f 2225//28 2226//28 2223//28 +f 2219//30 2224//30 2223//30 +f 2221//31 2223//31 2226//31 +f 2220//29 2225//29 2224//29 +f 2222//32 2226//32 2225//32 +f 2229//27 2230//27 2228//27 +f 2233//28 2234//28 2231//28 +f 2227//30 2232//30 2231//30 +f 2229//31 2231//31 2234//31 +f 2228//29 2233//29 2232//29 +f 2230//32 2234//32 2233//32 +f 2237//27 2238//27 2236//27 +f 2303//28 2304//28 2305//28 +f 2305//28 2306//28 2307//28 +f 2307//28 2308//28 2309//28 +f 2309//28 2310//28 2307//28 +f 2310//28 2311//28 2307//28 +f 2311//28 2312//28 2313//28 +f 2313//28 2314//28 2303//28 +f 2303//28 2305//28 2307//28 +f 2311//28 2313//28 2307//28 +f 2238//32 2242//32 2241//32 +f 2235//30 2240//30 2239//30 +f 2237//31 2239//31 2242//31 +f 2236//29 2241//29 2240//29 +f 2245//27 2244//27 2243//27 +f 2243//27 2254//27 2245//27 +f 2254//27 2253//27 2245//27 +f 2253//27 2252//27 2251//27 +f 2251//27 2250//27 2249//27 +f 2249//27 2248//27 2247//27 +f 2247//27 2246//27 2249//27 +f 2246//27 2245//27 2249//27 +f 2253//27 2251//27 2245//27 +f 2256//28 2255//28 2257//28 +f 2257//28 2258//28 2256//28 +f 2258//28 2259//28 2256//28 +f 2259//28 2260//28 2261//28 +f 2261//28 2262//28 2263//28 +f 2263//28 2264//28 2265//28 +f 2265//28 2266//28 2263//28 +f 2266//28 2256//28 2263//28 +f 2259//28 2261//28 2263//28 +f 2267//28 2285//28 2287//28 +f 2268//28 2286//28 2285//28 +f 2302//27 2300//27 2271//27 +f 2300//27 2301//27 2270//27 +f 2269//39 2287//39 2302//39 +f 2301//40 2286//40 2268//40 +f 2273//28 2274//28 2275//28 +f 2275//28 2276//28 2277//28 +f 2277//28 2278//28 2279//28 +f 2279//28 2280//28 2277//28 +f 2280//28 2281//28 2277//28 +f 2281//28 2282//28 2283//28 +f 2283//28 2284//28 2273//28 +f 2273//28 2275//28 2277//28 +f 2281//28 2283//28 2277//28 +f 2290//27 2289//27 2298//27 +f 2289//27 2288//27 2298//27 +f 2288//27 2299//27 2298//27 +f 2298//27 2297//27 2296//27 +f 2296//27 2295//27 2294//27 +f 2294//27 2293//27 2292//27 +f 2292//27 2291//27 2290//27 +f 2298//27 2296//27 2294//27 +f 2294//27 2292//27 2298//27 +f 2317//27 2315//27 2325//27 +f 2315//27 2316//27 2325//27 +f 2316//27 2326//27 2325//27 +f 2325//27 2324//27 2323//27 +f 2323//27 2322//27 2321//27 +f 2321//27 2320//27 2319//27 +f 2319//27 2318//27 2317//27 +f 2325//27 2323//27 2321//27 +f 2321//27 2319//27 2325//27 +f 2459//28 2460//28 2461//28 +f 2461//28 2462//28 2463//28 +f 2463//28 2464//28 2465//28 +f 2465//28 2466//28 2463//28 +f 2466//28 2467//28 2463//28 +f 2467//28 2468//28 2469//28 +f 2469//28 2470//28 2459//28 +f 2459//28 2461//28 2463//28 +f 2467//28 2469//28 2463//28 +f 2401//27 2400//27 2399//27 +f 2399//27 2410//27 2401//27 +f 2410//27 2409//27 2401//27 +f 2409//27 2408//27 2407//27 +f 2407//27 2406//27 2405//27 +f 2405//27 2404//27 2403//27 +f 2403//27 2402//27 2405//27 +f 2402//27 2401//27 2405//27 +f 2409//27 2407//27 2401//27 +f 2412//28 2411//28 2413//28 +f 2413//28 2414//28 2412//28 +f 2414//28 2415//28 2412//28 +f 2415//28 2416//28 2417//28 +f 2417//28 2418//28 2419//28 +f 2419//28 2420//28 2421//28 +f 2421//28 2422//28 2419//28 +f 2422//28 2412//28 2419//28 +f 2415//28 2417//28 2419//28 +f 2423//28 2441//28 2443//28 +f 2424//28 2442//28 2441//28 +f 2458//27 2456//27 2427//27 +f 2456//27 2457//27 2426//27 +f 2425//39 2443//39 2458//39 +f 2457//40 2442//40 2424//40 +f 2429//28 2430//28 2431//28 +f 2431//28 2432//28 2433//28 +f 2433//28 2434//28 2435//28 +f 2435//28 2436//28 2433//28 +f 2436//28 2437//28 2433//28 +f 2437//28 2438//28 2439//28 +f 2439//28 2440//28 2429//28 +f 2429//28 2431//28 2433//28 +f 2437//28 2439//28 2433//28 +f 2446//27 2445//27 2454//27 +f 2445//27 2444//27 2454//27 +f 2444//27 2455//27 2454//27 +f 2454//27 2453//27 2452//27 +f 2452//27 2451//27 2450//27 +f 2450//27 2449//27 2448//27 +f 2448//27 2447//27 2446//27 +f 2454//27 2452//27 2450//27 +f 2450//27 2448//27 2454//27 +f 2473//27 2471//27 2481//27 +f 2471//27 2472//27 2481//27 +f 2472//27 2482//27 2481//27 +f 2481//27 2480//27 2479//27 +f 2479//27 2478//27 2477//27 +f 2477//27 2476//27 2475//27 +f 2475//27 2474//27 2473//27 +f 2481//27 2479//27 2477//27 +f 2477//27 2475//27 2481//27 +f 2615//28 2616//28 2617//28 +f 2617//28 2618//28 2619//28 +f 2619//28 2620//28 2621//28 +f 2621//28 2622//28 2619//28 +f 2622//28 2623//28 2619//28 +f 2623//28 2624//28 2625//28 +f 2625//28 2626//28 2615//28 +f 2615//28 2617//28 2619//28 +f 2623//28 2625//28 2619//28 +f 2557//27 2556//27 2555//27 +f 2555//27 2566//27 2557//27 +f 2566//27 2565//27 2557//27 +f 2565//27 2564//27 2563//27 +f 2563//27 2562//27 2561//27 +f 2561//27 2560//27 2559//27 +f 2559//27 2558//27 2561//27 +f 2558//27 2557//27 2561//27 +f 2565//27 2563//27 2557//27 +f 2568//28 2567//28 2569//28 +f 2569//28 2570//28 2568//28 +f 2570//28 2571//28 2568//28 +f 2571//28 2572//28 2573//28 +f 2573//28 2574//28 2575//28 +f 2575//28 2576//28 2577//28 +f 2577//28 2578//28 2575//28 +f 2578//28 2568//28 2575//28 +f 2571//28 2573//28 2575//28 +f 2579//28 2597//28 2599//28 +f 2580//28 2598//28 2597//28 +f 2614//27 2612//27 2583//27 +f 2612//27 2613//27 2582//27 +f 2581//39 2599//39 2614//39 +f 2613//40 2598//40 2580//40 +f 2585//28 2586//28 2587//28 +f 2587//28 2588//28 2589//28 +f 2589//28 2590//28 2591//28 +f 2591//28 2592//28 2589//28 +f 2592//28 2593//28 2589//28 +f 2593//28 2594//28 2595//28 +f 2595//28 2596//28 2585//28 +f 2585//28 2587//28 2589//28 +f 2593//28 2595//28 2589//28 +f 2602//27 2601//27 2610//27 +f 2601//27 2600//27 2610//27 +f 2600//27 2611//27 2610//27 +f 2610//27 2609//27 2608//27 +f 2608//27 2607//27 2606//27 +f 2606//27 2605//27 2604//27 +f 2604//27 2603//27 2602//27 +f 2610//27 2608//27 2606//27 +f 2606//27 2604//27 2610//27 +f 2629//27 2627//27 2637//27 +f 2627//27 2628//27 2637//27 +f 2628//27 2638//27 2637//27 +f 2637//27 2636//27 2635//27 +f 2635//27 2634//27 2633//27 +f 2633//27 2632//27 2631//27 +f 2631//27 2630//27 2629//27 +f 2637//27 2635//27 2633//27 +f 2633//27 2631//27 2637//27 +f 2771//28 2772//28 2773//28 +f 2773//28 2774//28 2775//28 +f 2775//28 2776//28 2777//28 +f 2777//28 2778//28 2775//28 +f 2778//28 2779//28 2775//28 +f 2779//28 2780//28 2781//28 +f 2781//28 2782//28 2771//28 +f 2771//28 2773//28 2775//28 +f 2779//28 2781//28 2775//28 +f 2713//27 2712//27 2711//27 +f 2711//27 2722//27 2713//27 +f 2722//27 2721//27 2713//27 +f 2721//27 2720//27 2719//27 +f 2719//27 2718//27 2717//27 +f 2717//27 2716//27 2715//27 +f 2715//27 2714//27 2717//27 +f 2714//27 2713//27 2717//27 +f 2721//27 2719//27 2713//27 +f 2724//28 2723//28 2725//28 +f 2725//28 2726//28 2724//28 +f 2726//28 2727//28 2724//28 +f 2727//28 2728//28 2729//28 +f 2729//28 2730//28 2731//28 +f 2731//28 2732//28 2733//28 +f 2733//28 2734//28 2731//28 +f 2734//28 2724//28 2731//28 +f 2727//28 2729//28 2731//28 +f 2735//28 2753//28 2755//28 +f 2736//28 2754//28 2753//28 +f 2770//27 2768//27 2739//27 +f 2768//27 2769//27 2738//27 +f 2737//39 2755//39 2770//39 +f 2769//40 2754//40 2736//40 +f 2741//28 2742//28 2743//28 +f 2743//28 2744//28 2745//28 +f 2745//28 2746//28 2747//28 +f 2747//28 2748//28 2745//28 +f 2748//28 2749//28 2745//28 +f 2749//28 2750//28 2751//28 +f 2751//28 2752//28 2741//28 +f 2741//28 2743//28 2745//28 +f 2749//28 2751//28 2745//28 +f 2758//27 2757//27 2766//27 +f 2757//27 2756//27 2766//27 +f 2756//27 2767//27 2766//27 +f 2766//27 2765//27 2764//27 +f 2764//27 2763//27 2762//27 +f 2762//27 2761//27 2760//27 +f 2760//27 2759//27 2758//27 +f 2766//27 2764//27 2762//27 +f 2762//27 2760//27 2766//27 +f 2785//27 2783//27 2793//27 +f 2783//27 2784//27 2793//27 +f 2784//27 2794//27 2793//27 +f 2793//27 2792//27 2791//27 +f 2791//27 2790//27 2789//27 +f 2789//27 2788//27 2787//27 +f 2787//27 2786//27 2785//27 +f 2793//27 2791//27 2789//27 +f 2789//27 2787//27 2793//27 +f 2965//27 2966//27 2964//27 +f 2969//28 2970//28 2967//28 +f 2963//30 2968//30 2967//30 +f 2965//31 2967//31 2970//31 +f 2964//29 2969//29 2968//29 +f 2966//32 2970//32 2969//32 +f 2973//27 2974//27 2972//27 +f 2977//28 2978//28 2975//28 +f 2974//32 2978//32 2977//32 +f 2971//30 2976//30 2975//30 +f 2973//31 2975//31 2978//31 +f 2972//29 2977//29 2976//29 +f 2981//27 2980//27 2979//27 +f 2979//27 2994//27 2981//27 +f 2994//27 2993//27 2981//27 +f 2993//27 2992//27 2991//27 +f 2991//27 2990//27 2989//27 +f 2989//27 2988//27 2985//27 +f 2988//27 2987//27 2985//27 +f 2987//27 2986//27 2985//27 +f 2985//27 2984//27 2983//27 +f 2983//27 2982//27 2981//27 +f 2993//27 2991//27 2981//27 +f 2991//27 2989//27 2981//27 +f 2985//27 2983//27 2981//27 +f 2996//28 2995//28 2997//28 +f 2997//28 2998//28 2999//28 +f 2999//28 3000//28 3001//28 +f 3001//28 3002//28 3003//28 +f 3003//28 3004//28 3007//28 +f 3004//28 3005//28 3007//28 +f 3005//28 3006//28 3007//28 +f 3007//28 3008//28 3009//28 +f 3009//28 3010//28 3007//28 +f 3010//28 2996//28 3007//28 +f 2996//28 2997//28 2999//28 +f 2999//28 3001//28 2996//28 +f 3001//28 3003//28 2996//28 +f 3013//27 3015//27 3014//27 +f 3015//27 3016//27 3014//27 +f 3014//27 3012//27 3011//27 +f 3017//28 3018//28 3020//28 +f 3018//28 3019//28 3020//28 +f 3020//28 3021//28 3022//28 +f 3015//32 3022//32 3021//32 +f 3012//29 3019//29 3018//29 +f 3014//32 3020//32 3019//32 +f 3011//30 3018//30 3017//30 +f 3016//29 3021//29 3020//29 +f 3013//31 3017//31 3022//31 +s 1 +f 370//41 378//32 371//32 +f 350//42 365//35 349//35 +f 360//31 383//43 359//43 +f 351//29 366//42 350//42 +f 355//32 388//41 354//41 +f 344//43 392//31 343//31 +f 352//44 367//29 351//29 +f 357//33 386//45 356//45 +f 356//45 387//32 355//32 +f 358//46 385//33 357//33 +f 343//31 384//46 358//46 +f 347//30 362//47 346//47 +f 354//41 389//48 353//34 +f 348//49 363//30 347//30 +f 345//36 391//43 344//43 +f 349//35 364//49 348//49 +f 372//45 376//33 373//33 +f 374//46 382//31 360//31 +f 369//34 379//41 370//41 +f 359//43 381//50 361//36 +f 371//32 377//45 372//45 +f 373//33 375//46 374//46 +f 482//51 499//52 498//51 +f 471//33 486//45 470//45 +f 464//42 479//35 463//35 +f 472//46 487//33 471//33 +f 465//29 480//42 464//42 +f 458//43 474//31 457//31 +f 457//31 488//46 472//46 +f 466//44 481//29 465//29 +f 459//36 473//43 458//43 +f 467//34 482//44 466//44 +f 460//47 475//36 459//36 +f 468//41 483//34 467//34 +f 461//30 476//47 460//47 +f 469//32 484//41 468//41 +f 462//49 477//30 461//30 +f 470//45 485//32 469//32 +f 463//35 478//49 462//49 +f 475//53 492//54 491//53 +f 484//55 499//52 483//52 +f 477//56 492//54 476//54 +f 485//57 500//55 484//55 +f 478//58 493//56 477//56 +f 486//59 501//57 485//57 +f 479//60 494//58 478//58 +f 486//59 503//61 502//59 +f 480//62 495//60 479//60 +f 488//63 503//61 487//61 +f 480//62 497//38 496//62 +f 473//64 490//37 474//37 +f 488//63 490//37 504//63 +f 481//38 498//51 497//38 +f 475//53 489//64 473//64 +f 538//34 545//65 537//29 +f 536//35 543//66 535//30 +f 534//36 541//67 533//31 +f 533//31 548//68 540//33 +f 539//32 546//69 538//34 +f 537//29 544//70 536//35 +f 535//30 542//71 534//36 +f 540//33 547//72 539//32 +f 548//68 549//73 556//74 +f 546//69 555//75 554//76 +f 545//65 552//77 544//70 +f 543//66 550//78 542//71 +f 547//72 556//74 555//75 +f 545//65 554//76 553//79 +f 544//70 551//80 543//66 +f 542//71 549//73 541//67 +f 552//77 559//30 551//80 +f 550//78 557//31 549//73 +f 549//73 564//33 556//74 +f 555//75 562//34 554//76 +f 553//79 560//35 552//77 +f 551//80 558//36 550//78 +f 556//74 563//32 555//75 +f 554//76 561//29 553//79 +f 586//30 578//49 577//30 +f 582//44 567//34 566//44 +f 584//81 576//47 575//36 +f 589//42 565//29 580//42 +f 587//49 579//35 578//49 +f 581//29 566//44 565//29 +f 585//47 577//30 576//47 +f 588//35 580//42 579//35 +f 603//49 611//30 602//30 +f 592//34 607//44 591//44 +f 601//47 609//81 600//36 +f 590//29 614//42 605//42 +f 604//35 612//49 603//49 +f 591//44 606//29 590//29 +f 602//30 610//47 601//47 +f 605//42 613//35 604//35 +f 362//47 381//50 390//50 +f 608//82 593//41 568//41 +f 593//41 569//32 568//41 +f 594//32 570//45 569//32 +f 595//45 571//33 570//45 +f 596//33 572//46 571//33 +f 597//46 573//31 572//46 +f 598//31 574//43 573//31 +f 599//43 609//81 584//81 +f 352//44 380//48 368//44 +f 642//41 650//32 643//32 +f 622//42 637//35 621//35 +f 632//31 655//43 631//43 +f 623//29 638//42 622//42 +f 627//32 660//41 626//41 +f 616//43 664//31 615//31 +f 624//44 639//29 623//29 +f 629//33 658//45 628//45 +f 628//45 659//32 627//32 +f 630//46 657//33 629//33 +f 615//31 656//46 630//46 +f 619//30 634//47 618//47 +f 626//41 661//48 625//34 +f 620//49 635//30 619//30 +f 617//36 663//43 616//43 +f 621//35 636//49 620//49 +f 644//45 648//33 645//33 +f 646//46 654//31 632//31 +f 641//34 651//41 642//41 +f 631//43 653//50 633//36 +f 643//32 649//45 644//45 +f 645//33 647//46 646//46 +f 686//30 678//49 677//30 +f 682//44 667//34 666//44 +f 684//81 676//47 675//36 +f 689//42 665//29 680//42 +f 687//49 679//35 678//49 +f 681//29 666//44 665//29 +f 685//47 677//30 676//47 +f 688//35 680//42 679//35 +f 703//49 711//30 702//30 +f 692//34 707//44 691//44 +f 701//47 709//81 700//36 +f 690//29 714//42 705//42 +f 704//35 712//49 703//49 +f 691//44 706//29 690//29 +f 702//30 710//47 701//47 +f 705//42 713//35 704//35 +f 634//47 653//50 662//50 +f 708//82 693//41 668//41 +f 693//41 669//32 668//41 +f 694//32 670//45 669//32 +f 695//45 671//33 670//45 +f 696//33 672//46 671//33 +f 697//46 673//31 672//46 +f 698//31 674//43 673//31 +f 699//43 709//81 684//81 +f 624//44 652//48 640//44 +f 742//41 750//32 743//32 +f 722//42 737//35 721//35 +f 732//31 755//43 731//43 +f 723//29 738//42 722//42 +f 727//32 760//41 726//41 +f 716//43 764//31 715//31 +f 724//44 739//29 723//29 +f 729//33 758//45 728//45 +f 728//45 759//32 727//32 +f 730//46 757//33 729//33 +f 715//31 756//46 730//46 +f 719//30 734//47 718//47 +f 726//41 761//48 725//34 +f 720//49 735//30 719//30 +f 717//36 763//43 716//43 +f 721//35 736//49 720//49 +f 744//45 748//33 745//33 +f 746//46 754//31 732//31 +f 741//34 751//41 742//41 +f 731//43 753//50 733//36 +f 743//32 749//45 744//45 +f 745//33 747//46 746//46 +f 786//30 778//49 777//30 +f 782//44 767//34 766//44 +f 784//81 776//47 775//36 +f 789//42 765//29 780//42 +f 787//49 779//35 778//49 +f 781//29 766//44 765//29 +f 785//47 777//30 776//47 +f 788//35 780//42 779//35 +f 803//49 811//30 802//30 +f 792//34 807//44 791//44 +f 801//47 809//81 800//36 +f 790//29 814//42 805//42 +f 804//35 812//49 803//49 +f 791//44 806//29 790//29 +f 802//30 810//47 801//47 +f 805//42 813//35 804//35 +f 734//47 753//50 762//50 +f 808//82 793//41 768//41 +f 793//41 769//32 768//41 +f 794//32 770//45 769//32 +f 795//45 771//33 770//45 +f 796//33 772//46 771//33 +f 797//46 773//31 772//46 +f 798//31 774//43 773//31 +f 799//43 809//81 784//81 +f 724//44 752//48 740//44 +f 842//41 850//32 843//32 +f 822//42 837//35 821//35 +f 832//31 855//43 831//43 +f 823//29 838//42 822//42 +f 827//32 860//41 826//41 +f 816//43 864//31 815//31 +f 824//44 839//29 823//29 +f 829//33 858//45 828//45 +f 828//45 859//32 827//32 +f 830//46 857//33 829//33 +f 815//31 856//46 830//46 +f 819//30 834//47 818//47 +f 826//41 861//48 825//34 +f 820//49 835//30 819//30 +f 817//36 863//43 816//43 +f 821//35 836//49 820//49 +f 844//45 848//33 845//33 +f 846//46 854//31 832//31 +f 841//34 851//41 842//41 +f 831//43 853//50 833//36 +f 843//32 849//45 844//45 +f 845//33 847//46 846//46 +f 886//30 878//49 877//30 +f 882//44 867//34 866//44 +f 884//81 876//47 875//36 +f 889//42 865//29 880//42 +f 887//49 879//35 878//49 +f 881//29 866//44 865//29 +f 885//47 877//30 876//47 +f 888//35 880//42 879//35 +f 903//49 911//30 902//30 +f 892//34 907//44 891//44 +f 901//47 909//81 900//36 +f 890//29 914//42 905//42 +f 904//35 912//49 903//49 +f 891//44 906//29 890//29 +f 902//30 910//47 901//47 +f 905//42 913//35 904//35 +f 834//47 853//50 862//50 +f 908//82 893//41 868//41 +f 893//41 869//32 868//41 +f 894//32 870//45 869//32 +f 895//45 871//33 870//45 +f 896//33 872//46 871//33 +f 897//46 873//31 872//46 +f 898//31 874//43 873//31 +f 909//81 884//81 899//43 +f 824//44 852//48 840//44 +f 920//34 927//83 919//29 +f 918//35 925//66 917//30 +f 916//36 923//67 915//31 +f 915//31 930//68 922//33 +f 921//32 928//69 920//34 +f 919//29 926//70 918//35 +f 917//30 924//71 916//36 +f 922//33 929//72 921//32 +f 930//68 931//84 938//74 +f 928//69 937//75 936//76 +f 927//83 934//77 926//70 +f 925//66 932//78 924//71 +f 929//72 938//74 937//75 +f 927//83 936//76 935//79 +f 926//70 933//80 925//66 +f 924//71 931//84 923//67 +f 934//77 941//30 933//80 +f 932//78 939//31 931//84 +f 931//84 946//33 938//74 +f 937//75 944//34 936//76 +f 935//79 942//35 934//77 +f 933//80 940//36 932//78 +f 938//74 945//32 937//75 +f 936//76 943//29 935//79 +f 952//34 959//83 951//29 +f 950//35 957//66 949//30 +f 948//36 955//67 947//31 +f 947//31 962//68 954//33 +f 953//32 960//69 952//34 +f 951//29 958//70 950//35 +f 949//30 956//71 948//36 +f 954//33 961//72 953//32 +f 962//68 963//84 970//74 +f 960//69 969//75 968//76 +f 959//83 966//77 958//70 +f 957//66 964//78 956//71 +f 961//72 970//74 969//75 +f 959//83 968//76 967//79 +f 958//70 965//80 957//66 +f 956//71 963//84 955//67 +f 966//77 973//30 965//80 +f 964//78 971//31 963//84 +f 963//84 978//33 970//74 +f 969//75 976//34 968//76 +f 967//79 974//35 966//77 +f 965//80 972//36 964//78 +f 970//74 977//32 969//75 +f 968//76 975//29 967//79 +f 1015//85 1020//27 1014//27 +f 1013//86 1017//87 1012//87 +f 1016//88 1021//85 1015//85 +f 1014//27 1019//86 1013//86 +f 1012//87 1018//28 1011//28 +f 1011//28 1022//88 1016//88 +f 1079//85 1084//27 1078//27 +f 1077//86 1081//87 1076//87 +f 1080//88 1085//85 1079//85 +f 1078//27 1083//86 1077//86 +f 1076//87 1082//28 1075//28 +f 1075//28 1086//88 1080//88 +f 1137//32 1130//57 1129//32 +f 1135//27 1128//89 1127//27 +f 1133//30 1126//90 1125//30 +f 1131//28 1124//56 1123//28 +f 1138//57 1123//28 1130//57 +f 1136//89 1129//32 1128//89 +f 1134//90 1127//27 1126//90 +f 1132//56 1125//30 1124//56 +f 1153//32 1146//57 1145//32 +f 1151//27 1144//89 1143//27 +f 1149//30 1142//90 1141//30 +f 1147//28 1140//56 1139//28 +f 1154//57 1139//28 1146//57 +f 1152//89 1145//32 1144//89 +f 1150//90 1143//27 1142//90 +f 1148//56 1141//30 1140//56 +f 1177//32 1170//57 1169//32 +f 1175//27 1168//89 1167//27 +f 1173//30 1166//90 1165//30 +f 1171//28 1164//56 1163//28 +f 1178//57 1163//28 1170//57 +f 1176//89 1169//32 1168//89 +f 1174//90 1167//27 1166//90 +f 1172//56 1165//30 1164//56 +f 1193//32 1186//57 1185//32 +f 1191//27 1184//89 1183//27 +f 1189//30 1182//90 1181//30 +f 1187//28 1180//56 1179//28 +f 1194//57 1179//28 1186//57 +f 1192//89 1185//32 1184//89 +f 1190//90 1183//27 1182//90 +f 1188//56 1181//30 1180//56 +f 1206//91 1213//30 1205//92 +f 1204//93 1211//31 1203//37 +f 1203//37 1218//33 1210//94 +f 1209//95 1216//34 1208//96 +f 1207//97 1214//35 1206//91 +f 1205//92 1212//36 1204//93 +f 1210//94 1217//32 1209//95 +f 1208//96 1215//29 1207//97 +f 1222//98 1229//30 1221//99 +f 1220//100 1227//31 1219//101 +f 1219//101 1234//33 1226//102 +f 1225//103 1232//34 1224//104 +f 1223//38 1230//35 1222//98 +f 1221//99 1228//36 1220//100 +f 1226//102 1233//32 1225//103 +f 1224//104 1231//29 1223//38 +f 1245//105 1241//106 1242//107 +f 1247//108 1239//109 1240//110 +f 1209//95 1246//111 1245//105 +f 1205//92 1248//112 1206//91 +f 1208//96 1247//108 1246//111 +f 1209//95 1244//113 1210//94 +f 1205//92 1250//114 1249//115 +f 1206//91 1247//108 1207//97 +f 1249//115 1239//109 1248//112 +f 1246//111 1240//110 1241//106 +f 1245//105 1243//116 1244//113 +f 1249//115 1237//117 1238//118 +f 1220//100 1251//119 1221//99 +f 1225//103 1255//120 1226//102 +f 1221//99 1252//121 1222//98 +f 1220//100 1236//122 1235//123 +f 1226//102 1236//122 1219//101 +f 1225//103 1253//124 1254//125 +f 1255//120 1261//126 1262//127 +f 1252//121 1258//128 1259//129 +f 1236//122 1256//130 1235//123 +f 1236//122 1262//127 1257//131 +f 1254//125 1260//132 1261//126 +f 1235//123 1258//128 1251//119 +f 1222//98 1252//121 1223//38 +f 1252//121 1259//129 1223//38 +f 1203//37 1250//114 1204//93 +f 1250//114 1203//37 1237//117 +f 1210//94 1244//113 1203//37 +f 1244//113 1243//116 1203//37 +f 1223//38 1253//124 1224//104 +f 1253//124 1223//38 1260//132 +f 1242//107 1260//132 1243//116 +f 1243//116 1223//38 1203//37 +f 1259//129 1203//37 1223//38 +f 1237//117 1258//128 1238//118 +f 1238//118 1256//130 1239//109 +f 1239//109 1257//131 1240//110 +f 1240//110 1262//127 1241//106 +f 1241//106 1261//126 1242//107 +f 1266//91 1273//30 1265//92 +f 1264//93 1271//31 1263//37 +f 1263//37 1278//33 1270//94 +f 1269//95 1276//34 1268//96 +f 1267//97 1274//35 1266//91 +f 1265//92 1272//36 1264//93 +f 1270//94 1277//32 1269//95 +f 1268//96 1275//29 1267//97 +f 1282//98 1289//30 1281//99 +f 1280//100 1287//31 1279//101 +f 1279//101 1294//33 1286//102 +f 1285//103 1292//34 1284//104 +f 1283//38 1290//35 1282//98 +f 1281//99 1288//36 1280//100 +f 1286//102 1293//32 1285//103 +f 1284//104 1291//29 1283//38 +f 1305//105 1301//106 1302//107 +f 1307//108 1299//109 1300//110 +f 1268//96 1305//105 1269//95 +f 1265//92 1308//112 1266//91 +f 1267//97 1306//133 1268//96 +f 1269//95 1304//113 1270//94 +f 1265//92 1310//114 1309//115 +f 1266//91 1307//108 1267//97 +f 1309//115 1299//109 1308//112 +f 1306//133 1300//110 1301//106 +f 1305//105 1303//116 1304//113 +f 1309//115 1297//117 1298//118 +f 1280//100 1311//119 1281//99 +f 1285//103 1315//134 1286//102 +f 1281//99 1312//121 1282//98 +f 1280//100 1296//122 1295//123 +f 1286//102 1296//122 1279//101 +f 1285//103 1313//124 1314//125 +f 1315//134 1321//126 1322//127 +f 1312//121 1318//128 1319//129 +f 1296//122 1316//130 1295//123 +f 1296//122 1322//127 1317//131 +f 1314//125 1320//132 1321//126 +f 1295//123 1318//128 1311//119 +f 1282//98 1312//121 1283//38 +f 1312//121 1319//129 1283//38 +f 1263//37 1310//114 1264//93 +f 1310//114 1263//37 1297//117 +f 1270//94 1304//113 1263//37 +f 1304//113 1303//116 1263//37 +f 1283//38 1313//124 1284//104 +f 1313//124 1283//38 1320//132 +f 1302//107 1320//132 1303//116 +f 1303//116 1283//38 1263//37 +f 1319//129 1263//37 1283//38 +f 1297//117 1318//128 1298//118 +f 1298//118 1316//130 1299//109 +f 1299//109 1317//131 1300//110 +f 1300//110 1322//127 1301//106 +f 1301//106 1321//126 1302//107 +f 1326//91 1333//30 1325//92 +f 1324//93 1331//31 1323//37 +f 1323//37 1338//33 1330//94 +f 1329//95 1336//34 1328//96 +f 1327//97 1334//35 1326//91 +f 1325//92 1332//36 1324//93 +f 1330//94 1337//32 1329//95 +f 1328//96 1335//29 1327//97 +f 1342//98 1349//30 1341//99 +f 1340//100 1347//31 1339//101 +f 1339//101 1354//33 1346//102 +f 1345//103 1352//34 1344//104 +f 1343//38 1350//35 1342//98 +f 1341//99 1348//36 1340//100 +f 1346//102 1353//32 1345//103 +f 1344//104 1351//29 1343//38 +f 1365//105 1361//106 1362//107 +f 1367//108 1359//109 1360//110 +f 1328//96 1365//105 1329//95 +f 1325//92 1368//112 1326//91 +f 1328//96 1367//108 1366//133 +f 1329//95 1364//113 1330//94 +f 1325//92 1370//114 1369//115 +f 1326//91 1367//108 1327//97 +f 1369//115 1359//109 1368//112 +f 1366//133 1360//110 1361//106 +f 1365//105 1363//116 1364//113 +f 1369//115 1357//117 1358//118 +f 1340//100 1371//119 1341//99 +f 1346//102 1374//125 1375//134 +f 1341//99 1372//121 1342//98 +f 1340//100 1356//122 1355//135 +f 1346//102 1356//122 1339//101 +f 1345//103 1373//124 1374//125 +f 1375//134 1381//126 1382//127 +f 1372//121 1378//128 1379//129 +f 1356//122 1376//130 1355//135 +f 1356//122 1382//127 1377//131 +f 1373//124 1381//126 1374//125 +f 1355//135 1378//128 1371//119 +f 1342//98 1372//121 1343//38 +f 1372//121 1379//129 1343//38 +f 1323//37 1370//114 1324//93 +f 1370//114 1323//37 1357//117 +f 1330//94 1364//113 1323//37 +f 1364//113 1363//116 1323//37 +f 1343//38 1373//124 1344//104 +f 1373//124 1343//38 1380//132 +f 1362//107 1380//132 1363//116 +f 1363//116 1343//38 1323//37 +f 1379//129 1323//37 1343//38 +f 1357//117 1378//128 1358//118 +f 1358//118 1376//130 1359//109 +f 1359//109 1377//131 1360//110 +f 1360//110 1382//127 1361//106 +f 1361//106 1381//126 1362//107 +f 1398//33 1383//31 1390//33 +f 1396//34 1389//32 1388//34 +f 1394//35 1387//29 1386//35 +f 1392//36 1385//30 1384//36 +f 1397//32 1390//33 1389//32 +f 1395//29 1388//34 1387//29 +f 1393//30 1386//35 1385//30 +f 1391//31 1384//36 1383//31 +f 1521//32 1514//57 1513//32 +f 1519//27 1512//89 1511//27 +f 1517//30 1510//90 1509//30 +f 1515//28 1508//56 1507//28 +f 1522//57 1507//28 1514//57 +f 1520//89 1513//32 1512//89 +f 1518//90 1511//27 1510//90 +f 1516//56 1509//30 1508//56 +f 1537//32 1530//57 1529//32 +f 1535//27 1528//89 1527//27 +f 1533//30 1526//90 1525//30 +f 1531//28 1524//56 1523//28 +f 1538//57 1523//28 1530//57 +f 1536//89 1529//32 1528//89 +f 1534//90 1527//27 1526//90 +f 1532//56 1525//30 1524//56 +f 1554//33 1561//32 1553//32 +f 1552//34 1559//29 1551//29 +f 1550//35 1557//30 1549//30 +f 1548//36 1555//31 1547//31 +f 1547//31 1562//33 1554//33 +f 1553//32 1560//34 1552//34 +f 1551//29 1558//35 1550//35 +f 1549//30 1556//36 1548//36 +f 1570//33 1577//32 1569//32 +f 1568//34 1575//29 1567//29 +f 1566//35 1573//30 1565//30 +f 1564//36 1571//31 1563//31 +f 1563//31 1578//33 1570//33 +f 1569//32 1576//34 1568//34 +f 1567//29 1574//35 1566//35 +f 1565//30 1572//36 1564//36 +f 1586//33 1593//32 1585//32 +f 1584//34 1591//29 1583//29 +f 1582//35 1589//30 1581//30 +f 1580//36 1587//31 1579//31 +f 1579//31 1594//33 1586//33 +f 1585//32 1592//34 1584//34 +f 1583//29 1590//35 1582//35 +f 1581//30 1588//36 1580//36 +f 1602//33 1609//32 1601//32 +f 1600//34 1607//29 1599//29 +f 1598//35 1605//30 1597//30 +f 1596//36 1603//31 1595//31 +f 1595//31 1610//33 1602//33 +f 1601//32 1608//34 1600//34 +f 1599//29 1606//35 1598//35 +f 1597//30 1604//36 1596//36 +f 1612//136 1625//39 1623//136 +f 1620//32 1631//137 1619//137 +f 1617//29 1628//138 1616//138 +f 1614//30 1625//39 1613//39 +f 1621//40 1632//32 1620//32 +f 1618//139 1629//29 1617//29 +f 1615//140 1626//30 1614//30 +f 1622//141 1633//40 1621//40 +f 1612//136 1624//31 1611//31 +f 1619//137 1630//139 1618//139 +f 1616//138 1627//140 1615//140 +f 1611//31 1634//141 1622//141 +f 1636//136 1649//39 1647//136 +f 1644//32 1655//137 1643//137 +f 1641//29 1652//138 1640//138 +f 1638//30 1649//39 1637//39 +f 1645//40 1656//32 1644//32 +f 1642//139 1653//29 1641//29 +f 1639//140 1650//30 1638//30 +f 1646//141 1657//40 1645//40 +f 1636//136 1648//31 1635//31 +f 1643//137 1654//139 1642//139 +f 1640//138 1651//140 1639//140 +f 1635//31 1658//141 1646//141 +f 1770//142 1784//27 1760//27 +f 1722//142 1736//27 1712//27 +f 1702//30 1727//86 1703//86 +f 1709//88 1734//143 1710//143 +f 1699//28 1723//144 1700//144 +f 1706//145 1731//85 1707//85 +f 1703//86 1728//142 1704//142 +f 1710//143 1724//28 1699//28 +f 1700//144 1725//87 1701//87 +f 1707//85 1732//32 1708//32 +f 1704//142 1729//27 1705//27 +f 1701//87 1726//30 1702//30 +f 1708//32 1733//88 1709//88 +f 1705//27 1730//145 1706//145 +f 1750//30 1775//86 1751//86 +f 1711//145 1737//85 1713//85 +f 1719//87 1744//30 1720//30 +f 1716//143 1741//28 1717//28 +f 1713//85 1738//32 1714//32 +f 1720//30 1745//86 1721//86 +f 1717//28 1742//144 1718//144 +f 1714//32 1739//88 1715//88 +f 1721//86 1746//142 1722//142 +f 1712//27 1735//145 1711//145 +f 1718//144 1743//87 1719//87 +f 1715//88 1740//143 1716//143 +f 1757//88 1782//143 1758//143 +f 1747//28 1771//144 1748//144 +f 1754//145 1779//85 1755//85 +f 1751//86 1776//142 1752//142 +f 1758//143 1772//28 1747//28 +f 1748//144 1773//87 1749//87 +f 1755//85 1780//32 1756//32 +f 1752//142 1777//27 1753//27 +f 1749//87 1774//30 1750//30 +f 1756//32 1781//88 1757//88 +f 1753//27 1778//145 1754//145 +f 1759//145 1785//85 1761//85 +f 1767//87 1792//30 1768//30 +f 1764//143 1789//28 1765//28 +f 1761//85 1786//32 1762//32 +f 1768//30 1793//86 1769//86 +f 1765//28 1790//144 1766//144 +f 1762//32 1787//88 1763//88 +f 1769//86 1794//142 1770//142 +f 1760//27 1783//145 1759//145 +f 1766//144 1791//87 1767//87 +f 1763//88 1788//143 1764//143 +f 1801//146 1812//147 1813//146 +f 1798//148 1809//149 1810//148 +f 1804//150 1817//151 1805//151 +f 1802//152 1813//146 1814//152 +f 1798//148 1811//153 1799//153 +f 1806//154 1817//151 1818//154 +f 1795//155 1807//156 1796//156 +f 1802//152 1815//157 1803//157 +f 1799//153 1812//147 1800//147 +f 1806//154 1808//155 1795//155 +f 1796//156 1809//149 1797//149 +f 1804//150 1815//157 1816//150 +f 1825//158 1836//159 1837//158 +f 1822//160 1833//161 1834//160 +f 1828//162 1841//163 1829//163 +f 1825//158 1838//164 1826//164 +f 1823//165 1834//160 1835//165 +f 1830//166 1841//163 1842//166 +f 1819//167 1831//168 1820//168 +f 1827//169 1838//164 1839//169 +f 1824//159 1835//165 1836//159 +f 1830//166 1832//167 1819//167 +f 1820//168 1833//161 1821//161 +f 1828//162 1839//169 1840//162 +f 1873//27 1866//122 1865//27 +f 1871//29 1864//108 1863//29 +f 1869//28 1862//38 1861//28 +f 1867//31 1860//37 1859//31 +f 1874//122 1859//31 1866//122 +f 1872//108 1865//27 1864//108 +f 1870//38 1863//29 1862//38 +f 1868//37 1861//28 1860//37 +f 1889//27 1882//122 1881//27 +f 1887//29 1880//108 1879//29 +f 1885//28 1878//38 1877//28 +f 1883//31 1876//37 1875//31 +f 1890//122 1875//31 1882//122 +f 1888//108 1881//27 1880//108 +f 1886//38 1879//29 1878//38 +f 1884//37 1877//28 1876//37 +f 1905//170 1898//122 1897//27 +f 1903//171 1896//108 1895//29 +f 1901//172 1894//38 1893//28 +f 1899//33 1892//37 1891//31 +f 1906//173 1891//31 1898//122 +f 1904//174 1897//27 1896//108 +f 1902//175 1895//29 1894//38 +f 1900//176 1893//28 1892//37 +f 1904//174 1912//177 1905//170 +f 1903//171 1909//178 1910//35 +f 1900//176 1908//179 1901//172 +f 1905//170 1913//180 1906//173 +f 1903//171 1911//181 1904//174 +f 1901//172 1909//178 1902//175 +f 1907//182 1915//183 1908//179 +f 1913//180 1919//184 1920//185 +f 1911//181 1917//186 1918//187 +f 1908//179 1916//188 1909//178 +f 1911//181 1919//184 1912//177 +f 1909//178 1917//186 1910//35 +f 1899//33 1907//182 1900//176 +f 1907//182 1899//33 1914//189 +f 1906//173 1913//180 1899//33 +f 1913//180 1920//185 1899//33 +f 1920//185 1921//32 1899//33 +f 1919//184 1928//89 1920//185 +f 1899//33 1922//57 1914//189 +f 1917//186 1926//90 1918//187 +f 1915//183 1924//56 1916//188 +f 1918//187 1927//27 1919//184 +f 1916//188 1925//30 1917//186 +f 1914//189 1923//28 1915//183 +f 1943//190 1949//181 1950//177 +f 1941//42 1947//178 1948//35 +f 1939//191 1945//182 1946//179 +f 1943//190 1951//180 1944//192 +f 1941//42 1949//181 1942//193 +f 1939//191 1947//178 1940//194 +f 1945//182 1953//183 1946//179 +f 1950//177 1958//185 1951//180 +f 1949//181 1955//186 1956//187 +f 1946//179 1954//188 1947//178 +f 1949//181 1957//184 1950//177 +f 1947//178 1955//186 1948//35 +f 1937//195 1945//182 1938//196 +f 1945//182 1937//195 1952//189 +f 1944//192 1951//180 1937//195 +f 1951//180 1958//185 1937//195 +f 1958//185 1959//197 1937//195 +f 1957//184 1966//198 1958//185 +f 1937//195 1960//199 1952//189 +f 1955//186 1964//200 1956//187 +f 1953//183 1962//201 1954//188 +f 1956//187 1965//202 1957//184 +f 1954//188 1963//35 1955//186 +f 1952//189 1961//203 1953//183 +f 1982//122 1967//31 1974//122 +f 1980//108 1973//27 1972//108 +f 1978//38 1971//29 1970//38 +f 1976//37 1969//28 1968//37 +f 1981//27 1974//122 1973//27 +f 1979//29 1972//108 1971//29 +f 1977//28 1970//38 1969//28 +f 1975//31 1968//37 1967//31 +f 1961//203 1986//204 1962//201 +f 1959//197 1984//205 1960//199 +f 1964//200 1988//206 1965//202 +f 1960//199 1985//207 1961//203 +f 1959//197 1989//208 1983//33 +f 1966//198 1988//206 1989//208 +f 1989//208 1990//209 1983//33 +f 1988//206 1996//210 1989//208 +f 1985//207 1993//211 1986//204 +f 1983//33 1991//212 1984//205 +f 1988//206 1994//213 1995//214 +f 1985//207 1991//212 1992//215 +f 1962//201 1986//204 1963//35 +f 1986//204 1993//211 1963//35 +f 1963//35 1987//216 1964//200 +f 1987//216 1963//35 1994//213 +f 1963//35 2002//108 1994//213 +f 1996//210 1998//31 1990//209 +f 1993//211 1997//29 1963//35 +f 1995//214 2004//122 1996//210 +f 1992//215 2001//38 1993//211 +f 1990//209 1999//37 1991//212 +f 1994//213 2003//27 1995//214 +f 1991//212 2000//28 1992//215 +f 2012//89 2013//197 2005//32 +f 2011//27 2020//198 2012//89 +f 2005//32 2014//199 2006//57 +f 2009//30 2018//200 2010//90 +f 2007//28 2016//201 2008//56 +f 2010//90 2019//202 2011//27 +f 2008//56 2017//35 2009//30 +f 2006//57 2015//203 2007//28 +f 2015//203 2024//204 2016//201 +f 2013//197 2022//205 2014//199 +f 2019//202 2025//216 2026//206 +f 2014//199 2023//207 2015//203 +f 2013//197 2027//208 2021//33 +f 2020//198 2026//206 2027//208 +f 2021//33 2034//210 2028//209 +f 2026//206 2034//210 2027//208 +f 2024//204 2030//215 2031//211 +f 2021//33 2029//212 2022//205 +f 2025//216 2033//214 2026//206 +f 2023//207 2029//212 2030//215 +f 2016//201 2024//204 2017//35 +f 2024//204 2031//211 2017//35 +f 2017//35 2025//216 2018//200 +f 2025//216 2017//35 2032//213 +f 2017//35 2040//108 2032//213 +f 2034//210 2036//31 2028//209 +f 2031//211 2035//29 2017//35 +f 2033//214 2042//122 2034//210 +f 2030//215 2039//38 2031//211 +f 2028//209 2037//37 2029//212 +f 2032//213 2041//27 2033//214 +f 2029//212 2038//28 2030//215 +f 2249//29 2260//138 2248//138 +f 2246//30 2257//39 2245//39 +f 2253//40 2264//32 2252//32 +f 2250//139 2261//29 2249//29 +f 2247//140 2258//30 2246//30 +f 2256//31 2270//217 2255//136 +f 2266//141 2271//31 2256//31 +f 2251//137 2262//139 2250//139 +f 2248//138 2259//140 2247//140 +f 2244//136 2267//31 2243//31 +f 2243//31 2269//218 2254//141 +f 2252//32 2263//137 2251//137 +f 2270//217 2268//217 2257//39 +f 2272//218 2265//40 2253//40 +f 2287//219 2273//29 2284//138 +f 2285//29 2274//139 2273//29 +f 2288//29 2302//219 2299//138 +f 2289//139 2300//29 2288//29 +f 2297//30 2283//140 2282//30 +f 2296//39 2282//30 2281//39 +f 2295//136 2281//39 2280//136 +f 2294//31 2280//136 2279//31 +f 2293//141 2279//31 2278//141 +f 2292//40 2278//141 2277//40 +f 2291//32 2277//40 2276//32 +f 2290//137 2276//32 2275//137 +f 2275//137 2301//220 2290//137 +f 2298//140 2302//219 2287//219 +f 2308//138 2321//29 2309//29 +f 2305//39 2318//30 2306//30 +f 2312//32 2325//40 2313//40 +f 2309//29 2322//139 2310//139 +f 2306//30 2319//140 2307//140 +f 2313//40 2326//141 2314//141 +f 2303//31 2315//136 2304//136 +f 2310//139 2323//137 2311//137 +f 2307//140 2320//138 2308//138 +f 2314//141 2316//31 2303//31 +f 2304//136 2317//39 2305//39 +f 2311//137 2324//32 2312//32 +f 2336//32 2347//137 2335//137 +f 2333//29 2344//138 2332//138 +f 2330//30 2341//39 2329//39 +f 2337//40 2348//32 2336//32 +f 2334//139 2345//29 2333//29 +f 2331//140 2342//30 2330//30 +f 2338//141 2349//40 2337//40 +f 2328//136 2339//31 2327//31 +f 2335//137 2346//139 2334//139 +f 2332//138 2343//140 2331//140 +f 2327//31 2350//141 2338//141 +f 2329//39 2340//136 2328//136 +f 2358//139 2369//29 2357//29 +f 2355//140 2366//30 2354//30 +f 2362//141 2373//40 2361//40 +f 2352//136 2363//31 2351//31 +f 2359//137 2370//139 2358//139 +f 2356//138 2367//140 2355//140 +f 2351//31 2374//141 2362//141 +f 2353//39 2364//136 2352//136 +f 2360//32 2371//137 2359//137 +f 2357//29 2368//138 2356//138 +f 2354//30 2365//39 2353//39 +f 2361//40 2372//32 2360//32 +f 2374//221 2375//37 2386//221 +f 2364//222 2375//37 2363//37 +f 2365//223 2376//222 2364//222 +f 2365//223 2378//56 2377//223 +f 2367//224 2378//56 2366//56 +f 2368//225 2379//224 2367//224 +f 2369//38 2380//225 2368//225 +f 2370//226 2381//38 2369//38 +f 2371//227 2382//226 2370//226 +f 2371//227 2384//57 2383//227 +f 2373//228 2384//57 2372//57 +f 2373//228 2386//221 2385//228 +f 2388//40 2857//32 2389//32 +f 2395//30 2864//39 2396//39 +f 2392//29 2861//138 2393//138 +f 2389//32 2858//137 2390//137 +f 2396//39 2865//136 2397//136 +f 2398//31 2855//141 2387//141 +f 2393//138 2862//140 2394//140 +f 2390//137 2859//139 2391//139 +f 2397//136 2866//31 2398//31 +f 2387//141 2856//40 2388//40 +f 2394//140 2863//30 2395//30 +f 2391//139 2860//29 2392//29 +f 2405//29 2416//138 2404//138 +f 2402//30 2413//39 2401//39 +f 2409//40 2420//32 2408//32 +f 2406//139 2417//29 2405//29 +f 2403//140 2414//30 2402//30 +f 2412//31 2426//217 2411//136 +f 2422//141 2427//31 2412//31 +f 2407//137 2418//139 2406//139 +f 2404//138 2415//140 2403//140 +f 2400//136 2423//31 2399//31 +f 2399//31 2425//218 2410//141 +f 2408//32 2419//137 2407//137 +f 2413//39 2426//217 2424//217 +f 2428//218 2421//40 2409//40 +f 2443//219 2429//29 2440//138 +f 2441//29 2430//139 2429//29 +f 2444//29 2458//219 2455//138 +f 2445//139 2456//29 2444//29 +f 2453//30 2439//140 2438//30 +f 2452//39 2438//30 2437//39 +f 2451//136 2437//39 2436//136 +f 2450//31 2436//136 2435//31 +f 2449//141 2435//31 2434//141 +f 2448//40 2434//141 2433//40 +f 2447//32 2433//40 2432//32 +f 2446//137 2432//32 2431//137 +f 2431//137 2457//220 2446//137 +f 2454//140 2458//219 2443//219 +f 2464//138 2477//29 2465//29 +f 2461//39 2474//30 2462//30 +f 2468//32 2481//40 2469//40 +f 2465//29 2478//139 2466//139 +f 2462//30 2475//140 2463//140 +f 2469//40 2482//141 2470//141 +f 2459//31 2471//136 2460//136 +f 2466//139 2479//137 2467//137 +f 2463//140 2476//138 2464//138 +f 2470//141 2472//31 2459//31 +f 2460//136 2473//39 2461//39 +f 2467//137 2480//32 2468//32 +f 2492//32 2503//137 2491//137 +f 2489//29 2500//138 2488//138 +f 2486//30 2497//39 2485//39 +f 2493//40 2504//32 2492//32 +f 2490//139 2501//29 2489//29 +f 2487//140 2498//30 2486//30 +f 2494//141 2505//40 2493//40 +f 2484//136 2495//31 2483//31 +f 2491//137 2502//139 2490//139 +f 2488//138 2499//140 2487//140 +f 2483//31 2506//141 2494//141 +f 2485//39 2496//136 2484//136 +f 2532//228 2519//221 2520//228 +f 2532//228 2521//57 2533//57 +f 2534//227 2521//57 2522//227 +f 2534//227 2523//226 2535//226 +f 2535//226 2524//38 2536//38 +f 2536//38 2525//225 2537//225 +f 2537//225 2526//224 2538//224 +f 2538//224 2527//56 2539//56 +f 2540//223 2527//56 2528//223 +f 2541//222 2528//223 2529//222 +f 2541//222 2530//37 2542//37 +f 2531//221 2530//37 2519//221 +f 2544//40 2533//32 2545//32 +f 2551//30 2540//39 2552//39 +f 2548//29 2537//138 2549//138 +f 2545//32 2534//137 2546//137 +f 2552//39 2541//136 2553//136 +f 2554//31 2531//141 2543//141 +f 2549//138 2538//140 2550//140 +f 2546//137 2535//139 2547//139 +f 2553//136 2542//31 2554//31 +f 2543//141 2532//40 2544//40 +f 2550//140 2539//30 2551//30 +f 2547//139 2536//29 2548//29 +f 2705//138 2679//140 2706//140 +f 2710//31 2686//141 2699//141 +f 2708//39 2676//136 2709//136 +f 2701//32 2683//137 2702//137 +f 2704//29 2680//138 2705//138 +f 2707//30 2677//39 2708//39 +f 2700//40 2684//32 2701//32 +f 2703//139 2681//29 2704//29 +f 2706//140 2678//30 2707//30 +f 2699//141 2685//40 2700//40 +f 2709//136 2675//31 2710//31 +f 2702//137 2682//139 2703//139 +f 2561//29 2572//138 2560//138 +f 2558//30 2569//39 2557//39 +f 2565//40 2576//32 2564//32 +f 2562//139 2573//29 2561//29 +f 2559//140 2570//30 2558//30 +f 2568//31 2582//217 2567//136 +f 2578//141 2583//31 2568//31 +f 2563//137 2574//139 2562//139 +f 2560//138 2571//140 2559//140 +f 2556//136 2579//31 2555//31 +f 2555//31 2581//218 2566//141 +f 2564//32 2575//137 2563//137 +f 2569//39 2582//217 2580//217 +f 2584//218 2577//40 2565//40 +f 2599//219 2585//29 2596//138 +f 2597//29 2586//139 2585//29 +f 2600//29 2614//219 2611//138 +f 2601//139 2612//29 2600//29 +f 2609//30 2595//140 2594//30 +f 2608//39 2594//30 2593//39 +f 2607//136 2593//39 2592//136 +f 2606//31 2592//136 2591//31 +f 2605//141 2591//31 2590//141 +f 2604//40 2590//141 2589//40 +f 2603//32 2589//40 2588//32 +f 2602//137 2588//32 2587//137 +f 2587//137 2613//220 2602//137 +f 2610//140 2614//219 2599//219 +f 2620//138 2633//29 2621//29 +f 2617//39 2630//30 2618//30 +f 2624//32 2637//40 2625//40 +f 2621//29 2634//139 2622//139 +f 2618//30 2631//140 2619//140 +f 2625//40 2638//141 2626//141 +f 2615//31 2627//136 2616//136 +f 2622//139 2635//137 2623//137 +f 2619//140 2632//138 2620//138 +f 2626//141 2628//31 2615//31 +f 2616//136 2629//39 2617//39 +f 2623//137 2636//32 2624//32 +f 2648//32 2659//137 2647//137 +f 2645//29 2656//138 2644//138 +f 2642//30 2653//39 2641//39 +f 2649//40 2660//32 2648//32 +f 2646//139 2657//29 2645//29 +f 2643//140 2654//30 2642//30 +f 2650//141 2661//40 2649//40 +f 2640//136 2651//31 2639//31 +f 2647//137 2658//139 2646//139 +f 2644//138 2655//140 2643//140 +f 2639//31 2662//141 2650//141 +f 2641//39 2652//136 2640//136 +f 2698//229 2675//122 2687//122 +f 2675//122 2688//230 2687//122 +f 2676//230 2689//231 2688//230 +f 2689//231 2678//90 2690//90 +f 2678//90 2691//232 2690//90 +f 2691//232 2680//233 2692//233 +f 2680//233 2693//108 2692//233 +f 2681//108 2694//234 2693//108 +f 2694//234 2683//235 2695//235 +f 2695//235 2684//89 2696//89 +f 2684//89 2697//236 2696//89 +f 2685//236 2698//229 2697//236 +f 2694//139 2669//29 2693//29 +f 2691//140 2666//30 2690//30 +f 2698//141 2673//40 2697//40 +f 2688//136 2663//31 2687//31 +f 2695//137 2670//139 2694//139 +f 2692//138 2667//140 2691//140 +f 2687//31 2674//141 2698//141 +f 2689//39 2664//136 2688//136 +f 2696//32 2671//137 2695//137 +f 2693//29 2668//138 2692//138 +f 2690//30 2665//39 2689//39 +f 2697//40 2672//32 2696//32 +f 2819//221 2700//228 2820//228 +f 2820//228 2701//57 2821//57 +f 2822//227 2701//57 2702//227 +f 2823//226 2702//227 2703//226 +f 2823//226 2704//38 2824//38 +f 2824//38 2705//225 2825//225 +f 2825//225 2706//224 2826//224 +f 2826//224 2707//56 2827//56 +f 2828//223 2707//56 2708//223 +f 2828//223 2709//222 2829//222 +f 2829//222 2710//37 2830//37 +f 2819//221 2710//37 2699//221 +f 2717//29 2728//138 2716//138 +f 2714//30 2725//39 2713//39 +f 2721//40 2732//32 2720//32 +f 2718//139 2729//29 2717//29 +f 2715//140 2726//30 2714//30 +f 2724//31 2738//217 2723//136 +f 2734//141 2739//31 2724//31 +f 2719//137 2730//139 2718//139 +f 2716//138 2727//140 2715//140 +f 2712//136 2735//31 2711//31 +f 2711//31 2737//218 2722//141 +f 2720//32 2731//137 2719//137 +f 2725//39 2738//217 2736//217 +f 2740//218 2733//40 2721//40 +f 2755//219 2741//29 2752//138 +f 2753//29 2742//139 2741//29 +f 2756//29 2770//219 2767//138 +f 2757//139 2768//29 2756//29 +f 2765//30 2751//140 2750//30 +f 2764//39 2750//30 2749//39 +f 2763//136 2749//39 2748//136 +f 2762//31 2748//136 2747//31 +f 2761//141 2747//31 2746//141 +f 2760//40 2746//141 2745//40 +f 2759//32 2745//40 2744//32 +f 2758//137 2744//32 2743//137 +f 2743//137 2769//220 2758//137 +f 2766//140 2770//219 2755//219 +f 2776//138 2789//29 2777//29 +f 2773//39 2786//30 2774//30 +f 2780//32 2793//40 2781//40 +f 2777//29 2790//139 2778//139 +f 2774//30 2787//140 2775//140 +f 2781//40 2794//141 2782//141 +f 2771//31 2783//136 2772//136 +f 2778//139 2791//137 2779//137 +f 2775//140 2788//138 2776//138 +f 2782//141 2784//31 2771//31 +f 2772//136 2785//39 2773//39 +f 2779//137 2792//32 2780//32 +f 2804//32 2815//137 2803//137 +f 2801//29 2812//138 2800//138 +f 2798//30 2809//39 2797//39 +f 2805//40 2816//32 2804//32 +f 2802//139 2813//29 2801//29 +f 2799//140 2810//30 2798//30 +f 2806//141 2817//40 2805//40 +f 2796//136 2807//31 2795//31 +f 2803//137 2814//139 2802//139 +f 2800//138 2811//140 2799//140 +f 2795//31 2818//141 2806//141 +f 2797//39 2808//136 2796//136 +f 2832//40 2821//32 2833//32 +f 2839//30 2828//39 2840//39 +f 2836//29 2825//138 2837//138 +f 2833//32 2822//137 2834//137 +f 2840//39 2829//136 2841//136 +f 2842//31 2819//141 2831//141 +f 2837//138 2826//140 2838//140 +f 2834//137 2823//139 2835//139 +f 2841//136 2830//31 2842//31 +f 2831//141 2820//40 2832//40 +f 2838//140 2827//30 2839//30 +f 2835//139 2824//29 2836//29 +f 2388//236 2843//229 2387//229 +f 2845//89 2388//236 2389//89 +f 2390//235 2845//89 2389//89 +f 2847//234 2390//235 2391//234 +f 2848//108 2391//234 2392//108 +f 2849//233 2392//108 2393//233 +f 2850//232 2393//233 2394//232 +f 2851//90 2394//232 2395//90 +f 2396//231 2851//90 2395//90 +f 2397//230 2852//231 2396//231 +f 2854//122 2397//230 2398//122 +f 2387//229 2854//122 2398//122 +f 2383//137 2847//139 2382//139 +f 2376//136 2854//31 2375//31 +f 2386//141 2844//40 2385//40 +f 2379//140 2851//30 2378//30 +f 2382//139 2848//29 2381//29 +f 2385//40 2845//32 2384//32 +f 2378//30 2852//39 2377//39 +f 2381//29 2849//138 2380//138 +f 2384//32 2846//137 2383//137 +f 2377//39 2853//136 2376//136 +f 2375//31 2843//141 2386//141 +f 2380//138 2850//140 2379//140 +f 2517//40 2953//32 2516//32 +f 2510//30 2960//39 2509//39 +f 2513//29 2957//138 2512//138 +f 2516//32 2954//137 2515//137 +f 2509//39 2961//136 2508//136 +f 2507//31 2951//141 2518//141 +f 2512//138 2958//140 2511//140 +f 2515//137 2955//139 2514//139 +f 2508//136 2962//31 2507//31 +f 2518//141 2952//40 2517//40 +f 2511//140 2959//30 2510//30 +f 2514//139 2956//29 2513//29 +f 2909//138 2883//140 2910//140 +f 2914//31 2890//141 2903//141 +f 2912//39 2880//136 2913//136 +f 2905//32 2887//137 2906//137 +f 2908//29 2884//138 2909//138 +f 2911//30 2881//39 2912//39 +f 2904//40 2888//32 2905//32 +f 2907//139 2885//29 2908//29 +f 2910//140 2882//30 2911//30 +f 2903//141 2889//40 2904//40 +f 2913//136 2879//31 2914//31 +f 2906//137 2886//139 2907//139 +f 2902//229 2879//122 2891//122 +f 2879//122 2892//230 2891//122 +f 2880//230 2893//231 2892//230 +f 2893//231 2882//90 2894//90 +f 2882//90 2895//232 2894//90 +f 2895//232 2884//233 2896//233 +f 2884//233 2897//108 2896//233 +f 2885//108 2898//234 2897//108 +f 2898//234 2887//235 2899//235 +f 2899//235 2888//89 2900//89 +f 2888//89 2901//236 2900//89 +f 2889//236 2902//229 2901//236 +f 2898//139 2873//29 2897//29 +f 2895//140 2870//30 2894//30 +f 2902//141 2877//40 2901//40 +f 2892//136 2867//31 2891//31 +f 2899//137 2874//139 2898//139 +f 2896//138 2871//140 2895//140 +f 2891//31 2878//141 2902//141 +f 2893//39 2868//136 2892//136 +f 2900//32 2875//137 2899//137 +f 2897//29 2872//138 2896//138 +f 2894//30 2869//39 2893//39 +f 2901//40 2876//32 2900//32 +f 2915//221 2904//228 2916//228 +f 2916//228 2905//57 2917//57 +f 2918//227 2905//57 2906//227 +f 2919//226 2906//227 2907//226 +f 2919//226 2908//38 2920//38 +f 2920//38 2909//225 2921//225 +f 2921//225 2910//224 2922//224 +f 2922//224 2911//56 2923//56 +f 2924//223 2911//56 2912//223 +f 2924//223 2913//222 2925//222 +f 2925//222 2914//37 2926//37 +f 2915//221 2914//37 2903//221 +f 2928//40 2917//32 2929//32 +f 2935//30 2924//39 2936//39 +f 2932//29 2921//138 2933//138 +f 2929//32 2918//137 2930//137 +f 2936//39 2925//136 2937//136 +f 2938//31 2915//141 2927//141 +f 2933//138 2922//140 2934//140 +f 2930//137 2919//139 2931//139 +f 2937//136 2926//31 2938//31 +f 2927//141 2916//40 2928//40 +f 2934//140 2923//30 2935//30 +f 2931//139 2920//29 2932//29 +f 2517//236 2939//229 2518//229 +f 2941//89 2517//236 2516//89 +f 2515//235 2941//89 2516//89 +f 2943//234 2515//235 2514//234 +f 2944//108 2514//234 2513//108 +f 2945//233 2513//108 2512//233 +f 2946//232 2512//233 2511//232 +f 2947//90 2511//232 2510//90 +f 2509//231 2947//90 2510//90 +f 2508//230 2948//231 2509//231 +f 2950//122 2508//230 2507//122 +f 2518//229 2950//122 2507//122 +f 2522//137 2943//139 2523//139 +f 2529//136 2950//31 2530//31 +f 2519//141 2940//40 2520//40 +f 2526//140 2947//30 2527//30 +f 2523//139 2944//29 2524//29 +f 2520//40 2941//32 2521//32 +f 2527//30 2948//39 2528//39 +f 2524//29 2945//138 2525//138 +f 2521//32 2942//137 2522//137 +f 2528//39 2949//136 2529//136 +f 2530//31 2939//141 2519//141 +f 2525//138 2946//140 2526//140 +f 2989//34 3004//44 2988//44 +f 2982//47 2997//36 2981//36 +f 2990//41 3005//34 2989//34 +f 2983//30 2998//47 2982//47 +f 2991//32 3006//41 2990//41 +f 2984//49 2999//30 2983//30 +f 2992//45 3007//32 2991//32 +f 2985//35 3000//49 2984//49 +f 2993//33 3008//45 2992//45 +f 2986//42 3001//35 2985//35 +f 2994//46 3009//33 2993//33 +f 2987//29 3002//42 2986//42 +f 2980//43 2996//31 2979//31 +f 2979//31 3010//46 2994//46 +f 2988//44 3003//29 2987//29 +f 2981//36 2995//43 2980//43 +f 370//41 379//41 378//32 +f 350//42 366//42 365//35 +f 360//31 382//31 383//43 +f 351//29 367//29 366//42 +f 355//32 387//32 388//41 +f 344//43 391//43 392//31 +f 352//44 368//44 367//29 +f 357//33 385//33 386//45 +f 356//45 386//45 387//32 +f 358//46 384//46 385//33 +f 343//31 392//31 384//46 +f 347//30 363//30 362//47 +f 354//41 388//41 389//48 +f 348//49 364//49 363//30 +f 345//36 390//50 391//43 +f 349//35 365//35 364//49 +f 372//45 377//45 376//33 +f 374//46 375//46 382//31 +f 369//34 380//48 379//41 +f 359//43 383//43 381//50 +f 371//32 378//32 377//45 +f 373//33 376//33 375//46 +f 482//51 483//52 499//52 +f 471//33 487//33 486//45 +f 464//42 480//42 479//35 +f 472//46 488//46 487//33 +f 465//29 481//29 480//42 +f 458//43 473//43 474//31 +f 457//31 474//31 488//46 +f 466//44 482//44 481//29 +f 459//36 475//36 473//43 +f 467//34 483//34 482//44 +f 460//47 476//47 475//36 +f 468//41 484//41 483//34 +f 461//30 477//30 476//47 +f 469//32 485//32 484//41 +f 462//49 478//49 477//30 +f 470//45 486//45 485//32 +f 463//35 479//35 478//49 +f 475//53 476//54 492//54 +f 484//55 500//55 499//52 +f 477//56 493//56 492//54 +f 485//57 501//57 500//55 +f 478//58 494//58 493//56 +f 486//59 502//59 501//57 +f 479//60 495//60 494//58 +f 486//59 487//61 503//61 +f 480//62 496//62 495//60 +f 488//63 504//63 503//61 +f 480//62 481//38 497//38 +f 473//64 489//64 490//37 +f 488//63 474//37 490//37 +f 481//38 482//51 498//51 +f 475//53 491//53 489//64 +f 538//34 546//69 545//65 +f 536//35 544//70 543//66 +f 534//36 542//71 541//67 +f 533//31 541//67 548//68 +f 539//32 547//72 546//69 +f 537//29 545//65 544//70 +f 535//30 543//66 542//71 +f 540//33 548//68 547//72 +f 548//68 541//67 549//73 +f 546//69 547//72 555//75 +f 545//65 553//79 552//77 +f 543//66 551//80 550//78 +f 547//72 548//68 556//74 +f 545//65 546//69 554//76 +f 544//70 552//77 551//80 +f 542//71 550//78 549//73 +f 552//77 560//35 559//30 +f 550//78 558//36 557//31 +f 549//73 557//31 564//33 +f 555//75 563//32 562//34 +f 553//79 561//29 560//35 +f 551//80 559//30 558//36 +f 556//74 564//33 563//32 +f 554//76 562//34 561//29 +f 586//30 587//49 578//49 +f 582//44 583//82 567//34 +f 584//81 585//47 576//47 +f 589//42 581//29 565//29 +f 587//49 588//35 579//35 +f 581//29 582//44 566//44 +f 585//47 586//30 577//30 +f 588//35 589//42 580//42 +f 603//49 612//49 611//30 +f 592//34 608//82 607//44 +f 601//47 610//47 609//81 +f 590//29 606//29 614//42 +f 604//35 613//35 612//49 +f 591//44 607//44 606//29 +f 602//30 611//30 610//47 +f 605//42 614//42 613//35 +f 345//36 346//47 390//50 +f 346//47 362//47 390//50 +f 362//47 361//36 381//50 +f 568//41 567//34 583//82 +f 608//82 592//34 593//41 +f 568//41 583//82 608//82 +f 593//41 594//32 569//32 +f 594//32 595//45 570//45 +f 595//45 596//33 571//33 +f 596//33 597//46 572//46 +f 597//46 598//31 573//31 +f 598//31 599//43 574//43 +f 575//36 574//43 584//81 +f 574//43 599//43 584//81 +f 599//43 600//36 609//81 +f 352//44 353//34 389//48 +f 389//48 380//48 352//44 +f 380//48 369//34 368//44 +f 642//41 651//41 650//32 +f 622//42 638//42 637//35 +f 632//31 654//31 655//43 +f 623//29 639//29 638//42 +f 627//32 659//32 660//41 +f 616//43 663//43 664//31 +f 624//44 640//44 639//29 +f 629//33 657//33 658//45 +f 628//45 658//45 659//32 +f 630//46 656//46 657//33 +f 615//31 664//31 656//46 +f 619//30 635//30 634//47 +f 626//41 660//41 661//48 +f 620//49 636//49 635//30 +f 617//36 662//50 663//43 +f 621//35 637//35 636//49 +f 644//45 649//45 648//33 +f 646//46 647//46 654//31 +f 641//34 652//48 651//41 +f 631//43 655//43 653//50 +f 643//32 650//32 649//45 +f 645//33 648//33 647//46 +f 686//30 687//49 678//49 +f 682//44 683//82 667//34 +f 684//81 685//47 676//47 +f 689//42 681//29 665//29 +f 687//49 688//35 679//35 +f 681//29 682//44 666//44 +f 685//47 686//30 677//30 +f 688//35 689//42 680//42 +f 703//49 712//49 711//30 +f 692//34 708//82 707//44 +f 701//47 710//47 709//81 +f 690//29 706//29 714//42 +f 704//35 713//35 712//49 +f 691//44 707//44 706//29 +f 702//30 711//30 710//47 +f 705//42 714//42 713//35 +f 617//36 618//47 662//50 +f 618//47 634//47 662//50 +f 634//47 633//36 653//50 +f 668//41 667//34 683//82 +f 708//82 692//34 693//41 +f 668//41 683//82 708//82 +f 693//41 694//32 669//32 +f 694//32 695//45 670//45 +f 695//45 696//33 671//33 +f 696//33 697//46 672//46 +f 697//46 698//31 673//31 +f 698//31 699//43 674//43 +f 675//36 674//43 684//81 +f 674//43 699//43 684//81 +f 699//43 700//36 709//81 +f 624//44 625//34 661//48 +f 661//48 652//48 624//44 +f 652//48 641//34 640//44 +f 742//41 751//41 750//32 +f 722//42 738//42 737//35 +f 732//31 754//31 755//43 +f 723//29 739//29 738//42 +f 727//32 759//32 760//41 +f 716//43 763//43 764//31 +f 724//44 740//44 739//29 +f 729//33 757//33 758//45 +f 728//45 758//45 759//32 +f 730//46 756//46 757//33 +f 715//31 764//31 756//46 +f 719//30 735//30 734//47 +f 726//41 760//41 761//48 +f 720//49 736//49 735//30 +f 717//36 762//50 763//43 +f 721//35 737//35 736//49 +f 744//45 749//45 748//33 +f 746//46 747//46 754//31 +f 741//34 752//48 751//41 +f 731//43 755//43 753//50 +f 743//32 750//32 749//45 +f 745//33 748//33 747//46 +f 786//30 787//49 778//49 +f 782//44 783//82 767//34 +f 784//81 785//47 776//47 +f 789//42 781//29 765//29 +f 787//49 788//35 779//35 +f 781//29 782//44 766//44 +f 785//47 786//30 777//30 +f 788//35 789//42 780//42 +f 803//49 812//49 811//30 +f 792//34 808//82 807//44 +f 801//47 810//47 809//81 +f 790//29 806//29 814//42 +f 804//35 813//35 812//49 +f 791//44 807//44 806//29 +f 802//30 811//30 810//47 +f 805//42 814//42 813//35 +f 717//36 718//47 762//50 +f 718//47 734//47 762//50 +f 734//47 733//36 753//50 +f 768//41 767//34 783//82 +f 808//82 792//34 793//41 +f 768//41 783//82 808//82 +f 793//41 794//32 769//32 +f 794//32 795//45 770//45 +f 795//45 796//33 771//33 +f 796//33 797//46 772//46 +f 797//46 798//31 773//31 +f 798//31 799//43 774//43 +f 775//36 774//43 784//81 +f 774//43 799//43 784//81 +f 799//43 800//36 809//81 +f 724//44 725//34 761//48 +f 761//48 752//48 724//44 +f 752//48 741//34 740//44 +f 842//41 851//41 850//32 +f 822//42 838//42 837//35 +f 832//31 854//31 855//43 +f 823//29 839//29 838//42 +f 827//32 859//32 860//41 +f 816//43 863//43 864//31 +f 824//44 840//44 839//29 +f 829//33 857//33 858//45 +f 828//45 858//45 859//32 +f 830//46 856//46 857//33 +f 815//31 864//31 856//46 +f 819//30 835//30 834//47 +f 826//41 860//41 861//48 +f 820//49 836//49 835//30 +f 817//36 862//50 863//43 +f 821//35 837//35 836//49 +f 844//45 849//45 848//33 +f 846//46 847//46 854//31 +f 841//34 852//48 851//41 +f 831//43 855//43 853//50 +f 843//32 850//32 849//45 +f 845//33 848//33 847//46 +f 886//30 887//49 878//49 +f 882//44 883//82 867//34 +f 884//81 885//47 876//47 +f 889//42 881//29 865//29 +f 887//49 888//35 879//35 +f 881//29 882//44 866//44 +f 885//47 886//30 877//30 +f 888//35 889//42 880//42 +f 903//49 912//49 911//30 +f 892//34 908//82 907//44 +f 901//47 910//47 909//81 +f 890//29 906//29 914//42 +f 904//35 913//35 912//49 +f 891//44 907//44 906//29 +f 902//30 911//30 910//47 +f 905//42 914//42 913//35 +f 817//36 818//47 862//50 +f 818//47 834//47 862//50 +f 834//47 833//36 853//50 +f 868//41 867//34 883//82 +f 908//82 892//34 893//41 +f 868//41 883//82 908//82 +f 893//41 894//32 869//32 +f 894//32 895//45 870//45 +f 895//45 896//33 871//33 +f 896//33 897//46 872//46 +f 897//46 898//31 873//31 +f 898//31 899//43 874//43 +f 875//36 874//43 884//81 +f 874//43 899//43 884//81 +f 899//43 900//36 909//81 +f 824//44 825//34 861//48 +f 861//48 852//48 824//44 +f 852//48 841//34 840//44 +f 920//34 928//69 927//83 +f 918//35 926//70 925//66 +f 916//36 924//71 923//67 +f 915//31 923//67 930//68 +f 921//32 929//72 928//69 +f 919//29 927//83 926//70 +f 917//30 925//66 924//71 +f 922//33 930//68 929//72 +f 930//68 923//67 931//84 +f 928//69 929//72 937//75 +f 927//83 935//79 934//77 +f 925//66 933//80 932//78 +f 929//72 930//68 938//74 +f 927//83 928//69 936//76 +f 926//70 934//77 933//80 +f 924//71 932//78 931//84 +f 934//77 942//35 941//30 +f 932//78 940//36 939//31 +f 931//84 939//31 946//33 +f 937//75 945//32 944//34 +f 935//79 943//29 942//35 +f 933//80 941//30 940//36 +f 938//74 946//33 945//32 +f 936//76 944//34 943//29 +f 952//34 960//69 959//83 +f 950//35 958//70 957//66 +f 948//36 956//71 955//67 +f 947//31 955//67 962//68 +f 953//32 961//72 960//69 +f 951//29 959//83 958//70 +f 949//30 957//66 956//71 +f 954//33 962//68 961//72 +f 962//68 955//67 963//84 +f 960//69 961//72 969//75 +f 959//83 967//79 966//77 +f 957//66 965//80 964//78 +f 961//72 962//68 970//74 +f 959//83 960//69 968//76 +f 958//70 966//77 965//80 +f 956//71 964//78 963//84 +f 966//77 974//35 973//30 +f 964//78 972//36 971//31 +f 963//84 971//31 978//33 +f 969//75 977//32 976//34 +f 967//79 975//29 974//35 +f 965//80 973//30 972//36 +f 970//74 978//33 977//32 +f 968//76 976//34 975//29 +f 1015//85 1021//85 1020//27 +f 1013//86 1019//86 1017//87 +f 1016//88 1022//88 1021//85 +f 1014//27 1020//27 1019//86 +f 1012//87 1017//87 1018//28 +f 1011//28 1018//28 1022//88 +f 1079//85 1085//85 1084//27 +f 1077//86 1083//86 1081//87 +f 1080//88 1086//88 1085//85 +f 1078//27 1084//27 1083//86 +f 1076//87 1081//87 1082//28 +f 1075//28 1082//28 1086//88 +f 1137//32 1138//57 1130//57 +f 1135//27 1136//89 1128//89 +f 1133//30 1134//90 1126//90 +f 1131//28 1132//56 1124//56 +f 1138//57 1131//28 1123//28 +f 1136//89 1137//32 1129//32 +f 1134//90 1135//27 1127//27 +f 1132//56 1133//30 1125//30 +f 1153//32 1154//57 1146//57 +f 1151//27 1152//89 1144//89 +f 1149//30 1150//90 1142//90 +f 1147//28 1148//56 1140//56 +f 1154//57 1147//28 1139//28 +f 1152//89 1153//32 1145//32 +f 1150//90 1151//27 1143//27 +f 1148//56 1149//30 1141//30 +f 1177//32 1178//57 1170//57 +f 1175//27 1176//89 1168//89 +f 1173//30 1174//90 1166//90 +f 1171//28 1172//56 1164//56 +f 1178//57 1171//28 1163//28 +f 1176//89 1177//32 1169//32 +f 1174//90 1175//27 1167//27 +f 1172//56 1173//30 1165//30 +f 1193//32 1194//57 1186//57 +f 1191//27 1192//89 1184//89 +f 1189//30 1190//90 1182//90 +f 1187//28 1188//56 1180//56 +f 1194//57 1187//28 1179//28 +f 1192//89 1193//32 1185//32 +f 1190//90 1191//27 1183//27 +f 1188//56 1189//30 1181//30 +f 1206//91 1214//35 1213//30 +f 1204//93 1212//36 1211//31 +f 1203//37 1211//31 1218//33 +f 1209//95 1217//32 1216//34 +f 1207//97 1215//29 1214//35 +f 1205//92 1213//30 1212//36 +f 1210//94 1218//33 1217//32 +f 1208//96 1216//34 1215//29 +f 1222//98 1230//35 1229//30 +f 1220//100 1228//36 1227//31 +f 1219//101 1227//31 1234//33 +f 1225//103 1233//32 1232//34 +f 1223//38 1231//29 1230//35 +f 1221//99 1229//30 1228//36 +f 1226//102 1234//33 1233//32 +f 1224//104 1232//34 1231//29 +f 1245//105 1246//111 1241//106 +f 1247//108 1248//112 1239//109 +f 1209//95 1208//96 1246//111 +f 1205//92 1249//115 1248//112 +f 1208//96 1207//97 1247//108 +f 1209//95 1245//105 1244//113 +f 1205//92 1204//93 1250//114 +f 1206//91 1248//112 1247//108 +f 1249//115 1238//118 1239//109 +f 1246//111 1247//108 1240//110 +f 1245//105 1242//107 1243//116 +f 1249//115 1250//114 1237//117 +f 1220//100 1235//123 1251//119 +f 1225//103 1254//125 1255//120 +f 1221//99 1251//119 1252//121 +f 1220//100 1219//101 1236//122 +f 1226//102 1255//120 1236//122 +f 1225//103 1224//104 1253//124 +f 1255//120 1254//125 1261//126 +f 1252//121 1251//119 1258//128 +f 1236//122 1257//131 1256//130 +f 1236//122 1255//120 1262//127 +f 1254//125 1253//124 1260//132 +f 1235//123 1256//130 1258//128 +f 1242//107 1261//126 1260//132 +f 1243//116 1260//132 1223//38 +f 1259//129 1237//117 1203//37 +f 1237//117 1259//129 1258//128 +f 1238//118 1258//128 1256//130 +f 1239//109 1256//130 1257//131 +f 1240//110 1257//131 1262//127 +f 1241//106 1262//127 1261//126 +f 1266//91 1274//35 1273//30 +f 1264//93 1272//36 1271//31 +f 1263//37 1271//31 1278//33 +f 1269//95 1277//32 1276//34 +f 1267//97 1275//29 1274//35 +f 1265//92 1273//30 1272//36 +f 1270//94 1278//33 1277//32 +f 1268//96 1276//34 1275//29 +f 1282//98 1290//35 1289//30 +f 1280//100 1288//36 1287//31 +f 1279//101 1287//31 1294//33 +f 1285//103 1293//32 1292//34 +f 1283//38 1291//29 1290//35 +f 1281//99 1289//30 1288//36 +f 1286//102 1294//33 1293//32 +f 1284//104 1292//34 1291//29 +f 1305//105 1306//133 1301//106 +f 1307//108 1308//112 1299//109 +f 1268//96 1306//133 1305//105 +f 1265//92 1309//115 1308//112 +f 1267//97 1307//108 1306//133 +f 1269//95 1305//105 1304//113 +f 1265//92 1264//93 1310//114 +f 1266//91 1308//112 1307//108 +f 1309//115 1298//118 1299//109 +f 1306//133 1307//108 1300//110 +f 1305//105 1302//107 1303//116 +f 1309//115 1310//114 1297//117 +f 1280//100 1295//123 1311//119 +f 1285//103 1314//125 1315//134 +f 1281//99 1311//119 1312//121 +f 1280//100 1279//101 1296//122 +f 1286//102 1315//134 1296//122 +f 1285//103 1284//104 1313//124 +f 1315//134 1314//125 1321//126 +f 1312//121 1311//119 1318//128 +f 1296//122 1317//131 1316//130 +f 1296//122 1315//134 1322//127 +f 1314//125 1313//124 1320//132 +f 1295//123 1316//130 1318//128 +f 1302//107 1321//126 1320//132 +f 1303//116 1320//132 1283//38 +f 1319//129 1297//117 1263//37 +f 1297//117 1319//129 1318//128 +f 1298//118 1318//128 1316//130 +f 1299//109 1316//130 1317//131 +f 1300//110 1317//131 1322//127 +f 1301//106 1322//127 1321//126 +f 1326//91 1334//35 1333//30 +f 1324//93 1332//36 1331//31 +f 1323//37 1331//31 1338//33 +f 1329//95 1337//32 1336//34 +f 1327//97 1335//29 1334//35 +f 1325//92 1333//30 1332//36 +f 1330//94 1338//33 1337//32 +f 1328//96 1336//34 1335//29 +f 1342//98 1350//35 1349//30 +f 1340//100 1348//36 1347//31 +f 1339//101 1347//31 1354//33 +f 1345//103 1353//32 1352//34 +f 1343//38 1351//29 1350//35 +f 1341//99 1349//30 1348//36 +f 1346//102 1354//33 1353//32 +f 1344//104 1352//34 1351//29 +f 1365//105 1366//133 1361//106 +f 1367//108 1368//112 1359//109 +f 1328//96 1366//133 1365//105 +f 1325//92 1369//115 1368//112 +f 1328//96 1327//97 1367//108 +f 1329//95 1365//105 1364//113 +f 1325//92 1324//93 1370//114 +f 1326//91 1368//112 1367//108 +f 1369//115 1358//118 1359//109 +f 1366//133 1367//108 1360//110 +f 1365//105 1362//107 1363//116 +f 1369//115 1370//114 1357//117 +f 1340//100 1355//135 1371//119 +f 1346//102 1345//103 1374//125 +f 1341//99 1371//119 1372//121 +f 1340//100 1339//101 1356//122 +f 1346//102 1375//134 1356//122 +f 1345//103 1344//104 1373//124 +f 1375//134 1374//125 1381//126 +f 1372//121 1371//119 1378//128 +f 1356//122 1377//131 1376//130 +f 1356//122 1375//134 1382//127 +f 1373//124 1380//132 1381//126 +f 1355//135 1376//130 1378//128 +f 1362//107 1381//126 1380//132 +f 1363//116 1380//132 1343//38 +f 1379//129 1357//117 1323//37 +f 1357//117 1379//129 1378//128 +f 1358//118 1378//128 1376//130 +f 1359//109 1376//130 1377//131 +f 1360//110 1377//131 1382//127 +f 1361//106 1382//127 1381//126 +f 1398//33 1391//31 1383//31 +f 1396//34 1397//32 1389//32 +f 1394//35 1395//29 1387//29 +f 1392//36 1393//30 1385//30 +f 1397//32 1398//33 1390//33 +f 1395//29 1396//34 1388//34 +f 1393//30 1394//35 1386//35 +f 1391//31 1392//36 1384//36 +f 1521//32 1522//57 1514//57 +f 1519//27 1520//89 1512//89 +f 1517//30 1518//90 1510//90 +f 1515//28 1516//56 1508//56 +f 1522//57 1515//28 1507//28 +f 1520//89 1521//32 1513//32 +f 1518//90 1519//27 1511//27 +f 1516//56 1517//30 1509//30 +f 1537//32 1538//57 1530//57 +f 1535//27 1536//89 1528//89 +f 1533//30 1534//90 1526//90 +f 1531//28 1532//56 1524//56 +f 1538//57 1531//28 1523//28 +f 1536//89 1537//32 1529//32 +f 1534//90 1535//27 1527//27 +f 1532//56 1533//30 1525//30 +f 1554//33 1562//33 1561//32 +f 1552//34 1560//34 1559//29 +f 1550//35 1558//35 1557//30 +f 1548//36 1556//36 1555//31 +f 1547//31 1555//31 1562//33 +f 1553//32 1561//32 1560//34 +f 1551//29 1559//29 1558//35 +f 1549//30 1557//30 1556//36 +f 1570//33 1578//33 1577//32 +f 1568//34 1576//34 1575//29 +f 1566//35 1574//35 1573//30 +f 1564//36 1572//36 1571//31 +f 1563//31 1571//31 1578//33 +f 1569//32 1577//32 1576//34 +f 1567//29 1575//29 1574//35 +f 1565//30 1573//30 1572//36 +f 1586//33 1594//33 1593//32 +f 1584//34 1592//34 1591//29 +f 1582//35 1590//35 1589//30 +f 1580//36 1588//36 1587//31 +f 1579//31 1587//31 1594//33 +f 1585//32 1593//32 1592//34 +f 1583//29 1591//29 1590//35 +f 1581//30 1589//30 1588//36 +f 1602//33 1610//33 1609//32 +f 1600//34 1608//34 1607//29 +f 1598//35 1606//35 1605//30 +f 1596//36 1604//36 1603//31 +f 1595//31 1603//31 1610//33 +f 1601//32 1609//32 1608//34 +f 1599//29 1607//29 1606//35 +f 1597//30 1605//30 1604//36 +f 1612//136 1613//39 1625//39 +f 1620//32 1632//32 1631//137 +f 1617//29 1629//29 1628//138 +f 1614//30 1626//30 1625//39 +f 1621//40 1633//40 1632//32 +f 1618//139 1630//139 1629//29 +f 1615//140 1627//140 1626//30 +f 1622//141 1634//141 1633//40 +f 1612//136 1623//136 1624//31 +f 1619//137 1631//137 1630//139 +f 1616//138 1628//138 1627//140 +f 1611//31 1624//31 1634//141 +f 1636//136 1637//39 1649//39 +f 1644//32 1656//32 1655//137 +f 1641//29 1653//29 1652//138 +f 1638//30 1650//30 1649//39 +f 1645//40 1657//40 1656//32 +f 1642//139 1654//139 1653//29 +f 1639//140 1651//140 1650//30 +f 1646//141 1658//141 1657//40 +f 1636//136 1647//136 1648//31 +f 1643//137 1655//137 1654//139 +f 1640//138 1652//138 1651//140 +f 1635//31 1648//31 1658//141 +f 1770//142 1794//142 1784//27 +f 1722//142 1746//142 1736//27 +f 1702//30 1726//30 1727//86 +f 1709//88 1733//88 1734//143 +f 1699//28 1724//28 1723//144 +f 1706//145 1730//145 1731//85 +f 1703//86 1727//86 1728//142 +f 1710//143 1734//143 1724//28 +f 1700//144 1723//144 1725//87 +f 1707//85 1731//85 1732//32 +f 1704//142 1728//142 1729//27 +f 1701//87 1725//87 1726//30 +f 1708//32 1732//32 1733//88 +f 1705//27 1729//27 1730//145 +f 1750//30 1774//30 1775//86 +f 1711//145 1735//145 1737//85 +f 1719//87 1743//87 1744//30 +f 1716//143 1740//143 1741//28 +f 1713//85 1737//85 1738//32 +f 1720//30 1744//30 1745//86 +f 1717//28 1741//28 1742//144 +f 1714//32 1738//32 1739//88 +f 1721//86 1745//86 1746//142 +f 1712//27 1736//27 1735//145 +f 1718//144 1742//144 1743//87 +f 1715//88 1739//88 1740//143 +f 1757//88 1781//88 1782//143 +f 1747//28 1772//28 1771//144 +f 1754//145 1778//145 1779//85 +f 1751//86 1775//86 1776//142 +f 1758//143 1782//143 1772//28 +f 1748//144 1771//144 1773//87 +f 1755//85 1779//85 1780//32 +f 1752//142 1776//142 1777//27 +f 1749//87 1773//87 1774//30 +f 1756//32 1780//32 1781//88 +f 1753//27 1777//27 1778//145 +f 1759//145 1783//145 1785//85 +f 1767//87 1791//87 1792//30 +f 1764//143 1788//143 1789//28 +f 1761//85 1785//85 1786//32 +f 1768//30 1792//30 1793//86 +f 1765//28 1789//28 1790//144 +f 1762//32 1786//32 1787//88 +f 1769//86 1793//86 1794//142 +f 1760//27 1784//27 1783//145 +f 1766//144 1790//144 1791//87 +f 1763//88 1787//88 1788//143 +f 1801//146 1800//147 1812//147 +f 1798//148 1797//149 1809//149 +f 1804//150 1816//150 1817//151 +f 1802//152 1801//146 1813//146 +f 1798//148 1810//148 1811//153 +f 1806//154 1805//151 1817//151 +f 1795//155 1808//155 1807//156 +f 1802//152 1814//152 1815//157 +f 1799//153 1811//153 1812//147 +f 1806//154 1818//154 1808//155 +f 1796//156 1807//156 1809//149 +f 1804//150 1803//157 1815//157 +f 1825//158 1824//159 1836//159 +f 1822//160 1821//161 1833//161 +f 1828//162 1840//162 1841//163 +f 1825//158 1837//158 1838//164 +f 1823//165 1822//160 1834//160 +f 1830//166 1829//163 1841//163 +f 1819//167 1832//167 1831//168 +f 1827//169 1826//164 1838//164 +f 1824//159 1823//165 1835//165 +f 1830//166 1842//166 1832//167 +f 1820//168 1831//168 1833//161 +f 1828//162 1827//169 1839//169 +f 1873//27 1874//122 1866//122 +f 1871//29 1872//108 1864//108 +f 1869//28 1870//38 1862//38 +f 1867//31 1868//37 1860//37 +f 1874//122 1867//31 1859//31 +f 1872//108 1873//27 1865//27 +f 1870//38 1871//29 1863//29 +f 1868//37 1869//28 1861//28 +f 1889//27 1890//122 1882//122 +f 1887//29 1888//108 1880//108 +f 1885//28 1886//38 1878//38 +f 1883//31 1884//37 1876//37 +f 1890//122 1883//31 1875//31 +f 1888//108 1889//27 1881//27 +f 1886//38 1887//29 1879//29 +f 1884//37 1885//28 1877//28 +f 1905//170 1906//173 1898//122 +f 1903//171 1904//174 1896//108 +f 1901//172 1902//175 1894//38 +f 1899//33 1900//176 1892//37 +f 1906//173 1899//33 1891//31 +f 1904//174 1905//170 1897//27 +f 1902//175 1903//171 1895//29 +f 1900//176 1901//172 1893//28 +f 1904//174 1911//181 1912//177 +f 1903//171 1902//175 1909//178 +f 1900//176 1907//182 1908//179 +f 1905//170 1912//177 1913//180 +f 1903//171 1910//35 1911//181 +f 1901//172 1908//179 1909//178 +f 1907//182 1914//189 1915//183 +f 1913//180 1912//177 1919//184 +f 1911//181 1910//35 1917//186 +f 1908//179 1915//183 1916//188 +f 1911//181 1918//187 1919//184 +f 1909//178 1916//188 1917//186 +f 1920//185 1928//89 1921//32 +f 1919//184 1927//27 1928//89 +f 1899//33 1921//32 1922//57 +f 1917//186 1925//30 1926//90 +f 1915//183 1923//28 1924//56 +f 1918//187 1926//90 1927//27 +f 1916//188 1924//56 1925//30 +f 1914//189 1922//57 1923//28 +f 1943//190 1942//193 1949//181 +f 1941//42 1940//194 1947//178 +f 1939//191 1938//196 1945//182 +f 1943//190 1950//177 1951//180 +f 1941//42 1948//35 1949//181 +f 1939//191 1946//179 1947//178 +f 1945//182 1952//189 1953//183 +f 1950//177 1957//184 1958//185 +f 1949//181 1948//35 1955//186 +f 1946//179 1953//183 1954//188 +f 1949//181 1956//187 1957//184 +f 1947//178 1954//188 1955//186 +f 1958//185 1966//198 1959//197 +f 1957//184 1965//202 1966//198 +f 1937//195 1959//197 1960//199 +f 1955//186 1963//35 1964//200 +f 1953//183 1961//203 1962//201 +f 1956//187 1964//200 1965//202 +f 1954//188 1962//201 1963//35 +f 1952//189 1960//199 1961//203 +f 1982//122 1975//31 1967//31 +f 1980//108 1981//27 1973//27 +f 1978//38 1979//29 1971//29 +f 1976//37 1977//28 1969//28 +f 1981//27 1982//122 1974//122 +f 1979//29 1980//108 1972//108 +f 1977//28 1978//38 1970//38 +f 1975//31 1976//37 1968//37 +f 1961//203 1985//207 1986//204 +f 1959//197 1983//33 1984//205 +f 1964//200 1987//216 1988//206 +f 1960//199 1984//205 1985//207 +f 1959//197 1966//198 1989//208 +f 1966//198 1965//202 1988//206 +f 1989//208 1996//210 1990//209 +f 1988//206 1995//214 1996//210 +f 1985//207 1992//215 1993//211 +f 1983//33 1990//209 1991//212 +f 1988//206 1987//216 1994//213 +f 1985//207 1984//205 1991//212 +f 1963//35 1997//29 2002//108 +f 1996//210 2004//122 1998//31 +f 1993//211 2001//38 1997//29 +f 1995//214 2003//27 2004//122 +f 1992//215 2000//28 2001//38 +f 1990//209 1998//31 1999//37 +f 1994//213 2002//108 2003//27 +f 1991//212 1999//37 2000//28 +f 2012//89 2020//198 2013//197 +f 2011//27 2019//202 2020//198 +f 2005//32 2013//197 2014//199 +f 2009//30 2017//35 2018//200 +f 2007//28 2015//203 2016//201 +f 2010//90 2018//200 2019//202 +f 2008//56 2016//201 2017//35 +f 2006//57 2014//199 2015//203 +f 2015//203 2023//207 2024//204 +f 2013//197 2021//33 2022//205 +f 2019//202 2018//200 2025//216 +f 2014//199 2022//205 2023//207 +f 2013//197 2020//198 2027//208 +f 2020//198 2019//202 2026//206 +f 2021//33 2027//208 2034//210 +f 2026//206 2033//214 2034//210 +f 2024//204 2023//207 2030//215 +f 2021//33 2028//209 2029//212 +f 2025//216 2032//213 2033//214 +f 2023//207 2022//205 2029//212 +f 2017//35 2035//29 2040//108 +f 2034//210 2042//122 2036//31 +f 2031//211 2039//38 2035//29 +f 2033//214 2041//27 2042//122 +f 2030//215 2038//28 2039//38 +f 2028//209 2036//31 2037//37 +f 2032//213 2040//108 2041//27 +f 2029//212 2037//37 2038//28 +f 2249//29 2261//29 2260//138 +f 2246//30 2258//30 2257//39 +f 2253//40 2265//40 2264//32 +f 2250//139 2262//139 2261//29 +f 2247//140 2259//140 2258//30 +f 2256//31 2271//31 2270//217 +f 2266//141 2272//218 2271//31 +f 2251//137 2263//137 2262//139 +f 2248//138 2260//138 2259//140 +f 2244//136 2268//217 2267//31 +f 2243//31 2267//31 2269//218 +f 2252//32 2264//32 2263//137 +f 2244//136 2245//39 2268//217 +f 2245//39 2257//39 2268//217 +f 2257//39 2255//136 2270//217 +f 2253//40 2254//141 2269//218 +f 2272//218 2266//141 2265//40 +f 2253//40 2269//218 2272//218 +f 2287//219 2285//29 2273//29 +f 2285//29 2286//220 2274//139 +f 2288//29 2300//29 2302//219 +f 2289//139 2301//220 2300//29 +f 2297//30 2298//140 2283//140 +f 2296//39 2297//30 2282//30 +f 2295//136 2296//39 2281//39 +f 2294//31 2295//136 2280//136 +f 2293//141 2294//31 2279//31 +f 2292//40 2293//141 2278//141 +f 2291//32 2292//40 2277//40 +f 2290//137 2291//32 2276//32 +f 2275//137 2274//139 2286//220 +f 2286//220 2301//220 2275//137 +f 2301//220 2289//139 2290//137 +f 2284//138 2283//140 2287//219 +f 2283//140 2298//140 2287//219 +f 2298//140 2299//138 2302//219 +f 2308//138 2320//138 2321//29 +f 2305//39 2317//39 2318//30 +f 2312//32 2324//32 2325//40 +f 2309//29 2321//29 2322//139 +f 2306//30 2318//30 2319//140 +f 2313//40 2325//40 2326//141 +f 2303//31 2316//31 2315//136 +f 2310//139 2322//139 2323//137 +f 2307//140 2319//140 2320//138 +f 2314//141 2326//141 2316//31 +f 2304//136 2315//136 2317//39 +f 2311//137 2323//137 2324//32 +f 2336//32 2348//32 2347//137 +f 2333//29 2345//29 2344//138 +f 2330//30 2342//30 2341//39 +f 2337//40 2349//40 2348//32 +f 2334//139 2346//139 2345//29 +f 2331//140 2343//140 2342//30 +f 2338//141 2350//141 2349//40 +f 2328//136 2340//136 2339//31 +f 2335//137 2347//137 2346//139 +f 2332//138 2344//138 2343//140 +f 2327//31 2339//31 2350//141 +f 2329//39 2341//39 2340//136 +f 2358//139 2370//139 2369//29 +f 2355//140 2367//140 2366//30 +f 2362//141 2374//141 2373//40 +f 2352//136 2364//136 2363//31 +f 2359//137 2371//137 2370//139 +f 2356//138 2368//138 2367//140 +f 2351//31 2363//31 2374//141 +f 2353//39 2365//39 2364//136 +f 2360//32 2372//32 2371//137 +f 2357//29 2369//29 2368//138 +f 2354//30 2366//30 2365//39 +f 2361//40 2373//40 2372//32 +f 2374//221 2363//37 2375//37 +f 2364//222 2376//222 2375//37 +f 2365//223 2377//223 2376//222 +f 2365//223 2366//56 2378//56 +f 2367//224 2379//224 2378//56 +f 2368//225 2380//225 2379//224 +f 2369//38 2381//38 2380//225 +f 2370//226 2382//226 2381//38 +f 2371//227 2383//227 2382//226 +f 2371//227 2372//57 2384//57 +f 2373//228 2385//228 2384//57 +f 2373//228 2374//221 2386//221 +f 2388//40 2856//40 2857//32 +f 2395//30 2863//30 2864//39 +f 2392//29 2860//29 2861//138 +f 2389//32 2857//32 2858//137 +f 2396//39 2864//39 2865//136 +f 2398//31 2866//31 2855//141 +f 2393//138 2861//138 2862//140 +f 2390//137 2858//137 2859//139 +f 2397//136 2865//136 2866//31 +f 2387//141 2855//141 2856//40 +f 2394//140 2862//140 2863//30 +f 2391//139 2859//139 2860//29 +f 2405//29 2417//29 2416//138 +f 2402//30 2414//30 2413//39 +f 2409//40 2421//40 2420//32 +f 2406//139 2418//139 2417//29 +f 2403//140 2415//140 2414//30 +f 2412//31 2427//31 2426//217 +f 2422//141 2428//218 2427//31 +f 2407//137 2419//137 2418//139 +f 2404//138 2416//138 2415//140 +f 2400//136 2424//217 2423//31 +f 2399//31 2423//31 2425//218 +f 2408//32 2420//32 2419//137 +f 2400//136 2401//39 2424//217 +f 2401//39 2413//39 2424//217 +f 2413//39 2411//136 2426//217 +f 2409//40 2410//141 2425//218 +f 2428//218 2422//141 2421//40 +f 2409//40 2425//218 2428//218 +f 2443//219 2441//29 2429//29 +f 2441//29 2442//220 2430//139 +f 2444//29 2456//29 2458//219 +f 2445//139 2457//220 2456//29 +f 2453//30 2454//140 2439//140 +f 2452//39 2453//30 2438//30 +f 2451//136 2452//39 2437//39 +f 2450//31 2451//136 2436//136 +f 2449//141 2450//31 2435//31 +f 2448//40 2449//141 2434//141 +f 2447//32 2448//40 2433//40 +f 2446//137 2447//32 2432//32 +f 2431//137 2430//139 2442//220 +f 2442//220 2457//220 2431//137 +f 2457//220 2445//139 2446//137 +f 2440//138 2439//140 2443//219 +f 2439//140 2454//140 2443//219 +f 2454//140 2455//138 2458//219 +f 2464//138 2476//138 2477//29 +f 2461//39 2473//39 2474//30 +f 2468//32 2480//32 2481//40 +f 2465//29 2477//29 2478//139 +f 2462//30 2474//30 2475//140 +f 2469//40 2481//40 2482//141 +f 2459//31 2472//31 2471//136 +f 2466//139 2478//139 2479//137 +f 2463//140 2475//140 2476//138 +f 2470//141 2482//141 2472//31 +f 2460//136 2471//136 2473//39 +f 2467//137 2479//137 2480//32 +f 2492//32 2504//32 2503//137 +f 2489//29 2501//29 2500//138 +f 2486//30 2498//30 2497//39 +f 2493//40 2505//40 2504//32 +f 2490//139 2502//139 2501//29 +f 2487//140 2499//140 2498//30 +f 2494//141 2506//141 2505//40 +f 2484//136 2496//136 2495//31 +f 2491//137 2503//137 2502//139 +f 2488//138 2500//138 2499//140 +f 2483//31 2495//31 2506//141 +f 2485//39 2497//39 2496//136 +f 2532//228 2531//221 2519//221 +f 2532//228 2520//228 2521//57 +f 2534//227 2533//57 2521//57 +f 2534//227 2522//227 2523//226 +f 2535//226 2523//226 2524//38 +f 2536//38 2524//38 2525//225 +f 2537//225 2525//225 2526//224 +f 2538//224 2526//224 2527//56 +f 2540//223 2539//56 2527//56 +f 2541//222 2540//223 2528//223 +f 2541//222 2529//222 2530//37 +f 2531//221 2542//37 2530//37 +f 2544//40 2532//40 2533//32 +f 2551//30 2539//30 2540//39 +f 2548//29 2536//29 2537//138 +f 2545//32 2533//32 2534//137 +f 2552//39 2540//39 2541//136 +f 2554//31 2542//31 2531//141 +f 2549//138 2537//138 2538//140 +f 2546//137 2534//137 2535//139 +f 2553//136 2541//136 2542//31 +f 2543//141 2531//141 2532//40 +f 2550//140 2538//140 2539//30 +f 2547//139 2535//139 2536//29 +f 2705//138 2680//138 2679//140 +f 2710//31 2675//31 2686//141 +f 2708//39 2677//39 2676//136 +f 2701//32 2684//32 2683//137 +f 2704//29 2681//29 2680//138 +f 2707//30 2678//30 2677//39 +f 2700//40 2685//40 2684//32 +f 2703//139 2682//139 2681//29 +f 2706//140 2679//140 2678//30 +f 2699//141 2686//141 2685//40 +f 2709//136 2676//136 2675//31 +f 2702//137 2683//137 2682//139 +f 2561//29 2573//29 2572//138 +f 2558//30 2570//30 2569//39 +f 2565//40 2577//40 2576//32 +f 2562//139 2574//139 2573//29 +f 2559//140 2571//140 2570//30 +f 2568//31 2583//31 2582//217 +f 2578//141 2584//218 2583//31 +f 2563//137 2575//137 2574//139 +f 2560//138 2572//138 2571//140 +f 2556//136 2580//217 2579//31 +f 2555//31 2579//31 2581//218 +f 2564//32 2576//32 2575//137 +f 2556//136 2557//39 2580//217 +f 2557//39 2569//39 2580//217 +f 2569//39 2567//136 2582//217 +f 2565//40 2566//141 2581//218 +f 2584//218 2578//141 2577//40 +f 2565//40 2581//218 2584//218 +f 2599//219 2597//29 2585//29 +f 2597//29 2598//220 2586//139 +f 2600//29 2612//29 2614//219 +f 2601//139 2613//220 2612//29 +f 2609//30 2610//140 2595//140 +f 2608//39 2609//30 2594//30 +f 2607//136 2608//39 2593//39 +f 2606//31 2607//136 2592//136 +f 2605//141 2606//31 2591//31 +f 2604//40 2605//141 2590//141 +f 2603//32 2604//40 2589//40 +f 2602//137 2603//32 2588//32 +f 2587//137 2586//139 2598//220 +f 2598//220 2613//220 2587//137 +f 2613//220 2601//139 2602//137 +f 2596//138 2595//140 2599//219 +f 2595//140 2610//140 2599//219 +f 2610//140 2611//138 2614//219 +f 2620//138 2632//138 2633//29 +f 2617//39 2629//39 2630//30 +f 2624//32 2636//32 2637//40 +f 2621//29 2633//29 2634//139 +f 2618//30 2630//30 2631//140 +f 2625//40 2637//40 2638//141 +f 2615//31 2628//31 2627//136 +f 2622//139 2634//139 2635//137 +f 2619//140 2631//140 2632//138 +f 2626//141 2638//141 2628//31 +f 2616//136 2627//136 2629//39 +f 2623//137 2635//137 2636//32 +f 2648//32 2660//32 2659//137 +f 2645//29 2657//29 2656//138 +f 2642//30 2654//30 2653//39 +f 2649//40 2661//40 2660//32 +f 2646//139 2658//139 2657//29 +f 2643//140 2655//140 2654//30 +f 2650//141 2662//141 2661//40 +f 2640//136 2652//136 2651//31 +f 2647//137 2659//137 2658//139 +f 2644//138 2656//138 2655//140 +f 2639//31 2651//31 2662//141 +f 2641//39 2653//39 2652//136 +f 2698//229 2686//229 2675//122 +f 2675//122 2676//230 2688//230 +f 2676//230 2677//231 2689//231 +f 2689//231 2677//231 2678//90 +f 2678//90 2679//232 2691//232 +f 2691//232 2679//232 2680//233 +f 2680//233 2681//108 2693//108 +f 2681//108 2682//234 2694//234 +f 2694//234 2682//234 2683//235 +f 2695//235 2683//235 2684//89 +f 2684//89 2685//236 2697//236 +f 2685//236 2686//229 2698//229 +f 2694//139 2670//139 2669//29 +f 2691//140 2667//140 2666//30 +f 2698//141 2674//141 2673//40 +f 2688//136 2664//136 2663//31 +f 2695//137 2671//137 2670//139 +f 2692//138 2668//138 2667//140 +f 2687//31 2663//31 2674//141 +f 2689//39 2665//39 2664//136 +f 2696//32 2672//32 2671//137 +f 2693//29 2669//29 2668//138 +f 2690//30 2666//30 2665//39 +f 2697//40 2673//40 2672//32 +f 2819//221 2699//221 2700//228 +f 2820//228 2700//228 2701//57 +f 2822//227 2821//57 2701//57 +f 2823//226 2822//227 2702//227 +f 2823//226 2703//226 2704//38 +f 2824//38 2704//38 2705//225 +f 2825//225 2705//225 2706//224 +f 2826//224 2706//224 2707//56 +f 2828//223 2827//56 2707//56 +f 2828//223 2708//223 2709//222 +f 2829//222 2709//222 2710//37 +f 2819//221 2830//37 2710//37 +f 2717//29 2729//29 2728//138 +f 2714//30 2726//30 2725//39 +f 2721//40 2733//40 2732//32 +f 2718//139 2730//139 2729//29 +f 2715//140 2727//140 2726//30 +f 2724//31 2739//31 2738//217 +f 2734//141 2740//218 2739//31 +f 2719//137 2731//137 2730//139 +f 2716//138 2728//138 2727//140 +f 2712//136 2736//217 2735//31 +f 2711//31 2735//31 2737//218 +f 2720//32 2732//32 2731//137 +f 2712//136 2713//39 2736//217 +f 2713//39 2725//39 2736//217 +f 2725//39 2723//136 2738//217 +f 2721//40 2722//141 2737//218 +f 2740//218 2734//141 2733//40 +f 2721//40 2737//218 2740//218 +f 2755//219 2753//29 2741//29 +f 2753//29 2754//220 2742//139 +f 2756//29 2768//29 2770//219 +f 2757//139 2769//220 2768//29 +f 2765//30 2766//140 2751//140 +f 2764//39 2765//30 2750//30 +f 2763//136 2764//39 2749//39 +f 2762//31 2763//136 2748//136 +f 2761//141 2762//31 2747//31 +f 2760//40 2761//141 2746//141 +f 2759//32 2760//40 2745//40 +f 2758//137 2759//32 2744//32 +f 2743//137 2742//139 2754//220 +f 2754//220 2769//220 2743//137 +f 2769//220 2757//139 2758//137 +f 2752//138 2751//140 2755//219 +f 2751//140 2766//140 2755//219 +f 2766//140 2767//138 2770//219 +f 2776//138 2788//138 2789//29 +f 2773//39 2785//39 2786//30 +f 2780//32 2792//32 2793//40 +f 2777//29 2789//29 2790//139 +f 2774//30 2786//30 2787//140 +f 2781//40 2793//40 2794//141 +f 2771//31 2784//31 2783//136 +f 2778//139 2790//139 2791//137 +f 2775//140 2787//140 2788//138 +f 2782//141 2794//141 2784//31 +f 2772//136 2783//136 2785//39 +f 2779//137 2791//137 2792//32 +f 2804//32 2816//32 2815//137 +f 2801//29 2813//29 2812//138 +f 2798//30 2810//30 2809//39 +f 2805//40 2817//40 2816//32 +f 2802//139 2814//139 2813//29 +f 2799//140 2811//140 2810//30 +f 2806//141 2818//141 2817//40 +f 2796//136 2808//136 2807//31 +f 2803//137 2815//137 2814//139 +f 2800//138 2812//138 2811//140 +f 2795//31 2807//31 2818//141 +f 2797//39 2809//39 2808//136 +f 2832//40 2820//40 2821//32 +f 2839//30 2827//30 2828//39 +f 2836//29 2824//29 2825//138 +f 2833//32 2821//32 2822//137 +f 2840//39 2828//39 2829//136 +f 2842//31 2830//31 2819//141 +f 2837//138 2825//138 2826//140 +f 2834//137 2822//137 2823//139 +f 2841//136 2829//136 2830//31 +f 2831//141 2819//141 2820//40 +f 2838//140 2826//140 2827//30 +f 2835//139 2823//139 2824//29 +f 2388//236 2844//236 2843//229 +f 2845//89 2844//236 2388//236 +f 2390//235 2846//235 2845//89 +f 2847//234 2846//235 2390//235 +f 2848//108 2847//234 2391//234 +f 2849//233 2848//108 2392//108 +f 2850//232 2849//233 2393//233 +f 2851//90 2850//232 2394//232 +f 2396//231 2852//231 2851//90 +f 2397//230 2853//230 2852//231 +f 2854//122 2853//230 2397//230 +f 2387//229 2843//229 2854//122 +f 2383//137 2846//137 2847//139 +f 2376//136 2853//136 2854//31 +f 2386//141 2843//141 2844//40 +f 2379//140 2850//140 2851//30 +f 2382//139 2847//139 2848//29 +f 2385//40 2844//40 2845//32 +f 2378//30 2851//30 2852//39 +f 2381//29 2848//29 2849//138 +f 2384//32 2845//32 2846//137 +f 2377//39 2852//39 2853//136 +f 2375//31 2854//31 2843//141 +f 2380//138 2849//138 2850//140 +f 2517//40 2952//40 2953//32 +f 2510//30 2959//30 2960//39 +f 2513//29 2956//29 2957//138 +f 2516//32 2953//32 2954//137 +f 2509//39 2960//39 2961//136 +f 2507//31 2962//31 2951//141 +f 2512//138 2957//138 2958//140 +f 2515//137 2954//137 2955//139 +f 2508//136 2961//136 2962//31 +f 2518//141 2951//141 2952//40 +f 2511//140 2958//140 2959//30 +f 2514//139 2955//139 2956//29 +f 2909//138 2884//138 2883//140 +f 2914//31 2879//31 2890//141 +f 2912//39 2881//39 2880//136 +f 2905//32 2888//32 2887//137 +f 2908//29 2885//29 2884//138 +f 2911//30 2882//30 2881//39 +f 2904//40 2889//40 2888//32 +f 2907//139 2886//139 2885//29 +f 2910//140 2883//140 2882//30 +f 2903//141 2890//141 2889//40 +f 2913//136 2880//136 2879//31 +f 2906//137 2887//137 2886//139 +f 2902//229 2890//229 2879//122 +f 2879//122 2880//230 2892//230 +f 2880//230 2881//231 2893//231 +f 2893//231 2881//231 2882//90 +f 2882//90 2883//232 2895//232 +f 2895//232 2883//232 2884//233 +f 2884//233 2885//108 2897//108 +f 2885//108 2886//234 2898//234 +f 2898//234 2886//234 2887//235 +f 2899//235 2887//235 2888//89 +f 2888//89 2889//236 2901//236 +f 2889//236 2890//229 2902//229 +f 2898//139 2874//139 2873//29 +f 2895//140 2871//140 2870//30 +f 2902//141 2878//141 2877//40 +f 2892//136 2868//136 2867//31 +f 2899//137 2875//137 2874//139 +f 2896//138 2872//138 2871//140 +f 2891//31 2867//31 2878//141 +f 2893//39 2869//39 2868//136 +f 2900//32 2876//32 2875//137 +f 2897//29 2873//29 2872//138 +f 2894//30 2870//30 2869//39 +f 2901//40 2877//40 2876//32 +f 2915//221 2903//221 2904//228 +f 2916//228 2904//228 2905//57 +f 2918//227 2917//57 2905//57 +f 2919//226 2918//227 2906//227 +f 2919//226 2907//226 2908//38 +f 2920//38 2908//38 2909//225 +f 2921//225 2909//225 2910//224 +f 2922//224 2910//224 2911//56 +f 2924//223 2923//56 2911//56 +f 2924//223 2912//223 2913//222 +f 2925//222 2913//222 2914//37 +f 2915//221 2926//37 2914//37 +f 2928//40 2916//40 2917//32 +f 2935//30 2923//30 2924//39 +f 2932//29 2920//29 2921//138 +f 2929//32 2917//32 2918//137 +f 2936//39 2924//39 2925//136 +f 2938//31 2926//31 2915//141 +f 2933//138 2921//138 2922//140 +f 2930//137 2918//137 2919//139 +f 2937//136 2925//136 2926//31 +f 2927//141 2915//141 2916//40 +f 2934//140 2922//140 2923//30 +f 2931//139 2919//139 2920//29 +f 2517//236 2940//236 2939//229 +f 2941//89 2940//236 2517//236 +f 2515//235 2942//237 2941//89 +f 2943//234 2942//237 2515//235 +f 2944//108 2943//234 2514//234 +f 2945//233 2944//108 2513//108 +f 2946//232 2945//233 2512//233 +f 2947//90 2946//232 2511//232 +f 2509//231 2948//231 2947//90 +f 2508//230 2949//230 2948//231 +f 2950//122 2949//230 2508//230 +f 2518//229 2939//229 2950//122 +f 2522//137 2942//137 2943//139 +f 2529//136 2949//136 2950//31 +f 2519//141 2939//141 2940//40 +f 2526//140 2946//140 2947//30 +f 2523//139 2943//139 2944//29 +f 2520//40 2940//40 2941//32 +f 2527//30 2947//30 2948//39 +f 2524//29 2944//29 2945//138 +f 2521//32 2941//32 2942//137 +f 2528//39 2948//39 2949//136 +f 2530//31 2950//31 2939//141 +f 2525//138 2945//138 2946//140 +f 2989//34 3005//34 3004//44 +f 2982//47 2998//47 2997//36 +f 2990//41 3006//41 3005//34 +f 2983//30 2999//30 2998//47 +f 2991//32 3007//32 3006//41 +f 2984//49 3000//49 2999//30 +f 2992//45 3008//45 3007//32 +f 2985//35 3001//35 3000//49 +f 2993//33 3009//33 3008//45 +f 2986//42 3002//42 3001//35 +f 2994//46 3010//46 3009//33 +f 2987//29 3003//29 3002//42 +f 2980//43 2995//43 2996//31 +f 2979//31 2996//31 3010//46 +f 2988//44 3004//44 3003//29 +f 2981//36 2997//36 2995//43 +o Base +v 2.250000 0.000000 2.375000 +v -2.250000 0.000000 2.375000 +v 2.250000 0.000000 2.500000 +v -2.250000 0.000000 2.500000 +v -2.500000 0.000000 2.500000 +v -2.250000 0.000000 2.500000 +v -2.500000 0.000000 2.250000 +v -2.250000 0.000000 2.250000 +v -2.500000 0.250000 2.500000 +v -2.250000 0.250000 2.500000 +v -2.500000 0.250000 2.250000 +v -2.250000 0.250000 2.250000 +v 2.250000 0.000000 2.500000 +v 2.500000 0.000000 2.500000 +v 2.250000 0.000000 2.250000 +v 2.500000 0.000000 2.250000 +v 2.250000 0.250000 2.500000 +v 2.500000 0.250000 2.500000 +v 2.250000 0.250000 2.250000 +v 2.500000 0.250000 2.250000 +v -2.500000 0.000000 -2.250000 +v -2.250000 0.000000 -2.250000 +v -2.500000 0.000000 -2.500000 +v -2.250000 0.000000 -2.500000 +v -2.500000 0.250000 -2.250000 +v -2.250000 0.250000 -2.250000 +v -2.500000 0.250000 -2.500000 +v -2.250000 0.250000 -2.500000 +v 2.250000 0.000000 -2.250000 +v 2.500000 0.000000 -2.250000 +v 2.250000 0.000000 -2.500000 +v 2.500000 0.000000 -2.500000 +v 2.250000 0.250000 -2.250000 +v 2.500000 0.250000 -2.250000 +v 2.250000 0.250000 -2.500000 +v 2.500000 0.250000 -2.500000 +v -2.250000 0.125000 2.375000 +v 2.250000 0.125000 2.375000 +v 2.250000 0.125000 2.500000 +v -2.250000 0.125000 2.500000 +v 2.250000 0.000000 -2.375000 +v -2.250000 0.000000 -2.375000 +v -2.250000 0.000000 -2.500000 +v 2.250000 0.000000 -2.500000 +v 2.250000 0.125000 -2.375000 +v -2.250000 0.125000 -2.375000 +v -2.250000 0.125000 -2.500000 +v 2.250000 0.125000 -2.500000 +v 2.375000 0.000000 2.250000 +v 2.375000 0.000000 -2.250000 +v 2.500000 0.000000 -2.250000 +v 2.500000 0.000000 2.250000 +v 2.375000 0.125000 2.250000 +v 2.375000 0.125000 -2.250000 +v 2.500000 0.125000 -2.250000 +v 2.500000 0.125000 2.250000 +v -2.375000 0.000000 -2.250000 +v -2.375000 0.000000 2.250000 +v -2.500000 0.000000 2.250000 +v -2.500000 0.000000 -2.250000 +v -2.375000 0.125000 -2.250000 +v -2.375000 0.125000 2.250000 +v -2.500000 0.125000 2.250000 +v -2.500000 0.125000 -2.250000 +v -1.875000 0.250000 -2.500000 +v -1.875000 0.250000 2.500000 +v -2.125000 0.250000 2.500000 +v -2.125000 0.250000 -2.500000 +v -1.875000 0.125000 -2.500000 +v -2.125000 0.125000 -2.500000 +v -1.875000 0.125000 2.500000 +v -2.125000 0.125000 2.500000 +v 0.125000 0.250000 -2.500000 +v 0.125000 0.250000 2.500000 +v -0.125000 0.250000 2.500000 +v -0.125000 0.250000 -2.500000 +v 0.125000 0.125000 -2.500000 +v -0.125000 0.125000 -2.500000 +v 0.125000 0.125000 2.500000 +v -0.125000 0.125000 2.500000 +v -1.125000 0.125000 2.500000 +v -0.875000 0.125000 2.500000 +v -1.125000 0.125000 -2.500000 +v -0.875000 0.125000 -2.500000 +v -1.125000 0.250000 -2.500000 +v -1.125000 0.250000 2.500000 +v -0.875000 0.250000 2.500000 +v -0.875000 0.250000 -2.500000 +v 1.125000 0.250000 -2.500000 +v 1.125000 0.250000 2.500000 +v 0.875000 0.250000 2.500000 +v 0.875000 0.250000 -2.500000 +v 1.125000 0.125000 -2.500000 +v 0.875000 0.125000 -2.500000 +v 1.125000 0.125000 2.500000 +v 0.875000 0.125000 2.500000 +v 1.875000 0.125000 2.500000 +v 2.125000 0.125000 2.500000 +v 1.875000 0.125000 -2.500000 +v 2.125000 0.125000 -2.500000 +v 1.875000 0.250000 -2.500000 +v 1.875000 0.250000 2.500000 +v 2.125000 0.250000 2.500000 +v 2.125000 0.250000 -2.500000 +v 2.500000 0.312500 -0.187500 +v 2.500000 0.312500 0.187500 +v 2.500000 0.687500 -0.187500 +v 2.500000 0.687500 0.187500 +v 2.375000 0.625000 -0.125000 +v 2.375000 0.375000 -0.125000 +v 2.375000 0.375000 0.125000 +v 2.375000 0.625000 0.125000 +v 2.375000 0.687500 -0.187500 +v 2.375000 0.312500 -0.187500 +v 2.375000 0.312500 0.187500 +v 2.375000 0.687500 0.187500 +v 2.250000 0.625000 -0.125000 +v 2.250000 0.375000 -0.125000 +v 2.250000 0.375000 0.125000 +v 2.250000 0.625000 0.125000 +v 2.433012 0.750000 2.250000 +v 2.250000 0.750000 2.433013 +v 2.000000 0.750000 2.500000 +v 1.750000 0.750000 2.433012 +v 1.566987 0.750000 2.250000 +v 1.500000 0.750000 2.000000 +v 1.566987 0.750000 1.750000 +v 1.750000 0.750000 1.566987 +v 2.000000 0.750000 1.500000 +v 2.250000 0.750000 1.566987 +v 2.500000 0.750000 2.000000 +v 2.433013 0.750000 1.750000 +v -2.250000 0.250000 1.750000 +v -2.250000 0.250000 2.250000 +v 2.250000 0.250000 1.750000 +v 2.250000 0.250000 2.250000 +v 2.250000 0.750000 1.750000 +v -2.250000 0.750000 1.750000 +v -2.250000 0.750000 2.250000 +v 2.250000 0.750000 2.250000 +v -2.250000 0.250000 -2.250000 +v -2.250000 0.250000 -1.750000 +v 2.250000 0.250000 -2.250000 +v 2.250000 0.250000 -1.750000 +v 2.250000 0.750000 -2.250000 +v -2.250000 0.750000 -2.250000 +v -2.250000 0.750000 -1.750000 +v 2.250000 0.750000 -1.750000 +v -2.250000 0.250000 -1.250000 +v -2.250000 0.250000 1.250000 +v 2.250000 0.250000 -1.250000 +v 2.250000 0.250000 1.250000 +v 2.250000 0.750000 -1.250000 +v -2.250000 0.750000 -1.250000 +v -2.250000 0.750000 1.250000 +v 2.250000 0.750000 1.250000 +v -2.000000 0.750000 -1.000000 +v -2.000000 0.750000 1.000000 +v 2.000000 0.750000 -1.000000 +v 2.000000 0.750000 1.000000 +v 2.000000 1.750000 -1.000000 +v -2.000000 1.750000 -1.000000 +v -2.000000 1.750000 1.000000 +v 2.000000 1.750000 1.000000 +v 0.250000 1.750000 -0.750000 +v 0.250000 1.750000 0.750000 +v 1.750000 1.750000 -0.750000 +v 1.750000 1.750000 0.750000 +v 1.750000 2.000000 -0.750000 +v 0.250000 2.000000 -0.750000 +v 0.250000 2.000000 0.750000 +v 1.750000 2.000000 0.750000 +v 1.750000 2.000000 0.000000 +v 1.692910 2.000000 -0.287013 +v 1.530330 2.000000 -0.530330 +v 1.287013 2.000000 -0.692910 +v 1.000000 2.000000 -0.750000 +v 0.712987 2.000000 -0.692910 +v 0.469670 2.000000 -0.530330 +v 0.307090 2.000000 -0.287013 +v 0.250000 2.000000 0.000000 +v 0.307090 2.000000 0.287013 +v 0.469670 2.000000 0.530330 +v 0.712987 2.000000 0.692910 +v 1.000000 2.000000 0.750000 +v 1.287013 2.000000 0.692910 +v 1.530330 2.000000 0.530330 +v 1.692910 2.000000 0.287012 +v 1.622551 2.250000 0.000000 +v 1.575162 2.250000 -0.238240 +v 1.440210 2.250000 -0.440210 +v 1.238240 2.250000 -0.575162 +v 1.000000 2.250000 -0.622551 +v 0.761760 2.250000 -0.575162 +v 0.559790 2.250000 -0.440210 +v 0.424838 2.250000 -0.238240 +v 0.377449 2.250000 0.000000 +v 0.424838 2.250000 0.238240 +v 0.559790 2.250000 0.440210 +v 0.761760 2.250000 0.575162 +v 1.000000 2.250000 0.622551 +v 1.238240 2.250000 0.575162 +v 1.440210 2.250000 0.440210 +v 1.575162 2.250000 0.238240 +v 1.692910 2.250000 -0.287013 +v 1.750000 2.250000 0.000000 +v 1.530330 2.250000 -0.530330 +v 1.287013 2.250000 -0.692910 +v 1.000000 2.250000 -0.750000 +v 0.712987 2.250000 -0.692910 +v 0.469670 2.250000 -0.530330 +v 0.307090 2.250000 -0.287013 +v 0.250000 2.250000 0.000000 +v 0.307090 2.250000 0.287013 +v 0.469670 2.250000 0.530330 +v 0.712987 2.250000 0.692910 +v 1.000000 2.250000 0.750000 +v 1.287013 2.250000 0.692910 +v 1.530330 2.250000 0.530330 +v 1.692910 2.250000 0.287012 +v 1.575162 2.000000 -0.238240 +v 1.622551 2.000000 0.000000 +v 1.440210 2.000000 -0.440210 +v 1.238240 2.000000 -0.575162 +v 1.000000 2.000000 -0.622551 +v 0.761760 2.000000 -0.575162 +v 0.559790 2.000000 -0.440210 +v 0.424838 2.000000 -0.238240 +v 0.377449 2.000000 0.000000 +v 0.424838 2.000000 0.238240 +v 0.559790 2.000000 0.440210 +v 0.761760 2.000000 0.575162 +v 1.000000 2.000000 0.622551 +v 1.238240 2.000000 0.575162 +v 1.440210 2.000000 0.440210 +v 1.575162 2.000000 0.238240 +v 1.062500 2.218750 -0.625000 +v 1.062500 2.218750 0.625000 +v 1.125000 2.218750 -0.625000 +v 1.125000 2.218750 0.625000 +v 0.687600 2.218750 -0.625000 +v 0.687600 2.218750 0.625000 +v 0.750100 2.218750 -0.625000 +v 0.750100 2.218750 0.625000 +v 0.875000 2.218750 -0.625000 +v 0.875000 2.218750 0.625000 +v 0.937500 2.218750 -0.625000 +v 0.937500 2.218750 0.625000 +v 1.312500 2.218750 0.625000 +v 1.312500 2.218750 -0.625000 +v 1.250000 2.218750 0.625000 +v 1.250000 2.218750 -0.625000 +v 0.500000 2.218750 -0.500000 +v 0.500000 2.218750 0.500000 +v 0.562500 2.218750 -0.500000 +v 0.562500 2.218750 0.500000 +v 1.437500 2.218750 -0.500000 +v 1.437500 2.218750 0.500000 +v 1.500000 2.218750 -0.500000 +v 1.500000 2.218750 0.500000 +v -1.750000 1.750000 -0.750000 +v -1.750000 1.750000 0.750000 +v -0.250000 1.750000 -0.750000 +v -0.250000 1.750000 0.750000 +v -0.250000 2.000000 -0.750000 +v -1.750000 2.000000 -0.750000 +v -1.750000 2.000000 0.750000 +v -0.250000 2.000000 0.750000 +v -1.440210 2.250000 0.440210 +v -1.575162 2.250000 0.238240 +v -1.622551 2.250000 -0.000000 +v -1.575162 2.250000 -0.238240 +v -1.440210 2.250000 -0.440210 +v -1.238240 2.250000 -0.575162 +v -1.000000 2.250000 -0.622551 +v -0.761760 2.250000 -0.575162 +v -0.559790 2.250000 -0.440210 +v -0.424838 2.250000 -0.238240 +v -0.377449 2.250000 -0.000000 +v -0.307090 2.000000 0.287012 +v -0.469670 2.000000 0.530330 +v -0.712987 2.000000 0.692910 +v -1.000000 2.000000 0.750000 +v -1.287013 2.000000 0.692910 +v -1.530330 2.000000 0.530330 +v -1.692910 2.000000 0.287013 +v -1.750000 2.000000 -0.000000 +v -1.692910 2.000000 -0.287013 +v -1.530330 2.000000 -0.530330 +v -1.287013 2.000000 -0.692910 +v -1.000000 2.000000 -0.750000 +v -0.712987 2.000000 -0.692910 +v -0.469670 2.000000 -0.530330 +v -0.307090 2.000000 -0.287013 +v -0.250000 2.000000 -0.000000 +v -0.937500 2.218750 -0.625000 +v -0.937500 2.218750 0.625000 +v -0.875000 2.218750 -0.625000 +v -0.875000 2.218750 0.625000 +v -0.750000 2.218750 -0.625000 +v -0.750000 2.218750 0.625000 +v -0.687500 2.218750 -0.625000 +v -0.687500 2.218750 0.625000 +v -1.125000 2.218750 -0.625000 +v -1.125000 2.218750 0.625000 +v -1.062500 2.218750 -0.625000 +v -1.062500 2.218750 0.625000 +v -1.249900 2.218750 0.625000 +v -1.249900 2.218750 -0.625000 +v -1.312400 2.218750 0.625000 +v -1.312400 2.218750 -0.625000 +v -1.500000 2.218750 -0.500000 +v -1.500000 2.218750 0.500000 +v -1.437500 2.218750 -0.500000 +v -1.437500 2.218750 0.500000 +v -0.562500 2.218750 -0.500000 +v -0.562500 2.218750 0.500000 +v -0.500000 2.218750 -0.500000 +v -0.500000 2.218750 0.500000 +v 1.750000 2.000000 0.500000 +v 1.750000 1.963388 0.411612 +v 1.750000 1.875000 0.375000 +v 1.750000 1.786612 0.411612 +v 1.750000 1.750000 0.500000 +v 1.750000 1.786612 0.588389 +v 1.750000 1.875000 0.625000 +v 1.750000 1.963388 0.588389 +v 2.000000 2.000000 0.500000 +v 2.000000 1.963388 0.411612 +v 2.000000 1.875000 0.375000 +v 2.000000 1.786612 0.411612 +v 2.000000 1.750000 0.500000 +v 2.000000 1.786612 0.588389 +v 2.000000 1.875000 0.625000 +v 2.000000 1.963388 0.588389 +v 2.176777 1.926777 0.500000 +v 2.150888 1.900888 0.411612 +v 2.088388 1.838388 0.375000 +v 2.025888 1.775888 0.411612 +v 2.025888 1.775888 0.588389 +v 2.088388 1.838388 0.625000 +v 2.150888 1.900888 0.588389 +v 2.250000 1.750000 0.500000 +v 2.213388 1.750000 0.411612 +v 2.125000 1.750000 0.375000 +v 2.036612 1.750000 0.411612 +v 2.036612 1.750000 0.588389 +v 2.125000 1.750000 0.625000 +v 2.213388 1.750000 0.588389 +v 2.000000 0.750000 0.500000 +v 2.250000 0.750000 0.500000 +v 2.213388 0.750000 0.411612 +v 2.125000 0.750000 0.375000 +v 2.036612 0.750000 0.411612 +v 2.036612 0.750000 0.588389 +v 2.125000 0.750000 0.625000 +v 2.213388 0.750000 0.588389 +v 0.250000 2.000000 0.500000 +v 0.250000 1.963388 0.411612 +v 0.250000 1.875000 0.375000 +v 0.250000 1.786612 0.411612 +v 0.250000 1.750000 0.500000 +v 0.250000 1.786612 0.588388 +v 0.250000 1.875000 0.625000 +v 0.250000 1.963388 0.588388 +v -0.250000 2.000000 0.500000 +v -0.250000 1.963388 0.411612 +v -0.250000 1.875000 0.375000 +v -0.250000 1.786612 0.411612 +v -0.250000 1.750000 0.500000 +v -0.250000 1.786612 0.588388 +v -0.250000 1.875000 0.625000 +v -0.250000 1.963388 0.588388 +v 1.750000 2.500000 1.750000 +v 1.750000 2.500000 2.250000 +v 2.250000 2.500000 1.750000 +v 2.250000 2.500000 2.250000 +v 2.250000 2.750000 1.750000 +v 1.750000 2.750000 1.750000 +v 1.750000 2.750000 2.250000 +v 2.250000 2.750000 2.250000 +v 2.125000 2.750000 1.750000 +v 2.036612 2.713388 1.750000 +v 2.000000 2.625000 1.750000 +v 2.036612 2.536612 1.750000 +v 2.125000 2.500000 1.750000 +v 2.213388 2.536612 1.750000 +v 2.250000 2.625000 1.750000 +v 2.213388 2.713388 1.750000 +v 2.125000 2.750000 -1.750000 +v 2.036612 2.713388 -1.750000 +v 2.000000 2.625000 -1.750000 +v 2.036612 2.536612 -1.750000 +v 2.125000 2.500000 -1.750000 +v 2.213388 2.536612 -1.750000 +v 2.250000 2.625000 -1.750000 +v 2.213388 2.713388 -1.750000 +v 1.250000 2.625000 1.750000 +v 1.213388 2.713388 1.750000 +v 1.125000 2.750000 1.750000 +v 1.036611 2.713388 1.750000 +v 1.000000 2.625000 1.750000 +v 1.036611 2.536612 1.750000 +v 1.125000 2.500000 1.750000 +v 1.213388 2.536612 1.750000 +v 1.250000 2.625000 1.000000 +v 1.213388 2.713388 1.000000 +v 1.125000 2.750000 1.000000 +v 1.036612 2.713388 1.000000 +v 1.000000 2.625000 1.000000 +v 1.036612 2.536612 1.000000 +v 1.125000 2.500000 1.000000 +v 1.213388 2.536612 1.000000 +v 1.176776 2.625000 0.823223 +v 1.150888 2.713388 0.849112 +v 1.088388 2.750000 0.911612 +v 1.025888 2.713388 0.974112 +v 1.025888 2.536612 0.974112 +v 1.088388 2.500000 0.911612 +v 1.150888 2.536612 0.849112 +v -0.750000 2.625000 -1.250000 +v -0.926777 2.625000 -1.073223 +v -0.775888 2.713388 -1.224112 +v -0.838388 2.750000 -1.161612 +v -0.900888 2.713388 -1.099112 +v -0.900888 2.536612 -1.099112 +v -0.838388 2.500000 -1.161612 +v -0.775888 2.536612 -1.224112 +v -1.000000 2.625000 -1.250000 +v -0.786611 2.713388 -1.250000 +v -0.875000 2.750000 -1.250000 +v -0.963388 2.713388 -1.250000 +v -0.963388 2.536612 -1.250000 +v -0.875000 2.500000 -1.250000 +v -0.786611 2.536612 -1.250000 +v -0.750000 2.625000 -1.750000 +v -1.000000 2.625000 -1.750000 +v -0.786611 2.713388 -1.750000 +v -0.875000 2.750000 -1.750000 +v -0.963388 2.713388 -1.750000 +v -0.963388 2.536612 -1.750000 +v -0.875000 2.500000 -1.750000 +v -0.786611 2.536612 -1.750000 +v 1.000000 2.625000 1.750000 +v 0.963388 2.713388 1.750000 +v 0.875000 2.750000 1.750000 +v 0.786611 2.713388 1.750000 +v 0.750000 2.625000 1.750000 +v 0.786611 2.536612 1.750000 +v 0.875000 2.500000 1.750000 +v 0.963388 2.536612 1.750000 +v 1.000000 2.625000 1.250000 +v 0.963388 2.713388 1.250000 +v 0.875000 2.750000 1.250000 +v 0.786611 2.713388 1.250000 +v 0.750000 2.625000 1.250000 +v 0.786611 2.536612 1.250000 +v 0.875000 2.500000 1.250000 +v 0.963388 2.536612 1.250000 +v 0.926776 2.625000 1.073223 +v 0.900888 2.713388 1.099112 +v 0.838388 2.750000 1.161612 +v 0.775888 2.713388 1.224112 +v 0.775888 2.536612 1.224112 +v 0.838388 2.500000 1.161612 +v 0.900888 2.536612 1.099112 +v -1.000000 2.625000 -1.000000 +v -1.176777 2.625000 -0.823223 +v -1.025888 2.713388 -0.974112 +v -1.088388 2.750000 -0.911612 +v -1.150888 2.713388 -0.849112 +v -1.150888 2.536612 -0.849112 +v -1.088388 2.500000 -0.911612 +v -1.025888 2.536612 -0.974112 +v -1.250000 2.625000 -1.000000 +v -1.036612 2.713388 -1.000000 +v -1.125000 2.750000 -1.000000 +v -1.213388 2.713388 -1.000000 +v -1.213388 2.536612 -1.000000 +v -1.125000 2.500000 -1.000000 +v -1.036612 2.536612 -1.000000 +v -1.000000 2.625000 -1.750000 +v -1.250000 2.625000 -1.750000 +v -1.036611 2.713388 -1.750000 +v -1.125000 2.750000 -1.750000 +v -1.213388 2.713388 -1.750000 +v -1.213388 2.536612 -1.750000 +v -1.125000 2.500000 -1.750000 +v -1.036611 2.536612 -1.750000 +v -0.125000 2.750000 1.750000 +v -0.213388 2.713388 1.750000 +v -0.250000 2.625000 1.750000 +v -0.213388 2.536612 1.750000 +v -0.125000 2.500000 1.750000 +v -0.036612 2.536612 1.750000 +v -0.000000 2.625000 1.750000 +v -0.036612 2.713388 1.750000 +v -0.125000 2.750000 1.375000 +v -0.213388 2.713388 1.375000 +v -0.250000 2.625000 1.375000 +v -0.213388 2.536612 1.375000 +v -0.125000 2.500000 1.375000 +v -0.036612 2.536612 1.375000 +v -0.000000 2.625000 1.375000 +v -0.036612 2.713388 1.375000 +v -0.125000 2.676776 1.198223 +v -0.213389 2.650888 1.224112 +v -0.250000 2.588388 1.286612 +v -0.213388 2.525888 1.349112 +v -0.036612 2.525888 1.349112 +v -0.000000 2.588388 1.286612 +v -0.036612 2.650888 1.224112 +v -0.125000 2.500000 1.125000 +v -0.213388 2.500000 1.161612 +v -0.250000 2.500000 1.250000 +v -0.213388 2.500000 1.338388 +v -0.036612 2.500000 1.338388 +v -0.000000 2.500000 1.250000 +v -0.036612 2.500000 1.161612 +v -0.125000 1.000000 1.375000 +v -0.125000 1.000000 1.125000 +v -0.213388 1.000000 1.161612 +v -0.250000 1.000000 1.250000 +v -0.213388 1.000000 1.338388 +v -0.036612 1.000000 1.338388 +v -0.000000 1.000000 1.250000 +v -0.036612 1.000000 1.161612 +v -0.125000 0.823223 1.301777 +v -0.213388 0.974112 1.150888 +v -0.250000 0.911612 1.213388 +v -0.213388 0.849112 1.275888 +v -0.036612 0.849112 1.275888 +v -0.000000 0.911612 1.213388 +v -0.036612 0.974112 1.150888 +v -0.125000 0.750000 1.125000 +v -0.213388 0.963388 1.125000 +v -0.250000 0.875000 1.125000 +v -0.213388 0.786612 1.125000 +v -0.036612 0.786612 1.125000 +v -0.000000 0.875000 1.125000 +v -0.036612 0.963388 1.125000 +v -0.125000 1.000000 1.000000 +v -0.125000 0.750000 1.000000 +v -0.213388 0.963388 1.000000 +v -0.250000 0.875000 1.000000 +v -0.213388 0.786612 1.000000 +v -0.036612 0.786612 1.000000 +v -0.000000 0.875000 1.000000 +v -0.036612 0.963388 1.000000 +v 0.125000 2.750000 1.750000 +v 0.036612 2.713388 1.750000 +v -0.000000 2.625000 1.750000 +v 0.036612 2.536612 1.750000 +v 0.125000 2.500000 1.750000 +v 0.213388 2.536612 1.750000 +v 0.250000 2.625000 1.750000 +v 0.213388 2.713388 1.750000 +v 0.125000 2.750000 1.375000 +v 0.036612 2.713388 1.375000 +v -0.000000 2.625000 1.375000 +v 0.036612 2.536612 1.375000 +v 0.125000 2.500000 1.375000 +v 0.213388 2.536612 1.375000 +v 0.250000 2.625000 1.375000 +v 0.213388 2.713388 1.375000 +v 0.125000 2.676776 1.198223 +v 0.036612 2.650888 1.224112 +v -0.000000 2.588388 1.286612 +v 0.036612 2.525888 1.349112 +v 0.213388 2.525888 1.349112 +v 0.250000 2.588388 1.286612 +v 0.213388 2.650888 1.224112 +v 0.125000 2.500000 1.125000 +v 0.036612 2.500000 1.161612 +v -0.000000 2.500000 1.250000 +v 0.036612 2.500000 1.338388 +v 0.213388 2.500000 1.338388 +v 0.250000 2.500000 1.250000 +v 0.213388 2.500000 1.161612 +v 0.125000 1.000000 1.375000 +v 0.125000 1.000000 1.125000 +v 0.036612 1.000000 1.161612 +v -0.000000 1.000000 1.250000 +v 0.036612 1.000000 1.338388 +v 0.213388 1.000000 1.338388 +v 0.250000 1.000000 1.250000 +v 0.213388 1.000000 1.161612 +v 0.125000 0.823223 1.301777 +v 0.036612 0.974112 1.150888 +v -0.000000 0.911612 1.213388 +v 0.036612 0.849112 1.275888 +v 0.213388 0.849112 1.275888 +v 0.250000 0.911612 1.213388 +v 0.213388 0.974112 1.150888 +v 0.125000 0.750000 1.125000 +v 0.036612 0.963388 1.125000 +v -0.000000 0.875000 1.125000 +v 0.036612 0.786612 1.125000 +v 0.213388 0.786612 1.125000 +v 0.250000 0.875000 1.125000 +v 0.213388 0.963388 1.125000 +v 0.125000 1.000000 1.000000 +v 0.125000 0.750000 1.000000 +v 0.036612 0.963388 1.000000 +v -0.000000 0.875000 1.000000 +v 0.036612 0.786612 1.000000 +v 0.213388 0.786612 1.000000 +v 0.250000 0.875000 1.000000 +v 0.213388 0.963388 1.000000 +v 2.088388 0.411612 1.750000 +v 2.000000 0.375000 1.750000 +v 1.911612 0.411612 1.750000 +v 1.875000 0.500000 1.750000 +v 1.911612 0.588388 1.750000 +v 2.000000 0.625000 1.750000 +v 2.088388 0.588388 1.750000 +v 2.125000 0.500000 1.750000 +v 2.088388 0.411612 1.250000 +v 2.000000 0.375000 1.250000 +v 1.911612 0.411612 1.250000 +v 1.875000 0.500000 1.250000 +v 1.911612 0.588388 1.250000 +v 2.000000 0.625000 1.250000 +v 2.088388 0.588388 1.250000 +v 2.125000 0.500000 1.250000 +v 1.812500 2.750000 1.812500 +v 1.812500 2.750000 2.187500 +v 2.187500 2.750000 1.812500 +v 2.187500 2.750000 2.187500 +v 2.187500 3.000000 1.812500 +v 1.812500 3.000000 1.812500 +v 1.812500 3.000000 2.187500 +v 2.187500 3.000000 2.187500 +v 2.500000 2.500000 2.000000 +v 2.433013 2.500000 1.750000 +v 2.250000 2.500000 1.566987 +v 2.000000 2.500000 1.500000 +v 1.750000 2.500000 1.566987 +v 1.566987 2.500000 1.750000 +v 1.500000 2.500000 2.000000 +v 1.566987 2.500000 2.250000 +v 1.750000 2.500000 2.433012 +v 2.000000 2.500000 2.500000 +v 2.250000 2.500000 2.433013 +v 2.433012 2.500000 2.250000 +v 1.750000 2.000000 0.250000 +v 1.750000 1.963388 0.161612 +v 1.750000 1.875000 0.125000 +v 1.750000 1.786612 0.161612 +v 1.750000 1.750000 0.250000 +v 1.750000 1.786612 0.338389 +v 1.750000 1.875000 0.375000 +v 1.750000 1.963388 0.338389 +v 2.000000 2.000000 0.250000 +v 2.000000 1.963388 0.161612 +v 2.000000 1.875000 0.125000 +v 2.000000 1.786612 0.161612 +v 2.000000 1.750000 0.250000 +v 2.000000 1.786612 0.338389 +v 2.000000 1.875000 0.375000 +v 2.000000 1.963388 0.338389 +v 2.176777 1.926777 0.250000 +v 2.150888 1.900888 0.161612 +v 2.088388 1.838388 0.125000 +v 2.025888 1.775888 0.161612 +v 2.025888 1.775888 0.338389 +v 2.088388 1.838388 0.375000 +v 2.150888 1.900888 0.338389 +v 2.250000 1.750000 0.250000 +v 2.213388 1.750000 0.161612 +v 2.125000 1.750000 0.125000 +v 2.036612 1.750000 0.161612 +v 2.036612 1.750000 0.338389 +v 2.125000 1.750000 0.375000 +v 2.213388 1.750000 0.338389 +v 2.000000 0.750000 0.250000 +v 2.250000 0.750000 0.250000 +v 2.213388 0.750000 0.161612 +v 2.125000 0.750000 0.125000 +v 2.036612 0.750000 0.161612 +v 2.036612 0.750000 0.338389 +v 2.125000 0.750000 0.375000 +v 2.213388 0.750000 0.338389 +v 1.750000 2.000000 0.000000 +v 1.750000 1.963388 -0.088388 +v 1.750000 1.875000 -0.125000 +v 1.750000 1.786612 -0.088388 +v 1.750000 1.750000 0.000000 +v 1.750000 1.786612 0.088389 +v 1.750000 1.875000 0.125000 +v 1.750000 1.963388 0.088389 +v 2.000000 2.000000 0.000000 +v 2.000000 1.963388 -0.088388 +v 2.000000 1.875000 -0.125000 +v 2.000000 1.786612 -0.088388 +v 2.000000 1.750000 0.000000 +v 2.000000 1.786612 0.088389 +v 2.000000 1.875000 0.125000 +v 2.000000 1.963388 0.088389 +v 2.176777 1.926777 0.000000 +v 2.150888 1.900888 -0.088388 +v 2.088388 1.838388 -0.125000 +v 2.025888 1.775888 -0.088388 +v 2.025888 1.775888 0.088389 +v 2.088388 1.838388 0.125000 +v 2.150888 1.900888 0.088389 +v 2.250000 1.750000 0.000000 +v 2.213388 1.750000 -0.088388 +v 2.125000 1.750000 -0.125000 +v 2.036612 1.750000 -0.088388 +v 2.036612 1.750000 0.088389 +v 2.125000 1.750000 0.125000 +v 2.213388 1.750000 0.088389 +v 2.000000 0.750000 0.000000 +v 2.250000 0.750000 0.000000 +v 2.213388 0.750000 -0.088388 +v 2.125000 0.750000 -0.125000 +v 2.036612 0.750000 -0.088388 +v 2.036612 0.750000 0.088389 +v 2.125000 0.750000 0.125000 +v 2.213388 0.750000 0.088389 +v 1.750000 2.000000 -0.250000 +v 1.750000 1.963388 -0.338388 +v 1.750000 1.875000 -0.375000 +v 1.750000 1.786612 -0.338388 +v 1.750000 1.750000 -0.250000 +v 1.750000 1.786612 -0.161611 +v 1.750000 1.875000 -0.125000 +v 1.750000 1.963388 -0.161611 +v 2.000000 2.000000 -0.250000 +v 2.000000 1.963388 -0.338388 +v 2.000000 1.875000 -0.375000 +v 2.000000 1.786612 -0.338388 +v 2.000000 1.750000 -0.250000 +v 2.000000 1.786612 -0.161611 +v 2.000000 1.875000 -0.125000 +v 2.000000 1.963388 -0.161611 +v 2.176777 1.926777 -0.250000 +v 2.150888 1.900888 -0.338388 +v 2.088388 1.838388 -0.375000 +v 2.025888 1.775888 -0.338388 +v 2.025888 1.775888 -0.161611 +v 2.088388 1.838388 -0.125000 +v 2.150888 1.900888 -0.161611 +v 2.250000 1.750000 -0.250000 +v 2.213388 1.750000 -0.338388 +v 2.125000 1.750000 -0.375000 +v 2.036612 1.750000 -0.338388 +v 2.036612 1.750000 -0.161611 +v 2.125000 1.750000 -0.125000 +v 2.213388 1.750000 -0.161611 +v 2.000000 0.750000 -0.250000 +v 2.250000 0.750000 -0.250000 +v 2.213388 0.750000 -0.338388 +v 2.125000 0.750000 -0.375000 +v 2.036612 0.750000 -0.338388 +v 2.036612 0.750000 -0.161611 +v 2.125000 0.750000 -0.125000 +v 2.213388 0.750000 -0.161611 +v 1.750000 2.000000 -0.500000 +v 1.750000 1.963388 -0.588388 +v 1.750000 1.875000 -0.625000 +v 1.750000 1.786612 -0.588388 +v 1.750000 1.750000 -0.500000 +v 1.750000 1.786612 -0.411611 +v 1.750000 1.875000 -0.375000 +v 1.750000 1.963388 -0.411611 +v 2.000000 2.000000 -0.500000 +v 2.000000 1.963388 -0.588388 +v 2.000000 1.875000 -0.625000 +v 2.000000 1.786612 -0.588388 +v 2.000000 1.750000 -0.500000 +v 2.000000 1.786612 -0.411611 +v 2.000000 1.875000 -0.375000 +v 2.000000 1.963388 -0.411611 +v 2.176777 1.926777 -0.500000 +v 2.150888 1.900888 -0.588388 +v 2.088388 1.838388 -0.625000 +v 2.025888 1.775888 -0.588388 +v 2.025888 1.775888 -0.411611 +v 2.088388 1.838388 -0.375000 +v 2.150888 1.900888 -0.411611 +v 2.250000 1.750000 -0.500000 +v 2.213388 1.750000 -0.588388 +v 2.125000 1.750000 -0.625000 +v 2.036612 1.750000 -0.588388 +v 2.036612 1.750000 -0.411611 +v 2.125000 1.750000 -0.375000 +v 2.213388 1.750000 -0.411611 +v 2.000000 0.750000 -0.500000 +v 2.250000 0.750000 -0.500000 +v 2.213388 0.750000 -0.588388 +v 2.125000 0.750000 -0.625000 +v 2.036612 0.750000 -0.588388 +v 2.036612 0.750000 -0.411611 +v 2.125000 0.750000 -0.375000 +v 2.213388 0.750000 -0.411611 +v -1.750000 2.000000 -0.500000 +v -1.750000 1.963388 -0.411612 +v -1.750000 1.875000 -0.375000 +v -1.750000 1.786612 -0.411612 +v -1.750000 1.750000 -0.500000 +v -1.750000 1.786612 -0.588388 +v -1.750000 1.875000 -0.625000 +v -1.750000 1.963388 -0.588388 +v -2.000000 2.000000 -0.500000 +v -2.000000 1.963388 -0.411611 +v -2.000000 1.875000 -0.375000 +v -2.000000 1.786612 -0.411611 +v -2.000000 1.750000 -0.500000 +v -2.000000 1.786612 -0.588388 +v -2.000000 1.875000 -0.625000 +v -2.000000 1.963388 -0.588388 +v -2.176777 1.926777 -0.500000 +v -2.150888 1.900888 -0.411611 +v -2.088388 1.838388 -0.375000 +v -2.025888 1.775888 -0.411611 +v -2.025888 1.775888 -0.588388 +v -2.088388 1.838388 -0.625000 +v -2.150888 1.900888 -0.588388 +v -2.250000 1.750000 -0.500000 +v -2.213388 1.750000 -0.411611 +v -2.125000 1.750000 -0.375000 +v -2.036612 1.750000 -0.411611 +v -2.036612 1.750000 -0.588388 +v -2.125000 1.750000 -0.625000 +v -2.213388 1.750000 -0.588388 +v -2.000000 0.750000 -0.500000 +v -2.250000 0.750000 -0.500000 +v -2.213388 0.750000 -0.411611 +v -2.125000 0.750000 -0.375000 +v -2.036612 0.750000 -0.411611 +v -2.036612 0.750000 -0.588388 +v -2.125000 0.750000 -0.625000 +v -2.213388 0.750000 -0.588388 +v -1.750000 2.000000 -0.250000 +v -1.750000 1.963388 -0.161611 +v -1.750000 1.875000 -0.125000 +v -1.750000 1.786612 -0.161611 +v -1.750000 1.750000 -0.250000 +v -1.750000 1.786612 -0.338388 +v -1.750000 1.875000 -0.375000 +v -1.750000 1.963388 -0.338388 +v -2.000000 2.000000 -0.250000 +v -2.000000 1.963388 -0.161611 +v -2.000000 1.875000 -0.125000 +v -2.000000 1.786612 -0.161611 +v -2.000000 1.750000 -0.250000 +v -2.000000 1.786612 -0.338388 +v -2.000000 1.875000 -0.375000 +v -2.000000 1.963388 -0.338388 +v -2.176777 1.926777 -0.250000 +v -2.150888 1.900888 -0.161611 +v -2.088388 1.838388 -0.125000 +v -2.025888 1.775888 -0.161611 +v -2.025888 1.775888 -0.338388 +v -2.088388 1.838388 -0.375000 +v -2.150888 1.900888 -0.338388 +v -2.250000 1.750000 -0.250000 +v -2.213388 1.750000 -0.161611 +v -2.125000 1.750000 -0.125000 +v -2.036612 1.750000 -0.161611 +v -2.036612 1.750000 -0.338388 +v -2.125000 1.750000 -0.375000 +v -2.213388 1.750000 -0.338388 +v -2.000000 0.750000 -0.250000 +v -2.250000 0.750000 -0.250000 +v -2.213388 0.750000 -0.161611 +v -2.125000 0.750000 -0.125000 +v -2.036612 0.750000 -0.161611 +v -2.036612 0.750000 -0.338388 +v -2.125000 0.750000 -0.375000 +v -2.213388 0.750000 -0.338388 +v -1.750000 2.000000 0.000000 +v -1.750000 1.963388 0.088389 +v -1.750000 1.875000 0.125000 +v -1.750000 1.786612 0.088389 +v -1.750000 1.750000 0.000000 +v -1.750000 1.786612 -0.088388 +v -1.750000 1.875000 -0.125000 +v -1.750000 1.963388 -0.088388 +v -2.000000 2.000000 0.000000 +v -2.000000 1.963388 0.088389 +v -2.000000 1.875000 0.125000 +v -2.000000 1.786612 0.088389 +v -2.000000 1.750000 0.000000 +v -2.000000 1.786612 -0.088388 +v -2.000000 1.875000 -0.125000 +v -2.000000 1.963388 -0.088388 +v -2.176777 1.926777 0.000000 +v -2.150888 1.900888 0.088389 +v -2.088388 1.838388 0.125000 +v -2.025888 1.775888 0.088389 +v -2.025888 1.775888 -0.088388 +v -2.088388 1.838388 -0.125000 +v -2.150888 1.900888 -0.088388 +v -2.250000 1.750000 0.000000 +v -2.213388 1.750000 0.088389 +v -2.125000 1.750000 0.125000 +v -2.036612 1.750000 0.088389 +v -2.036612 1.750000 -0.088388 +v -2.125000 1.750000 -0.125000 +v -2.213388 1.750000 -0.088388 +v -2.000000 0.750000 0.000000 +v -2.250000 0.750000 0.000000 +v -2.213388 0.750000 0.088389 +v -2.125000 0.750000 0.125000 +v -2.036612 0.750000 0.088389 +v -2.036612 0.750000 -0.088388 +v -2.125000 0.750000 -0.125000 +v -2.213388 0.750000 -0.088388 +v -1.750000 2.000000 0.250000 +v -1.750000 1.963388 0.338388 +v -1.750000 1.875000 0.375000 +v -1.750000 1.786612 0.338388 +v -1.750000 1.750000 0.250000 +v -1.750000 1.786612 0.161612 +v -1.750000 1.875000 0.125000 +v -1.750000 1.963388 0.161612 +v -2.000000 2.000000 0.250000 +v -2.000000 1.963388 0.338389 +v -2.000000 1.875000 0.375000 +v -2.000000 1.786612 0.338389 +v -2.000000 1.750000 0.250000 +v -2.000000 1.786612 0.161612 +v -2.000000 1.875000 0.125000 +v -2.000000 1.963388 0.161612 +v -2.176777 1.926777 0.250000 +v -2.150888 1.900888 0.338389 +v -2.088388 1.838388 0.375000 +v -2.025888 1.775888 0.338389 +v -2.025888 1.775888 0.161612 +v -2.088388 1.838388 0.125000 +v -2.150888 1.900888 0.161612 +v -2.250000 1.750000 0.250000 +v -2.213388 1.750000 0.338389 +v -2.125000 1.750000 0.375000 +v -2.036612 1.750000 0.338389 +v -2.036612 1.750000 0.161612 +v -2.125000 1.750000 0.125000 +v -2.213388 1.750000 0.161612 +v -2.000000 0.750000 0.250000 +v -2.250000 0.750000 0.250000 +v -2.213388 0.750000 0.338389 +v -2.125000 0.750000 0.375000 +v -2.036612 0.750000 0.338389 +v -2.036612 0.750000 0.161612 +v -2.125000 0.750000 0.125000 +v -2.213388 0.750000 0.161612 +v -1.750000 2.000000 0.500000 +v -1.750000 1.963388 0.588389 +v -1.750000 1.875000 0.625000 +v -1.750000 1.786612 0.588389 +v -1.750000 1.750000 0.500000 +v -1.750000 1.786612 0.411612 +v -1.750000 1.875000 0.375000 +v -1.750000 1.963388 0.411612 +v -2.000000 2.000000 0.500000 +v -2.000000 1.963388 0.588389 +v -2.000000 1.875000 0.625000 +v -2.000000 1.786612 0.588389 +v -2.000000 1.750000 0.500000 +v -2.000000 1.786612 0.411612 +v -2.000000 1.875000 0.375000 +v -2.000000 1.963388 0.411612 +v -2.176777 1.926777 0.500000 +v -2.150888 1.900888 0.588389 +v -2.088388 1.838388 0.625000 +v -2.025888 1.775888 0.588389 +v -2.025888 1.775888 0.411612 +v -2.088388 1.838388 0.375000 +v -2.150888 1.900888 0.411612 +v -2.250000 1.750000 0.500000 +v -2.213388 1.750000 0.588389 +v -2.125000 1.750000 0.625000 +v -2.036612 1.750000 0.588389 +v -2.036612 1.750000 0.411612 +v -2.125000 1.750000 0.375000 +v -2.213388 1.750000 0.411612 +v -2.000000 0.750000 0.500000 +v -2.250000 0.750000 0.500000 +v -2.213388 0.750000 0.588389 +v -2.125000 0.750000 0.625000 +v -2.036612 0.750000 0.588389 +v -2.036612 0.750000 0.411612 +v -2.125000 0.750000 0.375000 +v -2.213388 0.750000 0.411612 +v 0.250000 2.000000 0.250000 +v 0.250000 1.963388 0.161612 +v 0.250000 1.875000 0.125000 +v 0.250000 1.786612 0.161612 +v 0.250000 1.750000 0.250000 +v 0.250000 1.786612 0.338388 +v 0.250000 1.875000 0.375000 +v 0.250000 1.963388 0.338388 +v -0.250000 2.000000 0.250000 +v -0.250000 1.963388 0.161612 +v -0.250000 1.875000 0.125000 +v -0.250000 1.786612 0.161612 +v -0.250000 1.750000 0.250000 +v -0.250000 1.786612 0.338388 +v -0.250000 1.875000 0.375000 +v -0.250000 1.963388 0.338388 +v 0.250000 2.000000 0.000000 +v 0.250000 1.963388 -0.088388 +v 0.250000 1.875000 -0.125000 +v 0.250000 1.786612 -0.088388 +v 0.250000 1.750000 0.000000 +v 0.250000 1.786612 0.088388 +v 0.250000 1.875000 0.125000 +v 0.250000 1.963388 0.088388 +v -0.250000 2.000000 -0.000000 +v -0.250000 1.963388 -0.088388 +v -0.250000 1.875000 -0.125000 +v -0.250000 1.786612 -0.088388 +v -0.250000 1.750000 -0.000000 +v -0.250000 1.786612 0.088388 +v -0.250000 1.875000 0.125000 +v -0.250000 1.963388 0.088388 +v 0.250000 2.000000 -0.250000 +v 0.250000 1.963388 -0.338388 +v 0.250000 1.875000 -0.375000 +v 0.250000 1.786612 -0.338388 +v 0.250000 1.750000 -0.250000 +v 0.250000 1.786612 -0.161612 +v 0.250000 1.875000 -0.125000 +v 0.250000 1.963388 -0.161612 +v -0.250000 2.000000 -0.250000 +v -0.250000 1.963388 -0.338388 +v -0.250000 1.875000 -0.375000 +v -0.250000 1.786612 -0.338388 +v -0.250000 1.750000 -0.250000 +v -0.250000 1.786612 -0.161612 +v -0.250000 1.875000 -0.125000 +v -0.250000 1.963388 -0.161612 +v 0.250000 2.000000 -0.500000 +v 0.250000 1.963388 -0.588388 +v 0.250000 1.875000 -0.625000 +v 0.250000 1.786612 -0.588388 +v 0.250000 1.750000 -0.500000 +v 0.250000 1.786612 -0.411612 +v 0.250000 1.875000 -0.375000 +v 0.250000 1.963388 -0.411612 +v -0.250000 2.000000 -0.500000 +v -0.250000 1.963388 -0.588388 +v -0.250000 1.875000 -0.625000 +v -0.250000 1.786612 -0.588388 +v -0.250000 1.750000 -0.500000 +v -0.250000 1.786612 -0.411612 +v -0.250000 1.875000 -0.375000 +v -0.250000 1.963388 -0.411612 +v -1.238240 2.250000 0.575162 +v -1.000000 2.250000 0.622551 +v -0.761760 2.250000 0.575162 +v -0.559790 2.250000 0.440210 +v -0.424838 2.250000 0.238240 +v -0.307090 2.250000 -0.287013 +v -0.250000 2.250000 -0.000000 +v -0.469670 2.250000 -0.530330 +v -0.712987 2.250000 -0.692910 +v -1.000000 2.250000 -0.750000 +v -1.287013 2.250000 -0.692910 +v -1.530330 2.250000 -0.530330 +v -1.692910 2.250000 -0.287013 +v -1.750000 2.250000 -0.000000 +v -1.692910 2.250000 0.287013 +v -1.530330 2.250000 0.530330 +v -1.287013 2.250000 0.692910 +v -1.000000 2.250000 0.750000 +v -0.712987 2.250000 0.692910 +v -0.469670 2.250000 0.530330 +v -0.307090 2.250000 0.287012 +v -0.424838 2.000000 -0.238240 +v -0.377449 2.000000 -0.000000 +v -0.559790 2.000000 -0.440210 +v -0.761760 2.000000 -0.575162 +v -1.000000 2.000000 -0.622551 +v -1.238240 2.000000 -0.575162 +v -1.440210 2.000000 -0.440210 +v -1.575162 2.000000 -0.238240 +v -1.622551 2.000000 -0.000000 +v -1.575162 2.000000 0.238240 +v -1.440210 2.000000 0.440210 +v -1.238240 2.000000 0.575162 +v -1.000000 2.000000 0.622551 +v -0.761760 2.000000 0.575162 +v -0.559790 2.000000 0.440210 +v -0.424838 2.000000 0.238240 +v 1.433012 0.750000 2.250000 +v 1.250000 0.750000 2.433013 +v 1.000000 0.750000 2.500000 +v 0.750000 0.750000 2.433012 +v 0.566987 0.750000 2.250000 +v 0.500000 0.750000 2.000000 +v 0.566987 0.750000 1.750000 +v 0.750000 0.750000 1.566987 +v 1.000000 0.750000 1.500000 +v 1.250000 0.750000 1.566987 +v 1.500000 0.750000 2.000000 +v 1.433013 0.750000 1.750000 +v 1.500000 2.500000 2.000000 +v 1.433013 2.500000 1.750000 +v 1.250000 2.500000 1.566987 +v 1.000000 2.500000 1.500000 +v 0.750000 2.500000 1.566987 +v 0.566987 2.500000 1.750000 +v 0.500000 2.500000 2.000000 +v 0.566987 2.500000 2.250000 +v 0.750000 2.500000 2.433012 +v 1.000000 2.500000 2.500000 +v 1.250000 2.500000 2.433013 +v 1.433012 2.500000 2.250000 +v 0.433012 0.750000 2.250000 +v 0.250000 0.750000 2.433013 +v -0.000000 0.750000 2.500000 +v -0.250000 0.750000 2.433012 +v -0.433013 0.750000 2.250000 +v -0.500000 0.750000 2.000000 +v -0.433013 0.750000 1.750000 +v -0.250000 0.750000 1.566987 +v -0.000000 0.750000 1.500000 +v 0.250000 0.750000 1.566987 +v 0.500000 0.750000 2.000000 +v 0.433013 0.750000 1.750000 +v 0.500000 2.500000 2.000000 +v 0.433013 2.500000 1.750000 +v 0.250000 2.500000 1.566987 +v -0.000000 2.500000 1.500000 +v -0.250000 2.500000 1.566987 +v -0.433013 2.500000 1.750000 +v -0.500000 2.500000 2.000000 +v -0.433013 2.500000 2.250000 +v -0.250000 2.500000 2.433012 +v -0.000000 2.500000 2.500000 +v 0.250000 2.500000 2.433013 +v 0.433012 2.500000 2.250000 +v -0.566988 0.750000 2.250000 +v -0.750000 0.750000 2.433013 +v -1.000000 0.750000 2.500000 +v -1.250000 0.750000 2.433012 +v -1.433013 0.750000 2.250000 +v -1.500000 0.750000 2.000000 +v -1.433013 0.750000 1.750000 +v -1.250000 0.750000 1.566987 +v -1.000000 0.750000 1.500000 +v -0.750000 0.750000 1.566987 +v -0.500000 0.750000 2.000000 +v -0.566987 0.750000 1.750000 +v -0.500000 2.500000 2.000000 +v -0.566987 2.500000 1.750000 +v -0.750000 2.500000 1.566987 +v -1.000000 2.500000 1.500000 +v -1.250000 2.500000 1.566987 +v -1.433013 2.500000 1.750000 +v -1.500000 2.500000 2.000000 +v -1.433013 2.500000 2.250000 +v -1.250000 2.500000 2.433012 +v -1.000000 2.500000 2.500000 +v -0.750000 2.500000 2.433013 +v -0.566988 2.500000 2.250000 +v -1.566988 0.750000 2.250000 +v -1.750000 0.750000 2.433013 +v -2.000000 0.750000 2.500000 +v -2.250000 0.750000 2.433012 +v -2.433013 0.750000 2.250000 +v -2.500000 0.750000 2.000000 +v -2.433013 0.750000 1.750000 +v -2.250000 0.750000 1.566987 +v -2.000000 0.750000 1.500000 +v -1.750000 0.750000 1.566987 +v -1.500000 0.750000 2.000000 +v -1.566987 0.750000 1.750000 +v -1.500000 2.500000 2.000000 +v -1.566987 2.500000 1.750000 +v -1.750000 2.500000 1.566987 +v -2.000000 2.500000 1.500000 +v -2.250000 2.500000 1.566987 +v -2.433013 2.500000 1.750000 +v -2.500000 2.500000 2.000000 +v -2.433013 2.500000 2.250000 +v -2.250000 2.500000 2.433012 +v -2.000000 2.500000 2.500000 +v -1.750000 2.500000 2.433013 +v -1.566988 2.500000 2.250000 +v -2.433012 0.750000 -2.250000 +v -2.250000 0.750000 -2.433013 +v -2.000000 0.750000 -2.500000 +v -1.750000 0.750000 -2.433012 +v -1.566987 0.750000 -2.250000 +v -1.500000 0.750000 -2.000000 +v -1.566987 0.750000 -1.750000 +v -1.750000 0.750000 -1.566987 +v -2.000000 0.750000 -1.500000 +v -2.250000 0.750000 -1.566987 +v -2.500000 0.750000 -2.000000 +v -2.433013 0.750000 -1.750000 +v -2.500000 2.500000 -2.000000 +v -2.433013 2.500000 -1.750000 +v -2.250000 2.500000 -1.566987 +v -2.000000 2.500000 -1.500000 +v -1.750000 2.500000 -1.566987 +v -1.566987 2.500000 -1.750000 +v -1.500000 2.500000 -2.000000 +v -1.566987 2.500000 -2.250000 +v -1.750000 2.500000 -2.433012 +v -2.000000 2.500000 -2.500000 +v -2.250000 2.500000 -2.433013 +v -2.433012 2.500000 -2.250000 +v -1.433013 0.750000 -2.250000 +v -1.250000 0.750000 -2.433013 +v -1.000000 0.750000 -2.500000 +v -0.750000 0.750000 -2.433012 +v -0.566987 0.750000 -2.250000 +v -0.500000 0.750000 -2.000000 +v -0.566987 0.750000 -1.750000 +v -0.750000 0.750000 -1.566987 +v -1.000000 0.750000 -1.500000 +v -1.250000 0.750000 -1.566987 +v -1.500000 0.750000 -2.000000 +v -1.433013 0.750000 -1.750000 +v -1.500000 2.500000 -2.000000 +v -1.433013 2.500000 -1.750000 +v -1.250000 2.500000 -1.566987 +v -1.000000 2.500000 -1.500000 +v -0.750000 2.500000 -1.566987 +v -0.566987 2.500000 -1.750000 +v -0.500000 2.500000 -2.000000 +v -0.566987 2.500000 -2.250000 +v -0.750000 2.500000 -2.433012 +v -1.000000 2.500000 -2.500000 +v -1.250000 2.500000 -2.433013 +v -1.433013 2.500000 -2.250000 +v -0.433013 0.750000 -2.250000 +v -0.250000 0.750000 -2.433013 +v 0.000000 0.750000 -2.500000 +v 0.250000 0.750000 -2.433012 +v 0.433013 0.750000 -2.250000 +v 0.500000 0.750000 -2.000000 +v 0.433013 0.750000 -1.750000 +v 0.250000 0.750000 -1.566987 +v -0.000000 0.750000 -1.500000 +v -0.250000 0.750000 -1.566987 +v -0.500000 0.750000 -2.000000 +v -0.433013 0.750000 -1.750000 +v -0.500000 2.500000 -2.000000 +v -0.433013 2.500000 -1.750000 +v -0.250000 2.500000 -1.566987 +v -0.000000 2.500000 -1.500000 +v 0.250000 2.500000 -1.566987 +v 0.433013 2.500000 -1.750000 +v 0.500000 2.500000 -2.000000 +v 0.433013 2.500000 -2.250000 +v 0.250000 2.500000 -2.433012 +v 0.000000 2.500000 -2.500000 +v -0.250000 2.500000 -2.433013 +v -0.433013 2.500000 -2.250000 +v 0.566987 0.750000 -2.250000 +v 0.750000 0.750000 -2.433013 +v 1.000000 0.750000 -2.500000 +v 1.250000 0.750000 -2.433012 +v 1.433013 0.750000 -2.250000 +v 1.500000 0.750000 -2.000000 +v 1.433013 0.750000 -1.750000 +v 1.250000 0.750000 -1.566987 +v 1.000000 0.750000 -1.500000 +v 0.750000 0.750000 -1.566987 +v 0.500000 0.750000 -2.000000 +v 0.566987 0.750000 -1.750000 +v 0.500000 2.500000 -2.000000 +v 0.566987 2.500000 -1.750000 +v 0.750000 2.500000 -1.566987 +v 1.000000 2.500000 -1.500000 +v 1.250000 2.500000 -1.566987 +v 1.433013 2.500000 -1.750000 +v 1.500000 2.500000 -2.000000 +v 1.433013 2.500000 -2.250000 +v 1.250000 2.500000 -2.433012 +v 1.000000 2.500000 -2.500000 +v 0.750000 2.500000 -2.433013 +v 0.566987 2.500000 -2.250000 +v 1.566987 0.750000 -2.250001 +v 1.750000 0.750000 -2.433013 +v 2.000000 0.750000 -2.500000 +v 2.250000 0.750000 -2.433012 +v 2.433012 0.750000 -2.250000 +v 2.500000 0.750000 -2.000000 +v 2.433012 0.750000 -1.750000 +v 2.250000 0.750000 -1.566987 +v 2.000000 0.750000 -1.500000 +v 1.750000 0.750000 -1.566987 +v 1.500000 0.750000 -2.000000 +v 1.566987 0.750000 -1.750000 +v 1.500000 2.500000 -2.000000 +v 1.566987 2.500000 -1.750000 +v 1.750000 2.500000 -1.566987 +v 2.000000 2.500000 -1.500000 +v 2.250000 2.500000 -1.566987 +v 2.433012 2.500000 -1.750000 +v 2.500000 2.500000 -2.000000 +v 2.433012 2.500000 -2.250000 +v 2.250000 2.500000 -2.433012 +v 2.000000 2.500000 -2.500000 +v 1.750000 2.500000 -2.433013 +v 1.566987 2.500000 -2.250001 +v 0.750000 2.500000 1.750000 +v 0.750000 2.500000 2.250000 +v 1.250000 2.500000 1.750000 +v 1.250000 2.500000 2.250000 +v 1.250000 2.750000 1.750000 +v 0.750000 2.750000 1.750000 +v 0.750000 2.750000 2.250000 +v 1.250000 2.750000 2.250000 +v 0.812500 2.750000 1.812500 +v 0.812500 2.750000 2.187500 +v 1.187500 2.750000 1.812500 +v 1.187500 2.750000 2.187500 +v 1.187500 3.000000 1.812500 +v 0.812500 3.000000 1.812500 +v 0.812500 3.000000 2.187500 +v 1.187500 3.000000 2.187500 +v -0.250000 2.500000 1.750000 +v -0.250000 2.500000 2.250000 +v 0.250000 2.500000 1.750000 +v 0.250000 2.500000 2.250000 +v 0.250000 2.750000 1.750000 +v -0.250000 2.750000 1.750000 +v -0.250000 2.750000 2.250000 +v 0.250000 2.750000 2.250000 +v -0.187500 2.750000 1.812500 +v -0.187500 2.750000 2.187500 +v 0.187500 2.750000 1.812500 +v 0.187500 2.750000 2.187500 +v 0.187500 3.000000 1.812500 +v -0.187500 3.000000 1.812500 +v -0.187500 3.000000 2.187500 +v 0.187500 3.000000 2.187500 +v -1.250000 2.500000 1.750000 +v -1.250000 2.500000 2.250000 +v -0.750000 2.500000 1.750000 +v -0.750000 2.500000 2.250000 +v -0.750000 2.750000 1.750000 +v -1.250000 2.750000 1.750000 +v -1.250000 2.750000 2.250000 +v -0.750000 2.750000 2.250000 +v -1.187500 2.750000 1.812500 +v -1.187500 2.750000 2.187500 +v -0.812500 2.750000 1.812500 +v -0.812500 2.750000 2.187500 +v -0.812500 3.000000 1.812500 +v -1.187500 3.000000 1.812500 +v -1.187500 3.000000 2.187500 +v -0.812500 3.000000 2.187500 +v -2.250000 2.500000 1.750000 +v -2.250000 2.500000 2.250000 +v -1.750000 2.500000 1.750000 +v -1.750000 2.500000 2.250000 +v -1.750000 2.750000 1.750000 +v -2.250000 2.750000 1.750000 +v -2.250000 2.750000 2.250000 +v -1.750000 2.750000 2.250000 +v -2.187500 2.750000 1.812500 +v -2.187500 2.750000 2.187500 +v -1.812500 2.750000 1.812500 +v -1.812500 2.750000 2.187500 +v -1.812500 3.000000 1.812500 +v -2.187500 3.000000 1.812500 +v -2.187500 3.000000 2.187500 +v -1.812500 3.000000 2.187500 +v 1.750000 2.500000 -2.250000 +v 1.750000 2.500000 -1.750000 +v 2.250000 2.500000 -2.250000 +v 2.250000 2.500000 -1.750000 +v 2.250000 2.750000 -2.250000 +v 1.750000 2.750000 -2.250000 +v 1.750000 2.750000 -1.750000 +v 2.250000 2.750000 -1.750000 +v 1.812500 2.750000 -2.187500 +v 1.812500 2.750000 -1.812500 +v 2.187500 2.750000 -2.187500 +v 2.187500 2.750000 -1.812500 +v 2.187500 3.000000 -2.187500 +v 1.812500 3.000000 -2.187500 +v 1.812500 3.000000 -1.812500 +v 2.187500 3.000000 -1.812500 +v 0.750000 2.500000 -2.250000 +v 0.750000 2.500000 -1.750000 +v 1.250000 2.500000 -2.250000 +v 1.250000 2.500000 -1.750000 +v 1.250000 2.750000 -2.250000 +v 0.750000 2.750000 -2.250000 +v 0.750000 2.750000 -1.750000 +v 1.250000 2.750000 -1.750000 +v 0.812500 2.750000 -2.187500 +v 0.812500 2.750000 -1.812500 +v 1.187500 2.750000 -2.187500 +v 1.187500 2.750000 -1.812500 +v 1.187500 3.000000 -2.187500 +v 0.812500 3.000000 -2.187500 +v 0.812500 3.000000 -1.812500 +v 1.187500 3.000000 -1.812500 +v -0.250000 2.500000 -2.250000 +v -0.250000 2.500000 -1.750000 +v 0.250000 2.500000 -2.250000 +v 0.250000 2.500000 -1.750000 +v 0.250000 2.750000 -2.250000 +v -0.250000 2.750000 -2.250000 +v -0.250000 2.750000 -1.750000 +v 0.250000 2.750000 -1.750000 +v -0.187500 2.750000 -2.187500 +v -0.187500 2.750000 -1.812500 +v 0.187500 2.750000 -2.187500 +v 0.187500 2.750000 -1.812500 +v 0.187500 3.000000 -2.187500 +v -0.187500 3.000000 -2.187500 +v -0.187500 3.000000 -1.812500 +v 0.187500 3.000000 -1.812500 +v -1.250000 2.500000 -2.250000 +v -1.250000 2.500000 -1.750000 +v -0.750000 2.500000 -2.250000 +v -0.750000 2.500000 -1.750000 +v -0.750000 2.750000 -2.250000 +v -1.250000 2.750000 -2.250000 +v -1.250000 2.750000 -1.750000 +v -0.750000 2.750000 -1.750000 +v -1.187500 2.750000 -2.187500 +v -1.187500 2.750000 -1.812500 +v -0.812500 2.750000 -2.187500 +v -0.812500 2.750000 -1.812500 +v -0.812500 3.000000 -2.187500 +v -1.187500 3.000000 -2.187500 +v -1.187500 3.000000 -1.812500 +v -0.812500 3.000000 -1.812500 +v -2.250000 2.500000 -2.250000 +v -2.250000 2.500000 -1.750000 +v -1.750000 2.500000 -2.250000 +v -1.750000 2.500000 -1.750000 +v -1.750000 2.750000 -2.250000 +v -2.250000 2.750000 -2.250000 +v -2.250000 2.750000 -1.750000 +v -1.750000 2.750000 -1.750000 +v -2.187500 2.750000 -2.187500 +v -2.187500 2.750000 -1.812500 +v -1.812500 2.750000 -2.187500 +v -1.812500 2.750000 -1.812500 +v -1.812500 3.000000 -2.187500 +v -2.187500 3.000000 -2.187500 +v -2.187500 3.000000 -1.812500 +v -1.812500 3.000000 -1.812500 +v -2.125000 2.750000 1.750000 +v -2.213388 2.713388 1.750000 +v -2.250000 2.625000 1.750000 +v -2.213388 2.536612 1.750000 +v -2.125000 2.500000 1.750000 +v -2.036612 2.536612 1.750000 +v -2.000000 2.625000 1.750000 +v -2.036612 2.713388 1.750000 +v -2.125000 2.750000 -1.750000 +v -2.213388 2.713388 -1.750000 +v -2.250000 2.625000 -1.750000 +v -2.213388 2.536612 -1.750000 +v -2.125000 2.500000 -1.750000 +v -2.036612 2.536612 -1.750000 +v -2.000000 2.625000 -1.750000 +v -2.036612 2.713388 -1.750000 +v -1.125000 2.750000 1.750000 +v -1.213388 2.713388 1.750000 +v -1.250000 2.625000 1.750000 +v -1.213388 2.536612 1.750000 +v -1.125000 2.500000 1.750000 +v -1.036612 2.536612 1.750000 +v -1.000000 2.625000 1.750000 +v -1.036612 2.713388 1.750000 +v -1.125000 2.750000 1.375000 +v -1.213388 2.713388 1.375000 +v -1.250000 2.625000 1.375000 +v -1.213388 2.536612 1.375000 +v -1.125000 2.500000 1.375000 +v -1.036612 2.536612 1.375000 +v -1.000000 2.625000 1.375000 +v -1.036612 2.713388 1.375000 +v -1.125000 2.676776 1.198223 +v -1.213388 2.650888 1.224112 +v -1.250000 2.588388 1.286612 +v -1.213388 2.525888 1.349112 +v -1.036612 2.525888 1.349112 +v -1.000000 2.588388 1.286612 +v -1.036612 2.650888 1.224112 +v -1.125000 2.500000 1.125000 +v -1.213388 2.500000 1.161612 +v -1.250000 2.500000 1.250000 +v -1.213388 2.500000 1.338388 +v -1.036612 2.500000 1.338388 +v -1.000000 2.500000 1.250000 +v -1.036612 2.500000 1.161612 +v -1.125000 1.000000 1.375000 +v -1.125000 1.000000 1.125000 +v -1.213388 1.000000 1.161612 +v -1.250000 1.000000 1.250000 +v -1.213388 1.000000 1.338388 +v -1.036612 1.000000 1.338388 +v -1.000000 1.000000 1.250000 +v -1.036612 1.000000 1.161612 +v -1.125000 0.823223 1.301777 +v -1.213388 0.974112 1.150888 +v -1.250000 0.911612 1.213388 +v -1.213388 0.849112 1.275888 +v -1.036612 0.849112 1.275888 +v -1.000000 0.911612 1.213388 +v -1.036612 0.974112 1.150888 +v -1.125000 0.750000 1.125000 +v -1.213388 0.963388 1.125000 +v -1.250000 0.875000 1.125000 +v -1.213388 0.786612 1.125000 +v -1.036612 0.786612 1.125000 +v -1.000000 0.875000 1.125000 +v -1.036612 0.963388 1.125000 +v -1.125000 1.000000 1.000000 +v -1.125000 0.750000 1.000000 +v -1.213388 0.963388 1.000000 +v -1.250000 0.875000 1.000000 +v -1.213388 0.786612 1.000000 +v -1.036612 0.786612 1.000000 +v -1.000000 0.875000 1.000000 +v -1.036612 0.963388 1.000000 +v -0.875000 2.750000 1.750000 +v -0.963388 2.713388 1.750000 +v -1.000000 2.625000 1.750000 +v -0.963388 2.536612 1.750000 +v -0.875000 2.500000 1.750000 +v -0.786612 2.536612 1.750000 +v -0.750000 2.625000 1.750000 +v -0.786612 2.713388 1.750000 +v -0.875000 2.750000 1.375000 +v -0.963388 2.713388 1.375000 +v -1.000000 2.625000 1.375000 +v -0.963388 2.536612 1.375000 +v -0.875000 2.500000 1.375000 +v -0.786612 2.536612 1.375000 +v -0.750000 2.625000 1.375000 +v -0.786612 2.713388 1.375000 +v -0.875000 2.676776 1.198223 +v -0.963389 2.650888 1.224112 +v -1.000000 2.588388 1.286612 +v -0.963388 2.525888 1.349112 +v -0.786612 2.525888 1.349112 +v -0.750000 2.588388 1.286612 +v -0.786612 2.650888 1.224112 +v -0.875000 2.500000 1.125000 +v -0.963389 2.500000 1.161612 +v -1.000000 2.500000 1.250000 +v -0.963388 2.500000 1.338388 +v -0.786612 2.500000 1.338388 +v -0.750000 2.500000 1.250000 +v -0.786612 2.500000 1.161612 +v -0.875000 1.000000 1.375000 +v -0.875000 1.000000 1.125000 +v -0.963389 1.000000 1.161612 +v -1.000000 1.000000 1.250000 +v -0.963388 1.000000 1.338388 +v -0.786612 1.000000 1.338388 +v -0.750000 1.000000 1.250000 +v -0.786612 1.000000 1.161612 +v -0.875000 0.823223 1.301777 +v -0.963389 0.974112 1.150888 +v -1.000000 0.911612 1.213388 +v -0.963388 0.849112 1.275888 +v -0.786612 0.849112 1.275888 +v -0.750000 0.911612 1.213388 +v -0.786612 0.974112 1.150888 +v -0.875000 0.750000 1.125000 +v -0.963389 0.963388 1.125000 +v -1.000000 0.875000 1.125000 +v -0.963388 0.786612 1.125000 +v -0.786612 0.786612 1.125000 +v -0.750000 0.875000 1.125000 +v -0.786612 0.963388 1.125000 +v -0.875000 1.000000 1.000000 +v -0.875000 0.750000 1.000000 +v -0.963389 0.963388 1.000000 +v -1.000000 0.875000 1.000000 +v -0.963388 0.786612 1.000000 +v -0.786612 0.786612 1.000000 +v -0.750000 0.875000 1.000000 +v -0.786612 0.963388 1.000000 +v -1.875000 2.750000 1.750000 +v -1.963388 2.713388 1.750000 +v -2.000000 2.625000 1.750000 +v -1.963388 2.536612 1.750000 +v -1.875000 2.500000 1.750000 +v -1.786612 2.536612 1.750000 +v -1.750000 2.625000 1.750000 +v -1.786612 2.713388 1.750000 +v -1.875000 2.750000 1.375000 +v -1.963388 2.713388 1.375000 +v -2.000000 2.625000 1.375000 +v -1.963388 2.536612 1.375000 +v -1.875000 2.500000 1.375000 +v -1.786612 2.536612 1.375000 +v -1.750000 2.625000 1.375000 +v -1.786612 2.713388 1.375000 +v -1.875000 2.676776 1.198223 +v -1.963388 2.650888 1.224111 +v -2.000000 2.588388 1.286611 +v -1.963388 2.525888 1.349111 +v -1.786612 2.525888 1.349111 +v -1.750000 2.588388 1.286611 +v -1.786612 2.650888 1.224111 +v -1.875000 2.500000 1.125000 +v -1.963388 2.500000 1.161611 +v -2.000000 2.500000 1.250000 +v -1.963388 2.500000 1.338388 +v -1.786612 2.500000 1.338388 +v -1.750000 2.500000 1.250000 +v -1.786612 2.500000 1.161611 +v -1.875000 1.000000 1.375000 +v -1.875000 1.000000 1.125000 +v -1.963388 1.000000 1.161611 +v -2.000000 1.000000 1.250000 +v -1.963388 1.000000 1.338388 +v -1.786612 1.000000 1.338388 +v -1.750000 1.000000 1.250000 +v -1.786612 1.000000 1.161611 +v -1.875000 0.823223 1.301777 +v -1.963388 0.974112 1.150888 +v -2.000000 0.911612 1.213388 +v -1.963388 0.849112 1.275888 +v -1.786612 0.849112 1.275888 +v -1.750000 0.911612 1.213388 +v -1.786612 0.974112 1.150888 +v -1.875000 0.750000 1.125000 +v -1.963388 0.963388 1.125000 +v -2.000000 0.875000 1.125000 +v -1.963388 0.786612 1.125000 +v -1.786612 0.786612 1.125000 +v -1.750000 0.875000 1.125000 +v -1.786612 0.963388 1.125000 +v -1.875000 1.000000 1.000000 +v -1.875000 0.750000 1.000000 +v -1.963388 0.963388 1.000000 +v -2.000000 0.875000 1.000000 +v -1.963388 0.786612 1.000000 +v -1.786612 0.786612 1.000000 +v -1.750000 0.875000 1.000000 +v -1.786612 0.963388 1.000000 +v 1.875000 2.750000 1.750000 +v 1.786612 2.713388 1.750000 +v 1.750000 2.625000 1.750000 +v 1.786612 2.536612 1.750000 +v 1.875000 2.500000 1.750000 +v 1.963388 2.536612 1.750000 +v 2.000000 2.625000 1.750000 +v 1.963388 2.713388 1.750000 +v 1.875000 2.750000 1.375000 +v 1.786612 2.713388 1.375000 +v 1.750000 2.625000 1.375000 +v 1.786612 2.536612 1.375000 +v 1.875000 2.500000 1.375000 +v 1.963388 2.536612 1.375000 +v 2.000000 2.625000 1.375000 +v 1.963388 2.713388 1.375000 +v 1.875000 2.676776 1.198223 +v 1.786612 2.650888 1.224112 +v 1.750000 2.588388 1.286612 +v 1.786612 2.525888 1.349112 +v 1.963388 2.525888 1.349112 +v 2.000000 2.588388 1.286612 +v 1.963388 2.650888 1.224112 +v 1.875000 2.500000 1.125000 +v 1.786612 2.500000 1.161612 +v 1.750000 2.500000 1.250000 +v 1.786612 2.500000 1.338389 +v 1.963388 2.500000 1.338389 +v 2.000000 2.500000 1.250000 +v 1.963388 2.500000 1.161612 +v 1.875000 1.000000 1.375000 +v 1.875000 1.000000 1.125000 +v 1.786612 1.000000 1.161612 +v 1.750000 1.000000 1.250000 +v 1.786612 1.000000 1.338389 +v 1.963388 1.000000 1.338389 +v 2.000000 1.000000 1.250000 +v 1.963388 1.000000 1.161612 +v 1.875000 0.823223 1.301777 +v 1.786612 0.974112 1.150889 +v 1.750000 0.911612 1.213389 +v 1.786612 0.849112 1.275889 +v 1.963388 0.849112 1.275889 +v 2.000000 0.911612 1.213389 +v 1.963388 0.974112 1.150889 +v 1.875000 0.750000 1.125000 +v 1.786612 0.963388 1.125000 +v 1.750000 0.875000 1.125000 +v 1.786612 0.786612 1.125000 +v 1.963388 0.786612 1.125000 +v 2.000000 0.875000 1.125000 +v 1.963388 0.963388 1.125000 +v 1.875000 1.000000 1.000000 +v 1.875000 0.750000 1.000000 +v 1.786612 0.963388 1.000000 +v 1.750000 0.875000 1.000000 +v 1.786612 0.786612 1.000000 +v 1.963388 0.786612 1.000000 +v 2.000000 0.875000 1.000000 +v 1.963388 0.963388 1.000000 +v 0.125000 2.750000 -1.750000 +v 0.213388 2.713388 -1.750000 +v 0.250000 2.625000 -1.750000 +v 0.213388 2.536612 -1.750000 +v 0.125000 2.500000 -1.750000 +v 0.036611 2.536612 -1.750000 +v -0.000000 2.625000 -1.750000 +v 0.036611 2.713388 -1.750000 +v 0.125000 2.750000 -1.375000 +v 0.213388 2.713388 -1.375000 +v 0.250000 2.625000 -1.375000 +v 0.213388 2.536612 -1.375000 +v 0.125000 2.500000 -1.375000 +v 0.036611 2.536612 -1.375000 +v -0.000000 2.625000 -1.375000 +v 0.036611 2.713388 -1.375000 +v 0.125000 2.676776 -1.198223 +v 0.213388 2.650888 -1.224112 +v 0.250000 2.588388 -1.286612 +v 0.213388 2.525888 -1.349112 +v 0.036611 2.525888 -1.349112 +v -0.000000 2.588388 -1.286612 +v 0.036612 2.650888 -1.224112 +v 0.125000 2.500000 -1.125000 +v 0.213388 2.500000 -1.161612 +v 0.250000 2.500000 -1.250000 +v 0.213388 2.500000 -1.338388 +v 0.036611 2.500000 -1.338388 +v -0.000000 2.500000 -1.250000 +v 0.036612 2.500000 -1.161612 +v 0.125000 1.000000 -1.375000 +v 0.125000 1.000000 -1.125000 +v 0.213388 1.000000 -1.161612 +v 0.250000 1.000000 -1.250000 +v 0.213388 1.000000 -1.338388 +v 0.036611 1.000000 -1.338388 +v -0.000000 1.000000 -1.250000 +v 0.036612 1.000000 -1.161612 +v 0.125000 0.823223 -1.301777 +v 0.213388 0.974112 -1.150888 +v 0.250000 0.911612 -1.213388 +v 0.213388 0.849112 -1.275888 +v 0.036612 0.849112 -1.275888 +v -0.000000 0.911612 -1.213388 +v 0.036612 0.974112 -1.150888 +v 0.125000 0.750000 -1.125000 +v 0.213388 0.963388 -1.125000 +v 0.250000 0.875000 -1.125000 +v 0.213388 0.786612 -1.125000 +v 0.036612 0.786612 -1.125000 +v -0.000000 0.875000 -1.125000 +v 0.036612 0.963388 -1.125000 +v 0.125000 1.000000 -1.000000 +v 0.125000 0.750000 -1.000000 +v 0.213388 0.963388 -1.000000 +v 0.250000 0.875000 -1.000000 +v 0.213388 0.786612 -1.000000 +v 0.036612 0.786612 -1.000000 +v -0.000000 0.875000 -1.000000 +v 0.036612 0.963388 -1.000000 +v -0.125000 2.750000 -1.750000 +v -0.036612 2.713388 -1.750000 +v -0.000000 2.625000 -1.750000 +v -0.036612 2.536612 -1.750000 +v -0.125000 2.500000 -1.750000 +v -0.213389 2.536612 -1.750000 +v -0.250000 2.625000 -1.750000 +v -0.213389 2.713388 -1.750000 +v -0.125000 2.750000 -1.375000 +v -0.036612 2.713388 -1.375000 +v -0.000000 2.625000 -1.375000 +v -0.036612 2.536612 -1.375000 +v -0.125000 2.500000 -1.375000 +v -0.213389 2.536612 -1.375000 +v -0.250000 2.625000 -1.375000 +v -0.213389 2.713388 -1.375000 +v -0.125000 2.676776 -1.198223 +v -0.036612 2.650888 -1.224112 +v -0.000000 2.588388 -1.286612 +v -0.036612 2.525888 -1.349112 +v -0.213389 2.525888 -1.349112 +v -0.250000 2.588388 -1.286612 +v -0.213389 2.650888 -1.224112 +v -0.125000 2.500000 -1.125000 +v -0.036612 2.500000 -1.161612 +v -0.000000 2.500000 -1.250000 +v -0.036612 2.500000 -1.338388 +v -0.213389 2.500000 -1.338388 +v -0.250000 2.500000 -1.250000 +v -0.213388 2.500000 -1.161612 +v -0.125000 1.000000 -1.375000 +v -0.125000 1.000000 -1.125000 +v -0.036612 1.000000 -1.161612 +v -0.000000 1.000000 -1.250000 +v -0.036612 1.000000 -1.338388 +v -0.213389 1.000000 -1.338388 +v -0.250000 1.000000 -1.250000 +v -0.213388 1.000000 -1.161612 +v -0.125000 0.823223 -1.301777 +v -0.036612 0.974112 -1.150888 +v -0.000000 0.911612 -1.213388 +v -0.036612 0.849112 -1.275888 +v -0.213389 0.849112 -1.275888 +v -0.250000 0.911612 -1.213388 +v -0.213388 0.974112 -1.150888 +v -0.125000 0.750000 -1.125000 +v -0.036612 0.963388 -1.125000 +v -0.000000 0.875000 -1.125000 +v -0.036612 0.786612 -1.125000 +v -0.213389 0.786612 -1.125000 +v -0.250000 0.875000 -1.125000 +v -0.213388 0.963388 -1.125000 +v -0.125000 1.000000 -1.000000 +v -0.125000 0.750000 -1.000000 +v -0.036612 0.963388 -1.000000 +v -0.000000 0.875000 -1.000000 +v -0.036612 0.786612 -1.000000 +v -0.213388 0.786612 -1.000000 +v -0.250000 0.875000 -1.000000 +v -0.213388 0.963388 -1.000000 +v 1.125000 2.750000 -1.750000 +v 1.213388 2.713388 -1.750000 +v 1.250000 2.625000 -1.750000 +v 1.213388 2.536612 -1.750000 +v 1.125000 2.500000 -1.750000 +v 1.036612 2.536612 -1.750000 +v 1.000000 2.625000 -1.750000 +v 1.036612 2.713388 -1.750000 +v 1.125000 2.750000 -1.375000 +v 1.213388 2.713388 -1.375000 +v 1.250000 2.625000 -1.375000 +v 1.213388 2.536612 -1.375000 +v 1.125000 2.500000 -1.375000 +v 1.036612 2.536612 -1.375000 +v 1.000000 2.625000 -1.375000 +v 1.036612 2.713388 -1.375000 +v 1.125000 2.676776 -1.198223 +v 1.213388 2.650888 -1.224112 +v 1.250000 2.588388 -1.286612 +v 1.213388 2.525888 -1.349112 +v 1.036612 2.525888 -1.349112 +v 1.000000 2.588388 -1.286612 +v 1.036612 2.650888 -1.224112 +v 1.125000 2.500000 -1.125000 +v 1.213388 2.500000 -1.161612 +v 1.250000 2.500000 -1.250000 +v 1.213388 2.500000 -1.338388 +v 1.036612 2.500000 -1.338388 +v 1.000000 2.500000 -1.250000 +v 1.036612 2.500000 -1.161612 +v 1.125000 1.000000 -1.375000 +v 1.125000 1.000000 -1.125000 +v 1.213388 1.000000 -1.161612 +v 1.250000 1.000000 -1.250000 +v 1.213388 1.000000 -1.338388 +v 1.036612 1.000000 -1.338388 +v 1.000000 1.000000 -1.250000 +v 1.036612 1.000000 -1.161612 +v 1.125000 0.823223 -1.301777 +v 1.213388 0.974112 -1.150888 +v 1.250000 0.911612 -1.213388 +v 1.213388 0.849112 -1.275888 +v 1.036612 0.849112 -1.275888 +v 1.000000 0.911612 -1.213388 +v 1.036612 0.974112 -1.150888 +v 1.125000 0.750000 -1.125000 +v 1.213388 0.963388 -1.125000 +v 1.250000 0.875000 -1.125000 +v 1.213388 0.786612 -1.125000 +v 1.036612 0.786612 -1.125000 +v 1.000000 0.875000 -1.125000 +v 1.036612 0.963388 -1.125000 +v 1.125000 1.000000 -1.000000 +v 1.125000 0.750000 -1.000000 +v 1.213388 0.963388 -1.000000 +v 1.250000 0.875000 -1.000000 +v 1.213388 0.786612 -1.000000 +v 1.036612 0.786612 -1.000000 +v 1.000000 0.875000 -1.000000 +v 1.036612 0.963388 -1.000000 +v 0.875000 2.750000 -1.750000 +v 0.963388 2.713388 -1.750000 +v 1.000000 2.625000 -1.750000 +v 0.963388 2.536612 -1.750000 +v 0.875000 2.500000 -1.750000 +v 0.786611 2.536612 -1.750000 +v 0.750000 2.625000 -1.750000 +v 0.786611 2.713388 -1.750000 +v 0.875000 2.750000 -1.375000 +v 0.963388 2.713388 -1.375000 +v 1.000000 2.625000 -1.375000 +v 0.963388 2.536612 -1.375000 +v 0.875000 2.500000 -1.375000 +v 0.786611 2.536612 -1.375000 +v 0.750000 2.625000 -1.375000 +v 0.786611 2.713388 -1.375000 +v 0.875000 2.676776 -1.198223 +v 0.963388 2.650888 -1.224112 +v 1.000000 2.588388 -1.286612 +v 0.963388 2.525888 -1.349112 +v 0.786611 2.525888 -1.349112 +v 0.750000 2.588388 -1.286612 +v 0.786611 2.650888 -1.224112 +v 0.875000 2.500000 -1.125000 +v 0.963388 2.500000 -1.161612 +v 1.000000 2.500000 -1.250000 +v 0.963388 2.500000 -1.338388 +v 0.786611 2.500000 -1.338388 +v 0.750000 2.500000 -1.250000 +v 0.786612 2.500000 -1.161612 +v 0.875000 1.000000 -1.375000 +v 0.875000 1.000000 -1.125000 +v 0.963388 1.000000 -1.161612 +v 1.000000 1.000000 -1.250000 +v 0.963388 1.000000 -1.338388 +v 0.786611 1.000000 -1.338388 +v 0.750000 1.000000 -1.250000 +v 0.786612 1.000000 -1.161612 +v 0.875000 0.823223 -1.301777 +v 0.963388 0.974112 -1.150888 +v 1.000000 0.911612 -1.213388 +v 0.963388 0.849112 -1.275888 +v 0.786611 0.849112 -1.275888 +v 0.750000 0.911612 -1.213388 +v 0.786612 0.974112 -1.150888 +v 0.875000 0.750000 -1.125000 +v 0.963388 0.963388 -1.125000 +v 1.000000 0.875000 -1.125000 +v 0.963388 0.786612 -1.125000 +v 0.786611 0.786612 -1.125000 +v 0.750000 0.875000 -1.125000 +v 0.786612 0.963388 -1.125000 +v 0.875000 1.000000 -1.000000 +v 0.875000 0.750000 -1.000000 +v 0.963389 0.963388 -1.000000 +v 1.000000 0.875000 -1.000000 +v 0.963388 0.786612 -1.000000 +v 0.786612 0.786612 -1.000000 +v 0.750000 0.875000 -1.000000 +v 0.786612 0.963388 -1.000000 +v 1.875000 2.750000 -1.750000 +v 1.963388 2.713388 -1.750000 +v 2.000000 2.625000 -1.750000 +v 1.963388 2.536612 -1.750000 +v 1.875000 2.500000 -1.750000 +v 1.786612 2.536612 -1.750000 +v 1.750000 2.625000 -1.750000 +v 1.786612 2.713388 -1.750000 +v 1.875000 2.750000 -1.375000 +v 1.963388 2.713388 -1.375000 +v 2.000000 2.625000 -1.375000 +v 1.963388 2.536612 -1.375000 +v 1.875000 2.500000 -1.375000 +v 1.786612 2.536612 -1.375000 +v 1.750000 2.625000 -1.375000 +v 1.786612 2.713388 -1.375000 +v 1.875000 2.676776 -1.198223 +v 1.963388 2.650888 -1.224111 +v 2.000000 2.588388 -1.286611 +v 1.963388 2.525888 -1.349111 +v 1.786612 2.525888 -1.349111 +v 1.750000 2.588388 -1.286611 +v 1.786612 2.650888 -1.224111 +v 1.875000 2.500000 -1.125000 +v 1.963388 2.500000 -1.161611 +v 2.000000 2.500000 -1.250000 +v 1.963388 2.500000 -1.338388 +v 1.786612 2.500000 -1.338388 +v 1.750000 2.500000 -1.250000 +v 1.786612 2.500000 -1.161611 +v 1.875000 1.000000 -1.375000 +v 1.875000 1.000000 -1.125000 +v 1.963388 1.000000 -1.161611 +v 2.000000 1.000000 -1.250000 +v 1.963388 1.000000 -1.338388 +v 1.786612 1.000000 -1.338388 +v 1.750000 1.000000 -1.250000 +v 1.786612 1.000000 -1.161611 +v 1.875000 0.823223 -1.301777 +v 1.963388 0.974112 -1.150888 +v 2.000000 0.911612 -1.213388 +v 1.963388 0.849112 -1.275888 +v 1.786612 0.849112 -1.275888 +v 1.750000 0.911612 -1.213388 +v 1.786612 0.974112 -1.150888 +v 1.875000 0.750000 -1.125000 +v 1.963388 0.963388 -1.125000 +v 2.000000 0.875000 -1.125000 +v 1.963388 0.786612 -1.125000 +v 1.786612 0.786612 -1.125000 +v 1.750000 0.875000 -1.125000 +v 1.786612 0.963388 -1.125000 +v 1.875000 1.000000 -1.000000 +v 1.875000 0.750000 -1.000000 +v 1.963388 0.963388 -1.000000 +v 2.000000 0.875000 -1.000000 +v 1.963388 0.786612 -1.000000 +v 1.786612 0.786612 -1.000000 +v 1.750000 0.875000 -1.000000 +v 1.786612 0.963388 -1.000000 +v -1.875000 2.750000 -1.750000 +v -1.786612 2.713388 -1.750000 +v -1.750000 2.625000 -1.750000 +v -1.786612 2.536612 -1.750000 +v -1.875000 2.500000 -1.750000 +v -1.963388 2.536612 -1.750000 +v -2.000000 2.625000 -1.750000 +v -1.963388 2.713388 -1.750000 +v -1.875000 2.750000 -1.375000 +v -1.786612 2.713388 -1.375000 +v -1.750000 2.625000 -1.375000 +v -1.786612 2.536612 -1.375000 +v -1.875000 2.500000 -1.375000 +v -1.963388 2.536612 -1.375000 +v -2.000000 2.625000 -1.375000 +v -1.963388 2.713388 -1.375000 +v -1.875000 2.676776 -1.198223 +v -1.786612 2.650888 -1.224112 +v -1.750000 2.588388 -1.286612 +v -1.786612 2.525888 -1.349112 +v -1.963388 2.525888 -1.349112 +v -2.000000 2.588388 -1.286612 +v -1.963388 2.650888 -1.224112 +v -1.875000 2.500000 -1.125000 +v -1.786612 2.500000 -1.161612 +v -1.750000 2.500000 -1.250000 +v -1.786612 2.500000 -1.338389 +v -1.963388 2.500000 -1.338389 +v -2.000000 2.500000 -1.250000 +v -1.963388 2.500000 -1.161612 +v -1.875000 1.000000 -1.375000 +v -1.875000 1.000000 -1.125000 +v -1.786612 1.000000 -1.161612 +v -1.750000 1.000000 -1.250000 +v -1.786612 1.000000 -1.338389 +v -1.963388 1.000000 -1.338389 +v -2.000000 1.000000 -1.250000 +v -1.963388 1.000000 -1.161612 +v -1.875000 0.823223 -1.301777 +v -1.786612 0.974112 -1.150889 +v -1.750000 0.911612 -1.213389 +v -1.786612 0.849112 -1.275889 +v -1.963388 0.849112 -1.275889 +v -2.000000 0.911612 -1.213389 +v -1.963388 0.974112 -1.150889 +v -1.875000 0.750000 -1.125000 +v -1.786612 0.963388 -1.125000 +v -1.750000 0.875000 -1.125000 +v -1.786612 0.786612 -1.125000 +v -1.963388 0.786612 -1.125000 +v -2.000000 0.875000 -1.125000 +v -1.963388 0.963388 -1.125000 +v -1.875000 1.000000 -1.000000 +v -1.875000 0.750000 -1.000000 +v -1.786612 0.963388 -1.000000 +v -1.750000 0.875000 -1.000000 +v -1.786612 0.786612 -1.000000 +v -1.963388 0.786612 -1.000000 +v -2.000000 0.875000 -1.000000 +v -1.963388 0.963388 -1.000000 +v 2.500000 0.312500 0.812500 +v 2.500000 0.312500 1.187500 +v 2.500000 0.687500 0.812500 +v 2.500000 0.687500 1.187500 +v 2.375000 0.625000 0.875000 +v 2.375000 0.375000 0.875000 +v 2.375000 0.375000 1.125000 +v 2.375000 0.625000 1.125000 +v 2.375000 0.687500 0.812500 +v 2.375000 0.312500 0.812500 +v 2.375000 0.312500 1.187500 +v 2.375000 0.687500 1.187500 +v 2.250000 0.625000 0.875000 +v 2.250000 0.375000 0.875000 +v 2.250000 0.375000 1.125000 +v 2.250000 0.625000 1.125000 +v 2.500000 0.312500 1.812500 +v 2.500000 0.312500 2.187500 +v 2.500000 0.687500 1.812500 +v 2.500000 0.687500 2.187500 +v 2.375000 0.625000 1.875000 +v 2.375000 0.375000 1.875000 +v 2.375000 0.375000 2.125000 +v 2.375000 0.625000 2.125000 +v 2.375000 0.687500 1.812500 +v 2.375000 0.312500 1.812500 +v 2.375000 0.312500 2.187500 +v 2.375000 0.687500 2.187500 +v 2.250000 0.625000 1.875000 +v 2.250000 0.375000 1.875000 +v 2.250000 0.375000 2.125000 +v 2.250000 0.625000 2.125000 +v 2.500000 0.312500 -2.187500 +v 2.500000 0.312500 -1.812500 +v 2.500000 0.687500 -2.187500 +v 2.500000 0.687500 -1.812500 +v 2.375000 0.625000 -2.125000 +v 2.375000 0.375000 -2.125000 +v 2.375000 0.375000 -1.875000 +v 2.375000 0.625000 -1.875000 +v 2.375000 0.687500 -2.187500 +v 2.375000 0.312500 -2.187500 +v 2.375000 0.312500 -1.812500 +v 2.375000 0.687500 -1.812500 +v 2.250000 0.625000 -2.125000 +v 2.250000 0.375000 -2.125000 +v 2.250000 0.375000 -1.875000 +v 2.250000 0.625000 -1.875000 +v 2.500000 0.312500 -1.187500 +v 2.500000 0.312500 -0.812500 +v 2.500000 0.687500 -1.187500 +v 2.500000 0.687500 -0.812500 +v 2.375000 0.625000 -1.125000 +v 2.375000 0.375000 -1.125000 +v 2.375000 0.375000 -0.875000 +v 2.375000 0.625000 -0.875000 +v 2.375000 0.687500 -1.187500 +v 2.375000 0.312500 -1.187500 +v 2.375000 0.312500 -0.812500 +v 2.375000 0.687500 -0.812500 +v 2.250000 0.625000 -1.125000 +v 2.250000 0.375000 -1.125000 +v 2.250000 0.375000 -0.875000 +v 2.250000 0.625000 -0.875000 +v -2.500000 0.312500 0.187500 +v -2.500000 0.312500 -0.187500 +v -2.500000 0.687500 0.187500 +v -2.500000 0.687500 -0.187500 +v -2.375000 0.625000 0.125000 +v -2.375000 0.375000 0.125000 +v -2.375000 0.375000 -0.125000 +v -2.375000 0.625000 -0.125000 +v -2.375000 0.687500 0.187500 +v -2.375000 0.312500 0.187500 +v -2.375000 0.312500 -0.187500 +v -2.375000 0.687500 -0.187500 +v -2.250000 0.625000 0.125000 +v -2.250000 0.375000 0.125000 +v -2.250000 0.375000 -0.125000 +v -2.250000 0.625000 -0.125000 +v -2.500000 0.312500 -0.812500 +v -2.500000 0.312500 -1.187500 +v -2.500000 0.687500 -0.812500 +v -2.500000 0.687500 -1.187500 +v -2.375000 0.625000 -0.875000 +v -2.375000 0.375000 -0.875000 +v -2.375000 0.375000 -1.125000 +v -2.375000 0.625000 -1.125000 +v -2.375000 0.687500 -0.812500 +v -2.375000 0.312500 -0.812500 +v -2.375000 0.312500 -1.187500 +v -2.375000 0.687500 -1.187500 +v -2.250000 0.625000 -0.875000 +v -2.250000 0.375000 -0.875000 +v -2.250000 0.375000 -1.125000 +v -2.250000 0.625000 -1.125000 +v -2.500000 0.312500 -1.812500 +v -2.500000 0.312500 -2.187500 +v -2.500000 0.687500 -1.812500 +v -2.500000 0.687500 -2.187500 +v -2.375000 0.625000 -1.875000 +v -2.375000 0.375000 -1.875000 +v -2.375000 0.375000 -2.125000 +v -2.375000 0.625000 -2.125000 +v -2.375000 0.687500 -1.812500 +v -2.375000 0.312500 -1.812500 +v -2.375000 0.312500 -2.187500 +v -2.375000 0.687500 -2.187500 +v -2.250000 0.625000 -1.875000 +v -2.250000 0.375000 -1.875000 +v -2.250000 0.375000 -2.125000 +v -2.250000 0.625000 -2.125000 +v -2.500000 0.312500 2.187500 +v -2.500000 0.312500 1.812500 +v -2.500000 0.687500 2.187500 +v -2.500000 0.687500 1.812500 +v -2.375000 0.625000 2.125000 +v -2.375000 0.375000 2.125000 +v -2.375000 0.375000 1.875000 +v -2.375000 0.625000 1.875000 +v -2.375000 0.687500 2.187500 +v -2.375000 0.312500 2.187500 +v -2.375000 0.312500 1.812500 +v -2.375000 0.687500 1.812500 +v -2.250000 0.625000 2.125000 +v -2.250000 0.375000 2.125000 +v -2.250000 0.375000 1.875000 +v -2.250000 0.625000 1.875000 +v -2.500000 0.312500 1.187500 +v -2.500000 0.312500 0.812500 +v -2.500000 0.687500 1.187500 +v -2.500000 0.687500 0.812500 +v -2.375000 0.625000 1.125000 +v -2.375000 0.375000 1.125000 +v -2.375000 0.375000 0.875000 +v -2.375000 0.625000 0.875000 +v -2.375000 0.687500 1.187500 +v -2.375000 0.312500 1.187500 +v -2.375000 0.312500 0.812500 +v -2.375000 0.687500 0.812500 +v -2.250000 0.625000 1.125000 +v -2.250000 0.375000 1.125000 +v -2.250000 0.375000 0.875000 +v -2.250000 0.625000 0.875000 +v -0.187500 0.312500 -2.500000 +v 0.187500 0.312500 -2.500000 +v -0.187500 0.687500 -2.500000 +v 0.187500 0.687500 -2.500000 +v -0.125000 0.625000 -2.375000 +v -0.125000 0.375000 -2.375000 +v 0.125000 0.375000 -2.375000 +v 0.125000 0.625000 -2.375000 +v -0.187500 0.687500 -2.375000 +v -0.187500 0.312500 -2.375000 +v 0.187500 0.312500 -2.375000 +v 0.187500 0.687500 -2.375000 +v -0.125000 0.625000 -2.250000 +v -0.125000 0.375000 -2.250000 +v 0.125000 0.375000 -2.250000 +v 0.125000 0.625000 -2.250000 +v 0.812500 0.312500 -2.500000 +v 1.187500 0.312500 -2.500000 +v 0.812500 0.687500 -2.500000 +v 1.187500 0.687500 -2.500000 +v 0.875000 0.625000 -2.375000 +v 0.875000 0.375000 -2.375000 +v 1.125000 0.375000 -2.375000 +v 1.125000 0.625000 -2.375000 +v 0.812500 0.687500 -2.375000 +v 0.812500 0.312500 -2.375000 +v 1.187500 0.312500 -2.375000 +v 1.187500 0.687500 -2.375000 +v 0.875000 0.625000 -2.250000 +v 0.875000 0.375000 -2.250000 +v 1.125000 0.375000 -2.250000 +v 1.125000 0.625000 -2.250000 +v 1.812500 0.312500 -2.500000 +v 2.187500 0.312500 -2.500000 +v 1.812500 0.687500 -2.500000 +v 2.187500 0.687500 -2.500000 +v 1.875000 0.625000 -2.375000 +v 1.875000 0.375000 -2.375000 +v 2.125000 0.375000 -2.375000 +v 2.125000 0.625000 -2.375000 +v 1.812500 0.687500 -2.375000 +v 1.812500 0.312500 -2.375000 +v 2.187500 0.312500 -2.375000 +v 2.187500 0.687500 -2.375000 +v 1.875000 0.625000 -2.250000 +v 1.875000 0.375000 -2.250000 +v 2.125000 0.375000 -2.250000 +v 2.125000 0.625000 -2.250000 +v -2.187500 0.312500 -2.500000 +v -1.812500 0.312500 -2.500000 +v -2.187500 0.687500 -2.500000 +v -1.812500 0.687500 -2.500000 +v -2.125000 0.625000 -2.375000 +v -2.125000 0.375000 -2.375000 +v -1.875000 0.375000 -2.375000 +v -1.875000 0.625000 -2.375000 +v -2.187500 0.687500 -2.375000 +v -2.187500 0.312500 -2.375000 +v -1.812500 0.312500 -2.375000 +v -1.812500 0.687500 -2.375000 +v -2.125000 0.625000 -2.250000 +v -2.125000 0.375000 -2.250000 +v -1.875000 0.375000 -2.250000 +v -1.875000 0.625000 -2.250000 +v -1.187500 0.312500 -2.500000 +v -0.812500 0.312500 -2.500000 +v -1.187500 0.687500 -2.500000 +v -0.812500 0.687500 -2.500000 +v -1.125000 0.625000 -2.375000 +v -1.125000 0.375000 -2.375000 +v -0.875000 0.375000 -2.375000 +v -0.875000 0.625000 -2.375000 +v -1.187500 0.687500 -2.375000 +v -1.187500 0.312500 -2.375000 +v -0.812500 0.312500 -2.375000 +v -0.812500 0.687500 -2.375000 +v -1.125000 0.625000 -2.250000 +v -1.125000 0.375000 -2.250000 +v -0.875000 0.375000 -2.250000 +v -0.875000 0.625000 -2.250000 +v 0.187500 0.312500 2.500000 +v -0.187500 0.312500 2.500000 +v 0.187500 0.687500 2.500000 +v -0.187500 0.687500 2.500000 +v 0.125000 0.625000 2.375000 +v 0.125000 0.375000 2.375000 +v -0.125000 0.375000 2.375000 +v -0.125000 0.625000 2.375000 +v 0.187500 0.687500 2.375000 +v 0.187500 0.312500 2.375000 +v -0.187500 0.312500 2.375000 +v -0.187500 0.687500 2.375000 +v 0.125000 0.625000 2.250000 +v 0.125000 0.375000 2.250000 +v -0.125000 0.375000 2.250000 +v -0.125000 0.625000 2.250000 +v -0.812500 0.312500 2.500000 +v -1.187500 0.312500 2.500000 +v -0.812500 0.687500 2.500000 +v -1.187500 0.687500 2.500000 +v -0.875000 0.625000 2.375000 +v -0.875000 0.375000 2.375000 +v -1.125000 0.375000 2.375000 +v -1.125000 0.625000 2.375000 +v -0.812500 0.687500 2.375000 +v -0.812500 0.312500 2.375000 +v -1.187500 0.312500 2.375000 +v -1.187500 0.687500 2.375000 +v -0.875000 0.625000 2.250000 +v -0.875000 0.375000 2.250000 +v -1.125000 0.375000 2.250000 +v -1.125000 0.625000 2.250000 +v -1.812500 0.312500 2.500000 +v -2.187500 0.312500 2.500000 +v -1.812500 0.687500 2.500000 +v -2.187500 0.687500 2.500000 +v -1.875000 0.625000 2.375000 +v -1.875000 0.375000 2.375000 +v -2.125000 0.375000 2.375000 +v -2.125000 0.625000 2.375000 +v -1.812500 0.687500 2.375000 +v -1.812500 0.312500 2.375000 +v -2.187500 0.312500 2.375000 +v -2.187500 0.687500 2.375000 +v -1.875000 0.625000 2.250000 +v -1.875000 0.375000 2.250000 +v -2.125000 0.375000 2.250000 +v -2.125000 0.625000 2.250000 +v 2.187500 0.312500 2.500000 +v 1.812500 0.312500 2.500000 +v 2.187500 0.687500 2.500000 +v 1.812500 0.687500 2.500000 +v 2.125000 0.625000 2.375000 +v 2.125000 0.375000 2.375000 +v 1.875000 0.375000 2.375000 +v 1.875000 0.625000 2.375000 +v 2.187500 0.687500 2.375000 +v 2.187500 0.312500 2.375000 +v 1.812500 0.312500 2.375000 +v 1.812500 0.687500 2.375000 +v 2.125000 0.625000 2.250000 +v 2.125000 0.375000 2.250000 +v 1.875000 0.375000 2.250000 +v 1.875000 0.625000 2.250000 +v 1.187500 0.312500 2.500000 +v 0.812500 0.312500 2.500000 +v 1.187500 0.687500 2.500000 +v 0.812500 0.687500 2.500000 +v 1.125000 0.625000 2.375000 +v 1.125000 0.375000 2.375000 +v 0.875000 0.375000 2.375000 +v 0.875000 0.625000 2.375000 +v 1.187500 0.687500 2.375000 +v 1.187500 0.312500 2.375000 +v 0.812500 0.312500 2.375000 +v 0.812500 0.687500 2.375000 +v 1.125000 0.625000 2.250000 +v 1.125000 0.375000 2.250000 +v 0.875000 0.375000 2.250000 +v 0.875000 0.625000 2.250000 +v 1.088388 0.411612 1.750000 +v 1.000000 0.375000 1.750000 +v 0.911612 0.411612 1.750000 +v 0.875000 0.500000 1.750000 +v 0.911612 0.588388 1.750000 +v 1.000000 0.625000 1.750000 +v 1.088388 0.588388 1.750000 +v 1.125000 0.500000 1.750000 +v 1.088388 0.411612 1.250000 +v 1.000000 0.375000 1.250000 +v 0.911612 0.411612 1.250000 +v 0.875000 0.500000 1.250000 +v 0.911612 0.588388 1.250000 +v 1.000000 0.625000 1.250000 +v 1.088388 0.588388 1.250000 +v 1.125000 0.500000 1.250000 +v 0.088388 0.411612 1.750000 +v -0.000000 0.375000 1.750000 +v -0.088388 0.411612 1.750000 +v -0.125000 0.500000 1.750000 +v -0.088388 0.588388 1.750000 +v -0.000000 0.625000 1.750000 +v 0.088388 0.588388 1.750000 +v 0.125000 0.500000 1.750000 +v 0.088388 0.411612 1.250000 +v -0.000000 0.375000 1.250000 +v -0.088388 0.411612 1.250000 +v -0.125000 0.500000 1.250000 +v -0.088388 0.588388 1.250000 +v -0.000000 0.625000 1.250000 +v 0.088388 0.588388 1.250000 +v 0.125000 0.500000 1.250000 +v -0.911612 0.411612 1.750000 +v -1.000000 0.375000 1.750000 +v -1.088388 0.411612 1.750000 +v -1.125000 0.500000 1.750000 +v -1.088388 0.588388 1.750000 +v -1.000000 0.625000 1.750000 +v -0.911612 0.588388 1.750000 +v -0.875000 0.500000 1.750000 +v -0.911612 0.411612 1.250000 +v -1.000000 0.375000 1.250000 +v -1.088388 0.411612 1.250000 +v -1.125000 0.500000 1.250000 +v -1.088388 0.588388 1.250000 +v -1.000000 0.625000 1.250000 +v -0.911612 0.588388 1.250000 +v -0.875000 0.500000 1.250000 +v -1.911612 0.411612 1.750000 +v -2.000000 0.375000 1.750000 +v -2.088388 0.411612 1.750000 +v -2.125000 0.500000 1.750000 +v -2.088388 0.588388 1.750000 +v -2.000000 0.625000 1.750000 +v -1.911612 0.588388 1.750000 +v -1.875000 0.500000 1.750000 +v -1.911612 0.411612 1.250000 +v -2.000000 0.375000 1.250000 +v -2.088388 0.411612 1.250000 +v -2.125000 0.500000 1.250000 +v -2.088388 0.588388 1.250000 +v -2.000000 0.625000 1.250000 +v -1.911612 0.588388 1.250000 +v -1.875000 0.500000 1.250000 +v 2.088388 0.411612 -1.250000 +v 2.000000 0.375000 -1.250000 +v 1.911612 0.411612 -1.250000 +v 1.875000 0.500000 -1.250000 +v 1.911612 0.588388 -1.250000 +v 2.000000 0.625000 -1.250000 +v 2.088388 0.588388 -1.250000 +v 2.125000 0.500000 -1.250000 +v 2.088388 0.411612 -1.750000 +v 2.000000 0.375000 -1.750000 +v 1.911612 0.411612 -1.750000 +v 1.875000 0.500000 -1.750000 +v 1.911612 0.588388 -1.750000 +v 2.000000 0.625000 -1.750000 +v 2.088388 0.588388 -1.750000 +v 2.125000 0.500000 -1.750000 +v 1.088388 0.411612 -1.250000 +v 1.000000 0.375000 -1.250000 +v 0.911612 0.411612 -1.250000 +v 0.875000 0.500000 -1.250000 +v 0.911612 0.588388 -1.250000 +v 1.000000 0.625000 -1.250000 +v 1.088388 0.588388 -1.250000 +v 1.125000 0.500000 -1.250000 +v 1.088389 0.411612 -1.750000 +v 1.000000 0.375000 -1.750000 +v 0.911612 0.411612 -1.750000 +v 0.875000 0.500000 -1.750000 +v 0.911612 0.588388 -1.750000 +v 1.000000 0.625000 -1.750000 +v 1.088389 0.588388 -1.750000 +v 1.125000 0.500000 -1.750000 +v 0.088388 0.411612 -1.250000 +v 0.000000 0.375000 -1.250000 +v -0.088388 0.411612 -1.250000 +v -0.125000 0.500000 -1.250000 +v -0.088388 0.588388 -1.250000 +v 0.000000 0.625000 -1.250000 +v 0.088388 0.588388 -1.250000 +v 0.125000 0.500000 -1.250000 +v 0.088389 0.411612 -1.750000 +v 0.000000 0.375000 -1.750000 +v -0.088388 0.411612 -1.750000 +v -0.125000 0.500000 -1.750000 +v -0.088388 0.588388 -1.750000 +v 0.000000 0.625000 -1.750000 +v 0.088389 0.588388 -1.750000 +v 0.125000 0.500000 -1.750000 +v -0.911611 0.411612 -1.250000 +v -1.000000 0.375000 -1.250000 +v -1.088388 0.411612 -1.250000 +v -1.125000 0.500000 -1.250000 +v -1.088388 0.588388 -1.250000 +v -1.000000 0.625000 -1.250000 +v -0.911611 0.588388 -1.250000 +v -0.875000 0.500000 -1.250000 +v -0.911611 0.411612 -1.750000 +v -1.000000 0.375000 -1.750000 +v -1.088388 0.411612 -1.750000 +v -1.125000 0.500000 -1.750000 +v -1.088388 0.588388 -1.750000 +v -1.000000 0.625000 -1.750000 +v -0.911611 0.588388 -1.750000 +v -0.875000 0.500000 -1.750000 +v -1.911612 0.411612 -1.250000 +v -2.000000 0.375000 -1.250000 +v -2.088388 0.411612 -1.250000 +v -2.125000 0.500000 -1.250000 +v -2.088388 0.588388 -1.250000 +v -2.000000 0.625000 -1.250000 +v -1.911612 0.588388 -1.250000 +v -1.875000 0.500000 -1.250000 +v -1.911611 0.411612 -1.750000 +v -2.000000 0.375000 -1.750000 +v -2.088388 0.411612 -1.750000 +v -2.125000 0.500000 -1.750000 +v -2.088388 0.588388 -1.750000 +v -2.000000 0.625000 -1.750000 +v -1.911611 0.588388 -1.750000 +v -1.875000 0.500000 -1.750000 +vt 0.490196 0.574713 +vt 0.843137 0.586207 +vt 0.490196 0.586207 +vt 0.862745 -0.000000 +vt 0.882353 0.022989 +vt 0.862745 0.022989 +vt 0.882353 0.045977 +vt 0.862745 0.068966 +vt 0.862745 0.045977 +vt 0.921569 0.022989 +vt 0.901961 0.045977 +vt 0.901961 0.022989 +vt 0.941176 0.022989 +vt 0.921569 0.045977 +vt 0.862745 -0.000000 +vt 0.882353 0.022989 +vt 0.862745 0.022989 +vt 0.882353 0.045977 +vt 0.862745 0.068966 +vt 0.862745 0.045977 +vt 0.921569 0.022989 +vt 0.901961 0.045977 +vt 0.901961 0.022989 +vt 0.941176 0.022989 +vt 0.921569 0.045977 +vt 0.862745 -0.000000 +vt 0.882353 0.022989 +vt 0.862745 0.022989 +vt 0.882353 0.045977 +vt 0.862745 0.068966 +vt 0.862745 0.045977 +vt 0.921569 0.022989 +vt 0.901961 0.045977 +vt 0.901961 0.022989 +vt 0.941176 0.022989 +vt 0.921569 0.045977 +vt 0.862745 -0.000000 +vt 0.882353 0.022989 +vt 0.862745 0.022989 +vt 0.882353 0.045977 +vt 0.862745 0.068966 +vt 0.862745 0.045977 +vt 0.921569 0.022989 +vt 0.901961 0.045977 +vt 0.901961 0.022989 +vt 0.941176 0.022989 +vt 0.921569 0.045977 +vt 0.843137 0.597701 +vt 0.490196 0.563218 +vt 0.843137 0.574713 +vt 0.490196 0.597701 +vt 0.843137 0.609195 +vt 0.490196 0.609195 +vt 0.490196 0.574713 +vt 0.843137 0.586207 +vt 0.490196 0.586207 +vt 0.843137 0.597701 +vt 0.490196 0.563218 +vt 0.843137 0.574713 +vt 0.490196 0.597701 +vt 0.843137 0.609195 +vt 0.490196 0.609195 +vt 0.490196 0.574713 +vt 0.843137 0.586207 +vt 0.490196 0.586207 +vt 0.843137 0.597701 +vt 0.490196 0.563218 +vt 0.843137 0.574713 +vt 0.490196 0.597701 +vt 0.843137 0.609195 +vt 0.490196 0.609195 +vt 0.490196 0.574713 +vt 0.843137 0.586207 +vt 0.490196 0.586207 +vt 0.843137 0.597701 +vt 0.490196 0.563218 +vt 0.843137 0.574713 +vt 0.490196 0.597701 +vt 0.843137 0.609195 +vt 0.490196 0.609195 +vt 0.960784 0.011494 +vt 0.970588 0.471264 +vt 0.960784 0.471264 +vt 0.970588 0.482759 +vt 0.990196 0.471264 +vt 0.990196 0.482759 +vt 0.990196 0.000000 +vt 0.970588 0.011494 +vt 0.970588 0.000000 +vt 1.000000 0.471264 +vt 0.990196 0.011494 +vt 1.000000 0.011494 +vt 0.941176 0.011494 +vt 0.941176 0.471264 +vt 0.960784 0.011494 +vt 0.970588 0.471264 +vt 0.960784 0.471264 +vt 0.970588 0.482759 +vt 0.990196 0.471264 +vt 0.990196 0.482759 +vt 0.990196 0.000000 +vt 0.970588 0.011494 +vt 0.970588 0.000000 +vt 1.000000 0.471264 +vt 0.990196 0.011494 +vt 1.000000 0.011494 +vt 0.941176 0.011494 +vt 0.941176 0.471264 +vt 0.941176 0.011494 +vt 0.960784 0.471264 +vt 0.941176 0.471264 +vt 0.970588 0.471264 +vt 0.990196 0.011494 +vt 0.990196 0.471264 +vt 1.000000 0.471264 +vt 1.000000 0.011494 +vt 0.990196 0.000000 +vt 0.970588 0.011494 +vt 0.970588 0.000000 +vt 0.970588 0.482759 +vt 0.990196 0.482759 +vt 0.960784 0.011494 +vt 0.960784 0.011494 +vt 0.970588 0.471264 +vt 0.960784 0.471264 +vt 0.970588 0.482759 +vt 0.990196 0.471264 +vt 0.990196 0.482759 +vt 0.990196 0.000000 +vt 0.970588 0.011494 +vt 0.970588 0.000000 +vt 1.000000 0.471264 +vt 0.990196 0.011494 +vt 1.000000 0.011494 +vt 0.941176 0.011494 +vt 0.941176 0.471264 +vt 0.941176 0.011494 +vt 0.960784 0.471264 +vt 0.941176 0.471264 +vt 0.970588 0.471264 +vt 0.990196 0.011494 +vt 0.990196 0.471264 +vt 1.000000 0.471264 +vt 1.000000 0.011494 +vt 0.990196 0.000000 +vt 0.970588 0.011494 +vt 0.970588 0.000000 +vt 0.970588 0.482759 +vt 0.990196 0.482759 +vt 0.960784 0.011494 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.083719 0.931057 +vt 0.117647 0.908092 +vt 0.151575 0.976988 +vt 0.005288 0.976988 +vt 0.005288 0.931057 +vt 0.073143 0.931057 +vt 0.117647 0.459770 +vt 0.078431 0.045977 +vt 0.117647 0.045977 +vt 0.078431 0.459770 +vt 0.039216 0.045977 +vt 0.156863 0.459770 +vt 0.078431 0.505747 +vt 0.117647 -0.000000 +vt 0.000000 0.045977 +vt 0.039216 0.459770 +vt 0.000000 0.459770 +vt 0.117647 0.459770 +vt 0.078431 0.045977 +vt 0.117647 0.045977 +vt 0.078431 0.459770 +vt 0.039216 0.045977 +vt 0.156863 0.459770 +vt 0.078431 0.505747 +vt 0.117647 -0.000000 +vt 0.000000 0.045977 +vt 0.039216 0.459770 +vt 0.000000 0.459770 +vt 0.588235 0.459770 +vt 0.392157 0.045977 +vt 0.588235 0.045977 +vt 0.392157 0.459770 +vt 0.352941 0.045977 +vt 0.627451 0.459770 +vt 0.392157 0.505747 +vt 0.588235 0.000000 +vt 0.176471 0.436782 +vt 0.352941 0.459770 +vt 0.156863 0.459770 +vt 0.627451 0.091954 +vt 0.705882 0.459770 +vt 0.627451 0.459770 +vt 0.176471 0.068966 +vt 0.156863 0.045977 +vt 0.333333 0.068966 +vt 0.333333 0.436782 +vt 0.862745 0.091954 +vt 0.862745 0.459770 +vt 0.941176 0.459770 +vt 0.941176 0.091954 +vt 0.862745 0.000000 +vt 0.705882 0.091954 +vt 0.705882 0.000000 +vt 0.705882 0.551724 +vt 0.862745 0.551724 +vt 0.196078 0.229885 +vt 0.313726 0.091954 +vt 0.313726 0.229885 +vt 0.196078 0.252874 +vt 0.313726 0.252874 +vt 0.176471 0.091954 +vt 0.176471 0.229885 +vt 0.333333 0.229885 +vt 0.333333 0.091954 +vt 0.313726 0.068966 +vt 0.196078 0.091954 +vt 0.196078 0.068966 +vt 0.176471 0.540230 +vt 0.156863 0.528736 +vt 0.176471 0.528736 +vt 0.196078 0.540230 +vt 0.196078 0.528736 +vt 0.215686 0.528736 +vt 0.215686 0.540230 +vt 0.235294 0.540230 +vt 0.235294 0.528736 +vt 0.254902 0.528736 +vt 0.254902 0.540230 +vt 0.274510 0.528736 +vt 0.274510 0.540230 +vt 0.294118 0.540230 +vt 0.294118 0.528736 +vt 0.313726 0.540230 +vt 0.313726 0.528736 +vt 0.019608 0.540230 +vt 0.000000 0.528736 +vt 0.019608 0.528736 +vt 0.039216 0.540230 +vt 0.039216 0.528736 +vt 0.058824 0.540230 +vt 0.058824 0.528736 +vt 0.078431 0.540230 +vt 0.078431 0.528736 +vt 0.098039 0.528736 +vt 0.098039 0.540230 +vt 0.117647 0.528736 +vt 0.117647 0.540230 +vt 0.137255 0.540230 +vt 0.137255 0.528736 +vt 0.156863 0.540230 +vt 0.210784 0.465517 +vt 0.308824 0.459770 +vt 0.308824 0.465517 +vt 0.210784 0.465517 +vt 0.308824 0.459770 +vt 0.308824 0.465517 +vt 0.210784 0.465517 +vt 0.308824 0.459770 +vt 0.308824 0.465517 +vt 0.210784 0.465517 +vt 0.308824 0.459770 +vt 0.308824 0.465517 +vt 0.220588 0.465517 +vt 0.299020 0.459770 +vt 0.299020 0.465517 +vt 0.220588 0.465517 +vt 0.299020 0.459770 +vt 0.299020 0.465517 +vt 0.196078 0.229885 +vt 0.313726 0.091954 +vt 0.313726 0.229885 +vt 0.196078 0.252874 +vt 0.313726 0.252874 +vt 0.176471 0.091954 +vt 0.176471 0.229885 +vt 0.333333 0.229885 +vt 0.333333 0.091954 +vt 0.313726 0.068966 +vt 0.196078 0.091954 +vt 0.196078 0.068966 +vt 0.210784 0.465517 +vt 0.308824 0.459770 +vt 0.308824 0.465517 +vt 0.210784 0.465517 +vt 0.308824 0.459770 +vt 0.308824 0.465517 +vt 0.210784 0.465517 +vt 0.308824 0.459770 +vt 0.308824 0.465517 +vt 0.210784 0.465517 +vt 0.308824 0.459770 +vt 0.308824 0.465517 +vt 0.220588 0.465517 +vt 0.299020 0.459770 +vt 0.299020 0.465517 +vt 0.220588 0.465517 +vt 0.299020 0.459770 +vt 0.299020 0.465517 +vt 0.333333 0.528736 +vt 0.372549 0.482759 +vt 0.372549 0.528736 +vt 0.313726 0.482759 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.482759 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.274510 0.402299 +vt 0.303922 0.367816 +vt 0.303922 0.402299 +vt 0.254902 0.367816 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.367816 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.176471 0.540230 +vt 0.156863 0.528736 +vt 0.176471 0.528736 +vt 0.196078 0.540230 +vt 0.196078 0.528736 +vt 0.215686 0.528736 +vt 0.215686 0.540230 +vt 0.235294 0.540230 +vt 0.235294 0.528736 +vt 0.254902 0.528736 +vt 0.254902 0.540230 +vt 0.274510 0.540230 +vt 0.274510 0.528736 +vt 0.294118 0.540230 +vt 0.294118 0.528736 +vt 0.313726 0.540230 +vt 0.313726 0.528736 +vt 0.019608 0.540230 +vt 0.000000 0.528736 +vt 0.019608 0.528736 +vt 0.039216 0.540230 +vt 0.039216 0.528736 +vt 0.058824 0.540230 +vt 0.058824 0.528736 +vt 0.078431 0.540230 +vt 0.078431 0.528736 +vt 0.098039 0.528736 +vt 0.098039 0.540230 +vt 0.117647 0.528736 +vt 0.117647 0.540230 +vt 0.137255 0.540230 +vt 0.137255 0.528736 +vt 0.156863 0.540230 +vt 0.319013 0.931057 +vt 0.352941 0.908092 +vt 0.386869 0.976988 +vt 0.240582 0.931057 +vt 0.274510 0.908092 +vt 0.308438 0.931057 +vt 0.083719 0.931057 +vt 0.117647 0.908092 +vt 0.151575 0.976988 +vt 0.005288 0.931057 +vt 0.073143 0.931057 +vt 0.039216 0.999954 +vt 0.352941 0.908092 +vt 0.386869 0.931057 +vt 0.386869 0.976988 +vt 0.240582 0.931057 +vt 0.274510 0.908092 +vt 0.308438 0.931057 +vt 0.117647 0.908092 +vt 0.151575 0.931057 +vt 0.151575 0.976988 +vt 0.005288 0.931057 +vt 0.039216 0.908092 +vt 0.073143 0.931057 +vt 0.151575 0.976988 +vt 0.117647 0.999954 +vt 0.083719 0.931057 +vt 0.073143 0.976988 +vt 0.005288 0.976988 +vt 0.039216 0.908092 +vt 0.386869 0.976988 +vt 0.352941 0.999954 +vt 0.319013 0.931057 +vt 0.308438 0.976988 +vt 0.240582 0.976988 +vt 0.274510 0.908092 +vt 0.151575 0.976988 +vt 0.117647 0.999954 +vt 0.083719 0.931057 +vt 0.073143 0.976988 +vt 0.039216 0.999954 +vt 0.005288 0.976988 +vt 0.386869 0.976988 +vt 0.352941 0.999954 +vt 0.319013 0.931057 +vt 0.308438 0.931057 +vt 0.308438 0.976988 +vt 0.240582 0.976988 +vt 0.151575 0.976988 +vt 0.117647 0.999954 +vt 0.083719 0.931057 +vt 0.073143 0.976988 +vt 0.005288 0.976988 +vt 0.039216 0.908092 +vt 0.372549 0.528736 +vt 0.333333 0.482759 +vt 0.372549 0.482759 +vt 0.313726 0.482759 +vt 0.333333 0.528736 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.274510 0.402299 +vt 0.303922 0.367816 +vt 0.303922 0.402299 +vt 0.254902 0.367816 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.367816 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.333333 0.528736 +vt 0.372549 0.482759 +vt 0.372549 0.528736 +vt 0.313726 0.482759 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.482759 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.274510 0.402299 +vt 0.303922 0.367816 +vt 0.303922 0.402299 +vt 0.254902 0.367816 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.367816 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.333333 0.528736 +vt 0.372549 0.482759 +vt 0.372549 0.528736 +vt 0.313726 0.482759 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.482759 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.303922 0.402299 +vt 0.274510 0.367816 +vt 0.303922 0.367816 +vt 0.254902 0.367816 +vt 0.274510 0.402299 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.333333 0.528736 +vt 0.372549 0.482759 +vt 0.372549 0.528736 +vt 0.313726 0.482759 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.482759 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.274510 0.402299 +vt 0.303922 0.367816 +vt 0.303922 0.402299 +vt 0.254902 0.367816 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.367816 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.333333 0.528736 +vt 0.372549 0.482759 +vt 0.372549 0.528736 +vt 0.313726 0.482759 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.482759 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.274510 0.402299 +vt 0.303922 0.367816 +vt 0.303922 0.402299 +vt 0.254902 0.367816 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.367816 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.333333 0.528736 +vt 0.372549 0.482759 +vt 0.372549 0.528736 +vt 0.313726 0.482759 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.482759 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.303922 0.402299 +vt 0.274510 0.367816 +vt 0.303922 0.367816 +vt 0.254902 0.367816 +vt 0.274510 0.402299 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.333333 0.528736 +vt 0.372549 0.482759 +vt 0.372549 0.528736 +vt 0.313726 0.482759 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.482759 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.274510 0.402299 +vt 0.303922 0.367816 +vt 0.303922 0.402299 +vt 0.254902 0.367816 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.367816 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.372549 0.528736 +vt 0.333333 0.482759 +vt 0.372549 0.482759 +vt 0.313726 0.482759 +vt 0.333333 0.528736 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.274510 0.402299 +vt 0.303922 0.367816 +vt 0.303922 0.402299 +vt 0.254902 0.367816 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.367816 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.333333 0.528736 +vt 0.372549 0.482759 +vt 0.372549 0.528736 +vt 0.313726 0.482759 +vt 0.313726 0.528736 +vt 0.392157 0.528736 +vt 0.392157 0.482759 +vt 0.372549 0.459770 +vt 0.333333 0.482759 +vt 0.333333 0.459770 +vt 0.333333 0.551724 +vt 0.372549 0.551724 +vt 0.274510 0.402299 +vt 0.303922 0.367816 +vt 0.303922 0.402299 +vt 0.254902 0.367816 +vt 0.254902 0.402299 +vt 0.323529 0.402299 +vt 0.323529 0.367816 +vt 0.303922 0.344828 +vt 0.274510 0.367816 +vt 0.274510 0.344828 +vt 0.274510 0.425287 +vt 0.303922 0.425287 +vt 0.681373 0.522988 +vt 0.651961 0.488506 +vt 0.681373 0.488506 +vt 0.676471 0.540230 +vt 0.656863 0.551724 +vt 0.656863 0.540230 +vt 0.651961 0.522988 +vt 0.642157 0.488506 +vt 0.691176 0.522988 +vt 0.651961 0.534483 +vt 0.681373 0.477012 +vt 0.696078 0.517241 +vt 0.691176 0.488506 +vt 0.696078 0.494253 +vt 0.676471 0.471264 +vt 0.651961 0.477012 +vt 0.656863 0.471264 +vt 0.637255 0.494253 +vt 0.642157 0.522988 +vt 0.637255 0.517241 +vt 0.681373 0.534483 +vt 0.676471 0.459770 +vt 0.627451 0.494253 +vt 0.705882 0.517241 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.522988 +vt 0.651961 0.488506 +vt 0.681373 0.488506 +vt 0.676471 0.540230 +vt 0.656863 0.551724 +vt 0.656863 0.540230 +vt 0.651961 0.522988 +vt 0.642157 0.488506 +vt 0.691176 0.522988 +vt 0.651961 0.534483 +vt 0.681373 0.477012 +vt 0.696078 0.517241 +vt 0.691176 0.488506 +vt 0.696078 0.494253 +vt 0.676471 0.471264 +vt 0.651961 0.477012 +vt 0.656863 0.471264 +vt 0.637255 0.494253 +vt 0.642157 0.522988 +vt 0.637255 0.517241 +vt 0.681373 0.534483 +vt 0.676471 0.459770 +vt 0.627451 0.494253 +vt 0.705882 0.517241 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.681373 0.074713 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.522988 +vt 0.651961 0.488506 +vt 0.681373 0.488506 +vt 0.676471 0.540230 +vt 0.656863 0.551724 +vt 0.656863 0.540230 +vt 0.651961 0.522988 +vt 0.642157 0.488506 +vt 0.691176 0.522988 +vt 0.651961 0.534483 +vt 0.681373 0.477012 +vt 0.696078 0.517241 +vt 0.691176 0.488506 +vt 0.696078 0.494253 +vt 0.676471 0.471264 +vt 0.651961 0.477012 +vt 0.656863 0.471264 +vt 0.637255 0.494253 +vt 0.642157 0.522988 +vt 0.637255 0.517241 +vt 0.681373 0.534483 +vt 0.676471 0.459770 +vt 0.627451 0.494253 +vt 0.705882 0.517241 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.522988 +vt 0.651961 0.488506 +vt 0.681373 0.488506 +vt 0.676471 0.540230 +vt 0.656863 0.551724 +vt 0.656863 0.540230 +vt 0.651961 0.522988 +vt 0.642157 0.488506 +vt 0.691176 0.522988 +vt 0.651961 0.534483 +vt 0.681373 0.477012 +vt 0.696078 0.517241 +vt 0.691176 0.488506 +vt 0.696078 0.494253 +vt 0.676471 0.471264 +vt 0.651961 0.477012 +vt 0.656863 0.471264 +vt 0.637255 0.494253 +vt 0.642157 0.522988 +vt 0.637255 0.517241 +vt 0.681373 0.534483 +vt 0.676471 0.459770 +vt 0.627451 0.494253 +vt 0.705882 0.517241 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.656863 0.080460 +vt 0.676471 0.091954 +vt 0.656863 0.091954 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.681373 0.074713 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.676471 0.080460 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.681373 0.063218 +vt 0.651961 0.028736 +vt 0.681373 0.028736 +vt 0.676471 0.080460 +vt 0.656863 0.091954 +vt 0.656863 0.080460 +vt 0.651961 0.063218 +vt 0.642157 0.028736 +vt 0.691176 0.063218 +vt 0.651961 0.074713 +vt 0.681373 0.017241 +vt 0.696078 0.057471 +vt 0.691176 0.028736 +vt 0.696078 0.034483 +vt 0.676471 0.011494 +vt 0.651961 0.017241 +vt 0.656863 0.011494 +vt 0.637255 0.034483 +vt 0.642157 0.063218 +vt 0.637255 0.057471 +vt 0.681373 0.074713 +vt 0.676471 0.000000 +vt 0.627451 0.034483 +vt 0.705882 0.057471 +vt 0.882353 -0.000000 +vt 0.882353 0.068966 +vt 0.941176 0.045977 +vt 0.882353 -0.000000 +vt 0.882353 0.068966 +vt 0.941176 0.045977 +vt 0.882353 -0.000000 +vt 0.882353 0.068966 +vt 0.941176 0.045977 +vt 0.882353 -0.000000 +vt 0.882353 0.068966 +vt 0.941176 0.045977 +vt 0.843137 0.563218 +vt 0.843137 0.563218 +vt 0.843137 0.563218 +vt 0.843137 0.563218 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.137235 0.993800 +vt 0.117647 0.999954 +vt 0.098059 0.993800 +vt 0.083719 0.976988 +vt 0.078471 0.954023 +vt 0.098059 0.914245 +vt 0.137235 0.914245 +vt 0.151575 0.931057 +vt 0.156823 0.954023 +vt 0.039216 0.999954 +vt 0.019627 0.993800 +vt 0.000039 0.954023 +vt 0.019627 0.914245 +vt 0.039216 0.908092 +vt 0.058804 0.914245 +vt 0.078392 0.954023 +vt 0.073143 0.976988 +vt 0.058804 0.993800 +vt 0.156863 0.045977 +vt 0.117647 0.505747 +vt 0.078431 -0.000000 +vt 0.156863 0.045977 +vt 0.117647 0.505747 +vt 0.078431 -0.000000 +vt 0.627451 0.045977 +vt 0.588235 0.505747 +vt 0.392157 0.000000 +vt 0.000000 0.540230 +vt 0.210784 0.459770 +vt 0.210784 0.459770 +vt 0.210784 0.459770 +vt 0.210784 0.459770 +vt 0.220588 0.459770 +vt 0.220588 0.459770 +vt 0.210784 0.459770 +vt 0.210784 0.459770 +vt 0.210784 0.459770 +vt 0.210784 0.459770 +vt 0.220588 0.459770 +vt 0.220588 0.459770 +vt 0.000000 0.540230 +vt 0.372529 0.993800 +vt 0.352941 0.999954 +vt 0.333353 0.993800 +vt 0.319013 0.976988 +vt 0.313765 0.954023 +vt 0.333353 0.914245 +vt 0.372529 0.914245 +vt 0.386869 0.931057 +vt 0.392118 0.954023 +vt 0.274510 0.999954 +vt 0.254922 0.993800 +vt 0.240582 0.976988 +vt 0.235333 0.954023 +vt 0.254922 0.914245 +vt 0.294098 0.914245 +vt 0.313686 0.954023 +vt 0.308438 0.976988 +vt 0.294098 0.993800 +vt 0.137235 0.993800 +vt 0.117647 0.999954 +vt 0.098059 0.993800 +vt 0.083719 0.976988 +vt 0.078471 0.954023 +vt 0.098059 0.914245 +vt 0.137235 0.914245 +vt 0.151575 0.931057 +vt 0.156823 0.954023 +vt 0.019627 0.993800 +vt 0.005288 0.976988 +vt 0.000039 0.954023 +vt 0.019627 0.914245 +vt 0.039216 0.908092 +vt 0.058804 0.914245 +vt 0.078392 0.954023 +vt 0.073143 0.976988 +vt 0.058804 0.993800 +vt 0.372529 0.993800 +vt 0.352941 0.999954 +vt 0.333353 0.993800 +vt 0.319013 0.976988 +vt 0.313765 0.954023 +vt 0.319013 0.931057 +vt 0.333353 0.914245 +vt 0.372529 0.914245 +vt 0.392118 0.954023 +vt 0.274510 0.999954 +vt 0.254922 0.993800 +vt 0.240582 0.976988 +vt 0.235333 0.954023 +vt 0.254922 0.914245 +vt 0.294098 0.914245 +vt 0.313686 0.954023 +vt 0.308438 0.976988 +vt 0.294098 0.993800 +vt 0.137235 0.993800 +vt 0.117647 0.999954 +vt 0.098059 0.993800 +vt 0.083719 0.976988 +vt 0.078471 0.954023 +vt 0.083719 0.931057 +vt 0.098059 0.914245 +vt 0.137235 0.914245 +vt 0.156823 0.954023 +vt 0.039216 0.999954 +vt 0.019627 0.993800 +vt 0.005288 0.976988 +vt 0.000039 0.954023 +vt 0.019627 0.914245 +vt 0.058804 0.914245 +vt 0.078392 0.954023 +vt 0.073143 0.976988 +vt 0.058804 0.993800 +vt 0.098059 0.914245 +vt 0.117647 0.908092 +vt 0.137235 0.914245 +vt 0.151575 0.931057 +vt 0.156823 0.954023 +vt 0.137235 0.993800 +vt 0.098059 0.993800 +vt 0.083719 0.976988 +vt 0.078471 0.954023 +vt 0.058804 0.914245 +vt 0.073143 0.931057 +vt 0.078392 0.954023 +vt 0.058804 0.993800 +vt 0.039216 0.999954 +vt 0.019627 0.993800 +vt 0.000039 0.954023 +vt 0.005288 0.931057 +vt 0.019627 0.914245 +vt 0.333353 0.914245 +vt 0.352941 0.908092 +vt 0.372529 0.914245 +vt 0.386869 0.931057 +vt 0.392118 0.954023 +vt 0.372529 0.993800 +vt 0.333353 0.993800 +vt 0.319013 0.976988 +vt 0.313765 0.954023 +vt 0.294098 0.914245 +vt 0.308438 0.931057 +vt 0.313686 0.954023 +vt 0.294098 0.993800 +vt 0.274510 0.999954 +vt 0.254922 0.993800 +vt 0.235333 0.954023 +vt 0.240582 0.931057 +vt 0.254922 0.914245 +vt 0.098059 0.914245 +vt 0.117647 0.908092 +vt 0.137235 0.914245 +vt 0.151575 0.931057 +vt 0.156823 0.954023 +vt 0.137235 0.993800 +vt 0.098059 0.993800 +vt 0.083719 0.976988 +vt 0.078471 0.954023 +vt 0.039216 0.908092 +vt 0.058804 0.914245 +vt 0.073143 0.931057 +vt 0.078392 0.954023 +vt 0.058804 0.993800 +vt 0.019627 0.993800 +vt 0.000039 0.954023 +vt 0.005288 0.931057 +vt 0.019627 0.914245 +vt 0.333353 0.914245 +vt 0.352941 0.908092 +vt 0.372529 0.914245 +vt 0.386869 0.931057 +vt 0.392118 0.954023 +vt 0.372529 0.993800 +vt 0.333353 0.993800 +vt 0.319013 0.976988 +vt 0.313765 0.954023 +vt 0.274510 0.908092 +vt 0.294098 0.914245 +vt 0.313686 0.954023 +vt 0.294098 0.993800 +vt 0.274510 0.999954 +vt 0.254922 0.993800 +vt 0.235333 0.954023 +vt 0.240582 0.931057 +vt 0.254922 0.914245 +vt 0.098059 0.914245 +vt 0.117647 0.908092 +vt 0.137235 0.914245 +vt 0.151575 0.931057 +vt 0.156823 0.954023 +vt 0.137235 0.993800 +vt 0.098059 0.993800 +vt 0.083719 0.976988 +vt 0.078471 0.954023 +vt 0.058804 0.914245 +vt 0.073143 0.931057 +vt 0.078392 0.954023 +vt 0.058804 0.993800 +vt 0.039216 0.999954 +vt 0.019627 0.993800 +vt 0.000039 0.954023 +vt 0.005288 0.931057 +vt 0.019627 0.914245 +vt 0.676471 0.551724 +vt 0.656863 0.459770 +vt 0.627451 0.517241 +vt 0.705882 0.494253 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.551724 +vt 0.656863 0.459770 +vt 0.627451 0.517241 +vt 0.705882 0.494253 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.551724 +vt 0.656863 0.459770 +vt 0.627451 0.517241 +vt 0.705882 0.494253 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.551724 +vt 0.656863 0.459770 +vt 0.627451 0.517241 +vt 0.705882 0.494253 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.676471 0.091954 +vt 0.656863 0.000000 +vt 0.627451 0.057471 +vt 0.705882 0.034483 +vt 0.156863 0.908046 +vt 0.176471 0.747126 +vt 0.176471 0.908046 +vt 0.019608 0.908046 +vt 0.039216 0.747126 +vt 0.039216 0.908046 +vt 0.078431 0.908046 +vt 0.098039 0.747126 +vt 0.098039 0.908046 +vt 0.196078 0.747126 +vt 0.196078 0.908046 +vt 0.137255 0.908046 +vt 0.156863 0.747126 +vt 0.000000 0.908046 +vt 0.019608 0.747126 +vt 0.058824 0.908046 +vt 0.078431 0.747126 +vt 0.117647 0.908046 +vt 0.137255 0.747126 +vt 0.215686 0.908046 +vt 0.235294 0.747126 +vt 0.235294 0.908046 +vt 0.058824 0.747126 +vt 0.117647 0.747126 +vt 0.215686 0.747126 +vt 0.058824 0.505747 +vt 0.039216 0.505747 +vt 0.235294 0.505747 +vt 0.215686 0.505747 +vt 0.078431 0.505747 +vt 0.254902 0.505747 +vt 0.098039 0.505747 +vt 0.274510 0.505747 +vt 0.117647 0.505747 +vt 0.294118 0.505747 +vt 0.137255 0.505747 +vt 0.313726 0.505747 +vt 0.176471 0.505747 +vt 0.156863 0.505747 +vt 0.019608 0.505747 +vt -0.000000 0.505747 +vt 0.196078 0.505747 +vt 0.156863 0.563218 +vt 0.137255 0.563218 +vt 0.000000 0.563218 +vt 0.176471 0.563218 +vt 0.019608 0.563218 +vt 0.196078 0.563218 +vt 0.039216 0.563218 +vt 0.215686 0.563218 +vt 0.058824 0.563218 +vt 0.254902 0.563218 +vt 0.235294 0.563218 +vt 0.078431 0.563218 +vt 0.274510 0.563218 +vt 0.098039 0.563218 +vt 0.117647 0.563218 +vt 0.294118 0.563218 +vt 0.313726 0.505747 +vt 0.294118 0.505747 +vt 0.137255 0.505747 +vt 0.117647 0.505747 +vt 0.274510 0.505747 +vt 0.098039 0.505747 +vt 0.254902 0.505747 +vt 0.078431 0.505747 +vt 0.235294 0.505747 +vt 0.058824 0.505747 +vt 0.215686 0.505747 +vt 0.039216 0.505747 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.379310 +vt 0.186275 0.402299 +vt 0.176471 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.186275 0.379310 +vt 0.196078 0.373563 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.225490 0.362069 +vt 0.215686 0.362069 +vt 0.186275 0.362069 +vt 0.196078 0.362069 +vt 0.235294 0.362069 +vt 0.225490 0.344828 +vt 0.235294 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.186275 0.356322 +vt 0.196078 0.350575 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.344828 +vt 0.323529 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.344828 +vt 0.254902 0.298851 +vt 0.274510 0.298851 +vt 0.264706 0.344828 +vt 0.284314 0.298851 +vt 0.274510 0.344828 +vt 0.294118 0.298851 +vt 0.284314 0.344828 +vt 0.303922 0.298851 +vt 0.294118 0.344828 +vt 0.313726 0.298851 +vt 0.303922 0.344828 +vt 0.313726 0.344828 +vt 0.274510 0.597701 +vt -0.000000 0.609195 +vt -0.000000 0.597701 +vt 0.274510 0.574713 +vt -0.000000 0.586207 +vt -0.000000 0.574713 +vt 0.274510 0.643678 +vt -0.000000 0.655172 +vt -0.000000 0.643678 +vt 0.274510 0.620690 +vt -0.000000 0.632184 +vt -0.000000 0.620690 +vt 0.274510 0.586207 +vt 0.274510 0.563218 +vt -0.000000 0.563218 +vt 0.274510 0.632184 +vt 0.274510 0.609195 +vt 0.058824 0.735632 +vt -0.000000 0.747126 +vt -0.000000 0.735632 +vt 0.058824 0.712644 +vt -0.000000 0.724138 +vt -0.000000 0.712644 +vt 0.058824 0.678161 +vt -0.000000 0.689655 +vt -0.000000 0.678161 +vt 0.058824 0.655172 +vt -0.000000 0.666667 +vt -0.000000 0.655172 +vt 0.058824 0.724138 +vt 0.058824 0.701149 +vt -0.000000 0.701149 +vt 0.058824 0.689655 +vt 0.058824 0.666667 +vt 0.073529 0.678161 +vt 0.073529 0.689655 +vt 0.063725 0.724138 +vt 0.073529 0.735632 +vt 0.068627 0.735632 +vt 0.073529 0.712644 +vt 0.073529 0.701149 +vt 0.063725 0.678161 +vt 0.073529 0.666667 +vt 0.073529 0.724138 +vt 0.073529 0.655172 +vt 0.068627 0.666667 +vt 0.073529 0.747126 +vt 0.299020 0.666667 +vt 0.313726 0.655172 +vt 0.313726 0.666667 +vt 0.299020 0.678161 +vt 0.308824 0.678161 +vt 0.299020 0.712644 +vt 0.308824 0.724138 +vt 0.299020 0.724138 +vt 0.299020 0.735632 +vt 0.313726 0.747126 +vt 0.299020 0.747126 +vt 0.303922 0.689655 +vt 0.299020 0.689655 +vt 0.313726 0.735632 +vt 0.299020 0.701149 +vt 0.303922 0.712644 +vt 0.352941 0.678161 +vt 0.313726 0.678161 +vt 0.313726 0.712644 +vt 0.352941 0.724138 +vt 0.313726 0.724138 +vt 0.313726 0.701149 +vt 0.352941 0.712644 +vt 0.352941 0.747126 +vt 0.313726 0.689655 +vt 0.352941 0.701149 +vt 0.352941 0.689655 +vt 0.352941 0.735632 +vt 0.352941 0.666667 +vt 0.392157 0.735632 +vt 0.352941 0.747126 +vt 0.352941 0.735632 +vt 0.392157 0.712644 +vt 0.352941 0.724138 +vt 0.352941 0.712644 +vt 0.392157 0.678161 +vt 0.352941 0.689655 +vt 0.352941 0.678161 +vt 0.392157 0.655172 +vt 0.352941 0.666667 +vt 0.352941 0.655172 +vt 0.392157 0.724138 +vt 0.392157 0.701149 +vt 0.352941 0.701149 +vt 0.392157 0.689655 +vt 0.392157 0.666667 +vt 0.406863 0.678161 +vt 0.406863 0.689655 +vt 0.397059 0.724138 +vt 0.406863 0.735632 +vt 0.401961 0.735632 +vt 0.406863 0.712644 +vt 0.406863 0.701149 +vt 0.397059 0.678161 +vt 0.406863 0.666667 +vt 0.406863 0.724138 +vt 0.632353 0.678161 +vt 0.632353 0.689655 +vt 0.632353 0.712644 +vt 0.632353 0.724138 +vt 0.632353 0.735632 +vt 0.632353 0.747126 +vt 0.406863 0.747126 +vt 0.406863 0.655172 +vt 0.401961 0.666667 +vt 0.632353 0.655172 +vt 0.632353 0.666667 +vt 0.299020 0.655172 +vt 0.647059 0.655172 +vt 0.647059 0.666667 +vt 0.642157 0.678161 +vt 0.642157 0.724138 +vt 0.647059 0.747126 +vt 0.637255 0.689655 +vt 0.647059 0.735632 +vt 0.632353 0.701149 +vt 0.637255 0.712644 +vt 0.705882 0.678161 +vt 0.647059 0.678161 +vt 0.647059 0.712644 +vt 0.705882 0.724138 +vt 0.647059 0.724138 +vt 0.647059 0.701149 +vt 0.705882 0.712644 +vt 0.705882 0.747126 +vt 0.647059 0.689655 +vt 0.705882 0.701149 +vt 0.705882 0.689655 +vt 0.705882 0.735632 +vt 0.705882 0.666667 +vt 0.735294 0.735632 +vt 0.705882 0.747126 +vt 0.705882 0.735632 +vt 0.735294 0.712644 +vt 0.705882 0.724138 +vt 0.705882 0.712644 +vt 0.735294 0.678161 +vt 0.705882 0.689655 +vt 0.705882 0.678161 +vt 0.735294 0.655172 +vt 0.705882 0.666667 +vt 0.705882 0.655172 +vt 0.735294 0.724138 +vt 0.735294 0.701149 +vt 0.705882 0.701149 +vt 0.735294 0.689655 +vt 0.735294 0.666667 +vt 0.750000 0.678161 +vt 0.750000 0.689655 +vt 0.740196 0.724138 +vt 0.750000 0.735632 +vt 0.745098 0.735632 +vt 0.750000 0.712644 +vt 0.750000 0.701149 +vt 0.740196 0.678161 +vt 0.750000 0.666667 +vt 0.750000 0.724138 +vt 0.764706 0.712644 +vt 0.759804 0.724138 +vt 0.764706 0.689655 +vt 0.754902 0.735632 +vt 0.764706 0.701149 +vt 0.759804 0.678161 +vt 0.750000 0.655172 +vt 0.745098 0.666667 +vt 0.754902 0.666667 +vt 0.750000 0.747126 +vt 0.764706 0.678161 +vt 0.882353 0.689655 +vt 0.764706 0.724138 +vt 0.882353 0.735632 +vt 0.764706 0.735632 +vt 0.882353 0.712644 +vt 0.882353 0.747126 +vt 0.764706 0.747126 +vt 0.882353 0.701149 +vt 0.764706 0.655172 +vt 0.882353 0.666667 +vt 0.764706 0.666667 +vt 0.882353 0.678161 +vt 0.882353 0.724138 +vt 0.897059 0.735632 +vt 0.897059 0.747126 +vt 0.897059 0.678161 +vt 0.887255 0.678161 +vt 0.887255 0.724138 +vt 0.897059 0.712644 +vt 0.897059 0.724138 +vt 0.882353 0.655172 +vt 0.897059 0.666667 +vt 0.897059 0.689655 +vt 0.892157 0.689655 +vt 0.897059 0.655172 +vt 0.911765 0.666667 +vt 0.906863 0.678161 +vt 0.906863 0.724138 +vt 0.911765 0.747126 +vt 0.901961 0.689655 +vt 0.911765 0.735632 +vt 0.897059 0.701149 +vt 0.892157 0.712644 +vt 0.901961 0.712644 +vt 0.921569 0.678161 +vt 0.911765 0.678161 +vt 0.911765 0.712644 +vt 0.921569 0.724138 +vt 0.911765 0.724138 +vt 0.911765 0.701149 +vt 0.921569 0.712644 +vt 0.921569 0.747126 +vt 0.911765 0.689655 +vt 0.921569 0.701149 +vt 0.921569 0.689655 +vt 0.921569 0.735632 +vt 0.911765 0.655172 +vt 0.921569 0.666667 +vt 0.303922 0.643678 +vt 0.274510 0.655172 +vt 0.274510 0.643678 +vt 0.303922 0.620690 +vt 0.274510 0.632184 +vt 0.274510 0.620690 +vt 0.303922 0.586207 +vt 0.274510 0.597701 +vt 0.274510 0.586207 +vt 0.303922 0.563218 +vt 0.274510 0.574713 +vt 0.274510 0.563218 +vt 0.303922 0.632184 +vt 0.303922 0.609195 +vt 0.274510 0.609195 +vt 0.303922 0.597701 +vt 0.303922 0.574713 +vt 0.318627 0.586207 +vt 0.318627 0.597701 +vt 0.308824 0.632184 +vt 0.318627 0.643678 +vt 0.313726 0.643678 +vt 0.318627 0.620690 +vt 0.318627 0.609195 +vt 0.308824 0.586207 +vt 0.318627 0.574713 +vt 0.318627 0.632184 +vt 0.333333 0.620690 +vt 0.328431 0.632184 +vt 0.333333 0.597701 +vt 0.323529 0.643678 +vt 0.333333 0.609195 +vt 0.328431 0.586207 +vt 0.318627 0.563218 +vt 0.313726 0.574713 +vt 0.323529 0.574713 +vt 0.318627 0.655172 +vt 0.333333 0.586207 +vt 0.450980 0.597701 +vt 0.333333 0.632184 +vt 0.450980 0.643678 +vt 0.333333 0.643678 +vt 0.450980 0.620690 +vt 0.450980 0.655172 +vt 0.333333 0.655172 +vt 0.450980 0.609195 +vt 0.333333 0.563218 +vt 0.450980 0.574713 +vt 0.333333 0.574713 +vt 0.450980 0.586207 +vt 0.450980 0.632184 +vt 0.465686 0.643678 +vt 0.465686 0.655172 +vt 0.465686 0.586207 +vt 0.455882 0.586207 +vt 0.455882 0.632184 +vt 0.465686 0.620690 +vt 0.465686 0.632184 +vt 0.450980 0.563218 +vt 0.465686 0.574713 +vt 0.465686 0.597701 +vt 0.460784 0.597701 +vt 0.480392 0.563218 +vt 0.480392 0.574713 +vt 0.475490 0.586207 +vt 0.475490 0.632184 +vt 0.480392 0.655172 +vt 0.470588 0.597701 +vt 0.480392 0.643678 +vt 0.465686 0.609195 +vt 0.460784 0.620690 +vt 0.470588 0.620690 +vt 0.490196 0.586207 +vt 0.480392 0.586207 +vt 0.480392 0.620690 +vt 0.490196 0.632184 +vt 0.480392 0.632184 +vt 0.480392 0.609195 +vt 0.490196 0.620690 +vt 0.490196 0.655172 +vt 0.480392 0.597701 +vt 0.490196 0.609195 +vt 0.490196 0.597701 +vt 0.490196 0.643678 +vt 0.490196 0.574713 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.379310 +vt 0.186275 0.402299 +vt 0.176471 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.186275 0.379310 +vt 0.196078 0.362069 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.215686 0.362069 +vt 0.225490 0.362069 +vt 0.196078 0.373563 +vt 0.186275 0.362069 +vt 0.235294 0.362069 +vt 0.225490 0.344828 +vt 0.235294 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.186275 0.356322 +vt 0.196078 0.350575 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.402299 +vt 0.186275 0.379310 +vt 0.186275 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.196078 0.362069 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.225490 0.362069 +vt 0.215686 0.362069 +vt 0.196078 0.373563 +vt 0.186275 0.362069 +vt 0.235294 0.362069 +vt 0.225490 0.344828 +vt 0.235294 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.196078 0.350575 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.186275 0.356322 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.379310 +vt 0.186275 0.402299 +vt 0.176471 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.186275 0.379310 +vt 0.196078 0.362069 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.215686 0.362069 +vt 0.225490 0.362069 +vt 0.196078 0.373563 +vt 0.186275 0.362069 +vt 0.235294 0.362069 +vt 0.225490 0.344828 +vt 0.235294 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.196078 0.350575 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.186275 0.356322 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.379310 +vt 0.186275 0.402299 +vt 0.176471 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.186275 0.379310 +vt 0.196078 0.362069 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.215686 0.362069 +vt 0.225490 0.362069 +vt 0.196078 0.373563 +vt 0.186275 0.362069 +vt 0.235294 0.362069 +vt 0.235294 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.225490 0.344828 +vt 0.186275 0.356322 +vt 0.196078 0.350575 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.402299 +vt 0.186275 0.379310 +vt 0.186275 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.196078 0.362069 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.215686 0.362069 +vt 0.225490 0.362069 +vt 0.196078 0.373563 +vt 0.186275 0.362069 +vt 0.235294 0.362069 +vt 0.225490 0.344828 +vt 0.235294 0.350575 +vt 0.196078 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.186275 0.356322 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.379310 +vt 0.186275 0.402299 +vt 0.176471 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.186275 0.379310 +vt 0.196078 0.362069 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.225490 0.362069 +vt 0.215686 0.362069 +vt 0.196078 0.373563 +vt 0.186275 0.362069 +vt 0.235294 0.362069 +vt 0.225490 0.344828 +vt 0.235294 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.196078 0.350575 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.186275 0.356322 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.379310 +vt 0.186275 0.402299 +vt 0.176471 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.186275 0.379310 +vt 0.196078 0.362069 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.215686 0.362069 +vt 0.225490 0.362069 +vt 0.215686 0.379310 +vt 0.196078 0.373563 +vt 0.186275 0.362069 +vt 0.235294 0.362069 +vt 0.225490 0.344828 +vt 0.235294 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.186275 0.356322 +vt 0.196078 0.350575 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.379310 +vt 0.186275 0.402299 +vt 0.176471 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.186275 0.379310 +vt 0.196078 0.362069 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.215686 0.362069 +vt 0.225490 0.362069 +vt 0.196078 0.373563 +vt 0.186275 0.362069 +vt 0.235294 0.362069 +vt 0.225490 0.344828 +vt 0.235294 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.196078 0.350575 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.186275 0.356322 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.245098 0.379310 +vt 0.254902 0.402299 +vt 0.245098 0.402299 +vt 0.225490 0.379310 +vt 0.235294 0.402299 +vt 0.225490 0.402299 +vt 0.196078 0.379310 +vt 0.205882 0.402299 +vt 0.196078 0.402299 +vt 0.176471 0.402299 +vt 0.186275 0.379310 +vt 0.186275 0.402299 +vt 0.235294 0.379310 +vt 0.215686 0.379310 +vt 0.215686 0.402299 +vt 0.205882 0.379310 +vt 0.196078 0.362069 +vt 0.205882 0.362069 +vt 0.235294 0.373563 +vt 0.245098 0.362069 +vt 0.245098 0.367816 +vt 0.215686 0.362069 +vt 0.225490 0.362069 +vt 0.196078 0.373563 +vt 0.186275 0.362069 +vt 0.235294 0.362069 +vt 0.225490 0.344828 +vt 0.235294 0.350575 +vt 0.205882 0.344828 +vt 0.245098 0.356322 +vt 0.215686 0.344828 +vt 0.186275 0.356322 +vt 0.196078 0.350575 +vt 0.176471 0.362069 +vt 0.186275 0.367816 +vt 0.254902 0.362069 +vt 0.196078 0.344828 +vt 0.205882 0.252874 +vt 0.235294 0.344828 +vt 0.245098 0.252874 +vt 0.245098 0.344828 +vt 0.225490 0.252874 +vt 0.254902 0.252874 +vt 0.254902 0.344828 +vt 0.215686 0.252874 +vt 0.176471 0.344828 +vt 0.186275 0.252874 +vt 0.186275 0.344828 +vt 0.196078 0.252874 +vt 0.235294 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.344828 +vt 0.323529 0.298851 +vt 0.254902 0.298851 +vt 0.264706 0.344828 +vt 0.254902 0.344828 +vt 0.274510 0.298851 +vt 0.264706 0.298851 +vt 0.284314 0.298851 +vt 0.274510 0.344828 +vt 0.294118 0.298851 +vt 0.284314 0.344828 +vt 0.303922 0.298851 +vt 0.294118 0.344828 +vt 0.313726 0.298851 +vt 0.303922 0.344828 +vt 0.313726 0.344828 +vt 0.333333 0.298851 +vt 0.323529 0.344828 +vt 0.323529 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.344828 +vt 0.254902 0.298851 +vt 0.274510 0.298851 +vt 0.264706 0.344828 +vt 0.284314 0.298851 +vt 0.274510 0.344828 +vt 0.294118 0.298851 +vt 0.284314 0.344828 +vt 0.303922 0.298851 +vt 0.294118 0.344828 +vt 0.313726 0.298851 +vt 0.303922 0.344828 +vt 0.313726 0.344828 +vt 0.323529 0.298851 +vt 0.333333 0.344828 +vt 0.323529 0.344828 +vt 0.264706 0.298851 +vt 0.254902 0.344828 +vt 0.254902 0.298851 +vt 0.274510 0.298851 +vt 0.264706 0.344828 +vt 0.284314 0.298851 +vt 0.274510 0.344828 +vt 0.294118 0.298851 +vt 0.284314 0.344828 +vt 0.303922 0.298851 +vt 0.294118 0.344828 +vt 0.313726 0.344828 +vt 0.303922 0.344828 +vt 0.313726 0.298851 +vt 0.333333 0.298851 +vt 0.323529 0.344828 +vt 0.323529 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.344828 +vt 0.254902 0.298851 +vt 0.274510 0.298851 +vt 0.264706 0.344828 +vt 0.284314 0.298851 +vt 0.274510 0.344828 +vt 0.294118 0.298851 +vt 0.284314 0.344828 +vt 0.303922 0.298851 +vt 0.294118 0.344828 +vt 0.313726 0.298851 +vt 0.303922 0.344828 +vt 0.313726 0.344828 +vt 0.176471 0.505747 +vt 0.156863 0.505747 +vt 0.019608 0.505747 +vt -0.000000 0.505747 +vt 0.196078 0.505747 +vt 0.156863 0.563218 +vt 0.137255 0.563218 +vt 0.000000 0.563218 +vt 0.176471 0.563218 +vt 0.019608 0.563218 +vt 0.196078 0.563218 +vt 0.039216 0.563218 +vt 0.215686 0.563218 +vt 0.058824 0.563218 +vt 0.235294 0.563218 +vt 0.078431 0.563218 +vt 0.274510 0.563218 +vt 0.254902 0.563218 +vt 0.098039 0.563218 +vt 0.117647 0.563218 +vt 0.294118 0.563218 +vt 0.392157 0.908046 +vt 0.411765 0.747126 +vt 0.411765 0.908046 +vt 0.254902 0.908046 +vt 0.274510 0.747126 +vt 0.274510 0.908046 +vt 0.313725 0.908046 +vt 0.333333 0.747126 +vt 0.333333 0.908046 +vt 0.431373 0.747126 +vt 0.431373 0.908046 +vt 0.372549 0.908046 +vt 0.392157 0.747126 +vt 0.235294 0.908046 +vt 0.254902 0.747126 +vt 0.294118 0.908046 +vt 0.313725 0.747126 +vt 0.352941 0.908046 +vt 0.372549 0.747126 +vt 0.450980 0.908046 +vt 0.470588 0.747126 +vt 0.470588 0.908046 +vt 0.294118 0.747126 +vt 0.352941 0.747126 +vt 0.450980 0.747126 +vt 0.156863 0.908046 +vt 0.176471 0.747126 +vt 0.176471 0.908046 +vt 0.019608 0.908046 +vt 0.039216 0.747126 +vt 0.039216 0.908046 +vt 0.078431 0.908046 +vt 0.098039 0.747126 +vt 0.098039 0.908046 +vt 0.196078 0.747126 +vt 0.196078 0.908046 +vt 0.137255 0.908046 +vt 0.156863 0.747126 +vt 0.000000 0.908046 +vt 0.019608 0.747126 +vt 0.058824 0.908046 +vt 0.078431 0.747126 +vt 0.117647 0.908046 +vt 0.137255 0.747126 +vt 0.215686 0.908046 +vt 0.235294 0.747126 +vt 0.235294 0.908046 +vt 0.058824 0.747126 +vt 0.117647 0.747126 +vt 0.215686 0.747126 +vt 0.392157 0.908046 +vt 0.411765 0.747126 +vt 0.411765 0.908046 +vt 0.254902 0.908046 +vt 0.274510 0.747126 +vt 0.274510 0.908046 +vt 0.313725 0.908046 +vt 0.333333 0.747126 +vt 0.333333 0.908046 +vt 0.431373 0.747126 +vt 0.431373 0.908046 +vt 0.372549 0.908046 +vt 0.392157 0.747126 +vt 0.235294 0.908046 +vt 0.254902 0.747126 +vt 0.294118 0.908046 +vt 0.313725 0.747126 +vt 0.352941 0.908046 +vt 0.372549 0.747126 +vt 0.450980 0.908046 +vt 0.470588 0.747126 +vt 0.470588 0.908046 +vt 0.294118 0.747126 +vt 0.352941 0.747126 +vt 0.450980 0.747126 +vt 0.156863 0.908046 +vt 0.176471 0.747126 +vt 0.176471 0.908046 +vt 0.019608 0.908046 +vt 0.039216 0.747126 +vt 0.039216 0.908046 +vt 0.078431 0.908046 +vt 0.098039 0.747126 +vt 0.098039 0.908046 +vt 0.196078 0.747126 +vt 0.196078 0.908046 +vt 0.137255 0.908046 +vt 0.156863 0.747126 +vt 0.000000 0.908046 +vt 0.019608 0.747126 +vt 0.058824 0.908046 +vt 0.078431 0.747126 +vt 0.117647 0.908046 +vt 0.137255 0.747126 +vt 0.215686 0.908046 +vt 0.235294 0.747126 +vt 0.235294 0.908046 +vt 0.058824 0.747126 +vt 0.117647 0.747126 +vt 0.215686 0.747126 +vt 0.156863 0.908046 +vt 0.176471 0.747126 +vt 0.176471 0.908046 +vt 0.019608 0.908046 +vt 0.039216 0.747126 +vt 0.039216 0.908046 +vt 0.078431 0.908046 +vt 0.098039 0.747126 +vt 0.098039 0.908046 +vt 0.196078 0.747126 +vt 0.196078 0.908046 +vt 0.137255 0.908046 +vt 0.156863 0.747126 +vt 0.000000 0.908046 +vt 0.019608 0.747126 +vt 0.058824 0.908046 +vt 0.078431 0.747126 +vt 0.117647 0.908046 +vt 0.137255 0.747126 +vt 0.215686 0.908046 +vt 0.235294 0.747126 +vt 0.235294 0.908046 +vt 0.058824 0.747126 +vt 0.117647 0.747126 +vt 0.215686 0.747126 +vt 0.392157 0.908046 +vt 0.411765 0.747126 +vt 0.411765 0.908046 +vt 0.254902 0.908046 +vt 0.274510 0.747126 +vt 0.274510 0.908046 +vt 0.313725 0.908046 +vt 0.333333 0.747126 +vt 0.333333 0.908046 +vt 0.431373 0.747126 +vt 0.431373 0.908046 +vt 0.372549 0.908046 +vt 0.392157 0.747126 +vt 0.235294 0.908046 +vt 0.254902 0.747126 +vt 0.294118 0.908046 +vt 0.313725 0.747126 +vt 0.352941 0.908046 +vt 0.372549 0.747126 +vt 0.450980 0.908046 +vt 0.470588 0.747126 +vt 0.470588 0.908046 +vt 0.294118 0.747126 +vt 0.352941 0.747126 +vt 0.450980 0.747126 +vt 0.156863 0.908046 +vt 0.176471 0.747126 +vt 0.176471 0.908046 +vt 0.019608 0.908046 +vt 0.039216 0.747126 +vt 0.039216 0.908046 +vt 0.078431 0.908046 +vt 0.098039 0.747126 +vt 0.098039 0.908046 +vt 0.196078 0.747126 +vt 0.196078 0.908046 +vt 0.137255 0.908046 +vt 0.156863 0.747126 +vt 0.000000 0.908046 +vt 0.019608 0.747126 +vt 0.058824 0.908046 +vt 0.078431 0.747126 +vt 0.117647 0.908046 +vt 0.137255 0.747126 +vt 0.215686 0.908046 +vt 0.235294 0.747126 +vt 0.235294 0.908046 +vt 0.058824 0.747126 +vt 0.117647 0.747126 +vt 0.215686 0.747126 +vt 0.392157 0.908046 +vt 0.411765 0.747126 +vt 0.411765 0.908046 +vt 0.254902 0.908046 +vt 0.274510 0.747126 +vt 0.274510 0.908046 +vt 0.313725 0.908046 +vt 0.333333 0.747126 +vt 0.333333 0.908046 +vt 0.431373 0.747126 +vt 0.431373 0.908046 +vt 0.372549 0.908046 +vt 0.392157 0.747126 +vt 0.235294 0.908046 +vt 0.254902 0.747126 +vt 0.294118 0.908046 +vt 0.313725 0.747126 +vt 0.352941 0.908046 +vt 0.372549 0.747126 +vt 0.450980 0.908046 +vt 0.470588 0.747126 +vt 0.470588 0.908046 +vt 0.294118 0.747126 +vt 0.352941 0.747126 +vt 0.450980 0.747126 +vt 0.156863 0.908046 +vt 0.176471 0.747126 +vt 0.176471 0.908046 +vt 0.019608 0.908046 +vt 0.039216 0.747126 +vt 0.039216 0.908046 +vt 0.078431 0.908046 +vt 0.098039 0.747126 +vt 0.098039 0.908046 +vt 0.196078 0.747126 +vt 0.196078 0.908046 +vt 0.137255 0.908046 +vt 0.156863 0.747126 +vt 0.000000 0.908046 +vt 0.019608 0.747126 +vt 0.058824 0.908046 +vt 0.078431 0.747126 +vt 0.117647 0.908046 +vt 0.137255 0.747126 +vt 0.215686 0.908046 +vt 0.235294 0.747126 +vt 0.235294 0.908046 +vt 0.058824 0.747126 +vt 0.117647 0.747126 +vt 0.215686 0.747126 +vt 0.274510 0.597701 +vt -0.000000 0.609195 +vt -0.000000 0.597701 +vt 0.274510 0.574713 +vt -0.000000 0.586207 +vt -0.000000 0.574713 +vt 0.274510 0.643678 +vt -0.000000 0.655172 +vt -0.000000 0.643678 +vt 0.274510 0.620690 +vt -0.000000 0.632184 +vt -0.000000 0.620690 +vt 0.274510 0.586207 +vt 0.274510 0.563218 +vt -0.000000 0.563218 +vt 0.274510 0.632184 +vt 0.274510 0.609195 +vt 0.735294 0.735632 +vt 0.705882 0.747126 +vt 0.705882 0.735632 +vt 0.735294 0.712644 +vt 0.705882 0.724138 +vt 0.705882 0.712644 +vt 0.735294 0.678161 +vt 0.705882 0.689655 +vt 0.705882 0.678161 +vt 0.735294 0.655172 +vt 0.705882 0.666667 +vt 0.705882 0.655172 +vt 0.735294 0.724138 +vt 0.735294 0.701149 +vt 0.705882 0.701149 +vt 0.735294 0.689655 +vt 0.735294 0.666667 +vt 0.740196 0.678161 +vt 0.750000 0.689655 +vt 0.740196 0.724138 +vt 0.750000 0.735632 +vt 0.745098 0.735632 +vt 0.750000 0.712644 +vt 0.750000 0.701149 +vt 0.750000 0.666667 +vt 0.750000 0.678161 +vt 0.750000 0.724138 +vt 0.759804 0.724138 +vt 0.764706 0.689655 +vt 0.754902 0.735632 +vt 0.764706 0.712644 +vt 0.764706 0.701149 +vt 0.759804 0.678161 +vt 0.750000 0.655172 +vt 0.745098 0.666667 +vt 0.754902 0.666667 +vt 0.750000 0.747126 +vt 0.764706 0.678161 +vt 0.882353 0.689655 +vt 0.764706 0.724138 +vt 0.882353 0.735632 +vt 0.764706 0.735632 +vt 0.882353 0.712644 +vt 0.882353 0.747126 +vt 0.764706 0.747126 +vt 0.882353 0.701149 +vt 0.764706 0.655172 +vt 0.882353 0.666667 +vt 0.764706 0.666667 +vt 0.882353 0.678161 +vt 0.882353 0.724138 +vt 0.897059 0.735632 +vt 0.897059 0.747126 +vt 0.897059 0.678161 +vt 0.887255 0.678161 +vt 0.887255 0.724138 +vt 0.897059 0.712644 +vt 0.897059 0.724138 +vt 0.882353 0.655172 +vt 0.897059 0.666667 +vt 0.897059 0.689655 +vt 0.892157 0.689655 +vt 0.911765 0.655172 +vt 0.911765 0.666667 +vt 0.906863 0.678161 +vt 0.906863 0.724138 +vt 0.911765 0.747126 +vt 0.901961 0.689655 +vt 0.911765 0.735632 +vt 0.897059 0.701149 +vt 0.892157 0.712644 +vt 0.901961 0.712644 +vt 0.921569 0.678161 +vt 0.911765 0.678161 +vt 0.911765 0.712644 +vt 0.921569 0.724138 +vt 0.911765 0.724138 +vt 0.911765 0.701149 +vt 0.921569 0.712644 +vt 0.921569 0.747126 +vt 0.911765 0.689655 +vt 0.921569 0.701149 +vt 0.921569 0.689655 +vt 0.921569 0.735632 +vt 0.921569 0.666667 +vt 0.303922 0.643678 +vt 0.274510 0.655172 +vt 0.274510 0.643678 +vt 0.303922 0.620690 +vt 0.274510 0.632184 +vt 0.274510 0.620690 +vt 0.303922 0.586207 +vt 0.274510 0.597701 +vt 0.274510 0.586207 +vt 0.303922 0.563218 +vt 0.274510 0.574713 +vt 0.274510 0.563218 +vt 0.303922 0.632184 +vt 0.303922 0.609195 +vt 0.274510 0.609195 +vt 0.303922 0.597701 +vt 0.303922 0.574713 +vt 0.308824 0.586207 +vt 0.318627 0.597701 +vt 0.308824 0.632184 +vt 0.318627 0.643678 +vt 0.313726 0.643678 +vt 0.318627 0.620690 +vt 0.318627 0.609195 +vt 0.318627 0.574713 +vt 0.318627 0.586207 +vt 0.318627 0.632184 +vt 0.333333 0.620690 +vt 0.328431 0.632184 +vt 0.333333 0.597701 +vt 0.323529 0.643678 +vt 0.333333 0.609195 +vt 0.328431 0.586207 +vt 0.318627 0.563218 +vt 0.313726 0.574713 +vt 0.323529 0.574713 +vt 0.318627 0.655172 +vt 0.333333 0.586207 +vt 0.450980 0.597701 +vt 0.333333 0.632184 +vt 0.450980 0.643678 +vt 0.333333 0.643678 +vt 0.450980 0.620690 +vt 0.450980 0.655172 +vt 0.333333 0.655172 +vt 0.450980 0.609195 +vt 0.333333 0.563218 +vt 0.450980 0.574713 +vt 0.333333 0.574713 +vt 0.450980 0.586207 +vt 0.450980 0.632184 +vt 0.465686 0.643678 +vt 0.465686 0.655172 +vt 0.465686 0.586207 +vt 0.455882 0.586207 +vt 0.455882 0.632184 +vt 0.465686 0.620690 +vt 0.465686 0.632184 +vt 0.450980 0.563218 +vt 0.465686 0.574713 +vt 0.465686 0.597701 +vt 0.460784 0.597701 +vt 0.480392 0.563218 +vt 0.480392 0.574713 +vt 0.475490 0.586207 +vt 0.475490 0.632184 +vt 0.480392 0.655172 +vt 0.470588 0.597701 +vt 0.480392 0.643678 +vt 0.465686 0.609195 +vt 0.460784 0.620690 +vt 0.470588 0.620690 +vt 0.490196 0.586207 +vt 0.480392 0.586207 +vt 0.480392 0.620690 +vt 0.490196 0.632184 +vt 0.480392 0.632184 +vt 0.480392 0.609195 +vt 0.490196 0.620690 +vt 0.490196 0.655172 +vt 0.480392 0.597701 +vt 0.490196 0.609195 +vt 0.490196 0.597701 +vt 0.490196 0.643678 +vt 0.490196 0.574713 +vt 0.303922 0.643678 +vt 0.274510 0.655172 +vt 0.274510 0.643678 +vt 0.303922 0.620690 +vt 0.274510 0.632184 +vt 0.274510 0.620690 +vt 0.303922 0.586207 +vt 0.274510 0.597701 +vt 0.274510 0.586207 +vt 0.303922 0.563218 +vt 0.274510 0.574713 +vt 0.274510 0.563218 +vt 0.303922 0.632184 +vt 0.303922 0.609195 +vt 0.274510 0.609195 +vt 0.303922 0.597701 +vt 0.303922 0.574713 +vt 0.318627 0.586207 +vt 0.318627 0.597701 +vt 0.308824 0.632184 +vt 0.318627 0.643678 +vt 0.313726 0.643678 +vt 0.318627 0.620690 +vt 0.318627 0.609195 +vt 0.308824 0.586207 +vt 0.318627 0.574713 +vt 0.318627 0.632184 +vt 0.333333 0.620690 +vt 0.328431 0.632184 +vt 0.333333 0.597701 +vt 0.323529 0.643678 +vt 0.333333 0.609195 +vt 0.328431 0.586207 +vt 0.318627 0.563218 +vt 0.313726 0.574713 +vt 0.323529 0.574713 +vt 0.318627 0.655172 +vt 0.333333 0.586207 +vt 0.450980 0.597701 +vt 0.333333 0.632184 +vt 0.450980 0.643678 +vt 0.333333 0.643678 +vt 0.450980 0.620690 +vt 0.450980 0.655172 +vt 0.333333 0.655172 +vt 0.450980 0.609195 +vt 0.333333 0.563218 +vt 0.450980 0.574713 +vt 0.333333 0.574713 +vt 0.450980 0.586207 +vt 0.450980 0.632184 +vt 0.465686 0.643678 +vt 0.465686 0.655172 +vt 0.465686 0.586207 +vt 0.455882 0.586207 +vt 0.455882 0.632184 +vt 0.465686 0.620690 +vt 0.465686 0.632184 +vt 0.450980 0.563218 +vt 0.465686 0.574713 +vt 0.465686 0.597701 +vt 0.460784 0.597701 +vt 0.480392 0.563218 +vt 0.480392 0.574713 +vt 0.475490 0.586207 +vt 0.475490 0.632184 +vt 0.480392 0.655172 +vt 0.470588 0.597701 +vt 0.480392 0.643678 +vt 0.465686 0.609195 +vt 0.460784 0.620690 +vt 0.470588 0.620690 +vt 0.490196 0.586207 +vt 0.480392 0.586207 +vt 0.480392 0.620690 +vt 0.490196 0.632184 +vt 0.480392 0.632184 +vt 0.480392 0.609195 +vt 0.490196 0.620690 +vt 0.490196 0.655172 +vt 0.480392 0.597701 +vt 0.490196 0.609195 +vt 0.490196 0.597701 +vt 0.490196 0.643678 +vt 0.490196 0.574713 +vt 0.735294 0.735632 +vt 0.705882 0.747126 +vt 0.705882 0.735632 +vt 0.735294 0.712644 +vt 0.705882 0.724138 +vt 0.705882 0.712644 +vt 0.735294 0.678161 +vt 0.705882 0.689655 +vt 0.705882 0.678161 +vt 0.735294 0.655172 +vt 0.705882 0.666667 +vt 0.705882 0.655172 +vt 0.735294 0.724138 +vt 0.735294 0.701149 +vt 0.705882 0.701149 +vt 0.735294 0.689655 +vt 0.735294 0.666667 +vt 0.740196 0.678161 +vt 0.750000 0.689655 +vt 0.740196 0.724138 +vt 0.750000 0.735632 +vt 0.745098 0.735632 +vt 0.750000 0.701149 +vt 0.750000 0.712644 +vt 0.750000 0.666667 +vt 0.750000 0.678161 +vt 0.750000 0.724138 +vt 0.764706 0.712644 +vt 0.759804 0.724138 +vt 0.764706 0.689655 +vt 0.754902 0.735632 +vt 0.764706 0.701149 +vt 0.759804 0.678161 +vt 0.750000 0.655172 +vt 0.745098 0.666667 +vt 0.754902 0.666667 +vt 0.750000 0.747126 +vt 0.764706 0.678161 +vt 0.882353 0.689655 +vt 0.764706 0.724138 +vt 0.882353 0.735632 +vt 0.764706 0.735632 +vt 0.882353 0.712644 +vt 0.882353 0.747126 +vt 0.764706 0.747126 +vt 0.882353 0.701149 +vt 0.764706 0.655172 +vt 0.882353 0.666667 +vt 0.764706 0.666667 +vt 0.882353 0.678161 +vt 0.882353 0.724138 +vt 0.897059 0.735632 +vt 0.897059 0.747126 +vt 0.897059 0.678161 +vt 0.887255 0.678161 +vt 0.887255 0.724138 +vt 0.897059 0.712644 +vt 0.897059 0.724138 +vt 0.882353 0.655172 +vt 0.897059 0.666667 +vt 0.897059 0.689655 +vt 0.892157 0.689655 +vt 0.911765 0.655172 +vt 0.911765 0.666667 +vt 0.906863 0.678161 +vt 0.906863 0.724138 +vt 0.911765 0.747126 +vt 0.901961 0.689655 +vt 0.911765 0.735632 +vt 0.897059 0.701149 +vt 0.892157 0.712644 +vt 0.901961 0.712644 +vt 0.921569 0.678161 +vt 0.911765 0.678161 +vt 0.911765 0.712644 +vt 0.921569 0.724138 +vt 0.911765 0.724138 +vt 0.911765 0.701149 +vt 0.921569 0.712644 +vt 0.921569 0.747126 +vt 0.911765 0.689655 +vt 0.921569 0.701149 +vt 0.921569 0.689655 +vt 0.921569 0.735632 +vt 0.921569 0.666667 +vt 0.735294 0.735632 +vt 0.705882 0.747126 +vt 0.705882 0.735632 +vt 0.735294 0.712644 +vt 0.705882 0.724138 +vt 0.705882 0.712644 +vt 0.735294 0.678161 +vt 0.705882 0.689655 +vt 0.705882 0.678161 +vt 0.735294 0.655172 +vt 0.705882 0.666667 +vt 0.705882 0.655172 +vt 0.735294 0.724138 +vt 0.735294 0.701149 +vt 0.705882 0.701149 +vt 0.735294 0.689655 +vt 0.735294 0.666667 +vt 0.750000 0.678161 +vt 0.750000 0.689655 +vt 0.745098 0.735632 +vt 0.750000 0.724138 +vt 0.750000 0.735632 +vt 0.750000 0.712644 +vt 0.750000 0.701149 +vt 0.745098 0.666667 +vt 0.740196 0.678161 +vt 0.740196 0.724138 +vt 0.764706 0.712644 +vt 0.759804 0.724138 +vt 0.764706 0.689655 +vt 0.754902 0.735632 +vt 0.764706 0.701149 +vt 0.750000 0.666667 +vt 0.759804 0.678161 +vt 0.750000 0.655172 +vt 0.754902 0.666667 +vt 0.750000 0.747126 +vt 0.764706 0.678161 +vt 0.882353 0.689655 +vt 0.764706 0.724138 +vt 0.882353 0.735632 +vt 0.764706 0.735632 +vt 0.882353 0.712644 +vt 0.882353 0.747126 +vt 0.764706 0.747126 +vt 0.882353 0.701149 +vt 0.764706 0.655172 +vt 0.882353 0.666667 +vt 0.764706 0.666667 +vt 0.882353 0.678161 +vt 0.882353 0.724138 +vt 0.897059 0.735632 +vt 0.897059 0.747126 +vt 0.897059 0.678161 +vt 0.887255 0.678161 +vt 0.887255 0.724138 +vt 0.897059 0.712644 +vt 0.897059 0.724138 +vt 0.882353 0.655172 +vt 0.897059 0.666667 +vt 0.897059 0.689655 +vt 0.892157 0.689655 +vt 0.911765 0.655172 +vt 0.911765 0.666667 +vt 0.906863 0.678161 +vt 0.906863 0.724138 +vt 0.911765 0.747126 +vt 0.901961 0.689655 +vt 0.911765 0.735632 +vt 0.897059 0.701149 +vt 0.892157 0.712644 +vt 0.901961 0.712644 +vt 0.921569 0.678161 +vt 0.911765 0.678161 +vt 0.911765 0.724138 +vt 0.921569 0.712644 +vt 0.921569 0.724138 +vt 0.911765 0.701149 +vt 0.911765 0.712644 +vt 0.921569 0.747126 +vt 0.911765 0.689655 +vt 0.921569 0.701149 +vt 0.921569 0.689655 +vt 0.921569 0.735632 +vt 0.921569 0.666667 +vt 0.303922 0.643678 +vt 0.274510 0.655172 +vt 0.274510 0.643678 +vt 0.303922 0.620690 +vt 0.274510 0.632184 +vt 0.274510 0.620690 +vt 0.303922 0.586207 +vt 0.274510 0.597701 +vt 0.274510 0.586207 +vt 0.303922 0.563218 +vt 0.274510 0.574713 +vt 0.274510 0.563218 +vt 0.303922 0.632184 +vt 0.303922 0.609195 +vt 0.274510 0.609195 +vt 0.303922 0.597701 +vt 0.303922 0.574713 +vt 0.318627 0.586207 +vt 0.318627 0.597701 +vt 0.308824 0.632184 +vt 0.318627 0.643678 +vt 0.313726 0.643678 +vt 0.318627 0.620690 +vt 0.318627 0.609195 +vt 0.308824 0.586207 +vt 0.318627 0.574713 +vt 0.318627 0.632184 +vt 0.333333 0.620690 +vt 0.328431 0.632184 +vt 0.333333 0.597701 +vt 0.323529 0.643678 +vt 0.333333 0.609195 +vt 0.328431 0.586207 +vt 0.318627 0.563218 +vt 0.313726 0.574713 +vt 0.323529 0.574713 +vt 0.318627 0.655172 +vt 0.333333 0.586207 +vt 0.450980 0.597701 +vt 0.333333 0.632184 +vt 0.450980 0.643678 +vt 0.333333 0.643678 +vt 0.450980 0.620690 +vt 0.450980 0.655172 +vt 0.333333 0.655172 +vt 0.450980 0.609195 +vt 0.333333 0.563218 +vt 0.450980 0.574713 +vt 0.333333 0.574713 +vt 0.450980 0.586207 +vt 0.450980 0.632184 +vt 0.465686 0.655172 +vt 0.465686 0.586207 +vt 0.455882 0.586207 +vt 0.455882 0.632184 +vt 0.465686 0.620690 +vt 0.465686 0.632184 +vt 0.450980 0.563218 +vt 0.465686 0.574713 +vt 0.465686 0.597701 +vt 0.460784 0.597701 +vt 0.465686 0.643678 +vt 0.480392 0.563218 +vt 0.480392 0.574713 +vt 0.475490 0.586207 +vt 0.475490 0.632184 +vt 0.480392 0.655172 +vt 0.470588 0.597701 +vt 0.480392 0.643678 +vt 0.465686 0.609195 +vt 0.460784 0.620690 +vt 0.470588 0.620690 +vt 0.490196 0.586207 +vt 0.480392 0.586207 +vt 0.480392 0.620690 +vt 0.490196 0.632184 +vt 0.480392 0.632184 +vt 0.480392 0.609195 +vt 0.490196 0.620690 +vt 0.490196 0.655172 +vt 0.480392 0.597701 +vt 0.490196 0.609195 +vt 0.490196 0.597701 +vt 0.490196 0.643678 +vt 0.490196 0.574713 +vt 0.735294 0.735632 +vt 0.705882 0.747126 +vt 0.705882 0.735632 +vt 0.735294 0.712644 +vt 0.705882 0.724138 +vt 0.705882 0.712644 +vt 0.735294 0.678161 +vt 0.705882 0.689655 +vt 0.705882 0.678161 +vt 0.735294 0.655172 +vt 0.705882 0.666667 +vt 0.705882 0.655172 +vt 0.735294 0.724138 +vt 0.735294 0.701149 +vt 0.705882 0.701149 +vt 0.735294 0.689655 +vt 0.735294 0.666667 +vt 0.750000 0.678161 +vt 0.750000 0.689655 +vt 0.740196 0.724138 +vt 0.750000 0.735632 +vt 0.745098 0.735632 +vt 0.750000 0.712644 +vt 0.750000 0.701149 +vt 0.740196 0.678161 +vt 0.750000 0.666667 +vt 0.750000 0.724138 +vt 0.759804 0.724138 +vt 0.764706 0.689655 +vt 0.754902 0.735632 +vt 0.764706 0.712644 +vt 0.764706 0.701149 +vt 0.759804 0.678161 +vt 0.750000 0.655172 +vt 0.745098 0.666667 +vt 0.754902 0.666667 +vt 0.750000 0.747126 +vt 0.764706 0.678161 +vt 0.882353 0.689655 +vt 0.764706 0.724138 +vt 0.882353 0.735632 +vt 0.764706 0.735632 +vt 0.882353 0.712644 +vt 0.882353 0.747126 +vt 0.764706 0.747126 +vt 0.882353 0.701149 +vt 0.764706 0.655172 +vt 0.882353 0.666667 +vt 0.764706 0.666667 +vt 0.882353 0.678161 +vt 0.882353 0.724138 +vt 0.897059 0.735632 +vt 0.897059 0.747126 +vt 0.897059 0.678161 +vt 0.887255 0.678161 +vt 0.887255 0.724138 +vt 0.897059 0.712644 +vt 0.897059 0.724138 +vt 0.882353 0.655172 +vt 0.897059 0.666667 +vt 0.897059 0.689655 +vt 0.892157 0.689655 +vt 0.911765 0.655172 +vt 0.911765 0.666667 +vt 0.906863 0.678161 +vt 0.906863 0.724138 +vt 0.911765 0.747126 +vt 0.901961 0.689655 +vt 0.911765 0.735632 +vt 0.897059 0.701149 +vt 0.892157 0.712644 +vt 0.901961 0.712644 +vt 0.921569 0.678161 +vt 0.911765 0.678161 +vt 0.911765 0.712644 +vt 0.921569 0.724138 +vt 0.911765 0.724138 +vt 0.911765 0.701149 +vt 0.921569 0.712644 +vt 0.921569 0.747126 +vt 0.911765 0.689655 +vt 0.921569 0.701149 +vt 0.921569 0.689655 +vt 0.921569 0.735632 +vt 0.921569 0.666667 +vt 0.274510 0.643678 +vt 0.303922 0.655172 +vt 0.274510 0.655172 +vt 0.303922 0.620690 +vt 0.274510 0.632184 +vt 0.274510 0.620690 +vt 0.303922 0.586207 +vt 0.274510 0.597701 +vt 0.274510 0.586207 +vt 0.303922 0.563218 +vt 0.274510 0.574713 +vt 0.274510 0.563218 +vt 0.303922 0.632184 +vt 0.303922 0.609195 +vt 0.274510 0.609195 +vt 0.303922 0.597701 +vt 0.303922 0.574713 +vt 0.308824 0.586207 +vt 0.318627 0.597701 +vt 0.308824 0.632184 +vt 0.318627 0.643678 +vt 0.313726 0.643678 +vt 0.318627 0.620690 +vt 0.318627 0.609195 +vt 0.318627 0.574713 +vt 0.318627 0.586207 +vt 0.318627 0.632184 +vt 0.333333 0.620690 +vt 0.328431 0.632184 +vt 0.333333 0.597701 +vt 0.323529 0.643678 +vt 0.333333 0.609195 +vt 0.328431 0.586207 +vt 0.318627 0.563218 +vt 0.313726 0.574713 +vt 0.323529 0.574713 +vt 0.318627 0.655172 +vt 0.333333 0.586207 +vt 0.450980 0.597701 +vt 0.333333 0.632184 +vt 0.450980 0.643678 +vt 0.333333 0.643678 +vt 0.450980 0.620690 +vt 0.450980 0.655172 +vt 0.333333 0.655172 +vt 0.450980 0.609195 +vt 0.333333 0.563218 +vt 0.450980 0.574713 +vt 0.333333 0.574713 +vt 0.450980 0.586207 +vt 0.450980 0.632184 +vt 0.465686 0.643678 +vt 0.465686 0.655172 +vt 0.465686 0.586207 +vt 0.455882 0.586207 +vt 0.455882 0.632184 +vt 0.465686 0.620690 +vt 0.465686 0.632184 +vt 0.450980 0.563218 +vt 0.465686 0.574713 +vt 0.465686 0.597701 +vt 0.460784 0.597701 +vt 0.480392 0.563218 +vt 0.480392 0.574713 +vt 0.475490 0.586207 +vt 0.475490 0.632184 +vt 0.480392 0.643678 +vt 0.480392 0.655172 +vt 0.470588 0.597701 +vt 0.465686 0.609195 +vt 0.460784 0.620690 +vt 0.470588 0.620690 +vt 0.490196 0.586207 +vt 0.480392 0.586207 +vt 0.480392 0.632184 +vt 0.490196 0.620690 +vt 0.490196 0.632184 +vt 0.480392 0.620690 +vt 0.490196 0.609195 +vt 0.490196 0.655172 +vt 0.480392 0.609195 +vt 0.490196 0.597701 +vt 0.480392 0.597701 +vt 0.490196 0.643678 +vt 0.490196 0.574713 +vt 0.303922 0.643678 +vt 0.274510 0.655172 +vt 0.274510 0.643678 +vt 0.303922 0.620690 +vt 0.274510 0.632184 +vt 0.274510 0.620690 +vt 0.303922 0.586207 +vt 0.274510 0.597701 +vt 0.274510 0.586207 +vt 0.303922 0.563218 +vt 0.274510 0.574713 +vt 0.274510 0.563218 +vt 0.303922 0.632184 +vt 0.303922 0.609195 +vt 0.274510 0.609195 +vt 0.303922 0.597701 +vt 0.303922 0.574713 +vt 0.318627 0.586207 +vt 0.318627 0.597701 +vt 0.308824 0.632184 +vt 0.318627 0.643678 +vt 0.313726 0.643678 +vt 0.318627 0.620690 +vt 0.318627 0.609195 +vt 0.308824 0.586207 +vt 0.318627 0.574713 +vt 0.318627 0.632184 +vt 0.333333 0.620690 +vt 0.328431 0.632184 +vt 0.333333 0.597701 +vt 0.323529 0.643678 +vt 0.333333 0.609195 +vt 0.328431 0.586207 +vt 0.318627 0.563218 +vt 0.313726 0.574713 +vt 0.323529 0.574713 +vt 0.318627 0.655172 +vt 0.333333 0.586207 +vt 0.450980 0.597701 +vt 0.333333 0.632184 +vt 0.450980 0.643678 +vt 0.333333 0.643678 +vt 0.450980 0.620690 +vt 0.450980 0.655172 +vt 0.333333 0.655172 +vt 0.450980 0.609195 +vt 0.333333 0.563218 +vt 0.450980 0.574713 +vt 0.333333 0.574713 +vt 0.450980 0.586207 +vt 0.450980 0.632184 +vt 0.465686 0.643678 +vt 0.465686 0.655172 +vt 0.465686 0.586207 +vt 0.455882 0.586207 +vt 0.455882 0.632184 +vt 0.465686 0.620690 +vt 0.465686 0.632184 +vt 0.450980 0.563218 +vt 0.465686 0.574713 +vt 0.465686 0.597701 +vt 0.460784 0.597701 +vt 0.480392 0.563218 +vt 0.480392 0.574713 +vt 0.475490 0.586207 +vt 0.475490 0.632184 +vt 0.480392 0.655172 +vt 0.470588 0.597701 +vt 0.480392 0.643678 +vt 0.465686 0.609195 +vt 0.460784 0.620690 +vt 0.470588 0.620690 +vt 0.490196 0.586207 +vt 0.480392 0.586207 +vt 0.480392 0.620690 +vt 0.490196 0.632184 +vt 0.480392 0.632184 +vt 0.480392 0.609195 +vt 0.490196 0.620690 +vt 0.490196 0.655172 +vt 0.480392 0.597701 +vt 0.490196 0.609195 +vt 0.490196 0.597701 +vt 0.490196 0.643678 +vt 0.490196 0.574713 +vt 0.735294 0.735632 +vt 0.705882 0.747126 +vt 0.705882 0.735632 +vt 0.735294 0.712644 +vt 0.705882 0.724138 +vt 0.705882 0.712644 +vt 0.735294 0.678161 +vt 0.705882 0.689655 +vt 0.705882 0.678161 +vt 0.735294 0.655172 +vt 0.705882 0.666667 +vt 0.705882 0.655172 +vt 0.735294 0.724138 +vt 0.735294 0.701149 +vt 0.705882 0.701149 +vt 0.735294 0.689655 +vt 0.735294 0.666667 +vt 0.740196 0.678161 +vt 0.750000 0.689655 +vt 0.740196 0.724138 +vt 0.750000 0.735632 +vt 0.745098 0.735632 +vt 0.750000 0.701149 +vt 0.750000 0.712644 +vt 0.750000 0.666667 +vt 0.750000 0.678161 +vt 0.750000 0.724138 +vt 0.764706 0.712644 +vt 0.759804 0.724138 +vt 0.764706 0.689655 +vt 0.754902 0.735632 +vt 0.764706 0.701149 +vt 0.759804 0.678161 +vt 0.750000 0.655172 +vt 0.745098 0.666667 +vt 0.754902 0.666667 +vt 0.750000 0.747126 +vt 0.764706 0.678161 +vt 0.882353 0.689655 +vt 0.764706 0.724138 +vt 0.882353 0.735632 +vt 0.764706 0.735632 +vt 0.882353 0.712644 +vt 0.882353 0.747126 +vt 0.764706 0.747126 +vt 0.882353 0.701149 +vt 0.764706 0.655172 +vt 0.882353 0.666667 +vt 0.764706 0.666667 +vt 0.882353 0.678161 +vt 0.882353 0.724138 +vt 0.897059 0.735632 +vt 0.897059 0.747126 +vt 0.897059 0.678161 +vt 0.887255 0.678161 +vt 0.887255 0.724138 +vt 0.897059 0.712644 +vt 0.897059 0.724138 +vt 0.882353 0.655172 +vt 0.897059 0.666667 +vt 0.897059 0.689655 +vt 0.892157 0.689655 +vt 0.911765 0.655172 +vt 0.911765 0.666667 +vt 0.906863 0.678161 +vt 0.906863 0.724138 +vt 0.911765 0.747126 +vt 0.901961 0.689655 +vt 0.911765 0.735632 +vt 0.897059 0.701149 +vt 0.892157 0.712644 +vt 0.901961 0.712644 +vt 0.921569 0.678161 +vt 0.911765 0.678161 +vt 0.911765 0.712644 +vt 0.921569 0.724138 +vt 0.911765 0.724138 +vt 0.911765 0.701149 +vt 0.921569 0.712644 +vt 0.921569 0.747126 +vt 0.911765 0.689655 +vt 0.921569 0.701149 +vt 0.921569 0.689655 +vt 0.921569 0.735632 +vt 0.921569 0.666667 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt 0.294118 0.298851 +vt 0.284314 0.252874 +vt 0.294118 0.252874 +vt 0.274510 0.298851 +vt 0.264706 0.252874 +vt 0.274510 0.252874 +vt 0.333333 0.298851 +vt 0.323529 0.252874 +vt 0.333333 0.252874 +vt 0.313726 0.298851 +vt 0.303922 0.252874 +vt 0.313726 0.252874 +vt 0.303922 0.298851 +vt 0.284314 0.298851 +vt 0.264706 0.298851 +vt 0.254902 0.252874 +vt 0.323529 0.298851 +vt -0.000000 0.747126 +vt 0.313726 0.563218 +vt 0.254902 0.379310 +vt 0.176471 0.252874 +vt 0.333333 0.344828 +vt 0.274510 0.655172 +vt 0.058824 0.747126 +vt 0.352941 0.655172 +vt 0.392157 0.747126 +vt 0.705882 0.655172 +vt 0.735294 0.747126 +vt 0.921569 0.655172 +vt 0.303922 0.655172 +vt 0.465686 0.563218 +vt 0.490196 0.563218 +vt 0.254902 0.298851 +vt 0.254902 0.379310 +vt 0.176471 0.252874 +vt 0.254902 0.379310 +vt 0.176471 0.379310 +vt 0.176471 0.252874 +vt 0.254902 0.379310 +vt 0.176471 0.252874 +vt 0.254902 0.379310 +vt 0.176471 0.252874 +vt 0.254902 0.379310 +vt 0.176471 0.379310 +vt 0.176471 0.252874 +vt 0.254902 0.379310 +vt 0.176471 0.252874 +vt 0.254902 0.379310 +vt 0.176471 0.252874 +vt 0.254902 0.379310 +vt 0.176471 0.252874 +vt 0.254902 0.379310 +vt 0.176471 0.379310 +vt 0.176471 0.252874 +vt 0.333333 0.344828 +vt 0.333333 0.344828 +vt 0.333333 0.298851 +vt 0.333333 0.344828 +vt 0.313726 0.563218 +vt 0.235294 0.747126 +vt -0.000000 0.747126 +vt 0.235294 0.747126 +vt -0.000000 0.747126 +vt -0.000000 0.747126 +vt 0.235294 0.747126 +vt -0.000000 0.747126 +vt 0.235294 0.747126 +vt -0.000000 0.747126 +vt 0.274510 0.655172 +vt 0.735294 0.747126 +vt 0.897059 0.655172 +vt 0.921569 0.655172 +vt 0.303922 0.655172 +vt 0.465686 0.563218 +vt 0.490196 0.563218 +vt 0.303922 0.655172 +vt 0.465686 0.563218 +vt 0.490196 0.563218 +vt 0.735294 0.747126 +vt 0.897059 0.655172 +vt 0.921569 0.655172 +vt 0.735294 0.747126 +vt 0.897059 0.655172 +vt 0.921569 0.655172 +vt 0.303922 0.655172 +vt 0.465686 0.563218 +vt 0.490196 0.563218 +vt 0.735294 0.747126 +vt 0.897059 0.655172 +vt 0.921569 0.655172 +vt 0.303922 0.643678 +vt 0.465686 0.563218 +vt 0.490196 0.563218 +vt 0.303922 0.655172 +vt 0.465686 0.563218 +vt 0.490196 0.563218 +vt 0.735294 0.747126 +vt 0.897059 0.655172 +vt 0.921569 0.655172 +vt 0.254902 0.298851 +vt 0.254902 0.298851 +vt 0.254902 0.298851 +vt 0.254902 0.298851 +vt 0.254902 0.298851 +vt 0.254902 0.298851 +vt 0.254902 0.298851 +vt 0.254902 0.298851 +vt 0.254902 0.298851 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8660 0.0000 0.5000 +vn -0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 -0.5000 +vn -0.8660 0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn 0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 0.8660 +vn 0.5000 0.0000 -0.8660 +vn -0.3827 0.0000 0.9239 +vn -0.7071 0.0000 0.7071 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +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.1363 -0.6737 -0.7263 +vn 0.0000 -0.7071 -0.7071 +vn 0.1448 0.7194 -0.6794 +vn 0.0000 0.7071 -0.7071 +vn 0.0196 0.0473 0.9987 +vn 0.0000 0.7071 0.7071 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0196 0.0473 -0.9987 +vn 0.1866 0.9824 -0.0000 +vn 0.1448 0.7194 0.6794 +vn -0.1363 -0.6737 0.7263 +vn 0.5294 0.5294 0.6630 +vn -0.4617 -0.4617 -0.7574 +vn 0.5294 0.5294 -0.6630 +vn 0.7071 0.7071 -0.0000 +vn -0.4617 -0.4617 0.7574 +vn 0.0671 0.0671 0.9955 +vn 0.0671 0.0671 -0.9955 +vn 0.7194 0.1448 -0.6794 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1448 0.6794 +vn -0.6737 -0.1363 -0.7263 +vn 0.9824 0.1866 0.0000 +vn -0.6737 -0.1363 0.7263 +vn 0.0473 0.0196 0.9987 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.6737 0.7263 0.1363 +vn 0.7194 0.6794 -0.1448 +vn 0.0473 -0.9987 -0.0196 +vn -0.9307 -0.0000 0.3658 +vn 0.0473 0.9987 -0.0196 +vn 0.9824 0.0000 -0.1866 +vn 0.7194 -0.6794 -0.1448 +vn -0.6737 -0.7263 0.1363 +vn 0.0440 -0.9989 -0.0165 +vn 0.6174 -0.6805 -0.3946 +vn -0.5824 0.7230 0.3716 +vn 0.6174 0.6805 -0.3946 +vn 0.8368 -0.0000 -0.5475 +vn -0.5825 -0.7230 0.3716 +vn 0.0440 0.9989 -0.0165 +vn -0.6174 -0.6805 0.3946 +vn -0.9824 0.0000 0.1866 +vn -0.7194 -0.6794 0.1448 +vn -0.0440 -0.9989 0.0165 +vn -0.0473 -0.9987 0.0196 +vn 0.5825 0.7230 -0.3716 +vn -0.0473 0.9987 0.0196 +vn -0.0440 0.9989 0.0165 +vn -0.6174 0.6805 0.3946 +vn -0.8368 0.0000 0.5475 +vn 0.6737 -0.7263 -0.1363 +vn 0.5824 -0.7230 -0.3716 +vn -0.7194 0.6794 0.1448 +vn 0.9307 0.0000 -0.3658 +vn 0.6737 0.7263 -0.1363 +vn -0.5825 0.7230 0.3716 +vn 0.5824 0.7230 -0.3716 +vn -0.7263 -0.6737 0.1363 +vn -0.6794 0.7194 -0.1448 +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.1448 +vn 0.7263 -0.6737 0.1363 +vn 0.9955 0.0671 -0.0671 +vn 0.6630 0.5294 -0.5294 +vn -0.7574 -0.4617 0.4617 +vn -0.6630 0.5294 -0.5294 +vn 0.7574 -0.4617 0.4617 +vn -0.9955 0.0671 -0.0671 +vn -0.6794 0.1448 -0.7194 +vn -0.9987 0.0196 -0.0473 +vn 0.6794 0.1448 -0.7194 +vn -0.7263 -0.1363 0.6737 +vn 0.0000 0.1866 -0.9824 +vn 0.9987 0.0196 -0.0473 +vn 0.7263 -0.1363 0.6737 +vn 0.7263 0.1363 -0.6737 +vn -0.6794 -0.1448 0.7194 +vn -0.7263 0.1363 -0.6737 +vn -0.0000 -0.1866 0.9824 +vn 0.6794 -0.1448 0.7194 +vn 0.9987 -0.0196 0.0473 +vn -0.9987 -0.0196 0.0473 +vn -0.6630 -0.5294 0.5294 +vn 0.9955 -0.0671 0.0671 +vn -0.7574 0.4617 -0.4617 +vn -0.9955 -0.0671 0.0671 +vn 0.6630 -0.5294 0.5294 +vn 0.7574 0.4617 -0.4617 +vn 0.6794 -0.7194 0.1448 +vn 0.9987 -0.0473 0.0196 +vn -0.9987 -0.0473 0.0196 +vn -0.0000 -0.9824 0.1866 +vn 0.7263 0.6737 -0.1363 +vn -0.6794 -0.7194 0.1448 +vn -0.7263 0.6737 -0.1363 +vn 0.1363 -0.6737 0.7263 +vn -0.1448 0.7194 0.6794 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.1866 0.9824 -0.0000 +vn -0.1448 0.7194 -0.6794 +vn -0.0671 0.0671 -0.9955 +vn -0.5294 0.5294 -0.6630 +vn 0.4617 -0.4617 0.7574 +vn -0.5294 0.5294 0.6630 +vn 0.4617 -0.4617 -0.7574 +vn -0.0671 0.0671 0.9955 +vn -0.7194 0.1448 0.6794 +vn -0.0473 0.0196 0.9987 +vn -0.0473 0.0196 -0.9987 +vn -0.7194 0.1448 -0.6794 +vn 0.6737 -0.1363 0.7263 +vn -0.9824 0.1866 0.0000 +vn 0.6737 -0.1363 -0.7263 +vn 0.7263 -0.6737 -0.1363 +vn 0.6794 0.7194 0.1448 +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.1448 +vn -0.7263 -0.6737 -0.1363 +vn -0.9955 0.0671 0.0671 +vn -0.6630 0.5294 0.5294 +vn 0.9955 0.0671 0.0671 +vn 0.7574 -0.4617 -0.4617 +vn 0.6630 0.5294 0.5294 +vn 0.6794 0.1448 0.7194 +vn 0.9987 0.0196 0.0473 +vn -0.6794 0.1448 0.7194 +vn 0.7263 -0.1363 -0.6737 +vn -0.0000 0.1866 0.9824 +vn -0.7574 -0.4617 -0.4617 +vn -0.9987 0.0196 0.0473 +vn -0.7263 -0.1363 -0.6737 +vn -0.7263 0.1363 0.6737 +vn 0.6794 -0.1448 -0.7194 +vn 0.7263 0.1363 0.6737 +vn 0.0000 -0.1866 -0.9824 +vn -0.6794 -0.1448 -0.7194 +vn -0.9987 -0.0196 -0.0473 +vn 0.9987 -0.0196 -0.0473 +vn 0.6630 -0.5294 -0.5294 +vn -0.9955 -0.0671 -0.0671 +vn 0.7574 0.4617 0.4617 +vn 0.9955 -0.0671 -0.0671 +vn -0.6630 -0.5294 -0.5294 +vn -0.7574 0.4617 0.4617 +vn 0.0000 -0.9824 -0.1866 +vn -0.6794 -0.7194 -0.1448 +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.1448 +vn 0.7263 0.6737 0.1363 +s off +f 3024/207/238 3025/208/238 3026/209/238 +f 3027/210/238 3030/211/238 3028/212/238 +f 3034/213/239 3031/214/239 3032/215/239 +f 3027/216/240 3033/217/240 3029/218/240 +f 3029/218/241 3034/213/241 3030/211/241 +f 3030/211/242 3032/215/242 3028/212/242 +f 3028/219/243 3031/220/243 3027/216/243 +f 3035/221/238 3038/222/238 3036/223/238 +f 3042/224/239 3039/225/239 3040/226/239 +f 3035/227/240 3041/228/240 3037/229/240 +f 3037/229/241 3042/224/241 3038/222/241 +f 3038/222/242 3040/226/242 3036/223/242 +f 3036/230/243 3039/231/243 3035/227/243 +f 3043/232/238 3046/233/238 3044/234/238 +f 3050/235/239 3047/236/239 3048/237/239 +f 3043/238/240 3049/239/240 3045/240/240 +f 3045/240/241 3050/235/241 3046/233/241 +f 3046/233/242 3048/237/242 3044/234/242 +f 3044/241/243 3047/242/243 3043/238/243 +f 3051/243/238 3054/244/238 3052/245/238 +f 3058/246/239 3055/247/239 3056/248/239 +f 3051/249/240 3057/250/240 3053/251/240 +f 3053/251/241 3058/246/241 3054/244/241 +f 3054/244/242 3056/248/242 3052/245/242 +f 3052/252/243 3055/253/243 3051/249/243 +f 3061/254/243 3026/209/243 3025/208/243 +f 3059/255/241 3023/256/241 3024/207/241 +f 3062/257/239 3060/258/239 3059/259/239 +f 3063/260/238 3065/261/238 3066/262/238 +f 3069/263/241 3066/262/241 3065/261/241 +f 3067/264/243 3064/265/243 3063/260/243 +f 3070/266/239 3068/267/239 3067/268/239 +f 3071/269/238 3073/270/238 3074/271/238 +f 3077/272/242 3074/271/242 3073/270/242 +f 3075/273/240 3072/274/240 3071/269/240 +f 3078/275/239 3076/276/239 3075/277/239 +f 3079/278/238 3081/279/238 3082/280/238 +f 3085/281/240 3082/280/240 3081/279/240 +f 3083/282/242 3080/283/242 3079/278/242 +f 3086/284/239 3084/285/239 3083/286/239 +f 3091/287/242 3088/288/242 3093/289/242 +f 3093/290/243 3089/291/243 3094/292/243 +f 3092/293/241 3087/294/241 3091/295/241 +f 3094/296/240 3090/297/240 3092/298/240 +f 3088/288/239 3090/297/239 3089/291/239 +f 3092/299/238 3093/289/238 3094/300/238 +f 3099/301/242 3096/302/242 3101/303/242 +f 3101/304/243 3097/305/243 3102/306/243 +f 3100/307/241 3095/308/241 3099/309/241 +f 3102/310/240 3098/311/240 3100/312/240 +f 3096/302/239 3098/311/239 3097/305/239 +f 3100/313/238 3101/303/238 3102/314/238 +f 3105/315/238 3104/316/238 3103/317/238 +f 3109/318/239 3107/319/239 3108/320/239 +f 3103/321/240 3107/319/240 3105/322/240 +f 3105/323/241 3110/324/241 3106/325/241 +f 3104/326/243 3108/320/243 3103/327/243 +f 3106/328/242 3109/318/242 3104/316/242 +f 3115/329/242 3112/330/242 3117/331/242 +f 3117/332/243 3113/333/243 3118/334/243 +f 3116/335/241 3111/336/241 3115/337/241 +f 3118/338/240 3114/339/240 3116/340/240 +f 3112/330/239 3114/339/239 3113/333/239 +f 3116/341/238 3117/331/238 3118/342/238 +f 3121/343/238 3120/344/238 3119/345/238 +f 3125/346/239 3123/347/239 3124/348/239 +f 3119/349/240 3123/347/240 3121/350/240 +f 3121/351/241 3126/352/241 3122/353/241 +f 3120/354/243 3124/348/243 3119/355/243 +f 3122/356/242 3125/346/242 3120/344/242 +f 3129/357/242 3128/358/242 3127/359/242 +f 3131/360/239 3142/361/239 3134/362/239 +f 3130/363/243 3137/364/243 3128/358/243 +f 3127/359/241 3135/365/241 3129/357/241 +f 3129/357/239 3138/366/239 3130/363/239 +f 3128/358/238 3136/367/238 3127/359/238 +f 3131/368/240 3136/369/240 3132/370/240 +f 3132/371/240 3137/372/240 3133/373/240 +f 3133/374/240 3138/375/240 3134/376/240 +f 3134/362/240 3135/377/240 3131/360/240 +f 3133/373/238 3140/378/238 3132/371/238 +f 3134/376/243 3141/379/243 3133/374/243 +f 3132/370/241 3139/380/241 3131/368/241 +f 3146/381/238 3148/382/238 3152/383/238 +f 3658/384/239 3660/385/239 3664/386/239 +f 3157/387/238 3156/388/238 3155/389/238 +f 3158/390/243 3161/391/243 3156/388/243 +f 3155/389/241 3159/392/241 3157/387/241 +f 3157/387/242 3162/393/242 3158/390/242 +f 3156/388/240 3160/394/240 3155/389/240 +f 3160/395/239 3162/396/239 3159/397/239 +f 3165/398/238 3164/399/238 3163/400/238 +f 3166/401/243 3169/402/243 3164/399/243 +f 3163/400/241 3167/403/241 3165/398/241 +f 3165/398/242 3170/404/242 3166/401/242 +f 3164/399/240 3168/405/240 3163/400/240 +f 3168/406/239 3170/407/239 3167/408/239 +f 3173/409/238 3172/410/238 3171/411/238 +f 3174/412/243 3177/413/243 3172/410/243 +f 3171/411/241 3175/414/241 3173/409/241 +f 3173/409/242 3178/415/242 3174/412/242 +f 3172/410/240 3176/416/240 3171/411/240 +f 3181/417/239 3178/418/239 3175/419/239 +f 3182/420/243 3185/421/243 3180/422/243 +f 3179/423/239 3175/419/239 3176/424/239 +f 3180/425/239 3176/424/239 3177/413/239 +f 3182/426/239 3177/413/239 3178/418/239 +f 3185/421/239 3183/427/239 3184/428/239 +f 3179/429/241 3183/427/241 3181/430/241 +f 3181/431/242 3186/432/242 3182/433/242 +f 3180/434/240 3184/428/240 3179/435/240 +f 3193/436/239 3191/437/239 3192/438/239 +f 3188/439/240 3192/438/240 3187/440/240 +f 3190/441/243 3193/436/243 3188/442/243 +f 3187/443/241 3191/437/241 3189/444/241 +f 3189/445/242 3194/446/242 3190/447/242 +f 3212/448/239 3228/449/239 3227/450/239 +f 3213/451/239 3227/450/239 3229/452/239 +f 3213/451/239 3230/453/239 3214/454/239 +f 3215/455/239 3230/453/239 3231/456/239 +f 3215/455/239 3232/457/239 3216/458/239 +f 3216/458/239 3233/459/239 3217/460/239 +f 3218/461/239 3233/459/239 3234/462/239 +f 3219/463/239 3234/462/239 3235/464/239 +f 3220/465/239 3235/466/239 3236/467/239 +f 3221/468/239 3236/467/239 3237/469/239 +f 3222/470/239 3237/469/239 3238/471/239 +f 3223/472/239 3238/471/239 3239/473/239 +f 3223/472/239 3240/474/239 3224/475/239 +f 3224/475/239 3241/476/239 3225/477/239 +f 3226/478/239 3241/476/239 3242/479/239 +f 3211/480/239 3242/479/239 3228/449/239 +f 3260/481/239 3261/482/239 3259/483/239 +f 3264/484/239 3265/485/239 3263/486/239 +f 3268/487/239 3269/488/239 3267/489/239 +f 3273/490/239 3272/491/239 3274/492/239 +f 3276/493/239 3277/494/239 3275/495/239 +f 3280/496/239 3281/497/239 3279/498/239 +f 3289/499/239 3287/500/239 3288/501/239 +f 3284/502/240 3288/501/240 3283/503/240 +f 3286/504/243 3289/499/243 3284/505/243 +f 3283/506/241 3287/500/241 3285/507/241 +f 3285/508/242 3290/509/242 3286/510/242 +f 3319/511/239 3320/512/239 3318/513/239 +f 3323/514/239 3324/515/239 3322/516/239 +f 3327/517/239 3328/518/239 3326/519/239 +f 3332/520/239 3331/521/239 3333/522/239 +f 3335/523/239 3336/524/239 3334/525/239 +f 3339/526/239 3340/527/239 3338/528/239 +f 3402/529/239 3400/530/239 3401/531/239 +f 3399/532/243 3402/529/243 3397/533/243 +f 3396/534/241 3400/530/241 3398/535/241 +f 3398/536/242 3403/537/242 3399/538/242 +f 3397/539/240 3401/531/240 3396/540/240 +f 3654/541/239 3652/542/239 3653/543/239 +f 3651/544/243 3654/541/243 3649/545/243 +f 3648/546/241 3652/542/241 3650/547/241 +f 3650/548/242 3655/549/242 3651/550/242 +f 3649/551/240 3653/543/240 3648/552/240 +f 3300/553/239 4080/554/239 4079/555/239 +f 3299/556/239 4079/555/239 4081/557/239 +f 3299/556/239 4082/558/239 3298/559/239 +f 3297/560/239 4082/558/239 4083/561/239 +f 3297/560/239 4084/562/239 3296/563/239 +f 3295/564/239 4084/562/239 4085/565/239 +f 3294/566/239 4085/565/239 4086/567/239 +f 3293/568/239 4086/567/239 4087/569/239 +f 3292/570/239 4087/571/239 4088/572/239 +f 3291/573/239 4088/572/239 4089/574/239 +f 4074/575/239 4089/574/239 4090/576/239 +f 4075/577/239 4090/576/239 4091/578/239 +f 4075/577/239 4092/579/239 4076/580/239 +f 4076/580/239 4093/581/239 4077/582/239 +f 4078/583/239 4093/581/239 4094/584/239 +f 3301/585/239 4094/584/239 4080/554/239 +f 4114/586/238 4116/587/238 4120/588/238 +f 4127/589/239 4129/590/239 4131/591/239 +f 4138/592/238 4140/593/238 4144/594/238 +f 4151/595/239 4155/596/239 4147/597/239 +f 4164/598/238 4166/599/238 4168/600/238 +f 4175/601/239 4177/602/239 4179/603/239 +f 4188/604/238 4190/605/238 4192/606/238 +f 4199/607/239 4201/608/239 4203/609/239 +f 4210/610/238 4212/611/238 4216/612/238 +f 4223/613/239 4227/614/239 4219/615/239 +f 4234/616/238 4236/617/238 4240/618/238 +f 4247/619/239 4251/620/239 4243/621/239 +f 4258/622/238 4260/623/238 4264/624/238 +f 4271/625/239 4273/626/239 4275/627/239 +f 4282/628/238 4284/629/238 4288/630/238 +f 4293/631/239 4295/632/239 4299/633/239 +f 4306/634/238 4308/635/238 4312/636/238 +f 4319/637/239 4323/638/239 4315/639/239 +f 4332/640/239 4334/641/239 4331/642/239 +f 4330/643/243 4333/644/243 4328/645/243 +f 4327/646/241 4331/642/241 4329/647/241 +f 4329/648/242 4334/641/242 4330/649/242 +f 4328/650/240 4332/640/240 4327/651/240 +f 4341/652/239 4339/653/239 4340/654/239 +f 4338/655/243 4341/652/243 4336/656/243 +f 4335/657/241 4339/653/241 4337/658/241 +f 4337/659/242 4342/660/242 4338/661/242 +f 4336/662/240 4340/654/240 4335/663/240 +f 4349/664/239 4347/665/239 4348/666/239 +f 4346/667/243 4349/664/243 4344/668/243 +f 4343/669/241 4347/665/241 4345/670/241 +f 4345/671/242 4350/672/242 4346/673/242 +f 4344/674/240 4348/666/240 4343/675/240 +f 4357/676/239 4355/677/239 4356/678/239 +f 4354/679/243 4357/676/243 4352/680/243 +f 4351/681/241 4355/677/241 4353/682/241 +f 4353/683/242 4358/684/242 4354/685/242 +f 4352/686/240 4356/678/240 4351/687/240 +f 4365/688/239 4363/689/239 4364/690/239 +f 4362/691/243 4365/688/243 4360/692/243 +f 4359/693/241 4363/689/241 4361/694/241 +f 4361/695/242 4366/696/242 4362/697/242 +f 4360/698/240 4364/690/240 4359/699/240 +f 4372/700/239 4374/701/239 4371/702/239 +f 4370/703/243 4373/704/243 4368/705/243 +f 4367/706/241 4371/702/241 4369/707/241 +f 4369/708/242 4374/701/242 4370/709/242 +f 4368/710/240 4372/700/240 4367/711/240 +f 4381/712/239 4379/713/239 4380/714/239 +f 4378/715/243 4381/712/243 4376/716/243 +f 4375/717/241 4379/713/241 4377/718/241 +f 4377/719/242 4382/720/242 4378/721/242 +f 4376/722/240 4380/714/240 4375/723/240 +f 4389/724/239 4387/725/239 4388/726/239 +f 4386/727/243 4389/724/243 4384/728/243 +f 4383/729/241 4387/725/241 4385/730/241 +f 4385/731/242 4390/732/242 4386/733/242 +f 4384/734/240 4388/726/240 4383/735/240 +f 4397/736/239 4395/737/239 4396/738/239 +f 4394/739/243 4397/736/243 4392/740/243 +f 4391/741/241 4395/737/241 4393/742/241 +f 4393/743/242 4398/744/242 4394/745/242 +f 4392/746/240 4396/738/240 4391/747/240 +f 4405/748/239 4403/749/239 4404/750/239 +f 4402/751/243 4405/748/243 4400/752/243 +f 4399/753/241 4403/749/241 4401/754/241 +f 4401/755/242 4406/756/242 4402/757/242 +f 4400/758/240 4404/750/240 4399/759/240 +f 4413/760/239 4411/761/239 4412/762/239 +f 4410/763/243 4413/760/243 4408/764/243 +f 4407/765/241 4411/761/241 4409/766/241 +f 4409/767/242 4414/768/242 4410/769/242 +f 4408/770/240 4412/762/240 4407/771/240 +f 4420/772/239 4422/773/239 4419/774/239 +f 4418/775/243 4421/776/243 4416/777/243 +f 4415/778/241 4419/774/241 4417/779/241 +f 4417/780/242 4422/773/242 4418/781/242 +f 4416/782/240 4420/772/240 4415/783/240 +f 4429/784/239 4427/785/239 4428/786/239 +f 4426/787/243 4429/784/243 4424/788/243 +f 4423/789/241 4427/785/241 4425/790/241 +f 4425/791/242 4430/792/242 4426/793/242 +f 4424/794/240 4428/786/240 4423/795/240 +f 4437/796/239 4435/797/239 4436/798/239 +f 4434/799/243 4437/796/243 4432/800/243 +f 4431/801/241 4435/797/241 4433/802/241 +f 4433/803/242 4438/804/242 4434/805/242 +f 4432/806/240 4436/798/240 4431/807/240 +f 4444/808/239 4446/809/239 4443/810/239 +f 4442/811/243 4445/812/243 4440/813/243 +f 4439/814/241 4443/810/241 4441/815/241 +f 4441/816/242 4446/809/242 4442/817/242 +f 4440/818/240 4444/808/240 4439/819/240 +f 4453/820/239 4451/821/239 4452/822/239 +f 4450/823/243 4453/820/243 4448/824/243 +f 4447/825/241 4451/821/241 4449/826/241 +f 4449/827/242 4454/828/242 4450/829/242 +f 4448/830/240 4452/822/240 4447/831/240 +f 4461/832/239 4459/833/239 4460/834/239 +f 4458/835/243 4461/832/243 4456/836/243 +f 4455/837/241 4459/833/241 4457/838/241 +f 4457/839/242 4462/840/242 4458/841/242 +f 4456/842/240 4460/834/240 4455/843/240 +f 4469/844/239 4467/845/239 4468/846/239 +f 4466/847/243 4469/844/243 4464/848/243 +f 4463/849/241 4467/845/241 4465/850/241 +f 4465/851/242 4470/852/242 4466/853/242 +f 4464/854/240 4468/846/240 4463/855/240 +f 5089/856/242 5088/857/242 5087/858/242 +f 5091/859/239 5102/860/239 5094/861/239 +f 5090/862/243 5097/863/243 5088/857/243 +f 5087/858/241 5095/864/241 5089/856/241 +f 5089/856/239 5098/865/239 5090/862/239 +f 5088/857/238 5096/866/238 5087/858/238 +f 5091/867/240 5096/868/240 5092/869/240 +f 5092/870/240 5097/871/240 5093/872/240 +f 5093/873/240 5098/874/240 5094/875/240 +f 5094/861/240 5095/876/240 5091/859/240 +f 5093/872/238 5100/877/238 5092/870/238 +f 5094/875/243 5101/878/243 5093/873/243 +f 5092/869/241 5099/879/241 5091/867/241 +f 5105/880/242 5104/881/242 5103/882/242 +f 5107/883/239 5118/884/239 5110/885/239 +f 5106/886/243 5113/887/243 5104/881/243 +f 5103/882/241 5111/888/241 5105/880/241 +f 5105/880/239 5114/889/239 5106/886/239 +f 5104/881/238 5112/890/238 5103/882/238 +f 5107/891/240 5112/892/240 5108/893/240 +f 5108/894/240 5113/895/240 5109/896/240 +f 5109/897/240 5114/898/240 5110/899/240 +f 5110/885/240 5111/900/240 5107/883/240 +f 5109/896/238 5116/901/238 5108/894/238 +f 5110/899/243 5117/902/243 5109/897/243 +f 5108/893/241 5115/903/241 5107/891/241 +f 5121/904/242 5120/905/242 5119/906/242 +f 5123/907/239 5134/908/239 5126/909/239 +f 5122/910/243 5129/911/243 5120/905/243 +f 5119/906/241 5127/912/241 5121/904/241 +f 5121/904/239 5130/913/239 5122/910/239 +f 5120/905/238 5128/914/238 5119/906/238 +f 5123/915/240 5128/916/240 5124/917/240 +f 5124/918/240 5129/919/240 5125/920/240 +f 5125/921/240 5130/922/240 5126/923/240 +f 5126/909/240 5127/924/240 5123/907/240 +f 5125/920/238 5132/925/238 5124/918/238 +f 5126/923/243 5133/926/243 5125/921/243 +f 5124/917/241 5131/927/241 5123/915/241 +f 5137/928/242 5136/929/242 5135/930/242 +f 5139/931/239 5150/932/239 5142/933/239 +f 5138/934/243 5145/935/243 5136/929/243 +f 5135/930/241 5143/936/241 5137/928/241 +f 5137/928/239 5146/937/239 5138/934/239 +f 5136/929/238 5144/938/238 5135/930/238 +f 5139/939/240 5144/940/240 5140/941/240 +f 5140/942/240 5145/943/240 5141/944/240 +f 5141/945/240 5146/946/240 5142/947/240 +f 5142/933/240 5143/948/240 5139/931/240 +f 5141/944/238 5148/949/238 5140/942/238 +f 5142/947/243 5149/950/243 5141/945/243 +f 5140/941/241 5147/951/241 5139/939/241 +f 5153/952/240 5152/953/240 5151/954/240 +f 5155/955/239 5166/956/239 5158/957/239 +f 5154/958/241 5161/959/241 5152/953/241 +f 5151/954/243 5159/960/243 5153/952/243 +f 5154/958/239 5159/961/239 5162/962/239 +f 5152/953/238 5160/963/238 5151/954/238 +f 5155/964/242 5160/965/242 5156/966/242 +f 5156/967/242 5161/968/242 5157/969/242 +f 5157/970/242 5162/971/242 5158/972/242 +f 5158/957/242 5159/961/242 5155/955/242 +f 5157/969/238 5164/973/238 5156/967/238 +f 5158/972/241 5165/974/241 5157/970/241 +f 5156/966/243 5163/975/243 5155/964/243 +f 5169/976/240 5168/977/240 5167/978/240 +f 5171/979/239 5182/980/239 5174/981/239 +f 5170/982/241 5177/983/241 5168/977/241 +f 5167/978/243 5175/984/243 5169/976/243 +f 5169/976/239 5178/985/239 5170/982/239 +f 5168/977/238 5176/986/238 5167/978/238 +f 5171/987/242 5176/988/242 5172/989/242 +f 5172/990/242 5177/991/242 5173/992/242 +f 5173/993/242 5178/994/242 5174/995/242 +f 5174/981/242 5175/996/242 5171/979/242 +f 5173/992/238 5180/997/238 5172/990/238 +f 5174/995/241 5181/998/241 5173/993/241 +f 5172/989/243 5179/999/243 5171/987/243 +f 5185/1000/240 5184/1001/240 5183/1002/240 +f 5187/1003/239 5198/1004/239 5190/1005/239 +f 5186/1006/241 5193/1007/241 5184/1001/241 +f 5183/1002/243 5191/1008/243 5185/1000/243 +f 5185/1000/239 5194/1009/239 5186/1006/239 +f 5184/1001/238 5192/1010/238 5183/1002/238 +f 5187/1011/242 5192/1012/242 5188/1013/242 +f 5188/1014/242 5193/1015/242 5189/1016/242 +f 5189/1017/242 5194/1018/242 5190/1019/242 +f 5190/1005/242 5191/1020/242 5187/1003/242 +f 5189/1016/238 5196/1021/238 5188/1014/238 +f 5190/1019/241 5197/1022/241 5189/1017/241 +f 5188/1013/243 5195/1023/243 5187/1011/243 +f 5201/1024/240 5200/1025/240 5199/1026/240 +f 5203/1027/239 5214/1028/239 5206/1029/239 +f 5202/1030/241 5209/1031/241 5200/1025/241 +f 5199/1026/243 5207/1032/243 5201/1024/243 +f 5201/1024/239 5210/1033/239 5202/1030/239 +f 5200/1025/238 5208/1034/238 5199/1026/238 +f 5203/1035/242 5208/1036/242 5204/1037/242 +f 5204/1038/242 5209/1039/242 5205/1040/242 +f 5205/1041/242 5210/1042/242 5206/1043/242 +f 5206/1029/242 5207/1044/242 5203/1027/242 +f 5205/1040/238 5212/1045/238 5204/1038/238 +f 5206/1043/241 5213/1046/241 5205/1041/241 +f 5204/1037/243 5211/1047/243 5203/1035/243 +f 5217/1048/240 5216/1049/240 5215/1050/240 +f 5219/1051/239 5230/1052/239 5222/1053/239 +f 5218/1054/241 5225/1055/241 5216/1049/241 +f 5215/1050/243 5223/1056/243 5217/1048/243 +f 5217/1048/239 5226/1057/239 5218/1054/239 +f 5216/1049/238 5224/1058/238 5215/1050/238 +f 5219/1059/242 5224/1060/242 5220/1061/242 +f 5220/1062/242 5225/1063/242 5221/1064/242 +f 5221/1065/242 5226/1066/242 5222/1067/242 +f 5222/1053/242 5223/1068/242 5219/1051/242 +f 5221/1064/238 5228/1069/238 5220/1062/238 +f 5222/1067/241 5229/1070/241 5221/1065/241 +f 5220/1061/243 5227/1071/243 5219/1059/243 +f 5233/1072/241 5232/1073/241 5231/1074/241 +f 5235/1075/239 5246/1076/239 5238/1077/239 +f 5234/1078/242 5241/1079/242 5232/1073/242 +f 5231/1074/240 5239/1080/240 5233/1072/240 +f 5233/1072/239 5242/1081/239 5234/1078/239 +f 5232/1073/238 5240/1082/238 5231/1074/238 +f 5235/1083/243 5240/1084/243 5236/1085/243 +f 5236/1086/243 5241/1087/243 5237/1088/243 +f 5237/1089/243 5242/1090/243 5238/1091/243 +f 5238/1077/243 5239/1092/243 5235/1075/243 +f 5237/1088/238 5244/1093/238 5236/1086/238 +f 5238/1091/242 5245/1094/242 5237/1089/242 +f 5236/1085/240 5243/1095/240 5235/1083/240 +f 5249/1096/241 5248/1097/241 5247/1098/241 +f 5251/1099/239 5262/1100/239 5254/1101/239 +f 5250/1102/242 5257/1103/242 5248/1097/242 +f 5247/1098/240 5255/1104/240 5249/1096/240 +f 5249/1096/239 5258/1105/239 5250/1102/239 +f 5248/1097/238 5256/1106/238 5247/1098/238 +f 5251/1107/243 5256/1108/243 5252/1109/243 +f 5252/1110/243 5257/1111/243 5253/1112/243 +f 5253/1113/243 5258/1114/243 5254/1115/243 +f 5254/1101/243 5255/1116/243 5251/1099/243 +f 5253/1112/238 5260/1117/238 5252/1110/238 +f 5254/1115/242 5261/1118/242 5253/1113/242 +f 5252/1109/240 5259/1119/240 5251/1107/240 +f 5265/1120/241 5264/1121/241 5263/1122/241 +f 5267/1123/239 5278/1124/239 5270/1125/239 +f 5266/1126/242 5273/1127/242 5264/1121/242 +f 5263/1122/240 5271/1128/240 5265/1120/240 +f 5265/1120/239 5274/1129/239 5266/1126/239 +f 5264/1121/238 5272/1130/238 5263/1122/238 +f 5267/1131/243 5272/1132/243 5268/1133/243 +f 5268/1134/243 5273/1135/243 5269/1136/243 +f 5269/1137/243 5274/1138/243 5270/1139/243 +f 5270/1125/243 5271/1140/243 5267/1123/243 +f 5269/1136/238 5276/1141/238 5268/1134/238 +f 5270/1139/242 5277/1142/242 5269/1137/242 +f 5268/1133/240 5275/1143/240 5267/1131/240 +f 5281/1144/241 5280/1145/241 5279/1146/241 +f 5283/1147/239 5294/1148/239 5286/1149/239 +f 5282/1150/242 5289/1151/242 5280/1145/242 +f 5279/1146/240 5287/1152/240 5281/1144/240 +f 5281/1144/239 5290/1153/239 5282/1150/239 +f 5280/1145/238 5288/1154/238 5279/1146/238 +f 5283/1155/243 5288/1156/243 5284/1157/243 +f 5284/1158/243 5289/1159/243 5285/1160/243 +f 5285/1161/243 5290/1162/243 5286/1163/243 +f 5286/1149/243 5287/1164/243 5283/1147/243 +f 5285/1160/238 5292/1165/238 5284/1158/238 +f 5286/1163/242 5293/1166/242 5285/1161/242 +f 5284/1157/240 5291/1167/240 5283/1155/240 +f 5297/1168/241 5296/1169/241 5295/1170/241 +f 5299/1171/239 5310/1172/239 5302/1173/239 +f 5298/1174/242 5305/1175/242 5296/1169/242 +f 5295/1170/240 5303/1176/240 5297/1168/240 +f 5297/1168/239 5306/1177/239 5298/1174/239 +f 5296/1169/238 5304/1178/238 5295/1170/238 +f 5299/1179/243 5304/1180/243 5300/1181/243 +f 5300/1182/243 5305/1183/243 5301/1184/243 +f 5301/1185/243 5306/1186/243 5302/1187/243 +f 5302/1173/243 5303/1188/243 5299/1171/243 +f 5301/1184/238 5308/1189/238 5300/1182/238 +f 5302/1187/242 5309/1190/242 5301/1185/242 +f 5300/1181/240 5307/1191/240 5299/1179/240 +f 5313/1192/243 5312/1193/243 5311/1194/243 +f 5315/1195/239 5326/1196/239 5318/1197/239 +f 5314/1198/240 5321/1199/240 5312/1193/240 +f 5311/1194/242 5319/1200/242 5313/1192/242 +f 5313/1192/239 5322/1201/239 5314/1198/239 +f 5312/1193/238 5320/1202/238 5311/1194/238 +f 5315/1203/241 5320/1204/241 5316/1205/241 +f 5316/1206/241 5321/1207/241 5317/1208/241 +f 5317/1209/241 5322/1210/241 5318/1211/241 +f 5318/1197/241 5319/1212/241 5315/1195/241 +f 5317/1208/238 5324/1213/238 5316/1206/238 +f 5318/1211/240 5325/1214/240 5317/1209/240 +f 5316/1205/242 5323/1215/242 5315/1203/242 +f 5329/1216/243 5328/1217/243 5327/1218/243 +f 5331/1219/239 5342/1220/239 5334/1221/239 +f 5330/1222/240 5337/1223/240 5328/1217/240 +f 5327/1218/242 5335/1224/242 5329/1216/242 +f 5329/1216/239 5338/1225/239 5330/1222/239 +f 5328/1217/238 5336/1226/238 5327/1218/238 +f 5331/1227/241 5336/1228/241 5332/1229/241 +f 5332/1230/241 5337/1231/241 5333/1232/241 +f 5333/1233/241 5338/1234/241 5334/1235/241 +f 5334/1221/241 5335/1236/241 5331/1219/241 +f 5333/1232/238 5340/1237/238 5332/1230/238 +f 5334/1235/240 5341/1238/240 5333/1233/240 +f 5332/1229/242 5339/1239/242 5331/1227/242 +f 5345/1240/243 5344/1241/243 5343/1242/243 +f 5350/1243/239 5355/1244/239 5358/1245/239 +f 5346/1246/240 5353/1247/240 5344/1241/240 +f 5343/1242/242 5351/1248/242 5345/1240/242 +f 5346/1246/239 5351/1249/239 5354/1250/239 +f 5344/1241/238 5352/1251/238 5343/1242/238 +f 5347/1252/241 5352/1253/241 5348/1254/241 +f 5348/1255/241 5353/1256/241 5349/1257/241 +f 5349/1258/241 5354/1259/241 5350/1260/241 +f 5350/1243/241 5351/1249/241 5347/1261/241 +f 5349/1257/238 5356/1262/238 5348/1255/238 +f 5350/1260/240 5357/1263/240 5349/1258/240 +f 5348/1254/242 5355/1264/242 5347/1252/242 +f 5361/1265/243 5360/1266/243 5359/1267/243 +f 5363/1268/239 5374/1269/239 5366/1270/239 +f 5362/1271/240 5369/1272/240 5360/1266/240 +f 5359/1267/242 5367/1273/242 5361/1265/242 +f 5361/1265/239 5370/1274/239 5362/1271/239 +f 5360/1266/238 5368/1275/238 5359/1267/238 +f 5363/1276/241 5368/1277/241 5364/1278/241 +f 5364/1279/241 5369/1280/241 5365/1281/241 +f 5365/1282/241 5370/1283/241 5366/1284/241 +f 5366/1270/241 5367/1285/241 5363/1268/241 +f 5365/1281/238 5372/1286/238 5364/1279/238 +f 5366/1284/240 5373/1287/240 5365/1282/240 +f 5364/1278/242 5371/1288/242 5363/1276/242 +f 5377/1289/243 5376/1290/243 5375/1291/243 +f 5379/1292/239 5390/1293/239 5382/1294/239 +f 5378/1295/240 5385/1296/240 5376/1290/240 +f 5375/1291/242 5383/1297/242 5377/1289/242 +f 5377/1289/239 5386/1298/239 5378/1295/239 +f 5376/1290/238 5384/1299/238 5375/1291/238 +f 5379/1300/241 5384/1301/241 5380/1302/241 +f 5380/1303/241 5385/1304/241 5381/1305/241 +f 5381/1306/241 5386/1307/241 5382/1308/241 +f 5382/1294/241 5383/1309/241 5379/1292/241 +f 5381/1305/238 5388/1310/238 5380/1303/238 +f 5382/1308/240 5389/1311/240 5381/1306/240 +f 5380/1302/242 5387/1312/242 5379/1300/242 +f 3024/207/238 3023/256/238 3025/208/238 +f 3027/210/238 3029/1313/238 3030/211/238 +f 3034/213/239 3033/1314/239 3031/214/239 +f 3027/216/240 3031/220/240 3033/217/240 +f 3029/218/241 3033/217/241 3034/213/241 +f 3030/211/242 3034/213/242 3032/215/242 +f 3028/219/243 3032/1315/243 3031/220/243 +f 3035/221/238 3037/1316/238 3038/222/238 +f 3042/224/239 3041/1317/239 3039/225/239 +f 3035/227/240 3039/231/240 3041/228/240 +f 3037/229/241 3041/228/241 3042/224/241 +f 3038/222/242 3042/224/242 3040/226/242 +f 3036/230/243 3040/1318/243 3039/231/243 +f 3043/232/238 3045/1319/238 3046/233/238 +f 3050/235/239 3049/1320/239 3047/236/239 +f 3043/238/240 3047/242/240 3049/239/240 +f 3045/240/241 3049/239/241 3050/235/241 +f 3046/233/242 3050/235/242 3048/237/242 +f 3044/241/243 3048/1321/243 3047/242/243 +f 3051/243/238 3053/1322/238 3054/244/238 +f 3058/246/239 3057/1323/239 3055/247/239 +f 3051/249/240 3055/253/240 3057/250/240 +f 3053/251/241 3057/250/241 3058/246/241 +f 3054/244/242 3058/246/242 3056/248/242 +f 3052/252/243 3056/1324/243 3055/253/243 +f 3061/254/243 3062/257/243 3026/209/243 +f 3059/255/241 3060/1325/241 3023/256/241 +f 3062/257/239 3061/254/239 3060/258/239 +f 3063/260/238 3064/265/238 3065/261/238 +f 3069/263/241 3070/266/241 3066/262/241 +f 3067/264/243 3068/1326/243 3064/265/243 +f 3070/266/239 3069/263/239 3068/267/239 +f 3071/269/238 3072/274/238 3073/270/238 +f 3077/272/242 3078/275/242 3074/271/242 +f 3075/273/240 3076/1327/240 3072/274/240 +f 3078/275/239 3077/272/239 3076/276/239 +f 3079/278/238 3080/283/238 3081/279/238 +f 3085/281/240 3086/284/240 3082/280/240 +f 3083/282/242 3084/1328/242 3080/283/242 +f 3086/284/239 3085/281/239 3084/285/239 +f 3091/287/242 3087/294/242 3088/288/242 +f 3093/290/243 3088/288/243 3089/291/243 +f 3092/293/241 3090/297/241 3087/294/241 +f 3094/296/240 3089/291/240 3090/297/240 +f 3088/288/239 3087/294/239 3090/297/239 +f 3092/299/238 3091/287/238 3093/289/238 +f 3099/301/242 3095/308/242 3096/302/242 +f 3101/304/243 3096/302/243 3097/305/243 +f 3100/307/241 3098/311/241 3095/308/241 +f 3102/310/240 3097/305/240 3098/311/240 +f 3096/302/239 3095/308/239 3098/311/239 +f 3100/313/238 3099/301/238 3101/303/238 +f 3105/315/238 3106/328/238 3104/316/238 +f 3109/318/239 3110/324/239 3107/319/239 +f 3103/321/240 3108/320/240 3107/319/240 +f 3105/323/241 3107/319/241 3110/324/241 +f 3104/326/243 3109/318/243 3108/320/243 +f 3106/328/242 3110/324/242 3109/318/242 +f 3115/329/242 3111/336/242 3112/330/242 +f 3117/332/243 3112/330/243 3113/333/243 +f 3116/335/241 3114/339/241 3111/336/241 +f 3118/338/240 3113/333/240 3114/339/240 +f 3112/330/239 3111/336/239 3114/339/239 +f 3116/341/238 3115/329/238 3117/331/238 +f 3121/343/238 3122/356/238 3120/344/238 +f 3125/346/239 3126/352/239 3123/347/239 +f 3119/349/240 3124/348/240 3123/347/240 +f 3121/351/241 3123/347/241 3126/352/241 +f 3120/354/243 3125/346/243 3124/348/243 +f 3122/356/242 3126/352/242 3125/346/242 +f 3129/357/242 3130/363/242 3128/358/242 +f 3131/360/239 3139/1329/239 3142/361/239 +f 3130/363/243 3138/375/243 3137/364/243 +f 3127/359/241 3136/369/241 3135/365/241 +f 3129/357/239 3135/377/239 3138/366/239 +f 3128/358/238 3137/372/238 3136/367/238 +f 3131/368/240 3135/365/240 3136/369/240 +f 3132/371/240 3136/367/240 3137/372/240 +f 3133/374/240 3137/364/240 3138/375/240 +f 3134/362/240 3138/366/240 3135/377/240 +f 3133/373/238 3141/1330/238 3140/378/238 +f 3134/376/243 3142/1331/243 3141/379/243 +f 3132/370/241 3140/1332/241 3139/380/241 +f 3152/383/238 3154/1333/238 3153/1334/238 +f 3153/1334/238 3143/1335/238 3152/383/238 +f 3143/1335/238 3144/1336/238 3152/383/238 +f 3144/1336/238 3145/1337/238 3146/381/238 +f 3146/381/238 3147/1338/238 3148/382/238 +f 3148/382/238 3149/1339/238 3150/1340/238 +f 3150/1340/238 3151/1341/238 3148/382/238 +f 3151/1341/238 3152/383/238 3148/382/238 +f 3144/1336/238 3146/381/238 3152/383/238 +f 3656/1342/239 3657/1343/239 3658/384/239 +f 3658/384/239 3659/1344/239 3660/385/239 +f 3660/385/239 3661/1345/239 3664/386/239 +f 3661/1345/239 3662/1346/239 3664/386/239 +f 3662/1346/239 3663/1347/239 3664/386/239 +f 3664/386/239 3665/1348/239 3666/1349/239 +f 3666/1349/239 3667/1350/239 3664/386/239 +f 3667/1350/239 3656/1342/239 3664/386/239 +f 3656/1342/239 3658/384/239 3664/386/239 +f 3157/387/238 3158/390/238 3156/388/238 +f 3158/390/243 3162/396/243 3161/391/243 +f 3155/389/241 3160/1351/241 3159/392/241 +f 3157/387/242 3159/1352/242 3162/393/242 +f 3156/388/240 3161/1353/240 3160/394/240 +f 3160/395/239 3161/391/239 3162/396/239 +f 3165/398/238 3166/401/238 3164/399/238 +f 3166/401/243 3170/407/243 3169/402/243 +f 3163/400/241 3168/1354/241 3167/403/241 +f 3165/398/242 3167/1355/242 3170/404/242 +f 3164/399/240 3169/1356/240 3168/405/240 +f 3168/406/239 3169/402/239 3170/407/239 +f 3173/409/238 3174/412/238 3172/410/238 +f 3174/412/243 3178/418/243 3177/413/243 +f 3171/411/241 3176/1357/241 3175/414/241 +f 3173/409/242 3175/1358/242 3178/415/242 +f 3172/410/240 3177/1359/240 3176/416/240 +f 3181/417/239 3182/426/239 3178/418/239 +f 3182/420/243 3186/432/243 3185/421/243 +f 3179/423/239 3181/417/239 3175/419/239 +f 3180/425/239 3179/423/239 3176/424/239 +f 3182/426/239 3180/425/239 3177/413/239 +f 3185/421/239 3186/432/239 3183/427/239 +f 3179/429/241 3184/428/241 3183/427/241 +f 3181/431/242 3183/427/242 3186/432/242 +f 3180/434/240 3185/421/240 3184/428/240 +f 3193/436/239 3194/446/239 3191/437/239 +f 3188/439/240 3193/436/240 3192/438/240 +f 3190/441/243 3194/446/243 3193/436/243 +f 3187/443/241 3192/438/241 3191/437/241 +f 3189/445/242 3191/437/242 3194/446/242 +f 3212/448/239 3211/480/239 3228/449/239 +f 3213/451/239 3212/448/239 3227/450/239 +f 3213/451/239 3229/452/239 3230/453/239 +f 3215/455/239 3214/454/239 3230/453/239 +f 3215/455/239 3231/456/239 3232/457/239 +f 3216/458/239 3232/457/239 3233/459/239 +f 3218/461/239 3217/460/239 3233/459/239 +f 3219/463/239 3218/461/239 3234/462/239 +f 3220/465/239 3219/1360/239 3235/466/239 +f 3221/468/239 3220/465/239 3236/467/239 +f 3222/470/239 3221/468/239 3237/469/239 +f 3223/472/239 3222/470/239 3238/471/239 +f 3223/472/239 3239/473/239 3240/474/239 +f 3224/475/239 3240/474/239 3241/476/239 +f 3226/478/239 3225/477/239 3241/476/239 +f 3211/480/239 3226/478/239 3242/479/239 +f 3260/481/239 3262/1361/239 3261/482/239 +f 3264/484/239 3266/1362/239 3265/485/239 +f 3268/487/239 3270/1363/239 3269/488/239 +f 3273/490/239 3271/1364/239 3272/491/239 +f 3276/493/239 3278/1365/239 3277/494/239 +f 3280/496/239 3282/1366/239 3281/497/239 +f 3289/499/239 3290/509/239 3287/500/239 +f 3284/502/240 3289/499/240 3288/501/240 +f 3286/504/243 3290/509/243 3289/499/243 +f 3283/506/241 3288/501/241 3287/500/241 +f 3285/508/242 3287/500/242 3290/509/242 +f 3319/511/239 3321/1367/239 3320/512/239 +f 3323/514/239 3325/1368/239 3324/515/239 +f 3327/517/239 3329/1369/239 3328/518/239 +f 3332/520/239 3330/1370/239 3331/521/239 +f 3335/523/239 3337/1371/239 3336/524/239 +f 3339/526/239 3341/1372/239 3340/527/239 +f 3402/529/239 3403/537/239 3400/530/239 +f 3399/532/243 3403/537/243 3402/529/243 +f 3396/534/241 3401/531/241 3400/530/241 +f 3398/536/242 3400/530/242 3403/537/242 +f 3397/539/240 3402/529/240 3401/531/240 +f 3654/541/239 3655/549/239 3652/542/239 +f 3651/544/243 3655/549/243 3654/541/243 +f 3648/546/241 3653/543/241 3652/542/241 +f 3650/548/242 3652/542/242 3655/549/242 +f 3649/551/240 3654/541/240 3653/543/240 +f 3300/553/239 3301/585/239 4080/554/239 +f 3299/556/239 3300/553/239 4079/555/239 +f 3299/556/239 4081/557/239 4082/558/239 +f 3297/560/239 3298/559/239 4082/558/239 +f 3297/560/239 4083/561/239 4084/562/239 +f 3295/564/239 3296/563/239 4084/562/239 +f 3294/566/239 3295/564/239 4085/565/239 +f 3293/568/239 3294/566/239 4086/567/239 +f 3292/570/239 3293/1373/239 4087/571/239 +f 3291/573/239 3292/570/239 4088/572/239 +f 4074/575/239 3291/573/239 4089/574/239 +f 4075/577/239 4074/575/239 4090/576/239 +f 4075/577/239 4091/578/239 4092/579/239 +f 4076/580/239 4092/579/239 4093/581/239 +f 4078/583/239 4077/582/239 4093/581/239 +f 3301/585/239 4078/583/239 4094/584/239 +f 4120/588/238 4122/1374/238 4121/1375/238 +f 4121/1375/238 4111/1376/238 4120/588/238 +f 4111/1376/238 4112/1377/238 4120/588/238 +f 4112/1377/238 4113/1378/238 4114/586/238 +f 4114/586/238 4115/1379/238 4116/587/238 +f 4116/587/238 4117/1380/238 4120/588/238 +f 4117/1380/238 4118/1381/238 4120/588/238 +f 4118/1381/238 4119/1382/238 4120/588/238 +f 4112/1377/238 4114/586/238 4120/588/238 +f 4123/1383/239 4124/1384/239 4125/1385/239 +f 4125/1385/239 4126/1386/239 4127/589/239 +f 4127/589/239 4128/1387/239 4129/590/239 +f 4129/590/239 4130/1388/239 4131/591/239 +f 4131/591/239 4132/1389/239 4133/1390/239 +f 4133/1390/239 4134/1391/239 4131/591/239 +f 4134/1391/239 4123/1383/239 4131/591/239 +f 4123/1383/239 4125/1385/239 4131/591/239 +f 4125/1385/239 4127/589/239 4131/591/239 +f 4144/594/238 4146/1392/238 4145/1393/238 +f 4145/1393/238 4135/1394/238 4144/594/238 +f 4135/1394/238 4136/1395/238 4144/594/238 +f 4136/1395/238 4137/1396/238 4138/592/238 +f 4138/592/238 4139/1397/238 4140/593/238 +f 4140/593/238 4141/1398/238 4142/1399/238 +f 4142/1399/238 4143/1400/238 4140/593/238 +f 4143/1400/238 4144/594/238 4140/593/238 +f 4136/1395/238 4138/592/238 4144/594/238 +f 4147/597/239 4148/1401/239 4149/1402/239 +f 4149/1402/239 4150/1403/239 4151/595/239 +f 4151/595/239 4152/1404/239 4153/1405/239 +f 4153/1405/239 4154/1406/239 4155/596/239 +f 4155/596/239 4156/1407/239 4157/1408/239 +f 4157/1408/239 4158/1409/239 4155/596/239 +f 4158/1409/239 4147/597/239 4155/596/239 +f 4147/597/239 4149/1402/239 4151/595/239 +f 4151/595/239 4153/1405/239 4155/596/239 +f 4168/600/238 4170/1410/238 4169/1411/238 +f 4169/1411/238 4159/1412/238 4168/600/238 +f 4159/1412/238 4160/1413/238 4168/600/238 +f 4160/1413/238 4161/1414/238 4162/1415/238 +f 4162/1415/238 4163/1416/238 4164/598/238 +f 4164/598/238 4165/1417/238 4166/599/238 +f 4166/599/238 4167/1418/238 4168/600/238 +f 4160/1413/238 4162/1415/238 4168/600/238 +f 4162/1415/238 4164/598/238 4168/600/238 +f 4171/1419/239 4172/1420/239 4173/1421/239 +f 4173/1421/239 4174/1422/239 4175/601/239 +f 4175/601/239 4176/1423/239 4177/602/239 +f 4177/602/239 4178/1424/239 4179/603/239 +f 4179/603/239 4180/1425/239 4181/1426/239 +f 4181/1426/239 4182/1427/239 4179/603/239 +f 4182/1427/239 4171/1419/239 4179/603/239 +f 4171/1419/239 4173/1421/239 4179/603/239 +f 4173/1421/239 4175/601/239 4179/603/239 +f 4192/606/238 4194/1428/238 4193/1429/238 +f 4193/1429/238 4183/1430/238 4192/606/238 +f 4183/1430/238 4184/1431/238 4192/606/238 +f 4184/1431/238 4185/1432/238 4186/1433/238 +f 4186/1433/238 4187/1434/238 4188/604/238 +f 4188/604/238 4189/1435/238 4190/605/238 +f 4190/605/238 4191/1436/238 4192/606/238 +f 4184/1431/238 4186/1433/238 4192/606/238 +f 4186/1433/238 4188/604/238 4192/606/238 +f 4195/1437/239 4196/1438/239 4197/1439/239 +f 4197/1439/239 4198/1440/239 4199/607/239 +f 4199/607/239 4200/1441/239 4201/608/239 +f 4201/608/239 4202/1442/239 4203/609/239 +f 4203/609/239 4204/1443/239 4205/1444/239 +f 4205/1444/239 4206/1445/239 4203/609/239 +f 4206/1445/239 4195/1437/239 4203/609/239 +f 4195/1437/239 4197/1439/239 4203/609/239 +f 4197/1439/239 4199/607/239 4203/609/239 +f 4216/612/238 4218/1446/238 4217/1447/238 +f 4217/1447/238 4207/1448/238 4216/612/238 +f 4207/1448/238 4208/1449/238 4216/612/238 +f 4208/1449/238 4209/1450/238 4210/610/238 +f 4210/610/238 4211/1451/238 4212/611/238 +f 4212/611/238 4213/1452/238 4214/1453/238 +f 4214/1453/238 4215/1454/238 4212/611/238 +f 4215/1454/238 4216/612/238 4212/611/238 +f 4208/1449/238 4210/610/238 4216/612/238 +f 4219/615/239 4220/1455/239 4221/1456/239 +f 4221/1456/239 4222/1457/239 4219/615/239 +f 4222/1457/239 4223/613/239 4219/615/239 +f 4223/613/239 4224/1458/239 4225/1459/239 +f 4225/1459/239 4226/1460/239 4223/613/239 +f 4226/1460/239 4227/614/239 4223/613/239 +f 4227/614/239 4228/1461/239 4229/1462/239 +f 4229/1462/239 4230/1463/239 4227/614/239 +f 4230/1463/239 4219/615/239 4227/614/239 +f 4240/618/238 4242/1464/238 4241/1465/238 +f 4241/1465/238 4231/1466/238 4240/618/238 +f 4231/1466/238 4232/1467/238 4240/618/238 +f 4232/1467/238 4233/1468/238 4234/616/238 +f 4234/616/238 4235/1469/238 4236/617/238 +f 4236/617/238 4237/1470/238 4240/618/238 +f 4237/1470/238 4238/1471/238 4240/618/238 +f 4238/1471/238 4239/1472/238 4240/618/238 +f 4232/1467/238 4234/616/238 4240/618/238 +f 4243/621/239 4244/1473/239 4247/619/239 +f 4244/1473/239 4245/1474/239 4247/619/239 +f 4245/1474/239 4246/1475/239 4247/619/239 +f 4247/619/239 4248/1476/239 4251/620/239 +f 4248/1476/239 4249/1477/239 4251/620/239 +f 4249/1477/239 4250/1478/239 4251/620/239 +f 4251/620/239 4252/1479/239 4253/1480/239 +f 4253/1480/239 4254/1481/239 4251/620/239 +f 4254/1481/239 4243/621/239 4251/620/239 +f 4264/624/238 4266/1482/238 4265/1483/238 +f 4265/1483/238 4255/1484/238 4264/624/238 +f 4255/1484/238 4256/1485/238 4264/624/238 +f 4256/1485/238 4257/1486/238 4258/622/238 +f 4258/622/238 4259/1487/238 4260/623/238 +f 4260/623/238 4261/1488/238 4262/1489/238 +f 4262/1489/238 4263/1490/238 4260/623/238 +f 4263/1490/238 4264/624/238 4260/623/238 +f 4256/1485/238 4258/622/238 4264/624/238 +f 4267/1491/239 4268/1492/239 4269/1493/239 +f 4269/1493/239 4270/1494/239 4271/625/239 +f 4271/625/239 4272/1495/239 4273/626/239 +f 4273/626/239 4274/1496/239 4275/627/239 +f 4275/627/239 4276/1497/239 4277/1498/239 +f 4277/1498/239 4278/1499/239 4275/627/239 +f 4278/1499/239 4267/1491/239 4275/627/239 +f 4267/1491/239 4269/1493/239 4275/627/239 +f 4269/1493/239 4271/625/239 4275/627/239 +f 4288/630/238 4290/1500/238 4289/1501/238 +f 4289/1501/238 4279/1502/238 4288/630/238 +f 4279/1502/238 4280/1503/238 4288/630/238 +f 4280/1503/238 4281/1504/238 4282/628/238 +f 4282/628/238 4283/1505/238 4284/629/238 +f 4284/629/238 4285/1506/238 4286/1507/238 +f 4286/1507/238 4287/1508/238 4284/629/238 +f 4287/1508/238 4288/630/238 4284/629/238 +f 4280/1503/238 4282/628/238 4288/630/238 +f 4291/1509/239 4292/1510/239 4293/631/239 +f 4293/631/239 4294/1511/239 4295/632/239 +f 4295/632/239 4296/1512/239 4297/1513/239 +f 4297/1513/239 4298/1514/239 4295/632/239 +f 4298/1514/239 4299/633/239 4295/632/239 +f 4299/633/239 4300/1515/239 4301/1516/239 +f 4301/1516/239 4302/1517/239 4299/633/239 +f 4302/1517/239 4291/1509/239 4299/633/239 +f 4291/1509/239 4293/631/239 4299/633/239 +f 4312/636/238 4314/1518/238 4313/1519/238 +f 4313/1519/238 4303/1520/238 4304/1521/238 +f 4304/1521/238 4305/1522/238 4306/634/238 +f 4306/634/238 4307/1523/238 4308/635/238 +f 4308/635/238 4309/1524/238 4312/636/238 +f 4309/1524/238 4310/1525/238 4312/636/238 +f 4310/1525/238 4311/1526/238 4312/636/238 +f 4312/636/238 4313/1519/238 4304/1521/238 +f 4304/1521/238 4306/634/238 4312/636/238 +f 4315/639/239 4316/1527/239 4317/1528/239 +f 4317/1528/239 4318/1529/239 4319/637/239 +f 4319/637/239 4320/1530/239 4323/638/239 +f 4320/1530/239 4321/1531/239 4323/638/239 +f 4321/1531/239 4322/1532/239 4323/638/239 +f 4323/638/239 4324/1533/239 4315/639/239 +f 4324/1533/239 4325/1534/239 4315/639/239 +f 4325/1534/239 4326/1535/239 4315/639/239 +f 4315/639/239 4317/1528/239 4319/637/239 +f 4332/640/239 4333/644/239 4334/641/239 +f 4330/643/243 4334/641/243 4333/644/243 +f 4327/646/241 4332/640/241 4331/642/241 +f 4329/648/242 4331/642/242 4334/641/242 +f 4328/650/240 4333/644/240 4332/640/240 +f 4341/652/239 4342/660/239 4339/653/239 +f 4338/655/243 4342/660/243 4341/652/243 +f 4335/657/241 4340/654/241 4339/653/241 +f 4337/659/242 4339/653/242 4342/660/242 +f 4336/662/240 4341/652/240 4340/654/240 +f 4349/664/239 4350/672/239 4347/665/239 +f 4346/667/243 4350/672/243 4349/664/243 +f 4343/669/241 4348/666/241 4347/665/241 +f 4345/671/242 4347/665/242 4350/672/242 +f 4344/674/240 4349/664/240 4348/666/240 +f 4357/676/239 4358/684/239 4355/677/239 +f 4354/679/243 4358/684/243 4357/676/243 +f 4351/681/241 4356/678/241 4355/677/241 +f 4353/683/242 4355/677/242 4358/684/242 +f 4352/686/240 4357/676/240 4356/678/240 +f 4365/688/239 4366/696/239 4363/689/239 +f 4362/691/243 4366/696/243 4365/688/243 +f 4359/693/241 4364/690/241 4363/689/241 +f 4361/695/242 4363/689/242 4366/696/242 +f 4360/698/240 4365/688/240 4364/690/240 +f 4372/700/239 4373/704/239 4374/701/239 +f 4370/703/243 4374/701/243 4373/704/243 +f 4367/706/241 4372/700/241 4371/702/241 +f 4369/708/242 4371/702/242 4374/701/242 +f 4368/710/240 4373/704/240 4372/700/240 +f 4381/712/239 4382/720/239 4379/713/239 +f 4378/715/243 4382/720/243 4381/712/243 +f 4375/717/241 4380/714/241 4379/713/241 +f 4377/719/242 4379/713/242 4382/720/242 +f 4376/722/240 4381/712/240 4380/714/240 +f 4389/724/239 4390/732/239 4387/725/239 +f 4386/727/243 4390/732/243 4389/724/243 +f 4383/729/241 4388/726/241 4387/725/241 +f 4385/731/242 4387/725/242 4390/732/242 +f 4384/734/240 4389/724/240 4388/726/240 +f 4397/736/239 4398/744/239 4395/737/239 +f 4394/739/243 4398/744/243 4397/736/243 +f 4391/741/241 4396/738/241 4395/737/241 +f 4393/743/242 4395/737/242 4398/744/242 +f 4392/746/240 4397/736/240 4396/738/240 +f 4405/748/239 4406/756/239 4403/749/239 +f 4402/751/243 4406/756/243 4405/748/243 +f 4399/753/241 4404/750/241 4403/749/241 +f 4401/755/242 4403/749/242 4406/756/242 +f 4400/758/240 4405/748/240 4404/750/240 +f 4413/760/239 4414/768/239 4411/761/239 +f 4410/763/243 4414/768/243 4413/760/243 +f 4407/765/241 4412/762/241 4411/761/241 +f 4409/767/242 4411/761/242 4414/768/242 +f 4408/770/240 4413/760/240 4412/762/240 +f 4420/772/239 4421/776/239 4422/773/239 +f 4418/775/243 4422/773/243 4421/776/243 +f 4415/778/241 4420/772/241 4419/774/241 +f 4417/780/242 4419/774/242 4422/773/242 +f 4416/782/240 4421/776/240 4420/772/240 +f 4429/784/239 4430/792/239 4427/785/239 +f 4426/787/243 4430/792/243 4429/784/243 +f 4423/789/241 4428/786/241 4427/785/241 +f 4425/791/242 4427/785/242 4430/792/242 +f 4424/794/240 4429/784/240 4428/786/240 +f 4437/796/239 4438/804/239 4435/797/239 +f 4434/799/243 4438/804/243 4437/796/243 +f 4431/801/241 4436/798/241 4435/797/241 +f 4433/803/242 4435/797/242 4438/804/242 +f 4432/806/240 4437/796/240 4436/798/240 +f 4444/808/239 4445/812/239 4446/809/239 +f 4442/811/243 4446/809/243 4445/812/243 +f 4439/814/241 4444/808/241 4443/810/241 +f 4441/816/242 4443/810/242 4446/809/242 +f 4440/818/240 4445/812/240 4444/808/240 +f 4453/820/239 4454/828/239 4451/821/239 +f 4450/823/243 4454/828/243 4453/820/243 +f 4447/825/241 4452/822/241 4451/821/241 +f 4449/827/242 4451/821/242 4454/828/242 +f 4448/830/240 4453/820/240 4452/822/240 +f 4461/832/239 4462/840/239 4459/833/239 +f 4458/835/243 4462/840/243 4461/832/243 +f 4455/837/241 4460/834/241 4459/833/241 +f 4457/839/242 4459/833/242 4462/840/242 +f 4456/842/240 4461/832/240 4460/834/240 +f 4469/844/239 4470/852/239 4467/845/239 +f 4466/847/243 4470/852/243 4469/844/243 +f 4463/849/241 4468/846/241 4467/845/241 +f 4465/851/242 4467/845/242 4470/852/242 +f 4464/854/240 4469/844/240 4468/846/240 +f 5089/856/242 5090/862/242 5088/857/242 +f 5091/859/239 5099/1536/239 5102/860/239 +f 5090/862/243 5098/874/243 5097/863/243 +f 5087/858/241 5096/868/241 5095/864/241 +f 5089/856/239 5095/876/239 5098/865/239 +f 5088/857/238 5097/871/238 5096/866/238 +f 5091/867/240 5095/864/240 5096/868/240 +f 5092/870/240 5096/866/240 5097/871/240 +f 5093/873/240 5097/863/240 5098/874/240 +f 5094/861/240 5098/865/240 5095/876/240 +f 5093/872/238 5101/1537/238 5100/877/238 +f 5094/875/243 5102/1538/243 5101/878/243 +f 5092/869/241 5100/1539/241 5099/879/241 +f 5105/880/242 5106/886/242 5104/881/242 +f 5107/883/239 5115/1540/239 5118/884/239 +f 5106/886/243 5114/898/243 5113/887/243 +f 5103/882/241 5112/892/241 5111/888/241 +f 5105/880/239 5111/900/239 5114/889/239 +f 5104/881/238 5113/895/238 5112/890/238 +f 5107/891/240 5111/888/240 5112/892/240 +f 5108/894/240 5112/890/240 5113/895/240 +f 5109/897/240 5113/887/240 5114/898/240 +f 5110/885/240 5114/889/240 5111/900/240 +f 5109/896/238 5117/1541/238 5116/901/238 +f 5110/899/243 5118/1542/243 5117/902/243 +f 5108/893/241 5116/1543/241 5115/903/241 +f 5121/904/242 5122/910/242 5120/905/242 +f 5123/907/239 5131/1544/239 5134/908/239 +f 5122/910/243 5130/922/243 5129/911/243 +f 5119/906/241 5128/916/241 5127/912/241 +f 5121/904/239 5127/924/239 5130/913/239 +f 5120/905/238 5129/919/238 5128/914/238 +f 5123/915/240 5127/912/240 5128/916/240 +f 5124/918/240 5128/914/240 5129/919/240 +f 5125/921/240 5129/911/240 5130/922/240 +f 5126/909/240 5130/913/240 5127/924/240 +f 5125/920/238 5133/1545/238 5132/925/238 +f 5126/923/243 5134/1546/243 5133/926/243 +f 5124/917/241 5132/1547/241 5131/927/241 +f 5137/928/242 5138/934/242 5136/929/242 +f 5139/931/239 5147/1548/239 5150/932/239 +f 5138/934/243 5146/946/243 5145/935/243 +f 5135/930/241 5144/940/241 5143/936/241 +f 5137/928/239 5143/948/239 5146/937/239 +f 5136/929/238 5145/943/238 5144/938/238 +f 5139/939/240 5143/936/240 5144/940/240 +f 5140/942/240 5144/938/240 5145/943/240 +f 5141/945/240 5145/935/240 5146/946/240 +f 5142/933/240 5146/937/240 5143/948/240 +f 5141/944/238 5149/1549/238 5148/949/238 +f 5142/947/243 5150/1550/243 5149/950/243 +f 5140/941/241 5148/1551/241 5147/951/241 +f 5153/952/240 5154/958/240 5152/953/240 +f 5155/955/239 5163/1552/239 5166/956/239 +f 5154/958/241 5162/971/241 5161/959/241 +f 5151/954/243 5160/965/243 5159/960/243 +f 5154/958/239 5153/952/239 5159/961/239 +f 5152/953/238 5161/968/238 5160/963/238 +f 5155/964/242 5159/960/242 5160/965/242 +f 5156/967/242 5160/963/242 5161/968/242 +f 5157/970/242 5161/959/242 5162/971/242 +f 5158/957/242 5162/962/242 5159/961/242 +f 5157/969/238 5165/1553/238 5164/973/238 +f 5158/972/241 5166/1554/241 5165/974/241 +f 5156/966/243 5164/1555/243 5163/975/243 +f 5169/976/240 5170/982/240 5168/977/240 +f 5171/979/239 5179/1556/239 5182/980/239 +f 5170/982/241 5178/994/241 5177/983/241 +f 5167/978/243 5176/988/243 5175/984/243 +f 5169/976/239 5175/996/239 5178/985/239 +f 5168/977/238 5177/991/238 5176/986/238 +f 5171/987/242 5175/984/242 5176/988/242 +f 5172/990/242 5176/986/242 5177/991/242 +f 5173/993/242 5177/983/242 5178/994/242 +f 5174/981/242 5178/985/242 5175/996/242 +f 5173/992/238 5181/1557/238 5180/997/238 +f 5174/995/241 5182/1558/241 5181/998/241 +f 5172/989/243 5180/1559/243 5179/999/243 +f 5185/1000/240 5186/1006/240 5184/1001/240 +f 5187/1003/239 5195/1560/239 5198/1004/239 +f 5186/1006/241 5194/1018/241 5193/1007/241 +f 5183/1002/243 5192/1012/243 5191/1008/243 +f 5185/1000/239 5191/1020/239 5194/1009/239 +f 5184/1001/238 5193/1015/238 5192/1010/238 +f 5187/1011/242 5191/1008/242 5192/1012/242 +f 5188/1014/242 5192/1010/242 5193/1015/242 +f 5189/1017/242 5193/1007/242 5194/1018/242 +f 5190/1005/242 5194/1009/242 5191/1020/242 +f 5189/1016/238 5197/1561/238 5196/1021/238 +f 5190/1019/241 5198/1562/241 5197/1022/241 +f 5188/1013/243 5196/1563/243 5195/1023/243 +f 5201/1024/240 5202/1030/240 5200/1025/240 +f 5203/1027/239 5211/1564/239 5214/1028/239 +f 5202/1030/241 5210/1042/241 5209/1031/241 +f 5199/1026/243 5208/1036/243 5207/1032/243 +f 5201/1024/239 5207/1044/239 5210/1033/239 +f 5200/1025/238 5209/1039/238 5208/1034/238 +f 5203/1035/242 5207/1032/242 5208/1036/242 +f 5204/1038/242 5208/1034/242 5209/1039/242 +f 5205/1041/242 5209/1031/242 5210/1042/242 +f 5206/1029/242 5210/1033/242 5207/1044/242 +f 5205/1040/238 5213/1565/238 5212/1045/238 +f 5206/1043/241 5214/1566/241 5213/1046/241 +f 5204/1037/243 5212/1567/243 5211/1047/243 +f 5217/1048/240 5218/1054/240 5216/1049/240 +f 5219/1051/239 5227/1568/239 5230/1052/239 +f 5218/1054/241 5226/1066/241 5225/1055/241 +f 5215/1050/243 5224/1060/243 5223/1056/243 +f 5217/1048/239 5223/1068/239 5226/1057/239 +f 5216/1049/238 5225/1063/238 5224/1058/238 +f 5219/1059/242 5223/1056/242 5224/1060/242 +f 5220/1062/242 5224/1058/242 5225/1063/242 +f 5221/1065/242 5225/1055/242 5226/1066/242 +f 5222/1053/242 5226/1057/242 5223/1068/242 +f 5221/1064/238 5229/1569/238 5228/1069/238 +f 5222/1067/241 5230/1570/241 5229/1070/241 +f 5220/1061/243 5228/1571/243 5227/1071/243 +f 5233/1072/241 5234/1078/241 5232/1073/241 +f 5235/1075/239 5243/1572/239 5246/1076/239 +f 5234/1078/242 5242/1090/242 5241/1079/242 +f 5231/1074/240 5240/1084/240 5239/1080/240 +f 5233/1072/239 5239/1092/239 5242/1081/239 +f 5232/1073/238 5241/1087/238 5240/1082/238 +f 5235/1083/243 5239/1080/243 5240/1084/243 +f 5236/1086/243 5240/1082/243 5241/1087/243 +f 5237/1089/243 5241/1079/243 5242/1090/243 +f 5238/1077/243 5242/1081/243 5239/1092/243 +f 5237/1088/238 5245/1573/238 5244/1093/238 +f 5238/1091/242 5246/1574/242 5245/1094/242 +f 5236/1085/240 5244/1575/240 5243/1095/240 +f 5249/1096/241 5250/1102/241 5248/1097/241 +f 5251/1099/239 5259/1576/239 5262/1100/239 +f 5250/1102/242 5258/1114/242 5257/1103/242 +f 5247/1098/240 5256/1108/240 5255/1104/240 +f 5249/1096/239 5255/1116/239 5258/1105/239 +f 5248/1097/238 5257/1111/238 5256/1106/238 +f 5251/1107/243 5255/1104/243 5256/1108/243 +f 5252/1110/243 5256/1106/243 5257/1111/243 +f 5253/1113/243 5257/1103/243 5258/1114/243 +f 5254/1101/243 5258/1105/243 5255/1116/243 +f 5253/1112/238 5261/1577/238 5260/1117/238 +f 5254/1115/242 5262/1578/242 5261/1118/242 +f 5252/1109/240 5260/1579/240 5259/1119/240 +f 5265/1120/241 5266/1126/241 5264/1121/241 +f 5267/1123/239 5275/1580/239 5278/1124/239 +f 5266/1126/242 5274/1138/242 5273/1127/242 +f 5263/1122/240 5272/1132/240 5271/1128/240 +f 5265/1120/239 5271/1140/239 5274/1129/239 +f 5264/1121/238 5273/1135/238 5272/1130/238 +f 5267/1131/243 5271/1128/243 5272/1132/243 +f 5268/1134/243 5272/1130/243 5273/1135/243 +f 5269/1137/243 5273/1127/243 5274/1138/243 +f 5270/1125/243 5274/1129/243 5271/1140/243 +f 5269/1136/238 5277/1581/238 5276/1141/238 +f 5270/1139/242 5278/1582/242 5277/1142/242 +f 5268/1133/240 5276/1583/240 5275/1143/240 +f 5281/1144/241 5282/1150/241 5280/1145/241 +f 5283/1147/239 5291/1584/239 5294/1148/239 +f 5282/1150/242 5290/1162/242 5289/1151/242 +f 5279/1146/240 5288/1156/240 5287/1152/240 +f 5281/1144/239 5287/1164/239 5290/1153/239 +f 5280/1145/238 5289/1159/238 5288/1154/238 +f 5283/1155/243 5287/1152/243 5288/1156/243 +f 5284/1158/243 5288/1154/243 5289/1159/243 +f 5285/1161/243 5289/1151/243 5290/1162/243 +f 5286/1149/243 5290/1153/243 5287/1164/243 +f 5285/1160/238 5293/1585/238 5292/1165/238 +f 5286/1163/242 5294/1586/242 5293/1166/242 +f 5284/1157/240 5292/1587/240 5291/1167/240 +f 5297/1168/241 5298/1174/241 5296/1169/241 +f 5299/1171/239 5307/1588/239 5310/1172/239 +f 5298/1174/242 5306/1186/242 5305/1175/242 +f 5295/1170/240 5304/1180/240 5303/1176/240 +f 5297/1168/239 5303/1188/239 5306/1177/239 +f 5296/1169/238 5305/1183/238 5304/1178/238 +f 5299/1179/243 5303/1176/243 5304/1180/243 +f 5300/1182/243 5304/1178/243 5305/1183/243 +f 5301/1185/243 5305/1175/243 5306/1186/243 +f 5302/1173/243 5306/1177/243 5303/1188/243 +f 5301/1184/238 5309/1589/238 5308/1189/238 +f 5302/1187/242 5310/1590/242 5309/1190/242 +f 5300/1181/240 5308/1591/240 5307/1191/240 +f 5313/1192/243 5314/1198/243 5312/1193/243 +f 5315/1195/239 5323/1592/239 5326/1196/239 +f 5314/1198/240 5322/1210/240 5321/1199/240 +f 5311/1194/242 5320/1204/242 5319/1200/242 +f 5313/1192/239 5319/1212/239 5322/1201/239 +f 5312/1193/238 5321/1207/238 5320/1202/238 +f 5315/1203/241 5319/1200/241 5320/1204/241 +f 5316/1206/241 5320/1202/241 5321/1207/241 +f 5317/1209/241 5321/1199/241 5322/1210/241 +f 5318/1197/241 5322/1201/241 5319/1212/241 +f 5317/1208/238 5325/1593/238 5324/1213/238 +f 5318/1211/240 5326/1594/240 5325/1214/240 +f 5316/1205/242 5324/1595/242 5323/1215/242 +f 5329/1216/243 5330/1222/243 5328/1217/243 +f 5331/1219/239 5339/1596/239 5342/1220/239 +f 5330/1222/240 5338/1234/240 5337/1223/240 +f 5327/1218/242 5336/1228/242 5335/1224/242 +f 5329/1216/239 5335/1236/239 5338/1225/239 +f 5328/1217/238 5337/1231/238 5336/1226/238 +f 5331/1227/241 5335/1224/241 5336/1228/241 +f 5332/1230/241 5336/1226/241 5337/1231/241 +f 5333/1233/241 5337/1223/241 5338/1234/241 +f 5334/1221/241 5338/1225/241 5335/1236/241 +f 5333/1232/238 5341/1597/238 5340/1237/238 +f 5334/1235/240 5342/1598/240 5341/1238/240 +f 5332/1229/242 5340/1599/242 5339/1239/242 +f 5345/1240/243 5346/1246/243 5344/1241/243 +f 5350/1243/239 5347/1261/239 5355/1244/239 +f 5346/1246/240 5354/1259/240 5353/1247/240 +f 5343/1242/242 5352/1253/242 5351/1248/242 +f 5346/1246/239 5345/1240/239 5351/1249/239 +f 5344/1241/238 5353/1256/238 5352/1251/238 +f 5347/1252/241 5351/1248/241 5352/1253/241 +f 5348/1255/241 5352/1251/241 5353/1256/241 +f 5349/1258/241 5353/1247/241 5354/1259/241 +f 5350/1243/241 5354/1250/241 5351/1249/241 +f 5349/1257/238 5357/1600/238 5356/1262/238 +f 5350/1260/240 5358/1601/240 5357/1263/240 +f 5348/1254/242 5356/1602/242 5355/1264/242 +f 5361/1265/243 5362/1271/243 5360/1266/243 +f 5363/1268/239 5371/1603/239 5374/1269/239 +f 5362/1271/240 5370/1283/240 5369/1272/240 +f 5359/1267/242 5368/1277/242 5367/1273/242 +f 5361/1265/239 5367/1285/239 5370/1274/239 +f 5360/1266/238 5369/1280/238 5368/1275/238 +f 5363/1276/241 5367/1273/241 5368/1277/241 +f 5364/1279/241 5368/1275/241 5369/1280/241 +f 5365/1282/241 5369/1272/241 5370/1283/241 +f 5366/1270/241 5370/1274/241 5367/1285/241 +f 5365/1281/238 5373/1604/238 5372/1286/238 +f 5366/1284/240 5374/1605/240 5373/1287/240 +f 5364/1278/242 5372/1606/242 5371/1288/242 +f 5377/1289/243 5378/1295/243 5376/1290/243 +f 5379/1292/239 5387/1607/239 5390/1293/239 +f 5378/1295/240 5386/1307/240 5385/1296/240 +f 5375/1291/242 5384/1301/242 5383/1297/242 +f 5377/1289/239 5383/1309/239 5386/1298/239 +f 5376/1290/238 5385/1304/238 5384/1299/238 +f 5379/1300/241 5383/1297/241 5384/1301/241 +f 5380/1303/241 5384/1299/241 5385/1304/241 +f 5381/1306/241 5385/1296/241 5386/1307/241 +f 5382/1294/241 5386/1298/241 5383/1309/241 +f 5381/1305/238 5389/1608/238 5388/1310/238 +f 5382/1308/240 5390/1609/240 5389/1311/240 +f 5380/1302/242 5388/1610/242 5387/1312/242 +s 1 +f 3667/1611/244 3153/1612/242 3656/1613/242 +f 3660/1614/245 3149/1615/246 3661/1616/246 +f 3663/1617/247 3146/1618/248 3664/1619/248 +f 3656/1613/242 3154/1620/249 3657/1621/249 +f 3666/1622/250 3143/1623/244 3667/1611/244 +f 3659/1624/241 3150/1625/245 3660/1614/245 +f 3662/1626/240 3147/1627/247 3663/1617/247 +f 3665/1628/243 3144/1629/250 3666/1622/250 +f 3658/1630/251 3151/1631/241 3659/1632/241 +f 3661/1616/246 3148/1633/240 3662/1626/240 +f 3664/1619/248 3145/1634/243 3665/1628/243 +f 3657/1621/249 3152/1635/251 3658/1630/251 +f 3206/1636/252 3237/469/253 3205/1637/253 +f 3199/1638/241 3230/453/254 3198/1639/254 +f 3207/1640/243 3238/471/252 3206/1636/252 +f 3200/1641/255 3231/456/241 3199/1638/241 +f 3208/1642/256 3239/473/243 3207/1640/243 +f 3201/1643/257 3232/457/255 3200/1641/255 +f 3209/1644/258 3240/474/256 3208/1642/256 +f 3202/1645/259 3233/459/257 3201/1643/257 +f 3210/1646/260 3241/476/258 3209/1644/258 +f 3203/1647/240 3234/462/259 3202/1645/259 +f 3196/1648/261 3228/449/242 3195/1649/242 +f 3195/1649/242 3242/479/260 3210/1646/260 +f 3204/1650/262 3235/466/240 3203/1651/240 +f 3197/1652/263 3227/450/261 3196/1648/261 +f 3205/1637/253 3236/467/262 3204/1650/262 +f 3198/1639/254 3229/452/263 3197/1652/263 +f 3212/448/262 3244/1653/240 3211/480/240 +f 3211/480/240 3258/1654/259 3226/478/259 +f 3220/465/261 3251/1655/242 3219/1360/242 +f 3213/451/253 3243/1656/262 3212/448/262 +f 3221/468/263 3252/1657/261 3220/465/261 +f 3214/454/252 3245/1658/253 3213/451/253 +f 3222/470/254 3253/1659/263 3221/468/263 +f 3215/455/243 3246/1660/252 3214/454/252 +f 3223/472/241 3254/1661/254 3222/470/254 +f 3215/455/243 3248/1662/256 3247/1663/243 +f 3224/475/255 3255/1664/241 3223/472/241 +f 3216/458/256 3249/1665/258 3248/1662/256 +f 3225/477/257 3256/1666/255 3224/475/255 +f 3218/461/260 3249/1665/258 3217/460/258 +f 3226/478/259 3257/1667/257 3225/477/257 +f 3219/463/242 3250/1668/260 3218/461/260 +f 3309/1669/240 4086/567/259 3310/1670/259 +f 3302/1671/260 4093/581/258 3303/1672/258 +f 3310/1670/259 4085/565/257 3311/1673/257 +f 3303/1672/258 4092/579/256 3304/1674/256 +f 3311/1673/257 4084/562/255 3312/1675/255 +f 3304/1674/256 4091/578/243 3305/1676/243 +f 3312/1675/255 4083/561/241 3313/1677/241 +f 3305/1676/243 4090/576/252 3306/1678/252 +f 3313/1677/241 4082/558/254 3314/1679/254 +f 3306/1678/252 4089/574/253 3307/1680/253 +f 3353/1681/264 3346/1682/238 3345/1683/265 +f 3351/1684/266 3344/1685/241 3343/1686/267 +f 3356/1687/268 3349/1688/269 3348/1689/243 +f 3354/1690/270 3347/1691/271 3346/1692/238 +f 3352/1693/272 3345/1683/265 3344/1685/241 +f 3350/1694/273 3343/1686/267 3342/1695/239 +f 3357/1696/274 3342/1695/239 3349/1688/269 +f 3355/1697/275 3348/1689/243 3347/1691/271 +f 3356/1698/268 3364/1699/276 3357/1696/274 +f 3352/1700/272 3361/1701/277 3353/1702/264 +f 3350/1694/273 3359/1703/278 3351/1684/266 +f 3357/1696/274 3358/1704/279 3350/1694/273 +f 3356/1698/268 3362/1705/280 3363/1706/281 +f 3351/1684/266 3360/1707/282 3352/1700/272 +f 3360/1707/282 3366/1708/283 3367/1709/284 +f 3363/1706/281 3371/1710/285 3364/1699/276 +f 3360/1707/282 3368/1711/286 3361/1701/277 +f 3359/1703/278 3365/1712/287 3366/1708/283 +f 3364/1699/276 3365/1712/287 3358/1704/279 +f 3363/1706/281 3369/1713/288 3370/1714/289 +f 3354/1715/270 3362/1705/280 3355/1716/275 +f 3362/1705/280 3354/1715/270 3369/1713/288 +f 3353/1702/264 3361/1701/277 3354/1717/270 +f 3361/1701/277 3368/1711/286 3354/1717/270 +f 3370/1718/289 3379/1719/258 3371/1710/285 +f 3367/1720/284 3376/1721/257 3368/1722/286 +f 3365/1712/287 3374/1723/263 3366/1708/283 +f 3368/1722/286 3372/1724/240 3354/1725/270 +f 3371/1710/285 3373/1726/242 3365/1712/287 +f 3354/1727/270 3377/1728/253 3369/1729/288 +f 3369/1729/288 3378/1730/243 3370/1718/289 +f 3366/1708/283 3375/1731/241 3367/1720/284 +f 3384/1732/238 3391/1733/265 3383/1734/265 +f 3385/1735/271 3392/1736/238 3384/1737/238 +f 3386/1738/243 3393/1739/271 3385/1735/271 +f 3387/1740/269 3394/1741/243 3386/1738/243 +f 3380/1742/239 3395/1743/269 3387/1740/269 +f 3381/1744/267 3388/1745/239 3380/1742/239 +f 3382/1746/241 3389/1747/267 3381/1744/267 +f 3383/1734/265 3390/1748/241 3382/1746/241 +f 3419/1749/279 3404/1750/239 3411/1751/279 +f 3417/1752/290 3410/1753/242 3409/1754/290 +f 3415/1755/270 3408/1756/238 3407/1757/270 +f 3413/1758/291 3406/1759/240 3405/1760/291 +f 3418/1761/242 3411/1751/279 3410/1753/242 +f 3416/1762/238 3409/1754/290 3408/1763/238 +f 3414/1764/240 3407/1757/270 3406/1759/240 +f 3412/1765/239 3405/1760/291 3404/1750/239 +f 3431/1766/292 3424/1767/240 3423/1768/291 +f 3429/1769/293 3422/1770/239 3421/1771/279 +f 3434/1772/294 3427/1773/290 3426/1774/238 +f 3432/1775/295 3425/1776/270 3424/1777/240 +f 3430/1778/296 3423/1768/291 3422/1770/239 +f 3428/1779/297 3421/1771/279 3420/1780/242 +f 3435/1781/298 3420/1780/242 3427/1773/290 +f 3433/1782/299 3426/1774/238 3425/1776/270 +f 3435/1781/298 3441/1783/300 3442/1784/301 +f 3430/1785/296 3439/1786/302 3431/1787/292 +f 3428/1779/297 3437/1788/303 3429/1769/293 +f 3428/1779/297 3442/1784/301 3436/1789/304 +f 3434/1790/294 3440/1791/305 3441/1783/300 +f 3429/1769/293 3438/1792/306 3430/1785/296 +f 3432/1793/295 3440/1791/305 3433/1794/299 +f 3431/1787/292 3439/1786/302 3432/1795/295 +f 3448/1796/307 3451/1797/308 3455/1798/309 +f 3449/1799/310 3455/1798/309 3456/1800/311 +f 3445/1801/312 3453/1802/313 3446/1803/314 +f 3447/1804/315 3451/1805/308 3444/1806/316 +f 3449/1799/310 3457/1807/317 3450/1808/318 +f 3446/1803/314 3454/1809/319 3447/1804/315 +f 3450/1808/318 3457/1807/317 3443/1810/320 +f 3445/1801/312 3443/1810/320 3452/1811/321 +f 3455/1798/309 3464/1812/238 3456/1813/311 +f 3452/1814/321 3461/1815/239 3453/1816/313 +f 3443/1817/320 3460/1818/279 3452/1814/321 +f 3454/1809/319 3459/1819/240 3451/1805/308 +f 3457/1820/317 3458/1821/242 3443/1817/320 +f 3456/1813/311 3465/1822/290 3457/1820/317 +f 3453/1816/313 3462/1823/291 3454/1809/319 +f 3451/1797/308 3463/1824/270 3455/1798/309 +f 3477/1825/292 3470/1826/240 3469/1827/291 +f 3475/1828/293 3468/1829/239 3467/1830/279 +f 3480/1831/294 3473/1832/290 3472/1833/238 +f 3478/1834/295 3471/1835/270 3470/1836/240 +f 3476/1837/296 3469/1827/291 3468/1829/239 +f 3474/1838/297 3467/1830/279 3466/1839/242 +f 3481/1840/298 3466/1839/242 3473/1832/290 +f 3479/1841/299 3472/1833/238 3471/1835/270 +f 3481/1840/298 3487/1842/300 3488/1843/301 +f 3476/1844/296 3485/1845/322 3477/1846/292 +f 3474/1838/297 3483/1847/303 3475/1828/293 +f 3474/1838/297 3488/1843/301 3482/1848/304 +f 3480/1849/294 3486/1850/305 3487/1842/300 +f 3475/1828/293 3484/1851/306 3476/1844/296 +f 3495/1852/310 3488/1843/301 3487/1842/300 +f 3496/1853/318 3482/1848/304 3488/1843/301 +f 3482/1848/304 3491/1854/323 3483/1847/303 +f 3483/1847/303 3492/1855/314 3484/1851/306 +f 3484/1851/306 3493/1856/315 3485/1845/322 +f 3485/1845/322 3490/1857/316 3478/1858/295 +f 3478/1859/295 3486/1850/305 3479/1860/299 +f 3490/1861/316 3486/1850/305 3478/1859/295 +f 3477/1846/292 3485/1845/322 3478/1858/295 +f 3494/1862/307 3487/1842/300 3486/1850/305 +f 3450/1808/318 3436/1789/304 3442/1784/301 +f 3436/1789/304 3445/1801/312 3437/1788/303 +f 3437/1788/303 3446/1803/314 3438/1792/306 +f 3438/1792/306 3447/1804/315 3439/1786/302 +f 3439/1786/302 3444/1806/316 3432/1795/295 +f 3444/1863/316 3440/1791/305 3432/1793/295 +f 3494/1862/307 3497/1864/308 3501/1865/309 +f 3495/1852/310 3501/1865/309 3502/1866/311 +f 3491/1854/323 3499/1867/313 3492/1855/314 +f 3493/1856/315 3497/1868/308 3490/1857/316 +f 3496/1853/318 3502/1866/311 3503/1869/317 +f 3492/1855/314 3500/1870/319 3493/1856/315 +f 3448/1796/307 3441/1783/300 3440/1791/305 +f 3496/1853/318 3503/1869/317 3489/1871/320 +f 3449/1799/310 3442/1784/301 3441/1783/300 +f 3491/1854/323 3489/1871/320 3498/1872/321 +f 3501/1865/309 3510/1873/238 3502/1874/311 +f 3498/1875/321 3507/1876/239 3499/1877/313 +f 3489/1878/320 3506/1879/279 3498/1875/321 +f 3500/1870/319 3505/1880/240 3497/1868/308 +f 3503/1881/317 3504/1882/242 3489/1878/320 +f 3503/1881/317 3510/1873/238 3511/1883/290 +f 3499/1877/313 3508/1884/291 3500/1870/319 +f 3497/1864/308 3509/1885/270 3501/1865/309 +f 3523/1886/324 3516/1887/238 3515/1888/270 +f 3521/1889/325 3514/1890/240 3513/1891/291 +f 3526/1892/326 3519/1893/279 3518/1894/242 +f 3524/1895/271 3517/1896/290 3516/1897/238 +f 3522/1898/327 3515/1888/270 3514/1890/240 +f 3520/1899/328 3513/1891/291 3512/1900/239 +f 3527/1901/329 3512/1900/239 3519/1893/279 +f 3525/1902/330 3518/1894/242 3517/1896/290 +f 3527/1901/329 3533/1903/331 3534/1904/332 +f 3522/1905/327 3531/1906/333 3523/1907/324 +f 3520/1899/328 3529/1908/334 3521/1889/325 +f 3520/1899/328 3534/1904/332 3528/1909/267 +f 3526/1910/326 3532/1911/335 3533/1903/331 +f 3521/1889/325 3530/1912/336 3522/1905/327 +f 3530/1912/336 3536/1913/337 3537/1914/338 +f 3533/1903/331 3541/1915/339 3534/1904/332 +f 3531/1906/333 3537/1914/338 3538/1916/340 +f 3528/1909/267 3536/1913/337 3529/1908/334 +f 3528/1909/267 3541/1915/339 3535/1917/341 +f 3532/1911/335 3540/1918/342 3533/1903/331 +f 3524/1919/271 3532/1911/335 3525/1920/330 +f 3532/1911/335 3524/1919/271 3539/1921/343 +f 3523/1907/324 3531/1906/333 3524/1922/271 +f 3531/1906/333 3538/1916/340 3524/1922/271 +f 3540/1923/342 3549/1924/344 3541/1915/339 +f 3537/1925/338 3546/1926/345 3538/1927/340 +f 3535/1917/341 3544/1928/346 3536/1913/337 +f 3538/1927/340 3542/1929/347 3524/1930/271 +f 3541/1915/339 3543/1931/267 3535/1917/341 +f 3524/1932/271 3547/1933/348 3539/1934/343 +f 3539/1934/343 3548/1935/349 3540/1923/342 +f 3536/1913/337 3545/1936/350 3537/1925/338 +f 3542/1929/347 3553/1937/351 3550/1938/271 +f 3547/1933/348 3555/1939/352 3548/1940/349 +f 3545/1941/350 3551/1942/353 3552/1943/354 +f 3542/1944/347 3554/1945/355 3547/1933/348 +f 3548/1940/349 3556/1946/356 3549/1947/344 +f 3546/1926/345 3552/1943/354 3553/1937/351 +f 3550/1948/271 3561/1949/357 3554/1945/355 +f 3555/1939/352 3561/1949/357 3562/1950/358 +f 3551/1942/353 3559/1951/359 3552/1943/354 +f 3553/1937/351 3557/1952/360 3550/1938/271 +f 3556/1946/356 3562/1950/358 3563/1953/361 +f 3552/1943/354 3560/1954/362 3553/1937/351 +f 3549/1947/344 3556/1946/356 3543/1955/267 +f 3556/1946/356 3563/1953/361 3543/1955/267 +f 3543/1955/267 3551/1942/353 3544/1956/346 +f 3551/1942/353 3543/1955/267 3558/1957/363 +f 3561/1949/357 3570/1958/242 3562/1959/358 +f 3558/1960/363 3567/1961/240 3559/1962/359 +f 3543/1963/267 3566/1964/291 3558/1960/363 +f 3560/1954/362 3565/1965/238 3557/1952/360 +f 3563/1966/361 3564/1967/239 3543/1963/267 +f 3562/1959/358 3571/1968/279 3563/1966/361 +f 3559/1962/359 3568/1969/270 3560/1954/362 +f 3557/1970/360 3569/1971/290 3561/1949/357 +f 3583/1972/324 3576/1973/238 3575/1974/270 +f 3581/1975/325 3574/1976/240 3573/1977/291 +f 3586/1978/326 3579/1979/279 3578/1980/242 +f 3584/1981/271 3577/1982/290 3576/1983/238 +f 3582/1984/327 3575/1974/270 3574/1976/240 +f 3580/1985/328 3573/1977/291 3572/1986/239 +f 3587/1987/329 3572/1986/239 3579/1979/279 +f 3585/1988/330 3578/1980/242 3577/1982/290 +f 3587/1987/329 3593/1989/331 3594/1990/332 +f 3582/1991/327 3591/1992/333 3583/1993/324 +f 3580/1985/328 3589/1994/334 3581/1975/325 +f 3580/1985/328 3594/1990/332 3588/1995/267 +f 3586/1996/326 3592/1997/335 3593/1989/331 +f 3581/1975/325 3590/1998/336 3582/1991/327 +f 3590/1998/336 3596/1999/337 3597/2000/338 +f 3593/1989/331 3601/2001/339 3594/1990/332 +f 3591/1992/333 3597/2000/338 3598/2002/340 +f 3588/1995/267 3596/1999/337 3589/1994/334 +f 3588/1995/267 3601/2001/339 3595/2003/341 +f 3592/1997/335 3600/2004/342 3593/1989/331 +f 3584/2005/271 3592/1997/335 3585/2006/330 +f 3592/1997/335 3584/2005/271 3599/2007/343 +f 3583/1993/324 3591/1992/333 3584/2008/271 +f 3591/1992/333 3598/2002/340 3584/2008/271 +f 3600/2009/342 3609/2010/344 3601/2001/339 +f 3597/2011/338 3606/2012/345 3598/2013/340 +f 3595/2003/341 3604/2014/346 3596/1999/337 +f 3598/2013/340 3602/2015/347 3584/2016/271 +f 3601/2001/339 3603/2017/267 3595/2003/341 +f 3584/2018/271 3607/2019/348 3599/2020/343 +f 3599/2020/343 3608/2021/349 3600/2009/342 +f 3596/1999/337 3605/2022/350 3597/2011/338 +f 3602/2015/347 3613/2023/351 3610/2024/271 +f 3607/2019/348 3615/2025/352 3608/2026/349 +f 3605/2027/350 3611/2028/353 3612/2029/354 +f 3602/2030/347 3614/2031/355 3607/2019/348 +f 3608/2026/349 3616/2032/356 3609/2033/344 +f 3606/2012/345 3612/2029/354 3613/2023/351 +f 3614/2031/355 3617/2034/360 3621/2035/357 +f 3615/2025/352 3621/2035/357 3622/2036/358 +f 3611/2028/353 3619/2037/359 3612/2029/354 +f 3613/2023/351 3617/2038/360 3610/2024/271 +f 3616/2032/356 3622/2036/358 3623/2039/361 +f 3612/2029/354 3620/2040/362 3613/2023/351 +f 3609/2033/344 3616/2032/356 3603/2041/267 +f 3616/2032/356 3623/2039/361 3603/2041/267 +f 3603/2041/267 3611/2028/353 3604/2042/346 +f 3611/2028/353 3603/2041/267 3618/2043/363 +f 3621/2035/357 3630/2044/242 3622/2045/358 +f 3618/2046/363 3627/2047/240 3619/2048/359 +f 3603/2049/267 3626/2050/291 3618/2046/363 +f 3620/2040/362 3625/2051/238 3617/2038/360 +f 3623/2052/361 3624/2053/239 3603/2049/267 +f 3622/2045/358 3631/2054/279 3623/2052/361 +f 3619/2048/359 3628/2055/270 3620/2040/362 +f 3617/2034/360 3629/2056/290 3621/2035/357 +f 3645/2057/239 3636/2058/291 3637/2059/239 +f 3643/2060/240 3634/2061/270 3635/2062/240 +f 3641/2063/238 3632/2064/290 3633/2065/238 +f 3647/2066/242 3638/2067/279 3639/2068/242 +f 3646/2069/279 3637/2059/239 3638/2067/279 +f 3644/2070/291 3635/2062/240 3636/2058/291 +f 3642/2071/270 3633/2072/238 3634/2061/270 +f 3640/2073/290 3639/2068/242 3632/2064/290 +f 3679/2074/264 3672/2075/238 3671/2076/265 +f 3677/2077/266 3670/2078/241 3669/2079/267 +f 3682/2080/268 3675/2081/269 3674/2082/243 +f 3680/2083/270 3673/2084/271 3672/2085/238 +f 3678/2086/272 3671/2076/265 3670/2078/241 +f 3676/2087/273 3669/2079/267 3668/2088/239 +f 3683/2089/274 3668/2088/239 3675/2081/269 +f 3681/2090/275 3674/2082/243 3673/2084/271 +f 3683/2089/274 3689/2091/281 3690/2092/276 +f 3678/2093/272 3687/2094/277 3679/2095/264 +f 3677/2077/266 3684/2096/279 3685/2097/278 +f 3683/2089/274 3684/2096/279 3676/2087/273 +f 3682/2098/268 3688/2099/280 3689/2091/281 +f 3677/2077/266 3686/2100/282 3678/2093/272 +f 3686/2100/282 3692/2101/283 3693/2102/284 +f 3689/2091/281 3697/2103/285 3690/2092/276 +f 3686/2100/282 3694/2104/286 3687/2094/277 +f 3685/2097/278 3691/2105/287 3692/2101/283 +f 3690/2092/276 3691/2105/287 3684/2096/279 +f 3689/2091/281 3695/2106/288 3696/2107/289 +f 3680/2108/270 3688/2099/280 3681/2109/275 +f 3688/2099/280 3680/2108/270 3695/2106/288 +f 3679/2095/264 3687/2094/277 3680/2110/270 +f 3687/2094/277 3694/2104/286 3680/2110/270 +f 3696/2111/289 3705/2112/258 3697/2103/285 +f 3693/2113/284 3702/2114/257 3694/2115/286 +f 3691/2105/287 3700/2116/263 3692/2101/283 +f 3694/2115/286 3698/2117/240 3680/2118/270 +f 3697/2103/285 3699/2119/242 3691/2105/287 +f 3680/2120/270 3703/2121/253 3695/2122/288 +f 3695/2122/288 3704/2123/243 3696/2111/289 +f 3692/2101/283 3701/2124/241 3693/2113/284 +f 3717/2125/264 3710/2126/238 3709/2127/265 +f 3715/2128/266 3708/2129/241 3707/2130/267 +f 3720/2131/268 3713/2132/269 3712/2133/243 +f 3710/2134/238 3719/2135/275 3711/2136/271 +f 3716/2137/272 3709/2127/265 3708/2129/241 +f 3714/2138/273 3707/2130/267 3706/2139/239 +f 3721/2140/274 3706/2139/239 3713/2132/269 +f 3719/2135/275 3712/2133/243 3711/2136/271 +f 3721/2140/274 3727/2141/281 3728/2142/276 +f 3716/2143/272 3725/2144/277 3717/2145/264 +f 3714/2138/273 3723/2146/278 3715/2128/266 +f 3721/2140/274 3722/2147/279 3714/2138/273 +f 3720/2148/268 3726/2149/280 3727/2141/281 +f 3716/2143/272 3723/2146/278 3724/2150/282 +f 3724/2150/282 3730/2151/283 3731/2152/284 +f 3727/2141/281 3735/2153/285 3728/2142/276 +f 3724/2150/282 3732/2154/286 3725/2144/277 +f 3723/2146/278 3729/2155/287 3730/2151/283 +f 3728/2142/276 3729/2155/287 3722/2147/279 +f 3726/2149/280 3734/2156/289 3727/2141/281 +f 3718/2157/270 3726/2149/280 3719/2158/275 +f 3726/2149/280 3718/2157/270 3733/2159/288 +f 3717/2145/264 3725/2144/277 3718/2160/270 +f 3725/2144/277 3732/2154/286 3718/2160/270 +f 3734/2161/289 3743/2162/258 3735/2153/285 +f 3731/2163/284 3740/2164/257 3732/2165/286 +f 3729/2155/287 3738/2166/263 3730/2151/283 +f 3732/2165/286 3736/2167/240 3718/2168/270 +f 3735/2153/285 3737/2169/242 3729/2155/287 +f 3718/2170/270 3741/2171/253 3733/2172/288 +f 3733/2172/288 3742/2173/243 3734/2161/289 +f 3730/2151/283 3739/2174/241 3731/2163/284 +f 3755/2175/264 3748/2176/238 3747/2177/265 +f 3753/2178/266 3746/2179/241 3745/2180/267 +f 3758/2181/268 3751/2182/269 3750/2183/243 +f 3756/2184/270 3749/2185/271 3748/2186/238 +f 3754/2187/272 3747/2177/265 3746/2179/241 +f 3752/2188/273 3745/2180/267 3744/2189/239 +f 3759/2190/274 3744/2189/239 3751/2182/269 +f 3757/2191/275 3750/2183/243 3749/2185/271 +f 3759/2190/274 3765/2192/281 3766/2193/276 +f 3754/2194/272 3763/2195/277 3755/2196/264 +f 3753/2178/266 3760/2197/279 3761/2198/278 +f 3759/2190/274 3760/2197/279 3752/2188/273 +f 3758/2199/268 3764/2200/280 3765/2192/281 +f 3753/2178/266 3762/2201/282 3754/2194/272 +f 3762/2201/282 3768/2202/283 3769/2203/284 +f 3765/2192/281 3773/2204/285 3766/2193/276 +f 3763/2195/277 3769/2203/284 3770/2205/286 +f 3761/2198/278 3767/2206/287 3768/2202/283 +f 3766/2193/276 3767/2206/287 3760/2197/279 +f 3764/2200/280 3772/2207/289 3765/2192/281 +f 3756/2208/270 3764/2200/280 3757/2209/275 +f 3764/2200/280 3756/2208/270 3771/2210/288 +f 3755/2196/264 3763/2195/277 3756/2211/270 +f 3763/2195/277 3770/2205/286 3756/2211/270 +f 3772/2212/289 3781/2213/258 3773/2204/285 +f 3769/2214/284 3778/2215/257 3770/2216/286 +f 3767/2206/287 3776/2217/263 3768/2202/283 +f 3770/2216/286 3774/2218/240 3756/2219/270 +f 3773/2204/285 3775/2220/242 3767/2206/287 +f 3756/2221/270 3779/2222/253 3771/2223/288 +f 3771/2223/288 3780/2224/243 3772/2212/289 +f 3768/2202/283 3777/2225/241 3769/2214/284 +f 3793/2226/264 3786/2227/238 3785/2228/265 +f 3791/2229/266 3784/2230/241 3783/2231/267 +f 3796/2232/268 3789/2233/269 3788/2234/243 +f 3794/2235/270 3787/2236/271 3786/2237/238 +f 3792/2238/272 3785/2228/265 3784/2230/241 +f 3790/2239/273 3783/2231/267 3782/2240/239 +f 3797/2241/274 3782/2240/239 3789/2233/269 +f 3795/2242/275 3788/2234/243 3787/2236/271 +f 3797/2241/274 3803/2243/281 3804/2244/276 +f 3792/2245/272 3801/2246/277 3793/2247/264 +f 3791/2229/266 3798/2248/279 3799/2249/278 +f 3797/2241/274 3798/2248/279 3790/2239/273 +f 3796/2250/268 3802/2251/280 3803/2243/281 +f 3791/2229/266 3800/2252/282 3792/2245/272 +f 3799/2249/278 3807/2253/284 3800/2252/282 +f 3803/2243/281 3811/2254/285 3804/2244/276 +f 3800/2252/282 3808/2255/286 3801/2246/277 +f 3799/2249/278 3805/2256/287 3806/2257/283 +f 3804/2244/276 3805/2256/287 3798/2248/279 +f 3803/2243/281 3809/2258/288 3810/2259/289 +f 3794/2260/270 3802/2251/280 3795/2261/275 +f 3802/2251/280 3794/2260/270 3809/2258/288 +f 3793/2247/264 3801/2246/277 3794/2262/270 +f 3801/2246/277 3808/2255/286 3794/2262/270 +f 3810/2263/289 3819/2264/258 3811/2254/285 +f 3807/2265/284 3816/2266/257 3808/2267/286 +f 3805/2256/287 3814/2268/263 3806/2257/283 +f 3808/2267/286 3812/2269/240 3794/2270/270 +f 3811/2254/285 3813/2271/242 3805/2256/287 +f 3794/2272/270 3817/2273/253 3809/2274/288 +f 3809/2274/288 3818/2275/243 3810/2263/289 +f 3806/2257/283 3815/2276/241 3807/2265/284 +f 3831/2277/364 3824/2278/238 3823/2279/271 +f 3829/2280/365 3822/2281/243 3821/2282/269 +f 3834/2283/366 3827/2284/267 3826/2285/241 +f 3824/2286/238 3833/2287/367 3825/2288/265 +f 3830/2289/368 3823/2279/271 3822/2281/243 +f 3828/2290/369 3821/2282/269 3820/2291/239 +f 3835/2292/370 3820/2291/239 3827/2284/267 +f 3833/2287/367 3826/2285/241 3825/2288/265 +f 3835/2292/370 3841/2293/371 3842/2294/372 +f 3830/2295/368 3839/2296/373 3831/2297/364 +f 3829/2280/365 3836/2298/291 3837/2299/374 +f 3835/2292/370 3836/2298/291 3828/2290/369 +f 3834/2300/366 3840/2301/375 3841/2293/371 +f 3829/2280/365 3838/2302/376 3830/2295/368 +f 3838/2302/376 3844/2303/377 3845/2304/378 +f 3842/2294/372 3848/2305/379 3849/2306/380 +f 3838/2302/376 3846/2307/381 3839/2296/373 +f 3837/2299/374 3843/2308/382 3844/2303/377 +f 3842/2294/372 3843/2308/382 3836/2298/291 +f 3841/2293/371 3847/2309/383 3848/2305/379 +f 3832/2310/290 3840/2301/375 3833/2311/367 +f 3840/2301/375 3832/2310/290 3847/2309/383 +f 3831/2297/364 3839/2296/373 3832/2312/290 +f 3839/2296/373 3846/2307/381 3832/2312/290 +f 3848/2313/379 3857/2314/257 3849/2306/380 +f 3845/2315/378 3854/2316/258 3846/2317/381 +f 3843/2308/382 3852/2318/253 3844/2303/377 +f 3846/2317/381 3850/2319/242 3832/2320/290 +f 3849/2306/380 3851/2321/240 3843/2308/382 +f 3832/2322/290 3855/2323/263 3847/2324/383 +f 3847/2324/383 3856/2325/241 3848/2313/379 +f 3844/2303/377 3853/2326/243 3845/2315/378 +f 3869/2327/364 3862/2328/238 3861/2329/271 +f 3867/2330/365 3860/2331/243 3859/2332/269 +f 3872/2333/366 3865/2334/267 3864/2335/241 +f 3870/2336/290 3863/2337/265 3862/2338/238 +f 3868/2339/368 3861/2329/271 3860/2331/243 +f 3866/2340/369 3859/2332/269 3858/2341/239 +f 3873/2342/370 3858/2341/239 3865/2334/267 +f 3871/2343/367 3864/2335/241 3863/2337/265 +f 3873/2342/370 3879/2344/371 3880/2345/372 +f 3868/2346/368 3877/2347/373 3869/2348/364 +f 3866/2340/369 3875/2349/374 3867/2330/365 +f 3873/2342/370 3874/2350/291 3866/2340/369 +f 3872/2351/366 3878/2352/375 3879/2344/371 +f 3867/2330/365 3876/2353/376 3868/2346/368 +f 3876/2353/376 3882/2354/377 3883/2355/378 +f 3879/2344/371 3887/2356/380 3880/2345/372 +f 3877/2347/373 3883/2355/378 3884/2357/381 +f 3875/2349/374 3881/2358/382 3882/2354/377 +f 3880/2345/372 3881/2358/382 3874/2350/291 +f 3878/2352/375 3886/2359/379 3879/2344/371 +f 3870/2360/290 3878/2352/375 3871/2361/367 +f 3878/2352/375 3870/2360/290 3885/2362/383 +f 3869/2348/364 3877/2347/373 3870/2363/290 +f 3877/2347/373 3884/2357/381 3870/2363/290 +f 3886/2364/379 3895/2365/257 3887/2356/380 +f 3883/2366/378 3892/2367/258 3884/2368/381 +f 3881/2358/382 3890/2369/253 3882/2354/377 +f 3884/2368/381 3888/2370/242 3870/2371/290 +f 3887/2356/380 3889/2372/240 3881/2358/382 +f 3870/2373/290 3893/2374/263 3885/2375/383 +f 3885/2375/383 3894/2376/241 3886/2364/379 +f 3882/2354/377 3891/2377/243 3883/2366/378 +f 3907/2378/364 3900/2379/238 3899/2380/271 +f 3905/2381/365 3898/2382/243 3897/2383/269 +f 3910/2384/366 3903/2385/267 3902/2386/241 +f 3908/2387/290 3901/2388/265 3900/2389/238 +f 3906/2390/368 3899/2380/271 3898/2382/243 +f 3896/2391/239 3905/2381/365 3897/2383/269 +f 3911/2392/370 3896/2391/239 3903/2385/267 +f 3909/2393/367 3902/2386/241 3901/2388/265 +f 3911/2392/370 3917/2394/371 3918/2395/372 +f 3906/2396/368 3915/2397/373 3907/2398/364 +f 3905/2381/365 3912/2399/291 3913/2400/374 +f 3911/2392/370 3912/2399/291 3904/2401/369 +f 3910/2402/366 3916/2403/375 3917/2394/371 +f 3905/2381/365 3914/2404/376 3906/2396/368 +f 3914/2404/376 3920/2405/377 3921/2406/378 +f 3917/2394/371 3925/2407/380 3918/2395/372 +f 3914/2404/376 3922/2408/381 3915/2397/373 +f 3913/2400/374 3919/2409/382 3920/2405/377 +f 3918/2395/372 3919/2409/382 3912/2399/291 +f 3917/2394/371 3923/2410/383 3924/2411/379 +f 3908/2412/290 3916/2403/375 3909/2413/367 +f 3916/2403/375 3908/2412/290 3923/2410/383 +f 3907/2398/364 3915/2397/373 3908/2414/290 +f 3915/2397/373 3922/2408/381 3908/2414/290 +f 3924/2415/379 3933/2416/257 3925/2407/380 +f 3921/2417/378 3930/2418/258 3922/2419/381 +f 3919/2409/382 3928/2420/253 3920/2405/377 +f 3922/2419/381 3926/2421/242 3908/2422/290 +f 3925/2407/380 3927/2423/240 3919/2409/382 +f 3908/2424/290 3931/2425/263 3923/2426/383 +f 3923/2426/383 3932/2427/241 3924/2415/379 +f 3920/2405/377 3929/2428/243 3921/2417/378 +f 3945/2429/364 3938/2430/238 3937/2431/271 +f 3943/2432/365 3936/2433/243 3935/2434/269 +f 3948/2435/366 3941/2436/267 3940/2437/241 +f 3946/2438/290 3939/2439/265 3938/2440/238 +f 3944/2441/368 3937/2431/271 3936/2433/243 +f 3942/2442/369 3935/2434/269 3934/2443/239 +f 3949/2444/370 3934/2443/239 3941/2436/267 +f 3947/2445/367 3940/2437/241 3939/2439/265 +f 3949/2444/370 3955/2446/371 3956/2447/372 +f 3944/2448/368 3953/2449/373 3945/2450/364 +f 3943/2432/365 3950/2451/291 3951/2452/374 +f 3949/2444/370 3950/2451/291 3942/2442/369 +f 3948/2453/366 3954/2454/375 3955/2446/371 +f 3943/2432/365 3952/2455/376 3944/2448/368 +f 3952/2455/376 3958/2456/377 3959/2457/378 +f 3955/2446/371 3963/2458/380 3956/2447/372 +f 3952/2455/376 3960/2459/381 3953/2449/373 +f 3951/2452/374 3957/2460/382 3958/2456/377 +f 3956/2447/372 3957/2460/382 3950/2451/291 +f 3954/2454/375 3962/2461/379 3955/2446/371 +f 3946/2462/290 3954/2454/375 3947/2463/367 +f 3954/2454/375 3946/2462/290 3961/2464/383 +f 3945/2450/364 3953/2449/373 3946/2465/290 +f 3953/2449/373 3960/2459/381 3946/2465/290 +f 3962/2466/379 3971/2467/257 3963/2458/380 +f 3959/2468/378 3968/2469/258 3960/2470/381 +f 3957/2460/382 3966/2471/253 3958/2456/377 +f 3960/2470/381 3964/2472/242 3946/2473/290 +f 3963/2458/380 3965/2474/240 3957/2460/382 +f 3946/2475/290 3969/2476/263 3961/2477/383 +f 3961/2477/383 3970/2478/241 3962/2466/379 +f 3958/2456/377 3967/2479/243 3959/2468/378 +f 3983/2480/364 3976/2481/238 3975/2482/271 +f 3981/2483/365 3974/2484/243 3973/2485/269 +f 3986/2486/366 3979/2487/267 3978/2488/241 +f 3976/2489/238 3985/2490/367 3977/2491/265 +f 3982/2492/368 3975/2482/271 3974/2484/243 +f 3980/2493/369 3973/2485/269 3972/2494/239 +f 3987/2495/370 3972/2494/239 3979/2487/267 +f 3985/2490/367 3978/2488/241 3977/2491/265 +f 3987/2495/370 3993/2496/371 3994/2497/372 +f 3982/2498/368 3991/2499/373 3983/2500/364 +f 3981/2483/365 3988/2501/291 3989/2502/374 +f 3987/2495/370 3988/2501/291 3980/2493/369 +f 3986/2503/366 3992/2504/375 3993/2496/371 +f 3981/2483/365 3990/2505/376 3982/2498/368 +f 3990/2505/376 3996/2506/377 3997/2507/378 +f 3993/2496/371 4001/2508/380 3994/2497/372 +f 3991/2499/373 3997/2507/378 3998/2509/381 +f 3989/2502/374 3995/2510/382 3996/2506/377 +f 3994/2497/372 3995/2510/382 3988/2501/291 +f 3993/2496/371 3999/2511/383 4000/2512/379 +f 3984/2513/290 3992/2504/375 3985/2514/367 +f 3992/2504/375 3984/2513/290 3999/2511/383 +f 3983/2500/364 3991/2499/373 3984/2515/290 +f 3991/2499/373 3998/2509/381 3984/2515/290 +f 4000/2516/379 4009/2517/257 4001/2508/380 +f 3997/2518/378 4006/2519/258 3998/2520/381 +f 3995/2510/382 4004/2521/253 3996/2506/377 +f 3998/2520/381 4002/2522/242 3984/2523/290 +f 4001/2508/380 4003/2524/240 3995/2510/382 +f 3984/2525/290 4007/2526/263 3999/2527/383 +f 3999/2527/383 4008/2528/241 4000/2516/379 +f 3996/2506/377 4005/2529/243 3997/2518/378 +f 4014/2530/238 4021/2531/265 4013/2532/265 +f 4014/2533/238 4023/2534/271 4022/2535/238 +f 4016/2536/243 4023/2534/271 4015/2537/271 +f 4017/2538/269 4024/2539/243 4016/2536/243 +f 4010/2540/239 4025/2541/269 4017/2538/269 +f 4011/2542/267 4018/2543/239 4010/2540/239 +f 4012/2544/241 4019/2545/267 4011/2542/267 +f 4013/2532/265 4020/2546/241 4012/2544/241 +f 4030/2547/238 4037/2548/265 4029/2549/265 +f 4031/2550/271 4038/2551/238 4030/2552/238 +f 4032/2553/243 4039/2554/271 4031/2550/271 +f 4033/2555/269 4040/2556/243 4032/2553/243 +f 4026/2557/239 4041/2558/269 4033/2555/269 +f 4027/2559/267 4034/2560/239 4026/2557/239 +f 4028/2561/241 4035/2562/267 4027/2559/267 +f 4029/2549/265 4036/2563/241 4028/2561/241 +f 4045/2564/265 4054/2565/238 4053/2566/265 +f 4047/2567/271 4054/2568/238 4046/2569/238 +f 4048/2570/243 4055/2571/271 4047/2567/271 +f 4049/2572/269 4056/2573/243 4048/2570/243 +f 4042/2574/239 4057/2575/269 4049/2572/269 +f 4043/2576/267 4050/2577/239 4042/2574/239 +f 4043/2576/267 4052/2578/241 4051/2579/267 +f 4045/2564/265 4052/2578/241 4044/2580/241 +f 4062/2581/238 4069/2582/265 4061/2583/265 +f 4063/2584/271 4070/2585/238 4062/2586/238 +f 4064/2587/243 4071/2588/271 4063/2584/271 +f 4065/2589/269 4072/2590/243 4064/2587/243 +f 4058/2591/239 4073/2592/269 4065/2589/269 +f 4059/2593/267 4066/2594/239 4058/2591/239 +f 4060/2595/241 4067/2596/267 4059/2593/267 +f 4061/2583/265 4068/2597/241 4060/2595/241 +f 3316/2598/261 4080/554/242 3317/2599/242 +f 3317/2599/242 4094/584/260 3302/1671/260 +f 3308/2600/262 4087/571/240 3309/2601/240 +f 3315/2602/263 4079/555/261 3316/2598/261 +f 3307/1680/253 4088/572/262 3308/2600/262 +f 3314/1679/254 4081/557/263 3315/2602/263 +f 3300/553/262 4096/2603/240 3301/585/240 +f 3301/585/240 4110/2604/259 4078/583/259 +f 3292/570/261 4103/2605/242 3293/1373/242 +f 3299/556/253 4095/2606/262 3300/553/262 +f 3291/573/263 4104/2607/261 3292/570/261 +f 3298/559/252 4097/2608/253 3299/556/253 +f 4074/575/254 4105/2609/263 3291/573/263 +f 3297/560/243 4098/2610/252 3298/559/252 +f 4075/577/241 4106/2611/254 4074/575/254 +f 3296/563/256 4099/2612/243 3297/560/243 +f 4076/580/255 4107/2613/241 4075/577/241 +f 3296/563/256 4101/2614/258 4100/2615/256 +f 4077/582/257 4108/2616/255 4076/580/255 +f 3294/566/260 4101/2614/258 3295/564/258 +f 4078/583/259 4109/2617/257 4077/582/257 +f 3293/568/242 4102/2618/260 3294/566/260 +f 4134/2619/244 4121/2620/242 4123/2621/242 +f 4127/2622/245 4117/2623/246 4128/2624/246 +f 4130/2625/247 4114/2626/248 4131/2627/248 +f 4123/2621/242 4122/2628/249 4124/2629/249 +f 4133/2630/250 4111/2631/244 4134/2619/244 +f 4126/2632/241 4118/2633/245 4127/2622/245 +f 4129/2634/240 4115/2635/247 4130/2625/247 +f 4132/2636/243 4112/2637/250 4133/2630/250 +f 4125/2638/251 4119/2639/241 4126/2640/241 +f 4128/2624/246 4116/2641/240 4129/2634/240 +f 4131/2627/248 4113/2642/243 4132/2636/243 +f 4124/2629/249 4120/2643/251 4125/2638/251 +f 4158/2644/244 4145/2645/242 4147/2646/242 +f 4151/2647/245 4141/2648/246 4152/2649/246 +f 4154/2650/247 4138/2651/248 4155/2652/248 +f 4147/2646/242 4146/2653/249 4148/2654/249 +f 4157/2655/250 4135/2656/244 4158/2644/244 +f 4150/2657/241 4142/2658/245 4151/2647/245 +f 4153/2659/240 4139/2660/247 4154/2650/247 +f 4156/2661/243 4136/2662/250 4157/2655/250 +f 4149/2663/251 4143/2664/241 4150/2665/241 +f 4152/2649/246 4140/2666/240 4153/2659/240 +f 4155/2652/248 4137/2667/243 4156/2661/243 +f 4148/2654/249 4144/2668/251 4149/2663/251 +f 4182/2669/244 4169/2670/242 4171/2671/242 +f 4175/2672/245 4165/2673/246 4176/2674/246 +f 4178/2675/247 4162/2676/248 4179/2677/248 +f 4171/2671/242 4170/2678/249 4172/2679/249 +f 4181/2680/250 4159/2681/244 4182/2669/244 +f 4174/2682/241 4166/2683/245 4175/2672/245 +f 4177/2684/240 4163/2685/247 4178/2675/247 +f 4180/2686/243 4160/2687/250 4181/2680/250 +f 4173/2688/251 4167/2689/241 4174/2690/241 +f 4176/2674/246 4164/2691/240 4177/2684/240 +f 4179/2677/248 4161/2692/243 4180/2686/243 +f 4172/2679/249 4168/2693/251 4173/2688/251 +f 4206/2694/244 4193/2695/242 4195/2696/242 +f 4199/2697/245 4189/2698/246 4200/2699/246 +f 4202/2700/247 4186/2701/248 4203/2702/248 +f 4195/2696/242 4194/2703/249 4196/2704/249 +f 4205/2705/250 4183/2706/244 4206/2694/244 +f 4198/2707/241 4190/2708/245 4199/2697/245 +f 4201/2709/240 4187/2710/247 4202/2700/247 +f 4204/2711/243 4184/2712/250 4205/2705/250 +f 4197/2713/251 4191/2714/241 4198/2715/241 +f 4200/2699/246 4188/2716/240 4201/2709/240 +f 4203/2702/248 4185/2717/243 4204/2711/243 +f 4196/2704/249 4192/2718/251 4197/2713/251 +f 4230/2719/246 4217/2720/240 4219/2721/240 +f 4223/2722/250 4213/2723/244 4224/2724/244 +f 4226/2725/249 4210/2726/251 4227/2727/251 +f 4219/2721/240 4218/2728/247 4220/2729/247 +f 4229/2730/245 4207/2731/246 4230/2719/246 +f 4222/2732/243 4214/2733/250 4223/2722/250 +f 4225/2734/242 4211/2735/249 4226/2725/249 +f 4228/2736/241 4208/2737/245 4229/2730/245 +f 4221/2738/248 4215/2739/243 4222/2740/243 +f 4224/2724/244 4212/2741/242 4225/2734/242 +f 4227/2727/251 4209/2742/241 4228/2736/241 +f 4220/2729/247 4216/2743/248 4221/2738/248 +f 4254/2744/246 4241/2745/240 4243/2746/240 +f 4247/2747/250 4237/2748/244 4248/2749/244 +f 4250/2750/249 4234/2751/251 4251/2752/251 +f 4243/2746/240 4242/2753/247 4244/2754/247 +f 4253/2755/245 4231/2756/246 4254/2744/246 +f 4246/2757/243 4238/2758/250 4247/2747/250 +f 4249/2759/242 4235/2760/249 4250/2750/249 +f 4252/2761/241 4232/2762/245 4253/2755/245 +f 4245/2763/248 4239/2764/243 4246/2765/243 +f 4248/2749/244 4236/2766/242 4249/2759/242 +f 4251/2752/251 4233/2767/241 4252/2761/241 +f 4244/2754/247 4240/2768/248 4245/2763/248 +f 4278/2769/246 4265/2770/240 4267/2771/240 +f 4271/2772/250 4261/2773/244 4272/2774/244 +f 4274/2775/249 4258/2776/251 4275/2777/251 +f 4267/2771/240 4266/2778/247 4268/2779/247 +f 4277/2780/245 4255/2781/246 4278/2769/246 +f 4270/2782/243 4262/2783/250 4271/2772/250 +f 4273/2784/242 4259/2785/249 4274/2775/249 +f 4276/2786/241 4256/2787/245 4277/2780/245 +f 4269/2788/248 4263/2789/243 4270/2790/243 +f 4272/2774/244 4260/2791/242 4273/2784/242 +f 4275/2777/251 4257/2792/241 4276/2786/241 +f 4268/2779/247 4264/2793/248 4269/2788/248 +f 4302/2794/246 4289/2795/240 4291/2796/240 +f 4295/2797/250 4285/2798/244 4296/2799/244 +f 4298/2800/249 4282/2801/251 4299/2802/251 +f 4291/2796/240 4290/2803/247 4292/2804/247 +f 4301/2805/245 4279/2806/246 4302/2794/246 +f 4294/2807/243 4286/2808/250 4295/2797/250 +f 4297/2809/242 4283/2810/249 4298/2800/249 +f 4300/2811/241 4280/2812/245 4301/2805/245 +f 4293/2813/248 4287/2814/243 4294/2815/243 +f 4296/2799/244 4284/2816/242 4297/2809/242 +f 4299/2802/251 4281/2817/241 4300/2811/241 +f 4292/2804/247 4288/2818/248 4293/2813/248 +f 4326/2819/246 4313/2820/240 4315/2821/240 +f 4319/2822/250 4309/2823/244 4320/2824/244 +f 4322/2825/249 4306/2826/251 4323/2827/251 +f 4315/2821/240 4314/2828/247 4316/2829/247 +f 4325/2830/245 4303/2831/246 4326/2819/246 +f 4318/2832/243 4310/2833/250 4319/2822/250 +f 4321/2834/242 4307/2835/249 4322/2825/249 +f 4324/2836/241 4304/2837/245 4325/2830/245 +f 4317/2838/248 4311/2839/243 4318/2840/243 +f 4320/2824/244 4308/2841/242 4321/2834/242 +f 4323/2827/251 4305/2842/241 4324/2836/241 +f 4316/2829/247 4312/2843/248 4317/2838/248 +f 4486/2844/279 4471/2845/239 4478/2846/279 +f 4484/2847/290 4477/2848/242 4476/2849/290 +f 4482/2850/270 4475/2851/238 4474/2852/270 +f 4480/2853/291 4473/2854/240 4472/2855/291 +f 4485/2856/242 4478/2846/279 4477/2848/242 +f 4483/2857/238 4476/2849/290 4475/2858/238 +f 4481/2859/240 4474/2852/270 4473/2854/240 +f 4479/2860/239 4472/2855/291 4471/2845/239 +f 4498/2861/324 4491/2862/238 4490/2863/270 +f 4496/2864/325 4489/2865/240 4488/2866/291 +f 4501/2867/326 4494/2868/279 4493/2869/242 +f 4499/2870/271 4492/2871/290 4491/2872/238 +f 4497/2873/327 4490/2863/270 4489/2865/240 +f 4495/2874/328 4488/2866/291 4487/2875/239 +f 4502/2876/329 4487/2875/239 4494/2868/279 +f 4500/2877/330 4493/2869/242 4492/2871/290 +f 4501/2878/326 4509/2879/332 4502/2876/329 +f 4497/2880/327 4506/2881/333 4498/2882/324 +f 4495/2874/328 4504/2883/334 4496/2864/325 +f 4495/2874/328 4509/2879/332 4503/2884/267 +f 4501/2878/326 4507/2885/335 4508/2886/331 +f 4496/2864/325 4505/2887/336 4497/2880/327 +f 4504/2883/334 4512/2888/338 4505/2887/336 +f 4508/2886/331 4516/2889/339 4509/2879/332 +f 4506/2881/333 4512/2888/338 4513/2890/340 +f 4503/2884/267 4511/2891/337 4504/2883/334 +f 4503/2884/267 4516/2889/339 4510/2892/341 +f 4507/2885/335 4515/2893/342 4508/2886/331 +f 4499/2894/271 4507/2885/335 4500/2895/330 +f 4507/2885/335 4499/2894/271 4514/2896/343 +f 4498/2882/324 4506/2881/333 4499/2897/271 +f 4506/2881/333 4513/2890/340 4499/2897/271 +f 4515/2898/342 4524/2899/344 4516/2889/339 +f 4512/2900/338 4521/2901/345 4513/2902/340 +f 4510/2892/341 4519/2903/346 4511/2891/337 +f 4513/2902/340 4517/2904/347 4499/2905/271 +f 4516/2889/339 4518/2906/267 4510/2892/341 +f 4499/2907/271 4522/2908/348 4514/2909/343 +f 4514/2909/343 4523/2910/349 4515/2898/342 +f 4511/2891/337 4520/2911/350 4512/2900/338 +f 4517/2904/347 4528/2912/351 4525/2913/271 +f 4522/2908/348 4530/2914/352 4523/2915/349 +f 4520/2916/350 4526/2917/353 4527/2918/354 +f 4517/2919/347 4529/2920/355 4522/2908/348 +f 4523/2915/349 4531/2921/356 4524/2922/344 +f 4521/2901/345 4527/2918/354 4528/2912/351 +f 4529/2920/355 4532/2923/360 4536/2924/357 +f 4530/2914/352 4536/2924/357 4537/2925/358 +f 4526/2917/353 4534/2926/359 4527/2918/354 +f 4528/2912/351 4532/2927/360 4525/2913/271 +f 4531/2921/356 4537/2925/358 4538/2928/361 +f 4527/2918/354 4535/2929/362 4528/2912/351 +f 4524/2922/344 4531/2921/356 4518/2930/267 +f 4531/2921/356 4538/2928/361 4518/2930/267 +f 4518/2930/267 4526/2917/353 4519/2931/346 +f 4526/2917/353 4518/2930/267 4533/2932/363 +f 4536/2924/357 4545/2933/242 4537/2934/358 +f 4533/2935/363 4542/2936/240 4534/2937/359 +f 4518/2938/267 4541/2939/291 4533/2935/363 +f 4535/2929/362 4540/2940/238 4532/2927/360 +f 4538/2941/361 4539/2942/239 4518/2938/267 +f 4537/2934/358 4546/2943/279 4538/2941/361 +f 4534/2937/359 4543/2944/270 4535/2929/362 +f 4532/2923/360 4544/2945/290 4536/2924/357 +f 4558/2946/324 4551/2947/238 4550/2948/270 +f 4556/2949/325 4549/2950/240 4548/2951/291 +f 4561/2952/326 4554/2953/279 4553/2954/242 +f 4559/2955/271 4552/2956/290 4551/2957/238 +f 4557/2958/327 4550/2948/270 4549/2950/240 +f 4555/2959/328 4548/2951/291 4547/2960/239 +f 4562/2961/329 4547/2960/239 4554/2953/279 +f 4560/2962/330 4553/2954/242 4552/2956/290 +f 4561/2963/326 4569/2964/332 4562/2961/329 +f 4557/2965/327 4566/2966/333 4558/2967/324 +f 4555/2959/328 4564/2968/334 4556/2949/325 +f 4555/2959/328 4569/2964/332 4563/2969/267 +f 4561/2963/326 4567/2970/335 4568/2971/331 +f 4556/2949/325 4565/2972/336 4557/2965/327 +f 4565/2972/336 4571/2973/337 4572/2974/338 +f 4568/2971/331 4576/2975/339 4569/2964/332 +f 4566/2966/333 4572/2974/338 4573/2976/340 +f 4563/2969/267 4571/2973/337 4564/2968/334 +f 4563/2969/267 4576/2975/339 4570/2977/341 +f 4567/2970/335 4575/2978/342 4568/2971/331 +f 4559/2979/271 4567/2970/335 4560/2980/330 +f 4567/2970/335 4559/2979/271 4574/2981/343 +f 4558/2967/324 4566/2966/333 4559/2982/271 +f 4566/2966/333 4573/2976/340 4559/2982/271 +f 4575/2983/342 4584/2984/344 4576/2975/339 +f 4572/2985/338 4581/2986/345 4573/2987/340 +f 4570/2977/341 4579/2988/346 4571/2973/337 +f 4573/2987/340 4577/2989/347 4559/2990/271 +f 4576/2975/339 4578/2991/267 4570/2977/341 +f 4559/2992/271 4582/2993/348 4574/2994/343 +f 4574/2994/343 4583/2995/349 4575/2983/342 +f 4571/2973/337 4580/2996/350 4572/2985/338 +f 4577/2989/347 4588/2997/351 4585/2998/271 +f 4582/2993/348 4590/2999/352 4583/3000/349 +f 4580/3001/350 4586/3002/353 4587/3003/354 +f 4577/3004/347 4589/3005/355 4582/2993/348 +f 4583/3000/349 4591/3006/356 4584/3007/344 +f 4581/2986/345 4587/3003/354 4588/2997/351 +f 4589/3005/355 4592/3008/360 4596/3009/357 +f 4590/2999/352 4596/3009/357 4597/3010/358 +f 4586/3002/353 4594/3011/359 4587/3003/354 +f 4588/2997/351 4592/3012/360 4585/2998/271 +f 4591/3006/356 4597/3010/358 4598/3013/361 +f 4588/2997/351 4594/3011/359 4595/3014/362 +f 4584/3007/344 4591/3006/356 4578/3015/267 +f 4591/3006/356 4598/3013/361 4578/3015/267 +f 4578/3015/267 4586/3002/353 4579/3016/346 +f 4586/3002/353 4578/3015/267 4593/3017/363 +f 4596/3009/357 4605/3018/242 4597/3019/358 +f 4593/3020/363 4602/3021/240 4594/3022/359 +f 4578/3023/267 4601/3024/291 4593/3020/363 +f 4595/3014/362 4600/3025/238 4592/3012/360 +f 4598/3026/361 4599/3027/239 4578/3023/267 +f 4597/3019/358 4606/3028/279 4598/3026/361 +f 4594/3022/359 4603/3029/270 4595/3014/362 +f 4592/3008/360 4604/3030/290 4596/3009/357 +f 4618/3031/324 4611/3032/238 4610/3033/270 +f 4616/3034/325 4609/3035/240 4608/3036/291 +f 4621/3037/326 4614/3038/279 4613/3039/242 +f 4619/3040/271 4612/3041/290 4611/3042/238 +f 4617/3043/327 4610/3033/270 4609/3035/240 +f 4615/3044/328 4608/3036/291 4607/3045/239 +f 4622/3046/329 4607/3045/239 4614/3038/279 +f 4620/3047/330 4613/3039/242 4612/3041/290 +f 4622/3046/329 4628/3048/331 4629/3049/332 +f 4617/3050/327 4626/3051/333 4618/3052/324 +f 4615/3044/328 4624/3053/334 4616/3034/325 +f 4622/3046/329 4623/3054/267 4615/3044/328 +f 4621/3055/326 4627/3056/335 4628/3048/331 +f 4616/3034/325 4625/3057/336 4617/3050/327 +f 4625/3057/336 4631/3058/337 4632/3059/338 +f 4628/3048/331 4636/3060/339 4629/3049/332 +f 4626/3051/333 4632/3059/338 4633/3061/340 +f 4623/3054/267 4631/3058/337 4624/3053/334 +f 4623/3054/267 4636/3060/339 4630/3062/341 +f 4627/3056/335 4635/3063/342 4628/3048/331 +f 4619/3064/271 4627/3056/335 4620/3065/330 +f 4627/3056/335 4619/3064/271 4634/3066/343 +f 4618/3052/324 4626/3051/333 4619/3067/271 +f 4626/3051/333 4633/3061/340 4619/3067/271 +f 4635/3068/342 4644/3069/344 4636/3060/339 +f 4632/3070/338 4641/3071/345 4633/3072/340 +f 4630/3062/341 4639/3073/346 4631/3058/337 +f 4633/3072/340 4637/3074/347 4619/3075/271 +f 4636/3060/339 4638/3076/267 4630/3062/341 +f 4619/3077/271 4642/3078/348 4634/3079/343 +f 4634/3079/343 4643/3080/349 4635/3068/342 +f 4631/3058/337 4640/3081/350 4632/3070/338 +f 4637/3074/347 4648/3082/351 4645/3083/271 +f 4642/3078/348 4650/3084/352 4643/3085/349 +f 4640/3086/350 4646/3087/353 4647/3088/354 +f 4637/3089/347 4649/3090/355 4642/3078/348 +f 4643/3085/349 4651/3091/356 4644/3092/344 +f 4641/3071/345 4647/3088/354 4648/3082/351 +f 4649/3090/355 4652/3093/360 4656/3094/357 +f 4650/3084/352 4656/3094/357 4657/3095/358 +f 4646/3087/353 4654/3096/359 4647/3088/354 +f 4648/3082/351 4652/3097/360 4645/3083/271 +f 4651/3091/356 4657/3095/358 4658/3098/361 +f 4647/3088/354 4655/3099/362 4648/3082/351 +f 4644/3092/344 4651/3091/356 4638/3100/267 +f 4651/3091/356 4658/3098/361 4638/3100/267 +f 4638/3100/267 4646/3087/353 4639/3101/346 +f 4646/3087/353 4638/3100/267 4653/3102/363 +f 4656/3094/357 4665/3103/242 4657/3104/358 +f 4653/3105/363 4662/3106/240 4654/3107/359 +f 4638/3108/267 4661/3109/291 4653/3105/363 +f 4655/3099/362 4660/3110/238 4652/3097/360 +f 4658/3111/361 4659/3112/239 4638/3108/267 +f 4657/3104/358 4666/3113/279 4658/3111/361 +f 4654/3107/359 4663/3114/270 4655/3099/362 +f 4652/3093/360 4664/3115/290 4656/3094/357 +f 4678/3116/324 4671/3117/238 4670/3118/270 +f 4676/3119/325 4669/3120/240 4668/3121/291 +f 4681/3122/326 4674/3123/279 4673/3124/242 +f 4679/3125/271 4672/3126/290 4671/3127/238 +f 4677/3128/327 4670/3118/270 4669/3120/240 +f 4675/3129/328 4668/3121/291 4667/3130/239 +f 4682/3131/329 4667/3130/239 4674/3123/279 +f 4680/3132/330 4673/3124/242 4672/3126/290 +f 4681/3133/326 4689/3134/332 4682/3131/329 +f 4677/3135/327 4686/3136/333 4678/3137/324 +f 4676/3119/325 4683/3138/267 4684/3139/334 +f 4682/3131/329 4683/3138/267 4675/3129/328 +f 4681/3133/326 4687/3140/335 4688/3141/331 +f 4676/3119/325 4685/3142/336 4677/3135/327 +f 4685/3142/336 4691/3143/337 4692/3144/338 +f 4688/3141/331 4696/3145/339 4689/3134/332 +f 4686/3136/333 4692/3144/338 4693/3146/340 +f 4683/3138/267 4691/3143/337 4684/3139/334 +f 4683/3138/267 4696/3145/339 4690/3147/341 +f 4687/3140/335 4695/3148/342 4688/3141/331 +f 4679/3149/271 4687/3140/335 4680/3150/330 +f 4687/3140/335 4679/3149/271 4694/3151/343 +f 4678/3137/324 4686/3136/333 4679/3152/271 +f 4686/3136/333 4693/3146/340 4679/3152/271 +f 4695/3153/342 4704/3154/344 4696/3145/339 +f 4692/3155/338 4701/3156/345 4693/3157/340 +f 4690/3147/341 4699/3158/346 4691/3143/337 +f 4693/3157/340 4697/3159/347 4679/3160/271 +f 4696/3145/339 4698/3161/267 4690/3147/341 +f 4679/3162/271 4702/3163/348 4694/3164/343 +f 4694/3164/343 4703/3165/349 4695/3153/342 +f 4691/3143/337 4700/3166/350 4692/3155/338 +f 4697/3159/347 4708/3167/351 4705/3168/271 +f 4702/3163/348 4710/3169/352 4703/3170/349 +f 4700/3171/350 4706/3172/353 4707/3173/354 +f 4697/3174/347 4709/3175/355 4702/3163/348 +f 4703/3170/349 4711/3176/356 4704/3177/344 +f 4701/3156/345 4707/3173/354 4708/3167/351 +f 4709/3175/355 4712/3178/360 4716/3179/357 +f 4710/3169/352 4716/3179/357 4717/3180/358 +f 4706/3172/353 4714/3181/359 4707/3173/354 +f 4708/3167/351 4712/3182/360 4705/3168/271 +f 4711/3176/356 4717/3180/358 4718/3183/361 +f 4708/3167/351 4714/3181/359 4715/3184/362 +f 4704/3177/344 4711/3176/356 4698/3185/267 +f 4711/3176/356 4718/3183/361 4698/3185/267 +f 4698/3185/267 4706/3172/353 4699/3186/346 +f 4706/3172/353 4698/3185/267 4713/3187/363 +f 4716/3179/357 4725/3188/242 4717/3189/358 +f 4713/3190/363 4722/3191/240 4714/3192/359 +f 4698/3193/267 4721/3194/291 4713/3190/363 +f 4715/3184/362 4720/3195/238 4712/3182/360 +f 4718/3196/361 4719/3197/239 4698/3193/267 +f 4717/3189/358 4726/3198/279 4718/3196/361 +f 4714/3192/359 4723/3199/270 4715/3184/362 +f 4712/3178/360 4724/3200/290 4716/3179/357 +f 4738/3201/384 4731/3202/238 4730/3203/290 +f 4736/3204/385 4729/3205/242 4728/3206/279 +f 4741/3207/386 4734/3208/291 4733/3209/240 +f 4739/3210/265 4732/3211/270 4731/3212/238 +f 4737/3213/387 4730/3203/290 4729/3205/242 +f 4735/3214/388 4728/3206/279 4727/3215/239 +f 4742/3216/389 4727/3215/239 4734/3208/291 +f 4740/3217/390 4733/3209/240 4732/3211/270 +f 4742/3216/389 4748/3218/391 4749/3219/392 +f 4738/3220/384 4745/3221/393 4746/3222/394 +f 4735/3214/388 4744/3223/395 4736/3204/385 +f 4735/3214/388 4749/3219/392 4743/3224/269 +f 4740/3225/390 4748/3218/391 4741/3226/386 +f 4737/3227/387 4744/3223/395 4745/3221/393 +f 4745/3221/393 4751/3228/396 4752/3229/397 +f 4748/3218/391 4756/3230/398 4749/3219/392 +f 4746/3222/394 4752/3229/397 4753/3231/399 +f 4743/3224/269 4751/3228/396 4744/3223/395 +f 4743/3224/269 4756/3230/398 4750/3232/400 +f 4747/3233/401 4755/3234/402 4748/3218/391 +f 4739/3235/265 4747/3233/401 4740/3225/390 +f 4747/3233/401 4739/3235/265 4754/3236/403 +f 4738/3220/384 4746/3222/394 4739/3237/265 +f 4746/3222/394 4753/3231/399 4739/3237/265 +f 4755/3238/402 4764/3239/404 4756/3230/398 +f 4752/3240/397 4761/3241/405 4753/3242/399 +f 4750/3232/400 4759/3243/406 4751/3228/396 +f 4753/3242/399 4757/3244/407 4739/3245/265 +f 4756/3230/398 4758/3246/269 4750/3232/400 +f 4739/3247/265 4762/3248/408 4754/3249/403 +f 4754/3249/403 4763/3250/409 4755/3238/402 +f 4751/3228/396 4760/3251/410 4752/3240/397 +f 4757/3244/407 4768/3252/411 4765/3253/265 +f 4762/3248/408 4770/3254/412 4763/3255/409 +f 4760/3256/410 4766/3257/413 4767/3258/414 +f 4757/3259/407 4769/3260/415 4762/3248/408 +f 4763/3255/409 4771/3261/416 4764/3262/404 +f 4761/3241/405 4767/3258/414 4768/3252/411 +f 4769/3260/415 4772/3263/417 4776/3264/418 +f 4770/3254/412 4776/3264/418 4777/3265/419 +f 4766/3257/413 4774/3266/420 4767/3258/414 +f 4768/3252/411 4772/3267/417 4765/3253/265 +f 4771/3261/416 4777/3265/419 4778/3268/421 +f 4767/3258/414 4775/3269/422 4768/3252/411 +f 4764/3262/404 4771/3261/416 4758/3270/269 +f 4771/3261/416 4778/3268/421 4758/3270/269 +f 4758/3270/269 4766/3257/413 4759/3271/406 +f 4766/3257/413 4758/3270/269 4773/3272/423 +f 4776/3264/418 4785/3273/240 4777/3274/419 +f 4774/3275/420 4781/3276/279 4782/3277/242 +f 4758/3278/269 4781/3276/279 4773/3279/423 +f 4775/3269/422 4780/3280/238 4772/3267/417 +f 4778/3281/421 4779/3282/239 4758/3278/269 +f 4777/3274/419 4786/3283/291 4778/3281/421 +f 4774/3275/420 4783/3284/290 4775/3269/422 +f 4772/3263/417 4784/3285/270 4776/3264/418 +f 4798/3286/384 4791/3287/238 4790/3288/290 +f 4796/3289/385 4789/3290/242 4788/3291/279 +f 4801/3292/386 4794/3293/291 4793/3294/240 +f 4799/3295/265 4792/3296/270 4791/3297/238 +f 4797/3298/387 4790/3288/290 4789/3290/242 +f 4795/3299/388 4788/3291/279 4787/3300/239 +f 4802/3301/389 4787/3300/239 4794/3293/291 +f 4800/3302/390 4793/3294/240 4792/3296/270 +f 4802/3301/389 4808/3303/391 4809/3304/392 +f 4797/3305/387 4806/3306/394 4798/3307/384 +f 4795/3299/388 4804/3308/395 4796/3289/385 +f 4795/3299/388 4809/3304/392 4803/3309/269 +f 4801/3310/386 4807/3311/401 4808/3303/391 +f 4796/3289/385 4805/3312/393 4797/3305/387 +f 4805/3312/393 4811/3313/396 4812/3314/397 +f 4808/3303/391 4816/3315/398 4809/3304/392 +f 4806/3306/394 4812/3314/397 4813/3316/399 +f 4803/3309/269 4811/3313/396 4804/3308/395 +f 4803/3309/269 4816/3315/398 4810/3317/400 +f 4807/3311/401 4815/3318/402 4808/3303/391 +f 4799/3319/265 4807/3311/401 4800/3320/390 +f 4807/3311/401 4799/3319/265 4814/3321/403 +f 4798/3307/384 4806/3306/394 4799/3322/265 +f 4806/3306/394 4813/3316/399 4799/3322/265 +f 4815/3323/402 4824/3324/404 4816/3315/398 +f 4812/3325/397 4821/3326/405 4813/3327/399 +f 4810/3317/400 4819/3328/406 4811/3313/396 +f 4813/3327/399 4817/3329/407 4799/3330/265 +f 4816/3315/398 4818/3331/269 4810/3317/400 +f 4799/3332/265 4822/3333/408 4814/3334/403 +f 4814/3334/403 4823/3335/409 4815/3323/402 +f 4811/3313/396 4820/3336/410 4812/3325/397 +f 4821/3326/405 4825/3337/265 4817/3329/407 +f 4822/3333/408 4830/3338/412 4823/3339/409 +f 4820/3340/410 4826/3341/413 4827/3342/414 +f 4817/3343/407 4829/3344/415 4822/3333/408 +f 4823/3339/409 4831/3345/416 4824/3346/404 +f 4821/3326/405 4827/3342/414 4828/3347/411 +f 4829/3344/415 4832/3348/417 4836/3349/418 +f 4830/3338/412 4836/3349/418 4837/3350/419 +f 4826/3341/413 4834/3351/420 4827/3342/414 +f 4828/3347/411 4832/3352/417 4825/3337/265 +f 4831/3345/416 4837/3350/419 4838/3353/421 +f 4827/3342/414 4835/3354/422 4828/3347/411 +f 4824/3346/404 4831/3345/416 4818/3355/269 +f 4831/3345/416 4838/3353/421 4818/3355/269 +f 4818/3355/269 4826/3341/413 4819/3356/406 +f 4826/3341/413 4818/3355/269 4833/3357/423 +f 4836/3349/418 4845/3358/240 4837/3359/419 +f 4833/3360/423 4842/3361/242 4834/3362/420 +f 4818/3363/269 4841/3364/279 4833/3360/423 +f 4835/3354/422 4840/3365/238 4832/3352/417 +f 4838/3366/421 4839/3367/239 4818/3363/269 +f 4837/3359/419 4846/3368/291 4838/3366/421 +f 4834/3362/420 4843/3369/290 4835/3354/422 +f 4832/3348/417 4844/3370/270 4836/3349/418 +f 4858/3371/384 4851/3372/238 4850/3373/290 +f 4856/3374/385 4849/3375/242 4848/3376/279 +f 4861/3377/386 4854/3378/291 4853/3379/240 +f 4859/3380/265 4852/3381/270 4851/3382/238 +f 4857/3383/387 4850/3373/290 4849/3375/242 +f 4855/3384/388 4848/3376/279 4847/3385/239 +f 4862/3386/389 4847/3385/239 4854/3378/291 +f 4860/3387/390 4853/3379/240 4852/3381/270 +f 4862/3386/389 4868/3388/391 4869/3389/392 +f 4857/3390/387 4866/3391/394 4858/3392/384 +f 4855/3384/388 4864/3393/395 4856/3374/385 +f 4855/3384/388 4869/3389/392 4863/3394/269 +f 4861/3395/386 4867/3396/401 4868/3388/391 +f 4856/3374/385 4865/3397/393 4857/3390/387 +f 4864/3393/395 4872/3398/397 4865/3397/393 +f 4868/3388/391 4876/3399/398 4869/3389/392 +f 4866/3391/394 4872/3398/397 4873/3400/399 +f 4863/3394/269 4871/3401/396 4864/3393/395 +f 4863/3394/269 4876/3399/398 4870/3402/400 +f 4867/3396/401 4875/3403/402 4868/3388/391 +f 4859/3404/265 4867/3396/401 4860/3405/390 +f 4867/3396/401 4859/3404/265 4874/3406/403 +f 4858/3392/384 4866/3391/394 4859/3407/265 +f 4866/3391/394 4873/3400/399 4859/3407/265 +f 4875/3408/402 4884/3409/404 4876/3399/398 +f 4872/3410/397 4881/3411/405 4873/3412/399 +f 4870/3402/400 4879/3413/406 4871/3401/396 +f 4873/3412/399 4877/3414/407 4859/3415/265 +f 4876/3399/398 4878/3416/269 4870/3402/400 +f 4859/3417/265 4882/3418/408 4874/3419/403 +f 4874/3419/403 4883/3420/409 4875/3408/402 +f 4871/3401/396 4880/3421/410 4872/3410/397 +f 4877/3414/407 4888/3422/411 4885/3423/265 +f 4882/3418/408 4890/3424/412 4883/3425/409 +f 4880/3426/410 4886/3427/413 4887/3428/414 +f 4877/3429/407 4889/3430/415 4882/3418/408 +f 4883/3425/409 4891/3431/416 4884/3432/404 +f 4881/3411/405 4887/3428/414 4888/3422/411 +f 4889/3430/415 4892/3433/417 4896/3434/418 +f 4890/3424/412 4896/3434/418 4897/3435/419 +f 4886/3427/413 4894/3436/420 4887/3428/414 +f 4888/3422/411 4892/3437/417 4885/3423/265 +f 4891/3431/416 4897/3435/419 4898/3438/421 +f 4887/3428/414 4895/3439/422 4888/3422/411 +f 4884/3432/404 4891/3431/416 4878/3440/269 +f 4891/3431/416 4898/3438/421 4878/3440/269 +f 4878/3440/269 4886/3427/413 4879/3441/406 +f 4886/3427/413 4878/3440/269 4893/3442/423 +f 4896/3434/418 4905/3443/240 4897/3444/419 +f 4893/3445/423 4902/3446/242 4894/3447/420 +f 4878/3448/269 4901/3449/279 4893/3445/423 +f 4895/3439/422 4900/3450/238 4892/3437/417 +f 4898/3451/421 4899/3452/239 4878/3448/269 +f 4897/3444/419 4906/3453/291 4898/3451/421 +f 4894/3447/420 4903/3454/290 4895/3439/422 +f 4892/3433/417 4904/3455/270 4896/3434/418 +f 4910/3456/290 4919/3457/265 4911/3458/238 +f 4916/3459/385 4909/3460/242 4908/3461/279 +f 4921/3462/386 4914/3463/291 4913/3464/240 +f 4919/3465/265 4912/3466/270 4911/3467/238 +f 4917/3468/387 4910/3456/290 4909/3460/242 +f 4915/3469/388 4908/3461/279 4907/3470/239 +f 4922/3471/389 4907/3470/239 4914/3463/291 +f 4920/3472/390 4913/3464/240 4912/3466/270 +f 4921/3473/386 4929/3474/392 4922/3471/389 +f 4917/3475/387 4926/3476/394 4918/3477/384 +f 4915/3469/388 4924/3478/395 4916/3459/385 +f 4915/3469/388 4929/3474/392 4923/3479/269 +f 4921/3473/386 4927/3480/401 4928/3481/391 +f 4916/3459/385 4925/3482/393 4917/3475/387 +f 4925/3482/393 4931/3483/396 4932/3484/397 +f 4928/3481/391 4936/3485/398 4929/3474/392 +f 4926/3476/394 4932/3484/397 4933/3486/399 +f 4923/3479/269 4931/3483/396 4924/3478/395 +f 4923/3479/269 4936/3485/398 4930/3487/400 +f 4927/3480/401 4935/3488/402 4928/3481/391 +f 4919/3489/265 4927/3480/401 4920/3490/390 +f 4927/3480/401 4919/3489/265 4934/3491/403 +f 4918/3477/384 4926/3476/394 4919/3492/265 +f 4926/3476/394 4933/3486/399 4919/3492/265 +f 4935/3493/402 4944/3494/404 4936/3485/398 +f 4932/3495/397 4941/3496/405 4933/3497/399 +f 4930/3487/400 4939/3498/406 4931/3483/396 +f 4933/3497/399 4937/3499/407 4919/3500/265 +f 4936/3485/398 4938/3501/269 4930/3487/400 +f 4919/3502/265 4942/3503/408 4934/3504/403 +f 4934/3504/403 4943/3505/409 4935/3493/402 +f 4931/3483/396 4940/3506/410 4932/3495/397 +f 4937/3499/407 4948/3507/411 4945/3508/265 +f 4942/3503/408 4950/3509/412 4943/3510/409 +f 4940/3511/410 4946/3512/413 4947/3513/414 +f 4937/3514/407 4949/3515/415 4942/3503/408 +f 4943/3510/409 4951/3516/416 4944/3517/404 +f 4941/3496/405 4947/3513/414 4948/3507/411 +f 4949/3515/415 4952/3518/417 4956/3519/418 +f 4950/3509/412 4956/3519/418 4957/3520/419 +f 4946/3512/413 4954/3521/420 4947/3513/414 +f 4945/3508/265 4955/3522/422 4952/3523/417 +f 4951/3516/416 4957/3520/419 4958/3524/421 +f 4947/3513/414 4955/3522/422 4948/3507/411 +f 4944/3517/404 4951/3516/416 4938/3525/269 +f 4951/3516/416 4958/3524/421 4938/3525/269 +f 4938/3525/269 4946/3512/413 4939/3526/406 +f 4946/3512/413 4938/3525/269 4953/3527/423 +f 4956/3519/418 4965/3528/240 4957/3529/419 +f 4954/3530/420 4961/3531/279 4962/3532/242 +f 4953/3533/423 4959/3534/239 4961/3531/279 +f 4955/3522/422 4960/3535/238 4952/3523/417 +f 4938/3536/269 4966/3537/291 4959/3534/239 +f 4958/3538/421 4965/3528/240 4966/3537/291 +f 4954/3530/420 4963/3539/290 4955/3522/422 +f 4952/3518/417 4964/3540/270 4956/3519/418 +f 4978/3541/384 4971/3542/238 4970/3543/290 +f 4976/3544/385 4969/3545/242 4968/3546/279 +f 4981/3547/386 4974/3548/291 4973/3549/240 +f 4979/3550/265 4972/3551/270 4971/3552/238 +f 4977/3553/387 4970/3543/290 4969/3545/242 +f 4975/3554/388 4968/3546/279 4967/3555/239 +f 4982/3556/389 4967/3555/239 4974/3548/291 +f 4980/3557/390 4973/3549/240 4972/3551/270 +f 4982/3556/389 4988/3558/391 4989/3559/392 +f 4977/3560/387 4986/3561/394 4978/3562/384 +f 4975/3554/388 4984/3563/395 4976/3544/385 +f 4982/3556/389 4983/3564/269 4975/3554/388 +f 4981/3565/386 4987/3566/401 4988/3558/391 +f 4976/3544/385 4985/3567/393 4977/3560/387 +f 4985/3567/393 4991/3568/396 4992/3569/397 +f 4988/3558/391 4996/3570/398 4989/3559/392 +f 4986/3561/394 4992/3569/397 4993/3571/399 +f 4983/3564/269 4991/3568/396 4984/3563/395 +f 4983/3564/269 4996/3570/398 4990/3572/400 +f 4987/3566/401 4995/3573/402 4988/3558/391 +f 4979/3574/265 4987/3566/401 4980/3575/390 +f 4987/3566/401 4979/3574/265 4994/3576/403 +f 4978/3562/384 4986/3561/394 4979/3577/265 +f 4986/3561/394 4993/3571/399 4979/3577/265 +f 4995/3578/402 5004/3579/404 4996/3570/398 +f 4992/3580/397 5001/3581/405 4993/3582/399 +f 4990/3572/400 4999/3583/406 4991/3568/396 +f 4993/3582/399 4997/3584/407 4979/3585/265 +f 4996/3570/398 4998/3586/269 4990/3572/400 +f 4979/3587/265 5002/3588/408 4994/3589/403 +f 4994/3589/403 5003/3590/409 4995/3578/402 +f 4991/3568/396 5000/3591/410 4992/3580/397 +f 4997/3584/407 5008/3592/411 5005/3593/265 +f 5002/3588/408 5010/3594/412 5003/3595/409 +f 5000/3596/410 5006/3597/413 5007/3598/414 +f 4997/3599/407 5009/3600/415 5002/3588/408 +f 5003/3595/409 5011/3601/416 5004/3602/404 +f 5001/3581/405 5007/3598/414 5008/3592/411 +f 5009/3600/415 5012/3603/417 5016/3604/418 +f 5010/3594/412 5016/3604/418 5017/3605/419 +f 5006/3597/413 5014/3606/420 5007/3598/414 +f 5008/3592/411 5012/3607/417 5005/3593/265 +f 5011/3601/416 5017/3605/419 5018/3608/421 +f 5007/3598/414 5015/3609/422 5008/3592/411 +f 5004/3602/404 5011/3601/416 4998/3610/269 +f 5011/3601/416 5018/3608/421 4998/3610/269 +f 4998/3610/269 5006/3597/413 4999/3611/406 +f 5006/3597/413 4998/3610/269 5013/3612/423 +f 5016/3604/418 5025/3613/240 5017/3614/419 +f 5013/3615/423 5022/3616/242 5014/3617/420 +f 4998/3618/269 5021/3619/279 5013/3615/423 +f 5015/3609/422 5020/3620/238 5012/3607/417 +f 5018/3621/421 5019/3622/239 4998/3618/269 +f 5017/3614/419 5026/3623/291 5018/3621/421 +f 5014/3617/420 5023/3624/290 5015/3609/422 +f 5012/3603/417 5024/3625/270 5016/3604/418 +f 5038/3626/384 5031/3627/238 5030/3628/290 +f 5036/3629/385 5029/3630/242 5028/3631/279 +f 5041/3632/386 5034/3633/291 5033/3634/240 +f 5039/3635/265 5032/3636/270 5031/3637/238 +f 5037/3638/387 5030/3628/290 5029/3630/242 +f 5035/3639/388 5028/3631/279 5027/3640/239 +f 5042/3641/389 5027/3640/239 5034/3633/291 +f 5040/3642/390 5033/3634/240 5032/3636/270 +f 5041/3643/386 5049/3644/392 5042/3641/389 +f 5037/3645/387 5046/3646/394 5038/3647/384 +f 5036/3629/385 5043/3648/269 5044/3649/395 +f 5042/3641/389 5043/3648/269 5035/3639/388 +f 5041/3643/386 5047/3650/401 5048/3651/391 +f 5036/3629/385 5045/3652/393 5037/3645/387 +f 5045/3652/393 5051/3653/396 5052/3654/397 +f 5048/3651/391 5056/3655/398 5049/3644/392 +f 5046/3646/394 5052/3654/397 5053/3656/399 +f 5043/3648/269 5051/3653/396 5044/3649/395 +f 5043/3648/269 5056/3655/398 5050/3657/400 +f 5047/3650/401 5055/3658/402 5048/3651/391 +f 5039/3659/265 5047/3650/401 5040/3660/390 +f 5047/3650/401 5039/3659/265 5054/3661/403 +f 5038/3647/384 5046/3646/394 5039/3662/265 +f 5046/3646/394 5053/3656/399 5039/3662/265 +f 5055/3663/402 5064/3664/404 5056/3655/398 +f 5052/3665/397 5061/3666/405 5053/3667/399 +f 5050/3657/400 5059/3668/406 5051/3653/396 +f 5053/3667/399 5057/3669/407 5039/3670/265 +f 5056/3655/398 5058/3671/269 5050/3657/400 +f 5039/3672/265 5062/3673/408 5054/3674/403 +f 5054/3674/403 5063/3675/409 5055/3663/402 +f 5051/3653/396 5060/3676/410 5052/3665/397 +f 5057/3669/407 5068/3677/411 5065/3678/265 +f 5062/3673/408 5070/3679/412 5063/3680/409 +f 5060/3681/410 5066/3682/413 5067/3683/414 +f 5057/3684/407 5069/3685/415 5062/3673/408 +f 5063/3680/409 5071/3686/416 5064/3687/404 +f 5061/3666/405 5067/3683/414 5068/3677/411 +f 5069/3685/415 5072/3688/417 5076/3689/418 +f 5070/3679/412 5076/3689/418 5077/3690/419 +f 5066/3682/413 5074/3691/420 5067/3683/414 +f 5068/3677/411 5072/3692/417 5065/3678/265 +f 5071/3686/416 5077/3690/419 5078/3693/421 +f 5068/3677/411 5074/3691/420 5075/3694/422 +f 5064/3687/404 5071/3686/416 5058/3695/269 +f 5071/3686/416 5078/3693/421 5058/3695/269 +f 5058/3695/269 5066/3682/413 5059/3696/406 +f 5066/3682/413 5058/3695/269 5073/3697/423 +f 5076/3689/418 5085/3698/240 5077/3699/419 +f 5073/3700/423 5082/3701/242 5074/3702/420 +f 5058/3703/269 5081/3704/279 5073/3700/423 +f 5075/3694/422 5080/3705/238 5072/3692/417 +f 5078/3706/421 5079/3707/239 5058/3703/269 +f 5077/3699/419 5086/3708/291 5078/3706/421 +f 5074/3702/420 5083/3709/290 5075/3694/422 +f 5072/3688/417 5084/3710/270 5076/3689/418 +f 5404/3711/239 5395/3712/291 5396/3713/239 +f 5402/3714/240 5393/3715/270 5394/3716/240 +f 5400/3717/238 5391/3718/290 5392/3719/238 +f 5406/3720/242 5397/3721/279 5398/3722/242 +f 5405/3723/279 5396/3713/239 5397/3721/279 +f 5403/3724/291 5394/3716/240 5395/3712/291 +f 5401/3725/270 5392/3726/238 5393/3715/270 +f 5399/3727/290 5398/3722/242 5391/3718/290 +f 5420/3728/239 5411/3729/291 5412/3730/239 +f 5418/3731/240 5409/3732/270 5410/3733/240 +f 5416/3734/238 5407/3735/290 5408/3736/238 +f 5422/3737/242 5413/3738/279 5414/3739/242 +f 5421/3740/279 5412/3730/239 5413/3738/279 +f 5419/3741/291 5410/3733/240 5411/3729/291 +f 5417/3742/270 5408/3743/238 5409/3732/270 +f 5415/3744/290 5414/3739/242 5407/3735/290 +f 5436/3745/239 5427/3746/291 5428/3747/239 +f 5434/3748/240 5425/3749/270 5426/3750/240 +f 5432/3751/238 5423/3752/290 5424/3753/238 +f 5438/3754/242 5429/3755/279 5430/3756/242 +f 5437/3757/279 5428/3747/239 5429/3755/279 +f 5435/3758/291 5426/3750/240 5427/3746/291 +f 5433/3759/270 5424/3760/238 5425/3749/270 +f 5431/3761/290 5430/3756/242 5423/3752/290 +f 5452/3762/239 5443/3763/291 5444/3764/239 +f 5450/3765/240 5441/3766/270 5442/3767/240 +f 5448/3768/238 5439/3769/290 5440/3770/238 +f 5454/3771/242 5445/3772/279 5446/3773/242 +f 5453/3774/279 5444/3764/239 5445/3772/279 +f 5451/3775/291 5442/3767/240 5443/3763/291 +f 5449/3776/270 5440/3777/238 5441/3766/270 +f 5447/3778/290 5446/3773/242 5439/3769/290 +f 5468/3779/239 5459/3780/291 5460/3781/239 +f 5466/3782/240 5457/3783/270 5458/3784/240 +f 5464/3785/238 5455/3786/290 5456/3787/238 +f 5470/3788/242 5461/3789/279 5462/3790/242 +f 5469/3791/279 5460/3781/239 5461/3789/279 +f 5467/3792/291 5458/3784/240 5459/3780/291 +f 5465/3793/270 5456/3794/238 5457/3783/270 +f 5463/3795/290 5462/3790/242 5455/3786/290 +f 5484/3796/239 5475/3797/291 5476/3798/239 +f 5482/3799/240 5473/3800/270 5474/3801/240 +f 5480/3802/238 5471/3803/290 5472/3804/238 +f 5486/3805/242 5477/3806/279 5478/3807/242 +f 5485/3808/279 5476/3798/239 5477/3806/279 +f 5483/3809/291 5474/3801/240 5475/3797/291 +f 5481/3810/270 5472/3811/238 5473/3800/270 +f 5479/3812/290 5478/3807/242 5471/3803/290 +f 5500/3813/239 5491/3814/291 5492/3815/239 +f 5498/3816/240 5489/3817/270 5490/3818/240 +f 5496/3819/238 5487/3820/290 5488/3821/238 +f 5502/3822/242 5493/3823/279 5494/3824/242 +f 5501/3825/279 5492/3815/239 5493/3823/279 +f 5499/3826/291 5490/3818/240 5491/3814/291 +f 5497/3827/270 5488/3828/238 5489/3817/270 +f 5495/3829/290 5494/3824/242 5487/3820/290 +f 5516/3830/239 5507/3831/291 5508/3832/239 +f 5514/3833/240 5505/3834/270 5506/3835/240 +f 5512/3836/238 5503/3837/290 5504/3838/238 +f 5518/3839/242 5509/3840/279 5510/3841/242 +f 5517/3842/279 5508/3832/239 5509/3840/279 +f 5515/3843/291 5506/3835/240 5507/3831/291 +f 5513/3844/270 5504/3845/238 5505/3834/270 +f 5511/3846/290 5510/3841/242 5503/3837/290 +f 5532/3847/239 5523/3848/291 5524/3849/239 +f 5530/3850/240 5521/3851/270 5522/3852/240 +f 5528/3853/238 5519/3854/290 5520/3855/238 +f 5534/3856/242 5525/3857/279 5526/3858/242 +f 5533/3859/279 5524/3849/239 5525/3857/279 +f 5531/3860/291 5522/3852/240 5523/3848/291 +f 5529/3861/270 5520/3862/238 5521/3851/270 +f 5527/3863/290 5526/3858/242 5519/3854/290 +f 3667/1611/244 3143/1623/244 3153/1612/242 +f 3660/1614/245 3150/1625/245 3149/1615/246 +f 3663/1617/247 3147/1627/247 3146/1618/248 +f 3656/1613/242 3153/1612/242 3154/1620/249 +f 3666/1622/250 3144/1629/250 3143/1623/244 +f 3659/1624/241 3151/3864/241 3150/1625/245 +f 3662/1626/240 3148/1633/240 3147/1627/247 +f 3665/1628/243 3145/1634/243 3144/1629/250 +f 3658/1630/251 3152/1635/251 3151/1631/241 +f 3661/1616/246 3149/1615/246 3148/1633/240 +f 3664/1619/248 3146/1618/248 3145/1634/243 +f 3657/1621/249 3154/1620/249 3152/1635/251 +f 3206/1636/252 3238/471/252 3237/469/253 +f 3199/1638/241 3231/456/241 3230/453/254 +f 3207/1640/243 3239/473/243 3238/471/252 +f 3200/1641/255 3232/457/255 3231/456/241 +f 3208/1642/256 3240/474/256 3239/473/243 +f 3201/1643/257 3233/459/257 3232/457/255 +f 3209/1644/258 3241/476/258 3240/474/256 +f 3202/1645/259 3234/462/259 3233/459/257 +f 3210/1646/260 3242/479/260 3241/476/258 +f 3203/1647/240 3235/464/240 3234/462/259 +f 3196/1648/261 3227/450/261 3228/449/242 +f 3195/1649/242 3228/449/242 3242/479/260 +f 3204/1650/262 3236/467/262 3235/466/240 +f 3197/1652/263 3229/452/263 3227/450/261 +f 3205/1637/253 3237/469/253 3236/467/262 +f 3198/1639/254 3230/453/254 3229/452/263 +f 3212/448/262 3243/1656/262 3244/1653/240 +f 3211/480/240 3244/1653/240 3258/1654/259 +f 3220/465/261 3252/1657/261 3251/1655/242 +f 3213/451/253 3245/1658/253 3243/1656/262 +f 3221/468/263 3253/1659/263 3252/1657/261 +f 3214/454/252 3246/1660/252 3245/1658/253 +f 3222/470/254 3254/1661/254 3253/1659/263 +f 3215/455/243 3247/1663/243 3246/1660/252 +f 3223/472/241 3255/1664/241 3254/1661/254 +f 3215/455/243 3216/458/256 3248/1662/256 +f 3224/475/255 3256/1666/255 3255/1664/241 +f 3216/458/256 3217/460/258 3249/1665/258 +f 3225/477/257 3257/1667/257 3256/1666/255 +f 3218/461/260 3250/1668/260 3249/1665/258 +f 3226/478/259 3258/1654/259 3257/1667/257 +f 3219/463/242 3251/3865/242 3250/1668/260 +f 3309/1669/240 4087/569/240 4086/567/259 +f 3302/1671/260 4094/584/260 4093/581/258 +f 3310/1670/259 4086/567/259 4085/565/257 +f 3303/1672/258 4093/581/258 4092/579/256 +f 3311/1673/257 4085/565/257 4084/562/255 +f 3304/1674/256 4092/579/256 4091/578/243 +f 3312/1675/255 4084/562/255 4083/561/241 +f 3305/1676/243 4091/578/243 4090/576/252 +f 3313/1677/241 4083/561/241 4082/558/254 +f 3306/1678/252 4090/576/252 4089/574/253 +f 3353/1681/264 3354/3866/270 3346/1682/238 +f 3351/1684/266 3352/1693/272 3344/1685/241 +f 3356/1687/268 3357/1696/274 3349/1688/269 +f 3354/1690/270 3355/1697/275 3347/1691/271 +f 3352/1693/272 3353/1681/264 3345/1683/265 +f 3350/1694/273 3351/1684/266 3343/1686/267 +f 3357/1696/274 3350/1694/273 3342/1695/239 +f 3355/1697/275 3356/1687/268 3348/1689/243 +f 3356/1698/268 3363/1706/281 3364/1699/276 +f 3352/1700/272 3360/1707/282 3361/1701/277 +f 3350/1694/273 3358/1704/279 3359/1703/278 +f 3357/1696/274 3364/1699/276 3358/1704/279 +f 3356/1698/268 3355/1716/275 3362/1705/280 +f 3351/1684/266 3359/1703/278 3360/1707/282 +f 3360/1707/282 3359/1703/278 3366/1708/283 +f 3363/1706/281 3370/1714/289 3371/1710/285 +f 3360/1707/282 3367/1709/284 3368/1711/286 +f 3359/1703/278 3358/1704/279 3365/1712/287 +f 3364/1699/276 3371/1710/285 3365/1712/287 +f 3363/1706/281 3362/1705/280 3369/1713/288 +f 3370/1718/289 3378/1730/243 3379/1719/258 +f 3367/1720/284 3375/1731/241 3376/1721/257 +f 3365/1712/287 3373/1726/242 3374/1723/263 +f 3368/1722/286 3376/1721/257 3372/1724/240 +f 3371/1710/285 3379/1719/258 3373/1726/242 +f 3354/1727/270 3372/3867/240 3377/1728/253 +f 3369/1729/288 3377/1728/253 3378/1730/243 +f 3366/1708/283 3374/1723/263 3375/1731/241 +f 3384/1732/238 3392/3868/238 3391/1733/265 +f 3385/1735/271 3393/1739/271 3392/1736/238 +f 3386/1738/243 3394/1741/243 3393/1739/271 +f 3387/1740/269 3395/1743/269 3394/1741/243 +f 3380/1742/239 3388/1745/239 3395/1743/269 +f 3381/1744/267 3389/1747/267 3388/1745/239 +f 3382/1746/241 3390/1748/241 3389/1747/267 +f 3383/1734/265 3391/1733/265 3390/1748/241 +f 3419/1749/279 3412/1765/239 3404/1750/239 +f 3417/1752/290 3418/1761/242 3410/1753/242 +f 3415/1755/270 3416/3869/238 3408/1756/238 +f 3413/1758/291 3414/1764/240 3406/1759/240 +f 3418/1761/242 3419/1749/279 3411/1751/279 +f 3416/1762/238 3417/1752/290 3409/1754/290 +f 3414/1764/240 3415/1755/270 3407/1757/270 +f 3412/1765/239 3413/1758/291 3405/1760/291 +f 3431/1766/292 3432/3870/295 3424/1767/240 +f 3429/1769/293 3430/1778/296 3422/1770/239 +f 3434/1772/294 3435/1781/298 3427/1773/290 +f 3432/1775/295 3433/1782/299 3425/1776/270 +f 3430/1778/296 3431/1766/292 3423/1768/291 +f 3428/1779/297 3429/1769/293 3421/1771/279 +f 3435/1781/298 3428/1779/297 3420/1780/242 +f 3433/1782/299 3434/1772/294 3426/1774/238 +f 3435/1781/298 3434/1790/294 3441/1783/300 +f 3430/1785/296 3438/1792/306 3439/1786/302 +f 3428/1779/297 3436/1789/304 3437/1788/303 +f 3428/1779/297 3435/1781/298 3442/1784/301 +f 3434/1790/294 3433/1794/299 3440/1791/305 +f 3429/1769/293 3437/1788/303 3438/1792/306 +f 3448/1796/307 3444/1863/316 3451/1797/308 +f 3449/1799/310 3448/1796/307 3455/1798/309 +f 3445/1801/312 3452/1811/321 3453/1802/313 +f 3447/1804/315 3454/1809/319 3451/1805/308 +f 3449/1799/310 3456/1800/311 3457/1807/317 +f 3446/1803/314 3453/1802/313 3454/1809/319 +f 3455/1798/309 3463/1824/270 3464/1812/238 +f 3452/1814/321 3460/1818/279 3461/1815/239 +f 3443/1817/320 3458/1821/242 3460/1818/279 +f 3454/1809/319 3462/1823/291 3459/1819/240 +f 3457/1820/317 3465/1822/290 3458/1821/242 +f 3456/1813/311 3464/1812/238 3465/1822/290 +f 3453/1816/313 3461/1815/239 3462/1823/291 +f 3451/1797/308 3459/3871/240 3463/1824/270 +f 3477/1825/292 3478/3872/295 3470/1826/240 +f 3475/1828/293 3476/1837/296 3468/1829/239 +f 3480/1831/294 3481/1840/298 3473/1832/290 +f 3478/1834/295 3479/1841/299 3471/1835/270 +f 3476/1837/296 3477/1825/292 3469/1827/291 +f 3474/1838/297 3475/1828/293 3467/1830/279 +f 3481/1840/298 3474/1838/297 3466/1839/242 +f 3479/1841/299 3480/1831/294 3472/1833/238 +f 3481/1840/298 3480/1849/294 3487/1842/300 +f 3476/1844/296 3484/1851/306 3485/1845/322 +f 3474/1838/297 3482/1848/304 3483/1847/303 +f 3474/1838/297 3481/1840/298 3488/1843/301 +f 3480/1849/294 3479/1860/299 3486/1850/305 +f 3475/1828/293 3483/1847/303 3484/1851/306 +f 3495/1852/310 3496/1853/318 3488/1843/301 +f 3496/1853/318 3489/1871/320 3482/1848/304 +f 3482/1848/304 3489/1871/320 3491/1854/323 +f 3483/1847/303 3491/1854/323 3492/1855/314 +f 3484/1851/306 3492/1855/314 3493/1856/315 +f 3485/1845/322 3493/1856/315 3490/1857/316 +f 3490/1861/316 3494/1862/307 3486/1850/305 +f 3494/1862/307 3495/1852/310 3487/1842/300 +f 3450/1808/318 3443/1810/320 3436/1789/304 +f 3436/1789/304 3443/1810/320 3445/1801/312 +f 3437/1788/303 3445/1801/312 3446/1803/314 +f 3438/1792/306 3446/1803/314 3447/1804/315 +f 3439/1786/302 3447/1804/315 3444/1806/316 +f 3444/1863/316 3448/1796/307 3440/1791/305 +f 3494/1862/307 3490/1861/316 3497/1864/308 +f 3495/1852/310 3494/1862/307 3501/1865/309 +f 3491/1854/323 3498/1872/321 3499/1867/313 +f 3493/1856/315 3500/1870/319 3497/1868/308 +f 3496/1853/318 3495/1852/310 3502/1866/311 +f 3492/1855/314 3499/1867/313 3500/1870/319 +f 3448/1796/307 3449/1799/310 3441/1783/300 +f 3449/1799/310 3450/1808/318 3442/1784/301 +f 3501/1865/309 3509/1885/270 3510/1873/238 +f 3498/1875/321 3506/1879/279 3507/1876/239 +f 3489/1878/320 3504/1882/242 3506/1879/279 +f 3500/1870/319 3508/1884/291 3505/1880/240 +f 3503/1881/317 3511/1883/290 3504/1882/242 +f 3503/1881/317 3502/1874/311 3510/1873/238 +f 3499/1877/313 3507/1876/239 3508/1884/291 +f 3497/1864/308 3505/3873/240 3509/1885/270 +f 3523/1886/324 3524/3874/271 3516/1887/238 +f 3521/1889/325 3522/1898/327 3514/1890/240 +f 3526/1892/326 3527/1901/329 3519/1893/279 +f 3524/1895/271 3525/1902/330 3517/1896/290 +f 3522/1898/327 3523/1886/324 3515/1888/270 +f 3520/1899/328 3521/1889/325 3513/1891/291 +f 3527/1901/329 3520/1899/328 3512/1900/239 +f 3525/1902/330 3526/1892/326 3518/1894/242 +f 3527/1901/329 3526/1910/326 3533/1903/331 +f 3522/1905/327 3530/1912/336 3531/1906/333 +f 3520/1899/328 3528/1909/267 3529/1908/334 +f 3520/1899/328 3527/1901/329 3534/1904/332 +f 3526/1910/326 3525/1920/330 3532/1911/335 +f 3521/1889/325 3529/1908/334 3530/1912/336 +f 3530/1912/336 3529/1908/334 3536/1913/337 +f 3533/1903/331 3540/1918/342 3541/1915/339 +f 3531/1906/333 3530/1912/336 3537/1914/338 +f 3528/1909/267 3535/1917/341 3536/1913/337 +f 3528/1909/267 3534/1904/332 3541/1915/339 +f 3532/1911/335 3539/1921/343 3540/1918/342 +f 3540/1923/342 3548/1935/349 3549/1924/344 +f 3537/1925/338 3545/1936/350 3546/1926/345 +f 3535/1917/341 3543/1931/267 3544/1928/346 +f 3538/1927/340 3546/1926/345 3542/1929/347 +f 3541/1915/339 3549/1924/344 3543/1931/267 +f 3524/1932/271 3542/1944/347 3547/1933/348 +f 3539/1934/343 3547/1933/348 3548/1935/349 +f 3536/1913/337 3544/1928/346 3545/1936/350 +f 3542/1929/347 3546/1926/345 3553/1937/351 +f 3547/1933/348 3554/1945/355 3555/1939/352 +f 3545/1941/350 3544/1956/346 3551/1942/353 +f 3542/1944/347 3550/1948/271 3554/1945/355 +f 3548/1940/349 3555/1939/352 3556/1946/356 +f 3546/1926/345 3545/1941/350 3552/1943/354 +f 3550/1948/271 3557/1970/360 3561/1949/357 +f 3555/1939/352 3554/1945/355 3561/1949/357 +f 3551/1942/353 3558/1957/363 3559/1951/359 +f 3553/1937/351 3560/1954/362 3557/1952/360 +f 3556/1946/356 3555/1939/352 3562/1950/358 +f 3552/1943/354 3559/1951/359 3560/1954/362 +f 3561/1949/357 3569/1971/290 3570/1958/242 +f 3558/1960/363 3566/1964/291 3567/1961/240 +f 3543/1963/267 3564/1967/239 3566/1964/291 +f 3560/1954/362 3568/1969/270 3565/1965/238 +f 3563/1966/361 3571/1968/279 3564/1967/239 +f 3562/1959/358 3570/1958/242 3571/1968/279 +f 3559/1962/359 3567/1961/240 3568/1969/270 +f 3557/1970/360 3565/3875/238 3569/1971/290 +f 3583/1972/324 3584/3876/271 3576/1973/238 +f 3581/1975/325 3582/1984/327 3574/1976/240 +f 3586/1978/326 3587/1987/329 3579/1979/279 +f 3584/1981/271 3585/1988/330 3577/1982/290 +f 3582/1984/327 3583/1972/324 3575/1974/270 +f 3580/1985/328 3581/1975/325 3573/1977/291 +f 3587/1987/329 3580/1985/328 3572/1986/239 +f 3585/1988/330 3586/1978/326 3578/1980/242 +f 3587/1987/329 3586/1996/326 3593/1989/331 +f 3582/1991/327 3590/1998/336 3591/1992/333 +f 3580/1985/328 3588/1995/267 3589/1994/334 +f 3580/1985/328 3587/1987/329 3594/1990/332 +f 3586/1996/326 3585/2006/330 3592/1997/335 +f 3581/1975/325 3589/1994/334 3590/1998/336 +f 3590/1998/336 3589/1994/334 3596/1999/337 +f 3593/1989/331 3600/2004/342 3601/2001/339 +f 3591/1992/333 3590/1998/336 3597/2000/338 +f 3588/1995/267 3595/2003/341 3596/1999/337 +f 3588/1995/267 3594/1990/332 3601/2001/339 +f 3592/1997/335 3599/2007/343 3600/2004/342 +f 3600/2009/342 3608/2021/349 3609/2010/344 +f 3597/2011/338 3605/2022/350 3606/2012/345 +f 3595/2003/341 3603/2017/267 3604/2014/346 +f 3598/2013/340 3606/2012/345 3602/2015/347 +f 3601/2001/339 3609/2010/344 3603/2017/267 +f 3584/2018/271 3602/2030/347 3607/2019/348 +f 3599/2020/343 3607/2019/348 3608/2021/349 +f 3596/1999/337 3604/2014/346 3605/2022/350 +f 3602/2015/347 3606/2012/345 3613/2023/351 +f 3607/2019/348 3614/2031/355 3615/2025/352 +f 3605/2027/350 3604/2042/346 3611/2028/353 +f 3602/2030/347 3610/3877/271 3614/2031/355 +f 3608/2026/349 3615/2025/352 3616/2032/356 +f 3606/2012/345 3605/2027/350 3612/2029/354 +f 3614/2031/355 3610/3877/271 3617/2034/360 +f 3615/2025/352 3614/2031/355 3621/2035/357 +f 3611/2028/353 3618/2043/363 3619/2037/359 +f 3613/2023/351 3620/2040/362 3617/2038/360 +f 3616/2032/356 3615/2025/352 3622/2036/358 +f 3612/2029/354 3619/2037/359 3620/2040/362 +f 3621/2035/357 3629/2056/290 3630/2044/242 +f 3618/2046/363 3626/2050/291 3627/2047/240 +f 3603/2049/267 3624/2053/239 3626/2050/291 +f 3620/2040/362 3628/2055/270 3625/2051/238 +f 3623/2052/361 3631/2054/279 3624/2053/239 +f 3622/2045/358 3630/2044/242 3631/2054/279 +f 3619/2048/359 3627/2047/240 3628/2055/270 +f 3617/2034/360 3625/3878/238 3629/2056/290 +f 3645/2057/239 3644/2070/291 3636/2058/291 +f 3643/2060/240 3642/2071/270 3634/2061/270 +f 3641/2063/238 3640/2073/290 3632/2064/290 +f 3647/2066/242 3646/2069/279 3638/2067/279 +f 3646/2069/279 3645/2057/239 3637/2059/239 +f 3644/2070/291 3643/2060/240 3635/2062/240 +f 3642/2071/270 3641/3879/238 3633/2072/238 +f 3640/2073/290 3647/2066/242 3639/2068/242 +f 3679/2074/264 3680/3880/270 3672/2075/238 +f 3677/2077/266 3678/2086/272 3670/2078/241 +f 3682/2080/268 3683/2089/274 3675/2081/269 +f 3680/2083/270 3681/2090/275 3673/2084/271 +f 3678/2086/272 3679/2074/264 3671/2076/265 +f 3676/2087/273 3677/2077/266 3669/2079/267 +f 3683/2089/274 3676/2087/273 3668/2088/239 +f 3681/2090/275 3682/2080/268 3674/2082/243 +f 3683/2089/274 3682/2098/268 3689/2091/281 +f 3678/2093/272 3686/2100/282 3687/2094/277 +f 3677/2077/266 3676/2087/273 3684/2096/279 +f 3683/2089/274 3690/2092/276 3684/2096/279 +f 3682/2098/268 3681/2109/275 3688/2099/280 +f 3677/2077/266 3685/2097/278 3686/2100/282 +f 3686/2100/282 3685/2097/278 3692/2101/283 +f 3689/2091/281 3696/2107/289 3697/2103/285 +f 3686/2100/282 3693/2102/284 3694/2104/286 +f 3685/2097/278 3684/2096/279 3691/2105/287 +f 3690/2092/276 3697/2103/285 3691/2105/287 +f 3689/2091/281 3688/2099/280 3695/2106/288 +f 3696/2111/289 3704/2123/243 3705/2112/258 +f 3693/2113/284 3701/2124/241 3702/2114/257 +f 3691/2105/287 3699/2119/242 3700/2116/263 +f 3694/2115/286 3702/2114/257 3698/2117/240 +f 3697/2103/285 3705/2112/258 3699/2119/242 +f 3680/2120/270 3698/3881/240 3703/2121/253 +f 3695/2122/288 3703/2121/253 3704/2123/243 +f 3692/2101/283 3700/2116/263 3701/2124/241 +f 3717/2125/264 3718/3882/270 3710/2126/238 +f 3715/2128/266 3716/2137/272 3708/2129/241 +f 3720/2131/268 3721/2140/274 3713/2132/269 +f 3710/2134/238 3718/3883/270 3719/2135/275 +f 3716/2137/272 3717/2125/264 3709/2127/265 +f 3714/2138/273 3715/2128/266 3707/2130/267 +f 3721/2140/274 3714/2138/273 3706/2139/239 +f 3719/2135/275 3720/2131/268 3712/2133/243 +f 3721/2140/274 3720/2148/268 3727/2141/281 +f 3716/2143/272 3724/2150/282 3725/2144/277 +f 3714/2138/273 3722/2147/279 3723/2146/278 +f 3721/2140/274 3728/2142/276 3722/2147/279 +f 3720/2148/268 3719/2158/275 3726/2149/280 +f 3716/2143/272 3715/2128/266 3723/2146/278 +f 3724/2150/282 3723/2146/278 3730/2151/283 +f 3727/2141/281 3734/2156/289 3735/2153/285 +f 3724/2150/282 3731/2152/284 3732/2154/286 +f 3723/2146/278 3722/2147/279 3729/2155/287 +f 3728/2142/276 3735/2153/285 3729/2155/287 +f 3726/2149/280 3733/2159/288 3734/2156/289 +f 3734/2161/289 3742/2173/243 3743/2162/258 +f 3731/2163/284 3739/2174/241 3740/2164/257 +f 3729/2155/287 3737/2169/242 3738/2166/263 +f 3732/2165/286 3740/2164/257 3736/2167/240 +f 3735/2153/285 3743/2162/258 3737/2169/242 +f 3718/2170/270 3736/3884/240 3741/2171/253 +f 3733/2172/288 3741/2171/253 3742/2173/243 +f 3730/2151/283 3738/2166/263 3739/2174/241 +f 3755/2175/264 3756/3885/270 3748/2176/238 +f 3753/2178/266 3754/2187/272 3746/2179/241 +f 3758/2181/268 3759/2190/274 3751/2182/269 +f 3756/2184/270 3757/2191/275 3749/2185/271 +f 3754/2187/272 3755/2175/264 3747/2177/265 +f 3752/2188/273 3753/2178/266 3745/2180/267 +f 3759/2190/274 3752/2188/273 3744/2189/239 +f 3757/2191/275 3758/2181/268 3750/2183/243 +f 3759/2190/274 3758/2199/268 3765/2192/281 +f 3754/2194/272 3762/2201/282 3763/2195/277 +f 3753/2178/266 3752/2188/273 3760/2197/279 +f 3759/2190/274 3766/2193/276 3760/2197/279 +f 3758/2199/268 3757/2209/275 3764/2200/280 +f 3753/2178/266 3761/2198/278 3762/2201/282 +f 3762/2201/282 3761/2198/278 3768/2202/283 +f 3765/2192/281 3772/2207/289 3773/2204/285 +f 3763/2195/277 3762/2201/282 3769/2203/284 +f 3761/2198/278 3760/2197/279 3767/2206/287 +f 3766/2193/276 3773/2204/285 3767/2206/287 +f 3764/2200/280 3771/2210/288 3772/2207/289 +f 3772/2212/289 3780/2224/243 3781/2213/258 +f 3769/2214/284 3777/2225/241 3778/2215/257 +f 3767/2206/287 3775/2220/242 3776/2217/263 +f 3770/2216/286 3778/2215/257 3774/2218/240 +f 3773/2204/285 3781/2213/258 3775/2220/242 +f 3756/2221/270 3774/3886/240 3779/2222/253 +f 3771/2223/288 3779/2222/253 3780/2224/243 +f 3768/2202/283 3776/2217/263 3777/2225/241 +f 3793/2226/264 3794/3887/270 3786/2227/238 +f 3791/2229/266 3792/2238/272 3784/2230/241 +f 3796/2232/268 3797/2241/274 3789/2233/269 +f 3794/2235/270 3795/2242/275 3787/2236/271 +f 3792/2238/272 3793/2226/264 3785/2228/265 +f 3790/2239/273 3791/2229/266 3783/2231/267 +f 3797/2241/274 3790/2239/273 3782/2240/239 +f 3795/2242/275 3796/2232/268 3788/2234/243 +f 3797/2241/274 3796/2250/268 3803/2243/281 +f 3792/2245/272 3800/2252/282 3801/2246/277 +f 3791/2229/266 3790/2239/273 3798/2248/279 +f 3797/2241/274 3804/2244/276 3798/2248/279 +f 3796/2250/268 3795/2261/275 3802/2251/280 +f 3791/2229/266 3799/2249/278 3800/2252/282 +f 3799/2249/278 3806/2257/283 3807/2253/284 +f 3803/2243/281 3810/2259/289 3811/2254/285 +f 3800/2252/282 3807/2253/284 3808/2255/286 +f 3799/2249/278 3798/2248/279 3805/2256/287 +f 3804/2244/276 3811/2254/285 3805/2256/287 +f 3803/2243/281 3802/2251/280 3809/2258/288 +f 3810/2263/289 3818/2275/243 3819/2264/258 +f 3807/2265/284 3815/2276/241 3816/2266/257 +f 3805/2256/287 3813/2271/242 3814/2268/263 +f 3808/2267/286 3816/2266/257 3812/2269/240 +f 3811/2254/285 3819/2264/258 3813/2271/242 +f 3794/2272/270 3812/3888/240 3817/2273/253 +f 3809/2274/288 3817/2273/253 3818/2275/243 +f 3806/2257/283 3814/2268/263 3815/2276/241 +f 3831/2277/364 3832/3889/290 3824/2278/238 +f 3829/2280/365 3830/2289/368 3822/2281/243 +f 3834/2283/366 3835/2292/370 3827/2284/267 +f 3824/2286/238 3832/3890/290 3833/2287/367 +f 3830/2289/368 3831/2277/364 3823/2279/271 +f 3828/2290/369 3829/2280/365 3821/2282/269 +f 3835/2292/370 3828/2290/369 3820/2291/239 +f 3833/2287/367 3834/2283/366 3826/2285/241 +f 3835/2292/370 3834/2300/366 3841/2293/371 +f 3830/2295/368 3838/2302/376 3839/2296/373 +f 3829/2280/365 3828/2290/369 3836/2298/291 +f 3835/2292/370 3842/2294/372 3836/2298/291 +f 3834/2300/366 3833/2311/367 3840/2301/375 +f 3829/2280/365 3837/2299/374 3838/2302/376 +f 3838/2302/376 3837/2299/374 3844/2303/377 +f 3842/2294/372 3841/2293/371 3848/2305/379 +f 3838/2302/376 3845/2304/378 3846/2307/381 +f 3837/2299/374 3836/2298/291 3843/2308/382 +f 3842/2294/372 3849/2306/380 3843/2308/382 +f 3841/2293/371 3840/2301/375 3847/2309/383 +f 3848/2313/379 3856/2325/241 3857/2314/257 +f 3845/2315/378 3853/2326/243 3854/2316/258 +f 3843/2308/382 3851/2321/240 3852/2318/253 +f 3846/2317/381 3854/2316/258 3850/2319/242 +f 3849/2306/380 3857/2314/257 3851/2321/240 +f 3832/2322/290 3850/3891/242 3855/2323/263 +f 3847/2324/383 3855/2323/263 3856/2325/241 +f 3844/2303/377 3852/2318/253 3853/2326/243 +f 3869/2327/364 3870/3892/290 3862/2328/238 +f 3867/2330/365 3868/2339/368 3860/2331/243 +f 3872/2333/366 3873/2342/370 3865/2334/267 +f 3870/2336/290 3871/2343/367 3863/2337/265 +f 3868/2339/368 3869/2327/364 3861/2329/271 +f 3866/2340/369 3867/2330/365 3859/2332/269 +f 3873/2342/370 3866/2340/369 3858/2341/239 +f 3871/2343/367 3872/2333/366 3864/2335/241 +f 3873/2342/370 3872/2351/366 3879/2344/371 +f 3868/2346/368 3876/2353/376 3877/2347/373 +f 3866/2340/369 3874/2350/291 3875/2349/374 +f 3873/2342/370 3880/2345/372 3874/2350/291 +f 3872/2351/366 3871/2361/367 3878/2352/375 +f 3867/2330/365 3875/2349/374 3876/2353/376 +f 3876/2353/376 3875/2349/374 3882/2354/377 +f 3879/2344/371 3886/2359/379 3887/2356/380 +f 3877/2347/373 3876/2353/376 3883/2355/378 +f 3875/2349/374 3874/2350/291 3881/2358/382 +f 3880/2345/372 3887/2356/380 3881/2358/382 +f 3878/2352/375 3885/2362/383 3886/2359/379 +f 3886/2364/379 3894/2376/241 3895/2365/257 +f 3883/2366/378 3891/2377/243 3892/2367/258 +f 3881/2358/382 3889/2372/240 3890/2369/253 +f 3884/2368/381 3892/2367/258 3888/2370/242 +f 3887/2356/380 3895/2365/257 3889/2372/240 +f 3870/2373/290 3888/3893/242 3893/2374/263 +f 3885/2375/383 3893/2374/263 3894/2376/241 +f 3882/2354/377 3890/2369/253 3891/2377/243 +f 3907/2378/364 3908/3894/290 3900/2379/238 +f 3905/2381/365 3906/2390/368 3898/2382/243 +f 3910/2384/366 3911/2392/370 3903/2385/267 +f 3908/2387/290 3909/2393/367 3901/2388/265 +f 3906/2390/368 3907/2378/364 3899/2380/271 +f 3896/2391/239 3904/2401/369 3905/2381/365 +f 3911/2392/370 3904/2401/369 3896/2391/239 +f 3909/2393/367 3910/2384/366 3902/2386/241 +f 3911/2392/370 3910/2402/366 3917/2394/371 +f 3906/2396/368 3914/2404/376 3915/2397/373 +f 3905/2381/365 3904/2401/369 3912/2399/291 +f 3911/2392/370 3918/2395/372 3912/2399/291 +f 3910/2402/366 3909/2413/367 3916/2403/375 +f 3905/2381/365 3913/2400/374 3914/2404/376 +f 3914/2404/376 3913/2400/374 3920/2405/377 +f 3917/2394/371 3924/2411/379 3925/2407/380 +f 3914/2404/376 3921/2406/378 3922/2408/381 +f 3913/2400/374 3912/2399/291 3919/2409/382 +f 3918/2395/372 3925/2407/380 3919/2409/382 +f 3917/2394/371 3916/2403/375 3923/2410/383 +f 3924/2415/379 3932/2427/241 3933/2416/257 +f 3921/2417/378 3929/2428/243 3930/2418/258 +f 3919/2409/382 3927/2423/240 3928/2420/253 +f 3922/2419/381 3930/2418/258 3926/2421/242 +f 3925/2407/380 3933/2416/257 3927/2423/240 +f 3908/2424/290 3926/3895/242 3931/2425/263 +f 3923/2426/383 3931/2425/263 3932/2427/241 +f 3920/2405/377 3928/2420/253 3929/2428/243 +f 3945/2429/364 3946/3896/290 3938/2430/238 +f 3943/2432/365 3944/2441/368 3936/2433/243 +f 3948/2435/366 3949/2444/370 3941/2436/267 +f 3946/2438/290 3947/2445/367 3939/2439/265 +f 3944/2441/368 3945/2429/364 3937/2431/271 +f 3942/2442/369 3943/2432/365 3935/2434/269 +f 3949/2444/370 3942/2442/369 3934/2443/239 +f 3947/2445/367 3948/2435/366 3940/2437/241 +f 3949/2444/370 3948/2453/366 3955/2446/371 +f 3944/2448/368 3952/2455/376 3953/2449/373 +f 3943/2432/365 3942/2442/369 3950/2451/291 +f 3949/2444/370 3956/2447/372 3950/2451/291 +f 3948/2453/366 3947/2463/367 3954/2454/375 +f 3943/2432/365 3951/2452/374 3952/2455/376 +f 3952/2455/376 3951/2452/374 3958/2456/377 +f 3955/2446/371 3962/2461/379 3963/2458/380 +f 3952/2455/376 3959/2457/378 3960/2459/381 +f 3951/2452/374 3950/2451/291 3957/2460/382 +f 3956/2447/372 3963/2458/380 3957/2460/382 +f 3954/2454/375 3961/2464/383 3962/2461/379 +f 3962/2466/379 3970/2478/241 3971/2467/257 +f 3959/2468/378 3967/2479/243 3968/2469/258 +f 3957/2460/382 3965/2474/240 3966/2471/253 +f 3960/2470/381 3968/2469/258 3964/2472/242 +f 3963/2458/380 3971/2467/257 3965/2474/240 +f 3946/2475/290 3964/3897/242 3969/2476/263 +f 3961/2477/383 3969/2476/263 3970/2478/241 +f 3958/2456/377 3966/2471/253 3967/2479/243 +f 3983/2480/364 3984/3898/290 3976/2481/238 +f 3981/2483/365 3982/2492/368 3974/2484/243 +f 3986/2486/366 3987/2495/370 3979/2487/267 +f 3976/2489/238 3984/3899/290 3985/2490/367 +f 3982/2492/368 3983/2480/364 3975/2482/271 +f 3980/2493/369 3981/2483/365 3973/2485/269 +f 3987/2495/370 3980/2493/369 3972/2494/239 +f 3985/2490/367 3986/2486/366 3978/2488/241 +f 3987/2495/370 3986/2503/366 3993/2496/371 +f 3982/2498/368 3990/2505/376 3991/2499/373 +f 3981/2483/365 3980/2493/369 3988/2501/291 +f 3987/2495/370 3994/2497/372 3988/2501/291 +f 3986/2503/366 3985/2514/367 3992/2504/375 +f 3981/2483/365 3989/2502/374 3990/2505/376 +f 3990/2505/376 3989/2502/374 3996/2506/377 +f 3993/2496/371 4000/2512/379 4001/2508/380 +f 3991/2499/373 3990/2505/376 3997/2507/378 +f 3989/2502/374 3988/2501/291 3995/2510/382 +f 3994/2497/372 4001/2508/380 3995/2510/382 +f 3993/2496/371 3992/2504/375 3999/2511/383 +f 4000/2516/379 4008/2528/241 4009/2517/257 +f 3997/2518/378 4005/2529/243 4006/2519/258 +f 3995/2510/382 4003/2524/240 4004/2521/253 +f 3998/2520/381 4006/2519/258 4002/2522/242 +f 4001/2508/380 4009/2517/257 4003/2524/240 +f 3984/2525/290 4002/3900/242 4007/2526/263 +f 3999/2527/383 4007/2526/263 4008/2528/241 +f 3996/2506/377 4004/2521/253 4005/2529/243 +f 4014/2530/238 4022/3901/238 4021/2531/265 +f 4014/2533/238 4015/2537/271 4023/2534/271 +f 4016/2536/243 4024/2539/243 4023/2534/271 +f 4017/2538/269 4025/2541/269 4024/2539/243 +f 4010/2540/239 4018/2543/239 4025/2541/269 +f 4011/2542/267 4019/2545/267 4018/2543/239 +f 4012/2544/241 4020/2546/241 4019/2545/267 +f 4013/2532/265 4021/2531/265 4020/2546/241 +f 4030/2547/238 4038/3902/238 4037/2548/265 +f 4031/2550/271 4039/2554/271 4038/2551/238 +f 4032/2553/243 4040/2556/243 4039/2554/271 +f 4033/2555/269 4041/2558/269 4040/2556/243 +f 4026/2557/239 4034/2560/239 4041/2558/269 +f 4027/2559/267 4035/2562/267 4034/2560/239 +f 4028/2561/241 4036/2563/241 4035/2562/267 +f 4029/2549/265 4037/2548/265 4036/2563/241 +f 4045/2564/265 4046/3903/238 4054/2565/238 +f 4047/2567/271 4055/2571/271 4054/2568/238 +f 4048/2570/243 4056/2573/243 4055/2571/271 +f 4049/2572/269 4057/2575/269 4056/2573/243 +f 4042/2574/239 4050/2577/239 4057/2575/269 +f 4043/2576/267 4051/2579/267 4050/2577/239 +f 4043/2576/267 4044/2580/241 4052/2578/241 +f 4045/2564/265 4053/2566/265 4052/2578/241 +f 4062/2581/238 4070/3904/238 4069/2582/265 +f 4063/2584/271 4071/2588/271 4070/2585/238 +f 4064/2587/243 4072/2590/243 4071/2588/271 +f 4065/2589/269 4073/2592/269 4072/2590/243 +f 4058/2591/239 4066/2594/239 4073/2592/269 +f 4059/2593/267 4067/2596/267 4066/2594/239 +f 4060/2595/241 4068/2597/241 4067/2596/267 +f 4061/2583/265 4069/2582/265 4068/2597/241 +f 3316/2598/261 4079/555/261 4080/554/242 +f 3317/2599/242 4080/554/242 4094/584/260 +f 3308/2600/262 4088/572/262 4087/571/240 +f 3315/2602/263 4081/557/263 4079/555/261 +f 3307/1680/253 4089/574/253 4088/572/262 +f 3314/1679/254 4082/558/254 4081/557/263 +f 3300/553/262 4095/2606/262 4096/2603/240 +f 3301/585/240 4096/2603/240 4110/2604/259 +f 3292/570/261 4104/2607/261 4103/2605/242 +f 3299/556/253 4097/2608/253 4095/2606/262 +f 3291/573/263 4105/2609/263 4104/2607/261 +f 3298/559/252 4098/2610/252 4097/2608/253 +f 4074/575/254 4106/2611/254 4105/2609/263 +f 3297/560/243 4099/2612/243 4098/2610/252 +f 4075/577/241 4107/2613/241 4106/2611/254 +f 3296/563/256 4100/2615/256 4099/2612/243 +f 4076/580/255 4108/2616/255 4107/2613/241 +f 3296/563/256 3295/564/258 4101/2614/258 +f 4077/582/257 4109/2617/257 4108/2616/255 +f 3294/566/260 4102/2618/260 4101/2614/258 +f 4078/583/259 4110/2604/259 4109/2617/257 +f 3293/568/242 4103/3905/242 4102/2618/260 +f 4134/2619/244 4111/2631/244 4121/2620/242 +f 4127/2622/245 4118/2633/245 4117/2623/246 +f 4130/2625/247 4115/2635/247 4114/2626/248 +f 4123/2621/242 4121/2620/242 4122/2628/249 +f 4133/2630/250 4112/2637/250 4111/2631/244 +f 4126/2632/241 4119/3906/241 4118/2633/245 +f 4129/2634/240 4116/2641/240 4115/2635/247 +f 4132/2636/243 4113/2642/243 4112/2637/250 +f 4125/2638/251 4120/2643/251 4119/2639/241 +f 4128/2624/246 4117/2623/246 4116/2641/240 +f 4131/2627/248 4114/2626/248 4113/2642/243 +f 4124/2629/249 4122/2628/249 4120/2643/251 +f 4158/2644/244 4135/2656/244 4145/2645/242 +f 4151/2647/245 4142/2658/245 4141/2648/246 +f 4154/2650/247 4139/2660/247 4138/2651/248 +f 4147/2646/242 4145/2645/242 4146/2653/249 +f 4157/2655/250 4136/2662/250 4135/2656/244 +f 4150/2657/241 4143/3907/241 4142/2658/245 +f 4153/2659/240 4140/2666/240 4139/2660/247 +f 4156/2661/243 4137/2667/243 4136/2662/250 +f 4149/2663/251 4144/2668/251 4143/2664/241 +f 4152/2649/246 4141/2648/246 4140/2666/240 +f 4155/2652/248 4138/2651/248 4137/2667/243 +f 4148/2654/249 4146/2653/249 4144/2668/251 +f 4182/2669/244 4159/2681/244 4169/2670/242 +f 4175/2672/245 4166/2683/245 4165/2673/246 +f 4178/2675/247 4163/2685/247 4162/2676/248 +f 4171/2671/242 4169/2670/242 4170/2678/249 +f 4181/2680/250 4160/2687/250 4159/2681/244 +f 4174/2682/241 4167/3908/241 4166/2683/245 +f 4177/2684/240 4164/2691/240 4163/2685/247 +f 4180/2686/243 4161/2692/243 4160/2687/250 +f 4173/2688/251 4168/2693/251 4167/2689/241 +f 4176/2674/246 4165/2673/246 4164/2691/240 +f 4179/2677/248 4162/2676/248 4161/2692/243 +f 4172/2679/249 4170/2678/249 4168/2693/251 +f 4206/2694/244 4183/2706/244 4193/2695/242 +f 4199/2697/245 4190/2708/245 4189/2698/246 +f 4202/2700/247 4187/2710/247 4186/2701/248 +f 4195/2696/242 4193/2695/242 4194/2703/249 +f 4205/2705/250 4184/2712/250 4183/2706/244 +f 4198/2707/241 4191/3909/241 4190/2708/245 +f 4201/2709/240 4188/2716/240 4187/2710/247 +f 4204/2711/243 4185/2717/243 4184/2712/250 +f 4197/2713/251 4192/2718/251 4191/2714/241 +f 4200/2699/246 4189/2698/246 4188/2716/240 +f 4203/2702/248 4186/2701/248 4185/2717/243 +f 4196/2704/249 4194/2703/249 4192/2718/251 +f 4230/2719/246 4207/2731/246 4217/2720/240 +f 4223/2722/250 4214/2733/250 4213/2723/244 +f 4226/2725/249 4211/2735/249 4210/2726/251 +f 4219/2721/240 4217/2720/240 4218/2728/247 +f 4229/2730/245 4208/2737/245 4207/2731/246 +f 4222/2732/243 4215/3910/243 4214/2733/250 +f 4225/2734/242 4212/2741/242 4211/2735/249 +f 4228/2736/241 4209/2742/241 4208/2737/245 +f 4221/2738/248 4216/2743/248 4215/2739/243 +f 4224/2724/244 4213/2723/244 4212/2741/242 +f 4227/2727/251 4210/2726/251 4209/2742/241 +f 4220/2729/247 4218/2728/247 4216/2743/248 +f 4254/2744/246 4231/2756/246 4241/2745/240 +f 4247/2747/250 4238/2758/250 4237/2748/244 +f 4250/2750/249 4235/2760/249 4234/2751/251 +f 4243/2746/240 4241/2745/240 4242/2753/247 +f 4253/2755/245 4232/2762/245 4231/2756/246 +f 4246/2757/243 4239/3911/243 4238/2758/250 +f 4249/2759/242 4236/2766/242 4235/2760/249 +f 4252/2761/241 4233/2767/241 4232/2762/245 +f 4245/2763/248 4240/2768/248 4239/2764/243 +f 4248/2749/244 4237/2748/244 4236/2766/242 +f 4251/2752/251 4234/2751/251 4233/2767/241 +f 4244/2754/247 4242/2753/247 4240/2768/248 +f 4278/2769/246 4255/2781/246 4265/2770/240 +f 4271/2772/250 4262/2783/250 4261/2773/244 +f 4274/2775/249 4259/2785/249 4258/2776/251 +f 4267/2771/240 4265/2770/240 4266/2778/247 +f 4277/2780/245 4256/2787/245 4255/2781/246 +f 4270/2782/243 4263/3912/243 4262/2783/250 +f 4273/2784/242 4260/2791/242 4259/2785/249 +f 4276/2786/241 4257/2792/241 4256/2787/245 +f 4269/2788/248 4264/2793/248 4263/2789/243 +f 4272/2774/244 4261/2773/244 4260/2791/242 +f 4275/2777/251 4258/2776/251 4257/2792/241 +f 4268/2779/247 4266/2778/247 4264/2793/248 +f 4302/2794/246 4279/2806/246 4289/2795/240 +f 4295/2797/250 4286/2808/250 4285/2798/244 +f 4298/2800/249 4283/2810/249 4282/2801/251 +f 4291/2796/240 4289/2795/240 4290/2803/247 +f 4301/2805/245 4280/2812/245 4279/2806/246 +f 4294/2807/243 4287/3913/243 4286/2808/250 +f 4297/2809/242 4284/2816/242 4283/2810/249 +f 4300/2811/241 4281/2817/241 4280/2812/245 +f 4293/2813/248 4288/2818/248 4287/2814/243 +f 4296/2799/244 4285/2798/244 4284/2816/242 +f 4299/2802/251 4282/2801/251 4281/2817/241 +f 4292/2804/247 4290/2803/247 4288/2818/248 +f 4326/2819/246 4303/2831/246 4313/2820/240 +f 4319/2822/250 4310/2833/250 4309/2823/244 +f 4322/2825/249 4307/2835/249 4306/2826/251 +f 4315/2821/240 4313/2820/240 4314/2828/247 +f 4325/2830/245 4304/2837/245 4303/2831/246 +f 4318/2832/243 4311/3914/243 4310/2833/250 +f 4321/2834/242 4308/2841/242 4307/2835/249 +f 4324/2836/241 4305/2842/241 4304/2837/245 +f 4317/2838/248 4312/2843/248 4311/2839/243 +f 4320/2824/244 4309/2823/244 4308/2841/242 +f 4323/2827/251 4306/2826/251 4305/2842/241 +f 4316/2829/247 4314/2828/247 4312/2843/248 +f 4486/2844/279 4479/2860/239 4471/2845/239 +f 4484/2847/290 4485/2856/242 4477/2848/242 +f 4482/2850/270 4483/3915/238 4475/2851/238 +f 4480/2853/291 4481/2859/240 4473/2854/240 +f 4485/2856/242 4486/2844/279 4478/2846/279 +f 4483/2857/238 4484/2847/290 4476/2849/290 +f 4481/2859/240 4482/2850/270 4474/2852/270 +f 4479/2860/239 4480/2853/291 4472/2855/291 +f 4498/2861/324 4499/3916/271 4491/2862/238 +f 4496/2864/325 4497/2873/327 4489/2865/240 +f 4501/2867/326 4502/2876/329 4494/2868/279 +f 4499/2870/271 4500/2877/330 4492/2871/290 +f 4497/2873/327 4498/2861/324 4490/2863/270 +f 4495/2874/328 4496/2864/325 4488/2866/291 +f 4502/2876/329 4495/2874/328 4487/2875/239 +f 4500/2877/330 4501/2867/326 4493/2869/242 +f 4501/2878/326 4508/2886/331 4509/2879/332 +f 4497/2880/327 4505/2887/336 4506/2881/333 +f 4495/2874/328 4503/2884/267 4504/2883/334 +f 4495/2874/328 4502/2876/329 4509/2879/332 +f 4501/2878/326 4500/2895/330 4507/2885/335 +f 4496/2864/325 4504/2883/334 4505/2887/336 +f 4504/2883/334 4511/2891/337 4512/2888/338 +f 4508/2886/331 4515/2893/342 4516/2889/339 +f 4506/2881/333 4505/2887/336 4512/2888/338 +f 4503/2884/267 4510/2892/341 4511/2891/337 +f 4503/2884/267 4509/2879/332 4516/2889/339 +f 4507/2885/335 4514/2896/343 4515/2893/342 +f 4515/2898/342 4523/2910/349 4524/2899/344 +f 4512/2900/338 4520/2911/350 4521/2901/345 +f 4510/2892/341 4518/2906/267 4519/2903/346 +f 4513/2902/340 4521/2901/345 4517/2904/347 +f 4516/2889/339 4524/2899/344 4518/2906/267 +f 4499/2907/271 4517/2919/347 4522/2908/348 +f 4514/2909/343 4522/2908/348 4523/2910/349 +f 4511/2891/337 4519/2903/346 4520/2911/350 +f 4517/2904/347 4521/2901/345 4528/2912/351 +f 4522/2908/348 4529/2920/355 4530/2914/352 +f 4520/2916/350 4519/2931/346 4526/2917/353 +f 4517/2919/347 4525/3917/271 4529/2920/355 +f 4523/2915/349 4530/2914/352 4531/2921/356 +f 4521/2901/345 4520/2916/350 4527/2918/354 +f 4529/2920/355 4525/3917/271 4532/2923/360 +f 4530/2914/352 4529/2920/355 4536/2924/357 +f 4526/2917/353 4533/2932/363 4534/2926/359 +f 4528/2912/351 4535/2929/362 4532/2927/360 +f 4531/2921/356 4530/2914/352 4537/2925/358 +f 4527/2918/354 4534/2926/359 4535/2929/362 +f 4536/2924/357 4544/2945/290 4545/2933/242 +f 4533/2935/363 4541/2939/291 4542/2936/240 +f 4518/2938/267 4539/2942/239 4541/2939/291 +f 4535/2929/362 4543/2944/270 4540/2940/238 +f 4538/2941/361 4546/2943/279 4539/2942/239 +f 4537/2934/358 4545/2933/242 4546/2943/279 +f 4534/2937/359 4542/2936/240 4543/2944/270 +f 4532/2923/360 4540/3918/238 4544/2945/290 +f 4558/2946/324 4559/3919/271 4551/2947/238 +f 4556/2949/325 4557/2958/327 4549/2950/240 +f 4561/2952/326 4562/2961/329 4554/2953/279 +f 4559/2955/271 4560/2962/330 4552/2956/290 +f 4557/2958/327 4558/2946/324 4550/2948/270 +f 4555/2959/328 4556/2949/325 4548/2951/291 +f 4562/2961/329 4555/2959/328 4547/2960/239 +f 4560/2962/330 4561/2952/326 4553/2954/242 +f 4561/2963/326 4568/2971/331 4569/2964/332 +f 4557/2965/327 4565/2972/336 4566/2966/333 +f 4555/2959/328 4563/2969/267 4564/2968/334 +f 4555/2959/328 4562/2961/329 4569/2964/332 +f 4561/2963/326 4560/2980/330 4567/2970/335 +f 4556/2949/325 4564/2968/334 4565/2972/336 +f 4565/2972/336 4564/2968/334 4571/2973/337 +f 4568/2971/331 4575/2978/342 4576/2975/339 +f 4566/2966/333 4565/2972/336 4572/2974/338 +f 4563/2969/267 4570/2977/341 4571/2973/337 +f 4563/2969/267 4569/2964/332 4576/2975/339 +f 4567/2970/335 4574/2981/343 4575/2978/342 +f 4575/2983/342 4583/2995/349 4584/2984/344 +f 4572/2985/338 4580/2996/350 4581/2986/345 +f 4570/2977/341 4578/2991/267 4579/2988/346 +f 4573/2987/340 4581/2986/345 4577/2989/347 +f 4576/2975/339 4584/2984/344 4578/2991/267 +f 4559/2992/271 4577/3004/347 4582/2993/348 +f 4574/2994/343 4582/2993/348 4583/2995/349 +f 4571/2973/337 4579/2988/346 4580/2996/350 +f 4577/2989/347 4581/2986/345 4588/2997/351 +f 4582/2993/348 4589/3005/355 4590/2999/352 +f 4580/3001/350 4579/3016/346 4586/3002/353 +f 4577/3004/347 4585/3920/271 4589/3005/355 +f 4583/3000/349 4590/2999/352 4591/3006/356 +f 4581/2986/345 4580/3001/350 4587/3003/354 +f 4589/3005/355 4585/3920/271 4592/3008/360 +f 4590/2999/352 4589/3005/355 4596/3009/357 +f 4586/3002/353 4593/3017/363 4594/3011/359 +f 4588/2997/351 4595/3014/362 4592/3012/360 +f 4591/3006/356 4590/2999/352 4597/3010/358 +f 4588/2997/351 4587/3003/354 4594/3011/359 +f 4596/3009/357 4604/3030/290 4605/3018/242 +f 4593/3020/363 4601/3024/291 4602/3021/240 +f 4578/3023/267 4599/3027/239 4601/3024/291 +f 4595/3014/362 4603/3029/270 4600/3025/238 +f 4598/3026/361 4606/3028/279 4599/3027/239 +f 4597/3019/358 4605/3018/242 4606/3028/279 +f 4594/3022/359 4602/3021/240 4603/3029/270 +f 4592/3008/360 4600/3921/238 4604/3030/290 +f 4618/3031/324 4619/3922/271 4611/3032/238 +f 4616/3034/325 4617/3043/327 4609/3035/240 +f 4621/3037/326 4622/3046/329 4614/3038/279 +f 4619/3040/271 4620/3047/330 4612/3041/290 +f 4617/3043/327 4618/3031/324 4610/3033/270 +f 4615/3044/328 4616/3034/325 4608/3036/291 +f 4622/3046/329 4615/3044/328 4607/3045/239 +f 4620/3047/330 4621/3037/326 4613/3039/242 +f 4622/3046/329 4621/3055/326 4628/3048/331 +f 4617/3050/327 4625/3057/336 4626/3051/333 +f 4615/3044/328 4623/3054/267 4624/3053/334 +f 4622/3046/329 4629/3049/332 4623/3054/267 +f 4621/3055/326 4620/3065/330 4627/3056/335 +f 4616/3034/325 4624/3053/334 4625/3057/336 +f 4625/3057/336 4624/3053/334 4631/3058/337 +f 4628/3048/331 4635/3063/342 4636/3060/339 +f 4626/3051/333 4625/3057/336 4632/3059/338 +f 4623/3054/267 4630/3062/341 4631/3058/337 +f 4623/3054/267 4629/3049/332 4636/3060/339 +f 4627/3056/335 4634/3066/343 4635/3063/342 +f 4635/3068/342 4643/3080/349 4644/3069/344 +f 4632/3070/338 4640/3081/350 4641/3071/345 +f 4630/3062/341 4638/3076/267 4639/3073/346 +f 4633/3072/340 4641/3071/345 4637/3074/347 +f 4636/3060/339 4644/3069/344 4638/3076/267 +f 4619/3077/271 4637/3089/347 4642/3078/348 +f 4634/3079/343 4642/3078/348 4643/3080/349 +f 4631/3058/337 4639/3073/346 4640/3081/350 +f 4637/3074/347 4641/3071/345 4648/3082/351 +f 4642/3078/348 4649/3090/355 4650/3084/352 +f 4640/3086/350 4639/3101/346 4646/3087/353 +f 4637/3089/347 4645/3923/271 4649/3090/355 +f 4643/3085/349 4650/3084/352 4651/3091/356 +f 4641/3071/345 4640/3086/350 4647/3088/354 +f 4649/3090/355 4645/3923/271 4652/3093/360 +f 4650/3084/352 4649/3090/355 4656/3094/357 +f 4646/3087/353 4653/3102/363 4654/3096/359 +f 4648/3082/351 4655/3099/362 4652/3097/360 +f 4651/3091/356 4650/3084/352 4657/3095/358 +f 4647/3088/354 4654/3096/359 4655/3099/362 +f 4656/3094/357 4664/3115/290 4665/3103/242 +f 4653/3105/363 4661/3109/291 4662/3106/240 +f 4638/3108/267 4659/3112/239 4661/3109/291 +f 4655/3099/362 4663/3114/270 4660/3110/238 +f 4658/3111/361 4666/3113/279 4659/3112/239 +f 4657/3104/358 4665/3103/242 4666/3113/279 +f 4654/3107/359 4662/3106/240 4663/3114/270 +f 4652/3093/360 4660/3924/238 4664/3115/290 +f 4678/3116/324 4679/3925/271 4671/3117/238 +f 4676/3119/325 4677/3128/327 4669/3120/240 +f 4681/3122/326 4682/3131/329 4674/3123/279 +f 4679/3125/271 4680/3132/330 4672/3126/290 +f 4677/3128/327 4678/3116/324 4670/3118/270 +f 4675/3129/328 4676/3119/325 4668/3121/291 +f 4682/3131/329 4675/3129/328 4667/3130/239 +f 4680/3132/330 4681/3122/326 4673/3124/242 +f 4681/3133/326 4688/3141/331 4689/3134/332 +f 4677/3135/327 4685/3142/336 4686/3136/333 +f 4676/3119/325 4675/3129/328 4683/3138/267 +f 4682/3131/329 4689/3134/332 4683/3138/267 +f 4681/3133/326 4680/3150/330 4687/3140/335 +f 4676/3119/325 4684/3139/334 4685/3142/336 +f 4685/3142/336 4684/3139/334 4691/3143/337 +f 4688/3141/331 4695/3148/342 4696/3145/339 +f 4686/3136/333 4685/3142/336 4692/3144/338 +f 4683/3138/267 4690/3147/341 4691/3143/337 +f 4683/3138/267 4689/3134/332 4696/3145/339 +f 4687/3140/335 4694/3151/343 4695/3148/342 +f 4695/3153/342 4703/3165/349 4704/3154/344 +f 4692/3155/338 4700/3166/350 4701/3156/345 +f 4690/3147/341 4698/3161/267 4699/3158/346 +f 4693/3157/340 4701/3156/345 4697/3159/347 +f 4696/3145/339 4704/3154/344 4698/3161/267 +f 4679/3162/271 4697/3174/347 4702/3163/348 +f 4694/3164/343 4702/3163/348 4703/3165/349 +f 4691/3143/337 4699/3158/346 4700/3166/350 +f 4697/3159/347 4701/3156/345 4708/3167/351 +f 4702/3163/348 4709/3175/355 4710/3169/352 +f 4700/3171/350 4699/3186/346 4706/3172/353 +f 4697/3174/347 4705/3926/271 4709/3175/355 +f 4703/3170/349 4710/3169/352 4711/3176/356 +f 4701/3156/345 4700/3171/350 4707/3173/354 +f 4709/3175/355 4705/3926/271 4712/3178/360 +f 4710/3169/352 4709/3175/355 4716/3179/357 +f 4706/3172/353 4713/3187/363 4714/3181/359 +f 4708/3167/351 4715/3184/362 4712/3182/360 +f 4711/3176/356 4710/3169/352 4717/3180/358 +f 4708/3167/351 4707/3173/354 4714/3181/359 +f 4716/3179/357 4724/3200/290 4725/3188/242 +f 4713/3190/363 4721/3194/291 4722/3191/240 +f 4698/3193/267 4719/3197/239 4721/3194/291 +f 4715/3184/362 4723/3199/270 4720/3195/238 +f 4718/3196/361 4726/3198/279 4719/3197/239 +f 4717/3189/358 4725/3188/242 4726/3198/279 +f 4714/3192/359 4722/3191/240 4723/3199/270 +f 4712/3178/360 4720/3927/238 4724/3200/290 +f 4738/3201/384 4739/3928/265 4731/3202/238 +f 4736/3204/385 4737/3213/387 4729/3205/242 +f 4741/3207/386 4742/3216/389 4734/3208/291 +f 4739/3210/265 4740/3217/390 4732/3211/270 +f 4737/3213/387 4738/3201/384 4730/3203/290 +f 4735/3214/388 4736/3204/385 4728/3206/279 +f 4742/3216/389 4735/3214/388 4727/3215/239 +f 4740/3217/390 4741/3207/386 4733/3209/240 +f 4742/3216/389 4741/3226/386 4748/3218/391 +f 4738/3220/384 4737/3227/387 4745/3221/393 +f 4735/3214/388 4743/3224/269 4744/3223/395 +f 4735/3214/388 4742/3216/389 4749/3219/392 +f 4740/3225/390 4747/3233/401 4748/3218/391 +f 4737/3227/387 4736/3204/385 4744/3223/395 +f 4745/3221/393 4744/3223/395 4751/3228/396 +f 4748/3218/391 4755/3234/402 4756/3230/398 +f 4746/3222/394 4745/3221/393 4752/3229/397 +f 4743/3224/269 4750/3232/400 4751/3228/396 +f 4743/3224/269 4749/3219/392 4756/3230/398 +f 4747/3233/401 4754/3236/403 4755/3234/402 +f 4755/3238/402 4763/3250/409 4764/3239/404 +f 4752/3240/397 4760/3251/410 4761/3241/405 +f 4750/3232/400 4758/3246/269 4759/3243/406 +f 4753/3242/399 4761/3241/405 4757/3244/407 +f 4756/3230/398 4764/3239/404 4758/3246/269 +f 4739/3247/265 4757/3259/407 4762/3248/408 +f 4754/3249/403 4762/3248/408 4763/3250/409 +f 4751/3228/396 4759/3243/406 4760/3251/410 +f 4757/3244/407 4761/3241/405 4768/3252/411 +f 4762/3248/408 4769/3260/415 4770/3254/412 +f 4760/3256/410 4759/3271/406 4766/3257/413 +f 4757/3259/407 4765/3929/265 4769/3260/415 +f 4763/3255/409 4770/3254/412 4771/3261/416 +f 4761/3241/405 4760/3256/410 4767/3258/414 +f 4769/3260/415 4765/3929/265 4772/3263/417 +f 4770/3254/412 4769/3260/415 4776/3264/418 +f 4766/3257/413 4773/3272/423 4774/3266/420 +f 4768/3252/411 4775/3269/422 4772/3267/417 +f 4771/3261/416 4770/3254/412 4777/3265/419 +f 4767/3258/414 4774/3266/420 4775/3269/422 +f 4776/3264/418 4784/3285/270 4785/3273/240 +f 4774/3275/420 4773/3279/423 4781/3276/279 +f 4758/3278/269 4779/3282/239 4781/3276/279 +f 4775/3269/422 4783/3284/290 4780/3280/238 +f 4778/3281/421 4786/3283/291 4779/3282/239 +f 4777/3274/419 4785/3273/240 4786/3283/291 +f 4774/3275/420 4782/3277/242 4783/3284/290 +f 4772/3263/417 4780/3930/238 4784/3285/270 +f 4798/3286/384 4799/3931/265 4791/3287/238 +f 4796/3289/385 4797/3298/387 4789/3290/242 +f 4801/3292/386 4802/3301/389 4794/3293/291 +f 4799/3295/265 4800/3302/390 4792/3296/270 +f 4797/3298/387 4798/3286/384 4790/3288/290 +f 4795/3299/388 4796/3289/385 4788/3291/279 +f 4802/3301/389 4795/3299/388 4787/3300/239 +f 4800/3302/390 4801/3292/386 4793/3294/240 +f 4802/3301/389 4801/3310/386 4808/3303/391 +f 4797/3305/387 4805/3312/393 4806/3306/394 +f 4795/3299/388 4803/3309/269 4804/3308/395 +f 4795/3299/388 4802/3301/389 4809/3304/392 +f 4801/3310/386 4800/3320/390 4807/3311/401 +f 4796/3289/385 4804/3308/395 4805/3312/393 +f 4805/3312/393 4804/3308/395 4811/3313/396 +f 4808/3303/391 4815/3318/402 4816/3315/398 +f 4806/3306/394 4805/3312/393 4812/3314/397 +f 4803/3309/269 4810/3317/400 4811/3313/396 +f 4803/3309/269 4809/3304/392 4816/3315/398 +f 4807/3311/401 4814/3321/403 4815/3318/402 +f 4815/3323/402 4823/3335/409 4824/3324/404 +f 4812/3325/397 4820/3336/410 4821/3326/405 +f 4810/3317/400 4818/3331/269 4819/3328/406 +f 4813/3327/399 4821/3326/405 4817/3329/407 +f 4816/3315/398 4824/3324/404 4818/3331/269 +f 4799/3332/265 4817/3343/407 4822/3333/408 +f 4814/3334/403 4822/3333/408 4823/3335/409 +f 4811/3313/396 4819/3328/406 4820/3336/410 +f 4821/3326/405 4828/3347/411 4825/3337/265 +f 4822/3333/408 4829/3344/415 4830/3338/412 +f 4820/3340/410 4819/3356/406 4826/3341/413 +f 4817/3343/407 4825/3932/265 4829/3344/415 +f 4823/3339/409 4830/3338/412 4831/3345/416 +f 4821/3326/405 4820/3340/410 4827/3342/414 +f 4829/3344/415 4825/3932/265 4832/3348/417 +f 4830/3338/412 4829/3344/415 4836/3349/418 +f 4826/3341/413 4833/3357/423 4834/3351/420 +f 4828/3347/411 4835/3354/422 4832/3352/417 +f 4831/3345/416 4830/3338/412 4837/3350/419 +f 4827/3342/414 4834/3351/420 4835/3354/422 +f 4836/3349/418 4844/3370/270 4845/3358/240 +f 4833/3360/423 4841/3364/279 4842/3361/242 +f 4818/3363/269 4839/3367/239 4841/3364/279 +f 4835/3354/422 4843/3369/290 4840/3365/238 +f 4838/3366/421 4846/3368/291 4839/3367/239 +f 4837/3359/419 4845/3358/240 4846/3368/291 +f 4834/3362/420 4842/3361/242 4843/3369/290 +f 4832/3348/417 4840/3933/238 4844/3370/270 +f 4858/3371/384 4859/3934/265 4851/3372/238 +f 4856/3374/385 4857/3383/387 4849/3375/242 +f 4861/3377/386 4862/3386/389 4854/3378/291 +f 4859/3380/265 4860/3387/390 4852/3381/270 +f 4857/3383/387 4858/3371/384 4850/3373/290 +f 4855/3384/388 4856/3374/385 4848/3376/279 +f 4862/3386/389 4855/3384/388 4847/3385/239 +f 4860/3387/390 4861/3377/386 4853/3379/240 +f 4862/3386/389 4861/3395/386 4868/3388/391 +f 4857/3390/387 4865/3397/393 4866/3391/394 +f 4855/3384/388 4863/3394/269 4864/3393/395 +f 4855/3384/388 4862/3386/389 4869/3389/392 +f 4861/3395/386 4860/3405/390 4867/3396/401 +f 4856/3374/385 4864/3393/395 4865/3397/393 +f 4864/3393/395 4871/3401/396 4872/3398/397 +f 4868/3388/391 4875/3403/402 4876/3399/398 +f 4866/3391/394 4865/3397/393 4872/3398/397 +f 4863/3394/269 4870/3402/400 4871/3401/396 +f 4863/3394/269 4869/3389/392 4876/3399/398 +f 4867/3396/401 4874/3406/403 4875/3403/402 +f 4875/3408/402 4883/3420/409 4884/3409/404 +f 4872/3410/397 4880/3421/410 4881/3411/405 +f 4870/3402/400 4878/3416/269 4879/3413/406 +f 4873/3412/399 4881/3411/405 4877/3414/407 +f 4876/3399/398 4884/3409/404 4878/3416/269 +f 4859/3417/265 4877/3429/407 4882/3418/408 +f 4874/3419/403 4882/3418/408 4883/3420/409 +f 4871/3401/396 4879/3413/406 4880/3421/410 +f 4877/3414/407 4881/3411/405 4888/3422/411 +f 4882/3418/408 4889/3430/415 4890/3424/412 +f 4880/3426/410 4879/3441/406 4886/3427/413 +f 4877/3429/407 4885/3935/265 4889/3430/415 +f 4883/3425/409 4890/3424/412 4891/3431/416 +f 4881/3411/405 4880/3426/410 4887/3428/414 +f 4889/3430/415 4885/3935/265 4892/3433/417 +f 4890/3424/412 4889/3430/415 4896/3434/418 +f 4886/3427/413 4893/3442/423 4894/3436/420 +f 4888/3422/411 4895/3439/422 4892/3437/417 +f 4891/3431/416 4890/3424/412 4897/3435/419 +f 4887/3428/414 4894/3436/420 4895/3439/422 +f 4896/3434/418 4904/3455/270 4905/3443/240 +f 4893/3445/423 4901/3449/279 4902/3446/242 +f 4878/3448/269 4899/3452/239 4901/3449/279 +f 4895/3439/422 4903/3454/290 4900/3450/238 +f 4898/3451/421 4906/3453/291 4899/3452/239 +f 4897/3444/419 4905/3443/240 4906/3453/291 +f 4894/3447/420 4902/3446/242 4903/3454/290 +f 4892/3433/417 4900/3936/238 4904/3455/270 +f 4910/3456/290 4918/3937/384 4919/3457/265 +f 4916/3459/385 4917/3468/387 4909/3460/242 +f 4921/3462/386 4922/3471/389 4914/3463/291 +f 4919/3465/265 4920/3472/390 4912/3466/270 +f 4917/3468/387 4918/3937/384 4910/3456/290 +f 4915/3469/388 4916/3459/385 4908/3461/279 +f 4922/3471/389 4915/3469/388 4907/3470/239 +f 4920/3472/390 4921/3462/386 4913/3464/240 +f 4921/3473/386 4928/3481/391 4929/3474/392 +f 4917/3475/387 4925/3482/393 4926/3476/394 +f 4915/3469/388 4923/3479/269 4924/3478/395 +f 4915/3469/388 4922/3471/389 4929/3474/392 +f 4921/3473/386 4920/3490/390 4927/3480/401 +f 4916/3459/385 4924/3478/395 4925/3482/393 +f 4925/3482/393 4924/3478/395 4931/3483/396 +f 4928/3481/391 4935/3488/402 4936/3485/398 +f 4926/3476/394 4925/3482/393 4932/3484/397 +f 4923/3479/269 4930/3487/400 4931/3483/396 +f 4923/3479/269 4929/3474/392 4936/3485/398 +f 4927/3480/401 4934/3491/403 4935/3488/402 +f 4935/3493/402 4943/3505/409 4944/3494/404 +f 4932/3495/397 4940/3506/410 4941/3496/405 +f 4930/3487/400 4938/3501/269 4939/3498/406 +f 4933/3497/399 4941/3496/405 4937/3499/407 +f 4936/3485/398 4944/3494/404 4938/3501/269 +f 4919/3502/265 4937/3514/407 4942/3503/408 +f 4934/3504/403 4942/3503/408 4943/3505/409 +f 4931/3483/396 4939/3498/406 4940/3506/410 +f 4937/3499/407 4941/3496/405 4948/3507/411 +f 4942/3503/408 4949/3515/415 4950/3509/412 +f 4940/3511/410 4939/3526/406 4946/3512/413 +f 4937/3514/407 4945/3938/265 4949/3515/415 +f 4943/3510/409 4950/3509/412 4951/3516/416 +f 4941/3496/405 4940/3511/410 4947/3513/414 +f 4949/3515/415 4945/3938/265 4952/3518/417 +f 4950/3509/412 4949/3515/415 4956/3519/418 +f 4946/3512/413 4953/3527/423 4954/3521/420 +f 4945/3508/265 4948/3507/411 4955/3522/422 +f 4951/3516/416 4950/3509/412 4957/3520/419 +f 4947/3513/414 4954/3521/420 4955/3522/422 +f 4956/3519/418 4964/3540/270 4965/3528/240 +f 4954/3530/420 4953/3533/423 4961/3531/279 +f 4953/3533/423 4938/3536/269 4959/3534/239 +f 4955/3522/422 4963/3539/290 4960/3535/238 +f 4938/3536/269 4958/3538/421 4966/3537/291 +f 4958/3538/421 4957/3529/419 4965/3528/240 +f 4954/3530/420 4962/3532/242 4963/3539/290 +f 4952/3518/417 4960/3939/238 4964/3540/270 +f 4978/3541/384 4979/3940/265 4971/3542/238 +f 4976/3544/385 4977/3553/387 4969/3545/242 +f 4981/3547/386 4982/3556/389 4974/3548/291 +f 4979/3550/265 4980/3557/390 4972/3551/270 +f 4977/3553/387 4978/3541/384 4970/3543/290 +f 4975/3554/388 4976/3544/385 4968/3546/279 +f 4982/3556/389 4975/3554/388 4967/3555/239 +f 4980/3557/390 4981/3547/386 4973/3549/240 +f 4982/3556/389 4981/3565/386 4988/3558/391 +f 4977/3560/387 4985/3567/393 4986/3561/394 +f 4975/3554/388 4983/3564/269 4984/3563/395 +f 4982/3556/389 4989/3559/392 4983/3564/269 +f 4981/3565/386 4980/3575/390 4987/3566/401 +f 4976/3544/385 4984/3563/395 4985/3567/393 +f 4985/3567/393 4984/3563/395 4991/3568/396 +f 4988/3558/391 4995/3573/402 4996/3570/398 +f 4986/3561/394 4985/3567/393 4992/3569/397 +f 4983/3564/269 4990/3572/400 4991/3568/396 +f 4983/3564/269 4989/3559/392 4996/3570/398 +f 4987/3566/401 4994/3576/403 4995/3573/402 +f 4995/3578/402 5003/3590/409 5004/3579/404 +f 4992/3580/397 5000/3591/410 5001/3581/405 +f 4990/3572/400 4998/3586/269 4999/3583/406 +f 4993/3582/399 5001/3581/405 4997/3584/407 +f 4996/3570/398 5004/3579/404 4998/3586/269 +f 4979/3587/265 4997/3599/407 5002/3588/408 +f 4994/3589/403 5002/3588/408 5003/3590/409 +f 4991/3568/396 4999/3583/406 5000/3591/410 +f 4997/3584/407 5001/3581/405 5008/3592/411 +f 5002/3588/408 5009/3600/415 5010/3594/412 +f 5000/3596/410 4999/3611/406 5006/3597/413 +f 4997/3599/407 5005/3941/265 5009/3600/415 +f 5003/3595/409 5010/3594/412 5011/3601/416 +f 5001/3581/405 5000/3596/410 5007/3598/414 +f 5009/3600/415 5005/3941/265 5012/3603/417 +f 5010/3594/412 5009/3600/415 5016/3604/418 +f 5006/3597/413 5013/3612/423 5014/3606/420 +f 5008/3592/411 5015/3609/422 5012/3607/417 +f 5011/3601/416 5010/3594/412 5017/3605/419 +f 5007/3598/414 5014/3606/420 5015/3609/422 +f 5016/3604/418 5024/3625/270 5025/3613/240 +f 5013/3615/423 5021/3619/279 5022/3616/242 +f 4998/3618/269 5019/3622/239 5021/3619/279 +f 5015/3609/422 5023/3624/290 5020/3620/238 +f 5018/3621/421 5026/3623/291 5019/3622/239 +f 5017/3614/419 5025/3613/240 5026/3623/291 +f 5014/3617/420 5022/3616/242 5023/3624/290 +f 5012/3603/417 5020/3942/238 5024/3625/270 +f 5038/3626/384 5039/3943/265 5031/3627/238 +f 5036/3629/385 5037/3638/387 5029/3630/242 +f 5041/3632/386 5042/3641/389 5034/3633/291 +f 5039/3635/265 5040/3642/390 5032/3636/270 +f 5037/3638/387 5038/3626/384 5030/3628/290 +f 5035/3639/388 5036/3629/385 5028/3631/279 +f 5042/3641/389 5035/3639/388 5027/3640/239 +f 5040/3642/390 5041/3632/386 5033/3634/240 +f 5041/3643/386 5048/3651/391 5049/3644/392 +f 5037/3645/387 5045/3652/393 5046/3646/394 +f 5036/3629/385 5035/3639/388 5043/3648/269 +f 5042/3641/389 5049/3644/392 5043/3648/269 +f 5041/3643/386 5040/3660/390 5047/3650/401 +f 5036/3629/385 5044/3649/395 5045/3652/393 +f 5045/3652/393 5044/3649/395 5051/3653/396 +f 5048/3651/391 5055/3658/402 5056/3655/398 +f 5046/3646/394 5045/3652/393 5052/3654/397 +f 5043/3648/269 5050/3657/400 5051/3653/396 +f 5043/3648/269 5049/3644/392 5056/3655/398 +f 5047/3650/401 5054/3661/403 5055/3658/402 +f 5055/3663/402 5063/3675/409 5064/3664/404 +f 5052/3665/397 5060/3676/410 5061/3666/405 +f 5050/3657/400 5058/3671/269 5059/3668/406 +f 5053/3667/399 5061/3666/405 5057/3669/407 +f 5056/3655/398 5064/3664/404 5058/3671/269 +f 5039/3672/265 5057/3684/407 5062/3673/408 +f 5054/3674/403 5062/3673/408 5063/3675/409 +f 5051/3653/396 5059/3668/406 5060/3676/410 +f 5057/3669/407 5061/3666/405 5068/3677/411 +f 5062/3673/408 5069/3685/415 5070/3679/412 +f 5060/3681/410 5059/3696/406 5066/3682/413 +f 5057/3684/407 5065/3944/265 5069/3685/415 +f 5063/3680/409 5070/3679/412 5071/3686/416 +f 5061/3666/405 5060/3681/410 5067/3683/414 +f 5069/3685/415 5065/3944/265 5072/3688/417 +f 5070/3679/412 5069/3685/415 5076/3689/418 +f 5066/3682/413 5073/3697/423 5074/3691/420 +f 5068/3677/411 5075/3694/422 5072/3692/417 +f 5071/3686/416 5070/3679/412 5077/3690/419 +f 5068/3677/411 5067/3683/414 5074/3691/420 +f 5076/3689/418 5084/3710/270 5085/3698/240 +f 5073/3700/423 5081/3704/279 5082/3701/242 +f 5058/3703/269 5079/3707/239 5081/3704/279 +f 5075/3694/422 5083/3709/290 5080/3705/238 +f 5078/3706/421 5086/3708/291 5079/3707/239 +f 5077/3699/419 5085/3698/240 5086/3708/291 +f 5074/3702/420 5082/3701/242 5083/3709/290 +f 5072/3688/417 5080/3945/238 5084/3710/270 +f 5404/3711/239 5403/3724/291 5395/3712/291 +f 5402/3714/240 5401/3725/270 5393/3715/270 +f 5400/3717/238 5399/3727/290 5391/3718/290 +f 5406/3720/242 5405/3723/279 5397/3721/279 +f 5405/3723/279 5404/3711/239 5396/3713/239 +f 5403/3724/291 5402/3714/240 5394/3716/240 +f 5401/3725/270 5400/3946/238 5392/3726/238 +f 5399/3727/290 5406/3720/242 5398/3722/242 +f 5420/3728/239 5419/3741/291 5411/3729/291 +f 5418/3731/240 5417/3742/270 5409/3732/270 +f 5416/3734/238 5415/3744/290 5407/3735/290 +f 5422/3737/242 5421/3740/279 5413/3738/279 +f 5421/3740/279 5420/3728/239 5412/3730/239 +f 5419/3741/291 5418/3731/240 5410/3733/240 +f 5417/3742/270 5416/3947/238 5408/3743/238 +f 5415/3744/290 5422/3737/242 5414/3739/242 +f 5436/3745/239 5435/3758/291 5427/3746/291 +f 5434/3748/240 5433/3759/270 5425/3749/270 +f 5432/3751/238 5431/3761/290 5423/3752/290 +f 5438/3754/242 5437/3757/279 5429/3755/279 +f 5437/3757/279 5436/3745/239 5428/3747/239 +f 5435/3758/291 5434/3748/240 5426/3750/240 +f 5433/3759/270 5432/3948/238 5424/3760/238 +f 5431/3761/290 5438/3754/242 5430/3756/242 +f 5452/3762/239 5451/3775/291 5443/3763/291 +f 5450/3765/240 5449/3776/270 5441/3766/270 +f 5448/3768/238 5447/3778/290 5439/3769/290 +f 5454/3771/242 5453/3774/279 5445/3772/279 +f 5453/3774/279 5452/3762/239 5444/3764/239 +f 5451/3775/291 5450/3765/240 5442/3767/240 +f 5449/3776/270 5448/3949/238 5440/3777/238 +f 5447/3778/290 5454/3771/242 5446/3773/242 +f 5468/3779/239 5467/3792/291 5459/3780/291 +f 5466/3782/240 5465/3793/270 5457/3783/270 +f 5464/3785/238 5463/3795/290 5455/3786/290 +f 5470/3788/242 5469/3791/279 5461/3789/279 +f 5469/3791/279 5468/3779/239 5460/3781/239 +f 5467/3792/291 5466/3782/240 5458/3784/240 +f 5465/3793/270 5464/3950/238 5456/3794/238 +f 5463/3795/290 5470/3788/242 5462/3790/242 +f 5484/3796/239 5483/3809/291 5475/3797/291 +f 5482/3799/240 5481/3810/270 5473/3800/270 +f 5480/3802/238 5479/3812/290 5471/3803/290 +f 5486/3805/242 5485/3808/279 5477/3806/279 +f 5485/3808/279 5484/3796/239 5476/3798/239 +f 5483/3809/291 5482/3799/240 5474/3801/240 +f 5481/3810/270 5480/3951/238 5472/3811/238 +f 5479/3812/290 5486/3805/242 5478/3807/242 +f 5500/3813/239 5499/3826/291 5491/3814/291 +f 5498/3816/240 5497/3827/270 5489/3817/270 +f 5496/3819/238 5495/3829/290 5487/3820/290 +f 5502/3822/242 5501/3825/279 5493/3823/279 +f 5501/3825/279 5500/3813/239 5492/3815/239 +f 5499/3826/291 5498/3816/240 5490/3818/240 +f 5497/3827/270 5496/3952/238 5488/3828/238 +f 5495/3829/290 5502/3822/242 5494/3824/242 +f 5516/3830/239 5515/3843/291 5507/3831/291 +f 5514/3833/240 5513/3844/270 5505/3834/270 +f 5512/3836/238 5511/3846/290 5503/3837/290 +f 5518/3839/242 5517/3842/279 5509/3840/279 +f 5517/3842/279 5516/3830/239 5508/3832/239 +f 5515/3843/291 5514/3833/240 5506/3835/240 +f 5513/3844/270 5512/3953/238 5504/3845/238 +f 5511/3846/290 5518/3839/242 5510/3841/242 +f 5532/3847/239 5531/3860/291 5523/3848/291 +f 5530/3850/240 5529/3861/270 5521/3851/270 +f 5528/3853/238 5527/3863/290 5519/3854/290 +f 5534/3856/242 5533/3859/279 5525/3857/279 +f 5533/3859/279 5532/3847/239 5524/3849/239 +f 5531/3860/291 5530/3850/240 5522/3852/240 +f 5529/3861/270 5528/3954/238 5520/3862/238 +f 5527/3863/290 5534/3856/242 5526/3858/242 diff --git a/src/main/resources/assets/hbm/textures/models/machines/chemical_factory.png b/src/main/resources/assets/hbm/textures/models/machines/chemical_factory.png new file mode 100644 index 0000000000000000000000000000000000000000..ccdf935dba185992af990194edf083d6d754a400 GIT binary patch literal 3884 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 Date: Mon, 16 Jun 2025 16:17:31 +0200 Subject: [PATCH 172/181] d'oh --- changelog | 7 +- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../com/hbm/blocks/generic/BlockReeds.java | 3 +- .../machine/MachineChemicalFactory.java | 45 +++ .../inventory/container/ContainerBase.java | 15 +- .../container/ContainerCrateBase.java | 8 +- .../ContainerMachineChemicalFactory.java | 77 +++++ .../hbm/inventory/fluid/tank/FluidTank.java | 6 + .../gui/GUIMachineChemicalFactory.java | 132 ++++++++ src/main/java/com/hbm/main/ClientProxy.java | 2 + .../java/com/hbm/main/ResourceManager.java | 2 + .../hbm/module/ModuleMachineChemplant.java | 4 +- .../tileentity/RenderChemicalFactory.java | 71 +++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../TileEntityMachineChemicalFactory.java | 293 ++++++++++++++++++ .../TileEntityMachineChemicalPlant.java | 6 +- .../machine/TileEntityMachineTurbineGas.java | 7 +- .../gui/processing/gui_chemical_factory.png | Bin 3840 -> 3531 bytes .../hbm/textures/items/billet_yharonite.png | Bin 352 -> 312 bytes .../textures/models/machines/radar_base.png | Bin 1006 -> 947 bytes .../textures/models/machines/radar_dish.png | Bin 1502 -> 1407 bytes 21 files changed, 669 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineChemicalFactory.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderChemicalFactory.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java diff --git a/changelog b/changelog index c802deca0..b84be97b5 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,9 @@ * Compressed biomass now has a nice cube shape * The new chemical plant's indicator lights are now functional * The new chemical plant can now use upgrades +* Reeds now drop sticks when broken +* Switching the recipe in the new chemplant now annihilates residual fluid that is not overwritten by the new recipe + * I don't know why people wanted this, but here you go ## Fixed * Chemical plant ports. For real this time. @@ -10,4 +13,6 @@ * Fixed new chemical plant not saving power values to disk * Fixed laser rifle scope texture being missing * Potentially fixed shift clicking issue with the new chemical plant -* Fixed blowtorch having a minimum gas requirement of 1,000mB despite only using 250mB \ No newline at end of file +* Fixed blowtorch having a minimum gas requirement of 1,000mB despite only using 250mB +* The gas turbine now uses audio with a 20 tick timeout, fixing a rare issue where the loop gets stuck and never ends +* Potentially fixed a dupe caused by using InventoryBogoSorter in combination with crates \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 143c33fa0..106dbe846 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1008,6 +1008,7 @@ public class ModBlocks { @Deprecated public static Block machine_chemplant; public static Block machine_chemical_plant; public static Block machine_chemfac; + public static Block machine_chemical_factory; public static Block machine_mixer; public static Block machine_fluidtank; @@ -2227,6 +2228,7 @@ public class ModBlocks { machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemical_plant = new MachineChemicalPlant(Material.iron).setBlockName("machine_chemical_plant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemfac = new MachineChemfac(Material.iron).setBlockName("machine_chemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_chemical_factory = new MachineChemicalFactory(Material.iron).setBlockName("machine_chemical_factory").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_mixer = new MachineMixer(Material.iron).setBlockName("machine_mixer").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_fluidtank = new MachineFluidTank(Material.iron).setBlockName("machine_fluidtank").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fluidtank"); machine_bat9000 = new MachineBigAssTank9000(Material.iron).setBlockName("machine_bat9000").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3267,6 +3269,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName()); register(machine_chemical_plant); register(machine_chemfac); + register(machine_chemical_factory); register(machine_arc_welder); register(machine_soldering_station); register(machine_arc_furnace); diff --git a/src/main/java/com/hbm/blocks/generic/BlockReeds.java b/src/main/java/com/hbm/blocks/generic/BlockReeds.java index 77e620c63..5f5cf69fd 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockReeds.java +++ b/src/main/java/com/hbm/blocks/generic/BlockReeds.java @@ -11,6 +11,7 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; @@ -66,7 +67,7 @@ public class BlockReeds extends Block { @Override public Item getItemDropped(int meta, Random rand, int fortune) { - return null; + return Items.stick; } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java b/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java new file mode 100644 index 000000000..56ea88967 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java @@ -0,0 +1,45 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineChemicalFactory; + +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 MachineChemicalFactory extends BlockDummyable { + + public MachineChemicalFactory(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineChemicalFactory(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); + return null; + } + + @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[] {2, 0, 2, 2, 2, 2}; } + @Override public int getOffset() { return 2; } + + @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; + z -= dir.offsetZ; + + for(int i = -2; i <= 2; i++) for(int j = -2; j <= 2; j++) { + if(Math.abs(i) == 2 || Math.abs(j) == 2) this.makeExtra(world, x + i, y, z + j); + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerBase.java b/src/main/java/com/hbm/inventory/container/ContainerBase.java index 565d8861a..14305fc1c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerBase.java +++ b/src/main/java/com/hbm/inventory/container/ContainerBase.java @@ -95,7 +95,10 @@ public class ContainerBase extends Container { * @param from the slot index to start from */ public void addSlots(IInventory inv, int from, int x, int y, int rows, int cols) { - int slotSize = 18; + addSlots(inv, from, x, y, rows, cols, 18); + } + + public void addSlots(IInventory inv, int from, int x, int y, int rows, int cols, int slotSize) { for(int row = 0; row < rows; row++) { for(int col = 0; col < cols; col++) { this.addSlotToContainer(new SlotNonRetarded(inv, col + row * cols + from, x + col * slotSize, y + row * slotSize)); @@ -104,14 +107,20 @@ public class ContainerBase extends Container { } public void addOutputSlots(EntityPlayer player, IInventory inv, int from, int x, int y, int rows, int cols) { - int slotSize = 18; + addOutputSlots(player, inv, from, x, y, rows, cols, 18); + } + + public void addOutputSlots(EntityPlayer player, IInventory inv, int from, int x, int y, int rows, int cols, int slotSize) { for(int row = 0; row < rows; row++) for(int col = 0; col < cols; col++) { this.addSlotToContainer(new SlotCraftingOutput(player, inv, col + row * cols + from, x + col * slotSize, y + row * slotSize)); } } public void addTakeOnlySlots(IInventory inv, int from, int x, int y, int rows, int cols) { - int slotSize = 18; + addTakeOnlySlots(inv, from, x, y, rows, cols, 18); + } + + public void addTakeOnlySlots(IInventory inv, int from, int x, int y, int rows, int cols, int slotSize) { for(int row = 0; row < rows; row++) for(int col = 0; col < cols; col++) { this.addSlotToContainer(new SlotTakeOnly(inv, col + row * cols + from, x + col * slotSize, y + row * slotSize)); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java index ec6309430..06b255a68 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java @@ -24,7 +24,7 @@ public class ContainerCrateBase extends ContainerBase { } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new SlotNonRetarded(invPlayer, i, playerInvX + i * 18, playerHotbarY)); + this.addSlotToContainer(new SlotPlayerCrate(invPlayer, i, playerInvX + i * 18, playerHotbarY)); } } @@ -67,5 +67,11 @@ public class ContainerCrateBase extends ContainerBase { return false; return super.canTakeStack(player); } + + @Override + public boolean isItemValid(ItemStack item) { + if(ItemStack.areItemStacksEqual(getStack(), item)) return false; + return super.isItemValid(item); + } } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalFactory.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalFactory.java new file mode 100644 index 000000000..484dcfc21 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalFactory.java @@ -0,0 +1,77 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.util.InventoryUtil; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineChemicalFactory extends ContainerBase { + + public ContainerMachineChemicalFactory(InventoryPlayer invPlayer, IInventory chemicalPlant) { + super(invPlayer, chemicalPlant); + + // Battery + this.addSlotToContainer(new SlotNonRetarded(chemicalPlant, 0, 224, 88)); + // Upgrades + this.addSlots(chemicalPlant, 1, 206, 125, 3, 1); + + for(int i = 0; i < 4; i++) { + // Template + this.addSlots(chemicalPlant, 4 + i * 7, 93, 20 + i * 22, 1, 1, 16); + // Solid Input + this.addSlots(chemicalPlant, 5 + i * 7, 10, 20 + i * 22, 1, 3, 16); + // Solid Output + this.addOutputSlots(invPlayer.player, chemicalPlant, 8 + i * 7, 139, 20 + i * 22, 1, 3, 16); + } + + this.playerInv(invPlayer, 26, 134); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack slotOriginal = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack slotStack = slot.getStack(); + slotOriginal = slotStack.copy(); + + if(index <= tile.getSizeInventory() - 1) { + SlotCraftingOutput.checkAchievements(player, slotStack); + if(!this.mergeItemStack(slotStack, tile.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(slotOriginal.getItem() instanceof IBatteryItem || slotOriginal.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(slotStack, 0, 1, false)) return null; + } else if(slotOriginal.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(slotStack, 1, 4, false)) return null; + } else { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, slotStack, 5, 8, false) && + !InventoryUtil.mergeItemStack(this.inventorySlots, slotStack, 12, 15, false) && + !InventoryUtil.mergeItemStack(this.inventorySlots, slotStack, 19, 22, false) && + !InventoryUtil.mergeItemStack(this.inventorySlots, slotStack, 26, 29, false)) return null; + } + } + + if(slotStack.stackSize == 0) { + slot.putStack(null); + } else { + slot.onSlotChanged(); + } + + slot.onPickupFromSlot(player, slotStack); + } + + return slotOriginal; + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 4883790dc..9d60e8a2a 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -65,6 +65,12 @@ public class FluidTank implements Cloneable { this.setFill(0); } + public void resetTank() { + this.type = Fluids.NONE; + this.fluid = 0; + this.pressure = 0; + } + /** Changes type and pressure based on a fluid stack, useful for changing tank types based on recipes */ public FluidTank conform(FluidStack stack) { this.setTankType(stack.type); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java new file mode 100644 index 000000000..07824714e --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java @@ -0,0 +1,132 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineChemicalFactory; +import com.hbm.inventory.recipes.ChemicalPlantRecipes; +import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineChemicalFactory; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +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 GUIMachineChemicalFactory extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_chemical_factory.png"); + private TileEntityMachineChemicalFactory chemplant; + + public GUIMachineChemicalFactory(InventoryPlayer invPlayer, TileEntityMachineChemicalFactory tedf) { + super(new ContainerMachineChemicalFactory(invPlayer, tedf)); + chemplant = tedf; + + this.xSize = 248; + this.ySize = 216; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + for(int i = 0; i < 3; i++) for(int j = 0; j < 4; j++) { + chemplant.inputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 60 + i * 5, guiTop + 20 + j * 22, 4, 16); + chemplant.outputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 189 + i * 5, guiTop + 20 + j * 22, 4, 16); + } + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 224, guiTop + 18, 16, 68, chemplant.power, chemplant.maxPower); + + for(int i = 0; i < 4; i++) if(guiLeft + 74 <= mouseX && guiLeft + 74 + 18 > mouseX && guiTop + 19 + i * 22 < mouseY && guiTop + 19 + i * 22 + 18 >= mouseY) { + if(this.chemplant.chemplantModule[i].recipe != null && ChemicalPlantRecipes.INSTANCE.recipeNameMap.containsKey(this.chemplant.chemplantModule[i].recipe)) { + GenericRecipe recipe = (GenericRecipe) ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.chemplant.chemplantModule[i].recipe); + this.func_146283_a(recipe.print(), mouseX, mouseY); + } else { + this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + "Click to set recipe", mouseX, mouseY); + } + } + } + + @Override + protected void mouseClicked(int x, int y, int button) { + super.mouseClicked(x, y, button); + + for(int i = 0; i < 4; i++) if(this.checkClick(x, y, 74, 19 + i * 22, 18, 18)) GUIScreenRecipeSelector.openSelector(ChemicalPlantRecipes.INSTANCE, chemplant, chemplant.chemplantModule[i].recipe, i, this); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.chemplant.hasCustomInventoryName() ? this.chemplant.getInventoryName() : I18n.format(this.chemplant.getInventoryName()); + + this.fontRendererObj.drawString(name, 106 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 26, 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, 248, 116); + drawTexturedModalRect(guiLeft + 18, guiTop + 116, 18, 116, 230, 100); + + int p = (int) (chemplant.power * 68 / chemplant.maxPower); + drawTexturedModalRect(guiLeft + 224, guiTop + 86 - p, 0, 184 - p, 16, p); + + for(int i = 0; i < 4; i++) if(chemplant.chemplantModule[i].progress > 0) { + int j = (int) Math.ceil(22 * chemplant.chemplantModule[i].progress); + drawTexturedModalRect(guiLeft + 113, guiTop + 29 + i * 22, 0, 216, j, 6); + } + + for(int g = 0; g < 4; g++) { + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(chemplant.chemplantModule[g].recipe); + + /// LEFT LED + if(chemplant.didProcess) { + drawTexturedModalRect(guiLeft + 113, guiTop + 21 + g * 22, 4, 222, 4, 4); + } else if(recipe != null) { + drawTexturedModalRect(guiLeft + 113, guiTop + 21 + g * 22, 0, 222, 4, 4); + } + + /// RIGHT LED + if(chemplant.didProcess) { + drawTexturedModalRect(guiLeft + 121, guiTop + 21 + g * 22, 4, 222, 4, 4); + } else if(recipe != null && chemplant.power >= recipe.power) { + drawTexturedModalRect(guiLeft + 121, guiTop + 21 + g * 22, 0, 222, 4, 4); + } + } + + for(int g = 0; g < 4; g++) { // not a great way of doing it but at least we eliminate state leak bullshit + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(chemplant.chemplantModule[g].recipe); + + this.renderItem(recipe != null ? recipe.getIcon() : TEMPLATE_FOLDER, 75, 20 + g * 22); + + if(recipe != null && recipe.inputItem != null) { + for(int i = 0; i < recipe.inputItem.length; i++) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(chemplant.chemplantModule[g].inputSlots[i]); + if(!slot.getHasStack()) this.renderItem(recipe.inputItem[i].extractForCyclingDisplay(20), slot.xDisplayPosition, slot.yDisplayPosition, 10F); + } + + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1F, 1F, 1F, 0.5F); + GL11.glEnable(GL11.GL_BLEND); + this.zLevel = 300F; + for(int i = 0; i < recipe.inputItem.length; i++) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(chemplant.chemplantModule[g].inputSlots[i]); + if(!slot.getHasStack()) drawTexturedModalRect(guiLeft + slot.xDisplayPosition, guiTop + slot.yDisplayPosition, slot.xDisplayPosition, slot.yDisplayPosition, 16, 16); + } + this.zLevel = 0F; + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glDisable(GL11.GL_BLEND); + } + } + + for(int i = 0; i < 3; i++) for(int j = 0; j < 4; j++) { + chemplant.inputTanks[i + j * 3].renderTank(guiLeft + 60 + i * 5, guiTop + 36 + j * 22, this.zLevel, 4, 16); + chemplant.outputTanks[i + j * 3].renderTank(guiLeft + 189 + i * 5, guiTop + 36 + j * 22, this.zLevel, 4, 16); + } + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 5c157900b..128a8f8b4 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -91,6 +91,7 @@ import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.i18n.I18nClient; import com.hbm.util.i18n.ITranslate; import com.hbm.wiaj.cannery.Jars; + import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; @@ -270,6 +271,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.class, new RenderChemplant()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemicalPlant.class, new RenderChemicalPlant()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemfac.class, new RenderChemfac()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemicalFactory.class, new RenderChemicalFactory()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineBAT9000.class, new RenderBAT9000()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOrbus.class, new RenderOrbus()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 2547277ca..8cad667ec 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -150,6 +150,7 @@ public class ResourceManager { public static final IModelCustom chemplant_fluidcap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_fluidcap.hmf")); public static final IModelCustom chemical_plant = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemical_plant.obj")); public static final IModelCustom chemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemfac.obj")); + public static final IModelCustom chemical_factory = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemical_factory.obj")); //Mixer public static final IModelCustom mixer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mixer.obj")); @@ -583,6 +584,7 @@ public class ResourceManager { public static final ResourceLocation chemical_plant_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemical_plant.png"); public static final ResourceLocation chemical_plant_fluid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemical_plant_fluid.png"); public static final ResourceLocation chemfac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemfac.png"); + public static final ResourceLocation chemical_factory_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemical_factory.png"); //Mixer public static final ResourceLocation mixer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mixer.png"); diff --git a/src/main/java/com/hbm/module/ModuleMachineChemplant.java b/src/main/java/com/hbm/module/ModuleMachineChemplant.java index 06fe32d84..c68e9cae6 100644 --- a/src/main/java/com/hbm/module/ModuleMachineChemplant.java +++ b/src/main/java/com/hbm/module/ModuleMachineChemplant.java @@ -43,8 +43,8 @@ public class ModuleMachineChemplant { /** Chances tank type and pressure based on recipe */ public void setupTanks(GenericRecipe recipe) { if(recipe == null) return; - if(recipe.inputFluid != null) for(int i = 0; i < Math.min(inputTanks.length, recipe.inputFluid.length); i++) inputTanks[i].conform(recipe.inputFluid[i]); - if(recipe.outputFluid != null) for(int i = 0; i < Math.min(outputTanks.length, recipe.outputFluid.length); i++) outputTanks[i].conform(recipe.outputFluid[i]); + for(int i = 0; i < 3; i++) if(recipe.inputFluid != null && recipe.inputFluid.length > i) inputTanks[i].conform(recipe.inputFluid[i]); else inputTanks[i].resetTank(); + for(int i = 0; i < 3; i++) if(recipe.outputFluid != null && recipe.outputFluid.length > i) outputTanks[i].conform(recipe.outputFluid[i]); else outputTanks[i].resetTank(); } /** Expects the tanks to be set up correctly beforehand */ diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemicalFactory.java b/src/main/java/com/hbm/render/tileentity/RenderChemicalFactory.java new file mode 100644 index 000000000..7eae5b7ad --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderChemicalFactory.java @@ -0,0 +1,71 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineChemicalFactory; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderChemicalFactory extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + + TileEntityMachineChemicalFactory chemplant = (TileEntityMachineChemicalFactory) tileEntity; + float anim = chemplant.prevAnim + (chemplant.anim - chemplant.prevAnim) * interp; + + bindTexture(ResourceManager.chemical_factory_tex); + ResourceManager.chemical_factory.renderPart("Base"); + if(chemplant.frame) ResourceManager.chemical_factory.renderPart("Frame"); + ResourceManager.chemical_factory.renderPart("Fan1"); + ResourceManager.chemical_factory.renderPart("Fan2"); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_chemical_factory); + } + + @Override + public IItemRenderer getRenderer() { + + return new ItemRenderBase() { + + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chemical_factory_tex); + ResourceManager.chemical_factory.renderPart("Base"); + ResourceManager.chemical_factory.renderPart("Frame"); + ResourceManager.chemical_factory.renderPart("Fan1"); + ResourceManager.chemical_factory.renderPart("Fan2"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index f8252b5af..36e0f3d04 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -342,6 +342,7 @@ public class TileMappings { put(TileEntityMachineChemplant.class, "tileentity_chemical_plant"); put(TileEntityMachineChemicalPlant.class, "tileentity_chemicalplant"); put(TileEntityMachineChemfac.class, "tileentity_chemfac"); + put(TileEntityMachineChemicalFactory.class, "tileentity_chemicalfactory"); put(TileEntityMachineOilWell.class, "tileentity_derrick"); put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java new file mode 100644 index 000000000..1487d194a --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java @@ -0,0 +1,293 @@ +package com.hbm.tileentity.machine; + +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.container.ContainerMachineChemicalFactory; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineChemicalFactory; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.module.ModuleMachineChemplant; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; + +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluidmk2.IFluidStandardTransceiverMK2; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineChemicalFactory extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiverMK2, IUpgradeInfoProvider, IControlReceiver, IGUIProvider { + + public FluidTank[] allTanks; + public FluidTank[] inputTanks; + public FluidTank[] outputTanks; + + public long power; + public long maxPower = 10_000_000; + public boolean didProcess = false; + + public boolean frame = false; + public int anim; + public int prevAnim; + + public ModuleMachineChemplant[] chemplantModule; + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this); + + public TileEntityMachineChemicalFactory() { + super(32); + + this.inputTanks = new FluidTank[12]; + this.outputTanks = new FluidTank[12]; + for(int i = 0; i < 12; i++) { + this.inputTanks[i] = new FluidTank(Fluids.NONE, 24_000); + this.outputTanks[i] = new FluidTank(Fluids.NONE, 24_000); + } + + this.allTanks = new FluidTank[this.inputTanks.length + this.outputTanks.length]; + for(int i = 0; i < inputTanks.length; i++) this.allTanks[i] = this.inputTanks[i]; + for(int i = 0; i < outputTanks.length; i++) this.allTanks[i + this.inputTanks.length] = this.outputTanks[i]; + + this.chemplantModule = new ModuleMachineChemplant[4]; + for(int i = 0; i < 4; i++) this.chemplantModule[i] = new ModuleMachineChemplant(i, this, slots) + .itemInput(5 + i * 7, 6 + i * 7, 7 + i * 7) + .itemOutput(8 + i * 7, 9 + i * 7, 10 + i * 7) + .fluidInput(inputTanks[0 + i * 3], inputTanks[1 + i * 3], inputTanks[2 + i * 3]) + .fluidOutput(outputTanks[0 + i * 3], outputTanks[1 + i * 3], outputTanks[2 + i * 3]); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + if(i >= 8 && i <= 10) return true; + if(i >= 12 && i <= 14) return true; + if(i >= 19 && i <= 21) return true; + if(i >= 26 && i <= 28) return true; + return false; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot == 0) return true; // battery + if(slot >= 1 && slot <= 3 && stack.getItem() instanceof ItemMachineUpgrade) return true; // upgrades + for(int i = 0; i < 4; i++) if(this.chemplantModule[i].isItemValid(slot, stack)) return true; // recipe input crap + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { + 5, 6, 7, 8, 9, 10, + 12, 13, 14, 15, 16, 17, + 19, 20, 21, 22, 23, 24, + 26, 27, 28, 29, 30, 31 + }; + } + + @Override + public String getName() { + return "container.machineChemicalFactory"; + } + + @Override + public void updateEntity() { + + if(maxPower <= 0) this.maxPower = 10_000_000; + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); + upgradeManager.checkSlots(slots, 1, 3); + + inputTanks[0].loadTank(10, 13, slots); + inputTanks[1].loadTank(11, 14, slots); + inputTanks[2].loadTank(12, 15, slots); + + outputTanks[0].unloadTank(16, 19, slots); + outputTanks[1].unloadTank(17, 20, slots); + outputTanks[2].unloadTank(18, 21, slots); + + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos); + for(FluidTank tank : inputTanks) if(tank.getTankType() != Fluids.NONE) this.trySubscribe(tank.getTankType(), worldObj, pos); + for(FluidTank tank : outputTanks) if(tank.getFill() > 0) this.tryProvide(tank, worldObj, pos); + } + + double speed = 1D; + double pow = 1D; + + speed += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) / 3D; + speed += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3); + + pow -= Math.min(upgradeManager.getLevel(UpgradeType.POWER), 3) * 0.25D; + pow += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) * 1D; + pow += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 10D / 3D; + + this.didProcess = false; + boolean markDirty = false; + + for(int i = 0; i < 4; i++) { + this.chemplantModule[i].update(speed * 2D, pow); + this.didProcess |= this.chemplantModule[i].didProcess; + markDirty |= this.chemplantModule[i].markDirty; + } + + if(markDirty) this.markDirty(); + + this.networkPackNT(100); + + } else { + + this.prevAnim = this.anim; + if(this.didProcess) this.anim++; + + if(worldObj.getTotalWorldTime() % 20 == 0) { + frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord); + } + } + } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord + 3, yCoord, zCoord - 2, Library.POS_X), + new DirPos(xCoord + 3, yCoord, zCoord + 0, Library.POS_X), + new DirPos(xCoord + 3, yCoord, zCoord + 2, Library.POS_X), + new DirPos(xCoord - 3, yCoord, zCoord - 2, Library.NEG_X), + new DirPos(xCoord - 3, yCoord, zCoord + 0, Library.NEG_X), + new DirPos(xCoord - 3, yCoord, zCoord + 2, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord + 0, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord + 2, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord - 2, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord + 0, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord + 2, yCoord, zCoord - 3, Library.NEG_Z), + + new DirPos(xCoord + dir.offsetX + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ + rot.offsetZ * 3, rot), + new DirPos(xCoord - dir.offsetX + rot.offsetX * 3, yCoord, zCoord - dir.offsetZ + rot.offsetZ * 3, rot), + new DirPos(xCoord + dir.offsetX - rot.offsetX * 3, yCoord, zCoord + dir.offsetZ - rot.offsetZ * 3, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX - rot.offsetX * 3, yCoord, zCoord - dir.offsetZ - rot.offsetZ * 3, rot.getOpposite()), + }; + } + + + public DirPos[] getCoolPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + rot.offsetX + dir.offsetX * 3, yCoord, zCoord + rot.offsetZ + dir.offsetZ * 3, dir), + new DirPos(xCoord - rot.offsetX + dir.offsetX * 3, yCoord, zCoord - rot.offsetZ + dir.offsetZ * 3, dir), + new DirPos(xCoord + rot.offsetX - dir.offsetX * 3, yCoord, zCoord + rot.offsetZ - dir.offsetZ * 3, dir.getOpposite()), + new DirPos(xCoord - rot.offsetX - dir.offsetX * 3, yCoord, zCoord - rot.offsetZ - dir.offsetZ * 3, dir.getOpposite()), + }; + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + for(FluidTank tank : inputTanks) tank.serialize(buf); + for(FluidTank tank : outputTanks) tank.serialize(buf); + buf.writeLong(power); + buf.writeLong(maxPower); + buf.writeBoolean(didProcess); + for(int i = 0; i < 4; i++) this.chemplantModule[i].serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + for(FluidTank tank : inputTanks) tank.deserialize(buf); + for(FluidTank tank : outputTanks) tank.deserialize(buf); + this.power = buf.readLong(); + this.maxPower = buf.readLong(); + this.didProcess = buf.readBoolean(); + for(int i = 0; i < 4; i++) this.chemplantModule[i].deserialize(buf); + } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + + @Override public FluidTank[] getReceivingTanks() { return inputTanks; } + @Override public FluidTank[] getSendingTanks() { return outputTanks; } + @Override public FluidTank[] getAllTanks() { return allTanks; } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineChemicalFactory(player.inventory, this); } + @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineChemicalFactory(player.inventory, this); } + + @Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("index") && data.hasKey("selection")) { + int index = data.getInteger("index"); + String selection = data.getString("selection"); + if(index >= 0 && index < 4) { + this.chemplantModule[index].recipe = selection; + this.markChanged(); + } + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + if(bb == null) bb = AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 3, zCoord + 3); + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemical_plant)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_SPEED, "+" + (level * 100 / 3) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_CONSUMPTION, "+" + (level * 50) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_CONSUMPTION, "-" + (level * 25) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); + return upgrades; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index 0dc1dd1ad..8181d3497 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -228,8 +228,10 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem if(data.hasKey("index") && data.hasKey("selection")) { int index = data.getInteger("index"); String selection = data.getString("selection"); - if(index == 0) this.chemplantModule.recipe = selection; - this.markChanged(); + if(index == 0) { + this.chemplantModule.recipe = selection; + this.markChanged(); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 2e320fb2e..26a44455f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -74,7 +74,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement fuelMaxCons.put(Fluids.GAS, 50D); // natgas doesn't burn well so it burns faster to compensate fuelMaxCons.put(Fluids.SYNGAS, 10D); // syngas just fucks fuelMaxCons.put(Fluids.OXYHYDROGEN, 100D); // oxyhydrogen is terrible so it needs to burn a ton for the bare minimum - fuelMaxCons.put(Fluids.REFORMGAS, 5D); // fuck it we ball + fuelMaxCons.put(Fluids.REFORMGAS, 5D); // fuck it we ball // default to 5 if not in list } @@ -166,17 +166,18 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement if(audio == null) { //if there is no sound playing, start it - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, getVolume(1.0F), 20F, 2.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, getVolume(1.0F), 20F, 2.0F, 20); audio.startSound(); } else if(!audio.isPlaying()) { audio.stopSound(); - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, getVolume(1.0F), 20F, 2.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, getVolume(1.0F), 20F, 2.0F, 20); audio.startSound(); } audio.updatePitch((float) (0.55 + 0.1 * rpm / 10)); //dynamic pitch update based on rpm audio.updateVolume(getVolume(2F)); //yeah i need this + audio.keepAlive(); } else { diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_chemical_factory.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_chemical_factory.png index d8ce9926c1d1a6d67a6aed1a7959cce567b90002..7e6aa8347e4fff3bda07f1e73bea1f64835e6b4c 100644 GIT binary patch literal 3531 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 literal 3840 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 diff --git a/src/main/resources/assets/hbm/textures/items/billet_yharonite.png b/src/main/resources/assets/hbm/textures/items/billet_yharonite.png index 27f0cfb0f0e305f8ae778b93a0d7bf3252ee74d9..8778d6f03e04edfd2768a805aba7d9190f671660 100644 GIT binary patch delta 270 zcmV+p0rCFe0=NQ@Gk*Z@Nkl_x1k+GAnuF#MWJY3LV*LKa>)Qx`16vCYrXc~aSjObXTr<`s zzI2DzasP?XyJ(SQv5WyojydboPSpxT0x*AmWOIH1pePEGs?~&R1+GZqg8wK#5Eoa7 UnZ96j00000Ne4wvM6N<$f}RO}H2?qr delta 310 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 WiWeil_3DcN0000 Date: Tue, 17 Jun 2025 16:30:00 +0200 Subject: [PATCH 173/181] i stuck my ballsack in the coolant line & it got obliterated by delta P --- changelog | 12 ++ .../java/api/hbm/fluidmk2/IFluidUserMK2.java | 2 +- .../machine/MachineChemicalFactory.java | 8 +- .../gui/GUIMachineChemicalFactory.java | 16 +- .../hbm/inventory/recipes/MixerRecipes.java | 2 +- .../weapon/sedna/factory/XFactoryEnergy.java | 8 +- .../hbm/module/ModuleMachineChemplant.java | 12 +- .../hbm/tileentity/TileEntityProxyCombo.java | 161 +++++++++--------- .../hbm/tileentity/TileEntityProxyDyn.java | 24 +++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../TileEntityMachineChemicalFactory.java | 105 ++++++++++-- .../TileEntityMachineChemicalPlant.java | 2 +- 12 files changed, 242 insertions(+), 111 deletions(-) create mode 100644 src/main/java/com/hbm/tileentity/TileEntityProxyDyn.java diff --git a/changelog b/changelog index b84be97b5..fd3dc6df8 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,13 @@ +## Added +* New chemical factory + * New form factor, uses a smaller 5x5 footprint + * Only does four recipes instead of eight + * Double base speed, but also double power draw + * Three upgrade slots, upgrades follow the same rules as on the new chemplant + * Upgrades stack with the double base speed + * Stackable! + * Water consumption rate is fixed at 100mB/t for each active recipe + ## Changed * The DNT suit now has a damage threshold of 1,000 * Compressed biomass now has a nice cube shape @@ -6,6 +16,8 @@ * Reeds now drop sticks when broken * Switching the recipe in the new chemplant now annihilates residual fluid that is not overwritten by the new recipe * I don't know why people wanted this, but here you go +* The alternate recipe for oxyhydrogen now uses compressed air instead of nothing +* Improved threaded Mk5, should be a smidge faster now ## Fixed * Chemical plant ports. For real this time. diff --git a/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java index 1e60f7585..755c415c5 100644 --- a/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java +++ b/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java @@ -9,7 +9,7 @@ public interface IFluidUserMK2 extends IFluidConnectorMK2, ILoadedTile { public static final int HIGHEST_VALID_PRESSURE = 5; public static final int[] DEFAULT_PRESSURE_RANGE = new int[] {0, 0}; - public static final boolean particleDebug = false; + public static final boolean particleDebug = true; public FluidTank[] getAllTanks(); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java b/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java index 56ea88967..787f030b9 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java @@ -1,7 +1,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; -import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.TileEntityProxyDyn; import com.hbm.tileentity.machine.TileEntityMachineChemicalFactory; import net.minecraft.block.material.Material; @@ -19,7 +19,7 @@ public class MachineChemicalFactory extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityMachineChemicalFactory(); - if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); + if(meta >= 6) return new TileEntityProxyDyn().inventory().power().fluid(); return null; } @@ -35,8 +35,8 @@ public class MachineChemicalFactory extends BlockDummyable { 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; - z -= dir.offsetZ; + x -= dir.offsetX * 2; + z -= dir.offsetZ * 2; for(int i = -2; i <= 2; i++) for(int j = -2; j <= 2; j++) { if(Math.abs(i) == 2 || Math.abs(j) == 2) this.makeExtra(world, x + i, y, z + j); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java index 07824714e..4b756e87b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java @@ -34,10 +34,13 @@ public class GUIMachineChemicalFactory extends GuiInfoContainer { super.drawScreen(mouseX, mouseY, f); for(int i = 0; i < 3; i++) for(int j = 0; j < 4; j++) { - chemplant.inputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 60 + i * 5, guiTop + 20 + j * 22, 4, 16); - chemplant.outputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 189 + i * 5, guiTop + 20 + j * 22, 4, 16); + chemplant.inputTanks[i + j * 3].renderTankInfo(this, mouseX, mouseY, guiLeft + 60 + i * 5, guiTop + 20 + j * 22, 4, 16); + chemplant.outputTanks[i + j * 3].renderTankInfo(this, mouseX, mouseY, guiLeft + 189 + i * 5, guiTop + 20 + j * 22, 4, 16); } + chemplant.water.renderTankInfo(this, mouseX, mouseY, guiLeft + 224, guiTop + 125, 7, 52); + chemplant.lps.renderTankInfo(this, mouseX, mouseY, guiLeft + 233, guiTop + 125, 7, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 224, guiTop + 18, 16, 68, chemplant.power, chemplant.maxPower); for(int i = 0; i < 4; i++) if(guiLeft + 74 <= mouseX && guiLeft + 74 + 18 > mouseX && guiTop + 19 + i * 22 < mouseY && guiTop + 19 + i * 22 + 18 >= mouseY) { @@ -84,16 +87,16 @@ public class GUIMachineChemicalFactory extends GuiInfoContainer { GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(chemplant.chemplantModule[g].recipe); /// LEFT LED - if(chemplant.didProcess) { + if(chemplant.didProcess[g]) { drawTexturedModalRect(guiLeft + 113, guiTop + 21 + g * 22, 4, 222, 4, 4); } else if(recipe != null) { drawTexturedModalRect(guiLeft + 113, guiTop + 21 + g * 22, 0, 222, 4, 4); } /// RIGHT LED - if(chemplant.didProcess) { + if(chemplant.didProcess[g]) { drawTexturedModalRect(guiLeft + 121, guiTop + 21 + g * 22, 4, 222, 4, 4); - } else if(recipe != null && chemplant.power >= recipe.power) { + } else if(recipe != null && chemplant.power >= recipe.power && chemplant.canCool()) { drawTexturedModalRect(guiLeft + 121, guiTop + 21 + g * 22, 0, 222, 4, 4); } } @@ -128,5 +131,8 @@ public class GUIMachineChemicalFactory extends GuiInfoContainer { chemplant.inputTanks[i + j * 3].renderTank(guiLeft + 60 + i * 5, guiTop + 36 + j * 22, this.zLevel, 4, 16); chemplant.outputTanks[i + j * 3].renderTank(guiLeft + 189 + i * 5, guiTop + 36 + j * 22, this.zLevel, 4, 16); } + + chemplant.water.renderTank(guiLeft + 224, guiTop + 177, this.zLevel, 7, 52); + chemplant.lps.renderTank(guiLeft + 233, guiTop + 177, this.zLevel, 7, 52); } } diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 670f016e1..e20cf1b56 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -79,7 +79,7 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); register(Fluids.OXYHYDROGEN, - new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)), + new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.AIR, 2_000)), new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); register(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.fuel_additive, 1, 0))); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java index 1d30e41ce..4167419d7 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java @@ -166,9 +166,9 @@ public class XFactoryEnergy { energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); energy_las_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.FIRE).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(LAMBDA_IR_HIT); - energy_emerald = energy_las.clone().setArmorPiercing(0.5F).setThresholdNegation(5F); - energy_emerald_overcharge = energy_las_overcharge.clone().setArmorPiercing(0.5F).setThresholdNegation(5F); - energy_emerald_ir = energy_las_ir.clone().setArmorPiercing(0.5F).setThresholdNegation(5F); + energy_emerald = energy_las.clone().setArmorPiercing(0.5F).setThresholdNegation(10F); + energy_emerald_overcharge = energy_las_overcharge.clone().setArmorPiercing(0.5F).setThresholdNegation(15F); + energy_emerald_ir = energy_las_ir.clone().setArmorPiercing(0.5F).setThresholdNegation(10F); ModItems.gun_tesla_cannon = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(1_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE) @@ -194,7 +194,7 @@ public class XFactoryEnergy { ModItems.gun_laser_pistol_pew_pew = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig() .dura(500).draw(10).inspect(26).crosshair(Crosshair.CIRCLE) .rec(new Receiver(0) - .dmg(20F).rounds(5).delay(10).spread(0.25F).spreadHipfire(1F).reload(45).jam(37).sound("hbm:weapon.fire.laserPistol", 1.0F, 0.8F) + .dmg(30F).rounds(5).delay(10).spread(0.25F).spreadHipfire(1F).reload(45).jam(37).sound("hbm:weapon.fire.laserPistol", 1.0F, 0.8F) .mag(new MagazineFullReload(0, 10).addConfigs(energy_las, energy_las_overcharge, energy_las_ir)) .offset(0.75, -0.0625 * 1.5, -0.1875) .setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY)) diff --git a/src/main/java/com/hbm/module/ModuleMachineChemplant.java b/src/main/java/com/hbm/module/ModuleMachineChemplant.java index c68e9cae6..4c6cbdbcd 100644 --- a/src/main/java/com/hbm/module/ModuleMachineChemplant.java +++ b/src/main/java/com/hbm/module/ModuleMachineChemplant.java @@ -135,14 +135,14 @@ public class ModuleMachineChemplant { } } - public void update(double speed, double power) { + public void update(double speed, double power, boolean extraCondition) { GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.recipe); this.setupTanks(recipe); this.didProcess = false; this.markDirty = false; - if(this.canProcess(recipe, speed, power)) { + if(extraCondition && this.canProcess(recipe, speed, power)) { this.process(recipe, speed, power); this.didProcess = true; } else { @@ -179,12 +179,12 @@ public class ModuleMachineChemplant { } public void readFromNBT(NBTTagCompound nbt) { - this.progress = nbt.getDouble("progress"); - this.recipe = nbt.getString("recipe"); + this.progress = nbt.getDouble("progress" + index); + this.recipe = nbt.getString("recipe" + index); } public void writeToNBT(NBTTagCompound nbt) { - nbt.setDouble("progress", progress); - nbt.setString("recipe", recipe); + nbt.setDouble("progress" + index, progress); + nbt.setString("recipe" + index, recipe); } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index 405551c32..c38e5f51e 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -75,15 +75,18 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return this; } - //fewer messy recursive operations - public TileEntity getTile() { - + /** Returns the actual tile entity that represents the core. Only for internal use. */ + protected TileEntity getTile() { if(tile == null || tile.isInvalid()) { tile = this.getTE(); } - return tile; } + + /** Returns the core tile entity, or a delegate object. */ + protected Object getCoreObject() { + return getTile(); + } @Override public void setPower(long i) { @@ -91,8 +94,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return; - if(getTile() instanceof IEnergyReceiverMK2) { - ((IEnergyReceiverMK2)getTile()).setPower(i); + if(getCoreObject() instanceof IEnergyReceiverMK2) { + ((IEnergyReceiverMK2)getCoreObject()).setPower(i); } } @@ -102,8 +105,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return 0; - if(getTile() instanceof IEnergyReceiverMK2) { - return ((IEnergyReceiverMK2)getTile()).getPower(); + if(getCoreObject() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getCoreObject()).getPower(); } return 0; @@ -115,8 +118,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return 0; - if(getTile() instanceof IEnergyReceiverMK2) { - return ((IEnergyReceiverMK2)getTile()).getMaxPower(); + if(getCoreObject() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getCoreObject()).getMaxPower(); } return 0; @@ -128,8 +131,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!this.power) return power; - if(getTile() instanceof IEnergyReceiverMK2) { - return ((IEnergyReceiverMK2)getTile()).transferPower(power); + if(getCoreObject() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getCoreObject()).transferPower(power); } return power; @@ -141,8 +144,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!power) return false; - if(getTile() instanceof IEnergyReceiverMK2) { - return ((IEnergyReceiverMK2)getTile()).canConnect(dir); + if(getCoreObject() instanceof IEnergyReceiverMK2) { + return ((IEnergyReceiverMK2)getCoreObject()).canConnect(dir); } return true; @@ -154,8 +157,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy public FluidTank[] getAllTanks() { if(!fluid) return EMPTY_TANKS; - if(getTile() instanceof IFluidReceiverMK2) { - return ((IFluidReceiverMK2)getTile()).getAllTanks(); + if(getCoreObject() instanceof IFluidReceiverMK2) { + return ((IFluidReceiverMK2)getCoreObject()).getAllTanks(); } return EMPTY_TANKS; @@ -165,8 +168,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy public long transferFluid(FluidType type, int pressure, long amount) { if(!fluid) return amount; - if(getTile() instanceof IFluidReceiverMK2) { - return ((IFluidReceiverMK2)getTile()).transferFluid(type, pressure, amount); + if(getCoreObject() instanceof IFluidReceiverMK2) { + return ((IFluidReceiverMK2)getCoreObject()).transferFluid(type, pressure, amount); } return amount; @@ -176,8 +179,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy public long getDemand(FluidType type, int pressure) { if(!fluid) return 0; - if(getTile() instanceof IFluidReceiverMK2) { - return ((IFluidReceiverMK2)getTile()).getDemand(type, pressure); + if(getCoreObject() instanceof IFluidReceiverMK2) { + return ((IFluidReceiverMK2)getCoreObject()).getDemand(type, pressure); } return 0; @@ -189,8 +192,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!this.fluid) return false; - if(getTile() instanceof IFluidConnectorMK2) { - return ((IFluidConnectorMK2) getTile()).canConnect(type, dir); + if(getCoreObject() instanceof IFluidConnectorMK2) { + return ((IFluidConnectorMK2) getCoreObject()).canConnect(type, dir); } return true; } @@ -201,8 +204,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return 0; - if(getTile() instanceof ISidedInventory) { - return ((ISidedInventory)getTile()).getSizeInventory(); + if(getCoreObject() instanceof ISidedInventory) { + return ((ISidedInventory)getCoreObject()).getSizeInventory(); } return 0; @@ -214,8 +217,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return null; - if(getTile() instanceof ISidedInventory) { - return ((ISidedInventory)getTile()).getStackInSlot(slot); + if(getCoreObject() instanceof ISidedInventory) { + return ((ISidedInventory)getCoreObject()).getStackInSlot(slot); } return null; @@ -224,8 +227,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy @Override public ItemStack decrStackSize(int i, int j) { - if(getTile() instanceof ISidedInventory) { - return ((ISidedInventory)getTile()).decrStackSize(i, j); + if(getCoreObject() instanceof ISidedInventory) { + return ((ISidedInventory)getCoreObject()).decrStackSize(i, j); } return null; @@ -237,8 +240,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return null; - if(getTile() instanceof ISidedInventory) { - return ((ISidedInventory)getTile()).getStackInSlotOnClosing(slot); + if(getCoreObject() instanceof ISidedInventory) { + return ((ISidedInventory)getCoreObject()).getStackInSlotOnClosing(slot); } return null; @@ -250,8 +253,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return; - if(getTile() instanceof ISidedInventory) { - ((ISidedInventory)getTile()).setInventorySlotContents(slot, stack); + if(getCoreObject() instanceof ISidedInventory) { + ((ISidedInventory)getCoreObject()).setInventorySlotContents(slot, stack); } } @@ -261,8 +264,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return null; - if(getTile() instanceof ISidedInventory) { - return ((ISidedInventory)getTile()).getInventoryName(); + if(getCoreObject() instanceof ISidedInventory) { + return ((ISidedInventory)getCoreObject()).getInventoryName(); } return null; @@ -274,8 +277,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return false; - if(getTile() instanceof ISidedInventory) { - return ((ISidedInventory)getTile()).hasCustomInventoryName(); + if(getCoreObject() instanceof ISidedInventory) { + return ((ISidedInventory)getCoreObject()).hasCustomInventoryName(); } return false; @@ -287,8 +290,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return 0; - if(getTile() instanceof ISidedInventory) { - return ((ISidedInventory)getTile()).getInventoryStackLimit(); + if(getCoreObject() instanceof ISidedInventory) { + return ((ISidedInventory)getCoreObject()).getInventoryStackLimit(); } return 0; @@ -300,8 +303,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return false; - if(getTile() instanceof ISidedInventory) { - return ((ISidedInventory)getTile()).isUseableByPlayer(player); + if(getCoreObject() instanceof ISidedInventory) { + return ((ISidedInventory)getCoreObject()).isUseableByPlayer(player); } return false; @@ -313,8 +316,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return; - if(getTile() instanceof ISidedInventory) { - ((ISidedInventory)getTile()).openInventory(); + if(getCoreObject() instanceof ISidedInventory) { + ((ISidedInventory)getCoreObject()).openInventory(); } } @@ -324,8 +327,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return; - if(getTile() instanceof ISidedInventory) { - ((ISidedInventory)getTile()).closeInventory(); + if(getCoreObject() instanceof ISidedInventory) { + ((ISidedInventory)getCoreObject()).closeInventory(); } } @@ -335,11 +338,11 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return false; - if(getTile() instanceof ISidedInventory) { + if(getCoreObject() instanceof ISidedInventory) { - if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).isItemValidForSlot(xCoord, yCoord, zCoord, slot, stack); + if(getCoreObject() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getCoreObject()).isItemValidForSlot(xCoord, yCoord, zCoord, slot, stack); - return ((ISidedInventory)getTile()).isItemValidForSlot(slot, stack); + return ((ISidedInventory)getCoreObject()).isItemValidForSlot(slot, stack); } return false; @@ -351,11 +354,11 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return new int[0]; - if(getTile() instanceof ISidedInventory) { + if(getCoreObject() instanceof ISidedInventory) { - if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).getAccessibleSlotsFromSide(xCoord, yCoord, zCoord, side); + if(getCoreObject() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getCoreObject()).getAccessibleSlotsFromSide(xCoord, yCoord, zCoord, side); - return ((ISidedInventory)getTile()).getAccessibleSlotsFromSide(side); + return ((ISidedInventory)getCoreObject()).getAccessibleSlotsFromSide(side); } return new int[0]; @@ -367,11 +370,11 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return false; - if(getTile() instanceof ISidedInventory) { + if(getCoreObject() instanceof ISidedInventory) { - if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).canInsertItem(xCoord, yCoord, zCoord, i, stack, j); + if(getCoreObject() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getCoreObject()).canInsertItem(xCoord, yCoord, zCoord, i, stack, j); - return ((ISidedInventory)getTile()).canInsertItem(i, stack, j); + return ((ISidedInventory)getCoreObject()).canInsertItem(i, stack, j); } return false; @@ -383,11 +386,11 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!inventory) return false; - if(getTile() instanceof ISidedInventory) { + if(getCoreObject() instanceof ISidedInventory) { - if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).canExtractItem(xCoord, yCoord, zCoord, i, stack, j); + if(getCoreObject() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getCoreObject()).canExtractItem(xCoord, yCoord, zCoord, i, stack, j); - return ((ISidedInventory)getTile()).canExtractItem(i, stack, j); + return ((ISidedInventory)getCoreObject()).canExtractItem(i, stack, j); } return false; @@ -426,8 +429,8 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!this.heat) return 0; - if(getTile() instanceof IHeatSource) { - return ((IHeatSource)getTile()).getHeatStored(); + if(getCoreObject() instanceof IHeatSource) { + return ((IHeatSource)getCoreObject()).getHeatStored(); } return 0; @@ -439,39 +442,39 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(!this.heat) return; - if(getTile() instanceof IHeatSource) { - ((IHeatSource)getTile()).useUpHeat(heat); + if(getCoreObject() instanceof IHeatSource) { + ((IHeatSource)getCoreObject()).useUpHeat(heat); } } @Override public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { - if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ - return ((ICrucibleAcceptor)getTile()).canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack); + if(this.moltenMetal && getCoreObject() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getCoreObject()).canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack); } return false; } @Override public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) { - if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ - return ((ICrucibleAcceptor)getTile()).pour(world, x, y, z, dX, dY, dZ, side, stack); + if(this.moltenMetal && getCoreObject() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getCoreObject()).pour(world, x, y, z, dX, dY, dZ, side, stack); } return null; } @Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { - if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ - return ((ICrucibleAcceptor)getTile()).canAcceptPartialFlow(world, x, y, z, side, stack); + if(this.moltenMetal && getCoreObject() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getCoreObject()).canAcceptPartialFlow(world, x, y, z, side, stack); } return false; } @Override public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { - if(this.moltenMetal && getTile() instanceof ICrucibleAcceptor){ - return ((ICrucibleAcceptor)getTile()).flow(world, x, y, z, side, stack); + if(this.moltenMetal && getCoreObject() instanceof ICrucibleAcceptor){ + return ((ICrucibleAcceptor)getCoreObject()).flow(world, x, y, z, side, stack); } return null; } @@ -481,9 +484,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy public String getComponentName() { if(this.worldObj == null) // OC is going too fast, grab from NBT! return componentName; - if(this.getTile() instanceof OCComponent) { + if(this.getCoreObject() instanceof OCComponent) { if (componentName == null || componentName.equals(OCComponent.super.getComponentName())) { - componentName = ((OCComponent) this.getTile()).getComponentName(); + componentName = ((OCComponent) this.getCoreObject()).getComponentName(); } return componentName; } @@ -493,44 +496,44 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy @Override @Optional.Method(modid = "OpenComputers") public boolean canConnectNode(ForgeDirection side) { - if(this.getTile() instanceof OCComponent) + if(this.getCoreObject() instanceof OCComponent) return (this.getBlockMetadata() >= 6 && this.getBlockMetadata() <= 11) && (power || fluid) && - ((OCComponent) this.getTile()).canConnectNode(side); + ((OCComponent) this.getCoreObject()).canConnectNode(side); return OCComponent.super.canConnectNode(null); } @Override @Optional.Method(modid = "OpenComputers") public String[] methods() { - if(this.getTile() instanceof OCComponent) - return ((OCComponent) this.getTile()).methods(); + if(this.getCoreObject() instanceof OCComponent) + return ((OCComponent) this.getCoreObject()).methods(); return OCComponent.super.methods(); } @Override @Optional.Method(modid = "OpenComputers") public Object[] invoke(String method, Context context, Arguments args) throws Exception { - if(this.getTile() instanceof OCComponent) - return ((OCComponent) this.getTile()).invoke(method, context, args); + if(this.getCoreObject() instanceof OCComponent) + return ((OCComponent) this.getCoreObject()).invoke(method, context, args); return OCComponent.super.invoke(null, null, null); } @Override public String[] getFunctionInfo() { - if(getTile() instanceof IRORInfo) return ((IRORInfo) getTile()).getFunctionInfo(); + if(getCoreObject() instanceof IRORInfo) return ((IRORInfo) getCoreObject()).getFunctionInfo(); return new String[0]; } @Override public String provideRORValue(String name) { - if(getTile() instanceof IRORValueProvider) return ((IRORValueProvider) getTile()).provideRORValue(name); + if(getCoreObject() instanceof IRORValueProvider) return ((IRORValueProvider) getCoreObject()).provideRORValue(name); return null; } @Override public String runRORFunction(String name, String[] params) { - if(getTile() instanceof IRORInteractive) return ((IRORInteractive) getTile()).runRORFunction(name, params); + if(getCoreObject() instanceof IRORInteractive) return ((IRORInteractive) getCoreObject()).runRORFunction(name, params); return null; } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyDyn.java b/src/main/java/com/hbm/tileentity/TileEntityProxyDyn.java new file mode 100644 index 000000000..56f4a85c6 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyDyn.java @@ -0,0 +1,24 @@ +package com.hbm.tileentity; + +public class TileEntityProxyDyn extends TileEntityProxyCombo { + + @Override + public Object getCoreObject() { + + Object o = super.getCoreObject(); + + if(o instanceof IProxyDelegateProvider) { + Object delegate = ((IProxyDelegateProvider) o).getDelegateForPosition(xCoord, yCoord, zCoord); + if(delegate != null) return delegate; + } + + return o; + } + + /** Based on the position of the proxy, produces a delegate instead of returning the core tile entity. God this fucking sucks. */ + public static interface IProxyDelegateProvider { + + /** Returns the delegate based on the proxy's position. Retunring NULL skips the delegate and reverts back to original core behavior */ + public Object getDelegateForPosition(int x, int y, int z); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 36e0f3d04..c883e8a05 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -222,6 +222,7 @@ public class TileMappings { put(TileEntityProxyInventory.class, "tileentity_proxy_inventory"); put(TileEntityProxyEnergy.class, "tileentity_proxy_power"); put(TileEntityProxyCombo.class, "tileentity_proxy_combo"); + put(TileEntityProxyDyn.class, "tileentity_proxy_dyn"); put(TileEntityProxyConductor.class, "tileentity_proxy_conductor"); put(TileEntityBedrockOre.class, "tileentity_bedrock_ore"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java index 1487d194a..e1b443410 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java @@ -17,6 +17,7 @@ import com.hbm.module.ModuleMachineChemplant; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityProxyDyn.IProxyDelegateProvider; import com.hbm.util.BobMathUtil; import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.i18n.I18nUtil; @@ -35,15 +36,18 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemicalFactory extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiverMK2, IUpgradeInfoProvider, IControlReceiver, IGUIProvider { +public class TileEntityMachineChemicalFactory extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiverMK2, IUpgradeInfoProvider, IControlReceiver, IGUIProvider, IProxyDelegateProvider { public FluidTank[] allTanks; public FluidTank[] inputTanks; public FluidTank[] outputTanks; + + public FluidTank water; + public FluidTank lps; public long power; public long maxPower = 10_000_000; - public boolean didProcess = false; + public boolean[] didProcess = new boolean[4]; public boolean frame = false; public int anim; @@ -51,6 +55,8 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl public ModuleMachineChemplant[] chemplantModule; public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this); + + protected DelegateChemicalFactoy delegate = new DelegateChemicalFactoy(); public TileEntityMachineChemicalFactory() { super(32); @@ -61,11 +67,17 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl this.inputTanks[i] = new FluidTank(Fluids.NONE, 24_000); this.outputTanks[i] = new FluidTank(Fluids.NONE, 24_000); } + + this.water = new FluidTank(Fluids.WATER, 4_000); + this.lps = new FluidTank(Fluids.SPENTSTEAM, 4_000); - this.allTanks = new FluidTank[this.inputTanks.length + this.outputTanks.length]; + this.allTanks = new FluidTank[this.inputTanks.length + this.outputTanks.length + 2]; for(int i = 0; i < inputTanks.length; i++) this.allTanks[i] = this.inputTanks[i]; for(int i = 0; i < outputTanks.length; i++) this.allTanks[i + this.inputTanks.length] = this.outputTanks[i]; + this.allTanks[this.allTanks.length - 2] = this.water; + this.allTanks[this.allTanks.length - 1] = this.lps; + this.chemplantModule = new ModuleMachineChemplant[4]; for(int i = 0; i < 4; i++) this.chemplantModule[i] = new ModuleMachineChemplant(i, this, slots) .itemInput(5 + i * 7, 6 + i * 7, 7 + i * 7) @@ -129,6 +141,12 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl for(FluidTank tank : inputTanks) if(tank.getTankType() != Fluids.NONE) this.trySubscribe(tank.getTankType(), worldObj, pos); for(FluidTank tank : outputTanks) if(tank.getFill() > 0) this.tryProvide(tank, worldObj, pos); } + + for(DirPos pos : getCoolPos()) { + delegate.trySubscribe(worldObj, pos); + delegate.trySubscribe(water.getTankType(), worldObj, pos); + this.tryProvide(lps, worldObj, pos); + } double speed = 1D; double pow = 1D; @@ -139,14 +157,17 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl pow -= Math.min(upgradeManager.getLevel(UpgradeType.POWER), 3) * 0.25D; pow += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) * 1D; pow += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 10D / 3D; - - this.didProcess = false; boolean markDirty = false; for(int i = 0; i < 4; i++) { - this.chemplantModule[i].update(speed * 2D, pow); - this.didProcess |= this.chemplantModule[i].didProcess; + this.chemplantModule[i].update(speed * 2D, pow * 2D, canCool()); + this.didProcess[i] = this.chemplantModule[i].didProcess; markDirty |= this.chemplantModule[i].markDirty; + + if(this.chemplantModule[i].didProcess) { + this.water.setFill(this.water.getFill() - 100); + this.lps.setFill(this.lps.getFill() + 100); + } } if(markDirty) this.markDirty(); @@ -156,7 +177,7 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl } else { this.prevAnim = this.anim; - if(this.didProcess) this.anim++; + for(boolean n : didProcess) if(n) { this.anim++; break; } if(worldObj.getTotalWorldTime() % 20 == 0) { frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord); @@ -164,6 +185,10 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl } } + public boolean canCool() { + return water.getFill() >= 100 && lps.getFill() <= lps.getMaxFill() - 100; + } + public DirPos[] getConPos() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); @@ -206,9 +231,11 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl super.serialize(buf); for(FluidTank tank : inputTanks) tank.serialize(buf); for(FluidTank tank : outputTanks) tank.serialize(buf); + water.serialize(buf); + lps.serialize(buf); buf.writeLong(power); buf.writeLong(maxPower); - buf.writeBoolean(didProcess); + for(boolean b : didProcess) buf.writeBoolean(b); for(int i = 0; i < 4; i++) this.chemplantModule[i].serialize(buf); } @@ -217,11 +244,37 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl super.deserialize(buf); for(FluidTank tank : inputTanks) tank.deserialize(buf); for(FluidTank tank : outputTanks) tank.deserialize(buf); + water.deserialize(buf); + lps.deserialize(buf); this.power = buf.readLong(); this.maxPower = buf.readLong(); - this.didProcess = buf.readBoolean(); + for(int i = 0; i < 4; i++) this.didProcess[i] = buf.readBoolean(); for(int i = 0; i < 4; i++) this.chemplantModule[i].deserialize(buf); } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + for(int i = 0; i < inputTanks.length; i++) this.inputTanks[i].readFromNBT(nbt, "i" + i); + for(int i = 0; i < outputTanks.length; i++) this.outputTanks[i].readFromNBT(nbt, "i" + i); + + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + for(int i = 0; i < 4; i++) this.chemplantModule[i].readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + for(int i = 0; i < inputTanks.length; i++) this.inputTanks[i].writeToNBT(nbt, "i" + i); + for(int i = 0; i < outputTanks.length; i++) this.outputTanks[i].writeToNBT(nbt, "i" + i); + + nbt.setLong("power", power); + nbt.setLong("maxPower", maxPower); + for(int i = 0; i < 4; i++) this.chemplantModule[i].writeToNBT(nbt); + } @Override public long getPower() { return power; } @Override public void setPower(long power) { this.power = power; } @@ -290,4 +343,36 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl upgrades.put(UpgradeType.OVERDRIVE, 3); return upgrades; } + + public DirPos[] coolantLine; // we could make the same fucking array 50,000 times per tick, or we just make it once + + @Override // all the delegating shit so the proxies on the coolant lines only access coolant (and power and inventory) but not the recipe fluids + public Object getDelegateForPosition(int x, int y, int z) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + if(coolantLine == null) coolantLine = new DirPos[] { + new DirPos(xCoord + rot.offsetX + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ + dir.offsetZ * 2, dir), + new DirPos(xCoord - rot.offsetX + dir.offsetX * 2, yCoord, zCoord - rot.offsetZ + dir.offsetZ * 2, dir), + new DirPos(xCoord + rot.offsetX - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - rot.offsetX - dir.offsetX * 2, yCoord, zCoord - rot.offsetZ - dir.offsetZ * 2, dir.getOpposite()), + }; + + for(DirPos pos : coolantLine) if(pos.compare(x, y, z)) return this.delegate; // this actually fucking works + + return null; + } + + public class DelegateChemicalFactoy implements IEnergyReceiverMK2, IFluidStandardTransceiverMK2 { + + @Override public long getPower() { return TileEntityMachineChemicalFactory.this.getPower(); } + @Override public void setPower(long power) { TileEntityMachineChemicalFactory.this.setPower(power); } + @Override public long getMaxPower() { return TileEntityMachineChemicalFactory.this.getMaxPower(); } + @Override public boolean isLoaded() { return TileEntityMachineChemicalFactory.this.isLoaded(); } + + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {TileEntityMachineChemicalFactory.this.water}; } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {TileEntityMachineChemicalFactory.this.lps}; } + + @Override public FluidTank[] getAllTanks() { return TileEntityMachineChemicalFactory.this.getAllTanks(); } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index 8181d3497..8047c02e4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -106,7 +106,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem pow += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) * 1D; pow += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 10D / 3D; - this.chemplantModule.update(speed, pow); + this.chemplantModule.update(speed, pow, true); this.didProcess = this.chemplantModule.didProcess; if(this.chemplantModule.markDirty) this.markDirty(); From 570ad038023fc4615c203dbae336d8763da14350 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 18 Jun 2025 16:27:14 +0200 Subject: [PATCH 174/181] who's been drawing dyx --- changelog | 5 ++++- src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java | 2 +- src/main/java/com/hbm/blocks/generic/DungeonSpawner.java | 7 ++++++- .../com/hbm/render/tileentity/RendererObjTester.java | 9 ++++++--- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/changelog b/changelog index fd3dc6df8..c2ba2e7a3 100644 --- a/changelog +++ b/changelog @@ -18,6 +18,8 @@ * I don't know why people wanted this, but here you go * The alternate recipe for oxyhydrogen now uses compressed air instead of nothing * Improved threaded Mk5, should be a smidge faster now +* Spires no longer progress phases on peaceful difficulty +* Spires now have a 20% chance of coming with instructions ## Fixed * Chemical plant ports. For real this time. @@ -27,4 +29,5 @@ * Potentially fixed shift clicking issue with the new chemical plant * Fixed blowtorch having a minimum gas requirement of 1,000mB despite only using 250mB * The gas turbine now uses audio with a 20 tick timeout, fixing a rare issue where the loop gets stuck and never ends -* Potentially fixed a dupe caused by using InventoryBogoSorter in combination with crates \ No newline at end of file +* Potentially fixed a dupe caused by using InventoryBogoSorter in combination with crates +* Rapidly spinning dyx should no longer have a state leak that would rotate lighting of unrelated TESRs with it \ No newline at end of file diff --git a/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java b/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java index 755c415c5..1e60f7585 100644 --- a/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java +++ b/src/main/java/api/hbm/fluidmk2/IFluidUserMK2.java @@ -9,7 +9,7 @@ public interface IFluidUserMK2 extends IFluidConnectorMK2, ILoadedTile { public static final int HIGHEST_VALID_PRESSURE = 5; public static final int[] DEFAULT_PRESSURE_RANGE = new int[] {0, 0}; - public static final boolean particleDebug = true; + public static final boolean particleDebug = false; public FluidTank[] getAllTanks(); } diff --git a/src/main/java/com/hbm/blocks/generic/DungeonSpawner.java b/src/main/java/com/hbm/blocks/generic/DungeonSpawner.java index 65f4ef5e5..4a6fc10d8 100644 --- a/src/main/java/com/hbm/blocks/generic/DungeonSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/DungeonSpawner.java @@ -81,6 +81,7 @@ public class DungeonSpawner extends BlockContainer { public static Function CON_ABERRATOR = (tile) -> { World world = tile.getWorldObj(); + if(world.difficultySetting.ordinal() == 0) return false; int x = tile.xCoord; int y = tile.yCoord; int z = tile.zCoord; @@ -122,7 +123,11 @@ public class DungeonSpawner extends BlockContainer { TileEntity te = world.getTileEntity(x, y + 18, z); if(te instanceof TileEntitySkeletonHolder) { TileEntitySkeletonHolder skeleton = (TileEntitySkeletonHolder) te; - skeleton.item = new ItemStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR.ordinal()); + if(world.rand.nextInt(5) == 0) { + skeleton.item = new ItemStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR.ordinal()); + } else { + skeleton.item = new ItemStack(ModItems.clay_tablet, 1, 1); + } skeleton.markDirty(); world.markBlockForUpdate(x, y + 18, z); } diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 8762c01c0..450fcd6cb 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -35,11 +35,8 @@ public class RendererObjTester extends TileEntitySpecialRenderer { public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y + 1, z + 0.5); - GL11.glRotated(15, 0, 0, 1); GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); - if(world == null) { world = new WorldInAJar(5, 3, 5); for(int i = 0; i < 25; i++) world.setBlock(i / 5, 1, i % 5, Blocks.brick_block, 0); @@ -55,6 +52,8 @@ public class RendererObjTester extends TileEntitySpecialRenderer { RenderHelper.disableStandardItemLighting(); GL11.glPushMatrix(); + GL11.glRotated(15, 0, 0, 1); + GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); GL11.glTranslated(-2.5, 0, -2.5); Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture); GL11.glShadeModel(GL11.GL_SMOOTH); @@ -73,6 +72,10 @@ public class RendererObjTester extends TileEntitySpecialRenderer { GL11.glPopMatrix(); RenderHelper.enableStandardItemLighting(); + + GL11.glRotated(15, 0, 0, 1); + GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); + GL11.glTranslated(0, 2.1, 0.5); this.bindTexture(extra); From 381ef334b26bb12536a70d1cd30d0bbd6be9cedb Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 19 Jun 2025 21:27:56 +0200 Subject: [PATCH 175/181] yet more chemfac crap --- changelog | 8 +++ .../hbm/blocks/machine/MachineChemfac.java | 1 + .../machine/MachineChemicalFactory.java | 45 +++++++++++- .../gui/GUIMachineChemicalFactory.java | 8 +-- .../gui/GUIScreenRecipeSelector.java | 23 +++---- .../inventory/recipes/AssemblerRecipes.java | 12 +++- .../tileentity/RenderChemicalFactory.java | 12 ++++ .../tileentity/machine/TileEntityHadron.java | 1 - .../machine/TileEntityMachineChemfac.java | 1 + .../TileEntityMachineChemicalFactory.java | 65 ++++++++++++++++-- .../TileEntityMachineChemicalPlant.java | 33 +++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 8 ++- src/main/resources/assets/hbm/lang/en_US.lang | 9 ++- src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/block/chemicalPlant.ogg | Bin 0 -> 224285 bytes .../models/machines/chemical_factory.png | Bin 3884 -> 3932 bytes 16 files changed, 197 insertions(+), 30 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/block/chemicalPlant.ogg diff --git a/changelog b/changelog index c2ba2e7a3..b3a1b847f 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,11 @@ * Upgrades stack with the double base speed * Stackable! * Water consumption rate is fixed at 100mB/t for each active recipe + * Has a dedicated coolant line, so that the coolant water doesn't get used up by recipes + * Coolant line has a tooltip which should make it clear that the machine uses water and produces LPS + * Also has sound, unlike the old chemical factory + * Output fluids are now automatically sent to input tanks, at a rate of up to 50mB/t for somewhat fair fluid sharing + * This means that a chemical factory can make hydrogen peroxide, sulfuric acid and nitric acid, and the only fluid input needed is water ## Changed * The DNT suit now has a damage threshold of 1,000 @@ -20,6 +25,9 @@ * Improved threaded Mk5, should be a smidge faster now * Spires no longer progress phases on peaceful difficulty * Spires now have a 20% chance of coming with instructions +* New chemical plant now has sound +* Old chemical plant and factory have been renamed and their recipes removed +* The new recipe selector no longer changes recipe instantly on click, rather as soon as the selector GUI is closed. This should prevent issues when misclicking, which would destroy buffered fluids ## Fixed * Chemical plant ports. For real this time. diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemfac.java b/src/main/java/com/hbm/blocks/machine/MachineChemfac.java index 60f18617d..fec75ef5b 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemfac.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemfac.java @@ -10,6 +10,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +@Deprecated public class MachineChemfac extends BlockDummyable { public MachineChemfac(Material mat) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java b/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java index 787f030b9..d08619616 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemicalFactory.java @@ -1,16 +1,26 @@ 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.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyDyn; import com.hbm.tileentity.machine.TileEntityMachineChemicalFactory; +import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineChemicalFactory extends BlockDummyable { +public class MachineChemicalFactory extends BlockDummyable implements ITooltipProvider, ILookOverlay { public MachineChemicalFactory(Material mat) { super(mat); @@ -41,5 +51,38 @@ public class MachineChemicalFactory extends BlockDummyable { for(int i = -2; i <= 2; i++) for(int j = -2; j <= 2; j++) { if(Math.abs(i) == 2 || Math.abs(j) == 2) this.makeExtra(world, x + i, y, z + j); } + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + for(int i = -2; i <= 2; i++) { + this.makeExtra(world, x + dir.offsetX * i + rot.offsetX * 2, y + 2, z + dir.offsetZ * i + rot.offsetZ * 2); + this.makeExtra(world, x + dir.offsetX * i - rot.offsetX * 2, y + 2, z + dir.offsetZ * i - rot.offsetZ * 2); + } + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @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 TileEntityMachineChemicalFactory)) return; + TileEntityMachineChemicalFactory chemfac = (TileEntityMachineChemicalFactory) te; + + DirPos[] cool = chemfac.getCoolPos(); + + for(DirPos dirPos : cool) if(dirPos.compare(x + dirPos.getDir().offsetX, y, z + dirPos.getDir().offsetZ)) { + List text = new ArrayList(); + + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + chemfac.water.getTankType().getLocalizedName()); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + chemfac.lps.getTankType().getLocalizedName()); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + break; + } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java index 4b756e87b..a31917752 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalFactory.java @@ -34,8 +34,8 @@ public class GUIMachineChemicalFactory extends GuiInfoContainer { super.drawScreen(mouseX, mouseY, f); for(int i = 0; i < 3; i++) for(int j = 0; j < 4; j++) { - chemplant.inputTanks[i + j * 3].renderTankInfo(this, mouseX, mouseY, guiLeft + 60 + i * 5, guiTop + 20 + j * 22, 4, 16); - chemplant.outputTanks[i + j * 3].renderTankInfo(this, mouseX, mouseY, guiLeft + 189 + i * 5, guiTop + 20 + j * 22, 4, 16); + chemplant.inputTanks[i + j * 3].renderTankInfo(this, mouseX, mouseY, guiLeft + 60 + i * 5, guiTop + 20 + j * 22, 3, 16); + chemplant.outputTanks[i + j * 3].renderTankInfo(this, mouseX, mouseY, guiLeft + 189 + i * 5, guiTop + 20 + j * 22, 3, 16); } chemplant.water.renderTankInfo(this, mouseX, mouseY, guiLeft + 224, guiTop + 125, 7, 52); @@ -128,8 +128,8 @@ public class GUIMachineChemicalFactory extends GuiInfoContainer { } for(int i = 0; i < 3; i++) for(int j = 0; j < 4; j++) { - chemplant.inputTanks[i + j * 3].renderTank(guiLeft + 60 + i * 5, guiTop + 36 + j * 22, this.zLevel, 4, 16); - chemplant.outputTanks[i + j * 3].renderTank(guiLeft + 189 + i * 5, guiTop + 36 + j * 22, this.zLevel, 4, 16); + chemplant.inputTanks[i + j * 3].renderTank(guiLeft + 60 + i * 5, guiTop + 36 + j * 22, this.zLevel, 3, 16); + chemplant.outputTanks[i + j * 3].renderTank(guiLeft + 189 + i * 5, guiTop + 36 + j * 22, this.zLevel, 3, 16); } chemplant.water.renderTank(guiLeft + 224, guiTop + 177, this.zLevel, 7, 52); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java index 09d20ed64..6f101ef29 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java @@ -276,11 +276,6 @@ public class GUIScreenRecipeSelector extends GuiScreen { else this.selection = NULL_SELECTION; - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("index", this.index); - data.setString("selection", this.selection); - TileEntity te = (TileEntity) tile; - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, te.xCoord, te.yCoord, te.zCoord)); click(); return; } @@ -289,11 +284,6 @@ public class GUIScreenRecipeSelector extends GuiScreen { if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 71 < y && guiTop + 71 + 18 >= y) { if(!NULL_SELECTION.equals(this.selection)) { this.selection = this.NULL_SELECTION; - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("index", this.index); - data.setString("selection", this.selection); - TileEntity te = (TileEntity) tile; - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, te.xCoord, te.yCoord, te.zCoord)); click(); return; } @@ -304,6 +294,17 @@ public class GUIScreenRecipeSelector extends GuiScreen { } } + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("index", this.index); + data.setString("selection", this.selection); + TileEntity te = (TileEntity) tile; + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, te.xCoord, te.yCoord, te.zCoord)); + } + @Override protected void keyTyped(char typedChar, int keyCode) { @@ -321,8 +322,6 @@ public class GUIScreenRecipeSelector extends GuiScreen { FMLCommonHandler.instance().showGuiScreen(previousScreen); } } - - @Override public void onGuiClosed() { Keyboard.enableRepeatEvents(false); } @Override public boolean doesGuiPauseGame() { return false; } public void click() { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 99dbd7251..e1efbf9db 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -139,7 +139,6 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ANALOG) },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC) }, 100); - makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_chemical_plant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.pipe(), 2), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.coil_tungsten, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(TI.shell(), 3), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC), },200); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150); @@ -865,6 +864,17 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) }, 400); + makeRecipe(new ComparableStack(ModBlocks.machine_chemical_factory, 1), new AStack[] { + new OreDictStack(DURA.ingot(), 16), + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), + new OreDictStack(RUBBER.ingot(), 16), + new OreDictStack(STEEL.shell(), 12), + new OreDictStack(CU.pipe(), 8), + new ComparableStack(ModItems.motor_desh, 4), + new ComparableStack(ModItems.coil_tungsten, 16), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) + }, 400); + makeRecipe(new ComparableStack(ModItems.missile_shuttle, 1), new AStack[] { new ComparableStack(ModItems.missile_generic, 2), new ComparableStack(ModItems.missile_strong, 1), diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemicalFactory.java b/src/main/java/com/hbm/render/tileentity/RenderChemicalFactory.java index 7eae5b7ad..ba2ce02b3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderChemicalFactory.java +++ b/src/main/java/com/hbm/render/tileentity/RenderChemicalFactory.java @@ -36,8 +36,20 @@ public class RenderChemicalFactory extends TileEntitySpecialRenderer implements bindTexture(ResourceManager.chemical_factory_tex); ResourceManager.chemical_factory.renderPart("Base"); if(chemplant.frame) ResourceManager.chemical_factory.renderPart("Frame"); + + GL11.glPushMatrix(); + GL11.glTranslated(1, 0, 0); + GL11.glRotated(-anim * 45 % 360D, 0, 1, 0); + GL11.glTranslated(-1, 0, 0); ResourceManager.chemical_factory.renderPart("Fan1"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(-1, 0, 0); + GL11.glRotated(-anim * 45 % 360D, 0, 1, 0); + GL11.glTranslated(1, 0, 0); ResourceManager.chemical_factory.renderPart("Fan2"); + GL11.glPopMatrix(); GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 48e9b5535..97b020c12 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -556,7 +556,6 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyRe for(int c = z - dZ * 2; c <= z + dZ * 2;c++) { Block block = worldObj.getBlock(a, b, c); - int meta = worldObj.getBlockMetadata(a, b, c); /** ignore the center for now */ if(a == x && b == y && c == z) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 2d6ff9a14..2fcb3a60c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -33,6 +33,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +@Deprecated public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase implements IUpgradeInfoProvider, IFluidCopiable { float rotSpeed; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java index e1b443410..8b31f6f11 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalFactory.java @@ -13,7 +13,9 @@ import com.hbm.inventory.gui.GUIMachineChemicalFactory; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.module.ModuleMachineChemplant; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -52,6 +54,7 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl public boolean frame = false; public int anim; public int prevAnim; + private AudioWrapper audio; public ModuleMachineChemplant[] chemplantModule; public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this); @@ -89,9 +92,9 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(i >= 8 && i <= 10) return true; - if(i >= 12 && i <= 14) return true; - if(i >= 19 && i <= 21) return true; - if(i >= 26 && i <= 28) return true; + if(i >= 15 && i <= 17) return true; + if(i >= 22 && i <= 24) return true; + if(i >= 29 && i <= 31) return true; return false; } @@ -145,7 +148,7 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl for(DirPos pos : getCoolPos()) { delegate.trySubscribe(worldObj, pos); delegate.trySubscribe(water.getTankType(), worldObj, pos); - this.tryProvide(lps, worldObj, pos); + delegate.tryProvide(lps, worldObj, pos); } double speed = 1D; @@ -170,6 +173,16 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl } } + for(FluidTank in : inputTanks) if(in.getTankType() != Fluids.NONE) for(FluidTank out : outputTanks) { // up to 144 iterations, but most of them are NOP anyway + if(out.getTankType() == Fluids.NONE) continue; + if(out.getTankType() != in.getTankType()) continue; + int toMove = BobMathUtil.min(in.getMaxFill() - in.getFill(), out.getFill(), 50); + if(toMove > 0) { + in.setFill(in.getFill() + toMove); + out.setFill(out.getFill() - toMove); + } + } + if(markDirty) this.markDirty(); this.networkPackNT(100); @@ -177,13 +190,44 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl } else { this.prevAnim = this.anim; - for(boolean n : didProcess) if(n) { this.anim++; break; } + boolean didSomething = didProcess[0] || didProcess[1] || didProcess[2] || didProcess[3]; + if(didSomething) this.anim++; if(worldObj.getTotalWorldTime() % 20 == 0) { frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord); } + + if(didSomething && MainRegistry.proxy.me().getDistance(xCoord , yCoord, zCoord) < 50) { + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + audio.keepAlive(); + audio.updateVolume(this.getVolume(1F)); + + } else { + if(audio != null) { + audio.stopSound(); + audio = null; + } + } } } + + @Override public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.chemicalPlant", xCoord, yCoord, zCoord, 1F, 15F, 1.0F, 20); + } + + @Override public void onChunkUnload() { + if(audio != null) { audio.stopSound(); audio = null; } + } + + @Override public void invalidate() { + super.invalidate(); + if(audio != null) { audio.stopSound(); audio = null; } + } public boolean canCool() { return water.getFill() >= 100 && lps.getFill() <= lps.getMaxFill() - 100; @@ -206,6 +250,17 @@ public class TileEntityMachineChemicalFactory extends TileEntityMachineBase impl new DirPos(xCoord + 0, yCoord, zCoord - 3, Library.NEG_Z), new DirPos(xCoord + 2, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX * 2, yCoord + 3, zCoord + dir.offsetZ * 2 + rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX * 2, yCoord + 3, zCoord + dir.offsetZ * 1 + rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord + dir.offsetX * 0 + rot.offsetX * 2, yCoord + 3, zCoord + dir.offsetZ * 0 + rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord - dir.offsetX * 1 + rot.offsetX * 2, yCoord + 3, zCoord - dir.offsetZ * 1 + rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX * 2, yCoord + 3, zCoord - dir.offsetZ * 2 + rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord + dir.offsetX * 2 - rot.offsetX * 2, yCoord + 3, zCoord + dir.offsetZ * 2 - rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord + dir.offsetX * 1 - rot.offsetX * 2, yCoord + 3, zCoord + dir.offsetZ * 1 - rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord + dir.offsetX * 0 - rot.offsetX * 2, yCoord + 3, zCoord + dir.offsetZ * 0 - rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord - dir.offsetX * 1 - rot.offsetX * 2, yCoord + 3, zCoord - dir.offsetZ * 1 - rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 2, yCoord + 3, zCoord - dir.offsetZ * 2 - rot.offsetZ * 2, Library.POS_Y), + new DirPos(xCoord + dir.offsetX + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ + rot.offsetZ * 3, rot), new DirPos(xCoord - dir.offsetX + rot.offsetX * 3, yCoord, zCoord - dir.offsetZ + rot.offsetZ * 3, rot), new DirPos(xCoord + dir.offsetX - rot.offsetX * 3, yCoord, zCoord + dir.offsetZ - rot.offsetZ * 3, rot.getOpposite()), diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index 8047c02e4..838958668 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -13,7 +13,9 @@ import com.hbm.inventory.gui.GUIMachineChemicalPlant; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.module.ModuleMachineChemplant; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -46,6 +48,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem public boolean frame = false; public int anim; public int prevAnim; + private AudioWrapper audio; public ModuleMachineChemplant chemplantModule; public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this); @@ -120,8 +123,38 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem if(worldObj.getTotalWorldTime() % 20 == 0) { frame = !worldObj.getBlock(xCoord, yCoord + 3, zCoord).isAir(worldObj, xCoord, yCoord + 3, zCoord); } + + if(this.didProcess && MainRegistry.proxy.me().getDistance(xCoord , yCoord, zCoord) < 50) { + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + audio.keepAlive(); + audio.updateVolume(this.getVolume(1F)); + + } else { + if(audio != null) { + audio.stopSound(); + audio = null; + } + } } } + + @Override public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.chemicalPlant", xCoord, yCoord, zCoord, 1F, 15F, 1.0F, 20); + } + + @Override public void onChunkUnload() { + if(audio != null) { audio.stopSound(); audio = null; } + } + + @Override public void invalidate() { + super.invalidate(); + if(audio != null) { audio.stopSound(); audio = null; } + } public DirPos[] getConPos() { return new DirPos[] { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 819c38039..7b00fdbe6 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -372,6 +372,7 @@ container.machineAmmoPress=Munitionspresse container.machineArcWelder=Lichtbogenschweißer container.machineArcFurnaceLarge=Lichtbogenofen container.machineBoiler=Ölwärmer +container.machineChemicalFactory=Chemiefabrik container.machineChemicalPlant=Chemiewerk container.machineCMB=CMB-Stahl Hochofen container.machineCoal=Verbrennungsgenerator @@ -4357,9 +4358,10 @@ tile.machine_boiler_off.name=Alter Boiler tile.machine_catalytic_cracker.name=Katalytischer Cracking-Turm tile.machine_catalytic_reformer.name=Katalytischer Reformer tile.machine_centrifuge.name=Zentrifuge -tile.machine_chemfac.name=Chemiefabrik -tile.machine_chemical_plant.name=Chemiewerk 2: Electric Boogaloo -tile.machine_chemplant.name=Chemiewerk +tile.machine_chemfac.name=Chemiefabrik (Legacy) +tile.machine_chemical_factory.name=Chemiefabrik +tile.machine_chemical_plant.name=Chemiewerk +tile.machine_chemplant.name=Chemiewerk (Legacy) tile.machine_chungus.name=Leviathan-Dampfturbine tile.machine_chungus.desc=Effizienz: 85%% tile.machine_coal_off.name=Verbrennungsgenerator diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a3a94ae52..6bb6b99ae 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -774,6 +774,7 @@ container.machineAmmoPress=Ammo Press container.machineArcWelder=Arc Welder container.machineArcFurnaceLarge=Arc Furnace container.machineBoiler=Oil Heater +container.machineChemicalFactory=Chemical Factory container.machineChemicalPlant=Chemical Plant container.machineCMB=CMB Steel Furnace container.machineCoal=Combustion Generator @@ -5489,9 +5490,11 @@ tile.machine_boiler_off.name=Old Boiler tile.machine_catalytic_cracker.name=Catalytic Cracking Tower tile.machine_catalytic_reformer.name=Catalytic Reformer tile.machine_centrifuge.name=Centrifuge -tile.machine_chemfac.name=Chemical Factory -tile.machine_chemical_plant.name=Chemical Plant 2: Electric Boogaloo -tile.machine_chemplant.name=Chemical Plant +tile.machine_chemfac.name=Chemical Factory (Legacy) +tile.machine_chemical_factory.name=Chemical Factory +tile.machine_chemical_factory.desc=Quadruple chemical plant.$Recipes process twice as fast,$but needs twice as much power.$Needs to be cooled with water,$produces low-pressure steam. +tile.machine_chemical_plant.name=Chemical Plant +tile.machine_chemplant.name=Chemical Plant (Legacy) tile.machine_chungus.name=Leviathan Steam Turbine tile.machine_chungus.desc=Efficiency: 85%% tile.machine_coal_off.name=Combustion Generator diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 353359465..d7c59ae2c 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -67,6 +67,7 @@ "block.pyroOperate": {"category": "block", "sounds": [{"name": "block/pyroOperate", "stream": false}]}, "block.motor": {"category": "block", "sounds": [{"name": "block/motor", "stream": false}]}, "block.engine": {"category": "block", "sounds": [{"name": "block/engine", "stream": false}]}, + "block.chemicalPlant": {"category": "block", "sounds": [{"name": "block/chemicalPlant", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/chemicalPlant.ogg b/src/main/resources/assets/hbm/sounds/block/chemicalPlant.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ec82f034ba70b25039816a25817baa31ec2c7933 GIT binary patch literal 224285 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

umCLMpc^t@UN^dUyAHg|?0-%AWlUyt;2GXV*YP zqzp<+iP)5+JRGTFaKbs8Zj|+-i!{w`B=hV#AhP5+0KV_^wl591Xqy+%r3Kn(yWn(mIA*2v|+x~2-V2ViU zF1ihU9H_!~W!xC{CbPUAD5a1C^AZY2;7JH&KR**h=wNP?YMhAp!o^hx+DKQ6fQd%- zgxeLw$f5oeLL0$$Z%OnAv5zol^YC2{tW#A+d@McmGw1dId^W!6{ko#jErPpz>1C{p zQ>WzoNtjibd_7)qb+{vQ_@|aVZJ4D}>5~xjrB#+(GApH<4{*pZ0{CmSYO>|KA{J9i zm6Fv+p3n}oZZl&Ch$+@fQb1c+NXZ#WuyraOe-?Ix>c;gKDqN1=hT98T+Vv{Nui*TX zGyj0e-xU3yC25c9N_IIU0TFL_^8Z8BIY!6Tzh8gC#%RpOX>8j@W81dX*iIVTMq@W@ zY)#Zy6PwT6&sx9rpEtAS%;SSbCl{`4P>T9@OLsWf?sUHPQ29K*}rsBh3h~i+M z_idN|%Iz6yj9`x!sC@sv!58(BnCN4&y_R@O>2>g+G~@$HuEWm3afPYbL)UY{po%!f zI=nS5mSW4IOQTqalj`S+dxgW}!ZwQ732W)g`T5GU59lFt5o5JM((tydYBsL0E~ga} z!PED)Sbu9L+I&}@(}UNH^vOp5%MX~OoJU1KfvimO_AC^hpbqo*-=xvjEF{K%+yHNI z{5+3yu6O4Eql!RAMR+X_z!Wr~x3jc>q8(fnL>0eY@7hvQ7G8y4R9VaiubQ~pO;S-w zTqxw!`RnEOqgClM71TRfX20F*>(MoF)3719eWaAnjf@kMU=S~H`|n^iKA`l@`|8>2 z%Gqi}d_4!xMTfbet!`ck$NqP5 z`$EV|Fur|Eje(8Z6>emxBXQKNg&G3lJpN{Ln@`Lsa z&%8rq&eqCT92x9td5yIrlWCJE=fIE7dAlQ?wv2@~S@-3r;pOQKJ*4t%t$w#C<{#

Sg5|pX78ta#+B|%$QUDK5tT=00(}FiOH~R)> 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 Date: Fri, 20 Jun 2025 14:47:15 +0200 Subject: [PATCH 176/181] IFluidRegisterListener --- changelog | 3 + .../hbm/fluidmk2/IFluidRegisterListener.java | 9 + .../com/hbm/inventory/fluid/FluidType.java | 20 +- .../java/com/hbm/inventory/fluid/Fluids.java | 9 +- .../recipes/loader/SerializableRecipe.java | 6 +- .../com/hbm/items/tool/WeaponSpecial.java | 192 +++++++++--------- .../render/tileentity/RenderFluidTank.java | 2 +- .../java/com/hbm/util/CompatExternal.java | 11 + .../com/hbm/util/CompatFluidRegistry.java | 17 ++ .../com/hbm/util/CompatRecipeRegistry.java | 18 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- .../hbm/textures/items/gem_erisite_test.png | Bin 0 -> 501 bytes 12 files changed, 181 insertions(+), 108 deletions(-) create mode 100644 src/main/java/api/hbm/fluidmk2/IFluidRegisterListener.java create mode 100644 src/main/java/com/hbm/util/CompatFluidRegistry.java create mode 100644 src/main/resources/assets/hbm/textures/items/gem_erisite_test.png diff --git a/changelog b/changelog index b3a1b847f..fac243f1a 100644 --- a/changelog +++ b/changelog @@ -28,6 +28,9 @@ * New chemical plant now has sound * Old chemical plant and factory have been renamed and their recipes removed * The new recipe selector no longer changes recipe instantly on click, rather as soon as the selector GUI is closed. This should prevent issues when misclicking, which would destroy buffered fluids +* The memespoon is now safe(tm) + * Instead of using a bugged instakill implementation, a fall distance of >2 now deals 50 extra melee damage + * Instead of blowing up like a nuke with a fall distance of >20, it now explodes similarly to a non-HE artillery grenade. This deals 150 damage in an AoE, has armor piercing properties and is, like the original functionality, still lethal to the user ## Fixed * Chemical plant ports. For real this time. diff --git a/src/main/java/api/hbm/fluidmk2/IFluidRegisterListener.java b/src/main/java/api/hbm/fluidmk2/IFluidRegisterListener.java new file mode 100644 index 000000000..2fb0a4b66 --- /dev/null +++ b/src/main/java/api/hbm/fluidmk2/IFluidRegisterListener.java @@ -0,0 +1,9 @@ +package api.hbm.fluidmk2; + +public interface IFluidRegisterListener { + + /** + * Called when the fluid registry initializes all fluids. Use CompatFluidRegistry to create new instances of FluidType, which are automatically registered. + */ + public void onFluidsLoad(); +} diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 93c9e565a..4cecc13a5 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -43,7 +43,7 @@ public class FluidType { public int flammability; public int reactivity; public EnumSymbol symbol; - public boolean customFluid = false; + public boolean renderWithTint = false; public static final int ROOM_TEMPERATURE = 20; @@ -81,7 +81,7 @@ public class FluidType { this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + texName + ".png"); this.guiTint = tint; this.localizedOverride = displayName; - this.customFluid = true; + this.renderWithTint = true; this.id = id; Fluids.register(this, id); @@ -95,6 +95,22 @@ public class FluidType { } } + /** For CompatFluidRegistry */ + public FluidType(String name, int id, int color, int p, int f, int r, EnumSymbol symbol, ResourceLocation texture) { + this.stringId = name; + this.color = color; + this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US); + this.poison = p; + this.flammability = f; + this.reactivity = r; + this.symbol = symbol; + this.texture = texture; + this.renderWithTint = true; + + this.id = id; + Fluids.register(this, id); + } + public FluidType setTemp(int temperature) { this.temperature = temperature; return this; diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 37c68f121..1a0b5dcd2 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -28,12 +28,15 @@ import com.hbm.inventory.fluid.trait.FT_Toxin.*; import com.hbm.render.util.EnumSymbol; import com.hbm.util.ArmorRegistry.HazardClass; +import api.hbm.fluidmk2.IFluidRegisterListener; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; public class Fluids { public static final Gson gson = new Gson(); + + public static List additionalListeners = new ArrayList(); public static FluidType NONE; public static FluidType AIR; @@ -197,8 +200,10 @@ public class Fluids { private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); + /** Inconsequential, only actually used when listing all fluids with niceOrder disabled */ protected static final List registerOrder = new ArrayList(); - protected static final List metaOrder = new ArrayList(); + /** What's used to list fluids with niceOrder enabled */ + public static final List metaOrder = new ArrayList(); public static final FT_Liquid LIQUID = new FT_Liquid(); public static final FT_Viscous VISCOUS = new FT_Viscous(); @@ -588,6 +593,8 @@ public class Fluids { // LEGACY ACID = PEROXIDE; + + for(IFluidRegisterListener listener : additionalListeners) listener.onFluidsLoad(); for(FluidType custom : customFluids) metaOrder.add(custom); diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 46f9aa47c..a89e19b26 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -34,10 +34,10 @@ import net.minecraft.item.ItemStack; public abstract class SerializableRecipe { public static final Gson gson = new Gson(); - public static List recipeHandlers = new ArrayList<>(); - public static List additionalListeners = new ArrayList<>(); + public static List recipeHandlers = new ArrayList(); + public static List additionalListeners = new ArrayList(); - public static Map recipeSyncHandlers = new HashMap<>(); + public static Map recipeSyncHandlers = new HashMap(); public boolean modified = false; diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index 49041e842..faba31497 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -4,11 +4,13 @@ import java.util.List; import java.util.Random; import com.google.common.collect.Multimap; -import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityRubble; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorUtil; @@ -23,21 +25,21 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; public class WeaponSpecial extends ItemSword { - + Random rand = new Random(); public WeaponSpecial(ToolMaterial p_i45356_1_) { super(p_i45356_1_); } - - @Override - public EnumRarity getRarity(ItemStack p_77613_1_) - { + + @Override + public EnumRarity getRarity(ItemStack p_77613_1_) { if(this == ModItems.schrabidium_hammer) { return EnumRarity.rare; } @@ -47,26 +49,23 @@ public class WeaponSpecial extends ItemSword { if(this == ModItems.shimmer_sledge || this == ModItems.shimmer_axe) { return EnumRarity.epic; } - + return EnumRarity.common; - } - - @Override - public boolean hitEntity(ItemStack stack, EntityLivingBase entity, EntityLivingBase entityPlayer) - { - World world = entity.worldObj; + } + + @Override + public boolean hitEntity(ItemStack stack, EntityLivingBase entity, EntityLivingBase entityPlayer) { + World world = entity.worldObj; if(this == ModItems.schrabidium_hammer) { - if (!world.isRemote) - { - entity.setHealth(0.0F); - } - world.playSoundAtEntity(entity, "hbm:weapon.bonk", 3.0F, 1.0F); + if(!world.isRemote) { + entity.setHealth(0.0F); + } + world.playSoundAtEntity(entity, "hbm:weapon.bonk", 3.0F, 1.0F); } if(this == ModItems.bottle_opener) { - if (!world.isRemote) - { + if(!world.isRemote) { int i = rand.nextInt(7); if(i == 0) entity.addPotionEffect(new PotionEffect(Potion.blindness.id, 5 * 60 * 20, 0)); @@ -76,19 +75,18 @@ public class WeaponSpecial extends ItemSword { entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 5 * 60 * 20, 2)); if(i == 3) entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 1 * 60 * 20, 0)); - } - world.playSoundAtEntity(entity, "random.anvil_land", 3.0F, 1.F); + } + world.playSoundAtEntity(entity, "random.anvil_land", 3.0F, 1.F); } - + if(this == ModItems.ullapool_caber) { - if (!world.isRemote) - { + if(!world.isRemote) { world.createExplosion(null, entity.posX, entity.posY, entity.posZ, 7.5F, true); - } - + } + stack.damageItem(505, entityPlayer); } - + if(this == ModItems.shimmer_sledge) { Vec3 vec = entityPlayer.getLookVec(); double dX = vec.xCoord * 5; @@ -98,37 +96,37 @@ public class WeaponSpecial extends ItemSword { entity.motionX += dX; entity.motionY += dY; entity.motionZ += dZ; - world.playSoundAtEntity(entity, "hbm:weapon.bang", 3.0F, 1.F); + world.playSoundAtEntity(entity, "hbm:weapon.bang", 3.0F, 1.F); } - + if(this == ModItems.shimmer_axe) { entity.setHealth(entity.getHealth() / 2); - - world.playSoundAtEntity(entity, "hbm:weapon.slice", 3.0F, 1.F); + + world.playSoundAtEntity(entity, "hbm:weapon.slice", 3.0F, 1.F); } - + if(this == ModItems.wood_gavel) { - world.playSoundAtEntity(entity, "hbm:weapon.whack", 3.0F, 1.F); + world.playSoundAtEntity(entity, "hbm:weapon.whack", 3.0F, 1.F); } - + if(this == ModItems.lead_gavel) { - world.playSoundAtEntity(entity, "hbm:weapon.whack", 3.0F, 1.F); - + world.playSoundAtEntity(entity, "hbm:weapon.whack", 3.0F, 1.F); + entity.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 15 * 20, 4)); } - + if(this == ModItems.diamond_gavel) { - + float ded = entity.getMaxHealth() / 3; entity.setHealth(entity.getHealth() - ded); - - world.playSoundAtEntity(entity, "hbm:weapon.whack", 3.0F, 1.F); + + world.playSoundAtEntity(entity, "hbm:weapon.whack", 3.0F, 1.F); } - + if(this == ModItems.wrench) { Vec3 vec = entityPlayer.getLookVec(); - + double dX = vec.xCoord * 0.5; double dY = vec.yCoord * 0.5; double dZ = vec.zCoord * 0.5; @@ -136,47 +134,47 @@ public class WeaponSpecial extends ItemSword { entity.motionX += dX; entity.motionY += dY; entity.motionZ += dZ; - world.playSoundAtEntity(entity, "random.anvil_land", 3.0F, 0.75F); + world.playSoundAtEntity(entity, "random.anvil_land", 3.0F, 0.75F); } - - if(this == ModItems.memespoon) { + + if(this == ModItems.memespoon && !world.isRemote) { + + if(!(entityPlayer instanceof EntityPlayer)) + return false; if(entityPlayer.fallDistance >= 2) { world.playSoundAtEntity(entity, "hbm:weapon.bang", 3.0F, 0.75F); - entity.setHealth(0); + entity.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) entityPlayer), 50F); } - - if(!(entityPlayer instanceof EntityPlayer)) - return false; - - if(entityPlayer.fallDistance >= 20 && !((EntityPlayer)entityPlayer).capabilities.isCreativeMode) { - if(!world.isRemote) { - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, 100, entity.posX, entity.posY, entity.posZ)); - EntityNukeTorex.statFacStandard(world, entity.posX, entity.posY, entity.posZ, 100); - } + + if(entityPlayer.fallDistance >= 20 && !((EntityPlayer) entityPlayer).capabilities.isCreativeMode) { + ExplosionVNT vnt = new ExplosionVNT(world, entity.posX, entity.posY + entity.height / 2D, entity.posZ, 15, entityPlayer); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 150).setupPiercing(25, 0.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + ExplosionCreator.composeEffectSmall(world, entity.posX, entity.posY + entity.height / 2D, entity.posZ); + vnt.explode(); } } if(this == ModItems.stopsign || this == ModItems.sopsign) - world.playSoundAtEntity(entity, "hbm:weapon.stop", 1.0F, 1.0F); - + world.playSoundAtEntity(entity, "hbm:weapon.stop", 1.0F, 1.0F); + return false; - } - + } + @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) - { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) { if(this == ModItems.shimmer_sledge) { if(world.getBlock(x, y, z) != Blocks.air && world.getBlock(x, y, z).getExplosionResistance(null) < 6000) { - + EntityRubble rubble = new EntityRubble(world); rubble.posX = x + 0.5F; rubble.posY = y; rubble.posZ = z + 0.5F; - + rubble.setMetaBasedOnBlock(world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); - + Vec3 vec = player.getLookVec(); double dX = vec.xCoord * 5; double dY = vec.yCoord * 5; @@ -185,22 +183,22 @@ public class WeaponSpecial extends ItemSword { rubble.motionX += dX; rubble.motionY += dY; rubble.motionZ += dZ; - world.playSoundAtEntity(rubble, "hbm:weapon.bang", 3.0F, 1.0F); - - if(!world.isRemote) { - - world.spawnEntityInWorld(rubble); + world.playSoundAtEntity(rubble, "hbm:weapon.bang", 3.0F, 1.0F); + + if(!world.isRemote) { + + world.spawnEntityInWorld(rubble); world.func_147480_a(x, y, z, false); - } + } } return true; } - + if(this == ModItems.shimmer_axe) { - world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:weapon.kapeng", 3.0F, 1.0F); + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:weapon.kapeng", 3.0F, 1.0F); - if(!world.isRemote) { + if(!world.isRemote) { if(world.getBlock(x, y, z) != Blocks.air && world.getBlock(x, y, z).getExplosionResistance(null) < 6000) { world.func_147480_a(x, y, z, false); } @@ -210,17 +208,16 @@ public class WeaponSpecial extends ItemSword { if(world.getBlock(x, y - 1, z) != Blocks.air && world.getBlock(x, y - 1, z).getExplosionResistance(null) < 6000) { world.func_147480_a(x, y - 1, z, false); } - } + } return true; } - + return false; - } - - @Override - public Multimap getItemAttributeModifiers() - { - Multimap multimap = super.getItemAttributeModifiers(); + } + + @Override + public Multimap getItemAttributeModifiers() { + Multimap multimap = super.getItemAttributeModifiers(); if(this == ModItems.schrabidium_hammer) { multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Weapon modifier", -0.5, 1)); } @@ -230,24 +227,23 @@ public class WeaponSpecial extends ItemSword { if(this == ModItems.wrench || this == ModItems.wrench_flipped) { multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Weapon modifier", -0.1, 1)); } - return multimap; - } - - @Override + return multimap; + } + + @Override public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { - if(entity instanceof EntityPlayer) { - if(ArmorUtil.checkForFiend((EntityPlayer) entity)) { - ((EntityPlayer) entity).triggerAchievement(MainRegistry.achFiend); - } else if(ArmorUtil.checkForFiend2((EntityPlayer) entity)) { - ((EntityPlayer) entity).triggerAchievement(MainRegistry.achFiend2); - } - } - } - + if(entity instanceof EntityPlayer) { + if(ArmorUtil.checkForFiend((EntityPlayer) entity)) { + ((EntityPlayer) entity).triggerAchievement(MainRegistry.achFiend); + } else if(ArmorUtil.checkForFiend2((EntityPlayer) entity)) { + ((EntityPlayer) entity).triggerAchievement(MainRegistry.achFiend2); + } + } + } + @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.schrabidium_hammer) { list.add("Even though it says \"+1000000000"); list.add("damage\", it's actually \"onehit anything\""); diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java index acb9a0b0c..924bd7998 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java @@ -83,7 +83,7 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR public String getTextureFromType(FluidType type) { - if(type.customFluid) { + if(type.renderWithTint) { int color = type.getTint(); double r = ((color & 0xff0000) >> 16) / 255D; double g = ((color & 0x00ff00) >> 8) / 255D; diff --git a/src/main/java/com/hbm/util/CompatExternal.java b/src/main/java/com/hbm/util/CompatExternal.java index 064e7f7eb..7157dcb1d 100644 --- a/src/main/java/com/hbm/util/CompatExternal.java +++ b/src/main/java/com/hbm/util/CompatExternal.java @@ -9,6 +9,7 @@ import java.util.function.Consumer; import api.hbm.energymk2.IEnergyHandlerMK2; import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluidmk2.IFluidRegisterListener; import api.hbm.fluidmk2.IFluidUserMK2; import api.hbm.recipe.IRecipeRegisterListener; @@ -16,6 +17,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.weapon.ItemCustomMissilePart.WarheadType; @@ -198,6 +200,15 @@ public class CompatExternal { public static void registerRecipeRegisterListener(IRecipeRegisterListener listener) { SerializableRecipe.additionalListeners.add(listener); } + + /** + * Registers an IFluidRegisterListener which is called every time the fluid list is loaded, either during startup or when the refresh command is used. + * Ensures that fluids are registered when they should, instead of being purged permanently when the system reloads. + * @param listener + */ + public static void registerFluidRegisterListener(IFluidRegisterListener listener) { + Fluids.additionalListeners.add(listener); + } public static void compatExamples() { // Makes all cows be targeted by turrets if player mode is active in addition to the existing rules. Applies to all entities that inherit EntityCow. diff --git a/src/main/java/com/hbm/util/CompatFluidRegistry.java b/src/main/java/com/hbm/util/CompatFluidRegistry.java new file mode 100644 index 000000000..c683734c9 --- /dev/null +++ b/src/main/java/com/hbm/util/CompatFluidRegistry.java @@ -0,0 +1,17 @@ +package com.hbm.util; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.render.util.EnumSymbol; + +import net.minecraft.util.ResourceLocation; + +public class CompatFluidRegistry { + + /** Registers a fluid with a custom ID. */ + public static FluidType registerFluid(String name, int id, int color, int p, int f, int r, EnumSymbol symbol, ResourceLocation texture) { + FluidType type = new FluidType(name, id, color, p, f, r, symbol, texture); + Fluids.metaOrder.add(type); + return type; + } +} diff --git a/src/main/java/com/hbm/util/CompatRecipeRegistry.java b/src/main/java/com/hbm/util/CompatRecipeRegistry.java index d6c89ad5d..9c66b9dbf 100644 --- a/src/main/java/com/hbm/util/CompatRecipeRegistry.java +++ b/src/main/java/com/hbm/util/CompatRecipeRegistry.java @@ -29,6 +29,8 @@ import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilOutput; import com.hbm.inventory.recipes.anvil.AnvilRecipes.OverlayType; +import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.inventory.recipes.loader.GenericRecipes.IOutput; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.util.Tuple.Pair; import com.hbm.util.Tuple.Triplet; @@ -70,8 +72,7 @@ public class CompatRecipeRegistry { SolderingRecipes.recipes.add(new SolderingRecipe(output, time, power, fluid, copyFirst(toppings, 3), copyFirst(pcb, 2), copyFirst(solder, 1))); } - /** Chemplant recipes need unique IDs, game will crash when an ID collision is detected! */ - public static void registerChemplant(int id, String name, int duration, AStack[] inputItems, FluidStack[] inputFluids, ItemStack[] outputItems, FluidStack[] outputFluids) { + @Deprecated public static void registerChemplant(int id, String name, int duration, AStack[] inputItems, FluidStack[] inputFluids, ItemStack[] outputItems, FluidStack[] outputFluids) { ChemRecipe recipe = new ChemRecipe(id, name, duration); if(inputItems != null) recipe.inputItems(copyFirst(inputItems, 4)); if(inputFluids != null) recipe.inputFluids(copyFirst(inputFluids, 2)); @@ -79,6 +80,18 @@ public class CompatRecipeRegistry { if(outputFluids != null) recipe.outputFluids(copyFirst(outputFluids, 2)); ChemplantRecipes.recipes.add(recipe); } + + /** Chemical plant recipe needs a unique name for the registry. Zero length arrays should stay null*/ + public static void registerChemicalPlant(String name, boolean named, ItemStack icon, int duration, long power, AStack[] inputItems, FluidStack[] inputFluids, IOutput[] outputItems, FluidStack[] outputFluids) { + GenericRecipe recipe = new GenericRecipe(name).setDuration(duration).setPower(power); + if(named) recipe.setNamed(); + if(icon != null) recipe.setIcon(icon); + if(inputItems != null && inputItems.length > 0) recipe.inputItems(inputItems); + if(inputFluids != null && inputFluids.length > 0) recipe.inputFluids(inputFluids); + if(outputItems != null && outputItems.length > 0) recipe.outputItems(outputItems); + if(outputFluids != null && outputFluids.length > 0) recipe.outputFluids(outputFluids); + ChemicalPlantRecipes.INSTANCE.register(recipe); + } /** Either solid or liquid output can be null */ public static void registerCombination(AStack input, ItemStack output, FluidStack fluid) { @@ -223,6 +236,7 @@ public class CompatRecipeRegistry { AmmoPressRecipes.recipes.add(new AmmoPressRecipe(output, input)); } + /** Assembler recipes are identified by the output as a ComparableStack, so no two recipes can share output. */ public static void registerAssembler(ItemStack output, AStack[] input, int time) { AssemblerRecipes.makeRecipe(new ComparableStack(output), copyFirst(input, 12), time); } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6bb6b99ae..8e915f009 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5492,7 +5492,7 @@ tile.machine_catalytic_reformer.name=Catalytic Reformer tile.machine_centrifuge.name=Centrifuge tile.machine_chemfac.name=Chemical Factory (Legacy) tile.machine_chemical_factory.name=Chemical Factory -tile.machine_chemical_factory.desc=Quadruple chemical plant.$Recipes process twice as fast,$but needs twice as much power.$Needs to be cooled with water,$produces low-pressure steam. +tile.machine_chemical_factory.desc=Quadruple chemical plant.$Recipes process twice as fast,$but need twice as much power.$Needs to be cooled with water,$produces low-pressure steam. tile.machine_chemical_plant.name=Chemical Plant tile.machine_chemplant.name=Chemical Plant (Legacy) tile.machine_chungus.name=Leviathan Steam Turbine diff --git a/src/main/resources/assets/hbm/textures/items/gem_erisite_test.png b/src/main/resources/assets/hbm/textures/items/gem_erisite_test.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4a0983a00f702c6496228c312c08da6c208eab GIT binary patch literal 501 zcmV*9G{Z50%KRR5}Qb{G{1tr`IF`R8d{f% zC=Q{~KSKdBsToNplPs@)Cp8#l zt8B1QEpa6g<{%9Wy~0LS$KU0rq!-C9<~%JMXtsh;H0ZFre0cK}M2H1Lyn4Mx2$N2) zMfYJpr7uOYFLNzl*a@aj+>+sFoT}Bpm2K9ybOwX_QN1RG+GkY7;a)zs%MUHY^}aiz r(t(XdLoAw@;4^trc-+=V{{emjvRR`yRame-00000NkvXXu0mjfWE$qU literal 0 HcmV?d00001 From 3e3b651d1169c7f60430251a7a9565f7043d89c4 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 22 Jun 2025 16:11:06 +0200 Subject: [PATCH 177/181] i hereby name thee "sexy" --- README.md | 2 +- .../sedna/factory/GunFactoryClient.java | 2 +- .../weapon/sedna/factory/XFactory12ga.java | 3 +- .../java/com/hbm/main/ResourceManager.java | 3 +- .../item/weapon/sedna/ItemRenderSexy.java | 178 + src/main/java/com/hbm/util/BobMathUtil.java | 5 +- .../assets/hbm/models/weapons/sexy.obj | 4942 +++++++++++++++++ .../models/weapons/sexy_real_no_fake.png | Bin 0 -> 4284 bytes 8 files changed, 5128 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java create mode 100644 src/main/resources/assets/hbm/models/weapons/sexy.obj create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/sexy_real_no_fake.png diff --git a/README.md b/README.md index db2e42f5b..ba1478cf4 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ * NTM Reloaded: https://github.com/TheOriginalGolem/Hbm-s-Nuclear-Tech-GIT/releases * NTM Extended Edition (Alcater): https://github.com/Alcatergit/Hbm-s-Nuclear-Tech-GIT/releases -* NTM Community Edition (WarFactory): https://codeberg.org/MrNorwood/Hbm-s-Nuclear-Tech-CE +* NTM Community Edition (WarFactory): https://github.com/MisterNorwood/Hbm-s-Nuclear-Tech-CE For 1.18, try Martin's remake: https://codeberg.org/MartinTheDragon/Nuclear-Tech-Mod-Remake/releases diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index 7a613fbb0..8e9d40aa5 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -76,7 +76,7 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun, new ItemRenderShredder(ResourceManager.shredder_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_shredder, new ItemRenderShredder(ResourceManager.shredder_orig_tex)); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_sexy, new ItemRenderShredder(ResourceManager.sexy_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_sexy, new ItemRenderSexy()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderQuadro()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderMinigun(ResourceManager.minigun_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun_lacunae, new ItemRenderMinigun(ResourceManager.minigun_lacunae_tex)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index a13ade26a..378ffcad8 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -373,10 +373,11 @@ public class XFactory12ga { .setupStandardConfiguration() .anim(LAMBDA_SHREDDER_ANIMS).orchestra(Orchestras.ORCHESTRA_SHREDDER) ).setUnlocalizedName("gun_autoshotgun_shredder"); + ModItems.gun_autoshotgun_sexy = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() .dura(5_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(64F).delay(1).auto(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) + .dmg(64F).delay(4).auto(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian_bj, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus)) .offset(0.75, -0.125, -0.25) .setupStandardFire().recoil(LAMBDA_RECOIL_SEXY)) diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 8cad667ec..889727560 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -884,6 +884,7 @@ public class ResourceManager { public static final IModelCustom amat = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/amat.obj")).asVBO(); public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asVBO(); public static final IModelCustom shredder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/shredder.obj")).asVBO(); + public static final IModelCustom sexy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/sexy.obj")).asVBO(); public static final IModelCustom quadro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/quadro.obj")).asVBO(); public static final IModelCustom mike_hawk = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mike_hawk.obj")).asVBO(); public static final IModelCustom minigun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/minigun.obj")).asVBO(); @@ -1007,7 +1008,7 @@ public class ResourceManager { public static final ResourceLocation amat_penance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/amat_penance.png"); public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder.png"); public static final ResourceLocation shredder_orig_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder_orig.png"); - public static final ResourceLocation sexy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy.png"); + public static final ResourceLocation sexy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy_real_no_fake.png"); public static final ResourceLocation quadro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro.png"); public static final ResourceLocation quadro_rocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro_rocket.png"); public static final ResourceLocation minigun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/minigun.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java new file mode 100644 index 000000000..797910362 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java @@ -0,0 +1,178 @@ +package com.hbm.render.item.weapon.sedna; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; +import com.hbm.util.BobMathUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderSexy extends ItemRenderWeaponBase { + + @Override + protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; } + + @Override + public float getViewFOV(ItemStack stack, float fov) { + float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp; + return fov * (1 - aimingProgress * 0.66F); + } + + @Override + public void setupFirstPerson(ItemStack stack) { + GL11.glTranslated(0, 0, 0.875); + + float offset = 0.8F; + + /*standardAimingTransform(stack, + -1.25F * offset, -0.75F * offset, 3.25F * offset, + 0, -5.25 / 8D, 1);*/ + + standardAimingTransform(stack, + -1F * offset, -0.75F * offset, 3F * offset, + -0.5F, -0.5F, 2F); + } + + @Override + public void renderFirstPerson(ItemStack stack) { + ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sexy_tex); + double scale = 0.375D; + GL11.glScaled(scale, scale, scale); + + double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + + GL11.glTranslated(0, -1, -8); + GL11.glRotated(equip[0], 1, 0, 0); + GL11.glTranslated(0, 1, 8); + + GL11.glTranslated(0, 0, recoil[2]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + ResourceManager.sexy.renderPart("Gun"); + + GL11.glPushMatrix(); + //GL11.glTranslated(0, 0, -1); + ResourceManager.sexy.renderPart("Barrel"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 0.375); + //GL11.glScaled(1, 1, 0.75); + GL11.glTranslated(0, 0, -0.375); + ResourceManager.sexy.renderPart("RecoilSpring"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.4375, -2.875); + //GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(0, -0.4375, 2.875); + ResourceManager.sexy.renderPart("Hood"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.46875, -6.875); + //GL11.glRotated(60, 1, 0, 0); + GL11.glTranslated(0, -0.46875, 6.875); + ResourceManager.sexy.renderPart("Lever"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, -6.75); + //GL11.glScaled(1, 1, 0.75); + GL11.glTranslated(0, 0, 6.75); + ResourceManager.sexy.renderPart("LockSpring"); + GL11.glPopMatrix(); + + ResourceManager.sexy.renderPart("Magazine"); + + /*renderShell(0, -0.375, 90, false); + renderShell(0.3125, -0.0625, 30, false); + renderShell(0.75, -0.125, -30, false); + renderShell(1.0625, -0.4375, -60, false); + renderShell(1.0625, -0.875, -90, false); + renderShell(1.0625, -1.3125, -90, false);*/ + + double p = 0.0625D; + + renderShell(p * 0, p * -6, 90, true); + renderShell(p * 5, p * 1, 30, true); + renderShell(p * 12, p * -1, -30, true); + renderShell(p * 17, p * -6, -60, true); + renderShell(p * 17, p * -13, -90, true); + renderShell(p * 17, p * -20, -90, true); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + @Override + public void setupThirdPerson(ItemStack stack) { + super.setupThirdPerson(stack); + double scale = 1.25D; + GL11.glScaled(scale, scale, scale); + GL11.glTranslated(0, 0, 4); + + } + + @Override + public void setupInv(ItemStack stack) { + super.setupInv(stack); + double scale = 1.375D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(25, 1, 0, 0); + GL11.glRotated(45, 0, 1, 0); + GL11.glTranslated(0, 0.5, 0.25); + } + + @Override + public void setupModTable(ItemStack stack) { + double scale = -9.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, 1, 0); + GL11.glTranslated(0, 0, 0); + } + + @Override + public void renderOther(ItemStack stack, ItemRenderType type) { + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sexy_tex); + ResourceManager.sexy.renderPart("Gun"); + ResourceManager.sexy.renderPart("Barrel"); + ResourceManager.sexy.renderPart("RecoilSpring"); + ResourceManager.sexy.renderPart("Hood"); + ResourceManager.sexy.renderPart("Lever"); + ResourceManager.sexy.renderPart("LockSpring"); + ResourceManager.sexy.renderPart("Magazine"); + + double p = 0.0625D; + renderShell(p * 0, p * -6, 90, true); + renderShell(p * 5, p * 1, 30, true); + renderShell(p * 12, p * -1, -30, true); + renderShell(p * 17, p * -6, -60, true); + renderShell(p * 17, p * -13, -90, true); + renderShell(p * 17, p * -20, -90, true); + + GL11.glShadeModel(GL11.GL_FLAT); + } + + public static void renderShell(double x0, double x1, double y0, double y1, double rot0, double rot1, boolean shell, double interp) { + renderShell(BobMathUtil.interp(x0, x1, interp), BobMathUtil.interp(y0, y1, interp), BobMathUtil.interp(rot0, rot1, interp), shell); + } + + public static void renderShell(double x, double y, double rot, boolean shell) { + GL11.glPushMatrix(); + GL11.glTranslated(x, 0.375 + y, 0); + GL11.glRotated(rot, 0, 0, 1); + GL11.glTranslated(0, -0.375, 0); + ResourceManager.sexy.renderPart("Belt"); + if(shell) ResourceManager.sexy.renderPart("Shell"); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/util/BobMathUtil.java b/src/main/java/com/hbm/util/BobMathUtil.java index bcffce9f1..0c46100be 100644 --- a/src/main/java/com/hbm/util/BobMathUtil.java +++ b/src/main/java/com/hbm/util/BobMathUtil.java @@ -76,9 +76,8 @@ public class BobMathUtil { ); } - public static double interp(double x, double y, float interp) { - return x + (y - x) * interp; - } + public static double interp(double x, double y, float interp) { return x + (y - x) * interp; } + public static double interp(double x, double y, double interp) { return x + (y - x) * interp; } public static double getAngleFrom2DVecs(double x1, double z1, double x2, double z2) { diff --git a/src/main/resources/assets/hbm/models/weapons/sexy.obj b/src/main/resources/assets/hbm/models/weapons/sexy.obj new file mode 100644 index 000000000..114be9b3d --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/sexy.obj @@ -0,0 +1,4942 @@ +# Blender v2.79 (sub 0) OBJ File: 'sexy.blend' +# www.blender.org +o Barrel +v 0.000000 0.312500 8.000000 +v -0.156250 0.270633 8.000000 +v -0.270633 0.156250 8.000000 +v -0.312500 0.000000 8.000000 +v -0.270633 -0.156250 8.000000 +v -0.156250 -0.270633 8.000000 +v 0.000000 -0.312500 8.000000 +v 0.156250 -0.270633 8.000000 +v 0.270633 -0.156250 8.000000 +v 0.312500 0.000000 8.000000 +v 0.270633 0.156250 8.000000 +v 0.156250 0.270633 8.000000 +v 0.000000 0.312500 -1.000000 +v -0.156250 0.270633 -1.000000 +v -0.270633 0.156250 -1.000000 +v -0.312500 0.000000 -1.000000 +v -0.270633 -0.156250 -1.000000 +v -0.156250 -0.270633 -1.000000 +v 0.000000 -0.312500 -1.000000 +v 0.156250 -0.270633 -1.000000 +v 0.270633 -0.156250 -1.000000 +v 0.312500 0.000000 -1.000000 +v 0.270633 0.156250 -1.000000 +v 0.156250 0.270633 -1.000000 +v -0.433013 0.250000 2.187500 +v -0.250000 0.433012 2.187500 +v 0.000000 0.500000 2.187500 +v 0.250000 0.433012 1.812500 +v 0.433013 0.250000 1.812500 +v 0.500000 0.000000 1.812500 +v -0.500000 0.000000 1.812500 +v -0.433013 0.250000 1.812500 +v -0.250000 0.433012 1.812500 +v 0.000000 0.500000 1.812500 +v -0.500000 0.000000 2.187500 +v 0.500000 0.000000 2.187500 +v 0.433013 0.250000 2.187500 +v 0.250000 0.433012 2.187500 +v -0.500000 -0.312500 1.812500 +v 0.500000 -0.312500 1.812500 +v -0.500000 -0.312500 2.187500 +v -0.433013 -0.562500 2.187500 +v -0.250000 -0.745513 2.187500 +v 0.000000 -0.812500 2.187500 +v 0.250000 -0.745513 2.187500 +v 0.433012 -0.562500 2.187500 +v 0.500000 -0.312500 2.187500 +v -0.500000 -0.312500 2.000000 +v 0.500000 -0.312500 2.000000 +v 0.000000 -0.812500 2.000000 +v 0.250000 -0.745513 2.000000 +v -0.433013 -0.562500 2.000000 +v 0.433012 -0.562500 2.000000 +v -0.250000 -0.745513 2.000000 +v -0.500000 -1.125000 1.812500 +v -0.433013 -1.375000 1.812500 +v -0.250000 -1.558013 1.812500 +v 0.000000 -1.625000 1.812500 +v 0.250000 -1.558013 1.812500 +v 0.433012 -1.375000 1.812500 +v 0.500000 -1.125000 1.812500 +v -0.500000 -1.125000 2.000000 +v 0.500000 -1.125000 2.000000 +v 0.000000 -1.625000 2.000000 +v 0.250000 -1.558013 2.000000 +v -0.433013 -1.375000 2.000000 +v 0.433012 -1.375000 2.000000 +v -0.250000 -1.558013 2.000000 +v 0.000000 0.218750 8.000000 +v -0.109375 0.189443 8.000000 +v -0.189443 0.109375 8.000000 +v -0.218750 -0.000000 8.000000 +v -0.189443 -0.109375 8.000000 +v -0.109375 -0.189443 8.000000 +v 0.000000 -0.218750 8.000000 +v 0.109375 -0.189443 8.000000 +v 0.189443 -0.109375 8.000000 +v 0.218750 -0.000000 8.000000 +v 0.189443 0.109375 8.000000 +v 0.109375 0.189443 8.000000 +v -0.109375 0.189443 7.000000 +v 0.189443 -0.203125 7.375000 +v -0.189443 -0.390625 7.875000 +v -0.218750 -0.500000 7.875000 +v -0.189443 -0.609375 7.875000 +v -0.109375 -0.689443 7.875000 +v 0.000000 -0.718750 7.875000 +v 0.109375 -0.689443 7.875000 +v 0.189443 -0.609375 7.875000 +v 0.218750 -0.500000 7.875000 +v 0.189443 -0.390625 7.875000 +v -0.189443 -0.203125 7.375000 +v 0.000000 0.218750 7.000000 +v 0.189443 -0.203125 7.875000 +v -0.189443 -0.390625 7.375000 +v -0.218750 -0.500000 7.375000 +v -0.189443 -0.609375 7.375000 +v -0.109375 -0.689443 7.375000 +v 0.000000 -0.718750 7.375000 +v 0.109375 -0.689443 7.375000 +v 0.189443 -0.609375 7.375000 +v 0.218750 -0.500000 7.375000 +v 0.189443 -0.390625 7.375000 +v -0.189443 -0.203125 7.875000 +v -0.189443 0.109375 7.000000 +v -0.218750 -0.000000 7.000000 +v -0.189443 -0.109375 7.000000 +v -0.109375 -0.189443 7.000000 +v 0.000000 -0.218750 7.000000 +v 0.109375 -0.189443 7.000000 +v 0.189443 -0.109375 7.000000 +v 0.218750 -0.000000 7.000000 +v 0.189443 0.109375 7.000000 +v 0.109375 0.189443 7.000000 +v 0.000000 -0.265625 7.875000 +v 0.000000 -0.265625 7.375000 +v -0.312500 0.625000 1.750000 +v -0.400888 0.588388 1.750000 +v -0.437500 0.500000 1.750000 +v -0.400888 0.411612 1.750000 +v -0.312500 0.375000 1.750000 +v -0.224112 0.411612 1.750000 +v -0.187500 0.500000 1.750000 +v -0.224112 0.588388 1.750000 +v -0.400888 0.588388 2.625000 +v -0.312500 0.625000 2.625000 +v -0.437500 0.500000 2.625000 +v -0.400888 0.411612 2.625000 +v -0.312500 0.375000 2.625000 +v -0.224112 0.411612 2.625000 +v -0.187500 0.500000 2.625000 +v -0.224112 0.588388 2.625000 +vt 0.983321 0.177141 +vt 0.999976 0.212107 +vt 0.933357 0.212107 +vt 0.966667 0.000061 +vt 0.995513 0.020249 +vt 0.937820 0.020249 +vt 0.999976 0.040436 +vt 0.983321 0.071080 +vt 0.966667 0.065671 +vt 0.075000 0.136364 +vt 0.066667 0.121212 +vt 0.075000 0.121212 +vt 0.075000 0.106061 +vt 0.066667 0.106061 +vt 0.066667 0.090909 +vt 0.075000 0.090909 +vt 0.066667 0.075758 +vt 0.075000 0.075758 +vt 0.075000 0.060606 +vt 0.066667 0.060606 +vt 0.075000 0.045455 +vt 0.066667 0.045455 +vt 0.075000 0.030303 +vt 0.066667 0.030303 +vt 0.075000 0.015152 +vt 0.066667 0.015152 +vt 0.075000 0.000000 +vt 0.066667 -0.000000 +vt 0.075000 0.181818 +vt 0.066667 0.166667 +vt 0.075000 0.166667 +vt 0.066667 0.151515 +vt 0.075000 0.151515 +vt 0.066667 0.136364 +vt 0.052083 0.121212 +vt 0.064713 0.130050 +vt 0.052083 0.156566 +vt 0.880856 0.717643 +vt 0.868745 0.727322 +vt 0.856639 0.717632 +vt 0.880858 0.758044 +vt 0.856642 0.758044 +vt 0.868750 0.732623 +vt 0.850000 0.671569 +vt 0.841789 0.661616 +vt 0.850000 0.651664 +vt 0.850000 0.671866 +vt 0.858211 0.681818 +vt 0.850000 0.691771 +vt 0.966667 0.277717 +vt 0.950012 0.272307 +vt 0.937820 0.257529 +vt 0.933357 0.237341 +vt 0.999976 0.237341 +vt 0.995514 0.257529 +vt 0.937820 0.191919 +vt 0.950012 0.177141 +vt 0.966667 0.171732 +vt 0.995513 0.191919 +vt 0.983321 0.272307 +vt 0.983321 0.166247 +vt 0.966667 0.171656 +vt 0.950012 0.166247 +vt 0.937820 0.151468 +vt 0.933357 0.131281 +vt 0.933357 0.106046 +vt 0.933357 0.040436 +vt 0.999976 0.106046 +vt 0.999976 0.040436 +vt 0.999976 0.131281 +vt 0.995513 0.151468 +vt 0.983321 0.005470 +vt 0.950012 0.005470 +vt 0.937820 0.085859 +vt 0.933357 0.106046 +vt 0.933357 0.040436 +vt 0.937820 0.020249 +vt 0.950012 0.005470 +vt 0.966667 0.000061 +vt 0.983321 0.005470 +vt 0.995513 0.020249 +vt 0.999976 0.106046 +vt 0.995513 0.085859 +vt 0.950012 0.071080 +vt 0.066667 0.181818 +vt 0.039454 0.130050 +vt 0.044792 0.123580 +vt 0.059375 0.123580 +vt 0.066667 0.138889 +vt 0.064713 0.147727 +vt 0.059375 0.154197 +vt 0.044792 0.154197 +vt 0.039454 0.147727 +vt 0.037500 0.138889 +vt 0.854769 0.709158 +vt 0.856644 0.700685 +vt 0.861763 0.694484 +vt 0.868755 0.692217 +vt 0.875745 0.694490 +vt 0.880861 0.700696 +vt 0.882731 0.709170 +vt 0.880852 0.732169 +vt 0.856635 0.732159 +vt 0.880858 0.772570 +vt 0.868750 0.767728 +vt 0.856642 0.772570 +vt 0.854769 0.749571 +vt 0.856642 0.741097 +vt 0.861759 0.734894 +vt 0.875741 0.734894 +vt 0.880858 0.741097 +vt 0.882731 0.749570 +vt 0.858211 0.661616 +vt 0.855806 0.668654 +vt 0.844194 0.668654 +vt 0.844194 0.654579 +vt 0.855806 0.654579 +vt 0.844194 0.688856 +vt 0.841789 0.681818 +vt 0.844194 0.674781 +vt 0.855806 0.674781 +vt 0.855806 0.688856 +vt 0.675000 0.151515 +vt 0.675000 0.075758 +vt 0.675000 0.106061 +vt 0.675000 0.030303 +vt 0.675000 0.166667 +vt 0.675000 0.121212 +vt 0.675000 0.045455 +vt 0.675000 -0.000000 +vt 0.675000 0.136364 +vt 0.675000 0.060606 +vt 0.675000 0.090909 +vt 0.675000 0.015152 +vt 0.933333 0.171717 +vt 0.908333 0.151515 +vt 0.933333 0.151515 +vt 0.933333 0.272727 +vt 0.908333 0.252525 +vt 0.933333 0.252525 +vt 0.933333 0.191919 +vt 0.908333 0.171717 +vt 0.933333 0.232323 +vt 0.908333 0.212121 +vt 0.933333 0.212121 +vt 0.908333 0.191919 +vt 0.908333 0.232323 +vt 0.908333 0.126263 +vt 0.920833 0.126263 +vt 0.920833 0.085859 +vt 0.908333 0.065657 +vt 0.920833 0.065657 +vt 0.920833 0.318182 +vt 0.908333 0.297980 +vt 0.920833 0.297980 +vt 0.920833 0.106061 +vt 0.908333 0.085859 +vt 0.920833 0.338384 +vt 0.908333 0.318182 +vt 0.908333 0.106061 +vt 0.920833 0.358586 +vt 0.908333 0.338384 +vt 0.933333 0.060606 +vt 0.933333 0.126263 +vt 0.933333 0.297980 +vt 0.920833 0.363636 +vt 0.933333 0.424242 +vt 0.920833 0.404040 +vt 0.933333 0.404040 +vt 0.920833 0.040404 +vt 0.933333 0.040404 +vt 0.920833 0.383838 +vt 0.933333 0.383838 +vt 0.920833 0.020202 +vt 0.933333 0.020202 +vt 0.933333 0.363636 +vt 0.920833 0.000000 +vt 0.933333 0.000000 +vt 0.854167 0.808081 +vt 0.820833 0.818182 +vt 0.820833 0.808081 +vt 0.854167 0.777778 +vt 0.820833 0.787879 +vt 0.820833 0.777778 +vt 0.854167 0.747475 +vt 0.820833 0.757576 +vt 0.820833 0.747475 +vt 0.854167 0.818182 +vt 0.820833 0.828283 +vt 0.854167 0.787879 +vt 0.820833 0.797980 +vt 0.854167 0.757576 +vt 0.820833 0.767677 +vt 0.854167 0.732323 +vt -0.000000 0.030303 +vt 0.066667 0.040404 +vt -0.000000 0.040404 +vt 0.854167 0.797980 +vt 0.854167 0.767677 +vt -0.000000 0.000000 +vt 0.066667 0.010101 +vt -0.000000 0.010101 +vt 0.854167 0.828283 +vt 0.820833 0.843434 +vt -0.000000 0.080808 +vt 0.066667 0.090909 +vt -0.000000 0.090909 +vt -0.000000 0.111111 +vt 0.066667 0.121212 +vt -0.000000 0.121212 +vt -0.000000 0.020202 +vt 0.066667 0.030303 +vt -0.000000 0.070707 +vt 0.066667 0.080808 +vt -0.000000 0.050505 +vt 0.066667 0.060606 +vt -0.000000 0.060606 +vt -0.000000 0.101010 +vt 0.066667 0.111111 +vt 0.066667 0.020202 +vt 0.066667 0.070707 +vt 0.066667 0.050505 +vt 0.066667 0.101010 +vt 0.841667 0.691919 +vt 0.783333 0.681818 +vt 0.841667 0.681818 +vt 0.841667 0.671717 +vt 0.783333 0.661616 +vt 0.841667 0.661616 +vt 0.841667 0.732323 +vt 0.783333 0.722222 +vt 0.841667 0.722222 +vt 0.841667 0.712121 +vt 0.783333 0.702020 +vt 0.841667 0.702020 +vt 0.783333 0.671717 +vt 0.783333 0.651515 +vt 0.841667 0.651515 +vt 0.783333 0.712121 +vt 0.783333 0.691919 +vt 0.675000 0.181818 +vt 0.908333 0.272727 +vt 0.908333 0.358586 +vt 0.920833 0.060606 +vt 0.920833 0.424242 +vt 0.820833 0.732323 +vt 0.066667 0.000000 +vt 0.854167 0.843434 +vt 0.783333 0.732323 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.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.5000 0.8660 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.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.9914 0.1305 0.0000 +vn -0.9914 0.1305 0.0000 +vn 0.9914 -0.1305 0.0000 +vn 0.9979 -0.0651 0.0000 +vn -0.9914 -0.1305 0.0000 +vn -0.9979 -0.0651 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 45/1/1 47/2/1 41/3/1 +f 58/4/2 56/5/2 60/6/2 +f 63/7/1 51/8/1 50/9/1 +f 4/10/1 71/11/1 3/12/1 +f 2/13/1 71/11/1 70/14/1 +f 2/13/1 69/15/1 1/16/1 +f 1/16/1 80/17/1 12/18/1 +f 11/19/1 80/17/1 79/20/1 +f 10/21/1 79/20/1 78/22/1 +f 9/23/1 78/22/1 77/24/1 +f 8/25/1 77/24/1 76/26/1 +f 7/27/1 76/26/1 75/28/1 +f 7/29/1 74/30/1 6/31/1 +f 6/31/1 73/32/1 5/33/1 +f 5/33/1 72/34/1 4/10/1 +f 109/35/1 111/36/1 93/37/1 +f 91/38/1 115/39/1 83/40/1 +f 95/41/2 103/42/2 99/43/2 +f 117/44/2 123/45/2 121/46/2 +f 129/47/1 131/48/1 126/49/1 +f 27/50/1 26/51/1 25/52/1 +f 25/52/1 35/53/1 27/50/1 +f 35/53/1 41/3/1 36/54/1 +f 27/50/1 35/53/1 37/55/1 +f 41/3/1 42/56/1 43/57/1 +f 43/57/1 44/58/1 41/3/1 +f 44/58/1 45/1/1 41/3/1 +f 45/1/1 46/59/1 47/2/1 +f 47/2/1 36/54/1 41/3/1 +f 36/54/1 37/55/1 35/53/1 +f 37/55/1 38/60/1 27/50/1 +f 33/61/2 34/62/2 28/63/2 +f 28/63/2 29/64/2 30/65/2 +f 40/66/2 61/67/2 39/68/2 +f 61/67/2 60/6/2 55/69/2 +f 39/68/2 61/67/2 55/69/2 +f 28/63/2 30/65/2 31/70/2 +f 30/65/2 40/66/2 39/68/2 +f 32/71/2 33/61/2 28/63/2 +f 39/68/2 31/70/2 30/65/2 +f 31/70/2 32/71/2 28/63/2 +f 56/5/2 55/69/2 60/6/2 +f 58/4/2 57/72/2 56/5/2 +f 60/6/2 59/73/2 58/4/2 +f 52/74/1 48/75/1 62/76/1 +f 62/76/1 66/77/1 50/9/1 +f 66/77/1 68/78/1 50/9/1 +f 68/78/1 64/79/1 50/9/1 +f 64/79/1 65/80/1 50/9/1 +f 65/80/1 67/81/1 50/9/1 +f 67/81/1 63/7/1 50/9/1 +f 63/7/1 49/82/1 53/83/1 +f 63/7/1 53/83/1 51/8/1 +f 52/74/1 62/76/1 54/84/1 +f 54/84/1 62/76/1 50/9/1 +f 4/10/1 72/34/1 71/11/1 +f 2/13/1 3/12/1 71/11/1 +f 2/13/1 70/14/1 69/15/1 +f 1/16/1 69/15/1 80/17/1 +f 11/19/1 12/18/1 80/17/1 +f 10/21/1 11/19/1 79/20/1 +f 9/23/1 10/21/1 78/22/1 +f 8/25/1 9/23/1 77/24/1 +f 7/27/1 8/25/1 76/26/1 +f 7/29/1 75/85/1 74/30/1 +f 6/31/1 74/30/1 73/32/1 +f 5/33/1 73/32/1 72/34/1 +f 107/86/1 108/87/1 109/35/1 +f 109/35/1 110/88/1 111/36/1 +f 111/36/1 112/89/1 113/90/1 +f 113/90/1 114/91/1 111/36/1 +f 114/91/1 93/37/1 111/36/1 +f 93/37/1 81/92/1 107/86/1 +f 81/92/1 105/93/1 107/86/1 +f 105/93/1 106/94/1 107/86/1 +f 107/86/1 109/35/1 93/37/1 +f 83/40/1 84/95/1 85/96/1 +f 85/96/1 86/97/1 87/98/1 +f 87/98/1 88/99/1 89/100/1 +f 89/100/1 90/101/1 87/98/1 +f 90/101/1 91/38/1 87/98/1 +f 91/38/1 94/102/1 115/39/1 +f 115/39/1 104/103/1 83/40/1 +f 83/40/1 85/96/1 91/38/1 +f 85/96/1 87/98/1 91/38/1 +f 95/41/2 92/104/2 116/105/2 +f 116/105/2 82/106/2 103/42/2 +f 103/42/2 102/107/2 99/43/2 +f 102/107/2 101/108/2 99/43/2 +f 101/108/2 100/109/2 99/43/2 +f 99/43/2 98/110/2 97/111/2 +f 97/111/2 96/112/2 99/43/2 +f 96/112/2 95/41/2 99/43/2 +f 95/41/2 116/105/2 103/42/2 +f 119/113/2 118/114/2 117/44/2 +f 117/44/2 124/115/2 123/45/2 +f 123/45/2 122/116/2 121/46/2 +f 121/46/2 120/117/2 119/113/2 +f 119/113/2 117/44/2 121/46/2 +f 126/49/1 125/118/1 127/119/1 +f 127/119/1 128/120/1 129/47/1 +f 129/47/1 130/121/1 131/48/1 +f 131/48/1 132/122/1 126/49/1 +f 126/49/1 127/119/1 129/47/1 +s 1 +f 17/123/3 6/31/4 5/33/3 +f 24/124/5 1/16/6 12/18/5 +f 14/125/7 3/12/8 2/13/7 +f 21/126/9 10/21/10 9/23/9 +f 18/127/4 7/29/11 6/31/4 +f 15/128/8 4/10/12 3/12/8 +f 22/129/10 11/19/13 10/21/10 +f 19/130/11 8/25/14 7/27/11 +f 16/131/12 5/33/3 4/10/12 +f 23/132/13 12/18/5 11/19/13 +f 13/133/6 2/13/7 1/16/6 +f 20/134/14 9/23/9 8/25/14 +f 29/135/13 36/136/15 30/137/15 +f 31/138/16 25/139/8 32/140/8 +f 28/141/5 37/142/13 29/135/13 +f 33/143/7 27/144/6 34/145/6 +f 34/145/6 38/146/5 28/141/5 +f 32/140/8 26/147/7 33/143/7 +f 36/136/15 47/148/17 49/149/18 +f 51/150/14 44/151/11 50/152/11 +f 52/153/3 41/154/19 48/155/20 +f 53/156/9 45/157/14 51/150/14 +f 54/158/4 42/159/3 52/153/3 +f 49/149/18 46/160/9 53/156/9 +f 50/161/11 43/162/4 54/158/4 +f 49/149/18 61/163/17 40/164/10 +f 39/165/12 62/166/19 48/155/20 +f 58/167/11 68/168/4 57/169/4 +f 61/163/17 67/170/9 60/171/9 +f 57/169/4 66/172/3 56/173/3 +f 60/171/9 65/174/14 59/175/14 +f 56/173/3 62/166/19 55/176/19 +f 59/175/14 64/177/11 58/178/11 +f 31/138/16 39/165/12 48/155/20 +f 101/179/9 90/180/10 89/181/9 +f 98/182/4 87/183/11 86/184/4 +f 95/185/16 84/186/12 83/187/16 +f 102/188/10 91/189/15 90/180/10 +f 99/190/11 88/191/14 87/183/11 +f 96/192/12 85/193/3 84/186/12 +f 83/187/16 92/194/12 95/185/16 +f 72/195/10 105/196/9 71/197/9 +f 100/198/14 89/181/9 88/191/14 +f 97/199/3 86/184/4 85/193/3 +f 75/200/6 108/201/5 74/202/5 +f 103/203/15 94/204/10 91/189/15 +f 79/205/3 112/206/12 78/207/12 +f 76/208/7 109/209/6 75/210/6 +f 73/211/13 106/212/10 72/195/10 +f 80/213/4 113/214/3 79/205/3 +f 70/215/14 93/216/11 69/217/11 +f 77/218/8 110/219/7 76/208/7 +f 74/202/5 107/220/13 73/211/13 +f 69/217/11 114/221/4 80/213/4 +f 71/197/9 81/222/14 70/215/14 +f 78/207/12 111/223/8 77/218/8 +f 117/224/6 132/225/21 124/226/21 +f 123/227/10 130/228/22 122/229/22 +f 121/230/11 128/231/23 120/232/23 +f 119/233/12 125/234/24 118/235/24 +f 124/226/21 131/236/10 123/227/10 +f 122/229/22 129/237/11 121/238/11 +f 120/232/23 127/239/12 119/233/12 +f 118/235/24 126/240/6 117/224/6 +f 17/123/3 18/127/4 6/31/4 +f 24/124/5 13/133/6 1/16/6 +f 14/125/7 15/128/8 3/12/8 +f 21/126/9 22/129/10 10/21/10 +f 18/127/4 19/241/11 7/29/11 +f 15/128/8 16/131/12 4/10/12 +f 22/129/10 23/132/13 11/19/13 +f 19/130/11 20/134/14 8/25/14 +f 16/131/12 17/123/3 5/33/3 +f 23/132/13 24/124/5 12/18/5 +f 13/133/6 14/125/7 2/13/7 +f 20/134/14 21/126/9 9/23/9 +f 29/135/13 37/142/13 36/136/15 +f 31/138/16 35/242/16 25/139/8 +f 28/141/5 38/146/5 37/142/13 +f 33/143/7 26/147/7 27/144/6 +f 34/145/6 27/144/6 38/146/5 +f 32/140/8 25/139/8 26/147/7 +f 40/164/10 30/137/15 49/149/18 +f 30/137/15 36/136/15 49/149/18 +f 51/150/14 45/157/14 44/151/11 +f 52/153/3 42/159/3 41/154/19 +f 53/156/9 46/160/9 45/157/14 +f 54/158/4 43/162/4 42/159/3 +f 49/149/18 47/148/17 46/160/9 +f 50/161/11 44/243/11 43/162/4 +f 49/149/18 63/244/17 61/163/17 +f 39/165/12 55/176/19 62/166/19 +f 58/167/11 64/245/11 68/168/4 +f 61/163/17 63/244/17 67/170/9 +f 57/169/4 68/168/4 66/172/3 +f 60/171/9 67/170/9 65/174/14 +f 56/173/3 66/172/3 62/166/19 +f 59/175/14 65/174/14 64/177/11 +f 41/154/19 35/242/16 48/155/20 +f 35/242/16 31/138/16 48/155/20 +f 101/179/9 102/188/10 90/180/10 +f 98/182/4 99/190/11 87/183/11 +f 95/185/16 96/192/12 84/186/12 +f 102/188/10 103/203/15 91/189/15 +f 99/190/11 100/198/14 88/191/14 +f 96/192/12 97/199/3 85/193/3 +f 83/187/16 104/246/12 92/194/12 +f 72/195/10 106/212/10 105/196/9 +f 100/198/14 101/179/9 89/181/9 +f 97/199/3 98/182/4 86/184/4 +f 75/200/6 109/247/6 108/201/5 +f 103/203/15 82/248/10 94/204/10 +f 79/205/3 113/214/3 112/206/12 +f 76/208/7 110/219/7 109/209/6 +f 73/211/13 107/220/13 106/212/10 +f 80/213/4 114/221/4 113/214/3 +f 70/215/14 81/222/14 93/216/11 +f 77/218/8 111/223/8 110/219/7 +f 74/202/5 108/201/5 107/220/13 +f 69/217/11 93/216/11 114/221/4 +f 71/197/9 105/196/9 81/222/14 +f 78/207/12 112/206/12 111/223/8 +f 117/224/6 126/240/6 132/225/21 +f 123/227/10 131/236/10 130/228/22 +f 121/230/11 129/249/11 128/231/23 +f 119/233/12 127/239/12 125/234/24 +f 124/226/21 132/225/21 131/236/10 +f 122/229/22 130/228/22 129/237/11 +f 120/232/23 128/231/23 127/239/12 +f 118/235/24 125/234/24 126/240/6 +o Shell +v 0.000000 0.562500 -3.375000 +v -0.132583 0.507582 -3.375000 +v -0.187500 0.375000 -3.375000 +v -0.132583 0.242418 -3.375000 +v 0.000000 0.187500 -3.375000 +v 0.132582 0.242418 -3.375000 +v 0.187500 0.375000 -3.375000 +v 0.132582 0.507582 -3.375000 +v -0.132583 0.507583 -4.437500 +v 0.000000 0.562501 -4.437500 +v -0.187500 0.375001 -4.437500 +v -0.132583 0.242418 -4.437500 +v 0.000000 0.187501 -4.437500 +v 0.132582 0.242418 -4.437500 +v 0.187500 0.375001 -4.437500 +v 0.132582 0.507583 -4.437500 +v 0.000000 0.593751 -4.437500 +v -0.154680 0.529681 -4.437500 +v -0.218750 0.375001 -4.437500 +v -0.154680 0.220321 -4.437500 +v 0.000000 0.156251 -4.437500 +v 0.154680 0.220321 -4.437500 +v 0.218750 0.375001 -4.437500 +v 0.154680 0.529681 -4.437500 +v 0.000000 0.593751 -4.500000 +v -0.154680 0.529681 -4.500000 +v -0.218750 0.375001 -4.500000 +v -0.154680 0.220321 -4.500000 +v 0.000000 0.156251 -4.500000 +v 0.154680 0.220321 -4.500000 +v 0.218750 0.375001 -4.500000 +v 0.154680 0.529681 -4.500000 +v 0.000000 0.500001 -4.500000 +v -0.088388 0.463389 -4.500000 +v -0.125000 0.375001 -4.500000 +v -0.088388 0.286613 -4.500000 +v 0.000000 0.250001 -4.500000 +v 0.088388 0.286613 -4.500000 +v 0.125000 0.375001 -4.500000 +v 0.088388 0.463389 -4.500000 +v 0.000000 0.437501 -4.500000 +v -0.044194 0.419195 -4.500000 +v -0.062500 0.375001 -4.500000 +v -0.044194 0.330807 -4.500000 +v 0.000000 0.312501 -4.500000 +v 0.044194 0.330807 -4.500000 +v 0.062500 0.375001 -4.500000 +v 0.044194 0.419195 -4.500000 +v -0.088388 0.463389 -4.468750 +v 0.000000 0.500001 -4.468750 +v -0.125000 0.375001 -4.468750 +v -0.088388 0.286613 -4.468750 +v 0.000000 0.250001 -4.468750 +v 0.088388 0.286613 -4.468750 +v 0.125000 0.375001 -4.468750 +v 0.088388 0.463389 -4.468750 +v -0.044194 0.419195 -4.468750 +v 0.000000 0.437501 -4.468750 +v -0.062500 0.375001 -4.468750 +v -0.044194 0.330807 -4.468750 +v 0.000000 0.312501 -4.468750 +v 0.044194 0.330807 -4.468750 +v 0.062500 0.375001 -4.468750 +v 0.044194 0.419195 -4.468750 +vt 0.112500 0.414009 +vt 0.100109 0.398990 +vt 0.112500 0.383971 +vt 0.075000 0.414141 +vt 0.070833 0.424242 +vt 0.070833 0.414141 +vt 0.075000 0.404040 +vt 0.070833 0.404040 +vt 0.075000 0.393939 +vt 0.070833 0.393939 +vt 0.075000 0.383838 +vt 0.070833 0.383838 +vt 0.075000 0.454545 +vt 0.070833 0.464646 +vt 0.070833 0.454545 +vt 0.075000 0.444444 +vt 0.070833 0.444444 +vt 0.070833 0.434343 +vt 0.075000 0.434343 +vt 0.087500 0.434343 +vt 0.079167 0.444444 +vt 0.079167 0.434343 +vt 0.087500 0.424242 +vt 0.079167 0.424242 +vt 0.079167 0.414141 +vt 0.079167 0.404040 +vt 0.087500 0.414141 +vt 0.087500 0.393939 +vt 0.079167 0.393939 +vt 0.087500 0.383838 +vt 0.079167 0.383838 +vt 0.079167 0.454545 +vt 0.087500 0.464646 +vt 0.079167 0.464646 +vt 0.087500 0.454545 +vt 0.104167 0.424234 +vt 0.100007 0.419192 +vt 0.104167 0.414150 +vt 0.095833 0.434343 +vt 0.091667 0.444444 +vt 0.091667 0.434343 +vt 0.091667 0.424242 +vt 0.095833 0.429293 +vt 0.095833 0.414141 +vt 0.091667 0.414141 +vt 0.091667 0.404040 +vt 0.095833 0.409091 +vt 0.095833 0.393939 +vt 0.091667 0.393939 +vt 0.091667 0.383838 +vt 0.095833 0.388889 +vt 0.095833 0.454545 +vt 0.091667 0.464646 +vt 0.091667 0.454545 +vt 0.095833 0.449495 +vt 0.103738 0.409610 +vt 0.103738 0.388370 +vt 0.121262 0.388370 +vt 0.124891 0.398990 +vt 0.121262 0.409610 +vt 0.075000 0.424242 +vt 0.075000 0.464646 +vt 0.087500 0.444444 +vt 0.087500 0.404040 +vt 0.108327 0.419192 +vt 0.107108 0.422757 +vt 0.101225 0.422757 +vt 0.101225 0.415626 +vt 0.107108 0.415626 +vt 0.095833 0.439394 +vt 0.095833 0.424242 +vt 0.095833 0.419192 +vt 0.095833 0.404040 +vt 0.095833 0.398990 +vt 0.095833 0.383838 +vt 0.095833 0.459596 +vt 0.095833 0.444444 +vt -0.000000 0.404040 +vt 0.000000 0.464646 +vt 0.000000 0.434343 +vt 0.000000 0.444444 +vt -0.000000 0.414141 +vt 0.000000 0.383838 +vt -0.000000 0.393939 +vt 0.000000 0.454545 +vt 0.000000 0.424242 +vt 0.100000 0.429293 +vt 0.100000 0.424242 +vt 0.100000 0.419192 +vt 0.100000 0.414141 +vt 0.100000 0.409091 +vt 0.100000 0.404040 +vt 0.100000 0.398990 +vt 0.100000 0.393939 +vt 0.100000 0.439394 +vt 0.100000 0.434343 +vt 0.100000 0.449495 +vt 0.100000 0.444444 +vt 0.100000 0.459596 +vt 0.100000 0.454545 +vt 0.100000 0.388889 +vt 0.100000 0.383838 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 133/250/25 135/251/25 137/252/25 +f 156/253/25 142/254/25 148/255/25 +f 155/256/25 148/255/25 147/257/25 +f 154/258/25 147/257/25 146/259/25 +f 153/260/25 146/259/25 145/261/25 +f 152/262/25 145/263/25 144/264/25 +f 151/265/25 144/264/25 143/266/25 +f 141/267/25 151/265/25 143/266/25 +f 142/254/25 150/268/25 141/267/25 +f 166/269/26 159/270/26 158/271/26 +f 165/272/26 158/271/26 157/273/26 +f 164/274/26 165/272/26 157/273/26 +f 163/275/26 172/276/26 164/274/26 +f 170/277/26 163/275/26 162/278/26 +f 169/279/26 162/278/26 161/280/26 +f 160/281/26 169/282/26 161/283/26 +f 159/270/26 168/284/26 160/281/26 +f 173/285/26 179/286/26 177/287/26 +f 189/288/26 183/289/26 181/290/26 +f 182/291/26 189/292/26 181/290/26 +f 196/293/26 182/291/26 188/294/26 +f 187/295/26 196/296/26 188/294/26 +f 194/297/26 187/295/26 186/298/26 +f 185/299/26 194/300/26 186/298/26 +f 192/301/26 185/302/26 184/303/26 +f 183/289/26 192/304/26 184/303/26 +f 133/250/25 134/305/25 135/251/25 +f 135/251/25 136/306/25 137/252/25 +f 137/252/25 138/307/25 133/250/25 +f 138/307/25 139/308/25 133/250/25 +f 139/308/25 140/309/25 133/250/25 +f 156/253/25 149/310/25 142/254/25 +f 155/256/25 156/253/25 148/255/25 +f 154/258/25 155/256/25 147/257/25 +f 153/260/25 154/258/25 146/259/25 +f 152/262/25 153/311/25 145/263/25 +f 151/265/25 152/262/25 144/264/25 +f 141/267/25 150/268/25 151/265/25 +f 142/254/25 149/310/25 150/268/25 +f 166/269/26 167/312/26 159/270/26 +f 165/272/26 166/269/26 158/271/26 +f 164/274/26 172/276/26 165/272/26 +f 163/275/26 171/313/26 172/276/26 +f 170/277/26 171/313/26 163/275/26 +f 169/279/26 170/277/26 162/278/26 +f 160/281/26 168/284/26 169/282/26 +f 159/270/26 167/312/26 168/284/26 +f 175/314/26 174/315/26 173/285/26 +f 173/285/26 180/316/26 179/286/26 +f 179/286/26 178/317/26 177/287/26 +f 177/287/26 176/318/26 175/314/26 +f 175/314/26 173/285/26 177/287/26 +f 189/288/26 191/319/26 183/289/26 +f 182/291/26 190/320/26 189/292/26 +f 196/293/26 190/321/26 182/291/26 +f 187/295/26 195/322/26 196/296/26 +f 194/297/26 195/323/26 187/295/26 +f 185/299/26 193/324/26 194/300/26 +f 192/301/26 193/325/26 185/302/26 +f 183/289/26 191/326/26 192/304/26 +s 1 +f 139/327/27 146/259/28 147/257/27 +f 137/328/29 144/264/30 145/263/29 +f 134/329/31 143/266/32 135/330/32 +f 140/331/33 147/257/27 148/255/33 +f 137/332/29 146/259/28 138/333/28 +f 135/330/32 144/264/30 136/334/30 +f 133/335/34 141/267/31 134/329/31 +f 140/331/33 142/254/34 133/335/34 +f 156/253/33 157/273/34 149/310/34 +f 154/258/28 163/275/27 155/256/27 +f 152/262/30 161/283/29 153/311/29 +f 150/268/31 159/270/32 151/265/32 +f 155/256/27 164/274/33 156/253/33 +f 153/260/29 162/278/28 154/258/28 +f 151/265/32 160/281/30 152/262/30 +f 149/310/34 158/271/31 150/268/31 +f 166/269/28 183/289/27 167/312/27 +f 174/336/31 190/320/34 173/337/34 +f 173/338/34 196/293/33 180/339/33 +f 165/272/29 181/290/28 166/269/28 +f 172/276/30 182/291/29 165/272/29 +f 180/340/33 195/322/27 179/341/27 +f 171/313/32 188/294/30 172/276/30 +f 179/342/27 194/297/28 178/343/28 +f 175/344/32 189/288/31 174/345/31 +f 167/312/27 184/303/33 168/284/33 +f 176/346/30 191/326/32 175/347/32 +f 168/284/33 185/302/34 169/282/34 +f 177/348/29 192/301/30 176/349/30 +f 169/279/34 186/298/31 170/277/31 +f 178/350/28 193/324/29 177/351/29 +f 170/277/31 187/295/32 171/313/32 +f 139/327/27 138/333/28 146/259/28 +f 137/328/29 136/334/30 144/264/30 +f 134/329/31 141/267/31 143/266/32 +f 140/331/33 139/327/27 147/257/27 +f 137/332/29 145/261/29 146/259/28 +f 135/330/32 143/266/32 144/264/30 +f 133/335/34 142/254/34 141/267/31 +f 140/331/33 148/255/33 142/254/34 +f 156/253/33 164/274/33 157/273/34 +f 154/258/28 162/278/28 163/275/27 +f 152/262/30 160/281/30 161/283/29 +f 150/268/31 158/271/31 159/270/32 +f 155/256/27 163/275/27 164/274/33 +f 153/260/29 161/280/29 162/278/28 +f 151/265/32 159/270/32 160/281/30 +f 149/310/34 157/273/34 158/271/31 +f 166/269/28 181/290/28 183/289/27 +f 174/336/31 189/292/31 190/320/34 +f 173/338/34 190/321/34 196/293/33 +f 165/272/29 182/291/29 181/290/28 +f 172/276/30 188/294/30 182/291/29 +f 180/340/33 196/296/33 195/322/27 +f 171/313/32 187/295/32 188/294/30 +f 179/342/27 195/323/27 194/297/28 +f 175/344/32 191/319/32 189/288/31 +f 167/312/27 183/289/27 184/303/33 +f 176/346/30 192/304/30 191/326/32 +f 168/284/33 184/303/33 185/302/34 +f 177/348/29 193/325/29 192/301/30 +f 169/279/34 185/299/34 186/298/31 +f 178/350/28 194/300/28 193/324/29 +f 170/277/31 186/298/31 187/295/32 +o Belt +v -0.132583 0.507583 -3.687500 +v 0.000000 0.187501 -4.062500 +v -0.187500 0.375001 -3.687500 +v -0.132583 0.242418 -3.687500 +v 0.000000 0.187501 -3.687500 +v 0.132582 0.242418 -3.687500 +v 0.187500 0.375001 -3.687500 +v 0.132582 0.507583 -3.687500 +v -0.132583 0.242418 -4.062500 +v -0.154680 0.529681 -3.687500 +v -0.218750 0.375001 -3.687500 +v -0.154680 0.220321 -3.687500 +v 0.000000 0.156251 -3.687500 +v 0.154680 0.220321 -3.687500 +v 0.218750 0.375001 -3.687500 +v 0.154680 0.529681 -3.687500 +v -0.132583 0.507583 -3.812500 +v -0.187500 0.375001 -4.062500 +v -0.187500 0.375001 -3.812500 +v -0.132583 0.242418 -3.812500 +v 0.000000 0.187501 -3.812500 +v 0.132582 0.242418 -3.812500 +v 0.187500 0.375001 -3.812500 +v 0.132582 0.507583 -3.812500 +v -0.154680 0.529681 -3.812500 +v -0.132583 0.507583 -4.062500 +v -0.218750 0.375001 -3.812500 +v -0.154680 0.220321 -3.812500 +v 0.000000 0.156251 -3.812500 +v 0.154680 0.220321 -3.812500 +v 0.218750 0.375001 -3.812500 +v 0.154680 0.529681 -3.812500 +v 0.132582 0.242418 -4.062500 +v 0.187500 0.375001 -4.062500 +v 0.132582 0.507583 -4.062500 +v -0.154680 0.529681 -4.062500 +v -0.218750 0.375001 -4.062500 +v -0.154680 0.220321 -4.062500 +v 0.000000 0.156251 -4.062500 +v 0.154680 0.220321 -4.062500 +v 0.218750 0.375001 -4.062500 +v 0.154680 0.529681 -4.062500 +v -0.132583 0.507583 -4.187500 +v -0.187500 0.375001 -4.187500 +v -0.132583 0.242418 -4.187500 +v 0.000000 0.187501 -4.187500 +v 0.132582 0.242418 -4.187500 +v 0.187500 0.375001 -4.187500 +v 0.132582 0.507583 -4.187500 +v -0.154680 0.529681 -4.187500 +v -0.218750 0.375001 -4.187500 +v -0.154680 0.220321 -4.187500 +v 0.000000 0.156251 -4.187500 +v 0.154680 0.220321 -4.187500 +v 0.218750 0.375001 -4.187500 +v 0.154680 0.529681 -4.187500 +vt 0.000000 0.469697 +vt 0.008333 0.474747 +vt 0.008333 0.469697 +vt 0.041667 0.505050 +vt 0.050000 0.500000 +vt 0.041667 0.500000 +vt 0.033333 0.505050 +vt 0.033333 0.500000 +vt 0.025000 0.505050 +vt 0.025000 0.500000 +vt 0.016667 0.500000 +vt 0.008333 0.500000 +vt 0.016667 0.505050 +vt -0.000000 0.500000 +vt 0.008333 0.505050 +vt 0.016667 0.474747 +vt 0.016667 0.469697 +vt 0.050000 0.500000 +vt 0.041667 0.494949 +vt 0.041667 0.500000 +vt 0.033333 0.494949 +vt 0.033333 0.500000 +vt 0.033333 0.474747 +vt 0.029167 0.494949 +vt 0.008333 0.500000 +vt 0.016667 0.494949 +vt 0.008333 0.494949 +vt 0.000000 0.500000 +vt -0.000000 0.494949 +vt 0.020833 0.474747 +vt 0.041667 0.469697 +vt 0.033333 0.469697 +vt 0.041667 0.474747 +vt 0.050000 0.469697 +vt 0.004167 0.505050 +vt 0.000000 0.505050 +vt 0.050000 0.494949 +vt 0.045833 0.505050 +vt 0.050000 0.505050 +vt 0.050000 0.469697 +vt 0.041667 0.464646 +vt 0.041667 0.469697 +vt 0.033333 0.464646 +vt 0.033333 0.469697 +vt 0.025000 0.464646 +vt 0.025000 0.469697 +vt 0.016667 0.469697 +vt 0.016667 0.464646 +vt 0.008333 0.469697 +vt 0.008333 0.464646 +vt 0.000000 0.469697 +vt 0.000000 0.464646 +vt 0.004167 0.474747 +vt -0.000000 0.474747 +vt 0.050000 0.464646 +vt 0.045833 0.474747 +vt 0.050000 0.474747 +vt 0.029167 0.474747 +vt 0.016667 0.500000 +vt 0.020833 0.494949 +vt 0.004167 0.494949 +vt 0.045833 0.494949 +vt 0.004167 0.464646 +vt 0.045833 0.464646 +vt 0.025000 0.494949 +vt 0.033333 0.474747 +vt 0.033333 0.494949 +vt 0.016667 0.494949 +vt 0.025000 0.474747 +vt 0.033333 0.505050 +vt 0.041667 0.494949 +vt 0.041667 0.505050 +vt 0.025000 0.505050 +vt 0.025000 0.494949 +vt 0.016667 0.505050 +vt 0.008333 0.505050 +vt 0.000000 0.505050 +vt 0.008333 0.494949 +vt 0.050000 0.494949 +vt 0.050000 0.505050 +vt 0.041667 0.464646 +vt 0.041667 0.474747 +vt 0.033333 0.464646 +vt 0.025000 0.474747 +vt 0.016667 0.474747 +vt 0.025000 0.464646 +vt 0.008333 0.474747 +vt 0.016667 0.464646 +vt 0.000000 0.474747 +vt 0.008333 0.464646 +vt 0.050000 0.464646 +vt 0.050000 0.474747 +vt 0.000000 0.494949 +vt 0.000000 0.464646 +vn -0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.0000 1.0000 0.0000 +vn 0.6037 0.7972 0.0000 +vn -0.6037 0.7972 0.0000 +vn 1.0000 -0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.6037 -0.7972 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.6037 -0.7972 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +s off +f 222/352/35 233/353/35 214/354/35 +f 211/355/35 204/356/35 203/357/35 +f 210/358/35 203/357/35 202/359/35 +f 209/360/35 202/359/35 201/361/35 +f 200/362/35 209/360/35 201/361/35 +f 199/363/35 208/364/35 200/362/35 +f 197/365/35 207/366/35 199/363/35 +f 214/354/35 234/367/35 205/368/35 +f 220/369/36 227/370/36 219/371/36 +f 219/371/36 226/372/36 218/373/36 +f 236/374/37 218/375/37 226/372/37 +f 215/376/36 224/377/36 223/378/36 +f 213/379/36 223/378/36 221/380/36 +f 224/377/38 205/381/38 234/367/38 +f 236/374/35 230/382/35 229/383/35 +f 237/384/35 231/385/35 230/382/35 +f 197/386/37 221/380/37 206/387/37 +f 228/388/38 204/389/38 212/390/38 +f 245/391/36 251/392/36 244/393/36 +f 244/393/36 250/394/36 243/395/36 +f 243/395/36 249/396/36 242/397/36 +f 241/398/36 249/396/36 248/399/36 +f 240/400/36 248/399/36 247/401/36 +f 239/402/36 247/401/36 246/403/36 +f 222/404/37 246/403/37 232/405/37 +f 252/406/38 231/407/38 238/408/38 +f 222/352/35 232/405/35 233/353/35 +f 211/355/35 212/390/35 204/356/35 +f 210/358/35 211/355/35 203/357/35 +f 209/360/35 210/358/35 202/359/35 +f 200/362/35 208/364/35 209/360/35 +f 199/363/35 207/366/35 208/364/35 +f 197/365/35 206/387/35 207/366/35 +f 214/354/35 233/353/35 234/367/35 +f 220/369/36 228/388/36 227/370/36 +f 219/371/36 227/370/36 226/372/36 +f 236/374/37 229/409/37 218/375/37 +f 215/376/36 216/410/36 224/377/36 +f 213/379/36 215/376/36 223/378/36 +f 224/377/38 216/411/38 205/381/38 +f 236/374/35 237/384/35 230/382/35 +f 237/384/35 238/408/35 231/385/35 +f 197/386/37 213/412/37 221/380/37 +f 228/388/38 220/413/38 204/389/38 +f 245/391/36 252/406/36 251/392/36 +f 244/393/36 251/392/36 250/394/36 +f 243/395/36 250/394/36 249/396/36 +f 241/398/36 242/397/36 249/396/36 +f 240/400/36 241/398/36 248/399/36 +f 239/402/36 240/400/36 247/401/36 +f 222/404/37 239/414/37 246/403/37 +f 252/406/38 245/415/38 231/407/38 +s 1 +f 217/416/39 205/417/40 216/418/40 +f 218/419/41 198/420/39 217/416/39 +f 200/421/37 215/422/42 199/423/42 +f 207/366/43 224/377/44 208/364/45 +f 201/424/39 216/418/40 200/421/37 +f 208/364/45 225/425/46 209/360/46 +f 202/426/38 217/416/39 201/424/39 +f 209/360/46 226/372/47 210/358/48 +f 203/427/43 218/419/41 202/426/38 +f 210/358/48 227/370/42 211/355/42 +f 204/428/49 219/429/43 203/427/43 +f 211/355/42 228/388/50 212/390/50 +f 199/423/42 213/430/51 197/431/51 +f 206/387/52 223/378/43 207/366/43 +f 205/417/40 240/432/42 214/433/42 +f 233/353/43 248/399/45 234/367/44 +f 198/420/39 241/434/37 205/417/40 +f 234/367/44 249/396/46 235/435/46 +f 229/436/41 242/437/39 198/420/39 +f 235/435/46 250/394/48 236/374/47 +f 230/438/43 243/439/38 229/436/41 +f 236/374/47 251/392/42 237/384/42 +f 231/440/49 244/441/43 230/438/43 +f 237/384/42 252/406/50 238/408/50 +f 214/433/42 239/442/51 222/443/51 +f 232/405/52 247/401/43 233/353/43 +f 236/374/47 225/425/46 235/435/46 +f 235/435/46 224/377/44 234/367/44 +f 217/416/39 198/420/39 205/417/40 +f 218/419/41 229/436/41 198/420/39 +f 200/421/37 216/418/40 215/422/42 +f 207/366/43 223/378/43 224/377/44 +f 201/424/39 217/416/39 216/418/40 +f 208/364/45 224/377/44 225/425/46 +f 202/426/38 218/419/41 217/416/39 +f 209/360/46 225/425/46 226/372/47 +f 203/427/43 219/429/43 218/419/41 +f 210/358/48 226/372/47 227/370/42 +f 204/428/49 220/444/49 219/429/43 +f 211/355/42 227/370/42 228/388/50 +f 199/423/42 215/422/42 213/430/51 +f 206/387/52 221/380/52 223/378/43 +f 205/417/40 241/434/37 240/432/42 +f 233/353/43 247/401/43 248/399/45 +f 198/420/39 242/437/39 241/434/37 +f 234/367/44 248/399/45 249/396/46 +f 229/436/41 243/439/38 242/437/39 +f 235/435/46 249/396/46 250/394/48 +f 230/438/43 244/441/43 243/439/38 +f 236/374/47 250/394/48 251/392/42 +f 231/440/49 245/445/49 244/441/43 +f 237/384/42 251/392/42 252/406/50 +f 214/433/42 240/432/42 239/442/51 +f 232/405/52 246/403/52 247/401/43 +f 236/374/47 226/372/47 225/425/46 +f 235/435/46 225/425/46 224/377/44 +o Magazine +v 0.875000 -0.062500 -3.250000 +v 0.875000 -0.062500 -4.750000 +v -1.375000 -1.812500 -3.250000 +v -1.375000 -1.812500 -4.750000 +v 1.375000 -0.562500 -3.250000 +v 1.375000 -0.562500 -4.750000 +v 1.375000 -1.812500 -3.250000 +v 1.375000 -1.812500 -4.750000 +v -1.000000 -2.062500 -3.250000 +v -1.000000 -2.062500 -4.750000 +v 1.000000 -2.062500 -3.250000 +v 1.000000 -2.062500 -4.750000 +v -0.375000 -0.062500 -3.250000 +v -0.375000 -0.062500 -4.750000 +v -0.375000 -0.562500 -3.250000 +v -0.375000 -0.562500 -4.750000 +v 0.375000 -0.562500 -3.250000 +v 0.375000 -0.562500 -4.750000 +v 0.375000 -0.062500 -3.250000 +v 0.375000 -0.062500 -4.750000 +v -1.000000 -0.062500 -3.250000 +v -1.375000 -0.312500 -3.250000 +v -1.375000 -0.312500 -4.750000 +v -1.000000 -0.062500 -4.750000 +v 0.437500 -0.062500 -3.312500 +v 0.437500 -0.062500 -4.687500 +v 1.312500 -0.500000 -3.312500 +v 1.312500 -0.500000 -4.687500 +v 0.875000 -0.062500 -3.312500 +v 0.875000 -0.062500 -4.687500 +v 0.437500 -1.062500 -3.312500 +v 0.437500 -1.062500 -4.687500 +v 1.312500 -1.062500 -3.312500 +v 1.312500 -1.062500 -4.687500 +vt 0.100000 0.828283 +vt 0.095833 0.712121 +vt 0.100000 0.707071 +vt 0.533333 0.707071 +vt 0.566667 0.828283 +vt 0.533333 0.828283 +vt 0.566667 0.707071 +vt 0.616667 0.828283 +vt 0.000000 0.707071 +vt 0.033333 0.828283 +vt 0.000000 0.828283 +vt 0.033333 0.707071 +vt 0.037500 0.823232 +vt 0.341667 0.989899 +vt 0.300000 0.989899 +vt 0.300000 0.949495 +vt 0.208333 0.707071 +vt 0.250000 0.585859 +vt 0.300000 0.585859 +vt 0.066667 0.828283 +vt 0.095833 0.823232 +vt 0.066667 0.823232 +vt 0.066667 0.707071 +vt 0.066667 0.712121 +vt 0.037500 0.712121 +vt 0.750000 0.489899 +vt 0.841667 0.409091 +vt 0.841667 0.489899 +vt 0.750000 0.409091 +vt 0.841667 0.338384 +vt 0.750000 0.292929 +vt 0.841667 0.292929 +vt 0.683333 0.409091 +vt 0.683333 0.373737 +vt 0.879167 0.338384 +vt 0.616667 0.707071 +vt 0.250000 0.989899 +vt 0.216667 0.989899 +vt 0.250000 0.949495 +vt 0.183333 0.949495 +vt 0.183333 0.848485 +vt 0.208333 0.828283 +vt 0.341667 0.828283 +vt 0.366667 0.848485 +vt 0.366667 0.969697 +vt 0.183333 0.585859 +vt 0.216667 0.545455 +vt 0.250000 0.545455 +vt 0.183333 0.686869 +vt 0.366667 0.686869 +vt 0.341667 0.707071 +vt 0.341667 0.545455 +vt 0.366667 0.565657 +vt 0.300000 0.545455 +vt 0.750000 0.338384 +vt 0.712500 0.338384 +vt 0.908333 0.373737 +vt 0.908333 0.409091 +vt 0.183333 0.828283 +vt 0.183333 0.707071 +vt 0.366667 0.707071 +vt 0.366667 0.828283 +vt 0.466667 0.707071 +vt 0.466667 0.828283 +vt 0.491667 0.828283 +vt 0.491667 0.707071 +vn 0.7071 0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8817 -0.4719 0.0000 +vn 0.2898 -0.9571 0.0000 +vn -0.2898 -0.9571 0.0000 +vn -0.8817 -0.4719 0.0000 +vn -0.8817 0.4719 0.0000 +vn -0.2898 0.9571 0.0000 +s off +f 258/446/53 279/447/53 257/448/53 +f 265/449/54 268/450/54 266/451/54 +f 267/452/55 270/453/55 268/450/55 +f 269/454/56 272/455/56 270/456/56 +f 271/457/55 278/458/55 272/455/55 +f 276/459/57 266/460/57 268/461/57 +f 263/462/58 269/463/58 267/464/58 +f 254/465/53 280/466/53 258/446/53 +f 254/465/55 278/458/55 282/467/55 +f 253/468/53 279/447/53 281/469/53 +f 253/468/55 277/470/55 271/457/55 +f 277/471/54 284/472/54 278/473/54 +f 283/474/55 286/475/55 284/472/55 +f 286/475/56 279/476/56 280/477/56 +f 283/474/57 277/478/57 281/479/57 +f 284/472/58 286/475/58 280/480/58 +f 258/446/53 280/466/53 279/447/53 +f 265/449/54 267/452/54 268/450/54 +f 267/452/55 269/481/55 270/453/55 +f 269/454/56 271/457/56 272/455/56 +f 271/457/55 277/470/55 278/458/55 +f 272/482/57 254/483/57 270/484/57 +f 254/483/57 258/485/57 270/484/57 +f 258/485/57 260/486/57 270/484/57 +f 260/486/57 264/487/57 270/484/57 +f 264/487/57 262/488/57 270/484/57 +f 262/488/57 256/489/57 268/461/57 +f 270/484/57 262/488/57 268/461/57 +f 256/489/57 275/490/57 268/461/57 +f 275/490/57 276/459/57 268/461/57 +f 257/491/58 253/492/58 269/463/58 +f 253/492/58 271/493/58 269/463/58 +f 263/462/58 259/494/58 269/463/58 +f 259/494/58 257/491/58 269/463/58 +f 255/495/58 261/496/58 267/464/58 +f 261/496/58 263/462/58 267/464/58 +f 273/497/58 274/498/58 267/464/58 +f 274/498/58 255/495/58 267/464/58 +f 267/464/58 265/499/58 273/497/58 +f 254/465/53 282/467/53 280/466/53 +f 254/465/55 272/455/55 278/458/55 +f 253/468/53 257/448/53 279/447/53 +f 253/468/55 281/469/55 277/470/55 +f 277/471/54 283/474/54 284/472/54 +f 283/474/55 285/500/55 286/475/55 +f 286/475/56 285/500/56 279/476/56 +f 281/479/57 279/501/57 283/474/57 +f 279/501/57 285/500/57 283/474/57 +f 280/480/58 282/502/58 284/472/58 +f 282/502/58 278/503/58 284/472/58 +s 1 +f 257/448/54 260/504/59 258/446/54 +f 264/487/60 261/496/61 262/488/61 +f 259/505/59 264/487/60 260/504/59 +f 262/488/61 255/506/62 256/507/62 +f 256/507/62 274/508/63 275/509/63 +f 276/510/64 274/508/63 273/511/64 +f 273/511/64 266/451/55 276/510/64 +f 257/448/54 259/505/59 260/504/59 +f 264/487/60 263/462/60 261/496/61 +f 259/505/59 263/462/60 264/487/60 +f 262/488/61 261/496/61 255/506/62 +f 256/507/62 255/506/62 274/508/63 +f 276/510/64 275/509/63 274/508/63 +f 273/511/64 265/449/55 266/451/55 +o Hood +v -0.312500 0.437500 -3.000000 +v 0.312500 0.437500 -3.000000 +v -0.312500 0.349112 -2.963388 +v 0.312500 0.349112 -2.963388 +v -0.312500 0.312500 -2.875000 +v 0.312500 0.312500 -2.875000 +v -0.312500 0.349112 -2.786612 +v 0.312500 0.349112 -2.786612 +v -0.312500 0.437500 -2.750000 +v 0.312500 0.437500 -2.750000 +v -0.312500 0.525888 -2.786612 +v 0.312500 0.525888 -2.786612 +v -0.312500 0.562500 -2.875000 +v 0.312500 0.562500 -2.875000 +v -0.312500 0.525888 -2.963388 +v 0.312500 0.525888 -2.963388 +v -0.312500 0.437500 -2.875000 +v 0.312500 0.437500 -2.875000 +v -0.312500 0.812500 -2.875000 +v 0.312500 0.812500 -2.875000 +v -0.312500 1.062500 -3.937500 +v 0.312500 1.062500 -3.937500 +v -0.312500 1.062500 -5.500000 +v 0.312500 1.062500 -5.500000 +v -0.500000 0.875000 -3.250000 +v 0.500000 0.875000 -3.250000 +v -0.500000 0.875000 -4.500000 +v 0.500000 0.875000 -4.500000 +v -0.500000 0.750000 -4.375000 +v -0.500000 0.750000 -3.375000 +v 0.500000 0.750000 -3.375000 +v 0.500000 0.750000 -4.375000 +v -0.500000 0.375000 -3.250000 +v 0.500000 0.375000 -3.250000 +v -0.500000 0.375000 -3.375000 +v 0.500000 0.375000 -3.375000 +v -0.312500 0.562500 -3.000000 +v 0.312500 0.562500 -3.000000 +v -0.312500 0.562500 -3.250000 +v 0.312500 0.562500 -3.250000 +v -0.312500 0.875000 -3.250000 +v 0.312500 0.875000 -3.250000 +v -0.500000 0.625000 -4.375000 +v 0.500000 0.625000 -4.375000 +v -0.500000 0.625000 -4.875000 +v 0.500000 0.625000 -4.875000 +v -0.500000 0.687500 -4.500000 +v 0.500000 0.687500 -4.500000 +v -0.500000 0.687500 -4.937500 +v 0.500000 0.687500 -4.937500 +v -0.500000 0.437500 -4.875000 +v 0.500000 0.437500 -4.875000 +v -0.500000 0.437500 -4.937500 +v 0.500000 0.437500 -4.937500 +v -0.312500 0.312500 -5.500000 +v 0.312500 0.312500 -5.500000 +v 0.312500 0.875000 -4.500000 +v 0.312500 0.687500 -4.500000 +v 0.312500 0.687500 -4.937500 +v 0.312500 0.437500 -4.937500 +v 0.312500 0.312500 -5.000000 +v 0.312500 0.437500 -5.000000 +v -0.312500 0.875000 -4.500000 +v -0.312500 0.687500 -4.500000 +v -0.312500 0.687500 -4.937500 +v -0.312500 0.437500 -4.937500 +v -0.312500 0.312500 -5.000000 +v -0.312500 0.437500 -5.000000 +v 0.125000 0.750000 -3.375000 +v 0.125000 0.750000 -4.375000 +v 0.125000 0.625000 -3.375000 +v 0.125000 0.625000 -4.375000 +v -0.125000 0.625000 -3.375000 +v -0.125000 0.625000 -4.375000 +v -0.125000 0.750000 -3.375000 +v -0.125000 0.750000 -4.375000 +vt 0.658552 0.762626 +vt 0.660928 0.755671 +vt 0.666667 0.752790 +vt 0.666808 0.752259 +vt 0.661030 0.749500 +vt 0.672304 0.735349 +vt 0.391667 0.888889 +vt 0.416667 0.939394 +vt 0.391667 0.939394 +vt 0.500000 0.585859 +vt 0.583333 0.666667 +vt 0.500000 0.666667 +vt 0.366667 0.666667 +vt 0.433333 0.585859 +vt 0.433333 0.666667 +vt 0.575000 0.575758 +vt 0.583333 0.585859 +vt 0.508333 0.676768 +vt 0.700000 0.666667 +vt 0.691667 0.585859 +vt 0.700000 0.585859 +vt 0.500000 0.707071 +vt 0.458333 0.666667 +vt 0.466667 0.585859 +vt 0.508333 0.575758 +vt 0.500000 0.545455 +vt 0.508333 0.545455 +vt 0.466667 0.666667 +vt 0.458333 0.585859 +vt 0.383333 0.888889 +vt 0.383333 0.939394 +vt 0.366667 0.888889 +vt 0.425000 0.848485 +vt 0.441667 0.848485 +vt 0.441667 0.873737 +vt 0.691667 0.666667 +vt 0.658333 0.585859 +vt 0.595833 0.666667 +vt 0.595833 0.585859 +vt 0.625000 0.666667 +vt 0.625000 0.585859 +vt 0.641667 0.666667 +vt 0.658333 0.666667 +vt 0.645833 0.585859 +vt 0.583333 0.681818 +vt 0.575000 0.676768 +vt 0.608333 0.686869 +vt 0.575000 0.686869 +vt 0.612500 0.702020 +vt 0.612500 0.681818 +vt 0.583333 0.570707 +vt 0.608333 0.565657 +vt 0.575000 0.565657 +vt 0.612500 0.550505 +vt 0.612500 0.570707 +vt 0.645833 0.666667 +vt 0.591667 0.888889 +vt 0.641667 0.939394 +vt 0.591667 0.939394 +vt 0.554167 0.858586 +vt 0.554167 0.838384 +vt 0.558333 0.838384 +vt 0.525000 0.873737 +vt 0.487500 0.888889 +vt 0.558333 0.989899 +vt 0.554167 0.969697 +vt 0.591667 1.000000 +vt 0.525000 0.954545 +vt 0.487500 0.939394 +vt 0.441667 0.954545 +vt 0.441667 0.979798 +vt 0.425000 0.979798 +vt 0.366667 0.707071 +vt 0.433333 0.696970 +vt 0.433333 0.707071 +vt 0.366667 0.696970 +vt 0.433333 0.676768 +vt 0.366667 0.676768 +vt 0.433333 0.666667 +vt 0.641667 0.888889 +vt 0.675000 0.939394 +vt 0.683333 0.888889 +vt 0.675000 0.888889 +vt 0.687500 0.888889 +vt 0.683333 0.939394 +vt 0.672405 0.755671 +vt 0.674782 0.762626 +vt 0.672405 0.769582 +vt 0.666667 0.772463 +vt 0.660928 0.769582 +vt 0.658553 0.742596 +vt 0.660829 0.735591 +vt 0.666525 0.732589 +vt 0.674780 0.742253 +vt 0.672504 0.749257 +vt 0.416667 0.888889 +vt 0.366667 0.585859 +vt 0.508333 0.707071 +vt 0.366667 0.939394 +vt 0.416667 0.868687 +vt 0.416667 0.838384 +vt 0.641667 0.585859 +vt 0.608333 0.702020 +vt 0.608333 0.550505 +vt 0.558333 0.828283 +vt 0.591667 0.828283 +vt 0.525000 0.858586 +vt 0.558333 1.000000 +vt 0.554167 0.989899 +vt 0.525000 0.969697 +vt 0.416667 0.959596 +vt 0.416667 0.989899 +vt 0.366667 0.666667 +vt 0.687500 0.939394 +vt 0.658333 0.792929 +vt 0.616667 0.803030 +vt 0.616667 0.792929 +vt 0.658333 0.803030 +vt 0.616667 0.813131 +vt 0.658333 0.732323 +vt 0.616667 0.742424 +vt 0.616667 0.732323 +vt 0.658333 0.742424 +vt 0.616667 0.752525 +vt 0.658333 0.752525 +vt 0.616667 0.762626 +vt 0.658333 0.772727 +vt 0.616667 0.772727 +vt 0.616667 0.782828 +vt 0.658333 0.782828 +vt 0.658333 0.813131 +vt 0.658333 0.762626 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9734 0.2290 +vn 0.0000 0.9933 0.1153 +s off +f 296/512/65 294/513/65 292/514/65 +f 299/515/66 301/516/66 293/517/66 +f 304/518/67 305/519/67 303/520/67 +f 312/521/68 313/522/68 311/523/68 +f 315/524/69 317/525/69 316/526/69 +f 312/521/65 318/527/65 314/528/65 +f 313/522/66 316/529/66 311/523/66 +f 315/530/67 330/531/67 318/532/67 +f 316/529/66 319/533/66 311/523/66 +f 317/525/70 321/534/70 316/526/70 +f 311/523/67 320/535/67 312/521/67 +f 317/536/65 320/537/65 322/538/65 +f 319/539/69 322/540/69 320/535/69 +f 303/520/71 324/541/71 304/518/71 +f 323/542/69 326/543/69 324/541/69 +f 324/544/65 326/545/65 328/546/65 +f 329/547/69 332/548/69 330/531/69 +f 314/528/70 333/549/70 313/522/70 +f 334/550/68 335/551/68 333/549/68 +f 336/552/70 339/553/70 335/551/70 +f 331/554/67 338/555/67 332/548/67 +f 333/556/66 315/557/66 313/522/66 +f 333/556/66 331/558/66 329/559/66 +f 339/560/66 331/558/66 335/561/66 +f 318/527/65 334/562/65 314/528/65 +f 332/563/65 334/562/65 330/564/65 +f 332/563/65 340/565/65 336/566/65 +f 339/553/69 338/555/69 337/567/69 +f 310/568/70 341/569/70 309/570/70 +f 345/571/65 346/572/65 348/573/65 +f 310/568/65 343/574/65 345/571/65 +f 308/575/65 328/546/65 343/574/65 +f 354/576/66 351/577/66 341/578/66 +f 349/579/66 307/580/66 309/570/66 +f 327/581/66 307/580/66 349/579/66 +f 327/581/66 325/582/66 323/583/66 +f 355/584/65 358/585/65 356/586/65 +f 357/587/69 360/588/69 358/585/69 +f 359/589/66 362/590/66 360/588/66 +f 342/591/69 353/592/69 341/569/69 +f 348/593/67 353/592/67 347/594/67 +f 346/595/69 354/596/69 348/593/69 +f 292/514/65 290/597/65 288/598/65 +f 288/598/65 302/599/65 292/514/65 +f 302/599/65 300/600/65 292/514/65 +f 300/600/65 298/601/65 292/514/65 +f 298/601/65 296/512/65 292/514/65 +f 301/516/66 287/602/66 289/603/66 +f 289/603/66 291/604/66 301/516/66 +f 291/604/66 293/517/66 301/516/66 +f 293/517/66 295/605/66 297/606/66 +f 297/606/66 299/515/66 293/517/66 +f 304/518/67 306/607/67 305/519/67 +f 312/521/68 314/528/68 313/522/68 +f 315/524/69 318/608/69 317/525/69 +f 312/521/65 317/536/65 318/527/65 +f 313/522/66 315/557/66 316/529/66 +f 315/530/67 329/547/67 330/531/67 +f 316/529/66 321/609/66 319/533/66 +f 317/525/70 322/540/70 321/534/70 +f 311/523/67 319/539/67 320/535/67 +f 317/536/65 312/521/65 320/537/65 +f 319/539/69 321/534/69 322/540/69 +f 303/520/71 323/542/71 324/541/71 +f 323/542/69 325/610/69 326/543/69 +f 328/546/65 306/611/65 324/544/65 +f 306/611/65 304/612/65 324/544/65 +f 329/547/69 331/554/69 332/548/69 +f 314/528/70 334/550/70 333/549/70 +f 334/550/68 336/552/68 335/551/68 +f 336/552/70 340/613/70 339/553/70 +f 331/554/67 337/567/67 338/555/67 +f 333/556/66 329/559/66 315/557/66 +f 333/556/66 335/561/66 331/558/66 +f 339/560/66 337/614/66 331/558/66 +f 318/527/65 330/564/65 334/562/65 +f 332/563/65 336/566/65 334/562/65 +f 332/563/65 338/615/65 340/565/65 +f 339/553/69 340/613/69 338/555/69 +f 310/568/70 342/591/70 341/569/70 +f 347/616/65 342/617/65 348/573/65 +f 342/617/65 310/568/65 345/571/65 +f 348/573/65 342/617/65 345/571/65 +f 310/568/65 308/575/65 343/574/65 +f 343/574/65 344/618/65 345/571/65 +f 308/575/65 306/611/65 328/546/65 +f 341/578/66 353/619/66 354/576/66 +f 354/576/66 352/620/66 351/577/66 +f 351/577/66 309/570/66 341/578/66 +f 309/570/66 351/577/66 349/579/66 +f 351/577/66 350/621/66 349/579/66 +f 327/581/66 305/622/66 307/580/66 +f 303/623/66 305/622/66 323/583/66 +f 305/622/66 327/581/66 323/583/66 +f 355/584/65 357/587/65 358/585/65 +f 357/587/69 359/589/69 360/588/69 +f 359/589/66 361/624/66 362/590/66 +f 342/591/69 347/594/69 353/592/69 +f 348/593/67 354/596/67 353/592/67 +f 346/595/69 352/625/69 354/596/69 +s 1 +f 288/626/70 289/627/71 287/628/70 +f 290/629/71 291/630/69 289/627/71 +f 292/631/69 293/632/72 291/633/69 +f 294/634/72 295/635/67 293/632/72 +f 296/636/67 297/637/73 295/635/67 +f 297/637/73 300/638/68 299/639/68 +f 300/638/68 301/640/74 299/639/68 +f 302/641/74 287/628/70 301/640/74 +f 306/607/75 307/580/76 305/519/75 +f 308/575/76 309/570/68 307/580/76 +f 288/626/70 290/629/71 289/627/71 +f 290/629/71 292/642/69 291/630/69 +f 292/631/69 294/634/72 293/632/72 +f 294/634/72 296/636/67 295/635/67 +f 296/636/67 298/643/73 297/637/73 +f 297/637/73 298/643/73 300/638/68 +f 300/638/68 302/641/74 301/640/74 +f 302/641/74 288/626/70 287/628/70 +f 306/607/75 308/575/76 307/580/76 +f 308/575/76 310/568/68 309/570/68 +o RecoilSpring +v 0.000000 -0.875000 1.812500 +v -0.176777 -0.948223 1.812500 +v -0.250000 -1.125000 1.812500 +v -0.176777 -1.301777 1.812500 +v 0.000000 -1.375000 1.812500 +v 0.176777 -1.301777 1.812500 +v 0.250000 -1.125000 1.812500 +v 0.176777 -0.948223 1.812500 +v -0.176777 -0.948223 -0.375000 +v 0.000000 -0.875000 -0.375000 +v -0.250000 -1.125000 -0.375000 +v -0.176777 -1.301777 -0.375000 +v 0.000000 -1.375000 -0.375000 +v 0.176777 -1.301777 -0.375000 +v 0.250000 -1.125000 -0.375000 +v 0.176777 -0.948223 -0.375000 +v 0.000000 -0.875000 1.812500 +v -0.176777 -0.948223 1.812500 +v -0.250000 -1.125000 1.812500 +v -0.176777 -1.301777 1.812500 +v 0.000000 -1.375000 1.812500 +v 0.176777 -1.301777 1.812500 +v 0.250000 -1.125000 1.812500 +v 0.176777 -0.948223 1.812500 +v -0.176777 -0.948223 -0.375000 +v 0.000000 -0.875000 -0.375000 +v -0.250000 -1.125000 -0.375000 +v -0.176777 -1.301777 -0.375000 +v 0.000000 -1.375000 -0.375000 +v 0.176777 -1.301777 -0.375000 +v 0.250000 -1.125000 -0.375000 +v 0.176777 -0.948223 -0.375000 +vt 0.160417 0.368687 +vt 0.016667 0.383838 +vt 0.014583 0.368687 +vt 0.156250 0.338384 +vt 0.012500 0.353535 +vt 0.010417 0.338384 +vt 0.150000 0.292929 +vt 0.006250 0.308081 +vt 0.004167 0.292929 +vt 0.145833 0.262626 +vt 0.002083 0.277778 +vt 0.000000 0.262626 +vt 0.158333 0.353535 +vt 0.154167 0.323232 +vt 0.008333 0.323232 +vt 0.152083 0.308081 +vt 0.147917 0.277778 +vt 0.016667 0.383838 +vt 0.160417 0.368687 +vt 0.014583 0.368687 +vt 0.012500 0.353535 +vt 0.156250 0.338384 +vt 0.010417 0.338384 +vt 0.006250 0.308081 +vt 0.150000 0.292929 +vt 0.004167 0.292929 +vt 0.002083 0.277778 +vt 0.145833 0.262626 +vt 0.000000 0.262626 +vt 0.158333 0.353535 +vt 0.154167 0.323232 +vt 0.008333 0.323232 +vt 0.152083 0.308081 +vt 0.147917 0.277778 +vt 0.162500 0.383838 +vt 0.162500 0.383838 +vn -0.7071 -0.7071 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 374/644/77 367/645/78 366/646/77 +f 371/647/79 365/648/80 364/649/79 +f 377/650/81 370/651/82 369/652/81 +f 375/653/78 368/654/83 367/655/78 +f 373/656/80 366/646/77 365/648/80 +f 372/657/84 364/649/79 363/658/84 +f 378/659/82 363/658/84 370/651/82 +f 376/660/83 369/652/81 368/654/83 +f 383/661/84 390/662/82 382/663/82 +f 381/664/81 387/665/83 380/666/83 +f 386/667/77 393/668/80 385/669/80 +f 384/670/79 391/671/84 383/672/84 +f 382/663/82 389/673/81 381/664/81 +f 380/666/83 388/674/78 379/675/78 +f 379/675/78 394/676/77 386/667/77 +f 385/669/80 392/677/79 384/670/79 +f 374/644/77 375/678/78 367/645/78 +f 371/647/79 373/656/80 365/648/80 +f 377/650/81 378/659/82 370/651/82 +f 375/653/78 376/660/83 368/654/83 +f 373/656/80 374/644/77 366/646/77 +f 372/657/84 371/647/79 364/649/79 +f 378/659/82 372/657/84 363/658/84 +f 376/660/83 377/650/81 369/652/81 +f 383/661/84 391/679/84 390/662/82 +f 381/664/81 389/673/81 387/665/83 +f 386/667/77 394/676/77 393/668/80 +f 384/670/79 392/677/79 391/671/84 +f 382/663/82 390/662/82 389/673/81 +f 380/666/83 387/665/83 388/674/78 +f 379/675/78 388/674/78 394/676/77 +f 385/669/80 393/668/80 392/677/79 +o Lever +v 0.250000 0.406250 -6.983253 +v 0.250000 0.501102 -6.995741 +v 0.250000 0.577003 -6.937500 +v 0.250000 0.589491 -6.842648 +v 0.250000 0.531250 -6.766747 +v 0.250000 0.436398 -6.754259 +v 0.250000 0.360497 -6.812500 +v 0.250000 0.348009 -6.907352 +v 0.750000 0.406250 -6.983253 +v 0.750000 0.501102 -6.995741 +v 0.750000 0.577003 -6.937500 +v 0.750000 0.589491 -6.842648 +v 0.750000 0.531250 -6.766747 +v 0.750000 0.436398 -6.754259 +v 0.750000 0.360497 -6.812500 +v 0.750000 0.348009 -6.907352 +v 0.625000 0.445312 -6.915595 +v 0.625000 1.094831 -7.290595 +v 0.665595 0.457031 -6.895298 +v 0.665595 1.106550 -7.270298 +v 0.665595 0.480469 -6.854702 +v 0.665595 1.129988 -7.229702 +v 0.625000 0.492188 -6.834405 +v 0.625000 1.141706 -7.209405 +v 0.584405 0.480469 -6.854702 +v 0.584405 1.129988 -7.229702 +v 0.584405 0.457031 -6.895298 +v 0.584405 1.106550 -7.270298 +vt 0.033480 0.575758 +vt 0.041667 0.565834 +vt 0.049854 0.575758 +vt 0.057696 0.583278 +vt 0.054167 0.585748 +vt 0.050637 0.583278 +vt 0.933013 0.750000 +vt 0.500000 0.000000 +vt 0.066987 0.750000 +vt 0.047456 0.582775 +vt 0.041667 0.585681 +vt 0.035878 0.582775 +vt 0.035878 0.568740 +vt 0.047456 0.568740 +vt 0.050637 0.578338 +vt 0.054167 0.575868 +vt 0.057696 0.578338 +vt 0.500000 1.000000 +vt 0.933013 0.250000 +vt 0.066987 0.250000 +vt -0.000000 0.606061 +vt 0.033333 0.616162 +vt -0.000000 0.616162 +vt -0.000000 0.636364 +vt 0.033333 0.646465 +vt -0.000000 0.646465 +vt -0.000000 0.575758 +vt 0.033333 0.585859 +vt -0.000000 0.585859 +vt -0.000000 0.595960 +vt 0.033333 0.606061 +vt 0.033333 0.626263 +vt -0.000000 0.626263 +vt 0.033333 0.636364 +vt -0.000000 0.565657 +vt 0.033333 0.575758 +vt 0.033333 0.595960 +vt 0.045833 0.646465 +vt 0.041667 0.585859 +vt 0.045833 0.585859 +vt 0.041667 0.646465 +vt 0.037500 0.585859 +vt 0.033333 0.646465 +vt 0.033333 0.585859 +vt 0.058333 0.585859 +vt 0.054167 0.646465 +vt 0.054167 0.585859 +vt 0.050000 0.646465 +vt 0.050000 0.585859 +vt 0.033333 0.565657 +vt 0.037500 0.646465 +vt 0.058333 0.646465 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.9659 -0.2588 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.9659 0.2588 +vn 0.0000 -0.5000 -0.8660 +vn 0.8660 -0.2500 -0.4330 +vn 0.8660 0.2500 0.4330 +vn -0.8660 0.2500 0.4330 +vn -0.8660 -0.2500 -0.4330 +s off +f 407/680/85 409/681/85 403/682/85 +f 420/683/86 418/684/86 416/685/86 +f 413/686/87 417/687/87 421/688/87 +f 403/682/85 404/689/85 405/690/85 +f 405/690/85 406/691/85 407/680/85 +f 407/680/85 408/692/85 409/681/85 +f 409/681/85 410/693/85 403/682/85 +f 403/682/85 405/690/85 407/680/85 +f 416/685/86 414/694/86 412/695/86 +f 412/695/86 422/696/86 416/685/86 +f 422/696/86 420/683/86 416/685/86 +f 421/688/87 411/697/87 413/686/87 +f 413/686/87 415/698/87 417/687/87 +f 417/687/87 419/699/87 421/688/87 +s 1 +f 397/700/86 404/701/88 396/702/88 +f 402/703/89 409/704/87 401/705/87 +f 400/706/90 407/707/91 399/708/91 +f 398/709/92 405/710/86 397/700/86 +f 396/702/88 403/711/93 395/712/93 +f 395/712/93 410/713/89 402/703/89 +f 401/714/87 408/715/90 400/706/90 +f 399/708/91 406/716/92 398/709/92 +f 412/717/93 413/718/94 411/719/93 +f 414/720/94 415/721/95 413/718/94 +f 415/721/95 418/722/91 417/723/91 +f 417/724/91 420/725/96 419/726/96 +f 419/726/96 422/727/97 421/728/97 +f 421/728/97 412/717/93 411/719/93 +f 397/700/86 405/710/86 404/701/88 +f 402/703/89 410/713/89 409/704/87 +f 400/706/90 408/715/90 407/707/91 +f 398/709/92 406/716/92 405/710/86 +f 396/702/88 404/701/88 403/711/93 +f 395/712/93 403/711/93 410/713/89 +f 401/714/87 409/729/87 408/715/90 +f 399/708/91 407/707/91 406/716/92 +f 412/717/93 414/720/94 413/718/94 +f 414/720/94 416/730/95 415/721/95 +f 415/721/95 416/730/95 418/722/91 +f 417/724/91 418/731/91 420/725/96 +f 419/726/96 420/725/96 422/727/97 +f 421/728/97 422/727/97 412/717/93 +o LockSpring +v 0.000000 0.500000 -6.750000 +v -0.044194 0.481694 -6.750000 +v -0.062500 0.437500 -6.750000 +v -0.044194 0.393306 -6.750000 +v 0.000000 0.375000 -6.750000 +v 0.044194 0.393306 -6.750000 +v 0.062500 0.437500 -6.750000 +v 0.044194 0.481694 -6.750000 +v 0.000000 0.500000 -5.500000 +v -0.044194 0.481694 -5.500000 +v -0.062500 0.437500 -5.500000 +v -0.044194 0.393306 -5.500000 +v 0.000000 0.375000 -5.500000 +v 0.044194 0.393306 -5.500000 +v 0.062500 0.437500 -5.500000 +v 0.044194 0.481694 -5.500000 +v 0.000000 0.562500 -6.750000 +v -0.088388 0.525888 -6.750000 +v -0.125000 0.437500 -6.750000 +v -0.088388 0.349112 -6.750000 +v 0.000000 0.312500 -6.750000 +v 0.088388 0.349112 -6.750000 +v 0.125000 0.437500 -6.750000 +v 0.088388 0.525888 -6.750000 +v 0.000000 0.562500 -5.500000 +v -0.088388 0.525888 -5.500000 +v -0.125000 0.437500 -5.500000 +v -0.088388 0.349112 -5.500000 +v 0.000000 0.312500 -5.500000 +v 0.088388 0.349112 -5.500000 +v 0.125000 0.437500 -5.500000 +v 0.088388 0.525888 -5.500000 +v 0.088388 0.525888 -5.500000 +v 0.125000 0.437500 -5.500000 +v 0.088388 0.349112 -5.500000 +v 0.000000 0.312500 -5.500000 +v -0.088388 0.349112 -5.500000 +v -0.125000 0.437500 -5.500000 +v -0.088388 0.525888 -5.500000 +v 0.000000 0.562500 -5.500000 +v 0.088388 0.525888 -6.750000 +v 0.125000 0.437500 -6.750000 +v 0.088388 0.349112 -6.750000 +v 0.000000 0.312500 -6.750000 +v -0.088388 0.349112 -6.750000 +v -0.125000 0.437500 -6.750000 +v -0.088388 0.525888 -6.750000 +v 0.000000 0.562500 -6.750000 +vt 0.083333 0.919192 +vt -0.000000 0.914141 +vt 0.083333 0.914141 +vt 0.083333 0.949495 +vt -0.000000 0.944444 +vt 0.083333 0.944444 +vt 0.083333 0.939394 +vt -0.000000 0.934343 +vt 0.083333 0.934343 +vt 0.083333 0.924242 +vt -0.000000 0.919192 +vt -0.000000 0.909091 +vt 0.083333 0.909091 +vt -0.000000 0.939394 +vt -0.000000 0.929293 +vt 0.083333 0.929293 +vt -0.000000 0.924242 +vt 0.087500 0.848485 +vt 0.002083 0.838384 +vt 0.085417 0.838384 +vt 0.100000 0.909091 +vt 0.014583 0.898990 +vt 0.097917 0.898990 +vt 0.095833 0.888889 +vt 0.010417 0.878788 +vt 0.093750 0.878788 +vt 0.089583 0.858586 +vt 0.004167 0.848485 +vt 0.000000 0.828283 +vt 0.083333 0.828283 +vt 0.012500 0.888889 +vt 0.008333 0.868687 +vt 0.091667 0.868687 +vt 0.006250 0.858586 +vt 0.006250 0.858586 +vt 0.091667 0.868687 +vt 0.089583 0.858586 +vt 0.008333 0.868687 +vt 0.093750 0.878788 +vt 0.012500 0.888889 +vt 0.097917 0.898990 +vt 0.095833 0.888889 +vt 0.000000 0.828283 +vt 0.085417 0.838384 +vt 0.083333 0.828283 +vt 0.004167 0.848485 +vt 0.087500 0.848485 +vt 0.010417 0.878788 +vt 0.014583 0.898990 +vt 0.100000 0.909091 +vt 0.002083 0.838384 +vt -0.000000 0.949495 +vt 0.016667 0.909091 +vt 0.016667 0.909091 +vn 1.0000 0.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +s 1 +f 429/732/98 436/733/99 428/734/99 +f 427/735/100 434/736/101 426/737/101 +f 425/738/102 432/739/103 424/740/103 +f 430/741/104 437/742/98 429/732/98 +f 428/734/99 435/743/100 427/744/100 +f 426/737/101 433/745/102 425/738/102 +f 424/740/103 431/746/105 423/747/105 +f 423/747/105 438/748/104 430/741/104 +f 445/749/98 452/750/99 444/751/99 +f 443/752/100 450/753/101 442/754/101 +f 441/755/102 448/756/103 440/757/103 +f 446/758/104 453/759/98 445/749/98 +f 444/751/99 451/760/100 443/761/100 +f 442/754/101 449/762/102 441/755/102 +f 440/757/103 447/763/105 439/764/105 +f 439/764/105 454/765/104 446/758/104 +f 455/766/101 470/767/100 463/768/101 +f 462/769/100 469/770/99 470/767/100 +f 460/771/98 467/772/104 468/773/98 +f 458/774/105 465/775/103 466/776/105 +f 456/777/102 463/768/101 464/778/102 +f 461/779/99 468/773/98 469/770/99 +f 459/780/104 466/781/105 467/772/104 +f 457/782/103 464/778/102 465/775/103 +f 429/732/98 437/742/98 436/733/99 +f 427/735/100 435/783/100 434/736/101 +f 425/738/102 433/745/102 432/739/103 +f 430/741/104 438/748/104 437/742/98 +f 428/734/99 436/733/99 435/743/100 +f 426/737/101 434/736/101 433/745/102 +f 424/740/103 432/739/103 431/746/105 +f 423/747/105 431/746/105 438/748/104 +f 445/749/98 453/759/98 452/750/99 +f 443/752/100 451/784/100 450/753/101 +f 441/755/102 449/762/102 448/756/103 +f 446/758/104 454/765/104 453/759/98 +f 444/751/99 452/750/99 451/760/100 +f 442/754/101 450/753/101 449/762/102 +f 440/757/103 448/756/103 447/763/105 +f 439/764/105 447/763/105 454/765/104 +f 455/766/101 462/769/100 470/767/100 +f 462/769/100 461/779/99 469/770/99 +f 460/771/98 459/780/104 467/772/104 +f 458/774/105 457/782/103 465/775/103 +f 456/777/102 455/766/101 463/768/101 +f 461/779/99 460/771/98 468/773/98 +f 459/780/104 458/785/105 466/781/105 +f 457/782/103 456/777/102 464/778/102 +o Gun +v -0.375000 -0.312500 -1.000000 +v 0.375000 -0.312500 -1.000000 +v -0.375000 0.437500 -1.000000 +v 0.375000 0.437500 -1.000000 +v -0.375000 -0.312500 -1.750000 +v 0.375000 -0.312500 -1.750000 +v -0.375000 -0.562500 -2.000000 +v 0.375000 -0.562500 -2.000000 +v -0.375000 0.437500 -2.875000 +v 0.375000 0.437500 -2.875000 +v -0.375000 0.187500 -2.875000 +v 0.375000 0.187500 -2.875000 +v -0.375000 0.187500 -4.875000 +v 0.375000 0.187500 -4.875000 +v -0.375000 0.312500 -4.875000 +v 0.375000 0.312500 -4.875000 +v -0.375000 0.312500 -7.500000 +v 0.375000 0.312500 -7.500000 +v -0.375000 -0.562500 -3.250000 +v 0.375000 -0.562500 -3.250000 +v -0.375000 -0.562500 -4.750000 +v 0.375000 -0.562500 -4.750000 +v -0.375000 -0.562500 -7.500000 +v 0.375000 -0.562500 -7.500000 +v 0.000000 -0.375000 6.000000 +v -0.132582 -0.429918 6.000000 +v -0.187500 -0.562500 6.000000 +v -0.132582 -0.695083 6.000000 +v 0.000000 -0.750000 6.000000 +v 0.132583 -0.695083 6.000000 +v 0.187500 -0.562500 6.000000 +v 0.132583 -0.429918 6.000000 +v 0.000000 -0.375000 -0.750000 +v -0.132582 -0.429918 -0.750000 +v -0.187500 -0.562500 -0.750000 +v -0.132582 -0.695083 -0.750000 +v 0.000000 -0.750000 -0.750000 +v 0.132583 -0.695083 -0.750000 +v 0.187500 -0.562500 -0.750000 +v 0.132583 -0.429918 -0.750000 +v 0.000000 0.500000 6.000000 +v -0.250000 0.433012 6.000000 +v -0.433013 0.250000 6.000000 +v -0.500000 0.000000 6.000000 +v 0.500000 0.000000 6.000000 +v 0.433013 0.250000 6.000000 +v 0.250000 0.433012 6.000000 +v 0.000000 0.500000 6.375000 +v -0.250000 0.433012 6.375000 +v -0.433013 0.250000 6.375000 +v -0.500000 0.000000 6.375000 +v 0.500000 0.000000 6.375000 +v 0.433013 0.250000 6.375000 +v 0.250000 0.433012 6.375000 +v -0.500000 -0.562500 6.000000 +v -0.433013 -0.812500 6.000000 +v -0.250000 -0.995513 6.000000 +v 0.000000 -1.062500 6.000000 +v 0.250000 -0.995513 6.000000 +v 0.433012 -0.812500 6.000000 +v 0.500000 -0.562500 6.000000 +v -0.500000 -0.562500 6.375000 +v -0.433013 -0.812500 6.375000 +v -0.250000 -0.995513 6.375000 +v 0.000000 -1.062500 6.375000 +v 0.250000 -0.995513 6.375000 +v 0.433012 -0.812500 6.375000 +v 0.500000 -0.562500 6.375000 +v -0.433013 0.250000 -0.375000 +v -0.250000 0.433012 -0.375000 +v 0.000000 0.500000 -0.375000 +v 0.250000 0.433012 -0.750000 +v 0.433013 0.250000 -0.750000 +v 0.500000 0.000000 -0.750000 +v -0.500000 0.000000 -0.750000 +v -0.433013 0.250000 -0.750000 +v -0.250000 0.433012 -0.750000 +v 0.000000 0.500000 -0.750000 +v -0.500000 0.000000 -0.375000 +v 0.500000 0.000000 -0.375000 +v 0.433013 0.250000 -0.375000 +v 0.250000 0.433012 -0.375000 +v -0.500000 -0.312500 -0.750000 +v -0.433013 -0.562500 -0.750000 +v -0.250000 -0.745513 -0.750000 +v 0.000000 -0.812500 -0.750000 +v 0.250000 -0.745513 -0.750000 +v 0.433012 -0.562500 -0.750000 +v 0.500000 -0.312500 -0.750000 +v -0.500000 -0.312500 -0.375000 +v 0.500000 -0.312500 -0.375000 +v -0.500000 -0.312500 -0.562500 +v 0.500000 -0.312500 -0.562500 +v 0.000000 -0.812500 -0.562500 +v 0.250000 -0.745513 -0.562500 +v -0.433013 -0.562500 -0.562500 +v 0.433012 -0.562500 -0.562500 +v -0.250000 -0.745513 -0.562500 +v -0.500000 -1.125000 -0.375000 +v -0.433013 -1.375000 -0.375000 +v -0.250000 -1.558013 -0.375000 +v 0.000000 -1.625000 -0.375000 +v 0.250000 -1.558013 -0.375000 +v 0.433012 -1.375000 -0.375000 +v 0.500000 -1.125000 -0.375000 +v -0.500000 -1.125000 -0.562500 +v 0.500000 -1.125000 -0.562500 +v 0.000000 -1.625000 -0.562500 +v 0.250000 -1.558013 -0.562500 +v -0.433013 -1.375000 -0.562500 +v 0.433012 -1.375000 -0.562500 +v -0.250000 -1.558013 -0.562500 +v 0.000000 -1.000000 2.250000 +v -0.088388 -1.036612 2.250000 +v -0.125000 -1.125000 2.250000 +v -0.088388 -1.213388 2.250000 +v 0.000000 -1.250000 2.250000 +v 0.088388 -1.213388 2.250000 +v 0.125000 -1.125000 2.250000 +v 0.088388 -1.036612 2.250000 +v -0.088388 -1.036612 -0.750000 +v 0.000000 -1.000000 -0.750000 +v -0.125000 -1.125000 -0.750000 +v -0.088388 -1.213388 -0.750000 +v 0.000000 -1.250000 -0.750000 +v 0.088388 -1.213388 -0.750000 +v 0.125000 -1.125000 -0.750000 +v 0.088388 -1.036612 -0.750000 +v -0.044194 -1.080806 -0.750000 +v 0.000000 -1.062500 -0.750000 +v -0.062500 -1.125000 -0.750000 +v -0.044194 -1.169194 -0.750000 +v 0.000000 -1.187500 -0.750000 +v 0.044194 -1.169194 -0.750000 +v 0.062500 -1.125000 -0.750000 +v 0.044194 -1.080806 -0.750000 +v -0.044194 -1.080806 -1.125000 +v 0.000000 -1.062500 -1.125000 +v -0.062500 -1.125000 -1.125000 +v -0.044194 -1.169194 -1.125000 +v 0.000000 -1.187500 -1.125000 +v 0.044194 -1.169194 -1.125000 +v 0.062500 -1.125000 -1.125000 +v 0.044194 -1.080806 -1.125000 +v 0.250000 -0.562500 -2.000000 +v 0.250000 -0.562500 -3.250000 +v -0.250000 -0.562500 -2.000000 +v -0.250000 -0.562500 -3.250000 +v -0.250000 -0.312500 -1.000000 +v -0.250000 -0.312500 -1.750000 +v 0.250000 -0.312500 -1.000000 +v 0.250000 -0.312500 -1.750000 +v 0.250000 -0.750000 -3.250000 +v -0.250000 -0.750000 -3.250000 +v 0.250000 -0.562500 -4.750000 +v -0.250000 -0.562500 -4.750000 +v 0.250000 -0.750000 -4.750000 +v -0.250000 -0.750000 -4.750000 +v 0.250000 -0.562500 -7.500000 +v -0.250000 -0.562500 -7.500000 +v 0.250000 -0.750000 -7.500000 +v -0.250000 -0.750000 -7.500000 +v 0.250000 -0.750000 -0.750000 +v -0.250000 -0.750000 -0.750000 +v -0.250000 -0.312500 -0.750000 +v 0.250000 -0.312500 -0.750000 +v -0.375000 -0.250000 -7.375000 +v -0.375000 -0.073223 -7.301777 +v -0.375000 0.000000 -7.125000 +v -0.375000 -0.073223 -6.948223 +v -0.375000 -0.250000 -6.875000 +v -0.375000 -0.426777 -6.948223 +v -0.375000 -0.500000 -7.125000 +v -0.375000 -0.426777 -7.301777 +v -0.437500 -0.073223 -7.301777 +v -0.437500 -0.250000 -7.375000 +v -0.437500 0.000000 -7.125000 +v -0.437500 -0.073223 -6.948223 +v -0.437500 -0.250000 -6.875000 +v -0.437500 -0.426777 -6.948223 +v -0.437500 -0.500000 -7.125000 +v -0.437500 -0.426777 -7.301777 +v 0.250000 0.187500 -2.875000 +v 0.250000 0.187500 -4.875000 +v -0.250000 0.187500 -2.875000 +v -0.250000 0.187500 -4.875000 +v 0.000000 0.218750 -2.875000 +v -0.109375 0.189443 -2.875000 +v -0.189443 0.109375 -2.875000 +v -0.218750 0.000000 -2.875000 +v -0.189443 -0.109375 -2.875000 +v -0.109375 -0.189443 -2.875000 +v 0.000000 -0.218750 -2.875000 +v 0.109375 -0.189443 -2.875000 +v 0.189443 -0.109375 -2.875000 +v 0.218750 0.000000 -2.875000 +v 0.189443 0.109375 -2.875000 +v 0.109375 0.189443 -2.875000 +v 0.250000 -0.125000 -2.875000 +v 0.250000 -0.125000 -4.875000 +v -0.250000 -0.125000 -2.875000 +v -0.250000 -0.125000 -4.875000 +v 0.125000 -0.250000 -2.875000 +v 0.125000 -0.250000 -4.875000 +v -0.125000 -0.250000 -2.875000 +v -0.125000 -0.250000 -4.875000 +v -0.109375 0.189443 -2.375000 +v 0.000000 0.218750 -2.375000 +v -0.189443 0.109375 -2.375000 +v -0.218750 0.000000 -2.375000 +v -0.189443 -0.109375 -2.375000 +v -0.109375 -0.189443 -2.375000 +v 0.000000 -0.218750 -2.375000 +v 0.109375 -0.189443 -2.375000 +v 0.189443 -0.109375 -2.375000 +v 0.218750 0.000000 -2.375000 +v 0.189443 0.109375 -2.375000 +v 0.109375 0.189443 -2.375000 +v -0.312500 0.437500 -3.000000 +v -0.312500 0.349112 -2.963388 +v -0.312500 0.312500 -2.875000 +v -0.312500 0.349112 -2.786612 +v -0.312500 0.437500 -2.750000 +v -0.312500 0.525888 -2.786612 +v -0.312500 0.562500 -2.875000 +v -0.312500 0.525888 -2.963388 +v -0.437500 0.437500 -3.000000 +v -0.437500 0.349112 -2.963388 +v -0.437500 0.312500 -2.875000 +v -0.437500 0.349112 -2.786612 +v -0.437500 0.437500 -2.750000 +v -0.437500 0.525888 -2.786612 +v -0.437500 0.562500 -2.875000 +v -0.437500 0.525888 -2.963388 +v 0.312500 0.437500 -3.000000 +v 0.312500 0.349112 -2.963388 +v 0.312500 0.312500 -2.875000 +v 0.312500 0.349112 -2.786612 +v 0.312500 0.437500 -2.750000 +v 0.312500 0.525888 -2.786612 +v 0.312500 0.562500 -2.875000 +v 0.312500 0.525888 -2.963388 +v 0.437500 0.349112 -2.963388 +v 0.437500 0.437500 -3.000000 +v 0.437500 0.312500 -2.875000 +v 0.437500 0.349112 -2.786612 +v 0.437500 0.437500 -2.750000 +v 0.437500 0.525888 -2.786612 +v 0.437500 0.562500 -2.875000 +v 0.437500 0.525888 -2.963388 +v 0.375000 0.187500 -2.875000 +v 0.375000 0.187500 -4.875000 +v 0.500000 0.187500 -2.875000 +v 0.500000 0.187500 -4.875000 +v 0.375000 0.125000 -2.875000 +v 0.375000 0.125000 -4.937500 +v 0.500000 0.125000 -2.875000 +v 0.500000 0.125000 -4.937500 +v 0.375000 0.312500 -4.875000 +v 0.375000 0.312500 -4.937500 +v 0.500000 0.312500 -4.937500 +v 0.375000 0.312500 -5.000000 +v 0.500000 0.312500 -5.000000 +v 0.500000 0.437500 -4.875000 +v -0.500000 0.187500 -2.875000 +v 0.500000 0.437500 -5.000000 +v -0.500000 0.187500 -4.875000 +v -0.375000 0.187500 -2.875000 +v -0.375000 0.187500 -4.875000 +v -0.500000 0.125000 -2.875000 +v -0.500000 0.125000 -4.937500 +v -0.375000 0.125000 -2.875000 +v -0.375000 0.125000 -4.937500 +v -0.375000 0.312500 -4.875000 +v -0.500000 0.312500 -4.937500 +v -0.375000 0.312500 -4.937500 +v -0.500000 0.312500 -5.000000 +v -0.375000 0.312500 -5.000000 +v -0.500000 0.437500 -4.875000 +v -0.500000 0.437500 -5.000000 +v 0.437500 0.000000 -3.250000 +v 0.437500 0.000000 -4.750000 +v 0.500000 0.000000 -3.250000 +v 0.500000 0.000000 -4.750000 +v 0.437500 0.125000 -4.750000 +v 0.437500 0.125000 -3.250000 +v 0.500000 0.125000 -4.750000 +v 0.500000 0.125000 -3.250000 +v 0.437500 -0.062500 -3.625000 +v 0.437500 -0.062500 -4.375000 +v 0.500000 -0.062500 -3.625000 +v 0.500000 -0.062500 -4.375000 +v 0.437500 0.000000 -4.375000 +v 0.437500 0.000000 -3.625000 +v 0.500000 0.000000 -4.375000 +v 0.500000 0.000000 -3.625000 +v -0.250000 0.437500 -2.000000 +v 0.250000 0.437500 -2.000000 +v -0.250000 0.687500 -2.500000 +v 0.250000 0.687500 -2.500000 +v -0.250000 0.437500 -2.500000 +v 0.250000 0.437500 -2.500000 +v -0.437500 -0.250000 -7.250000 +v -0.437500 -0.161612 -7.213388 +v -0.437500 -0.125000 -7.125000 +v -0.437500 -0.161612 -7.036612 +v -0.437500 -0.250000 -7.000000 +v -0.437500 -0.338388 -7.036612 +v -0.437500 -0.375000 -7.125000 +v -0.437500 -0.338388 -7.213388 +v -0.687500 -0.250000 -7.250000 +v -0.687500 -0.161612 -7.213388 +v -0.687500 -0.125000 -7.125000 +v -0.687500 -0.161612 -7.036612 +v -0.687500 -0.250000 -7.000000 +v -0.687500 -0.338388 -7.036612 +v -0.687500 -0.375000 -7.125000 +v -0.687500 -0.338388 -7.213388 +v -0.937500 -0.750000 -7.250000 +v -0.864277 -0.323223 -7.250000 +v -0.926777 -0.260723 -7.213388 +v -0.952665 -0.234835 -7.125000 +v -0.926777 -0.260723 -7.036612 +v -0.864277 -0.323223 -7.000000 +v -0.801777 -0.385723 -7.036612 +v -0.775888 -0.411612 -7.125000 +v -0.801777 -0.385723 -7.213388 +v -0.937500 -0.500000 -7.250000 +v -1.025888 -0.500000 -7.213388 +v -1.062500 -0.500000 -7.125000 +v -1.025888 -0.500000 -7.036612 +v -0.937500 -0.500000 -7.000000 +v -0.849112 -0.500000 -7.036612 +v -0.812500 -0.500000 -7.125000 +v -0.849112 -0.500000 -7.213388 +v -1.025888 -0.750000 -7.213388 +v -1.062500 -0.750000 -7.125000 +v -1.025888 -0.750000 -7.036612 +v -0.937500 -0.750000 -7.000000 +v -0.849112 -0.750000 -7.036612 +v -0.812500 -0.750000 -7.125000 +v -0.849112 -0.750000 -7.213388 +v -0.937500 -0.750000 -7.312500 +v -1.070083 -0.750000 -7.257583 +v -1.125000 -0.750000 -7.125000 +v -1.070083 -0.750000 -6.992417 +v -0.937500 -0.750000 -6.937500 +v -0.804917 -0.750000 -6.992417 +v -0.750000 -0.750000 -7.125000 +v -0.804917 -0.750000 -7.257583 +v -1.070083 -0.875000 -7.257583 +v -0.937500 -0.875000 -7.312500 +v -1.125000 -0.875000 -7.125000 +v -1.070083 -0.875000 -6.992417 +v -0.937500 -0.875000 -6.937500 +v -0.804917 -0.875000 -6.992417 +v -0.750000 -0.875000 -7.125000 +v -0.804917 -0.875000 -7.257583 +v -0.937500 -1.250000 -7.375000 +v -1.114277 -1.250000 -7.301777 +v -1.187500 -1.250000 -7.125000 +v -1.114277 -1.250000 -6.948223 +v -0.937500 -1.250000 -6.875000 +v -0.760723 -1.250000 -6.948223 +v -0.687500 -1.250000 -7.125000 +v -0.760723 -1.250000 -7.301777 +v -0.937500 -1.875000 -7.375000 +v -1.114277 -1.875000 -7.301777 +v -1.187500 -1.875000 -7.125000 +v -1.114277 -1.875000 -6.948223 +v -0.937500 -1.875000 -6.875000 +v -0.760723 -1.875000 -6.948223 +v -0.687500 -1.875000 -7.125000 +v -0.760723 -1.875000 -7.301777 +v -1.070083 -2.250000 -7.257583 +v -0.937500 -2.250000 -7.312500 +v -1.125000 -2.250000 -7.125000 +v -1.070083 -2.250000 -6.992417 +v -0.937500 -2.250000 -6.937500 +v -0.804917 -2.250000 -6.992417 +v -0.750000 -2.250000 -7.125000 +v -0.804917 -2.250000 -7.257583 +v -1.070083 -2.375000 -7.257583 +v -0.937500 -2.375000 -7.312500 +v -1.125000 -2.375000 -7.125000 +v -1.070083 -2.375000 -6.992417 +v -0.937500 -2.375000 -6.937500 +v -0.804917 -2.375000 -6.992417 +v -0.750000 -2.375000 -7.125000 +v -0.804917 -2.375000 -7.257583 +v -0.937500 -2.375000 -7.250000 +v -1.025888 -2.375000 -7.213388 +v -1.062500 -2.375000 -7.125000 +v -1.025888 -2.375000 -7.036612 +v -0.937500 -2.375000 -7.000000 +v -0.849112 -2.375000 -7.036612 +v -0.812500 -2.375000 -7.125000 +v -0.849112 -2.375000 -7.213388 +v -0.937500 -2.500000 -7.250000 +v -1.025888 -2.500000 -7.213388 +v -1.062500 -2.500000 -7.125000 +v -1.025888 -2.500000 -7.036612 +v -0.937500 -2.500000 -7.000000 +v -0.849112 -2.500000 -7.036612 +v -0.812500 -2.500000 -7.125000 +v -0.849112 -2.500000 -7.213388 +v 0.437500 0.000000 -1.750000 +v 0.437500 0.176777 -1.676777 +v 0.437500 0.250000 -1.500000 +v 0.437500 0.176777 -1.323223 +v 0.437500 -0.000000 -1.250000 +v 0.437500 -0.176777 -1.323223 +v 0.437500 -0.250000 -1.500000 +v 0.437500 -0.176777 -1.676777 +v 0.375000 0.176777 -1.676777 +v 0.375000 0.000000 -1.750000 +v 0.375000 0.250000 -1.500000 +v 0.375000 0.176777 -1.323223 +v 0.375000 -0.000000 -1.250000 +v 0.375000 -0.176777 -1.323223 +v 0.375000 -0.250000 -1.500000 +v 0.375000 -0.176777 -1.676777 +v 0.437500 0.000000 -1.375000 +v 0.437500 0.088388 -1.411612 +v 0.437500 0.125000 -1.500000 +v 0.437500 0.088388 -1.588388 +v 0.437500 0.000000 -1.625000 +v 0.437500 -0.088388 -1.588388 +v 0.437500 -0.125000 -1.500000 +v 0.437500 -0.088388 -1.411612 +v 0.687500 0.000000 -1.375000 +v 0.687500 0.088388 -1.411612 +v 0.687500 0.125000 -1.500000 +v 0.687500 0.088388 -1.588388 +v 0.687500 0.000000 -1.625000 +v 0.687500 -0.088388 -1.588388 +v 0.687500 -0.125000 -1.500000 +v 0.687500 -0.088388 -1.411612 +v 0.864277 -0.073223 -1.375000 +v 0.926776 -0.010723 -1.411612 +v 0.952665 0.015165 -1.500000 +v 0.926776 -0.010723 -1.588388 +v 0.864277 -0.073223 -1.625000 +v 0.801777 -0.135723 -1.588388 +v 0.775888 -0.161612 -1.500000 +v 0.801777 -0.135723 -1.411612 +v -0.250000 0.312500 -6.750000 +v 0.250000 0.312500 -6.750000 +v -0.250000 0.312500 -7.000000 +v 0.250000 0.312500 -7.000000 +v -0.250000 0.625000 -6.937500 +v -0.250000 0.562500 -7.000000 +v -0.250000 0.562500 -6.750000 +v -0.250000 0.625000 -6.812500 +v 0.250000 0.625000 -6.812500 +v 0.250000 0.562500 -6.750000 +v 0.250000 0.562500 -7.000000 +v 0.250000 0.625000 -6.937500 +v -0.375000 -0.062500 -2.500000 +v -0.375000 0.114277 -2.426777 +v -0.375000 0.187500 -2.250000 +v -0.375000 0.114277 -2.073223 +v -0.375000 -0.062500 -2.000000 +v -0.375000 -0.239277 -2.073223 +v -0.375000 -0.312500 -2.250000 +v -0.375000 -0.239277 -2.426777 +v -0.500000 0.114277 -2.426777 +v -0.500000 -0.062500 -2.500000 +v -0.500000 0.187500 -2.250000 +v -0.500000 0.114277 -2.073223 +v -0.500000 -0.062500 -2.000000 +v -0.500000 -0.239277 -2.073223 +v -0.500000 -0.312500 -2.250000 +v -0.500000 -0.239277 -2.426777 +v -0.375000 0.062500 -7.500000 +v 0.375000 0.062500 -7.500000 +v -0.375000 0.062500 -7.812500 +v 0.375000 0.062500 -7.812500 +v -0.375000 -0.250000 -7.812500 +v 0.375000 -0.250000 -7.812500 +v -0.375000 -0.250000 -7.500000 +v 0.375000 -0.250000 -7.500000 +v -0.375000 -0.750000 -7.500000 +v -0.125000 -0.750000 -7.500000 +v -0.375000 -0.750000 -7.625000 +v -0.125000 -0.750000 -7.625000 +v -0.375000 -0.625000 -7.625000 +v -0.375000 -0.625000 -7.500000 +v -0.125000 -0.625000 -7.500000 +v -0.125000 -0.625000 -7.625000 +v -0.375000 -0.250000 -7.937500 +v -0.375000 -0.250000 -7.812500 +v -0.125000 -0.250000 -7.812500 +v -0.125000 -0.250000 -7.937500 +v -0.375000 0.125000 -7.937500 +v -0.375000 0.250000 -7.812500 +v -0.125000 0.250000 -7.812500 +v -0.125000 0.125000 -7.937500 +v 0.125000 -0.750000 -7.500000 +v 0.375000 -0.750000 -7.500000 +v 0.125000 -0.750000 -7.625000 +v 0.375000 -0.750000 -7.625000 +v 0.125000 -0.625000 -7.625000 +v 0.125000 -0.625000 -7.500000 +v 0.375000 -0.625000 -7.500000 +v 0.375000 -0.625000 -7.625000 +v 0.125000 -0.250000 -7.937500 +v 0.125000 -0.250000 -7.812500 +v 0.375000 -0.250000 -7.812500 +v 0.375000 -0.250000 -7.937500 +v 0.125000 0.125000 -7.937500 +v 0.125000 0.250000 -7.812500 +v 0.375000 0.250000 -7.812500 +v 0.375000 0.125000 -7.937500 +v -0.437500 0.000000 -3.250000 +v -0.437500 0.000000 -4.750000 +v -0.500000 0.000000 -3.250000 +v -0.500000 0.000000 -4.750000 +v -0.437500 0.125000 -4.750000 +v -0.437500 0.125000 -3.250000 +v -0.500000 0.125000 -4.750000 +v -0.500000 0.125000 -3.250000 +v -0.437500 -0.062500 -3.625000 +v -0.437500 -0.062500 -4.375000 +v -0.500000 -0.062500 -3.625000 +v -0.500000 -0.062500 -4.375000 +v -0.437500 0.000000 -4.375000 +v -0.437500 0.000000 -3.625000 +v -0.500000 0.000000 -4.375000 +v -0.500000 0.000000 -3.625000 +v 0.864277 -0.073223 -1.687500 +v 0.770527 -0.166973 -1.632583 +v 0.731694 -0.205806 -1.500000 +v 0.770527 -0.166973 -1.367417 +v 0.864277 -0.073223 -1.312500 +v 0.958027 0.020527 -1.367417 +v 0.996859 0.059359 -1.500000 +v 0.958027 0.020527 -1.632583 +v 0.858915 -0.255362 -1.632583 +v 0.952665 -0.161612 -1.687500 +v 0.820083 -0.294194 -1.500000 +v 0.858915 -0.255362 -1.367417 +v 0.952665 -0.161612 -1.312500 +v 1.046415 -0.067862 -1.367417 +v 1.085248 -0.029029 -1.500000 +v 1.046415 -0.067862 -1.632583 +v 1.217830 -0.426777 -1.750000 +v 1.092830 -0.551777 -1.676777 +v 1.041053 -0.603553 -1.500000 +v 1.092830 -0.551777 -1.323223 +v 1.217830 -0.426777 -1.250000 +v 1.342830 -0.301777 -1.323223 +v 1.394607 -0.250000 -1.500000 +v 1.342830 -0.301777 -1.676777 +v 1.659772 -0.868718 -1.750000 +v 1.534772 -0.993718 -1.676777 +v 1.482995 -1.045495 -1.500000 +v 1.534772 -0.993718 -1.323223 +v 1.659772 -0.868718 -1.250000 +v 1.784772 -0.743718 -1.323223 +v 1.836548 -0.691942 -1.500000 +v 1.784772 -0.743718 -1.676777 +v 1.831187 -1.227633 -1.632583 +v 1.924937 -1.133883 -1.687500 +v 1.792354 -1.266466 -1.500000 +v 1.831187 -1.227633 -1.367417 +v 1.924937 -1.133883 -1.312500 +v 2.018687 -1.040133 -1.367417 +v 2.057519 -1.001301 -1.500000 +v 2.018687 -1.040133 -1.632583 +v 1.919575 -1.316022 -1.632583 +v 2.013325 -1.222272 -1.687500 +v 1.880743 -1.354854 -1.500000 +v 1.919575 -1.316022 -1.367417 +v 2.013325 -1.222272 -1.312500 +v 2.107075 -1.128522 -1.367417 +v 2.145908 -1.089689 -1.500000 +v 2.107075 -1.128522 -1.632583 +v 2.013325 -1.222272 -1.625000 +v 1.950825 -1.284772 -1.588388 +v 1.924937 -1.310660 -1.500000 +v 1.950825 -1.284772 -1.411612 +v 2.013325 -1.222272 -1.375000 +v 2.075825 -1.159772 -1.411612 +v 2.101713 -1.133883 -1.500000 +v 2.075825 -1.159772 -1.588388 +v 2.101714 -1.310660 -1.625000 +v 2.039214 -1.373160 -1.588388 +v 2.013325 -1.399049 -1.500000 +v 2.039214 -1.373160 -1.411612 +v 2.101714 -1.310660 -1.375000 +v 2.164214 -1.248160 -1.411612 +v 2.190102 -1.222272 -1.500000 +v 2.164214 -1.248160 -1.588388 +vt 0.179167 0.404040 +vt 0.304167 0.464646 +vt 0.179167 0.464646 +vt 0.712500 0.292929 +vt 0.845833 0.282828 +vt 0.845833 0.292929 +vt 0.712500 0.282828 +vt 0.845833 0.257576 +vt 0.845833 0.181818 +vt 0.712500 0.191919 +vt 0.712500 0.181818 +vt 0.437500 0.393939 +vt 0.612500 0.454545 +vt 0.437500 0.454545 +vt 0.329167 0.272727 +vt 0.245833 0.262626 +vt 0.329167 0.262626 +vt 0.870833 0.126263 +vt 0.687500 0.166667 +vt 0.687500 0.126263 +vt 0.870833 0.166667 +vt 0.687500 0.181818 +vt 0.612500 0.323232 +vt 0.429167 0.313131 +vt 0.612500 0.313131 +vt 0.983257 0.793649 +vt 0.999848 0.828481 +vt 0.933485 0.828481 +vt 0.933485 0.828481 +vt 0.950076 0.793649 +vt 0.999848 0.828481 +vt 0.933384 0.595929 +vt 0.950025 0.560991 +vt 0.999949 0.595929 +vt 0.999949 0.424312 +vt 0.983308 0.454931 +vt 0.966667 0.449526 +vt 0.966667 0.383970 +vt 0.995490 0.404141 +vt 0.937843 0.404141 +vt 0.658333 0.181938 +vt 0.666568 0.191919 +vt 0.658333 0.201900 +vt 0.658333 0.222102 +vt 0.650099 0.212121 +vt 0.658333 0.202140 +vt 0.204236 0.277777 +vt 0.208333 0.272811 +vt 0.212431 0.277777 +vt 0.229167 0.272727 +vt 0.179167 0.262626 +vt 0.229167 0.262626 +vt 0.179167 0.313131 +vt 0.229167 0.323232 +vt 0.179167 0.323232 +vt 0.245833 0.313131 +vt 0.329167 0.323232 +vt 0.245833 0.323232 +vt 0.720833 0.075758 +vt 0.887500 0.035354 +vt 0.887500 0.075758 +vt 0.804167 0.020202 +vt 0.720833 0.035354 +vt 0.675000 0.035354 +vt 0.691667 0.075758 +vt 0.675000 0.075758 +vt 0.129167 0.414141 +vt 0.229167 0.343434 +vt 0.304167 0.404040 +vt 0.229167 0.525253 +vt 0.179167 0.525253 +vt 0.870833 0.111111 +vt 0.687500 0.111111 +vt 0.612500 0.262626 +vt 0.429167 0.272727 +vt 0.429167 0.262626 +vt 0.612500 0.393939 +vt 0.670833 0.404040 +vt 0.670833 0.444444 +vt 0.329167 0.313131 +vt 0.675000 0.166667 +vt 0.675000 0.126263 +vt 0.900000 0.035354 +vt 0.887500 0.090909 +vt 0.804167 0.090909 +vt 0.108420 0.581346 +vt 0.124767 0.601160 +vt 0.108420 0.620974 +vt 0.304167 0.383838 +vt 0.304167 0.484848 +vt 0.437500 0.383838 +vt 0.612500 0.545455 +vt 0.429167 0.545455 +vt 0.437500 0.484848 +vt 0.329167 0.545455 +vt 0.429167 0.323232 +vt 0.845833 0.191919 +vt 0.712500 0.217172 +vt 0.712500 0.257576 +vt 0.845833 0.247475 +vt 0.845833 0.217172 +vt 0.712500 0.227273 +vt 0.845833 0.227273 +vt 0.712500 0.247475 +vt 0.854167 0.217172 +vt 0.875000 0.217172 +vt 0.875000 0.257576 +vt 0.883333 0.267677 +vt 0.710432 0.237374 +vt 0.703162 0.252639 +vt 0.708484 0.246187 +vt 0.704167 0.217172 +vt 0.708484 0.228561 +vt 0.703162 0.222109 +vt 0.695891 0.255000 +vt 0.704167 0.257576 +vt 0.683333 0.257576 +vt 0.695891 0.219747 +vt 0.683333 0.217172 +vt 0.683297 0.246187 +vt 0.688620 0.252639 +vt 0.688620 0.222109 +vt 0.683297 0.228561 +vt 0.683333 0.267677 +vt 0.666667 0.267677 +vt 0.647814 0.294174 +vt 0.660417 0.267715 +vt 0.673020 0.294174 +vt 0.710853 0.755580 +vt 0.716667 0.752661 +vt 0.722480 0.755580 +vt 0.716667 0.752390 +vt 0.710853 0.749471 +vt 0.722480 0.735378 +vt 0.691667 0.732459 +vt 0.699888 0.742424 +vt 0.691667 0.752390 +vt 0.691667 0.772592 +vt 0.683445 0.762626 +vt 0.691667 0.752661 +vt 0.616667 0.565657 +vt 0.750000 0.555556 +vt 0.750000 0.565657 +vt 0.754167 0.550505 +vt 0.616667 0.540404 +vt 0.754167 0.540404 +vt 0.783333 0.585859 +vt 0.770833 0.575758 +vt 0.783333 0.575758 +vt 0.741667 0.646465 +vt 0.733333 0.656566 +vt 0.733333 0.646465 +vt 0.612500 0.555556 +vt 0.616667 0.555556 +vt 0.616667 0.550505 +vt 0.750000 0.575758 +vt 0.754167 0.565657 +vt 0.758333 0.575758 +vt 0.770833 0.585859 +vt 0.766667 0.575758 +vt 0.783333 0.656566 +vt 0.770833 0.646465 +vt 0.783333 0.646465 +vt 0.750000 0.656566 +vt 0.741667 0.585859 +vt 0.758333 0.656566 +vt 0.766667 0.585859 +vt 0.616667 0.676768 +vt 0.750000 0.666667 +vt 0.750000 0.676768 +vt 0.754167 0.691919 +vt 0.616667 0.681818 +vt 0.754167 0.681818 +vt 0.612500 0.666667 +vt 0.616667 0.666667 +vt 0.770833 0.656566 +vt 0.766667 0.646465 +vt 0.754167 0.666667 +vt 0.733333 0.575758 +vt 0.725000 0.707071 +vt 0.625000 0.702020 +vt 0.725000 0.702020 +vt 0.670833 0.727273 +vt 0.620833 0.722222 +vt 0.670833 0.722222 +vt 0.625000 0.707071 +vt 0.616667 0.702020 +vt 0.733333 0.707071 +vt 0.625000 0.717172 +vt 0.725000 0.691919 +vt 0.620833 0.727273 +vt 0.616667 0.722222 +vt 0.675000 0.727273 +vt 0.620833 0.732323 +vt 0.670833 0.717172 +vt 0.645833 0.515152 +vt 0.679167 0.474747 +vt 0.679167 0.515152 +vt 0.645833 0.474747 +vt 0.679167 0.454545 +vt 0.612500 0.454545 +vt 0.645833 0.454545 +vt 0.712500 0.454545 +vt 0.795833 0.651499 +vt 0.783347 0.636364 +vt 0.795833 0.621228 +vt 0.808347 0.636364 +vt 0.820833 0.621228 +vt 0.833320 0.636364 +vt 0.833330 0.641414 +vt 0.841667 0.631309 +vt 0.850003 0.641414 +vt 0.108420 0.620974 +vt 0.092074 0.601160 +vt 0.108420 0.581346 +vt 0.016667 0.545455 +vt 0.000000 0.545455 +vt 0.016667 0.525253 +vt 0.058333 0.525253 +vt 0.075000 0.525253 +vt 0.058333 0.545455 +vt 0.108333 0.540443 +vt 0.124968 0.560606 +vt 0.108333 0.580769 +vt 0.108333 0.540404 +vt 0.158333 0.515152 +vt 0.158333 0.540404 +vt 0.108333 0.515152 +vt 0.158333 0.489899 +vt 0.108333 0.489899 +vt 0.158333 0.464646 +vt 0.087500 0.489899 +vt 0.087500 0.515152 +vt 0.179167 0.515152 +vt 0.175000 0.550505 +vt 0.158333 0.540404 +vt 0.175000 0.540404 +vt 0.175000 0.560606 +vt 0.183333 0.590909 +vt 0.175000 0.590909 +vt 0.158333 0.550505 +vt 0.150000 0.560606 +vt 0.150000 0.550505 +vt 0.183333 0.550505 +vt 0.158333 0.560606 +vt 0.150000 0.590909 +vt 0.158333 0.631313 +vt 0.175000 0.621212 +vt 0.175000 0.631313 +vt 0.158333 0.621212 +vt 0.150000 0.631313 +vt 0.175000 0.550505 +vt 0.158333 0.540404 +vt 0.175000 0.540404 +vt 0.175000 0.560606 +vt 0.183333 0.590909 +vt 0.175000 0.590909 +vt 0.158333 0.550505 +vt 0.150000 0.560606 +vt 0.150000 0.550505 +vt 0.183333 0.550505 +vt 0.158333 0.560606 +vt 0.150000 0.590909 +vt 0.158333 0.631313 +vt 0.175000 0.621212 +vt 0.175000 0.631313 +vt 0.158333 0.621212 +vt 0.150000 0.631313 +vt 0.625000 0.702020 +vt 0.725000 0.707071 +vt 0.725000 0.702020 +vt 0.620833 0.722222 +vt 0.670833 0.727273 +vt 0.670833 0.722222 +vt 0.616667 0.702020 +vt 0.625000 0.707071 +vt 0.733333 0.707071 +vt 0.625000 0.717172 +vt 0.725000 0.691919 +vt 0.616667 0.722222 +vt 0.620833 0.727273 +vt 0.675000 0.727273 +vt 0.620833 0.732323 +vt 0.670833 0.717172 +vt 0.795833 0.651499 +vt 0.783347 0.636364 +vt 0.795833 0.621228 +vt 0.808347 0.636364 +vt 0.820833 0.621228 +vt 0.833320 0.636364 +vt 0.847561 0.634269 +vt 0.850003 0.641414 +vt 0.833330 0.641414 +vt 0.245833 0.272727 +vt 0.870833 0.181818 +vt 0.966667 0.913948 +vt 0.950076 0.908559 +vt 0.937931 0.893838 +vt 0.933485 0.873728 +vt 0.995403 0.893838 +vt 0.999848 0.873728 +vt 0.937931 0.808371 +vt 0.950076 0.793649 +vt 0.966667 0.788261 +vt 0.995403 0.808371 +vt 0.983257 0.908559 +vt 0.995403 0.893838 +vt 0.983257 0.908559 +vt 0.937931 0.893838 +vt 0.966667 0.913948 +vt 0.950076 0.908559 +vt 0.933485 0.873728 +vt 0.999848 0.873728 +vt 0.937931 0.808371 +vt 0.966667 0.788261 +vt 0.983257 0.793649 +vt 0.995403 0.808371 +vt 0.995490 0.641313 +vt 0.983308 0.656080 +vt 0.937843 0.641313 +vt 0.966667 0.661484 +vt 0.950025 0.656080 +vt 0.933384 0.621142 +vt 0.999949 0.621142 +vt 0.937843 0.575758 +vt 0.966667 0.555587 +vt 0.983308 0.560991 +vt 0.995490 0.575758 +vt 0.995490 0.404141 +vt 0.999949 0.489868 +vt 0.995490 0.469697 +vt 0.966667 0.383970 +vt 0.983308 0.389375 +vt 0.937843 0.404141 +vt 0.950025 0.389375 +vt 0.933384 0.489868 +vt 0.933384 0.424312 +vt 0.937843 0.469697 +vt 0.950025 0.454931 +vt 0.983308 0.550019 +vt 0.966667 0.555424 +vt 0.950025 0.550019 +vt 0.937843 0.535253 +vt 0.933384 0.515082 +vt 0.933384 0.489868 +vt 0.933384 0.424312 +vt 0.999949 0.489868 +vt 0.999949 0.424312 +vt 0.999949 0.515082 +vt 0.995490 0.535253 +vt 0.983308 0.389375 +vt 0.950025 0.389375 +vt 0.652511 0.198977 +vt 0.650099 0.191919 +vt 0.652511 0.184862 +vt 0.664156 0.184862 +vt 0.664156 0.198977 +vt 0.666568 0.212121 +vt 0.664156 0.219179 +vt 0.652511 0.219179 +vt 0.652511 0.205064 +vt 0.664156 0.205064 +vt 0.211231 0.281289 +vt 0.208333 0.282744 +vt 0.205436 0.281289 +vt 0.205436 0.274266 +vt 0.211231 0.274266 +vt 0.179167 0.272727 +vt 0.229167 0.313131 +vt 0.720833 -0.000000 +vt 0.737500 -0.000000 +vt 0.787500 -0.000000 +vt 0.887500 0.020202 +vt 0.691667 0.035354 +vt 0.129167 0.464646 +vt 0.129167 0.454545 +vt 0.129167 0.404040 +vt 0.179167 0.343434 +vt 0.612500 0.272727 +vt 0.670833 0.454545 +vt 0.670833 0.393939 +vt 0.683333 0.404040 +vt 0.683333 0.444444 +vt 0.900000 0.075758 +vt 0.787500 0.111111 +vt 0.737500 0.111111 +vt 0.720833 0.111111 +vt 0.096861 0.615170 +vt 0.092074 0.601160 +vt 0.096861 0.587149 +vt 0.119979 0.587149 +vt 0.119979 0.615170 +vt 0.245833 0.545455 +vt 0.437500 0.474747 +vt 0.612500 0.474747 +vt 0.854167 0.257576 +vt 0.875000 0.207071 +vt 0.883333 0.207071 +vt 0.875000 0.267677 +vt 0.666667 0.207071 +vt 0.681349 0.237374 +vt 0.683333 0.207071 +vt 0.667693 0.300630 +vt 0.660417 0.302993 +vt 0.653141 0.300630 +vt 0.645864 0.285354 +vt 0.647814 0.276534 +vt 0.653141 0.270078 +vt 0.667693 0.270078 +vt 0.673020 0.276534 +vt 0.674969 0.285354 +vt 0.724888 0.762626 +vt 0.722480 0.769673 +vt 0.716667 0.772592 +vt 0.710853 0.769673 +vt 0.708445 0.762626 +vt 0.708445 0.742424 +vt 0.710853 0.735378 +vt 0.716667 0.732459 +vt 0.724888 0.742424 +vt 0.722480 0.749471 +vt 0.683445 0.742424 +vt 0.685853 0.735378 +vt 0.697480 0.735378 +vt 0.697480 0.749471 +vt 0.685853 0.749471 +vt 0.697480 0.755580 +vt 0.699888 0.762626 +vt 0.697480 0.769673 +vt 0.685853 0.769673 +vt 0.685853 0.755580 +vt 0.612500 0.565657 +vt 0.758333 0.565657 +vt 0.766667 0.656566 +vt 0.616667 0.691919 +vt 0.612500 0.676768 +vt 0.758333 0.666667 +vt 0.733333 0.585859 +vt 0.616667 0.707071 +vt 0.733333 0.702020 +vt 0.725000 0.717172 +vt 0.625000 0.691919 +vt 0.616667 0.727273 +vt 0.675000 0.722222 +vt 0.670833 0.732323 +vt 0.620833 0.717172 +vt 0.804663 0.625661 +vt 0.808320 0.636364 +vt 0.804663 0.647066 +vt 0.787004 0.647066 +vt 0.787004 0.625661 +vt 0.829663 0.647066 +vt 0.820833 0.651499 +vt 0.812004 0.647066 +vt 0.812004 0.625661 +vt 0.829663 0.625661 +vt 0.847561 0.648559 +vt 0.841667 0.651519 +vt 0.835772 0.648559 +vt 0.835772 0.634269 +vt 0.847561 0.634269 +vt 0.124767 0.601160 +vt 0.119979 0.615170 +vt 0.096861 0.615170 +vt 0.096861 0.587149 +vt 0.119979 0.587149 +vt 0.000000 0.525253 +vt 0.020833 0.530303 +vt 0.020833 0.540404 +vt 0.075000 0.545455 +vt 0.054167 0.540404 +vt 0.054167 0.530303 +vt 0.096571 0.574863 +vt 0.091699 0.560606 +vt 0.096571 0.546349 +vt 0.120095 0.546349 +vt 0.120095 0.574863 +vt 0.108333 0.464646 +vt 0.179167 0.489899 +vt 0.183333 0.560606 +vt 0.158333 0.590909 +vt 0.183333 0.631313 +vt 0.183333 0.560606 +vt 0.158333 0.590909 +vt 0.183333 0.631313 +vt 0.616667 0.707071 +vt 0.733333 0.702020 +vt 0.725000 0.717172 +vt 0.625000 0.691919 +vt 0.616667 0.727273 +vt 0.675000 0.722222 +vt 0.670833 0.732323 +vt 0.620833 0.717172 +vt 0.804663 0.625661 +vt 0.808320 0.636364 +vt 0.804663 0.647066 +vt 0.787004 0.647066 +vt 0.787004 0.625661 +vt 0.829663 0.647066 +vt 0.820833 0.651499 +vt 0.812004 0.647066 +vt 0.812004 0.625661 +vt 0.829663 0.625661 +vt 0.847561 0.648559 +vt 0.841667 0.651519 +vt 0.835772 0.648559 +vt 0.835772 0.634269 +vt 0.841667 0.631309 +vt 0.450000 0.202020 +vt 0.000000 0.212121 +vt 0.000000 0.202020 +vt 0.450000 0.181818 +vt 0.000000 0.191919 +vt 0.000000 0.181818 +vt 0.450000 0.242424 +vt 0.000000 0.252525 +vt 0.000000 0.242424 +vt 0.450000 0.222222 +vt 0.000000 0.232323 +vt 0.000000 0.222222 +vt 0.450000 0.212121 +vt 0.450000 0.191919 +vt 0.450000 0.252525 +vt 0.000000 0.262626 +vt 0.450000 0.232323 +vt 0.908333 0.858586 +vt 0.883333 0.838384 +vt 0.908333 0.838384 +vt 0.908333 0.757576 +vt 0.883333 0.737374 +vt 0.908333 0.737374 +vt 0.933333 0.656566 +vt 0.933333 0.681818 +vt 0.920833 0.681818 +vt 0.908333 0.777778 +vt 0.883333 0.757576 +vt 0.908333 0.818182 +vt 0.883333 0.797980 +vt 0.908333 0.797980 +vt 0.883333 0.777778 +vt 0.883333 0.818182 +vt 0.908333 0.691919 +vt 0.883333 0.904040 +vt 0.883333 0.858586 +vt 0.908333 0.651515 +vt 0.883333 0.631313 +vt 0.908333 0.631313 +vt 0.908333 0.924242 +vt 0.908333 0.904040 +vt 0.908333 0.671717 +vt 0.883333 0.651515 +vt 0.908333 0.944444 +vt 0.883333 0.924242 +vt 0.883333 0.671717 +vt 0.908333 0.964646 +vt 0.883333 0.944444 +vt 0.204167 0.297980 +vt 0.179167 0.303030 +vt 0.179167 0.297980 +vt 0.933333 0.555556 +vt 0.908333 0.535354 +vt 0.933333 0.535354 +vt 0.908333 0.636364 +vt 0.933333 0.636364 +vt 0.933333 0.575758 +vt 0.908333 0.555556 +vt 0.920833 0.510101 +vt 0.908333 0.444444 +vt 0.920833 0.444444 +vt 0.933333 0.616162 +vt 0.908333 0.595960 +vt 0.933333 0.595960 +vt 0.908333 0.575758 +vt 0.908333 0.616162 +vt 0.908333 0.510101 +vt 0.908333 0.681818 +vt 0.920833 0.747475 +vt 0.908333 0.747475 +vt 0.933333 0.742424 +vt 0.920833 0.722222 +vt 0.933333 0.722222 +vt 0.933333 0.510101 +vt 0.920833 0.489899 +vt 0.933333 0.489899 +vt 0.920833 0.702020 +vt 0.933333 0.702020 +vt 0.920833 0.469697 +vt 0.933333 0.469697 +vt 0.920833 0.449495 +vt 0.933333 0.449495 +vt 0.204167 0.282828 +vt 0.179167 0.287879 +vt 0.179167 0.282828 +vt 0.920833 0.404040 +vt 0.908333 0.383838 +vt 0.920833 0.383838 +vt 0.920833 0.767677 +vt 0.920833 0.424242 +vt 0.908333 0.404040 +vt 0.920833 0.787879 +vt 0.908333 0.767677 +vt 0.908333 0.424242 +vt 0.920833 0.808081 +vt 0.908333 0.787879 +vt 0.450000 0.252525 +vt 0.650000 0.262626 +vt 0.450000 0.262626 +vt 0.450000 0.232323 +vt 0.650000 0.242424 +vt 0.450000 0.242424 +vt 0.450000 0.202020 +vt 0.650000 0.212121 +vt 0.450000 0.212121 +vt 0.450000 0.181818 +vt 0.650000 0.191919 +vt 0.450000 0.191919 +vt 0.650000 0.252525 +vt 0.450000 0.222222 +vt 0.650000 0.232323 +vt 0.650000 0.222222 +vt 0.650000 0.202020 +vt 0.204167 0.272727 +vt 0.179167 0.277778 +vt 0.179167 0.272727 +vt 0.204167 0.303030 +vt 0.179167 0.308081 +vt 0.204167 0.292929 +vt 0.179167 0.292929 +vt 0.204167 0.287879 +vt 0.204167 0.277778 +vt 0.204167 0.308081 +vt 0.179167 0.313131 +vt 0.087500 0.555556 +vt 0.091667 0.570707 +vt 0.087500 0.570707 +vt 0.087500 0.646465 +vt 0.091667 0.661616 +vt 0.087500 0.661616 +vt 0.087500 0.616162 +vt 0.091667 0.631313 +vt 0.087500 0.631313 +vt 0.087500 0.585859 +vt 0.091667 0.601010 +vt 0.087500 0.601010 +vt 0.087500 0.540404 +vt 0.091667 0.555556 +vt 0.091667 0.646465 +vt 0.091667 0.616162 +vt 0.091667 0.585859 +vt 0.645833 0.323232 +vt 0.612500 0.313131 +vt 0.645833 0.313131 +vt 0.645833 0.373737 +vt 0.612500 0.363636 +vt 0.645833 0.363636 +vt 0.645833 0.282828 +vt 0.612500 0.272727 +vt 0.645833 0.272727 +vt 0.645833 0.333333 +vt 0.612500 0.323232 +vt 0.612500 0.303030 +vt 0.645833 0.303030 +vt 0.612500 0.353535 +vt 0.645833 0.353535 +vt 0.612500 0.262626 +vt 0.645833 0.262626 +vt 0.612500 0.292929 +vt 0.645833 0.292929 +vt 0.612500 0.343434 +vt 0.645833 0.343434 +vt 0.645833 0.383838 +vt 0.612500 0.373737 +vt 0.612500 0.282828 +vt 0.612500 0.333333 +vt 0.700000 0.742424 +vt 0.708333 0.752525 +vt 0.700000 0.752525 +vt 0.708333 0.762626 +vt 0.700000 0.762626 +vt 0.700000 0.772727 +vt 0.708333 0.782828 +vt 0.700000 0.782828 +vt 0.700000 0.792929 +vt 0.708333 0.803030 +vt 0.700000 0.803030 +vt 0.700000 0.732323 +vt 0.708333 0.742424 +vt 0.708333 0.772727 +vt 0.708333 0.792929 +vt 0.708333 0.813131 +vt 0.700000 0.813131 +vt 0.683333 0.762626 +vt 0.675000 0.752525 +vt 0.683333 0.752525 +vt 0.683333 0.782828 +vt 0.675000 0.772727 +vt 0.683333 0.772727 +vt 0.683333 0.803030 +vt 0.675000 0.792929 +vt 0.683333 0.792929 +vt 0.683333 0.742424 +vt 0.675000 0.732323 +vt 0.683333 0.732323 +vt 0.675000 0.762626 +vt 0.675000 0.782828 +vt 0.683333 0.813131 +vt 0.675000 0.803030 +vt 0.675000 0.742424 +vt 0.133333 0.888889 +vt 0.141667 0.909091 +vt 0.133333 0.909091 +vt 0.125000 0.888889 +vt 0.125000 0.909091 +vt 0.175000 0.888889 +vt 0.183333 0.909091 +vt 0.175000 0.909091 +vt 0.158333 0.888889 +vt 0.166667 0.909091 +vt 0.158333 0.909091 +vt 0.141667 0.888889 +vt 0.150000 0.909091 +vt 0.116667 0.888889 +vt 0.116667 0.909091 +vt 0.166667 0.888889 +vt 0.150000 0.888889 +vt 0.166667 0.883838 +vt 0.158333 0.868687 +vt 0.166667 0.868687 +vt 0.141667 0.868687 +vt 0.150000 0.868687 +vt 0.125000 0.878788 +vt 0.116667 0.868687 +vt 0.125000 0.868687 +vt 0.175000 0.878788 +vt 0.175000 0.868687 +vt 0.133333 0.883838 +vt 0.133333 0.868687 +vt 0.183333 0.868687 +vt 0.183333 0.873737 +vt 0.116667 0.863636 +vt 0.125000 0.858586 +vt 0.175000 0.858586 +vt 0.150000 0.848485 +vt 0.158333 0.848485 +vt 0.141667 0.848485 +vt 0.133333 0.853535 +vt 0.183333 0.863636 +vt 0.166667 0.853535 +vt 0.166667 0.848485 +vt 0.158333 0.828283 +vt 0.166667 0.828283 +vt 0.141667 0.828283 +vt 0.150000 0.828283 +vt 0.125000 0.848485 +vt 0.116667 0.828283 +vt 0.125000 0.828283 +vt 0.175000 0.828283 +vt 0.175000 0.848485 +vt 0.133333 0.848485 +vt 0.133333 0.828283 +vt 0.183333 0.828283 +vt 0.183333 0.848485 +vt 0.820833 0.621212 +vt 0.829167 0.611111 +vt 0.829167 0.621212 +vt 0.795833 0.621212 +vt 0.804167 0.611111 +vt 0.804167 0.621212 +vt 0.870833 0.621212 +vt 0.879167 0.611111 +vt 0.879167 0.621212 +vt 0.833333 0.621212 +vt 0.841667 0.611111 +vt 0.841667 0.621212 +vt 0.808333 0.621212 +vt 0.816667 0.611111 +vt 0.816667 0.621212 +vt 0.783333 0.621212 +vt 0.791667 0.611111 +vt 0.791667 0.621212 +vt 0.858333 0.621212 +vt 0.866667 0.611111 +vt 0.866667 0.621212 +vt 0.845833 0.621212 +vt 0.854167 0.611111 +vt 0.854167 0.621212 +vt 0.858333 0.580808 +vt 0.858333 0.611111 +vt 0.870833 0.580808 +vt 0.870833 0.611111 +vt 0.783333 0.580808 +vt 0.783333 0.611111 +vt 0.795833 0.580808 +vt 0.795833 0.611111 +vt 0.808333 0.580808 +vt 0.808333 0.611111 +vt 0.820833 0.580808 +vt 0.820833 0.611111 +vt 0.833333 0.580808 +vt 0.833333 0.611111 +vt 0.845833 0.611111 +vt 0.808333 0.530303 +vt 0.883333 0.530303 +vt 0.883333 0.580808 +vt 0.845833 0.530303 +vt 0.845833 0.580808 +vt 0.820833 0.530303 +vt 0.795833 0.530303 +vt 0.870833 0.530303 +vt 0.858333 0.530303 +vt 0.833333 0.530303 +vt 0.833333 0.500000 +vt 0.820833 0.500000 +vt 0.816667 0.500000 +vt 0.795833 0.500000 +vt 0.783333 0.500000 +vt 0.783333 0.530303 +vt 0.870833 0.500000 +vt 0.858333 0.500000 +vt 0.845833 0.500000 +vt 0.808333 0.500000 +vt 0.816667 0.489899 +vt 0.791667 0.489899 +vt 0.791667 0.500000 +vt 0.866667 0.489899 +vt 0.866667 0.500000 +vt 0.854167 0.489899 +vt 0.854167 0.500000 +vt 0.829167 0.489899 +vt 0.829167 0.500000 +vt 0.804167 0.489899 +vt 0.804167 0.500000 +vt 0.879167 0.489899 +vt 0.879167 0.500000 +vt 0.841667 0.489899 +vt 0.841667 0.500000 +vt 0.858333 0.621212 +vt 0.866667 0.631313 +vt 0.858333 0.631313 +vt 0.841667 0.621212 +vt 0.850000 0.631313 +vt 0.841667 0.631313 +vt 0.891667 0.621212 +vt 0.900000 0.631313 +vt 0.891667 0.631313 +vt 0.866667 0.621212 +vt 0.875000 0.631313 +vt 0.850000 0.621212 +vt 0.833333 0.621212 +vt 0.833333 0.631313 +vt 0.883333 0.621212 +vt 0.883333 0.631313 +vt 0.875000 0.621212 +vt 0.087500 0.555556 +vt 0.091667 0.570707 +vt 0.087500 0.570707 +vt 0.087500 0.646465 +vt 0.091667 0.661616 +vt 0.087500 0.661616 +vt 0.087500 0.616162 +vt 0.091667 0.631313 +vt 0.087500 0.631313 +vt 0.087500 0.585859 +vt 0.091667 0.601010 +vt 0.087500 0.601010 +vt 0.087500 0.540404 +vt 0.091667 0.555556 +vt 0.091667 0.646465 +vt 0.091667 0.616162 +vt 0.091667 0.585859 +vt 0.133333 0.888889 +vt 0.141667 0.909091 +vt 0.133333 0.909091 +vt 0.125000 0.888889 +vt 0.125000 0.909091 +vt 0.175000 0.888889 +vt 0.183333 0.909091 +vt 0.175000 0.909091 +vt 0.158333 0.888889 +vt 0.166667 0.909091 +vt 0.158333 0.909091 +vt 0.150000 0.888889 +vt 0.150000 0.909091 +vt 0.116667 0.888889 +vt 0.116667 0.909091 +vt 0.166667 0.888889 +vt 0.166667 0.883838 +vt 0.158333 0.868687 +vt 0.166667 0.868687 +vt 0.141667 0.888889 +vt 0.150000 0.868687 +vt 0.125000 0.878788 +vt 0.116667 0.868687 +vt 0.125000 0.868687 +vt 0.175000 0.868687 +vt 0.175000 0.878788 +vt 0.133333 0.883838 +vt 0.141667 0.868687 +vt 0.133333 0.868687 +vt 0.183333 0.868687 +vt 0.183333 0.873737 +vt 0.054167 0.525253 +vt 0.020833 0.505050 +vt 0.054167 0.505050 +vt 0.020833 0.545455 +vt 0.054167 0.565657 +vt 0.020833 0.565657 +vt 0.054167 0.545455 +vt 0.020833 0.525253 +vt 0.125000 0.555556 +vt 0.133333 0.570707 +vt 0.125000 0.570707 +vt 0.125000 0.646465 +vt 0.133333 0.661616 +vt 0.125000 0.661616 +vt 0.125000 0.616162 +vt 0.133333 0.631313 +vt 0.125000 0.631313 +vt 0.125000 0.585859 +vt 0.133333 0.601010 +vt 0.125000 0.601010 +vt 0.125000 0.540404 +vt 0.133333 0.555556 +vt 0.133333 0.646465 +vt 0.133333 0.616162 +vt 0.133333 0.585859 +vt 0.133333 0.560606 +vt 0.133333 0.550505 +vt 0.133333 0.590909 +vt 0.133333 0.631313 +vt 0.133333 0.560606 +vt 0.133333 0.550505 +vt 0.133333 0.590909 +vt 0.133333 0.631313 +vt 0.829167 0.621212 +vt 0.820833 0.611111 +vt 0.829167 0.611111 +vt 0.804167 0.621212 +vt 0.795833 0.611111 +vt 0.804167 0.611111 +vt 0.879167 0.621212 +vt 0.870833 0.611111 +vt 0.879167 0.611111 +vt 0.833333 0.621212 +vt 0.841667 0.611111 +vt 0.841667 0.621212 +vt 0.816667 0.621212 +vt 0.808333 0.611111 +vt 0.816667 0.611111 +vt 0.783333 0.621212 +vt 0.791667 0.611111 +vt 0.791667 0.621212 +vt 0.858333 0.621212 +vt 0.866667 0.611111 +vt 0.866667 0.621212 +vt 0.854167 0.621212 +vt 0.845833 0.611111 +vt 0.854167 0.611111 +vt 0.858333 0.580808 +vt 0.858333 0.611111 +vt 0.870833 0.580808 +vt 0.783333 0.580808 +vt 0.783333 0.611111 +vt 0.795833 0.580808 +vt 0.820833 0.580808 +vt 0.833333 0.611111 +vt 0.845833 0.580808 +vt 0.808333 0.530303 +vt 0.808333 0.580808 +vt 0.883333 0.530303 +vt 0.883333 0.580808 +vt 0.833333 0.580808 +vt 0.845833 0.530303 +vt 0.820833 0.530303 +vt 0.795833 0.530303 +vt 0.870833 0.530303 +vt 0.858333 0.530303 +vt 0.833333 0.530303 +vt 0.841667 0.500000 +vt 0.820833 0.500000 +vt 0.816667 0.500000 +vt 0.804167 0.500000 +vt 0.783333 0.500000 +vt 0.783333 0.530303 +vt 0.870833 0.500000 +vt 0.858333 0.500000 +vt 0.845833 0.500000 +vt 0.808333 0.489899 +vt 0.816667 0.489899 +vt 0.791667 0.500000 +vt 0.783333 0.489899 +vt 0.791667 0.489899 +vt 0.866667 0.489899 +vt 0.866667 0.500000 +vt 0.854167 0.489899 +vt 0.854167 0.500000 +vt 0.829167 0.489899 +vt 0.829167 0.500000 +vt 0.795833 0.489899 +vt 0.804167 0.489899 +vt 0.879167 0.500000 +vt 0.870833 0.489899 +vt 0.879167 0.489899 +vt 0.833333 0.489899 +vt 0.841667 0.489899 +vt 0.858333 0.631313 +vt 0.866667 0.621212 +vt 0.866667 0.631313 +vt 0.841667 0.621212 +vt 0.850000 0.631313 +vt 0.841667 0.631313 +vt 0.891667 0.621212 +vt 0.900000 0.631313 +vt 0.891667 0.631313 +vt 0.875000 0.621212 +vt 0.875000 0.631313 +vt 0.850000 0.621212 +vt 0.833333 0.631313 +vt 0.883333 0.631313 +vt 0.450000 0.262626 +vt 0.908333 0.656566 +vt 0.883333 0.691919 +vt 0.883333 0.964646 +vt 0.920833 0.742424 +vt 0.908333 0.808081 +vt 0.650000 0.181818 +vt 0.204167 0.313131 +vt 0.091667 0.540404 +vt 0.612500 0.383838 +vt 0.708333 0.732323 +vt 0.675000 0.813131 +vt 0.183333 0.888889 +vt 0.116667 0.873737 +vt 0.116667 0.848485 +vt 0.808333 0.489899 +vt 0.783333 0.489899 +vt 0.858333 0.489899 +vt 0.845833 0.489899 +vt 0.820833 0.489899 +vt 0.795833 0.489899 +vt 0.870833 0.489899 +vt 0.833333 0.489899 +vt 0.900000 0.621212 +vt 0.091667 0.540404 +vt 0.183333 0.888889 +vt 0.116667 0.873737 +vt 0.133333 0.540404 +vt 0.820833 0.621212 +vt 0.795833 0.621212 +vt 0.870833 0.621212 +vt 0.808333 0.621212 +vt 0.845833 0.621212 +vt 0.833333 0.500000 +vt 0.808333 0.500000 +vt 0.795833 0.500000 +vt 0.858333 0.489899 +vt 0.845833 0.489899 +vt 0.820833 0.489899 +vt 0.858333 0.621212 +vt 0.900000 0.621212 +vt 0.833333 0.621212 +vt 0.883333 0.621212 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.0000 0.7071 -0.7071 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.9914 0.1305 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.9914 0.1305 0.0000 +vn -0.9914 -0.1305 0.0000 +vn -0.9979 -0.0651 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.9914 -0.1305 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.9979 -0.0651 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn 0.1363 -0.6737 0.7263 +vn -0.1448 0.7194 0.6794 +vn -0.1448 0.7194 -0.6794 +vn 0.2049 -0.9788 0.0000 +vn -0.0196 0.0473 0.9987 +vn -0.1866 0.9824 -0.0000 +vn -0.5294 0.5294 0.6630 +vn -0.0671 0.0671 0.9955 +vn -0.5294 0.5294 -0.6630 +vn 0.4617 -0.4617 -0.7574 +vn 0.4617 -0.4617 0.7574 +vn -0.0671 0.0671 -0.9955 +vn 0.9788 -0.2049 -0.0000 +vn 0.6737 -0.1363 -0.7263 +vn 0.6737 -0.1363 0.7263 +vn -0.9824 0.1866 -0.0000 +vn -0.7194 0.1448 0.6794 +vn -0.7194 0.1448 -0.6794 +vn -0.0473 0.0196 -0.9987 +vn -0.0473 0.0196 0.9987 +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.0809 -0.9967 +vn -0.6975 0.1644 -0.6975 +vn -0.0000 0.1644 -0.9864 +vn -0.7048 0.0809 -0.7048 +vn -0.9864 0.1644 0.0000 +vn -0.9967 0.0809 -0.0000 +vn -0.6975 0.1644 0.6975 +vn -0.7048 0.0809 0.7048 +vn 0.0000 0.1644 0.9864 +vn -0.0000 0.0809 0.9967 +vn 0.6975 0.1644 0.6975 +vn 0.7048 0.0809 0.7048 +vn 0.9864 0.1644 0.0000 +vn 0.9967 0.0809 0.0000 +vn 0.6975 0.1644 -0.6975 +vn 0.0000 -0.0809 0.9967 +vn -0.9967 -0.0809 0.0000 +vn 0.7048 -0.0809 -0.7048 +vn 0.7048 0.0809 -0.7048 +vn 0.7048 -0.0809 0.7048 +vn -0.7048 -0.0809 0.7048 +vn -0.7048 -0.0809 -0.7048 +vn -0.0000 -0.0809 -0.9967 +vn 0.9967 -0.0809 -0.0000 +vn 0.9864 -0.1644 -0.0000 +vn 0.6975 -0.1644 0.6975 +vn -0.6975 -0.1644 0.6975 +vn -0.9864 -0.1644 -0.0000 +vn -0.6975 -0.1644 -0.6975 +vn 0.0000 -0.1644 -0.9864 +vn 0.6975 -0.1644 -0.6975 +vn 0.0196 0.0473 0.9987 +vn -0.1363 -0.6737 0.7263 +vn -0.1363 -0.6737 -0.7263 +vn 0.1448 0.7194 -0.6794 +vn 0.1866 0.9824 -0.0000 +vn -0.2049 -0.9788 0.0000 +vn 0.0196 0.0473 -0.9987 +vn 0.2962 0.7150 -0.6333 +vn 0.0393 0.0948 -0.9947 +vn 0.1448 0.7194 0.6794 +vn 0.3827 0.9239 -0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.2611 -0.6303 0.7311 +vn -0.2611 -0.6303 -0.7311 +vn 0.2962 0.7150 0.6333 +vn 0.0393 0.0948 0.9947 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.3404 -0.9403 +vn 0.0000 0.3404 0.9403 +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.0572 0.0572 -0.9967 +vn -0.6094 -0.3769 -0.6975 +vn -0.1162 0.1162 -0.9864 +vn -0.5555 -0.4412 -0.7048 +vn -0.8137 -0.5812 -0.0000 +vn -0.7620 -0.6476 0.0000 +vn -0.6094 -0.3769 0.6975 +vn -0.5555 -0.4412 0.7048 +vn -0.1162 0.1162 0.9864 +vn 0.4412 0.5555 0.7048 +vn 0.3769 0.6094 0.6975 +vn 0.5812 0.8137 0.0000 +vn 0.4412 0.5555 -0.7048 +vn 0.3769 0.6094 -0.6975 +vn 0.0572 -0.0572 0.9967 +vn -0.0572 0.0572 0.9967 +vn -0.6476 -0.7620 0.0000 +vn 0.6476 0.7620 0.0000 +vn 0.5555 0.4412 -0.7048 +vn 0.5555 0.4412 0.7048 +vn -0.4412 -0.5555 0.7048 +vn -0.4412 -0.5555 -0.7048 +vn 0.0572 -0.0572 -0.9967 +vn 0.7620 0.6476 -0.0000 +vn 0.6094 0.3769 -0.6975 +vn 0.6094 0.3769 0.6975 +vn 0.1162 -0.1162 0.9864 +vn -0.5812 -0.8137 0.0000 +vn -0.3769 -0.6094 -0.6975 +vn 0.1162 -0.1162 -0.9864 +vn -0.0000 -0.1644 0.9864 +vn 0.8137 0.5812 0.0000 +vn -0.3769 -0.6094 0.6975 +s off +f 474/786/106 479/787/106 473/788/106 +f 481/789/106 656/790/106 483/791/106 +f 655/792/107 672/793/107 656/790/107 +f 484/794/106 653/795/106 482/796/106 +f 486/797/106 487/798/106 485/799/106 +f 618/800/108 477/801/108 489/802/108 +f 632/803/108 627/804/108 628/805/108 +f 631/806/107 625/807/107 627/804/107 +f 494/808/108 625/809/108 629/810/108 +f 536/811/109 538/812/109 532/813/109 +f 531/814/110 529/815/110 525/816/110 +f 559/817/110 557/818/110 553/819/110 +f 576/820/110 568/821/110 564/822/110 +f 572/823/109 574/824/109 570/825/109 +f 587/826/109 589/827/109 583/828/109 +f 592/829/110 597/830/110 595/831/110 +f 613/832/110 611/833/110 609/834/110 +f 620/835/108 471/836/108 475/837/108 +f 477/801/111 620/835/111 475/837/111 +f 621/838/108 476/839/108 472/840/108 +f 615/841/108 490/842/108 478/843/108 +f 476/839/111 615/841/111 478/843/111 +f 633/844/108 624/845/108 623/846/108 +f 617/847/112 624/845/112 634/848/112 +f 619/849/106 636/850/106 621/851/106 +f 621/852/109 474/786/109 473/788/109 +f 474/786/107 476/853/107 480/854/107 +f 473/788/112 475/855/112 471/856/112 +f 630/857/112 628/805/112 626/858/112 +f 493/859/108 626/860/108 491/861/108 +f 488/862/110 629/863/110 630/864/110 +f 616/865/108 618/800/108 626/860/108 +f 628/805/109 625/866/109 626/867/109 +f 618/868/110 623/846/110 624/845/110 +f 636/850/109 634/848/109 633/844/109 +f 623/846/107 616/869/107 615/870/107 +f 651/871/112 649/872/112 647/873/112 +f 482/874/107 480/854/107 476/853/107 +f 475/855/112 479/787/112 481/875/112 +f 488/862/107 486/797/107 484/876/107 +f 493/877/112 491/878/112 483/879/112 +f 483/879/112 489/880/112 481/875/112 +f 484/876/107 490/842/107 492/881/107 +f 654/882/112 669/883/112 653/795/112 +f 671/884/113 676/885/113 672/793/113 +f 670/886/114 673/887/114 669/883/114 +f 674/888/106 675/889/106 673/887/106 +f 670/890/109 654/891/109 656/892/109 +f 485/893/109 656/892/109 654/891/109 +f 663/894/110 673/887/110 675/889/110 +f 675/889/110 661/895/110 662/896/110 +f 669/897/110 664/898/110 665/899/110 +f 660/900/110 671/901/110 655/902/110 +f 666/903/110 653/904/110 669/897/110 +f 658/905/110 659/906/110 655/902/110 +f 667/907/110 668/908/110 653/904/110 +f 655/902/110 481/909/110 479/910/110 +f 687/911/110 683/912/110 679/913/110 +f 692/914/107 691/915/107 690/916/107 +f 703/917/112 704/918/112 700/919/112 +f 707/920/112 709/921/112 711/922/112 +f 719/923/107 717/924/107 715/925/107 +f 721/926/106 724/927/106 722/928/106 +f 728/929/108 725/930/108 726/931/108 +f 726/932/110 731/933/110 728/934/110 +f 744/935/109 737/936/109 739/937/109 +f 721/926/109 727/938/109 723/939/109 +f 724/927/107 727/940/107 728/929/107 +f 734/941/107 731/942/107 736/943/107 +f 730/944/108 733/945/108 731/933/108 +f 741/946/110 746/947/110 743/948/110 +f 749/949/109 729/950/109 734/941/109 +f 750/951/110 736/943/110 732/952/110 +f 735/953/106 739/954/106 737/955/106 +f 750/951/106 734/941/106 736/943/106 +f 743/956/108 740/957/108 741/958/108 +f 735/953/109 742/959/109 738/960/109 +f 745/961/108 748/962/108 746/947/108 +f 737/955/112 740/957/112 735/953/112 +f 745/963/112 737/955/112 749/949/112 +f 729/950/109 724/964/109 734/941/109 +f 754/965/108 751/966/108 752/967/108 +f 762/968/108 759/969/108 760/970/108 +f 753/971/109 756/972/109 751/966/109 +f 752/967/110 757/973/110 754/965/110 +f 754/965/107 758/974/107 753/971/107 +f 751/966/112 755/975/112 752/967/112 +f 761/976/109 764/977/109 759/969/109 +f 760/970/110 765/978/110 762/968/110 +f 762/968/107 766/979/107 761/976/107 +f 759/969/112 763/980/112 760/970/112 +f 768/981/115 769/982/115 767/983/115 +f 770/984/110 771/985/110 769/982/110 +f 770/984/107 768/986/107 772/987/107 +f 769/982/112 771/985/112 767/988/112 +f 817/989/106 819/990/106 813/991/106 +f 859/992/108 857/993/108 855/994/108 +f 875/995/108 873/996/108 871/997/108 +f 879/998/107 881/999/107 883/1000/107 +f 926/1001/107 918/1002/107 927/1003/107 +f 922/1004/112 919/1005/112 923/1006/112 +f 943/1007/112 941/1008/112 939/1009/112 +f 946/1010/106 947/1011/106 945/1012/106 +f 948/1013/110 949/1014/110 947/1011/110 +f 950/1015/108 951/1016/108 949/1014/108 +f 952/1017/107 948/1013/107 946/1018/107 +f 949/1014/112 945/1019/112 947/1011/112 +f 955/1020/108 954/1021/108 953/1022/108 +f 957/1023/112 962/1024/112 961/1025/112 +f 956/1026/107 959/1027/107 954/1028/107 +f 953/1029/112 957/1023/112 955/1020/112 +f 960/1030/107 963/1031/107 959/1027/107 +f 967/1032/116 965/1033/116 966/1034/116 +f 963/1031/107 968/1035/107 967/1036/107 +f 962/1024/112 965/1033/112 961/1025/112 +f 971/1037/108 970/1038/108 969/1039/108 +f 973/1040/112 978/1041/112 977/1042/112 +f 972/1043/107 975/1044/107 970/1045/107 +f 969/1046/112 973/1040/112 971/1037/112 +f 976/1047/107 979/1048/107 975/1044/107 +f 983/1049/116 981/1050/116 982/1051/116 +f 979/1048/107 984/1052/107 983/1053/107 +f 978/1041/112 981/1050/112 977/1042/112 +f 985/1054/108 988/1055/108 986/1056/108 +f 993/1057/108 996/1058/108 994/1059/108 +f 990/1060/109 987/1061/109 985/1054/109 +f 991/1062/110 986/1056/110 988/1055/110 +f 992/1063/112 988/1055/112 987/1061/112 +f 989/1064/107 985/1054/107 986/1056/107 +f 998/1065/109 995/1066/109 993/1057/109 +f 999/1067/110 994/1059/110 996/1058/110 +f 1000/1068/112 996/1058/112 995/1066/112 +f 997/1069/107 993/1057/107 994/1059/107 +f 1005/1070/114 1007/1071/114 1001/1072/114 +f 1047/1073/117 1045/1074/117 1043/1075/117 +f 1060/1076/117 1059/1077/117 1063/1078/117 +f 474/786/106 480/854/106 479/787/106 +f 481/789/106 655/792/106 656/790/106 +f 655/792/107 671/884/107 672/793/107 +f 484/794/106 654/882/106 653/795/106 +f 486/797/106 488/862/106 487/798/106 +f 618/800/108 617/1079/108 477/801/108 +f 632/803/108 631/806/108 627/804/108 +f 631/806/107 629/1080/107 625/807/107 +f 494/808/108 492/881/108 625/809/108 +f 518/1081/109 519/1082/109 520/1083/109 +f 520/1083/109 521/1084/109 523/1085/109 +f 521/1084/109 532/813/109 522/1086/109 +f 523/1085/109 521/1084/109 522/1086/109 +f 532/813/109 533/1087/109 534/1088/109 +f 534/1088/109 535/1089/109 532/813/109 +f 535/1089/109 536/811/109 532/813/109 +f 536/811/109 537/1090/109 538/812/109 +f 538/812/109 522/1086/109 532/813/109 +f 523/1085/109 524/1091/109 518/1081/109 +f 518/1081/109 520/1083/109 523/1085/109 +f 513/1092/110 512/1093/110 516/1094/110 +f 512/1093/110 511/1095/110 516/1094/110 +f 511/1095/110 517/1096/110 516/1094/110 +f 516/1094/110 515/1097/110 514/1098/110 +f 515/1097/110 531/814/110 525/816/110 +f 531/814/110 530/1099/110 529/815/110 +f 529/815/110 528/1100/110 525/816/110 +f 528/1100/110 527/1101/110 525/816/110 +f 527/1101/110 526/1102/110 525/816/110 +f 525/816/110 514/1098/110 515/1097/110 +f 514/1098/110 513/1092/110 516/1094/110 +f 546/1103/110 547/1104/110 543/1105/110 +f 547/1104/110 548/1106/110 543/1105/110 +f 548/1106/110 542/1107/110 543/1105/110 +f 543/1105/110 544/1108/110 545/1109/110 +f 544/1108/110 559/817/110 553/819/110 +f 559/817/110 558/1110/110 557/818/110 +f 557/818/110 556/1111/110 553/819/110 +f 556/1111/110 555/1112/110 553/819/110 +f 555/1112/110 554/1113/110 553/819/110 +f 553/819/110 545/1109/110 544/1108/110 +f 545/1109/110 546/1103/110 543/1105/110 +f 580/1114/110 576/820/110 564/822/110 +f 576/820/110 562/1115/110 566/1116/110 +f 576/820/110 566/1116/110 568/821/110 +f 578/1117/110 582/1118/110 564/822/110 +f 582/1118/110 580/1114/110 564/822/110 +f 581/1119/110 579/1120/110 564/822/110 +f 579/1120/110 578/1117/110 564/822/110 +f 563/1121/110 577/1122/110 567/1123/110 +f 577/1122/110 581/1119/110 564/822/110 +f 567/1123/110 577/1122/110 565/1124/110 +f 565/1124/110 577/1122/110 564/822/110 +f 552/1125/109 541/1126/109 540/1127/109 +f 540/1127/109 539/1128/109 549/1129/109 +f 560/1130/109 569/1131/109 561/1132/109 +f 569/1131/109 570/825/109 575/1133/109 +f 561/1132/109 569/1131/109 575/1133/109 +f 540/1127/109 549/1129/109 550/1134/109 +f 549/1129/109 560/1130/109 561/1132/109 +f 551/1135/109 552/1125/109 540/1127/109 +f 561/1132/109 550/1134/109 549/1129/109 +f 550/1134/109 551/1135/109 540/1127/109 +f 574/824/109 575/1133/109 570/825/109 +f 572/823/109 573/1136/109 574/824/109 +f 570/825/109 571/1137/109 572/823/109 +f 583/828/109 584/1138/109 585/1139/109 +f 585/1139/109 586/1140/109 587/826/109 +f 587/826/109 588/1141/109 589/827/109 +f 589/827/109 590/1142/109 583/828/109 +f 583/828/109 585/1139/109 587/826/109 +f 593/1143/110 591/1144/110 592/829/110 +f 592/829/110 598/1145/110 597/830/110 +f 597/830/110 596/1146/110 595/831/110 +f 595/831/110 594/1147/110 593/1143/110 +f 593/1143/110 592/829/110 595/831/110 +f 609/834/110 607/1148/110 608/1149/110 +f 608/1149/110 614/1150/110 613/832/110 +f 613/832/110 612/1151/110 611/833/110 +f 611/833/110 610/1152/110 609/834/110 +f 609/834/110 608/1149/110 613/832/110 +f 620/835/108 619/1153/108 471/836/108 +f 477/801/111 617/1079/111 620/835/111 +f 621/838/108 622/1154/108 476/839/108 +f 615/841/108 616/865/108 490/842/108 +f 476/839/111 622/1154/111 615/841/111 +f 633/844/108 634/848/108 624/845/108 +f 635/1155/112 619/1156/112 634/848/112 +f 619/1156/112 620/1157/112 634/848/112 +f 634/848/112 620/1157/112 617/847/112 +f 617/847/112 618/1158/112 624/845/112 +f 619/849/106 635/1159/106 636/850/106 +f 473/788/109 471/1160/109 619/1161/109 +f 621/852/109 472/1162/109 474/786/109 +f 473/788/109 619/1161/109 621/852/109 +f 474/786/107 472/1163/107 476/853/107 +f 473/788/112 479/787/112 475/855/112 +f 630/857/112 632/803/112 628/805/112 +f 493/859/108 630/1164/108 626/860/108 +f 493/1165/110 487/798/110 630/864/110 +f 487/798/110 488/862/110 630/864/110 +f 488/862/110 494/1166/110 629/863/110 +f 629/863/110 631/1167/110 632/1168/110 +f 629/863/110 632/1168/110 630/864/110 +f 618/800/108 489/802/108 491/861/108 +f 626/860/108 625/809/108 616/865/108 +f 625/809/108 492/881/108 616/865/108 +f 618/800/108 491/861/108 626/860/108 +f 492/881/108 490/842/108 616/865/108 +f 628/805/109 627/804/109 625/866/109 +f 618/868/110 616/1169/110 623/846/110 +f 636/850/109 635/1159/109 634/848/109 +f 615/870/107 622/1170/107 633/844/107 +f 622/1170/107 621/1171/107 633/844/107 +f 621/1171/107 636/1172/107 633/844/107 +f 633/844/107 623/846/107 615/870/107 +f 647/873/112 645/1173/112 646/1174/112 +f 646/1174/112 652/1175/112 651/871/112 +f 651/871/112 650/1176/112 649/872/112 +f 649/872/112 648/1177/112 647/873/112 +f 647/873/112 646/1174/112 651/871/112 +f 476/853/107 478/843/107 482/874/107 +f 478/843/107 490/842/107 482/874/107 +f 489/880/112 477/1178/112 481/875/112 +f 477/1178/112 475/855/112 481/875/112 +f 484/876/107 492/881/107 494/808/107 +f 494/808/107 488/862/107 484/876/107 +f 483/879/112 485/1179/112 487/1180/112 +f 487/1180/112 493/877/112 483/879/112 +f 483/879/112 491/878/112 489/880/112 +f 484/876/107 482/874/107 490/842/107 +f 654/882/112 670/886/112 669/883/112 +f 671/884/113 675/889/113 676/885/113 +f 670/886/114 674/888/114 673/887/114 +f 674/888/106 676/885/106 675/889/106 +f 656/892/109 672/1181/109 670/890/109 +f 672/1181/109 676/885/109 670/890/109 +f 676/885/109 674/888/109 670/890/109 +f 484/1182/109 486/1183/109 654/891/109 +f 486/1183/109 485/893/109 654/891/109 +f 485/893/109 483/1184/109 656/892/109 +f 675/889/110 662/896/110 663/894/110 +f 663/894/110 664/898/110 673/887/110 +f 675/889/110 671/901/110 661/895/110 +f 669/897/110 673/887/110 664/898/110 +f 660/900/110 661/895/110 671/901/110 +f 655/902/110 659/906/110 660/900/110 +f 666/903/110 667/907/110 653/904/110 +f 669/897/110 665/899/110 666/903/110 +f 479/910/110 480/1185/110 657/1186/110 +f 480/1185/110 482/1187/110 653/904/110 +f 657/1186/110 480/1185/110 668/908/110 +f 653/904/110 668/908/110 480/1185/110 +f 657/1186/110 658/905/110 479/910/110 +f 658/905/110 655/902/110 479/910/110 +f 679/913/110 677/1188/110 678/1189/110 +f 678/1189/110 688/1190/110 679/913/110 +f 688/1190/110 687/911/110 679/913/110 +f 687/911/110 686/1191/110 683/912/110 +f 686/1191/110 685/1192/110 683/912/110 +f 685/1192/110 684/1193/110 683/912/110 +f 683/912/110 682/1194/110 681/1195/110 +f 681/1195/110 680/1196/110 683/912/110 +f 680/1196/110 679/913/110 683/912/110 +f 690/916/107 689/1197/107 696/1198/107 +f 696/1198/107 695/1199/107 690/916/107 +f 695/1199/107 694/1200/107 690/916/107 +f 694/1200/107 693/1201/107 690/916/107 +f 693/1201/107 692/914/107 690/916/107 +f 704/918/112 697/1202/112 700/919/112 +f 697/1202/112 698/1203/112 700/919/112 +f 698/1203/112 699/1204/112 700/919/112 +f 700/919/112 701/1205/112 702/1206/112 +f 702/1206/112 703/917/112 700/919/112 +f 705/1207/112 706/1208/112 707/920/112 +f 707/920/112 708/1209/112 709/921/112 +f 709/921/112 710/1210/112 711/922/112 +f 711/922/112 712/1211/112 705/1207/112 +f 705/1207/112 707/920/112 711/922/112 +f 715/925/107 713/1212/107 714/1213/107 +f 714/1213/107 720/1214/107 719/923/107 +f 719/923/107 718/1215/107 717/924/107 +f 717/924/107 716/1216/107 715/925/107 +f 715/925/107 714/1213/107 719/923/107 +f 721/926/106 723/939/106 724/927/106 +f 728/929/108 727/940/108 725/930/108 +f 726/932/110 730/944/110 731/933/110 +f 744/935/109 749/949/109 737/936/109 +f 721/926/109 725/1217/109 727/938/109 +f 724/927/107 723/939/107 727/940/107 +f 734/941/107 724/927/107 731/942/107 +f 724/927/107 728/929/107 731/942/107 +f 731/942/107 733/1218/107 736/943/107 +f 730/944/108 732/952/108 733/945/108 +f 741/946/110 745/961/110 746/947/110 +f 749/949/109 744/935/109 729/950/109 +f 733/945/110 732/952/110 736/943/110 +f 732/952/110 748/962/110 750/951/110 +f 748/962/110 747/1219/110 750/951/110 +f 735/953/106 738/960/106 739/954/106 +f 750/951/106 749/949/106 734/941/106 +f 743/956/108 742/1220/108 740/957/108 +f 735/953/109 740/1221/109 742/959/109 +f 745/961/108 747/1219/108 748/962/108 +f 737/955/112 741/958/112 740/957/112 +f 745/963/112 741/958/112 737/955/112 +f 749/949/112 750/951/112 745/963/112 +f 750/951/112 747/1222/112 745/963/112 +f 729/950/109 722/1223/109 724/964/109 +f 754/965/108 753/971/108 751/966/108 +f 762/968/108 761/976/108 759/969/108 +f 753/971/109 758/1224/109 756/972/109 +f 752/967/110 755/1225/110 757/973/110 +f 754/965/107 757/1226/107 758/974/107 +f 751/966/112 756/1227/112 755/975/112 +f 761/976/109 766/1228/109 764/977/109 +f 760/970/110 763/1229/110 765/978/110 +f 762/968/107 765/1230/107 766/979/107 +f 759/969/112 764/1231/112 763/980/112 +f 768/981/115 770/984/115 769/982/115 +f 770/984/110 772/987/110 771/985/110 +f 813/991/106 814/1232/106 815/1233/106 +f 815/1233/106 816/1234/106 817/989/106 +f 817/989/106 818/1235/106 819/990/106 +f 819/990/106 820/1236/106 813/991/106 +f 813/991/106 815/1233/106 817/989/106 +f 855/994/108 853/1237/108 854/1238/108 +f 854/1238/108 860/1239/108 859/992/108 +f 859/992/108 858/1240/108 857/993/108 +f 857/993/108 856/1241/108 855/994/108 +f 855/994/108 854/1238/108 859/992/108 +f 871/997/108 870/1242/108 869/1243/108 +f 869/1243/108 876/1244/108 875/995/108 +f 875/995/108 874/1245/108 873/996/108 +f 873/996/108 872/1246/108 871/997/108 +f 871/997/108 869/1243/108 875/995/108 +f 877/1247/107 878/1248/107 879/998/107 +f 879/998/107 880/1249/107 881/999/107 +f 881/999/107 882/1250/107 883/1000/107 +f 883/1000/107 884/1251/107 877/1247/107 +f 877/1247/107 879/998/107 883/1000/107 +f 918/1002/107 920/1252/107 927/1003/107 +f 927/1003/107 928/1253/107 925/1254/107 +f 925/1254/107 926/1001/107 927/1003/107 +f 919/1005/112 917/1255/112 923/1006/112 +f 923/1006/112 924/1256/112 921/1257/112 +f 921/1257/112 922/1004/112 923/1006/112 +f 939/1009/112 937/1258/112 938/1259/112 +f 938/1259/112 944/1260/112 943/1007/112 +f 943/1007/112 942/1261/112 941/1008/112 +f 941/1008/112 940/1262/112 939/1009/112 +f 939/1009/112 938/1259/112 943/1007/112 +f 946/1010/106 948/1013/106 947/1011/106 +f 948/1013/110 950/1015/110 949/1014/110 +f 950/1015/108 952/1263/108 951/1016/108 +f 952/1017/107 950/1015/107 948/1013/107 +f 949/1014/112 951/1264/112 945/1019/112 +f 955/1020/108 956/1026/108 954/1021/108 +f 957/1023/112 958/1265/112 962/1024/112 +f 956/1026/107 960/1030/107 959/1027/107 +f 953/1029/112 958/1265/112 957/1023/112 +f 960/1030/107 964/1266/107 963/1031/107 +f 967/1032/116 968/1035/116 965/1033/116 +f 963/1031/107 964/1266/107 968/1035/107 +f 962/1024/112 966/1267/112 965/1033/112 +f 971/1037/108 972/1043/108 970/1038/108 +f 973/1040/112 974/1268/112 978/1041/112 +f 972/1043/107 976/1047/107 975/1044/107 +f 969/1046/112 974/1268/112 973/1040/112 +f 976/1047/107 980/1269/107 979/1048/107 +f 983/1049/116 984/1052/116 981/1050/116 +f 979/1048/107 980/1269/107 984/1052/107 +f 978/1041/112 982/1270/112 981/1050/112 +f 985/1054/108 987/1061/108 988/1055/108 +f 993/1057/108 995/1066/108 996/1058/108 +f 990/1060/109 992/1271/109 987/1061/109 +f 991/1062/110 989/1272/110 986/1056/110 +f 992/1063/112 991/1273/112 988/1055/112 +f 989/1064/107 990/1274/107 985/1054/107 +f 998/1065/109 1000/1275/109 995/1066/109 +f 999/1067/110 997/1276/110 994/1059/110 +f 1000/1068/112 999/1277/112 996/1058/112 +f 997/1069/107 998/1278/107 993/1057/107 +f 1001/1072/114 1002/1279/114 1003/1280/114 +f 1003/1280/114 1004/1281/114 1005/1070/114 +f 1005/1070/114 1006/1282/114 1007/1071/114 +f 1007/1071/114 1008/1283/114 1001/1072/114 +f 1001/1072/114 1003/1280/114 1005/1070/114 +f 1043/1075/117 1041/1284/117 1042/1285/117 +f 1042/1285/117 1048/1286/117 1047/1073/117 +f 1047/1073/117 1046/1287/117 1045/1074/117 +f 1045/1074/117 1044/1288/117 1043/1075/117 +f 1043/1075/117 1042/1285/117 1047/1073/117 +f 1059/1077/117 1058/1289/117 1063/1078/117 +f 1058/1289/117 1057/1290/117 1063/1078/117 +f 1057/1290/117 1064/1291/117 1063/1078/117 +f 1063/1078/117 1062/1292/117 1061/1293/117 +f 1061/1293/117 1060/1076/117 1063/1078/117 +s 1 +f 509/1294/107 502/1295/113 501/1296/107 +f 507/1297/108 500/1298/117 499/1299/108 +f 505/1300/112 498/1301/118 497/1302/112 +f 503/1303/106 496/1304/114 495/1305/106 +f 510/1306/113 495/1305/106 502/1295/113 +f 508/1307/117 501/1296/107 500/1298/117 +f 506/1308/118 499/1309/108 498/1301/118 +f 504/1310/114 497/1302/112 496/1304/114 +f 514/1311/119 520/1312/120 513/1313/120 +f 516/1314/121 522/1315/122 515/1316/122 +f 545/1317/119 553/1318/123 562/1319/124 +f 517/1320/125 523/1321/121 516/1314/121 +f 512/1322/126 518/1323/106 511/1324/106 +f 511/1324/106 524/1325/125 517/1320/125 +f 513/1313/120 519/1326/126 512/1322/126 +f 522/1315/122 531/1327/127 515/1316/122 +f 514/1311/119 532/1328/123 521/1329/119 +f 529/1330/128 535/1331/108 528/1332/108 +f 526/1333/129 532/1328/123 525/1334/123 +f 530/1335/130 536/1336/128 529/1330/128 +f 527/1337/131 533/1338/129 526/1333/129 +f 531/1327/127 537/1339/130 530/1335/130 +f 528/1340/108 534/1341/131 527/1337/131 +f 607/1342/114 601/1343/112 599/1344/114 +f 543/1345/121 550/1346/122 544/1347/122 +f 545/1317/119 539/1348/120 546/1349/120 +f 542/1350/125 551/1351/121 543/1345/121 +f 563/1352/132 575/1353/127 577/1354/127 +f 547/1355/126 541/1356/106 548/1357/106 +f 548/1357/106 552/1358/125 542/1350/125 +f 546/1349/120 540/1359/126 547/1355/126 +f 550/1346/122 561/1360/107 563/1352/132 +f 560/1361/112 576/1362/123 569/1363/123 +f 556/1364/108 568/1365/131 555/1366/131 +f 559/1367/127 567/1368/130 558/1369/130 +f 555/1366/131 566/1370/129 554/1371/129 +f 558/1369/130 565/1372/128 557/1373/128 +f 554/1371/129 562/1319/124 553/1318/123 +f 557/1373/128 564/1374/108 556/1375/108 +f 613/1376/107 606/1377/113 605/1378/107 +f 579/1379/128 572/1380/108 578/1381/108 +f 580/1382/129 569/1363/123 576/1362/123 +f 581/1383/130 573/1384/128 579/1379/128 +f 582/1385/131 570/1386/129 580/1382/129 +f 577/1354/127 574/1387/130 581/1383/130 +f 578/1388/108 571/1389/131 582/1385/131 +f 586/1390/118 595/1391/108 587/1392/108 +f 584/1393/114 593/1394/112 585/1395/112 +f 589/1396/107 598/1397/113 590/1398/113 +f 587/1399/108 596/1400/117 588/1401/117 +f 585/1395/112 594/1402/118 586/1390/118 +f 583/1403/106 591/1404/114 584/1393/114 +f 590/1398/113 592/1405/106 583/1403/106 +f 588/1401/117 597/1406/107 589/1396/107 +f 611/1407/108 604/1408/117 603/1409/108 +f 609/1410/112 602/1411/118 601/1343/112 +f 608/1412/106 599/1344/114 600/1413/106 +f 614/1414/113 600/1413/106 606/1377/113 +f 612/1415/117 605/1378/107 604/1408/117 +f 610/1416/118 603/1417/108 602/1411/118 +f 644/1418/133 646/1419/110 637/1420/110 +f 642/1421/111 651/1422/108 643/1423/108 +f 640/1424/134 649/1425/109 641/1426/109 +f 638/1427/116 647/1428/106 639/1429/106 +f 643/1430/108 652/1431/133 644/1418/133 +f 641/1426/109 650/1432/111 642/1421/111 +f 639/1429/106 648/1433/134 640/1424/134 +f 637/1420/110 645/1434/116 638/1427/116 +f 657/1435/108 677/1436/128 658/1437/128 +f 664/1438/126 685/1439/120 665/1440/120 +f 661/1441/121 682/1442/125 662/1443/125 +f 668/1444/131 678/1445/108 657/1435/108 +f 658/1437/128 679/1446/130 659/1447/130 +f 665/1440/120 686/1448/112 666/1449/112 +f 662/1443/125 683/1450/106 663/1451/106 +f 659/1447/130 680/1452/107 660/1453/107 +f 666/1449/112 687/1454/129 667/1455/129 +f 663/1456/106 684/1457/126 664/1438/126 +f 660/1453/107 681/1458/121 661/1441/121 +f 667/1455/129 688/1459/131 668/1444/131 +f 690/1460/133 697/1461/110 689/1462/110 +f 689/1462/110 704/1463/116 696/1464/116 +f 695/1465/106 702/1466/134 694/1467/134 +f 693/1468/109 700/1469/111 692/1470/111 +f 691/1471/108 698/1472/133 690/1460/133 +f 696/1464/116 703/1473/106 695/1465/106 +f 694/1467/134 701/1474/109 693/1468/109 +f 692/1470/111 699/1475/108 691/1476/108 +f 712/1477/116 714/1478/110 705/1479/110 +f 710/1480/134 719/1481/106 711/1482/106 +f 708/1483/111 717/1484/109 709/1485/109 +f 706/1486/133 715/1487/108 707/1488/108 +f 711/1482/106 720/1489/116 712/1477/116 +f 709/1485/109 718/1490/134 710/1480/134 +f 707/1491/108 716/1492/111 708/1483/111 +f 705/1479/110 713/1493/133 706/1486/133 +f 781/1494/135 774/1495/116 773/1496/110 +f 788/1497/136 773/1496/110 780/1498/133 +f 786/1499/137 779/1500/108 778/1501/111 +f 784/1502/138 777/1503/109 776/1504/134 +f 782/1505/139 775/1506/106 774/1495/116 +f 787/1507/140 780/1498/133 779/1508/108 +f 785/1509/141 778/1501/111 777/1503/109 +f 783/1510/142 776/1504/134 775/1506/106 +f 785/1511/141 793/1512/143 794/1513/144 +f 783/1510/142 791/1514/145 792/1515/114 +f 788/1516/136 796/1517/117 797/1518/146 +f 786/1519/137 794/1513/144 795/1520/147 +f 783/1510/142 793/1512/143 784/1502/138 +f 781/1521/135 791/1514/145 782/1505/139 +f 788/1516/136 790/1522/148 781/1521/135 +f 786/1519/137 796/1523/117 787/1524/140 +f 797/1518/146 804/1525/149 805/1526/150 +f 794/1513/144 803/1527/151 795/1520/147 +f 793/1512/143 800/1528/152 801/1529/153 +f 790/1522/148 799/1530/154 791/1514/145 +f 797/1518/146 798/1531/155 790/1522/148 +f 796/1523/117 803/1527/151 804/1532/149 +f 794/1513/144 801/1529/153 802/1533/156 +f 792/1515/114 799/1530/154 800/1528/152 +f 802/1534/156 808/1535/157 809/1536/109 +f 800/1528/152 806/1537/158 807/1538/112 +f 805/1539/150 811/1540/107 812/1541/159 +f 802/1534/156 810/1542/160 803/1543/151 +f 800/1528/152 808/1535/157 801/1529/153 +f 798/1544/155 806/1537/158 799/1530/154 +f 805/1539/150 789/1545/110 798/1544/155 +f 803/1543/151 811/1546/107 804/1547/149 +f 818/1548/160 827/1549/107 819/1550/107 +f 816/1551/157 825/1552/109 817/1553/109 +f 814/1554/158 823/1555/112 815/1556/112 +f 819/1557/107 828/1558/159 820/1559/159 +f 817/1560/109 826/1561/160 818/1562/160 +f 815/1563/112 824/1564/157 816/1565/157 +f 813/1566/110 821/1567/158 814/1568/158 +f 820/1569/159 822/1570/110 813/1571/110 +f 829/1572/161 821/1567/162 822/1573/163 +f 830/1574/164 823/1555/165 821/1575/162 +f 831/1576/166 824/1564/167 823/1577/165 +f 832/1578/168 825/1552/169 824/1579/167 +f 833/1580/170 826/1561/171 825/1581/169 +f 834/1582/172 827/1549/173 826/1583/171 +f 835/1584/174 828/1558/175 827/1585/173 +f 828/1586/175 829/1572/161 822/1570/163 +f 832/1578/168 841/1587/176 833/1580/170 +f 830/1574/164 839/1588/177 831/1589/166 +f 835/1584/174 844/1590/178 836/1591/179 +f 833/1580/170 842/1592/180 834/1582/172 +f 831/1576/166 840/1593/181 832/1578/168 +f 829/1572/161 838/1594/182 830/1574/164 +f 836/1591/179 837/1595/183 829/1572/161 +f 834/1582/172 843/1596/184 835/1584/174 +f 851/1597/185 844/1590/178 843/1596/184 +f 850/1598/186 843/1596/184 842/1592/180 +f 841/1587/176 850/1599/186 842/1592/180 +f 848/1600/187 841/1587/176 840/1593/181 +f 847/1601/188 840/1593/181 839/1602/177 +f 845/1603/189 839/1588/177 838/1594/182 +f 846/1604/190 838/1594/182 837/1595/183 +f 852/1605/191 837/1595/183 844/1590/178 +f 849/1606/109 858/1607/160 850/1599/160 +f 847/1601/112 856/1608/157 848/1609/157 +f 846/1604/110 853/1610/158 845/1611/158 +f 852/1605/159 854/1612/110 846/1613/110 +f 850/1598/160 859/1614/107 851/1615/107 +f 848/1600/157 857/1616/109 849/1617/109 +f 845/1603/158 855/1618/112 847/1619/112 +f 851/1597/107 860/1620/159 852/1621/159 +f 874/1622/160 867/1623/107 866/1624/160 +f 872/1625/157 865/1626/109 864/1627/157 +f 870/1628/158 863/1629/112 862/1630/158 +f 875/1631/107 868/1632/159 867/1623/107 +f 873/1633/109 866/1624/160 865/1626/109 +f 871/1634/112 864/1627/157 863/1635/112 +f 869/1636/110 862/1630/158 861/1637/110 +f 876/1638/159 861/1637/110 868/1632/159 +f 884/1639/133 886/1640/110 877/1641/110 +f 882/1642/111 891/1643/108 883/1644/108 +f 880/1645/134 889/1646/109 881/1647/109 +f 878/1648/116 887/1649/106 879/1650/106 +f 883/1651/108 892/1652/133 884/1639/133 +f 881/1647/109 890/1653/111 882/1642/111 +f 879/1650/106 888/1654/134 880/1645/134 +f 877/1641/110 885/1655/116 878/1648/116 +f 901/1656/192 894/1657/134 893/1658/109 +f 908/1659/193 893/1658/109 900/1660/111 +f 906/1661/194 899/1662/108 898/1663/133 +f 904/1664/195 897/1665/110 896/1666/116 +f 894/1657/134 903/1667/196 895/1668/106 +f 907/1669/197 900/1660/111 899/1670/108 +f 905/1671/198 898/1663/133 897/1665/110 +f 903/1667/196 896/1666/116 895/1668/106 +f 905/1672/198 912/1673/199 913/1674/200 +f 902/1675/201 911/1676/202 903/1667/196 +f 908/1677/193 915/1678/203 916/1679/204 +f 905/1672/198 914/1680/205 906/1681/194 +f 903/1667/196 912/1673/199 904/1664/195 +f 901/1682/192 910/1683/206 902/1675/201 +f 908/1677/193 909/1684/207 901/1682/192 +f 906/1681/194 915/1685/203 907/1686/197 +f 922/1687/208 920/1688/110 919/1689/110 +f 926/1690/209 917/1691/109 918/1692/109 +f 925/1254/210 921/1257/211 924/1256/210 +f 926/1690/209 924/1256/210 923/1693/209 +f 922/1687/208 928/1253/211 927/1694/208 +f 936/1695/133 938/1696/110 929/1697/110 +f 934/1698/111 943/1699/108 935/1700/108 +f 932/1701/134 941/1702/109 933/1703/109 +f 930/1704/116 939/1705/106 931/1706/106 +f 935/1707/108 944/1708/133 936/1695/133 +f 933/1703/109 942/1709/111 934/1698/111 +f 931/1706/106 940/1710/134 932/1701/134 +f 929/1697/110 937/1711/116 930/1704/116 +f 955/1020/110 960/1030/212 956/1026/110 +f 954/1028/109 958/1712/213 953/1713/109 +f 961/1025/212 968/1035/110 964/1266/212 +f 957/1023/212 964/1266/212 960/1030/212 +f 959/1027/213 962/1714/213 958/1712/213 +f 963/1031/213 966/1715/109 962/1714/213 +f 971/1037/110 976/1047/212 972/1043/110 +f 970/1045/109 974/1716/213 969/1717/109 +f 977/1042/212 984/1052/110 980/1269/212 +f 973/1040/212 980/1269/212 976/1047/212 +f 975/1044/213 978/1718/213 974/1716/213 +f 979/1048/213 982/1719/109 978/1718/213 +f 1007/1720/113 1014/1721/214 1015/1722/113 +f 1005/1723/109 1012/1724/215 1013/1725/109 +f 1003/1726/118 1009/1727/216 1011/1728/118 +f 1007/1729/113 1016/1730/217 1008/1731/217 +f 1006/1732/214 1013/1733/109 1014/1734/214 +f 1003/1735/118 1012/1736/215 1004/1737/215 +f 1001/1738/110 1009/1739/216 1002/1740/216 +f 1001/1741/110 1016/1742/217 1010/1743/110 +f 1017/1744/218 1009/1739/219 1010/1745/220 +f 1018/1746/221 1011/1728/222 1009/1727/219 +f 1019/1747/223 1012/1736/224 1011/1748/222 +f 1020/1749/225 1013/1725/226 1012/1724/224 +f 1013/1733/226 1022/1750/227 1014/1734/228 +f 1022/1750/227 1015/1722/229 1014/1721/228 +f 1015/1751/229 1024/1752/230 1016/1730/231 +f 1024/1752/230 1010/1743/220 1016/1742/231 +f 1020/1749/225 1029/1753/232 1021/1754/233 +f 1018/1746/221 1027/1755/234 1019/1756/223 +f 1023/1757/235 1032/1758/236 1024/1752/230 +f 1022/1750/227 1029/1753/232 1030/1759/237 +f 1019/1747/223 1028/1760/238 1020/1749/225 +f 1017/1744/218 1026/1761/239 1018/1746/221 +f 1024/1752/230 1025/1762/240 1017/1744/218 +f 1023/1757/235 1030/1759/237 1031/1763/241 +f 1031/1763/241 1040/1764/242 1032/1758/236 +f 1038/1765/243 1031/1763/241 1030/1759/237 +f 1029/1753/232 1038/1766/243 1030/1759/237 +f 1028/1760/238 1037/1767/244 1029/1753/232 +f 1035/1768/245 1028/1760/238 1027/1769/234 +f 1033/1770/246 1027/1755/234 1026/1761/239 +f 1034/1771/247 1026/1761/239 1025/1762/240 +f 1040/1772/242 1025/1762/240 1032/1758/236 +f 1038/1766/214 1045/1773/109 1046/1774/214 +f 1036/1775/215 1043/1776/118 1044/1777/215 +f 1034/1771/110 1041/1778/216 1033/1779/216 +f 1040/1772/217 1042/1780/110 1034/1781/110 +f 1038/1765/214 1047/1782/113 1039/1783/113 +f 1037/1767/109 1044/1784/215 1045/1785/109 +f 1035/1786/118 1041/1787/216 1043/1788/118 +f 1040/1764/217 1047/1789/113 1048/1790/217 +f 1054/1791/214 1063/1792/113 1055/1793/113 +f 1060/1794/215 1053/1795/109 1052/1796/215 +f 1058/1797/216 1051/1798/118 1050/1799/216 +f 1055/1793/113 1064/1800/217 1056/1801/217 +f 1061/1802/109 1054/1791/214 1053/1795/109 +f 1051/1803/118 1060/1794/215 1052/1796/215 +f 1049/1804/110 1058/1797/216 1050/1799/216 +f 1064/1800/217 1049/1804/110 1056/1801/217 +f 509/1294/107 510/1306/113 502/1295/113 +f 507/1297/108 508/1307/117 500/1298/117 +f 505/1300/112 506/1308/118 498/1301/118 +f 503/1303/106 504/1310/114 496/1304/114 +f 510/1306/113 503/1303/106 495/1305/106 +f 508/1307/117 509/1294/107 501/1296/107 +f 506/1308/118 507/1805/108 499/1309/108 +f 504/1310/114 505/1300/112 497/1302/112 +f 514/1311/119 521/1329/119 520/1312/120 +f 516/1314/121 523/1321/121 522/1315/122 +f 560/1361/112 549/1806/119 562/1319/124 +f 549/1806/119 545/1317/119 562/1319/124 +f 517/1320/125 524/1325/125 523/1321/121 +f 512/1322/126 519/1326/126 518/1323/106 +f 511/1324/106 518/1323/106 524/1325/125 +f 513/1313/120 520/1312/120 519/1326/126 +f 522/1315/122 538/1807/127 531/1327/127 +f 514/1311/119 525/1334/123 532/1328/123 +f 529/1330/128 536/1336/128 535/1331/108 +f 526/1333/129 533/1338/129 532/1328/123 +f 530/1335/130 537/1339/130 536/1336/128 +f 527/1337/131 534/1341/131 533/1338/129 +f 531/1327/127 538/1807/127 537/1339/130 +f 528/1340/108 535/1808/108 534/1341/131 +f 607/1342/114 609/1410/112 601/1343/112 +f 543/1345/121 551/1351/121 550/1346/122 +f 545/1317/119 549/1806/119 539/1348/120 +f 542/1350/125 552/1358/125 551/1351/121 +f 563/1352/132 561/1360/107 575/1353/127 +f 547/1355/126 540/1359/126 541/1356/106 +f 548/1357/106 541/1356/106 552/1358/125 +f 546/1349/120 539/1348/120 540/1359/126 +f 559/1367/127 544/1347/122 563/1352/132 +f 544/1347/122 550/1346/122 563/1352/132 +f 560/1361/112 562/1319/124 576/1362/123 +f 556/1364/108 564/1809/108 568/1365/131 +f 559/1367/127 563/1352/132 567/1368/130 +f 555/1366/131 568/1365/131 566/1370/129 +f 558/1369/130 567/1368/130 565/1372/128 +f 554/1371/129 566/1370/129 562/1319/124 +f 557/1373/128 565/1372/128 564/1374/108 +f 613/1376/107 614/1414/113 606/1377/113 +f 579/1379/128 573/1384/128 572/1380/108 +f 580/1382/129 570/1386/129 569/1363/123 +f 581/1383/130 574/1387/130 573/1384/128 +f 582/1385/131 571/1389/131 570/1386/129 +f 577/1354/127 575/1353/127 574/1387/130 +f 578/1388/108 572/1810/108 571/1389/131 +f 586/1390/118 594/1402/118 595/1391/108 +f 584/1393/114 591/1404/114 593/1394/112 +f 589/1396/107 597/1406/107 598/1397/113 +f 587/1399/108 595/1811/108 596/1400/117 +f 585/1395/112 593/1394/112 594/1402/118 +f 583/1403/106 592/1405/106 591/1404/114 +f 590/1398/113 598/1397/113 592/1405/106 +f 588/1401/117 596/1400/117 597/1406/107 +f 611/1407/108 612/1415/117 604/1408/117 +f 609/1410/112 610/1416/118 602/1411/118 +f 608/1412/106 607/1342/114 599/1344/114 +f 614/1414/113 608/1412/106 600/1413/106 +f 612/1415/117 613/1376/107 605/1378/107 +f 610/1416/118 611/1812/108 603/1417/108 +f 644/1418/133 652/1431/133 646/1419/110 +f 642/1421/111 650/1432/111 651/1422/108 +f 640/1424/134 648/1433/134 649/1425/109 +f 638/1427/116 645/1434/116 647/1428/106 +f 643/1430/108 651/1813/108 652/1431/133 +f 641/1426/109 649/1425/109 650/1432/111 +f 639/1429/106 647/1428/106 648/1433/134 +f 637/1420/110 646/1419/110 645/1434/116 +f 657/1435/108 678/1445/108 677/1436/128 +f 664/1438/126 684/1457/126 685/1439/120 +f 661/1441/121 681/1458/121 682/1442/125 +f 668/1444/131 688/1459/131 678/1445/108 +f 658/1437/128 677/1436/128 679/1446/130 +f 665/1440/120 685/1439/120 686/1448/112 +f 662/1443/125 682/1442/125 683/1450/106 +f 659/1447/130 679/1446/130 680/1452/107 +f 666/1449/112 686/1448/112 687/1454/129 +f 663/1456/106 683/1814/106 684/1457/126 +f 660/1453/107 680/1452/107 681/1458/121 +f 667/1455/129 687/1454/129 688/1459/131 +f 690/1460/133 698/1472/133 697/1461/110 +f 689/1462/110 697/1461/110 704/1463/116 +f 695/1465/106 703/1473/106 702/1466/134 +f 693/1468/109 701/1474/109 700/1469/111 +f 691/1471/108 699/1815/108 698/1472/133 +f 696/1464/116 704/1463/116 703/1473/106 +f 694/1467/134 702/1466/134 701/1474/109 +f 692/1470/111 700/1469/111 699/1475/108 +f 712/1477/116 720/1489/116 714/1478/110 +f 710/1480/134 718/1490/134 719/1481/106 +f 708/1483/111 716/1492/111 717/1484/109 +f 706/1486/133 713/1493/133 715/1487/108 +f 711/1482/106 719/1481/106 720/1489/116 +f 709/1485/109 717/1484/109 718/1490/134 +f 707/1491/108 715/1816/108 716/1492/111 +f 705/1479/110 714/1478/110 713/1493/133 +f 781/1494/135 782/1505/139 774/1495/116 +f 788/1497/136 781/1494/135 773/1496/110 +f 786/1499/137 787/1817/140 779/1500/108 +f 784/1502/138 785/1509/141 777/1503/109 +f 782/1505/139 783/1510/142 775/1506/106 +f 787/1507/140 788/1497/136 780/1498/133 +f 785/1509/141 786/1499/137 778/1501/111 +f 783/1510/142 784/1502/138 776/1504/134 +f 785/1511/141 784/1502/138 793/1512/143 +f 783/1510/142 782/1505/139 791/1514/145 +f 788/1516/136 787/1818/140 796/1517/117 +f 786/1519/137 785/1511/141 794/1513/144 +f 783/1510/142 792/1515/114 793/1512/143 +f 781/1521/135 790/1522/148 791/1514/145 +f 788/1516/136 797/1518/146 790/1522/148 +f 786/1519/137 795/1520/147 796/1523/117 +f 797/1518/146 796/1517/117 804/1525/149 +f 794/1513/144 802/1533/156 803/1527/151 +f 793/1512/143 792/1515/114 800/1528/152 +f 790/1522/148 798/1531/155 799/1530/154 +f 797/1518/146 805/1526/150 798/1531/155 +f 796/1523/117 795/1520/147 803/1527/151 +f 794/1513/144 793/1512/143 801/1529/153 +f 792/1515/114 791/1514/145 799/1530/154 +f 802/1534/156 801/1529/153 808/1535/157 +f 800/1528/152 799/1530/154 806/1537/158 +f 805/1539/150 804/1819/149 811/1540/107 +f 802/1534/156 809/1536/109 810/1542/160 +f 800/1528/152 807/1538/112 808/1535/157 +f 798/1544/155 789/1545/110 806/1537/158 +f 805/1539/150 812/1541/159 789/1545/110 +f 803/1543/151 810/1542/160 811/1546/107 +f 818/1548/160 826/1583/160 827/1549/107 +f 816/1551/157 824/1579/157 825/1552/109 +f 814/1554/158 821/1575/158 823/1555/112 +f 819/1557/107 827/1585/107 828/1558/159 +f 817/1560/109 825/1581/109 826/1561/160 +f 815/1563/112 823/1577/112 824/1564/157 +f 813/1566/110 822/1573/110 821/1567/158 +f 820/1569/159 828/1586/159 822/1570/110 +f 829/1572/161 830/1574/164 821/1567/162 +f 830/1574/164 831/1589/166 823/1555/165 +f 831/1576/166 832/1578/168 824/1564/167 +f 832/1578/168 833/1580/170 825/1552/169 +f 833/1580/170 834/1582/172 826/1561/171 +f 834/1582/172 835/1584/174 827/1549/173 +f 835/1584/174 836/1591/179 828/1558/175 +f 828/1586/175 836/1591/179 829/1572/161 +f 832/1578/168 840/1593/181 841/1587/176 +f 830/1574/164 838/1594/182 839/1588/177 +f 835/1584/174 843/1596/184 844/1590/178 +f 833/1580/170 841/1587/176 842/1592/180 +f 831/1576/166 839/1602/177 840/1593/181 +f 829/1572/161 837/1595/183 838/1594/182 +f 836/1591/179 844/1590/178 837/1595/183 +f 834/1582/172 842/1592/180 843/1596/184 +f 851/1597/185 852/1621/191 844/1590/178 +f 850/1598/186 851/1615/185 843/1596/184 +f 841/1587/176 849/1606/248 850/1599/186 +f 848/1600/187 849/1617/248 841/1587/176 +f 847/1601/188 848/1609/187 840/1593/181 +f 845/1603/189 847/1619/188 839/1588/177 +f 846/1604/190 845/1611/189 838/1594/182 +f 852/1605/191 846/1613/190 837/1595/183 +f 849/1606/109 857/1820/109 858/1607/160 +f 847/1601/112 855/1821/112 856/1608/157 +f 846/1604/110 854/1822/110 853/1610/158 +f 852/1605/159 860/1823/159 854/1612/110 +f 850/1598/160 858/1824/160 859/1614/107 +f 848/1600/157 856/1825/157 857/1616/109 +f 845/1603/158 853/1826/158 855/1618/112 +f 851/1597/107 859/1827/107 860/1620/159 +f 874/1622/160 875/1631/107 867/1623/107 +f 872/1625/157 873/1633/109 865/1626/109 +f 870/1628/158 871/1828/112 863/1629/112 +f 875/1631/107 876/1638/159 868/1632/159 +f 873/1633/109 874/1622/160 866/1624/160 +f 871/1634/112 872/1625/157 864/1627/157 +f 869/1636/110 870/1628/158 862/1630/158 +f 876/1638/159 869/1636/110 861/1637/110 +f 884/1639/133 892/1652/133 886/1640/110 +f 882/1642/111 890/1653/111 891/1643/108 +f 880/1645/134 888/1654/134 889/1646/109 +f 878/1648/116 885/1655/116 887/1649/106 +f 883/1651/108 891/1829/108 892/1652/133 +f 881/1647/109 889/1646/109 890/1653/111 +f 879/1650/106 887/1649/106 888/1654/134 +f 877/1641/110 886/1640/110 885/1655/116 +f 901/1656/192 902/1675/201 894/1657/134 +f 908/1659/193 901/1656/192 893/1658/109 +f 906/1661/194 907/1830/197 899/1662/108 +f 904/1664/195 905/1671/198 897/1665/110 +f 894/1657/134 902/1675/201 903/1667/196 +f 907/1669/197 908/1659/193 900/1660/111 +f 905/1671/198 906/1661/194 898/1663/133 +f 903/1667/196 904/1664/195 896/1666/116 +f 905/1672/198 904/1664/195 912/1673/199 +f 902/1675/201 910/1683/206 911/1676/202 +f 908/1677/193 907/1831/197 915/1678/203 +f 905/1672/198 913/1674/200 914/1680/205 +f 903/1667/196 911/1676/202 912/1673/199 +f 901/1682/192 909/1684/207 910/1683/206 +f 908/1677/193 916/1679/204 909/1684/207 +f 906/1681/194 914/1680/205 915/1685/203 +f 922/1687/208 927/1694/208 920/1688/110 +f 926/1690/209 923/1693/209 917/1691/109 +f 925/1254/210 928/1253/211 921/1257/211 +f 926/1690/209 925/1254/210 924/1256/210 +f 922/1687/208 921/1257/211 928/1253/211 +f 936/1695/133 944/1708/133 938/1696/110 +f 934/1698/111 942/1709/111 943/1699/108 +f 932/1701/134 940/1710/134 941/1702/109 +f 930/1704/116 937/1711/116 939/1705/106 +f 935/1707/108 943/1832/108 944/1708/133 +f 933/1703/109 941/1702/109 942/1709/111 +f 931/1706/106 939/1705/106 940/1710/134 +f 929/1697/110 938/1696/110 937/1711/116 +f 955/1020/110 957/1023/212 960/1030/212 +f 954/1028/109 959/1027/213 958/1712/213 +f 961/1025/212 965/1033/110 968/1035/110 +f 957/1023/212 961/1025/212 964/1266/212 +f 959/1027/213 963/1031/213 962/1714/213 +f 963/1031/213 967/1036/109 966/1715/109 +f 971/1037/110 973/1040/212 976/1047/212 +f 970/1045/109 975/1044/213 974/1716/213 +f 977/1042/212 981/1050/110 984/1052/110 +f 973/1040/212 977/1042/212 980/1269/212 +f 975/1044/213 979/1048/213 978/1718/213 +f 979/1048/213 983/1053/109 982/1719/109 +f 1007/1720/113 1006/1833/214 1014/1721/214 +f 1005/1723/109 1004/1834/215 1012/1724/215 +f 1003/1726/118 1002/1835/216 1009/1727/216 +f 1007/1729/113 1015/1751/113 1016/1730/217 +f 1006/1732/214 1005/1836/109 1013/1733/109 +f 1003/1735/118 1011/1748/118 1012/1736/215 +f 1001/1738/110 1010/1745/110 1009/1739/216 +f 1001/1741/110 1008/1837/217 1016/1742/217 +f 1017/1744/218 1018/1746/221 1009/1739/219 +f 1018/1746/221 1019/1756/223 1011/1728/222 +f 1019/1747/223 1020/1749/225 1012/1736/224 +f 1020/1749/225 1021/1754/233 1013/1725/226 +f 1013/1733/226 1021/1754/233 1022/1750/227 +f 1022/1750/227 1023/1757/235 1015/1722/229 +f 1015/1751/229 1023/1757/235 1024/1752/230 +f 1024/1752/230 1017/1744/218 1010/1743/220 +f 1020/1749/225 1028/1760/238 1029/1753/232 +f 1018/1746/221 1026/1761/239 1027/1755/234 +f 1023/1757/235 1031/1763/241 1032/1758/236 +f 1022/1750/227 1021/1754/233 1029/1753/232 +f 1019/1747/223 1027/1769/234 1028/1760/238 +f 1017/1744/218 1025/1762/240 1026/1761/239 +f 1024/1752/230 1032/1758/236 1025/1762/240 +f 1023/1757/235 1022/1750/227 1030/1759/237 +f 1031/1763/241 1039/1838/249 1040/1764/242 +f 1038/1765/243 1039/1783/249 1031/1763/241 +f 1029/1753/232 1037/1839/244 1038/1766/243 +f 1028/1760/238 1036/1840/250 1037/1767/244 +f 1035/1768/245 1036/1775/250 1028/1760/238 +f 1033/1770/246 1035/1786/245 1027/1755/234 +f 1034/1771/247 1033/1779/246 1026/1761/239 +f 1040/1772/242 1034/1781/247 1025/1762/240 +f 1038/1766/214 1037/1839/109 1045/1773/109 +f 1036/1775/215 1035/1768/118 1043/1776/118 +f 1034/1771/110 1042/1841/110 1041/1778/216 +f 1040/1772/217 1048/1842/217 1042/1780/110 +f 1038/1765/214 1046/1843/214 1047/1782/113 +f 1037/1767/109 1036/1840/215 1044/1784/215 +f 1035/1786/118 1033/1770/216 1041/1787/216 +f 1040/1764/217 1039/1838/113 1047/1789/113 +f 1054/1791/214 1062/1844/214 1063/1792/113 +f 1060/1794/215 1061/1802/109 1053/1795/109 +f 1058/1797/216 1059/1845/118 1051/1798/118 +f 1055/1793/113 1063/1792/113 1064/1800/217 +f 1061/1802/109 1062/1844/214 1054/1791/214 +f 1051/1803/118 1059/1846/118 1060/1794/215 +f 1049/1804/110 1057/1847/110 1058/1797/216 +f 1064/1800/217 1057/1847/110 1049/1804/110 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/sexy_real_no_fake.png b/src/main/resources/assets/hbm/textures/models/weapons/sexy_real_no_fake.png new file mode 100644 index 0000000000000000000000000000000000000000..fa565a3a07c3d352e8e82b210c80dbf856376647 GIT binary patch literal 4284 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 elqrapi0J=&@xauT5No9X0000 Date: Mon, 23 Jun 2025 16:58:46 +0200 Subject: [PATCH 178/181] --- changelog | 5 +- .../java/com/hbm/handler/HbmKeybinds.java | 130 +++++++++++++++--- .../container/ContainerCrateBase.java | 25 ++-- .../com/hbm/items/tool/ItemToolAbility.java | 14 +- .../com/hbm/main/ModEventHandlerClient.java | 70 ---------- src/main/java/com/hbm/main/ServerProxy.java | 2 + src/main/java/com/hbm/util/ArmorRegistry.java | 2 +- 7 files changed, 143 insertions(+), 105 deletions(-) diff --git a/changelog b/changelog index fac243f1a..5f91dbddb 100644 --- a/changelog +++ b/changelog @@ -41,4 +41,7 @@ * Fixed blowtorch having a minimum gas requirement of 1,000mB despite only using 250mB * The gas turbine now uses audio with a 20 tick timeout, fixing a rare issue where the loop gets stuck and never ends * Potentially fixed a dupe caused by using InventoryBogoSorter in combination with crates -* Rapidly spinning dyx should no longer have a state leak that would rotate lighting of unrelated TESRs with it \ No newline at end of file +* Rapidly spinning dyx should no longer have a state leak that would rotate lighting of unrelated TESRs with it +* Fixed issue where mining strange stone with silk touch ability would cause a desync. It also now drops cobblestone, as if silk touch wasn't active at all +* Fixed issue where applying a filter to a mask that doesn't support certain protection types would permanently remove those types from the filter until the game is restarted +* Fixed InventoryBogoSorter being able to move held crates \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index 5f85ce886..06a9c90a1 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -2,19 +2,27 @@ package com.hbm.handler; import com.hbm.inventory.gui.GUICalculator; import com.hbm.items.IKeybindReceiver; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; import cpw.mods.fml.common.FMLCommonHandler; import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import com.hbm.config.GeneralConfig; import com.hbm.extprop.HbmPlayerProps; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.KeybindPacket; import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.InputEvent.MouseInputEvent; +import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -64,37 +72,121 @@ public class HbmKeybinds { ClientRegistry.registerKeyBinding(craneLeftKey); ClientRegistry.registerKeyBinding(craneRightKey); ClientRegistry.registerKeyBinding(craneLoadKey); + ClientRegistry.registerKeyBinding(abilityCycle); ClientRegistry.registerKeyBinding(abilityAlt); ClientRegistry.registerKeyBinding(copyToolAlt); ClientRegistry.registerKeyBinding(copyToolCtrl); } - - @SubscribeEvent + + @SideOnly(Side.CLIENT) + @SubscribeEvent(priority = EventPriority.LOW) public void mouseEvent(MouseInputEvent event) { + + /// OVERLAP HANDLING /// + handleOverlap(Mouse.getEventButtonState(), Mouse.getEventButton() - 100); + + /// KEYBIND PROPS /// + handleProps(Mouse.getEventButtonState(), Mouse.getEventButton() - 100); + } + + @SideOnly(Side.CLIENT) + @SubscribeEvent(priority = EventPriority.LOW) + public void keyEvent(KeyInputEvent event) { + + /// OVERLAP HANDLING /// + handleOverlap(Keyboard.getEventKeyState(), Keyboard.getEventKey()); + + /// KEYBIND PROPS /// + handleProps(Keyboard.getEventKeyState(), Keyboard.getEventKey()); + + /// CALCULATOR /// + if(calculatorKey.getIsKeyPressed()) { + MainRegistry.proxy.me().closeScreen(); + FMLCommonHandler.instance().showGuiScreen(new GUICalculator()); + } + } + + /** + * Shitty hack: Keybinds fire before minecraft checks right click on block, which means the tool cycle keybind would fire too. + * If cycle collides with right click and a block is being used, cancel the keybind. + * @param event + */ + @SideOnly(Side.CLIENT) + @SubscribeEvent + public void postClientTick(ClientTickEvent event) { + if(event.phase != event.phase.END) return; EntityPlayer player = MainRegistry.proxy.me(); + if(player == null) return; + if(player.worldObj == null) return; + HbmPlayerProps props = HbmPlayerProps.getData(player); - for(EnumKeybind key : EnumKeybind.values()) { - boolean last = props.getKeyPressed(key); - boolean current = MainRegistry.proxy.getIsKeyPressed(key); + // in theory, this should do the same keybind crap as the main one, but at the end of the client tick, fixing the issue + // of detecting when a block is being interacted with + // in practice, this shit doesn't fucking work. detection fails when the click is sub one tick long + if(Minecraft.getMinecraft().gameSettings.keyBindUseItem.getKeyCode() == abilityCycle.getKeyCode()) { + boolean last = props.getKeyPressed(EnumKeybind.ABILITY_CYCLE); + boolean current = abilityCycle.pressed; if(last != current) { - PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current)); - props.setKeyPressed(key, current); - onPressedClient(player, key, current); + PacketDispatcher.wrapper.sendToServer(new KeybindPacket(EnumKeybind.ABILITY_CYCLE, current)); + props.setKeyPressed(EnumKeybind.ABILITY_CYCLE, current); + onPressedClient(player, EnumKeybind.ABILITY_CYCLE, current); } } } - @SubscribeEvent - public void keyEvent(KeyInputEvent event) { - EntityPlayer player = MainRegistry.proxy.me(); - - if(calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only - player.closeScreen(); - FMLCommonHandler.instance().showGuiScreen(new GUICalculator()); + /** Handles keybind overlap. Make sure this runs first before referencing the keybinds set by the extprops */ + public static void handleOverlap(boolean state, int keyCode) { + Minecraft mc = Minecraft.getMinecraft(); + if(GeneralConfig.enableKeybindOverlap && (mc.currentScreen == null || mc.currentScreen.allowUserInput)) { + + //if anything errors here, run ./gradlew clean setupDecompWorkSpace + for(Object o : KeyBinding.keybindArray) { + KeyBinding key = (KeyBinding) o; + + if(keyCode != 0 && key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { + + key.pressed = state; + if(state && key.pressTime == 0) { + key.pressTime = 1; + } + } + } + + /// GUN HANDLING /// + boolean gunKey = keyCode == HbmKeybinds.gunPrimaryKey.getKeyCode() || keyCode == HbmKeybinds.gunSecondaryKey.getKeyCode() || + keyCode == HbmKeybinds.gunTertiaryKey.getKeyCode() || keyCode == HbmKeybinds.reloadKey.getKeyCode(); + + EntityPlayer player = mc.thePlayer; + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT) { + + /* Shoot in favor of attacking */ + if(gunKey && keyCode == mc.gameSettings.keyBindAttack.getKeyCode()) { + mc.gameSettings.keyBindAttack.pressed = false; + mc.gameSettings.keyBindAttack.pressTime = 0; + } + + /* Shoot in favor of interacting */ + /*if(gunKey && keyCode == mc.gameSettings.keyBindUseItem.getKeyCode()) { + mc.gameSettings.keyBindUseItem.pressed = false; + mc.gameSettings.keyBindUseItem.pressTime = 0; + }*/ + + /* Scope in favor of picking */ + if(gunKey && keyCode == mc.gameSettings.keyBindPickBlock.getKeyCode()) { + mc.gameSettings.keyBindPickBlock.pressed = false; + mc.gameSettings.keyBindPickBlock.pressTime = 0; + } + } } - + } + + public static void handleProps(boolean state, int keyCode) { + + /// KEYBIND PROPS /// + EntityPlayer player = MainRegistry.proxy.me(); HbmPlayerProps props = HbmPlayerProps.getData(player); for(EnumKeybind key : EnumKeybind.values()) { @@ -102,8 +194,12 @@ public class HbmKeybinds { boolean current = MainRegistry.proxy.getIsKeyPressed(key); if(last != current) { - PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current)); + + /// ABILITY HANDLING /// + if(key == EnumKeybind.ABILITY_CYCLE && Minecraft.getMinecraft().gameSettings.keyBindUseItem.getKeyCode() == abilityCycle.getKeyCode()) continue; + props.setKeyPressed(key, current); + PacketDispatcher.wrapper.sendToServer(new KeybindPacket(key, current)); onPressedClient(player, key, current); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java index 06b255a68..05b818a10 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java @@ -24,7 +24,9 @@ public class ContainerCrateBase extends ContainerBase { } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new SlotPlayerCrate(invPlayer, i, playerInvX + i * 18, playerHotbarY)); + this.addSlotToContainer( + invPlayer.currentItem == i ? new SlotPlayerCrateLocked(invPlayer, i, playerInvX + i * 18, playerHotbarY) : + new SlotNonRetarded(invPlayer, i, playerInvX + i * 18, playerHotbarY)); } } @@ -49,29 +51,22 @@ public class ContainerCrateBase extends ContainerBase { tile.closeInventory(); } - public class SlotPlayerCrate extends SlotNonRetarded { + /** + * No touching anything here. No moving around, no taking, no inserting, fuck off. + */ + public class SlotPlayerCrateLocked extends SlotNonRetarded { - public SlotPlayerCrate(IInventory inventory, int id, int x, int y) { + public SlotPlayerCrateLocked(IInventory inventory, int id, int x, int y) { super(inventory, id, x, y); } - - /** - * This prevents the player from moving containers that are being held *at all*, fixing a decently big dupe. - * I hate that this has to be here but... It is what it is. - */ @Override public boolean canTakeStack(EntityPlayer player) { - if(player.inventory.currentItem == this.getSlotIndex() && // If this slot is the current held slot. - this.getStack() != null && this.getStack().getItem() instanceof ItemBlockStorageCrate && // If the slot contains a storage crate. - player.openContainer instanceof ContainerCrateBase && !(ContainerCrateBase.this.tile instanceof TileEntity)) // If the player is currently inside a crate container. - return false; - return super.canTakeStack(player); + return false; } @Override public boolean isItemValid(ItemStack item) { - if(ItemStack.areItemStacksEqual(getStack(), item)) return false; - return super.isItemValid(item); + return false; } } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 06e20e6f7..abe7a137f 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -156,6 +156,18 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro World world = player.worldObj; Block block = world.getBlock(x, y, z); + + /* + * The original implementation of this always returned FALSE which uses the vanilla block break code. + * This one now returns TRUE when an ability applies and instead relies on breakExtraBlock, which has the minor + * issue of only running on the sever, while the client uses the vanilla implementation. breakExtraBlock was only + * meant to be used for AoE or vein miner and not for the block that's being mined, hence break EXTRA block. + * The consequence was that the server would fail to break keyholes since breakExtraBlock is supposed to exclude + * them, while the client happily removes the block, causing a desync. + * + * Since keyholes aren't processable and exempt from silk touch anyway, we just default to the vanilla implementation in every case. + */ + if(block == ModBlocks.stone_keyhole || block == ModBlocks.stone_keyhole_meta) return false; if(!world.isRemote && (canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) && canOperate(stack)) { Configuration config = getConfiguration(stack); @@ -165,7 +177,7 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro boolean skipRef = preset.areaAbility.onDig(preset.areaAbilityLevel, world, x, y, z, player, this); - if (!skipRef) { + if(!skipRef) { breakExtraBlock(world, x, y, z, player, x, y, z); } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 967f76977..2df3bbfd0 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -13,7 +13,6 @@ import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HazmatRegistry; -import com.hbm.handler.HbmKeybinds; import com.hbm.handler.ImpactWorldHandler; import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IHoldableWeapon; @@ -65,7 +64,6 @@ import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.InputEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; @@ -86,7 +84,6 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.client.settings.GameSettings; -import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -1121,73 +1118,6 @@ public class ModEventHandlerClient { } } - @SideOnly(Side.CLIENT) - @SubscribeEvent(priority = EventPriority.LOW) - public void onMouseClicked(InputEvent.MouseInputEvent event) { - - Minecraft mc = Minecraft.getMinecraft(); - if(GeneralConfig.enableKeybindOverlap && (mc.currentScreen == null || mc.currentScreen.allowUserInput)) { - boolean state = Mouse.getEventButtonState(); - int keyCode = Mouse.getEventButton() - 100; - - //if anything errors here, run ./gradlew clean setupDecompWorkSpace - for(Object o : KeyBinding.keybindArray) { - KeyBinding key = (KeyBinding) o; - - if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { - - key.pressed = state; - if(state && key.pressTime == 0) { - key.pressTime = 1; - } - } - } - - boolean gunKey = keyCode == HbmKeybinds.gunPrimaryKey.getKeyCode() || keyCode == HbmKeybinds.gunSecondaryKey.getKeyCode() || - keyCode == HbmKeybinds.gunTertiaryKey.getKeyCode() || keyCode == HbmKeybinds.reloadKey.getKeyCode(); - - EntityPlayer player = mc.thePlayer; - - if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT) { - - /* Shoot in favor of attacking */ - if(gunKey && keyCode == mc.gameSettings.keyBindAttack.getKeyCode()) { - mc.gameSettings.keyBindAttack.pressed = false; - mc.gameSettings.keyBindAttack.pressTime = 0; - } - - if(gunKey && keyCode == mc.gameSettings.keyBindPickBlock.getKeyCode()) { - mc.gameSettings.keyBindPickBlock.pressed = false; - mc.gameSettings.keyBindPickBlock.pressTime = 0; - } - } - } - } - - @SideOnly(Side.CLIENT) - @SubscribeEvent(priority = EventPriority.LOW) - public void onKeyTyped(InputEvent.KeyInputEvent event) { - - Minecraft mc = Minecraft.getMinecraft(); - if(GeneralConfig.enableKeybindOverlap && (mc.currentScreen == null || mc.currentScreen.allowUserInput)) { - boolean state = Keyboard.getEventKeyState(); - int keyCode = Keyboard.getEventKey(); - - //if anything errors here, run ./gradlew clean setupDecompWorkSpace - for(Object o : KeyBinding.keybindArray) { - KeyBinding key = (KeyBinding) o; - - if(keyCode != 0 && key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { - - key.pressed = state; - if(state && key.pressTime == 0) { - key.pressTime = 1; - } - } - } - } - } - @SideOnly(Side.CLIENT) @SubscribeEvent public void onRenderWorldLastEvent(RenderWorldLastEvent event) { diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index fdbe22529..7ec6eaa23 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -61,11 +61,13 @@ public class ServerProxy { public void displayTooltip(String msg, int id) { displayTooltip(msg, 1000, id); } + public void displayTooltip(String msg, int time, int id) { } public boolean getIsKeyPressed(EnumKeybind key) { return false; } + public EntityPlayer me() { return null; } diff --git a/src/main/java/com/hbm/util/ArmorRegistry.java b/src/main/java/com/hbm/util/ArmorRegistry.java index 98b863080..113976bae 100644 --- a/src/main/java/com/hbm/util/ArmorRegistry.java +++ b/src/main/java/com/hbm/util/ArmorRegistry.java @@ -74,7 +74,7 @@ public class ArmorRegistry { if(filter != null) { //add the HazardClasses from the filter, then remove the ones blacklisted by the mask - List filProt = hazardClasses.get(filter.getItem()); + List filProt = (List) hazardClasses.get(filter.getItem()).clone(); for(HazardClass c : mask.getBlacklist(stack, entity)) filProt.remove(c); From f416b9ad447273977087a0f9a5b1e7f42804d378 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 24 Jun 2025 15:58:05 +0200 Subject: [PATCH 179/181] born to shit (forced to wipe) --- changelog | 3 +- .../com/hbm/items/tool/ItemToolAbility.java | 4 +- .../weapon/sedna/factory/XFactory12ga.java | 14 ++-- .../com/hbm/main/ModEventHandlerClient.java | 10 +-- .../item/weapon/sedna/ItemRenderSexy.java | 71 +++++++++++++------ 5 files changed, 71 insertions(+), 31 deletions(-) diff --git a/changelog b/changelog index 5f91dbddb..6f3ede9f5 100644 --- a/changelog +++ b/changelog @@ -44,4 +44,5 @@ * Rapidly spinning dyx should no longer have a state leak that would rotate lighting of unrelated TESRs with it * Fixed issue where mining strange stone with silk touch ability would cause a desync. It also now drops cobblestone, as if silk touch wasn't active at all * Fixed issue where applying a filter to a mask that doesn't support certain protection types would permanently remove those types from the filter until the game is restarted -* Fixed InventoryBogoSorter being able to move held crates \ No newline at end of file +* Fixed InventoryBogoSorter being able to move held crates +* Fixed tier 2 pickaxes mining depth rock causing a desync with the depth rock not actually being broken \ No newline at end of file diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index abe7a137f..e91283917 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -274,7 +274,7 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro EntityPlayerMP player = (EntityPlayerMP) playerEntity; ItemStack stack = player.getHeldItem(); - if (stack == null) { + if(stack == null) { return; } @@ -288,7 +288,7 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro float refStrength = ForgeHooks.blockStrength(refBlock, player, world, refX, refY, refZ); float strength = ForgeHooks.blockStrength(block, player, world, x, y, z); - if(!ForgeHooks.canHarvestBlock(block, player, meta) || refStrength / strength > 10f || refBlock.getBlockHardness(world, refX, refY, refZ) < 0) + if(!ForgeHooks.canHarvestBlock(block, player, meta) || refStrength / strength > 10f || refBlock.getPlayerRelativeBlockHardness(player, world, refX, refY, refZ) < 0) return; BlockEvent.BreakEvent event = ForgeHooks.onBlockBreakEvent(world, player.theItemInWorldManager.getGameType(), player, x, y, z); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index 378ffcad8..24df3eeff 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -323,7 +323,7 @@ public class XFactory12ga { ModItems.gun_maresleg_broken = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() .dura(0).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(32F).spreadAmmo(1.15F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) + .dmg(48F).spreadAmmo(1.15F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F) .mag(new MagazineSingleReload(0, 6).addConfigs(g12_equestrian_tkr, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus)) .offset(0.75, -0.0625, -0.1875) .canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_MARESLEG)) @@ -654,12 +654,18 @@ public class XFactory12ga { @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SEXY_ANIMS = (stack, type) -> { switch(type) { case CYCLE: return new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -1, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_FULL)) - .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 18, 50)); + .addBus("RECOIL", new BusAnimationSequence().hold(50).addPos(0, 0, -0.25, 50, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) + .addBus("BARREL", new BusAnimationSequence().addPos(0, 0, -1, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150)) + .addBus("CYCLE", new BusAnimationSequence().addPos(1, 0, 0, 150)) + .addBus("HOOD", new BusAnimationSequence().hold(50).addPos(3, 0, 0, 50, IType.SIN_DOWN).addPos(0, 0, 0, 50, IType.SIN_UP)); case CYCLE_DRY: return new BusAnimation() .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 18, 50)); + case RELOAD: return new BusAnimation() + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 1, 150).hold(2750).addPos(0, 0, 0, 150)) + .addBus("HOOD", new BusAnimationSequence().hold(250).addPos(60, 0, 0, 500, IType.SIN_FULL).hold(1500).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("BELT", new BusAnimationSequence().setPos(1, 0, 0).hold(750).addPos(0, 0, 0, 500, IType.SIN_FULL).hold(500).addPos(1, 0, 0, 500, IType.SIN_FULL)); } - return LAMBDA_SHREDDER_ANIMS.apply(stack, type); + return null; }; } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 2df3bbfd0..ce23a4e69 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -922,16 +922,18 @@ public class ModEventHandlerClient { ItemFluidDuct.class ); - String prefix = "Gun "; - int scale = 8; + String prefix = "Slot "; + int gunScale = 8; + int slotScale = 1; boolean ignoreNonNTM = true; + boolean onlyGuns = true; List stacks = new ArrayList(); for (Object reg : Item.itemRegistry) { Item item = (Item) reg; if(ignoreNonNTM && !Item.itemRegistry.getNameForObject(item).startsWith("hbm:")) continue; if(ignoredItems.contains(item)) continue; - if(!(item instanceof ItemGunBaseNT) && prefix.toLowerCase(Locale.US).startsWith("gun")) continue; + if(onlyGuns && !(item instanceof ItemGunBaseNT)) continue; if(collapsedClasses.contains(item.getClass())) { stacks.add(new ItemStack(item)); } else { @@ -940,7 +942,7 @@ public class ModEventHandlerClient { } Minecraft.getMinecraft().thePlayer.closeScreen(); - FMLCommonHandler.instance().showGuiScreen(new GUIScreenWikiRender(stacks.toArray(new ItemStack[0]), prefix, "wiki-block-renders-256", scale)); + FMLCommonHandler.instance().showGuiScreen(new GUIScreenWikiRender(stacks.toArray(new ItemStack[0]), prefix, "wiki-block-renders-256", slotScale)); } } else { isRenderingItems = false; diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java index 797910362..901d129fd 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java @@ -2,14 +2,17 @@ package com.hbm.render.item.weapon.sedna; import org.lwjgl.opengl.GL11; +import com.hbm.interfaces.NotableComments; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.main.ResourceManager; import com.hbm.render.anim.HbmAnimations; import com.hbm.util.BobMathUtil; +import com.hbm.util.Vec3NT; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; +@NotableComments public class ItemRenderSexy extends ItemRenderWeaponBase { @Override @@ -43,8 +46,15 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { double scale = 0.375D; GL11.glScaled(scale, scale, scale); + boolean doesCycle = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("CYCLE") != null; + boolean reloading = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("BELT") != null; double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] cycle = HbmAnimations.getRelevantTransformation("CYCLE"); + double[] barrel = HbmAnimations.getRelevantTransformation("BARREL"); + double[] hood = HbmAnimations.getRelevantTransformation("HOOD"); + double[] lever = HbmAnimations.getRelevantTransformation("LEVER"); + double[] belt = HbmAnimations.getRelevantTransformation("BELT"); GL11.glTranslated(0, -1, -8); GL11.glRotated(equip[0], 1, 0, 0); @@ -57,7 +67,7 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { ResourceManager.sexy.renderPart("Gun"); GL11.glPushMatrix(); - //GL11.glTranslated(0, 0, -1); + GL11.glTranslated(0, 0, barrel[2]); ResourceManager.sexy.renderPart("Barrel"); GL11.glPopMatrix(); @@ -70,42 +80,64 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { GL11.glPushMatrix(); GL11.glTranslated(0, 0.4375, -2.875); - //GL11.glRotated(60, 1, 0, 0); + GL11.glRotated(hood[0], 1, 0, 0); GL11.glTranslated(0, -0.4375, 2.875); ResourceManager.sexy.renderPart("Hood"); GL11.glPopMatrix(); GL11.glPushMatrix(); GL11.glTranslated(0, 0.46875, -6.875); - //GL11.glRotated(60, 1, 0, 0); + GL11.glRotated(lever[2] * 60, 1, 0, 0); GL11.glTranslated(0, -0.46875, 6.875); ResourceManager.sexy.renderPart("Lever"); GL11.glPopMatrix(); GL11.glPushMatrix(); GL11.glTranslated(0, 0, -6.75); - //GL11.glScaled(1, 1, 0.75); + GL11.glScaled(1, 1, 1 - lever[2] * 0.25); GL11.glTranslated(0, 0, 6.75); ResourceManager.sexy.renderPart("LockSpring"); GL11.glPopMatrix(); ResourceManager.sexy.renderPart("Magazine"); - - /*renderShell(0, -0.375, 90, false); - renderShell(0.3125, -0.0625, 30, false); - renderShell(0.75, -0.125, -30, false); - renderShell(1.0625, -0.4375, -60, false); - renderShell(1.0625, -0.875, -90, false); - renderShell(1.0625, -1.3125, -90, false);*/ double p = 0.0625D; + double x = p * 17; + double y = p * -26; + double angle = 0; + Vec3NT vec = new Vec3NT(0, 0.4375, 0); // reusable, just like how toilet paper was reusable during corona + + // basically what all this does is take an array of angles and just strings together shells with the appropriate + // position and angle calculated out of the next angle, taking all previous transformations into account. + // has a second array which is the "open" position that the animation can smoothly interpolate through + double[] anglesLoaded = new double[] {0, 0, 20, 20, 50, 60, 70}; + double[] anglesUnloaded = new double[] {0, -10, -50, -60, -60, 0, 0}; + double reloadProgress = !reloading ? 1D : belt[0]; + double cycleProgress = !doesCycle ? 1 : cycle[0]; - renderShell(p * 0, p * -6, 90, true); - renderShell(p * 5, p * 1, 30, true); - renderShell(p * 12, p * -1, -30, true); - renderShell(p * 17, p * -6, -60, true); - renderShell(p * 17, p * -13, -90, true); - renderShell(p * 17, p * -20, -90, true); + double[][] shells = new double[anglesLoaded.length][3]; + + // generate belt, interp used for the reload animation + for(int i = 0; i < anglesLoaded.length; i++) { + shells[i][0] = x; + shells[i][1] = y; + shells[i][2] = angle - 90; + double delta = BobMathUtil.interp(anglesUnloaded[i], anglesLoaded[i], reloadProgress); + angle += delta; + vec.rotateAroundZDeg(-delta); + x += vec.xCoord; + y += vec.yCoord; + } + + // draw belt, interp used for cycling (shells will transform towards the position/rotation of the next shell) + for(int i = 0; i < shells.length - 1; i++) { + double[] prevShell = shells[i]; + double[] nextShell = shells[i + 1]; + renderShell( + BobMathUtil.interp(prevShell[0], nextShell[0], cycleProgress), + BobMathUtil.interp(prevShell[1], nextShell[1], cycleProgress), + BobMathUtil.interp(prevShell[2], nextShell[2], cycleProgress), true); + } GL11.glShadeModel(GL11.GL_FLAT); } @@ -113,10 +145,9 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { @Override public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); - double scale = 1.25D; + double scale = 1.75D; GL11.glScaled(scale, scale, scale); - GL11.glTranslated(0, 0, 4); - + GL11.glTranslated(1, 1, 6); } @Override From 2a7033bb76c47e353de01d8046de7728dcd5227f Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 25 Jun 2025 15:59:05 +0200 Subject: [PATCH 180/181] lord of the lockerroom ft. big macintosh and his massive gun --- .../java/api/hbm/fluidmk2/package-info.java | 22 +++++++++++----- .../com/hbm/inventory/fluid/FluidType.java | 1 + .../java/com/hbm/inventory/fluid/Fluids.java | 16 ++++++++++-- .../weapon/sedna/factory/Orchestras.java | 13 +++++----- .../weapon/sedna/factory/XFactory12ga.java | 22 +++++++++++----- src/main/java/com/hbm/main/MainRegistry.java | 6 ++++- .../item/weapon/sedna/ItemRenderSexy.java | 26 ++++++++++++++----- 7 files changed, 77 insertions(+), 29 deletions(-) diff --git a/src/main/java/api/hbm/fluidmk2/package-info.java b/src/main/java/api/hbm/fluidmk2/package-info.java index b948336d8..fae3f6c16 100644 --- a/src/main/java/api/hbm/fluidmk2/package-info.java +++ b/src/main/java/api/hbm/fluidmk2/package-info.java @@ -1,10 +1,3 @@ -/** - * - */ -/** - * @author hbm - * - */ package api.hbm.fluidmk2; /* @@ -13,4 +6,19 @@ It's rather shrimple: the shiny new energy system using universal nodespace, but Has a few extra bits and pieces for handling, but the concept is basically the same. Sounds good? +*/ + +/* + +Quick explanation for implementing new fluids via addon: +Fluids are subject to /ntmreload so they get wiped and rebuilt using the init function in Fluids, which means that if fluids +are simply added externally during startup, they are removed permanently until the game restarts. Same concept as with recipes, really. +To fix this we need to make sure that externally registered fluids are re-registered during reload, for that purpose we have +IFluidRegisterListener, a simple interface with a small method that runs whenever the fluid list is reloaded. IFluidRegisterListeners +need to be registered with CompatExternal.registerFluidRegisterListener to be used, make sure to do this during PreInit. +Inside the IFluidRegisterListener, fluids can be added using CompatFluidRegistry.registerFluid, which will generate a Fluid instance +using the supplied arguments and automatically register it. Do note that like with custom fluids, fluids need numeric IDs assigned manually. +To prevent collisions with stock fluids when NTM updates, make sure to choose a high starting ID (e.g. 10,000). +The fluid created by registerFluid can have traits added to them, just like how NTM does it with its stock fluids. + */ \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 4cecc13a5..f983c90ed 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -109,6 +109,7 @@ public class FluidType { this.id = id; Fluids.register(this, id); + Fluids.foreignFluids.add(this); } public FluidType setTemp(int temperature) { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 1a0b5dcd2..cadd39969 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -197,6 +197,7 @@ public class Fluids { public static final HashBiMap renameMapping = HashBiMap.create(); public static List customFluids = new ArrayList(); + public static List foreignFluids = new ArrayList(); private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -593,8 +594,6 @@ public class Fluids { // LEGACY ACID = PEROXIDE; - - for(IFluidRegisterListener listener : additionalListeners) listener.onFluidsLoad(); for(FluidType custom : customFluids) metaOrder.add(custom); @@ -877,10 +876,12 @@ public class Fluids { ex.printStackTrace(); } } + public static void reloadFluids(){ File folder = MainRegistry.configHbmDir; File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json"); if(!customTypes.exists()) initDefaultFluids(customTypes); + for(FluidType type : customFluids){ idMapping.remove(type.getID()); registerOrder.remove(type); @@ -888,6 +889,15 @@ public class Fluids { metaOrder.remove(type); } customFluids.clear(); + + for(FluidType type : foreignFluids){ + idMapping.remove(type.getID()); + registerOrder.remove(type); + nameMapping.remove(type.getName()); + metaOrder.remove(type); + } + foreignFluids.clear(); + readCustomFluids(customTypes); for(FluidType custom : customFluids) metaOrder.add(custom); File config = new File(MainRegistry.configHbmDir.getAbsolutePath() + File.separatorChar + "hbmFluidTraits.json"); @@ -898,6 +908,8 @@ public class Fluids { } else { readTraits(config); } + + for(IFluidRegisterListener listener : additionalListeners) listener.onFluidsLoad(); } private static void registerCalculatedFuel(FluidType type, double base, double combustMult, FuelGrade grade) { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index b8bbe7266..dddfbeda4 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -933,23 +933,24 @@ public class Orchestras { if(entity.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + boolean aiming = ItemGunBaseNT.getIsAiming(stack); if(type == AnimType.CYCLE) { if(timer == 0 && ctx.config.getReceivers(stack)[0].getMagazine(stack).getType(stack, null) == XFactory12ga.g12_equestrian_bj) { ItemGunBaseNT.setTimer(stack, 0, 20); } + + if(timer == 2) { + SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory); + if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, -0.125, aiming ? -0.125 : -0.25D, 0, 0.18, -0.12, 0.01, -10F + (float)entity.getRNG().nextGaussian() * 2.5F, (float)entity.getRNG().nextGaussian() * -20F + 15F, casing.getName(), false, 60, 0.5D, 20); + } } if(type == AnimType.CYCLE_DRY) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F); } if(type == AnimType.RELOAD) { - if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); - if(timer == 32) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); - } - if(type == AnimType.INSPECT) { - if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F); - if(timer == 28) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 55) ctx.config.getReceivers(stack)[0].getMagazine(stack).reloadAction(stack, ctx.inventory); } }; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index 24df3eeff..abd376759 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -375,9 +375,9 @@ public class XFactory12ga { ).setUnlocalizedName("gun_autoshotgun_shredder"); ModItems.gun_autoshotgun_sexy = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() - .dura(5_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) + .dura(5_000).draw(20).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE) .rec(new Receiver(0) - .dmg(64F).delay(4).auto(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) + .dmg(64F).delay(4).auto(true).dryfireAfterAuto(true).reload(110).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian_bj, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus)) .offset(0.75, -0.125, -0.25) .setupStandardFire().recoil(LAMBDA_RECOIL_SEXY)) @@ -653,17 +653,25 @@ public class XFactory12ga { @SuppressWarnings("incomplete-switch") public static BiFunction LAMBDA_SEXY_ANIMS = (stack, type) -> { switch(type) { - case CYCLE: return new BusAnimation() + case EQUIP: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(45, 0, 0, 0).addPos(0, 0, 0, 1000, IType.SIN_DOWN)); + case CYCLE: + int amount = ((ItemGunBaseNT) stack.getItem()).getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null); + return new BusAnimation() .addBus("RECOIL", new BusAnimationSequence().hold(50).addPos(0, 0, -0.25, 50, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) .addBus("BARREL", new BusAnimationSequence().addPos(0, 0, -1, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150)) .addBus("CYCLE", new BusAnimationSequence().addPos(1, 0, 0, 150)) - .addBus("HOOD", new BusAnimationSequence().hold(50).addPos(3, 0, 0, 50, IType.SIN_DOWN).addPos(0, 0, 0, 50, IType.SIN_UP)); + .addBus("HOOD", new BusAnimationSequence().hold(50).addPos(3, 0, 0, 50, IType.SIN_DOWN).addPos(0, 0, 0, 50, IType.SIN_UP)) + .addBus("SHELLS", new BusAnimationSequence().setPos(amount - 1, 0, 0)); case CYCLE_DRY: return new BusAnimation() .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 18, 50)); case RELOAD: return new BusAnimation() - .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 1, 150).hold(2750).addPos(0, 0, 0, 150)) - .addBus("HOOD", new BusAnimationSequence().hold(250).addPos(60, 0, 0, 500, IType.SIN_FULL).hold(1500).addPos(0, 0, 0, 500, IType.SIN_FULL)) - .addBus("BELT", new BusAnimationSequence().setPos(1, 0, 0).hold(750).addPos(0, 0, 0, 500, IType.SIN_FULL).hold(500).addPos(1, 0, 0, 500, IType.SIN_FULL)); + .addBus("LOWER", new BusAnimationSequence().addPos(15, 0, 0, 500, IType.SIN_FULL).hold(2750).addPos(12, 0, 0, 100, IType.SIN_DOWN).addPos(15, 0, 0, 100, IType.SIN_FULL).hold(1050).addPos(18, 0, 0, 100, IType.SIN_DOWN).addPos(15, 0, 0, 100, IType.SIN_FULL).hold(300).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("LEVER", new BusAnimationSequence().addPos(0, 0, 1, 150).hold(4700).addPos(0, 0, 0, 150)) + .addBus("HOOD", new BusAnimationSequence().hold(250).addPos(60, 0, 0, 500, IType.SIN_FULL).hold(3250).addPos(0, 0, 0, 500, IType.SIN_UP)) + .addBus("BELT", new BusAnimationSequence().setPos(1, 0, 0).hold(750).addPos(0, 0, 0, 500, IType.SIN_UP).hold(2000).addPos(1, 0, 0, 500, IType.SIN_UP)) + .addBus("MAG", new BusAnimationSequence().hold(1500).addPos(0, -1, 0, 250, IType.SIN_UP).addPos(2, -1, 0, 500, IType.SIN_UP).addPos(7, 1, 0, 250, IType.SIN_UP).addPos(15, 2, 0, 250).setPos(0, -2, 0).addPos(0, 0, 0, 500, IType.SIN_UP)) + .addBus("MAGROT", new BusAnimationSequence().hold(2250).addPos(0, 0, -180, 500, IType.SIN_FULL).setPos(0, 0, 0)); } return null; diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index ab9f2f995..0826c53bd 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -899,10 +899,14 @@ public class MainRegistry { Compat.handleRailcraftNonsense(); SuicideThreadDump.register(); CommandReloadClient.register(); + + // to make sure that foreign registered fluids are accounted for, + // even when the reload listener is registered too late due to load order + Fluids.reloadFluids(); //ExplosionTests.runTest(); } - + @EventHandler public void preInit(FMLPreInitializationEvent event) { if(logger == null) diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java index 901d129fd..c237a95e4 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java @@ -48,18 +48,27 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { boolean doesCycle = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("CYCLE") != null; boolean reloading = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("BELT") != null; + boolean useShellCount = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("SHELLS") != null; double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); + double[] lower = HbmAnimations.getRelevantTransformation("LOWER"); double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); double[] cycle = HbmAnimations.getRelevantTransformation("CYCLE"); double[] barrel = HbmAnimations.getRelevantTransformation("BARREL"); double[] hood = HbmAnimations.getRelevantTransformation("HOOD"); double[] lever = HbmAnimations.getRelevantTransformation("LEVER"); double[] belt = HbmAnimations.getRelevantTransformation("BELT"); + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + double[] magRot = HbmAnimations.getRelevantTransformation("MAGROT"); + double[] shellCount = HbmAnimations.getRelevantTransformation("SHELLS"); GL11.glTranslated(0, -1, -8); GL11.glRotated(equip[0], 1, 0, 0); GL11.glTranslated(0, 1, 8); + GL11.glTranslated(0, 0, -6); + GL11.glRotated(lower[0], 1, 0, 0); + GL11.glTranslated(0, 0, 6); + GL11.glTranslated(0, 0, recoil[2]); GL11.glShadeModel(GL11.GL_SMOOTH); @@ -72,9 +81,9 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { GL11.glPopMatrix(); GL11.glPushMatrix(); - GL11.glTranslated(0, 0, 0.375); - //GL11.glScaled(1, 1, 0.75); GL11.glTranslated(0, 0, -0.375); + GL11.glScaled(1, 1, 1 + 0.457247371D * barrel[2]); + GL11.glTranslated(0, 0, 0.375); ResourceManager.sexy.renderPart("RecoilSpring"); GL11.glPopMatrix(); @@ -99,6 +108,11 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { ResourceManager.sexy.renderPart("LockSpring"); GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslated(mag[0], mag[1], mag[2]); + GL11.glTranslated(0, -1, 0); + GL11.glRotated(magRot[2], 0, 0, 1); + GL11.glTranslated(0, 1, 0); ResourceManager.sexy.renderPart("Magazine"); double p = 0.0625D; @@ -129,15 +143,15 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { y += vec.yCoord; } + int shellAmount = useShellCount ? (int) shellCount[0] : gun.getConfig(stack, 0).getReceivers(stack)[0].getMagazine(stack).getAmount(stack, null); + // draw belt, interp used for cycling (shells will transform towards the position/rotation of the next shell) for(int i = 0; i < shells.length - 1; i++) { double[] prevShell = shells[i]; double[] nextShell = shells[i + 1]; - renderShell( - BobMathUtil.interp(prevShell[0], nextShell[0], cycleProgress), - BobMathUtil.interp(prevShell[1], nextShell[1], cycleProgress), - BobMathUtil.interp(prevShell[2], nextShell[2], cycleProgress), true); + renderShell(prevShell[0], nextShell[0], prevShell[1], nextShell[1], prevShell[2], nextShell[2], shells.length - i < shellAmount + 2, cycleProgress); } + GL11.glPopMatrix(); GL11.glShadeModel(GL11.GL_FLAT); } From 03693e7c0a595f80515380ff56d6612f0a613276 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 26 Jun 2025 00:32:37 +0200 Subject: [PATCH 181/181] girl dinner (a bottle of whiskey) --- .../weapon/sedna/factory/XFactory12ga.java | 3 + .../com/hbm/main/ModEventHandlerClient.java | 2 +- .../java/com/hbm/main/ResourceManager.java | 2 + .../item/weapon/sedna/ItemRenderSexy.java | 24 +- .../assets/hbm/models/weapons/whiskey.obj | 605 ++++++++++++++++++ .../models/weapons/whiskey (Kopie).png | Bin 0 -> 37269 bytes .../hbm/textures/models/weapons/whiskey.png | Bin 0 -> 34357 bytes .../hbm/textures/models/weapons/whiskey.xcf | Bin 0 -> 267625 bytes 8 files changed, 632 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/whiskey.obj create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/whiskey (Kopie).png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/whiskey.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/whiskey.xcf diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java index abd376759..777c2d4c4 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory12ga.java @@ -672,6 +672,9 @@ public class XFactory12ga { .addBus("BELT", new BusAnimationSequence().setPos(1, 0, 0).hold(750).addPos(0, 0, 0, 500, IType.SIN_UP).hold(2000).addPos(1, 0, 0, 500, IType.SIN_UP)) .addBus("MAG", new BusAnimationSequence().hold(1500).addPos(0, -1, 0, 250, IType.SIN_UP).addPos(2, -1, 0, 500, IType.SIN_UP).addPos(7, 1, 0, 250, IType.SIN_UP).addPos(15, 2, 0, 250).setPos(0, -2, 0).addPos(0, 0, 0, 500, IType.SIN_UP)) .addBus("MAGROT", new BusAnimationSequence().hold(2250).addPos(0, 0, -180, 500, IType.SIN_FULL).setPos(0, 0, 0)); + case INSPECT: return new BusAnimation() + .addBus("BOTTLE", new BusAnimationSequence().setPos(8, -8, -2).addPos(6, -4, -2, 500, IType.SIN_DOWN).addPos(3, -3, -5, 500, IType.SIN_FULL).addPos(3, -2, -5, 1000).addPos(4, -6, -2, 750, IType.SIN_FULL).addPos(6, -8, -2, 500, IType.SIN_UP)) + .addBus("SIP", new BusAnimationSequence().setPos(25, 0, 0).hold(500).addPos(-90, 0, 0, 500, IType.SIN_FULL).addPos(-110, 0, 0, 1000).addPos(25, 0, 0, 750, IType.SIN_FULL)); } return null; diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index ce23a4e69..e9e40dfe0 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -923,7 +923,7 @@ public class ModEventHandlerClient { ); String prefix = "Slot "; - int gunScale = 8; + //int gunScale = 8; int slotScale = 1; boolean ignoreNonNTM = true; boolean onlyGuns = true; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 889727560..5ec3d90fc 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -885,6 +885,7 @@ public class ResourceManager { public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asVBO(); public static final IModelCustom shredder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/shredder.obj")).asVBO(); public static final IModelCustom sexy = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/sexy.obj")).asVBO(); + public static final IModelCustom whiskey = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/whiskey.obj")).asVBO(); public static final IModelCustom quadro = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/quadro.obj")).asVBO(); public static final IModelCustom mike_hawk = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/mike_hawk.obj")).asVBO(); public static final IModelCustom minigun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/minigun.obj")).asVBO(); @@ -1009,6 +1010,7 @@ public class ResourceManager { public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder.png"); public static final ResourceLocation shredder_orig_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder_orig.png"); public static final ResourceLocation sexy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy_real_no_fake.png"); + public static final ResourceLocation whiskey_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/whiskey.png"); public static final ResourceLocation quadro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro.png"); public static final ResourceLocation quadro_rocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro_rocket.png"); public static final ResourceLocation minigun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/minigun.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java index c237a95e4..acd889ab4 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderSexy.java @@ -42,13 +42,13 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { @Override public void renderFirstPerson(ItemStack stack) { ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sexy_tex); double scale = 0.375D; GL11.glScaled(scale, scale, scale); boolean doesCycle = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("CYCLE") != null; boolean reloading = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("BELT") != null; boolean useShellCount = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("SHELLS") != null; + boolean girldinner = HbmAnimations.getRelevantAnim(0) != null && HbmAnimations.getRelevantAnim(0).animation.getBus("BOTTLE") != null; double[] equip = HbmAnimations.getRelevantTransformation("EQUIP"); double[] lower = HbmAnimations.getRelevantTransformation("LOWER"); double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); @@ -60,6 +60,26 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { double[] mag = HbmAnimations.getRelevantTransformation("MAG"); double[] magRot = HbmAnimations.getRelevantTransformation("MAGROT"); double[] shellCount = HbmAnimations.getRelevantTransformation("SHELLS"); + double[] bottle = HbmAnimations.getRelevantTransformation("BOTTLE"); + double[] sippy = HbmAnimations.getRelevantTransformation("SIP"); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + if(girldinner) { + GL11.glPushMatrix(); + GL11.glTranslated(bottle[0], bottle[1], bottle[2]); + GL11.glTranslated(0, 2, 0); + GL11.glRotated(sippy[0], 1, 0, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(-15, 1, 0, 0); + GL11.glTranslated(0, -2, 0); + GL11.glScaled(1.5, 1.5, 1.5); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.whiskey_tex); + ResourceManager.whiskey.renderAll(); + GL11.glPopMatrix(); + } + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sexy_tex); GL11.glTranslated(0, -1, -8); GL11.glRotated(equip[0], 1, 0, 0); @@ -71,8 +91,6 @@ public class ItemRenderSexy extends ItemRenderWeaponBase { GL11.glTranslated(0, 0, recoil[2]); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.sexy.renderPart("Gun"); GL11.glPushMatrix(); diff --git a/src/main/resources/assets/hbm/models/weapons/whiskey.obj b/src/main/resources/assets/hbm/models/weapons/whiskey.obj new file mode 100644 index 000000000..4c64b19d5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/whiskey.obj @@ -0,0 +1,605 @@ +# Blender v2.79 (sub 0) OBJ File: 'whiskey.blend' +# www.blender.org +o Plane +v -0.437500 1.750000 0.375000 +v -0.375000 1.750000 0.437500 +v -0.375000 1.750000 -0.437500 +v -0.437500 1.750000 -0.375000 +v 0.437500 1.750000 -0.375000 +v 0.375000 1.750000 -0.437500 +v 0.375000 1.750000 0.437500 +v 0.437500 1.750000 0.375000 +v 0.437500 0.250000 0.375000 +v 0.375000 0.250000 0.437500 +v 0.375000 0.250000 -0.437500 +v 0.437500 0.250000 -0.375000 +v -0.437500 0.250000 -0.375000 +v -0.375000 0.250000 -0.437500 +v -0.375000 0.250000 0.437500 +v -0.437500 0.250000 0.375000 +v -0.375000 0.000000 0.500000 +v -0.500000 0.000000 0.375000 +v 0.500000 0.000000 0.375000 +v 0.375000 0.000000 0.500000 +v -0.500000 0.000000 -0.375000 +v -0.375000 0.000000 -0.500000 +v 0.375000 0.000000 -0.500000 +v 0.500000 0.000000 -0.375000 +v -0.500000 2.000000 0.375000 +v -0.375000 2.000000 0.500000 +v 0.375000 2.000000 0.500000 +v 0.500000 2.000000 0.375000 +v -0.375000 2.000000 -0.500000 +v -0.500000 2.000000 -0.375000 +v 0.500000 2.000000 -0.375000 +v 0.375000 2.000000 -0.500000 +v -0.500000 0.187500 0.375000 +v -0.375000 0.187500 0.500000 +v -0.375000 0.187500 -0.500000 +v -0.500000 0.187500 -0.375000 +v 0.500000 0.187500 -0.375000 +v 0.375000 0.187500 -0.500000 +v 0.375000 0.187500 0.500000 +v 0.500000 0.187500 0.375000 +v -0.500000 1.812500 -0.375000 +v -0.375000 1.812500 -0.500000 +v -0.375000 1.812500 0.500000 +v -0.500000 1.812500 0.375000 +v 0.375000 1.812500 -0.500000 +v 0.500000 1.812500 -0.375000 +v 0.500000 1.812500 0.375000 +v 0.375000 1.812500 0.500000 +v 0.000000 2.125000 -0.312500 +v -0.156250 2.125000 -0.270633 +v -0.270633 2.125000 -0.156250 +v -0.312500 2.125000 0.000000 +v -0.270633 2.125000 0.156250 +v -0.156250 2.125000 0.270633 +v -0.000000 2.125000 0.312500 +v 0.156250 2.125000 0.270633 +v 0.270633 2.125000 0.156250 +v 0.312500 2.125000 0.000000 +v 0.270633 2.125000 -0.156250 +v 0.156250 2.125000 -0.270633 +v 0.000000 2.250000 -0.187500 +v -0.093750 2.250000 -0.162380 +v -0.162380 2.250000 -0.093750 +v -0.187500 2.250000 0.000000 +v -0.162380 2.250000 0.093750 +v -0.093750 2.250000 0.162380 +v -0.000000 2.250000 0.187500 +v 0.093750 2.250000 0.162380 +v 0.162380 2.250000 0.093750 +v 0.187500 2.250000 0.000000 +v 0.162380 2.250000 -0.093750 +v 0.093750 2.250000 -0.162380 +v 0.000000 3.000000 -0.187500 +v -0.093750 3.000000 -0.162380 +v -0.162380 3.000000 -0.093750 +v -0.187500 3.000000 0.000000 +v -0.162380 3.000000 0.093750 +v -0.093750 3.000000 0.162380 +v -0.000000 3.000000 0.187500 +v 0.093750 3.000000 0.162380 +v 0.162380 3.000000 0.093750 +v 0.187500 3.000000 0.000000 +v 0.162380 3.000000 -0.093750 +v 0.093750 3.000000 -0.162380 +v 0.000000 3.000000 -0.125000 +v -0.062500 3.000000 -0.108253 +v -0.108253 3.000000 -0.062500 +v -0.125000 3.000000 0.000000 +v -0.108253 3.000000 0.062500 +v -0.062500 3.000000 0.108253 +v -0.000000 3.000000 0.125000 +v 0.062500 3.000000 0.108253 +v 0.108253 3.000000 0.062500 +v 0.125000 3.000000 0.000000 +v 0.108253 3.000000 -0.062500 +v 0.062500 3.000000 -0.108253 +v 0.000000 2.500000 -0.125000 +v -0.062500 2.500000 -0.108253 +v -0.108253 2.500000 -0.062500 +v -0.125000 2.500000 0.000000 +v -0.108253 2.500000 0.062500 +v -0.062500 2.500000 0.108253 +v -0.000000 2.500000 0.125000 +v 0.062500 2.500000 0.108253 +v 0.108253 2.500000 0.062500 +v 0.125000 2.500000 0.000000 +v 0.108253 2.500000 -0.062500 +v 0.062500 2.500000 -0.108253 +vt 0.052937 0.823977 +vt 0.225652 0.867155 +vt 0.052937 0.867155 +vt 0.693212 0.823976 +vt 0.865928 0.867155 +vt 0.693212 0.867155 +vt 0.266362 0.823977 +vt 0.439078 0.867155 +vt 0.266362 0.867155 +vt 0.439078 0.758665 +vt 0.266377 0.715427 +vt 0.439093 0.715486 +vt 0.865928 0.803621 +vt 0.865928 0.823976 +vt 0.225652 0.758591 +vt 0.052952 0.715353 +vt 0.225667 0.715413 +vt 0.865929 0.758812 +vt 0.693228 0.715574 +vt 0.865943 0.715633 +vt 0.479787 0.823977 +vt 0.652503 0.867155 +vt 0.479787 0.867155 +vt 0.652503 0.758739 +vt 0.479802 0.715500 +vt 0.652518 0.715560 +vt 0.439078 0.823977 +vt 0.652503 0.823976 +vt 0.225652 0.823977 +vt 0.012227 0.823977 +vt 0.012227 0.867155 +vt 0.052937 0.758532 +vt 0.012242 0.715339 +vt 0.693213 0.758753 +vt 0.266362 0.758606 +vt 0.479787 0.758679 +vt 0.508551 0.382113 +vt 0.630679 0.544951 +vt 0.467841 0.667080 +vt 0.683035 0.806349 +vt 0.469610 0.806349 +vt 0.439078 0.803622 +vt 0.652503 0.803622 +vt 0.042759 0.806349 +vt 0.256185 0.806349 +vt 0.225652 0.803622 +vt 0.591439 0.012228 +vt 0.571084 0.357659 +vt 0.571084 0.012228 +vt 0.398369 0.357659 +vt 0.398369 0.012228 +vt 0.184943 0.012227 +vt 0.012227 0.357659 +vt 0.012228 0.012227 +vt 0.378014 0.357659 +vt 0.378014 0.012228 +vt 0.784510 0.012227 +vt 0.764155 0.357659 +vt 0.764155 0.012227 +vt 0.205298 0.357659 +vt 0.205298 0.012227 +vt 0.184943 0.357659 +vt 0.591439 0.357659 +vt 0.439071 0.779020 +vt 0.266355 0.778960 +vt 0.469604 0.776303 +vt 0.449249 0.776296 +vt 0.652496 0.779094 +vt 0.479780 0.779034 +vt 0.683029 0.776377 +vt 0.662674 0.776370 +vt 0.865922 0.779167 +vt 0.693206 0.779108 +vt 0.012227 0.758518 +vt 0.042753 0.776156 +vt 0.022398 0.776149 +vt 0.225645 0.778946 +vt 0.052930 0.778887 +vt 0.256178 0.776230 +vt 0.235824 0.776223 +vt 0.827850 0.426816 +vt 0.841753 0.445442 +vt 0.827850 0.449167 +vt 0.827850 0.404465 +vt 0.841753 0.423091 +vt 0.827850 0.382113 +vt 0.841753 0.400739 +vt 0.827849 0.627976 +vt 0.841752 0.646602 +vt 0.827849 0.650328 +vt 0.827849 0.605625 +vt 0.841752 0.624251 +vt 0.827850 0.583274 +vt 0.841752 0.601900 +vt 0.841752 0.564648 +vt 0.841752 0.579549 +vt 0.827850 0.560923 +vt 0.841752 0.542297 +vt 0.841752 0.557198 +vt 0.827850 0.538572 +vt 0.841753 0.519946 +vt 0.841752 0.534846 +vt 0.827850 0.516220 +vt 0.841753 0.497595 +vt 0.841753 0.512495 +vt 0.827850 0.493869 +vt 0.841753 0.475243 +vt 0.841753 0.490144 +vt 0.827850 0.471518 +vt 0.841753 0.452892 +vt 0.841753 0.467793 +vt 0.857124 0.159276 +vt 0.864574 0.187081 +vt 0.844220 0.207436 +vt 0.693212 0.803622 +vt 0.345713 0.544951 +vt 0.345713 0.504242 +vt 0.467841 0.382113 +vt 0.630679 0.504242 +vt 0.508551 0.667080 +vt 0.662680 0.806349 +vt 0.449255 0.806349 +vt 0.266362 0.803622 +vt 0.479787 0.803622 +vt 0.022405 0.806349 +vt 0.235830 0.806349 +vt 0.052937 0.803622 +vt 0.784510 0.357659 +vt 0.841753 0.430541 +vt 0.841753 0.408190 +vt 0.841753 0.385839 +vt 0.841752 0.631702 +vt 0.841752 0.609350 +vt 0.841752 0.586999 +vt 0.829319 0.207436 +vt 0.816415 0.199985 +vt 0.808964 0.187081 +vt 0.808964 0.172180 +vt 0.816415 0.159276 +vt 0.829319 0.151826 +vt 0.844220 0.151826 +vt 0.864574 0.172180 +vt 0.857124 0.199985 +vt 0.321258 0.518454 +vt 0.238315 0.521438 +vt 0.220754 0.488898 +vt 0.237168 0.559627 +vt 0.184896 0.690885 +vt 0.182030 0.607808 +vt 0.214707 0.590337 +vt 0.139480 0.690836 +vt 0.012227 0.554530 +vt 0.095226 0.551540 +vt 0.112801 0.584112 +vt 0.012232 0.509129 +vt 0.148725 0.382113 +vt 0.189887 0.466440 +vt 0.151549 0.465183 +vt 0.118860 0.482620 +vt 0.200962 0.548521 +vt 0.190371 0.563643 +vt 0.143679 0.606579 +vt 0.173577 0.571533 +vt 0.139421 0.559473 +vt 0.154899 0.570068 +vt 0.096376 0.513327 +vt 0.131245 0.542854 +vt 0.132598 0.524424 +vt 0.143165 0.509279 +vt 0.159957 0.501494 +vt 0.178656 0.502956 +vt 0.194151 0.513552 +vt 0.202343 0.530124 +vt 0.655134 0.605624 +vt 0.655134 0.627975 +vt 0.655135 0.449166 +vt 0.655135 0.471518 +vt 0.655135 0.404464 +vt 0.655135 0.426815 +vt 0.655134 0.516220 +vt 0.655134 0.538571 +vt 0.655134 0.583273 +vt 0.655135 0.382113 +vt 0.655135 0.493869 +vt 0.655134 0.560922 +vt 0.655133 0.650326 +vt 0.883468 0.127371 +vt 0.898369 0.012227 +vt 0.898369 0.127371 +vt 0.928170 0.127371 +vt 0.943070 0.012227 +vt 0.943071 0.127371 +vt 0.972872 0.127371 +vt 0.987773 0.012227 +vt 0.987773 0.127371 +vt 0.868567 0.127371 +vt 0.883468 0.012227 +vt 0.838766 0.127371 +vt 0.853666 0.012227 +vt 0.853666 0.127371 +vt 0.913269 0.127371 +vt 0.928170 0.012227 +vt 0.957971 0.127371 +vt 0.972872 0.012227 +vt 0.868567 0.012227 +vt 0.823865 0.127371 +vt 0.838766 0.012227 +vt 0.913269 0.012227 +vt 0.957971 0.012227 +vt 0.808964 0.127371 +vt 0.823865 0.012227 +vt 0.194123 0.382196 +vt 0.321258 0.563814 +vt 0.808964 0.012227 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn -0.5774 0.5774 0.5774 +vn 0.5774 0.5774 0.5774 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.5774 0.5774 -0.5774 +vn 0.5774 0.5774 -0.5774 +vn 0.0000 0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.5774 -0.5774 0.5774 +vn 0.0000 -0.7071 0.7071 +vn -0.5774 -0.5774 0.5774 +vn -0.7071 -0.7071 0.0000 +vn -0.5774 -0.5774 -0.5774 +vn 0.0000 -0.7071 -0.7071 +vn 0.5774 -0.5774 -0.5774 +vn 0.0000 1.0000 -0.0000 +vn 0.3493 0.9190 -0.1829 +vn 0.4649 0.8474 -0.2564 +vn 0.5891 0.8080 0.0000 +vn 0.2564 0.8474 -0.4649 +vn -0.1829 0.9190 -0.3493 +vn -0.2564 0.8474 -0.4649 +vn 0.0000 0.8080 -0.5891 +vn -0.3493 0.9190 -0.1829 +vn -0.3493 0.9190 0.1829 +vn -0.4649 0.8474 0.2564 +vn -0.5891 0.8080 0.0000 +vn -0.1829 0.9190 0.3493 +vn 0.1829 0.9190 0.3493 +vn 0.4649 0.8474 0.2564 +vn 0.2564 0.8474 0.4649 +vn -0.0000 0.8080 0.5891 +vn 0.4567 0.4070 -0.7911 +vn 0.0000 0.4070 -0.9134 +vn -0.4649 0.8474 -0.2564 +vn -0.4567 0.4070 -0.7911 +vn -0.9134 0.4070 -0.0000 +vn -0.7911 0.4070 -0.4567 +vn -0.2564 0.8474 0.4649 +vn -0.7911 0.4070 0.4567 +vn -0.4567 0.4070 0.7911 +vn -0.0000 0.4070 0.9134 +vn 0.4567 0.4070 0.7911 +vn 0.7911 0.4070 0.4567 +vn 0.9134 0.4070 0.0000 +vn 0.7911 0.4070 -0.4567 +vn -0.8660 0.0000 0.5000 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 0.8660 +vn 0.3493 0.9190 0.1829 +vn 0.1829 0.9190 -0.3493 +s off +f 35/1/1 23/2/1 22/3/1 +f 33/4/2 21/5/2 18/6/2 +f 37/7/3 19/8/3 24/9/3 +f 47/10/3 31/11/3 28/12/3 +f 33/4/4 13/13/4 36/14/4 +f 45/15/1 29/16/1 32/17/1 +f 41/18/2 25/19/2 30/20/2 +f 39/21/5 17/22/5 20/23/5 +f 43/24/5 27/25/5 26/26/5 +f 40/27/6 20/23/6 19/8/6 +f 18/6/7 34/28/7 33/4/7 +f 38/29/8 24/9/8 23/2/8 +f 36/30/9 22/3/9 21/31/9 +f 42/32/9 30/33/9 29/16/9 +f 26/26/7 44/34/7 43/24/7 +f 46/35/8 32/17/8 31/11/8 +f 48/36/6 28/12/6 27/25/6 +f 24/37/10 20/38/10 18/39/10 +f 34/28/11 16/40/11 33/4/11 +f 40/27/12 10/41/12 39/21/12 +f 37/7/13 9/42/13 40/27/13 +f 39/21/14 15/43/14 34/28/14 +f 36/30/15 14/44/15 35/1/15 +f 38/29/16 12/45/16 37/7/16 +f 35/1/17 11/46/17 38/29/17 +f 11/47/8 5/48/8 12/49/8 +f 12/49/3 8/50/3 9/51/3 +f 16/52/2 4/53/2 13/54/2 +f 9/51/6 7/55/6 10/56/6 +f 13/57/9 3/58/9 14/59/9 +f 10/56/5 2/60/5 15/61/5 +f 15/61/7 1/62/7 16/52/7 +f 14/59/1 6/63/1 11/47/1 +f 46/35/18 8/64/18 5/65/18 +f 47/10/19 7/66/19 8/67/19 +f 48/36/20 2/68/20 7/69/20 +f 43/24/21 1/70/21 2/71/21 +f 44/34/22 4/72/22 1/73/22 +f 41/74/23 3/75/23 4/76/23 +f 42/32/24 6/77/24 3/78/24 +f 45/15/25 5/79/25 6/80/25 +f 74/81/26 85/82/26 73/83/26 +f 75/84/26 86/85/26 74/81/26 +f 76/86/26 87/87/26 75/84/26 +f 77/88/26 88/89/26 76/90/26 +f 78/91/26 89/92/26 77/88/26 +f 79/93/26 90/94/26 78/91/26 +f 79/93/26 92/95/26 91/96/26 +f 80/97/26 93/98/26 92/99/26 +f 81/100/26 94/101/26 93/102/26 +f 82/103/26 95/104/26 94/105/26 +f 83/106/26 96/107/26 95/108/26 +f 84/109/26 85/110/26 96/111/26 +f 105/112/26 107/113/26 97/114/26 +f 35/1/1 38/29/1 23/2/1 +f 33/4/2 36/14/2 21/5/2 +f 37/7/3 40/27/3 19/8/3 +f 47/10/3 46/35/3 31/11/3 +f 33/4/4 16/115/4 13/13/4 +f 45/15/1 42/32/1 29/16/1 +f 41/18/2 44/34/2 25/19/2 +f 39/21/5 34/28/5 17/22/5 +f 43/24/5 48/36/5 27/25/5 +f 40/27/6 39/21/6 20/23/6 +f 18/6/7 17/22/7 34/28/7 +f 38/29/8 37/7/8 24/9/8 +f 36/30/9 35/1/9 22/3/9 +f 42/32/9 41/74/9 30/33/9 +f 26/26/7 25/19/7 44/34/7 +f 46/35/8 45/15/8 32/17/8 +f 48/36/6 47/10/6 28/12/6 +f 18/39/10 21/116/10 22/117/10 +f 22/117/10 23/118/10 24/37/10 +f 24/37/10 19/119/10 20/38/10 +f 20/38/10 17/120/10 18/39/10 +f 18/39/10 22/117/10 24/37/10 +f 34/28/11 15/121/11 16/40/11 +f 40/27/12 9/122/12 10/41/12 +f 37/7/13 12/123/13 9/42/13 +f 39/21/14 10/124/14 15/43/14 +f 36/30/15 13/125/15 14/44/15 +f 38/29/16 11/126/16 12/45/16 +f 35/1/17 14/127/17 11/46/17 +f 11/47/8 6/63/8 5/48/8 +f 12/49/3 5/48/3 8/50/3 +f 16/52/2 1/62/2 4/53/2 +f 9/51/6 8/50/6 7/55/6 +f 13/57/9 4/128/9 3/58/9 +f 10/56/5 7/55/5 2/60/5 +f 15/61/7 2/60/7 1/62/7 +f 14/59/1 3/58/1 6/63/1 +f 46/35/18 47/10/18 8/64/18 +f 47/10/19 48/36/19 7/66/19 +f 48/36/20 43/24/20 2/68/20 +f 43/24/21 44/34/21 1/70/21 +f 44/34/22 41/18/22 4/72/22 +f 41/74/23 42/32/23 3/75/23 +f 42/32/24 45/15/24 6/77/24 +f 45/15/25 46/35/25 5/79/25 +f 74/81/26 86/129/26 85/82/26 +f 75/84/26 87/130/26 86/85/26 +f 76/86/26 88/131/26 87/87/26 +f 77/88/26 89/132/26 88/89/26 +f 78/91/26 90/133/26 89/92/26 +f 79/93/26 91/134/26 90/94/26 +f 79/93/26 80/97/26 92/95/26 +f 80/97/26 81/100/26 93/98/26 +f 81/100/26 82/103/26 94/101/26 +f 82/103/26 83/106/26 95/104/26 +f 83/106/26 84/109/26 96/107/26 +f 84/109/26 73/83/26 85/110/26 +f 97/114/26 98/135/26 99/136/26 +f 99/136/26 100/137/26 101/138/26 +f 101/138/26 102/139/26 103/140/26 +f 103/140/26 104/141/26 105/112/26 +f 105/112/26 106/142/26 107/113/26 +f 107/113/26 108/143/26 97/114/26 +f 97/114/26 99/136/26 101/138/26 +f 101/138/26 103/140/26 97/114/26 +f 103/140/26 105/112/26 97/114/26 +s 1 +f 31/144/27 59/145/28 58/146/29 +f 31/144/27 60/147/30 59/145/28 +f 29/148/31 50/149/32 49/150/33 +f 30/151/34 50/149/32 29/148/31 +f 25/152/35 53/153/36 52/154/37 +f 26/155/38 53/153/36 25/152/35 +f 27/156/39 57/157/40 56/158/41 +f 27/156/39 56/158/41 55/159/42 +f 49/150/33 72/160/43 60/147/30 +f 50/149/32 61/161/44 49/150/33 +f 51/162/45 62/163/46 50/149/32 +f 51/162/45 64/164/47 63/165/48 +f 53/153/36 64/164/47 52/154/37 +f 54/166/49 65/167/50 53/153/36 +f 55/159/42 66/168/51 54/166/49 +f 56/158/41 67/169/52 55/159/42 +f 57/157/40 68/170/53 56/158/41 +f 58/146/29 69/171/54 57/157/40 +f 59/145/28 70/172/55 58/146/29 +f 60/147/30 71/173/56 59/145/28 +f 66/174/51 77/88/57 65/175/50 +f 61/176/44 84/109/58 72/177/43 +f 63/178/48 74/81/59 62/179/46 +f 70/180/55 81/100/60 69/181/54 +f 67/182/52 78/91/61 66/174/51 +f 64/183/47 75/84/62 63/178/48 +f 71/184/56 82/103/3 70/180/55 +f 68/185/53 79/93/5 67/182/52 +f 65/175/50 76/90/2 64/186/47 +f 72/177/43 83/106/63 71/184/56 +f 62/179/46 73/83/1 61/176/44 +f 69/181/54 80/97/64 68/185/53 +f 95/187/57 106/188/2 94/189/2 +f 92/190/59 103/191/1 91/192/1 +f 89/193/63 100/194/3 88/195/3 +f 96/196/61 107/197/57 95/187/57 +f 86/198/64 97/199/5 85/200/5 +f 93/201/62 104/202/59 92/190/59 +f 90/203/58 101/204/63 89/193/63 +f 85/200/5 108/205/61 96/196/61 +f 87/206/60 98/207/64 86/198/64 +f 94/189/2 105/208/62 93/201/62 +f 91/192/1 102/209/58 90/203/58 +f 88/210/3 99/211/60 87/206/60 +f 57/157/40 28/212/65 58/146/29 +f 28/212/65 31/144/27 58/146/29 +f 31/144/27 32/213/66 60/147/30 +f 60/147/30 32/213/66 49/150/33 +f 32/213/66 29/148/31 49/150/33 +f 30/151/34 51/162/45 50/149/32 +f 51/162/45 30/151/34 52/154/37 +f 30/151/34 25/152/35 52/154/37 +f 26/155/38 54/166/49 53/153/36 +f 27/156/39 28/212/65 57/157/40 +f 54/166/49 26/155/38 55/159/42 +f 26/155/38 27/156/39 55/159/42 +f 49/150/33 61/161/44 72/160/43 +f 50/149/32 62/163/46 61/161/44 +f 51/162/45 63/165/48 62/163/46 +f 51/162/45 52/154/37 64/164/47 +f 53/153/36 65/167/50 64/164/47 +f 54/166/49 66/168/51 65/167/50 +f 55/159/42 67/169/52 66/168/51 +f 56/158/41 68/170/53 67/169/52 +f 57/157/40 69/171/54 68/170/53 +f 58/146/29 70/172/55 69/171/54 +f 59/145/28 71/173/56 70/172/55 +f 60/147/30 72/160/43 71/173/56 +f 66/174/51 78/91/61 77/88/57 +f 61/176/44 73/83/1 84/109/58 +f 63/178/48 75/84/62 74/81/59 +f 70/180/55 82/103/3 81/100/60 +f 67/182/52 79/93/5 78/91/61 +f 64/183/47 76/86/2 75/84/62 +f 71/184/56 83/106/63 82/103/3 +f 68/185/53 80/97/64 79/93/5 +f 65/175/50 77/88/57 76/90/2 +f 72/177/43 84/109/58 83/106/63 +f 62/179/46 74/81/59 73/83/1 +f 69/181/54 81/100/60 80/97/64 +f 95/187/57 107/197/57 106/188/2 +f 92/190/59 104/202/59 103/191/1 +f 89/193/63 101/204/63 100/194/3 +f 96/196/61 108/205/61 107/197/57 +f 86/198/64 98/207/64 97/199/5 +f 93/201/62 105/208/62 104/202/59 +f 90/203/58 102/209/58 101/204/63 +f 85/200/5 97/199/5 108/205/61 +f 87/206/60 99/211/60 98/207/64 +f 94/189/2 106/188/2 105/208/62 +f 91/192/1 103/191/1 102/209/58 +f 88/210/3 100/214/3 99/211/60 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/whiskey (Kopie).png b/src/main/resources/assets/hbm/textures/models/weapons/whiskey (Kopie).png new file mode 100644 index 0000000000000000000000000000000000000000..959b94011dd9e1bf6a37e1adc7d0ac47df9c2fb9 GIT binary patch literal 37269 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/whiskey.png b/src/main/resources/assets/hbm/textures/models/weapons/whiskey.png new file mode 100644 index 0000000000000000000000000000000000000000..590f3ff302d2a97a5d0ec2f66ec111256fc160e2 GIT binary patch literal 34357 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/whiskey.xcf b/src/main/resources/assets/hbm/textures/models/weapons/whiskey.xcf new file mode 100644 index 0000000000000000000000000000000000000000..2376c64d51e153dc45b6dd1b928d8a9cf8a7d0bf GIT binary patch literal 267625 zcmeEv31HO4_5bXV`+_7uIJ1NR0ZG{1TpJAv2#U&~a)^r7O|pU5TqZ$?M}yV_1Z_lA zEU0L;ShW_d)!M41*1O`ZSi~CzMC875?EF8UnfWFgKx_TC{n>UGCU1^6^PPF$Io`bY zX1=p4s%l;HOUqpsyFEoh2)l6rLfit^9nNOMpA@+0vCTrz;g<^Mgu587r|}c72cka* z>^2)kXIE7DX9u!p*Hx4uN+8|VJFC8-u`=MQuc@pk8y1^YKD)H0vZgN9g87@zOD`S@XTmE_7?pcL}87}uQ6j<^P6sR+*lE2MsN}gX|>o2XS zp6&9u@tnpkArr`+TV2uMs;DlV6Q~Ey{F?Ie`alCJ2K*4e_I5=kfkvDRqMcq>QyM6n zTNgO7rnr)-1nMgN$mFW7!IMgB zs%q;3_4O4s)vh9hOMX1N%+;tW#0P7n+BuE&CbFTTDqy_z{)+?I4R!u%w5Kjm-Jo%6 zYJpO5398_)3^X(ZbZmJ|U6sGVmEoV;P?Lejpw*Rg%L1rlMY+bXVk&AIO1s9)N4HaT zwNTWX&#tYjVN<&%HO!e?RZ{J*sO%bzR#tV?P<1vdCga4qfWHCMm{-v-$93{4lTJtV zNUqe7K3NrL@R#`;{DzEnPw@%!t14X=2kJ<-QA0gB?xC(gb!kl*-uS4Y)2E%3?HhW+ z@v+5L#^cdtiyQp2UDf`oz^IJzXm!ph?Cv>ZD;nxg57bTdSJhSqGLHAT@UM6zP`^2g z$~ZAlJ-cB}#_{60HOR1XjjJZp1)J{nE{Nb^Z z&I}pH=epe^|K0=6{_Yu0pHtINlXD{Hhp8BPpk+wmBs)i4z=h6UUNL`EMngq;d4_9l zUFE2ZISmc9$BrCXU7zDGt0@WOplgg|@<_bakr~GqkL<{O*gKh7RhvV^oTC!0cx30> zXU7ToMQqZ6r28~Xe@(+H4bGyAwCBc=8m?Nd;S(2V_~HZ&H}zJ~mUy>@z1$iO9;M;P zlQg{HT?HM#i&N1012D>@ z@mYh7A3$W%FYyB$6ymqmrgFq#J#uUV)ay}0U_NKh#y}mS*cQiYS&VaK97z?)=`8>Xof_zWF=k@t=i^@Hv zC7%3pH(QfUcuIW*UcW!Ts3f-#k5KDg`P|A%_DEL-=Z*$UUsbLdfjYlyYM>62 z>DZdevJO;#RYhgv(Ge{iy~1XMW~;3~tb7))O3w~OtEesu%;$2Ysx>cAF?&vf3rnMk zsIT;c9#&``Cm<|_R+w}#^QX&`>v0!)xgIk%yB@2D%NH8bi(hTU{6HmFN|amSudMJ} zYZ4wbdoCtZR|ZxTFaba*@z)2k%PQ&urJS8yl?`=>Jd$~sFm=Y?=Nyh$?adN@;oN$R z{zg|RCd>fKFR7WIT~$*SaAAfCkY8bhZg`<5$LG%T78K^@7Zv8`dEEsjd5$4lUXHr} zQ~**@QJyl&uOsT)tRJCMoLqkZyg*6q` zCZ(!E)6gnhg|jQcN;GH|%1Su=L-Xf@=qAe?S|a5(^g%ceJ>4qUa452^S?3L=V6i3r%4=5z7iNM}};&JtM-+0xAB3-d6i)xi(j{xuk51 z5W#!a#*3D;d%ygwDRQ7_pCF5^xV4{;h`VLtK=Bpg#D!n%c_8MVSDxFN@00v%7wyUN zrok#PHF#B)yzrj)Q$N32sJ|+4X-DEPS#i%=@!k@l{yN0LKW`e|bIqwA6r_u7Ec?fs z_dGC0%H>kdQhzh;;$ZLlzS^1VpePn|Y?{G{>Y zTqjMLK6%{uGm-j(;^Dy8+0H?ozAq0KKwk22oXEe4hkMuXaNkT7@(*N0!n|Auw-)B* zLU}oFj<3k)@#Ga2`P})1-hA{Ia(af9%gxWpb>|m(it_V|it-DAX41o~+`o;LOMMD6 zz~Mh@QZ%ew>L(f@{VySi77n6%aPq`2{R|BSCfvnft88H6Y>H=!mktHvz=kFz zdj)PuK`?BQ@}P=AtRn=G?37*ZvyuRvip8>rqLYmyniSFB4Lt&A@o?l!Y$%Z|ofB1a zC@xVma184>r-EevoM7tW#6YAZflJlACS!FDhNBR#F>OfK1YkHy<<^z7%Q&RjRjI_G zpN=@%Pe>dxo4OqOyFMpQ#33#P>D^GPB#^rkgJg)4$?7#kbyCW%xzz}HNYfJ~CMy<~ zrH4>7LgO)3zc7}>IvyR195i3C#{!Z^weR$}Yd&zCehQ_50pANBmyO3B~f2E!gyb>=0jfiCiUR@QWDn zaq1T`Pl%6KB|Q0=7%wl4zcN@X+7=3NS+_aj#V5rayV%|}8o2#Fh!LM&erEf<$SCFR z^TkcFJ0uC$nT!G%onrf8k-&T*T6_}mwD^5XUlbB^OWSabvPc}bUWh9o^$p3_5&7{d zKg1exmP2m47TKb2l%r2VJr@K=iML)$OMS>Lf+|~=NVdqfAxeDIO+F}UrThx5-FlN< zl)ktBopXg4xBlP*bWo8koy24UY21Tv_o1~wHw3%*V%yd_}rUkQ2HWfM0z3q>h z3#WI@#`1L5S0_rN$bm32`c_{pIT3T(;#Zhx~L|*B*F}yp!w+XnXMO zSpo>QRghB!zbH)>Z+(1^5DO3MVw>dxF>y5BVZu##%^$DAtHR%YA3RNb?1vBUa4Xlz z5`{0)B|3?eYgEsCp?9(feteHzd~#SvYfk&9^(K}N{A&OlqLtljv_W5gSYK)uSzk+{ z$KPnGvk(E>hF9&~L>n5l#4a{<=|uO)GEsbRG?EUzeIDC;a1HzyRLe)n8FUvCY+0zY z$w)9HO}789v{ID$G+b}E(NQA!syz~`&!a3AKZ*sC>A_x``|TWh;F8BfE*dER%agOA zvmIX&sODz+2PGXyM13fB{l3zHQZ}gb=Q8|%XG{o1%pPGNqzU|8vC+US2JY36e>4neg-0Ygo8n!!hQ~jQhO~k9$$Wlh#L+Kdl?6>3kL27#}u51(2cVVh;3(L^%>0oNVkAY=}Pwkb?d! zz(~L$fYI0_4S_!vFcXmKgG{(Ygfrl{HOheN1~(Al?tm`1<1Vlx+^6^H0qU!w;G8$W&t_@hXdNN?aEf0r8t=bXhSr|{z&f)HAr`qlYp{g z!H1Dv7{!j`{3#->x@bi;TeZV!w}!ro{DwS5CHmKh$1`VtO8y$Dm$rUaxXD8Ew) ze6&9TOs{x5p=Tn*79(ys(Lia;npD;k4nX3 zdtqywh;n0;wVwlnZ4mIdrQnvITX^b#qW~>GMF8n=5vWfz>cOUvwI&YP=19av!I7P2 z9K-$KqER0GeMB1a681*fgxo4bfJN^I(sjaKAT8s2cEABDy$1xNWYhn75U)v1q2ZSr zeyQP+`okWnoPyKL#(EHDEpD(gF>4VH#tah*DX657z=9Nr^hF$n1r!pbb@(GO%UJQz z=mJ`}5QFEWbogoGq2p-{(jED=03uEaJXmHD;whY+Cf%?)ahUGCm5;UNo!wSc$wp-y?EQ*Ps0fjEHSXC0x zR{BYIiIprqBUxI9f$sa7D+!N-@Hhys2NY_D z*MtA9^?_YT`6~(5lWfMT_%;gTwk-X)8(8t0+4I51^>P< zwUZWFFxV+r?F>7y3l38)R0JKS+P|`|ag;V4Cfp4b(pdsn!c53U2EkmSt0N~Ki#Q5F zz0Rl<)Kbq$h6#$X?d^<$VEH_z7!5O*@OtUT?@1S*WSBYtvV!ml>AYmXF;wP3{%qC zQ)tPbhED9od{{4vuy!1a{Mto8h?;>O6@{KQ5i2I>M<~eWKNh#y;wUe2?UWX1(;P}PhJp^!=&?gEXHr^_iLjO?BmhQ2RgerAja`0s zz!+sJ6Ahd`Xm>Pvb6=G|5mF%+`fWO-4Fe#f?}s+`!Td{(EJpQqy*4C(reV5=>E79& z|NHwp=NigsHCNL);zPNdf5aa;D_90`R(=|!QuaIyjYqVT6J#qjQg^<-wd~yjW2Qxd+tyz)pW=_)RG4hu=haOjzS1QygtC*c5dU z#wLx@v~fN;7Y9~(yE2A#0QN&#GN2Rjy)pi~!%ySi-Ut&n3I0gHG(c+dX&BFZGy!6m zx(qvvbwk4vT6uK2kJ%n5dFl{an$i?lcUZ!>UT&teTtfO z?tyu%I~?PzF!gy1vz^p?#o<|;19hAOapc_e{HNob3NH$6r1=!%I2ZOXc_LNW`W;Ac zTd8VJX5Bh*`79kDWu8NtX?mrieNH@+MagB7X+WldMtQOchSC} zwSRSr-YqTTl9?;=H8^t!FiG|~R*r_pxNGDD7qBqJ(L#-jAJ z_6u;<+Zly}&L_&5y+r%K)=TZ;kS(Y6r59cZ;#QFM7jB)|cf9lhYxx(za(?pLUSiL= zWaoeMLA%`fzztVLoqF(^M>fm0^)d-q+wVrPx9m;qDfX}UGUkE}?XO>$6&EY^*pj1j zuHEwn5q#-%B<-DF^-y?VbY=>-p z?y;Yq9UmhO^?G~HJh2cs!N(rLC2O1SMggn85JP@($RUHD+G0dY&xiMq)(Ce3;kQ88 zS99PGt!PWf7qLmavm z%dy5Pmh*dvgMWKq`nGntYh0Yz6H1J;w`s+gZZS7uX)Z{SKtZZk1pApX8e2;q2yc}9*xOcx-{ng#%pwe1H;^DLUUk=^Cipch~-z}{dn$|+DR#?IW8105IL#_K#wl_e2KJL8xuF;v6yIe+WTs66yMZmG zsb@DOM(hQp1al_gdjl_%fir$WVz=W&bd0p#5TUet$5I39}N9GVxV zd%Atdw!meC5{Cx!;o)^3r!F8cg>$2ZihKJY0cgGJ#;m7JKDRk=xD)jrm>~QI(nI1 z^JgDbL>-OQgO^@X_(-85Pr7vt)8LQBeiUwo;^}y1PC+k?8he5^6gWn} zPtKfIjq(!Iey9VvcdlOaC!kCkOX{0%CUSLr++n~=!rt%j-gY@`(HY4Zyzft2Hcn0C-_qc=n|EH?w&P? zqUD0NCl@#TI`;Q%A3h@P2g=UtZj(7cIa3xwhDVgv8Y%bmvx_!oe!dM$x~)w_oPCS) z<+cyxIwvqM2u4_#t3UndqvL>ihLlf0obODCiWcpUeC|N{T9g!A4MBLD{p7N-eMRtt zo1G9MUW?du4`qth99eNp1q7ViDiQPbWtn3CO|1h;ArMP%sZ2moJ1Yi>ecgBc3b&RH z5i{io#Eq0Q5ckvIC~+;WS6IHyiMSs7S7nHOKMwv}B)=~&6Te-9YOH7*n=bbBxl_Io zYx}wU=t=S0yOTs~k8Q1sd-WDO9A}sOa@YRbBKrJ7UOT@n`?q&@gXn%u+nyz3VsOKN z%?`FIL3}+x%3Z%1b>fYCak*%pU4Q-EE4J>UCHKLg-2a08MfnQW>y3#*)?z z$`9qSDPnKbsY|Z^M81E0i9@vr;Blg&*UAaMSnTb10e=6$-iB{kG_V(wX;y70xxOb`( zg+KLm>_Bm7%Av2$tdQ)2@o#*BzA;5kNEiEUm$$qGiN^zNK8VvR<#|X**mLgy(Q3P1 zu7Q@Ot^1en#zK+gI{2^yUxT@+ZE%0lcD=j_y%C>=`I!S<^G`doVxj(!*Yp$ZH^`fy zMY273pb&!W*>ZloXn*`8M<3DVmrHF?;y}vwzu?1jd!Kb6pqV4{y)V{M`m7mXw zjumYa{uYEnrY&>lb5LuwCB6S1v|erLAIWK+VUbyckIKhYk#Kiru4w zccB3v?UZG`F1ZB5wDt7&qrm)+IZFd%?ObV$em>LQ{ zg=}Q^^<^L2I#96AX_dERL>g;lEl}s#ZL_kODt#b9h-vGFWu&j|3hCkW$&R@XR*Plg9&65fFzqFs(QId_K26 z+%ok+8QgmCnY6v3GC{NKI@}jwvixN8Sr;8lg={w19Hnlp`#ARgN@gI zUI<7laBjT@psw7y(Vvd;xgF7deP*A2p1Y>qrS|KK#^@i2dQyN&zxNv;^XK}h-# z9&X=B1rImQu+a>^;qV&{k7103|J*U$6t@6#p+0$LUH`?lCJP|_$4HY%|#K>UaQEWryEaz>##&9l+ zK|3fSVq4ixea}&o?U0JGVwnR5+P$2wTy zPQ1=IriI3*hFb<>mjASO#va*ZpV7tP+W%|dZZ+5cp9l!EE%h6Szk{_Gx4Pz(x<19McK=ly~ z?eEBg;ME52>hpBk)l~*wZs7F>-frNp4SdSLbq0Q5;C2JsHM}Ol!2Ski8#v0qNd}&0 zV3mQF8+g5ew;T9t1D`T*oq-=1xZS{Z4X;fwu)l%X297dtl7Z(LSY_bl23~LA?FRnZ zz^4pcXW$10Za1)9!-WY3_BSxwz)=QHGVnYDs|>u{!0QdX-N0WP_>_U`4E(^r?FP1M zxG2HE{sv|nI7&mIHGR+|H-%l82H`&NKi3EF-5^W_bn3SNf9d!eZ5;jl9uOT7qo-7s zxpH#&!KNS5dTXmfeRjZo-}QDR^1@JDa4qE`36pZi?*PB)3(mJ?Rr%|FJh#@BQLH`3 z7uVPNt6lXKmjp)5$|&>{_-17s4`R)#o?MetSUi%c#}|(@$lu}f&ZT*UCHeW@!jjUm zQeRnVc~QXcD=jQ^=jY|+=auIBeZIVsfWOr5EzisI<$L^Izt5W+2o&TNm6nvd3(N5c z7k*jgb1N&W{Z#>1#<;+R{uy&!Qv-Ds<*u=6@9hzQIT^5+{a+?Rw3slUW)8O)cpAR_a=jVFe!^}6Zvq@B!FEo_h^*hG?>V^t` zWre@q)flJ;UZuZ!_FVsLRKF~c?QbBpOZ@eL?6QiwKxsooO|`4Cp$?IyHI+4WnoP>; z%9t>9#u!(5Weqa9JO!?dS?;6!Lz89|7ODj8%|N43+=X-N8!E~hU8RBQh5*aw7n!SS z$^x#kMo_Mz)I@cye9hd3%8Kehb}4e#RAp@cOG~>vxYa8~VFpY-q^%tqILA&NrMNf@7s2>V}K0c;1J~{WImwlyy^fOc^)j zIXtIH(FjhsrPwezkr8+79&zXO=?~ z8Rn;-&!-s-ZWci(Tr28Qz6-77WP5z@gp@eZa(`{@E3yv`HO1I(Xsd+MD($6tB)`E^(yZGXM*k!w*z%F?wf`a-#yP${A=#*vh{_R+zKqo7WEzAZQ#;a0~% zISI9nn^ufI;Kc_Lr#hjRI`x6&eQ-!A;?F&xa*O)tSHD{oCH9`s5RY|fzB9Qx9_Maa z#$kcl2qieAm8T;#>ojx_ZZi9oU$8xIX zU&T-8rNGm%s+ZSPH(VU3tLLif`EOgd%PZyw%CPWoA=eEr%**k33X1Z)g+(53et|ES ziz1WfXm%$rHz&Wy>nTEtFSp23kWapa>ET8H-?r%AQiy5b@SimgnnnMXb2Y-MB_W6w z4x(l9k>h-sGfj2SZ7`-qRVDGl5iR0&s0mOq@r?)#tYgA zfwd#ULEC2CDtx6x+Z#~Vqzh)Dv%96ffKMWzSnkhb(mp-MdV^vB&4<$_oQnwblGf~_qcQhRhsX^}R z-cKBOQsNWgW278u;p|jZ?)M;@5kFG?5H~f5rNOQ;ob6{~R9~BkrBg9@j zB>8^1B}x-*-z%c$hw`QYaT9kgz(&g}Wfd;um@ZF`Og#HTRPdmji0xAGGF-!Oy3Py( zUTCvX3Ty_K%MCW}@|bny2Kg?)U2=vKcY}1~L%8FiTh&8h^!d5GJxc8AwsEwSqlH)n z`{ZAr6&d<8L}7>bx?Q&HdJ}0oP9COSUa9$7rUR0?)9Nuk{0Pljt6Gg#TWO<&m7BEx|}_K zb8v_dSILhHV?6H+6^v4yUA_n7zjRh%15tDiXkKoGoI-@S{$;Cq4L0gc}OSjdm|jj@vb{qMUx{yGr9{RgbHHfVQ$SQ0DSim$^!68XDlARbA5P8dF;f zX?K}PuWN(^pr*RtizA|@Np0B(p-|Z_Y%P;fgVe6S+>VYDlti+#R zR#;MAT2LA&3LwQ-l%Hp$_bipaqe%Zzqa%;h7Ip3LK^Q zE^2{}B8_^$XVe89@m-`19kGW=9XjHVCVjB<2Cj^gE2?Tw0<|^qvxxjpCG)qEH>>=c z$a)lVW_=?Wv$~Kk>oBr~g)?1*Gx<5WZlBMS=XQI1MFrmc!-O-rzMNc7zPrHf%l8%) z=6do9!@`+B-M?2Ov-)i;7Ki_=wbKY^Rv**|PfQCzv~Uo0ADAEh9`7(^nSfnC1sL3b z(Ivo9g3toy0{R5}ofLApa{_00k%1!RRbUpy1vt zqG~Kk9Vn+~f!~g4GFiwx`k=)hJgKhLM+_@8ZZ4x_63XNO=_v4w{LDEVubyv$1)U}W zk67?%16xOe5b~}mtLmX?^czCy@vigTl#hs$#dDUs#atZrQ-j1*o3ug63zI_OY`}bcw+$D!Iw$D6=$`9C-5y9nyy`M z;PcgxW|U-6E)k_GAE5ycnP?0Ojk;hEnS>__1sp`{2A75kLHxxHD^Vy`(kegJgLLK1 z1T2*;m;-+|Je#M}dE!3F_>+(p1v75_#5hodBBn%?)!+D|En;b6D1n>C<}G0?T~&hh zV~^5UxM`3SrsE4^RrPhctQXM~J1b0UcidIpPX&L%PCGsXgZ3)2>gem@tZn@8is zcj~qMmND(v+KG!!yEM%%4&E34z~njNj$!(Ne;aa*SlY*A?1hY1iPNqrE{+ptth)2f zX)0~1@1{QUknzl)+&XENxY->oHeK=IvY5NXZCBrjrmbJLENh|j*R{wQb>}6EoiHQm zw@jtQH;JpSIte)=Hv3}lUvP68xV>1MXimf>2M1#zZ-J;V4oesCt`Ucl`bOhsRy$5W zkF@h2F6fQShM7ww?7iK#I1wC)duR_eFS_pjv{P{Z!GR@F;uOd7=;hHsOl<~YD&&SM zA?iGc6#QQv?GVp4yF`BT<&kr5m>>1>f~?CUiC?hv)?>ylzY5qB7p_XWV*cGe9a?$W zilVW%-9Gf?1tWoLWsiAydGuZ5SsecJ-$P?hUU9E22ia3EST<{AujFPOS~%=D%r#e)<{9E}i0Eay_!&wBT-)U58d)ebbB|Exk7nhzb{H_Z`W$SV;R4 zVJ`#zG#;`+z!qGSETSD`P=nFv1Hm3P^wg-~I8&YzKODr58qR+SBG~UL#KnAkB9hY< z!n>^R7*M_E<><)lVhQ4feotQgvniv*m2r^hp0h&qy7%gz(WNc4q02&9yzJ_~465ya z_jO)$)b0x(as_K(srlnnfT0 zhpRRc(ba=C^s-<=47z6`Z_DWA$JzUq_~Y@?gbV3)q<@F-H`g+m7wzJzh#OCHfPW#y93+7!V zy4ABMo34GuWlm(iYt2MR_}3Du|@}B4Nvh?)u}1NRS(&IS$GIgwcp47aJ#WbIG7pYpr77#@$v%g^tP3Lz0r_3P->GwOwicWgl@*@?_sj@S~7m$)pBI7 zak26dk7PCeiyu22L|)j{wJ#KRc{wrTt)(_Yr)5p1@LCfiyw)TKuQg%8novze`J$~9 za|XJ70){{46^vv|F*)zRixGyu7(+cc+v5?ZIHJX&S(it0qQ-qJ%cD8vDi0@5<>55Q zHKah`2hEO1p$9)2!B~2Xr157=A3t^4nWv1I{6p1WJb>zcU$eo{$P4`i2I4pBFC1IG zU4P;6cnk8NaOfn|tm?BSoHF&a@n?5v3%lW{hhbaNX$$+X}2o_TnmgoI|O1w(BDg}YG+tbEx6k1}9h5-U_7|pW=L{p+eVsnQF4A@qn z2#Uj*WiOzSB6ntHg1*>?(oQXfri7FAqU#Vm>Tg+Td1+@gY^n}yB(u^!Q2Tj@2<-)p z%$pKUEg;veEkJUU?F7Wq;E>2VgAQwXC@&U(EePqMs%_QONJu+?6Vg{SoX;lRbTepx z$@=IkMk6ettEP=2lZ8RbB_r2hc44T-7R#CBK;0IL4n3Xp{F+&q>FRNG zs8J-GTg`lkPRtaI$XF#RF~Q->NV}as7d`OUL6d|~ku4BHb-Q*biXDb;?6iI$TPkTm zH|!J$=NwN-xxp?z9DJ$}o)bm=xv?W3K1pORv1R@|TA0X7PKg}+KniOWi|Pyxh?5?P zFrfo;(uKg`yJ11t#ifYEXWCzfH0;pD+n>u(aa&S^|CWQVj|by_P~yU-VZq=~anZw~ z3?^qw#X^`;)<6$-z`3%$a()sd3I(F|l%J$LzLe|A&fmz{;#oPhPy2%r2VM~3S9ZAr zn&pu%?{1hZYUO9*_1(5wEH1S$G@L3P+K0W@p7MmaQ^iF>oC9-ANCJbsXE?+cO9#eY zJxquOk$*1Eh@B&5IpT!4G|uVonI!f$h@49@rihewDPP0ldp_E^&-TmbnqerFcFB?v zcnxVmc^=5z{U_%`5W076cFH9+5dxowa$JlTPzPx#6q&h;As`x;aSPCArJTf18#N}2 zz4J~Nm)8k_{{<(YGIm&%?u@#>XWZFW2!Rf<5W4Xiyfa$&+3J$T2T!JoM@NXo@}ffd zybznDZ0jioSADeewpekW{H2(DF!nx>`6dCQLiu|xQyFUUrJ56#Z~~io1t~FurHnjTFr%F-prgSVje_vy-yKW_4yIxrU~NwZX(b$ z5S`|aBji^i;SJUiKicbA``nY^p9e>Kz3!(}&#nuURp8)m{jop9oi2KxZ7wSMeRsO# zO1aaW5BLq1dd^wjzSG62rUGnqLn$?@`s6x)MYYRcSz0rvrgDTU0Q;(HcxF}e=<@99 zfUCZ?qOPI=5lCvRG&qfwv#RGbmetkFuPB3kok|J-nQ{Jxz^v+7)nj3C=Yj1^SFG+iF$5_yBwOgOumjtFx%=$6*yj9 zY3;Q`chy~r`7ZnEe_%K5{r4H53^9B8x*#0yeFCXeE_`IBxW;Fh3|wizAlU8K*yt9U8X5(#M7` zcQG%wm%KnvA1q5i9FN3M1K$hf^UD;yRjo&%rfI;Z^;7m?a5%!;H8V|rnUK2(Zgk^K zxKBqJ%u6cJu{`c!`@^NfrQlgM7&+;B^?;xCaF}>)6_BiO__Z-!@TV=F1^_1>RHZh7 zWs)}BVAHOP{yql&y|`Y$V>_(;q?r{?!8cVLs2jhvqIXNYXxQ@eL)lh(0@C?KMM693 zsjbIIn}KjNy`!JcV)^{u3>}|oy|<&qX&be!xKwD+^v<%b(q*_%FBhIo0S7-|Zq>1m z2@eG9W9k>D^eHsKVx4Hh*T>Y4Vb+gdHai^hx$I}d!+je4SgP?5?$hBu9iFE-e~0I3 z%B4f+^dG`J9gOph62azIhKcr#^7U?_E$Z3q#-XCU+pah;A#0(f&6qJj{B4Waa^t7- zhkk&=dCN8&^X{gs%(ot1``U^u_?YmFoHk=yN!H>t@%|Pu>xy1$t1mi#-jt={UVO6P z-lBfb4O>Yc6Q)&)MKj0r78{cH#9h!3|4RC6n}$ufPCV+4&3j^8_t%fTpFSqcXiOS+ z!tZ;F_fV}(a+$nk>+audk)tPX+n9IKmk->%P2K_@6R!BOVDh^+W-Z3|FK+G`Q)4?; zwAJl>cfuqQ?3;}%Ytr$l5BO3<>#=X_xe{Ml4{mNo^yW%LZ*EQ&ElFF?iSsr`iePpl zT3gJ-bC_6+#Nb7D!8jq0anl%=hq$+H$GOB!@}*@PO1^wE>a`VYzYsryKd(7s-B)Ml zyt8xuw4ZPN86okvuY?q9*jr~V6(V7E&ajoFf?aHdKd*V!NFjbRs@GdpS9g1va1zU( z^7)vUyuW}bi;lbPIM4kghF$q5-0|26ah`|HOZoHsdCoT<20ZVM6tO4p-odAj0cjTg z?ee=f+U2Lq1?+hIA&W?+=$R)BFaFe{{CcN$Fldw9)fT>K+ge6el>}-+) zzRk_>okL%7^Kj9cF+)saAg_6d*vvPLx6FpIscf`vAkz45@m{B)5o{tGs2hVczRqcl zNu{Xp5;TX6S)(dGM10P7>G`sNwfjodcbUBG@LHlqeX~*L&CU2z+>A%EEsN~u-9h4e(Pi0=$Ivt(&`BpOiTmyJ`|-j&_oJ!F zV&fP?_f2vR+H(?mE<5TSXs!_Gs}ugP{Yt#3gQGXf#xD!bxykCeFf*F55Pzai8ld|y zKDe?)jsyFuUzX~~5Y+X}#%DlGzwX0#r@Ar{Ha8=|1d(96F%pWIV1m8On^oNzY3$wl zU8|TBu{Gpf@7>~*Ws0bIum{<3L<+D&-v0SZL`}XT=_Fzwkpk?H{^0oS1os3*(ev&A z_7N!{d`J%|%UX?5M|!dsgN~h@M<*3yv*d;OBFKkM>va#r_mge}TOEVY>Kl8JVi?A8 zK721p{V@c@nBQE9gyvU}p#B&FBHyV)PI85ifZWwc!w*Z6C)i+}Epx**sg?S6P9b|{k z&>22WR7}PhGlq*M+a*{rDblrE&Oa0v+?0jd$i?^*n}tncn7N; zSuEo9&WO9#Vz?&zEBH(PohNEsz>bHX`m5Kmqw0?vV> zEJ=v(Zv1>A@wf+0!SR-Rkeg4)!4tSEWT`o*2jNInzaHlEJJi>*M1GT7i?~@rCh{nC zZYl~}iv+S5MTfy-u@#~Ix4#&M>aYrIXdhIS1rEYDc!py;uEhvV_6x%#3X|xc(2Kq} zY!)Q5gvFQB++gv=VRIbW25=CZ#E^K{3`RBx>nf)xBpxaC1&^x+#nG=ozVl94MNl3 zYbh11CpZVx7@Ezywmo1|^Rrw-{sMD4S>UY2J;d&>oX31Nob?9VFb!JBt*2j|_(vZj zvX-l{w%@m*a`ibcO z=|XY#mAzki0(|I%J6LnRoGI63icK5kXfdooWPEx1u4b@5n180#DSlTvRbVfghG@`-^u?O*Sum@2B^F(UT$WIL4ulTsi4Tey)-rr>d5i zyg2^t?h8+5CAsHdh1D{NrIHKhT(EUL#5=l{V%h@78xfaJXQ)4zIM$zw;xllMgZy*J zX{U;JOs%(oXImz}Vu&mpyBHV6>2Sv>HUy0Jkgl5!PM=M-E4nzydk4Y6Xk7g!;O|v% zROn@#1=SO-Y`8e!YN&Bl`F|X6)l}n-ma{AW$>W;*;bLm}7_uQTwLkPH?sqP{HA z@$Ex23?8GPE#WB*6JbV!pDpo91@Wfo+m4C@d3$tb1|M4aZz4uE&9CfK4gt`Cghwa(|VDT09LXBL2J&{90wqL@Z ziV~=?WQ*fKD{6rC=~sTDRa1eV*t6oPy^VvmuqX2K77W%RT50OIpG}2h3)y;VL%F9u zGOSx0n$GUT_tP8Bi5)I4++b(W&S{<#qq`J$mfZaEMhaGue!du@v%AGvJ&#E&)sCd0 zcmiv992`6DFgShZnhiJ9>K?(?u*U3fy0hzAv6nF}LcQni@biWVt>nu;>uzS;vn|Wz{PJDKEU1i3zt`5K^aV2u`z0t8p0R$o0aNik6Ne~?7`|;%7ybSPN^7k& zfRN@X^`CfXdK#rl$lsVmiC<nbYK3uKdv-k!lxzsT&|*B~Ou((g-RoDAa)yvVUSC z5ko1T5Ft{iEpoa16j{h?L*fTjS9<1PqYm8MjNoRdq$ur#`bDV%iy2AfN^8WuBD*og zC{L9(Fs~Ul=}K({0uNXQ+Gosw?lG?!wX>vbdCgQ~xdn(xX|5*s7P&?%y&1Gbq?FTb zqlUE*`QNZ4Z+XqsW7$Yd3Vb!~AQ#n2a0ZRkbRT7R!>Dmp&nM+5j63xX0Y#P~CS}5p zE6PGvs+Ho@zgm)1it{{F!A`gX=Jcc-v{5*-SDdxlE_NvLE|HHYa-+LJ`MO=}V=d__ z1$>BY8@)*uLq_a%XBxpCYyei@I9Mo?0+1)pmqCJqWJY}mp>gvoDT?Yy4mB;nrMCh_xtM(LL0>z$qTomK79oYIWeIEDC4Q4=mZU;~R|)URwdF zuC}+JF3{3xPg!ag2Rg*j4)HpKrAMCtQv zJoiIUu8cFlKZE*jY8pcT%x-K+t#SB6Df^EwPQdG0wE3MTjBgN^lS3s`)hDjs-E^*t zy||}n>Gjo&g!0=EnubvDlH0INI^QL>v2Pl={MoQV(cKc7?Yqhy;!Dd~0ryX%FP~5O zF{IzI$YpFUAfQJtG@TK-ZvBZ6bfn8+pyzoTtkaYK?k54TMakmL^+ts5|nSwUJMkDbyPEdKw6k z)my6UP8G<6J3Pwvr^^)DG3xa+&?&yRblIJ15!{2li6%iJbP6Te)u`t*usvidWiO>N zduRuRk0V{N!lY*oBQ-(8{LeldM)Fqn<-Cb2h|Z}Lm_>1<=iJ+cc-tX^t14lIk}(4p zny861TI?IX3g?<4pL8Fy5=I%X8G`9~bMJ#M%6OVjDI*jeXC~IyR$v|#;=&wl`HLu`$Bd7Q9FZivOMY8RW&pPGIx#;~?n(aV;eRB?IfE$`ka3NLYpz00JG zwiFbM2E$w%UTVa5HEeJZ&b@Qg37!^ znUPRmNQnalB$TF6Qq>QR@*m3MjF^tm{ShP@uj8}?T~?eHY-nK$akZg5MHA_uYclXj zHJ75b7N!hD97S&wbW!9)!v;Q|p9mfhprf3Ng*6xA?1`LKc%a>JH(@`Zss{`oIb;0jzr?g z`el(kOyvutpD%^EG`5EP#E?ZIE!bl`pHhq(kyMl==7m6(%`zDm1-v}GXpbr*8jyZ` z+sVF0J&m*okAUz92#)}c!|)n_=_0%apeJyq{a;uE)`Z&j2+A9TpwYI2ySFZz56w68 zFL%dEP=W2-Q0^xzsRM;KcI<7I(2V<7S_XC5erR@@f4ReBChqO3xufVX0;2dv2-jxR*%N)+~m2qqv$XT5@3#zA9mhqvx`lgU3?nCQET&M8qCt*oqN5T zv4@+n5KOYy4XzC#T7H9DTzw-Lw>lUer)NUGke)eEi5irdH{}hL*bGP98*lARa66^m zq(rLY9AG)K8&T$fWw_!}ZBdYC8a^hBO$%<_z!{HZu_08j&~-n8O$oOmuhD28Y~B`p zXUXhn)P_avSvtfD*d%n_j!?9Ntq4u%A?;vhv!7Ah6}4jt5h{EEiihk*uqDwUL_5TL zI4pvOGz3eo&FU5qEel9o6I6k)#`sT41wh$o(K8}6c{;kDkwF|w@dJouj$(A9N#*N5F6?V{wY+9Tp-)XpLlhvy zC>+Cu9Y%)eFr*FmV)TYj4f&M()<|#4mTfqo1dd`$gxJR6Tis!TXk;`dvn5KP=!QcW zLL6+3HAR{EIgZ`R4huze7d>o4JCc&zl0*>ZfLNNSKyZq`a^!YeFdB(X*KVXb8L0$f z;lCQcdbh?6SDuPDEuMG6zxb-IyG%7(Sf*d7EL%g05K8n)IE%yi4z{9Ztjq7 z8>;F#(Gt^&vRO3pJlR;O>V9U)ws0;>31msQ9+nVH6W0vk$B~~?+U?46)h^bl-e!ro za9j)5?O4)nL)uV@f_y~Gn_Mi~-*`11#=QNHfe0qfmj~KGD*#~veB-aeT|D|k20~N` z$hCQ5H^uui^&tz8&VvZZ>mh6A+JJT4e{V#7;`omu-~lXanVO+>daR zNSC7Q0Gez))UHflG{enrleqVvhO-f3^IFUi0^)Bq;vvT7_;skmZa9d+18tBd;5-{E z(ynF}Y||EF_QsIMUkqPXs0rqzp)OtMe=rrwgc}RTUozZ4<-;c*0cpO8oFZn-*eTPe zxu#ELS|pqkjy9Y`cAl^Re{rug9OIcG!}tMIA&loQ7S8g!Lj1!+{Fur+aNz&tFhp=q?KQ^L!p(NkP6R;KLW%aX*Wvw8WEN?gq^F6nX>R5>KhG!0Y$t7nS4| zT6e4PwvuW;EJ-uQRy4p8IN+~x%?Q-_UFxD0*VvlM&ih=-Lt8 zY%E@to*i2HQSWl`c6>g)%jeF%^=ed4uE$;YpKFX+io2Bpb${pTmfW1e{5)@Nfv+&X z$diW)QoCN=;w{Ya<>lj!Sg+6Hg>7coIunM}|K9I+*;1Baz#smzW;{K~*is<%#?RI( zGX&AXL43-4COy?kZxTPl0-%=%%J?Ydq);phqBn}LBH*W^pI_A?gb0#1d{VAPbe`kV z*Pe1MIZCqisVF8Zd8QM>NPdw?7p^5F^fR87p-9+zFfS0*X-&AME?nIsi2qNfZfknm ziNb~Z5?fx)6#X9jYTN2GpOi0(C*`9~x$^=cOlaacpJAczCO%%Y`%xh-kONParQ-RI z2WEc$M_g!!g>K1|v36k4unqQvAX+$>R{Pzn(=#iq^d|9B@DF5Q=$wj?VVFDx&GxCD<@KrhvUKVh zsgAW4Q0p`XuPG-#L%xQ&^?3jb+b}Rx1!|{JwIO~es@BqW#bY|TD;BMF&kz8xZe7t> z*GN+@ZQrkJq&1rQ9&~Cp8Rl7htCl=fL0*Ym8O#rCXP^}QJx)F_9ygv@k^uE#QQlOq zIXh{Rtb#O=SaAOkGO&`GfYchZs7`#gpM>on@(7)d_7RPzEv)*njtQt=4EVY58w(hVQL{@&4h#M{Oc6ER?64nM5Ww_tIUy>g|FbQ5%#XSXp1)1R=7jaL@H0#Hutg)hTzMfM*IZ-=+WJLhDsR z{0LvJMq29$0*%Gp@3+g-qfcw*Bg9#9@l;${o+>{UqD{*Cup`DM>1`K2>nGO;ah>dE zQc_n*`8G)MyPZ28?x|jYeS=hKoTOzc4DYsGjk2e&+xy|7SP^;IhJA0rdd?|>zf47; zulEt}7t4l(H8|sUnp}}IDR`$?B1;mlkv|e>#T~l_3M31$ypPxlPtv3NdWgqy2d8)` z7{3p4!nokeXv<7_wjf@AA&c#D_uh+yco()%;t_eAd?<|_ zId+k(IJ_(o@#6dO=o_jmRxIXfd5xGPS0tVmyhGd|OA@Y<=Zi%x`JjWY*h&~@rrPC~ z!LNRuD#Y2Z?fdAuSP`{g0$3ntWZ0fpmtQto`n^_s7)rrG@ zJ${=WFzElNi|WyUs(S*ezJ^QYrRh4V7c_|l0zV32C=JHXZk*Z-Mo#qOcs`?lKyqnT zNBzF<7BJl^KtbD(6T5^}po0pA!y5uE9e%cvl)V$?7Q6@=q-R~L)3a_haJ7Mt z8~B2O>kZs&-~kPXMH$%3z@Y{f8hEmSXBjx#zH*m9o2Q)k;%D`R*4mGgQz>^I; z%fQ(N&NJ{@18+5OwSkXom^0i!bGSR_N)ujc;N1p3V&F3dzG>j62JY5yq}{+|1@Wh; zTiAtZ5bgutxeqw!soj?ywyBiY>z%I~J7F@KZiKmu?1YI14{NI}Tcz>_HwVm=_1D5^ zK8;V4WFr%=3?SrU4NDSjV{3yLRhLOS+NLPn8x*dAqQSx6^UP3|eBC1sl&s(P&N;XQ ze>C{f=GWa~|9E+6{FTAt&X`>{;o5-S@;bx}efzT~fn#D8A?DUyDGxE`B;;BU9HnA< zKZJsJmA<$CopW(l)_X(W+4Q8G!*_V-9(gB~EwCtiBsj8eTFXLnx4V!(_#AhZXy1x^ZsZ5VT0C#Ks;eL zGz|a0=+G@p%YRxQ3e)nRHy$-DF=^qtl6V=|BeQHJ1zgj zCF)BGIJjD1D;3uoX_&DHX89y%)7!E(ncyW%7QNcegz{%O=3#4Nm zV%M2i4wSa#>%Lf!K`e-oz3Y-h+k!uR;my<$wgrizeck#6L#$wedX8G>F>V&b5nFn* zIpe5Dz^V` zcC*Q5ceB~_9#Vl22%)5Hy`eWnM7oF~h^Q#)QxU|VAczPG2vP)8M3D}Hh$y{tLr8BV z0YVT^d^RA-w*U9cy@7zw-{1Pw=jQW)Idf+A&dixUbIy0TI_DIp6YME%$^U0PW*m2#wfZ``A_Besq+2R`6^c( z{bbwxtJIyVj(&Rl_-oY><`DoZTpoa-yEq+GaXK5sLFI_UIimoo&^~7hrjMNV%#XEE z`v5k-V6wQu%dtDBEJB1SyKk_ym>SOKED}e-#<+M!v;FzqQ+&9Foc0_ieE<{Fl#(0_ zhf`qnCGh|piG(pEHsJ-}$IjiDbDA=P=*QJ~h_1;8LojD8D)Gc^a?XwXgmOP%);T{E z=}yUElbw_lfYhhB<={ek3Wm(a^#7AE{uw-U;ajgd6nik0{89VC-|xHGu6+Kk^+fXg ziRI>>wNCqO>E7C~3Bm98Ykq&fZ*|~Y5^zZXFSh=98?WEiq5l#Y@4y9N9C2NI{eBk> zf42)novQ`>!+U_M1^nIm?C+glY5|yzT-Ts38T?7@K*!Ph=KtjVjNBywmjobzzr?oS zZ@aURb9AfzOU98%;Iq?jLh&>txk0#n`p!{zx$@ZN1)GmmUaoU6wm&ZEZPqW3y{zG! zFH<~U+*;YMmb?-Rnr_JK*3+*ffTr6shrNUj%z@72bbK>65u^rpUJgfj5=b?X)_rs{ zPq+0B>qm4kPo(n*y#e4wR1ICy)ArusXwyhKze$mpH>m5ujla3^ohBb|l4O&NG|66* zOgAk{(=z@@06!t9MmaXh^_SGeFNxdQRnv_v##Phk7fstvW7}(Ni$Bp+f7GO#w)dv} zph@>=(rKD>r6wJ$NoCyVi>^L>Q~flptEM#d>0dwpMRMQDbuGG$o%2!tM{~w@YoU{~ zuZ40puhwJt&?t{@}|fp8U3Ok;aQ} zs;47F8c5GRuSbeB0N9nYqeL1g?rx7XYowjVXpzK8rM&Js?Tm?OWIG4{NAgC58^2Ql zmqPkP(^Q(K-ZWQDbKA5OO-t9b)VR02A_b+ZhALeT%+MMG;Y621P9)Dcl(`le^j zDGdOUU}exq+mC%|^NDkJ>KW402j#p?{6)A5KKmXg;QzIgfXX1}8jFWugV;OBJ4 z+~Obn|MA}x-`9D|2X9UBM_Kw&rhind9~JyZqWO{Vek9%>*T9c!>6VK8Z?vAjQW`&2 zuDf~H-E=4CqFu82-){pL7XQ1O-v6=GvTsq={X6NiWh?&mx6(lTd*=6lvWHPsxYX|c z7`4M}ML(Bpu|fMIR61R<{o~X`McHDwb17l{O=Lhd_IFZR%2sr78X9M!NoIZTqD+fY!f=739V{EM>nDAshq~&s+-XCU{oXDy9rHcQ+kbmcvFGJqqGtv zn!@6VcH$3iToW4aZn5}sxHtaXUb}R|(?}6yJN=XL;r4nI3z2XALUO;CTuMXwyZ#%9 ze4g}-(>yZ^bekvQ|GUkTFyiMuD)FC}TnS5l-g3#mL3Edui0*rJqPzB_=zg+QbazOY z^arnr{^Khp_ao6Q$Q0c(c#;l(ZZ%b+dr88m|60Pj|Nc3VU$;YYk1|*0Z5G|ccSSct z{JqRLK=gO|Ty%Sj-;)icx`610wiexy6GV4npy)pTrRcsyb%A)Z1<`#&ET`<)iYIBJHiC8|_{!-DOn=85}#YQeWb-(C8^`z+5h;op9yHoUE5nZ`Va&=P~ zU#^=kx(U-nxA`*BZ8KDK_3VKPPHt`?`g>8^>pn(1$~G=qetX;~h_2Pw-UZgvQ?FVwRPY0(c)1FDIcw_M!_#ai#EWo6}!6z<&Sf2jT|6_sL|V zj<@$deODa+5BF_*&Z5h*_bneBmjy|DbfL(n)K*gHEMr3JUHF*K7~9AVKRg{b#+|dd zuXsA$+iW!qF8TMJab^W)%iPk(tmYdm=9TjbAxg}nGZ$onVS03Xi(T~p{n?WSWYN;=;Na`L=RUAdNsNyj^Jj(g;B0BzhnuLpoioVB5djb~Nq)c_(G+jP{-t{o{=PR|C$*5wk-|>C_f})mr(7I%n z3if?!Xz%2uOF0>FIs+6k7jr5ngJo0mOqo&$sBxUX5PGozFK@QCUQ%8RusG6Mg(g|s z_;azXy^;a~ouOgTwpfiiP8A(c={S8MwASWKig&1xT+^yi39brsRp1}hS6w~uXZ1jC z4`--Y0 z(v&gQ`&ZkijrJOoVs6M-Vx4C)Da|Q-gMRt)mE(<>e7*kdSGun4X2~FGHuuhi%nZIx z|Mnb?rt@@>z^^Vf*WwOTujS7fE=?H!lR!SFXKzgSU{vckT!;5GOZsi}&NDRb?w z&$}aA_A1v7Q2ZE7kK2zO>5sAXLHnqWUPY|nr=C?zOflOt-li{1KD<$}DMd=C^WNSb zddcJQ?hK=pfo^;HSkftjvwS`qXUIVA-+uYAjmUk2e%Y?A_n4G?fFWGp&~f3FrD>T; zeZVy5oUmoq#YdcLmv}7;IN;nFw!yZhtYWolLx9m~2-DkA-})d;g@l^cnu@3KRUuB0 zsdB{(+iSr|ucyvX2)2vi?P@SV{)tYipg3eJi)dezddOX4_13z1YEw1tqpV}wadBf) zN68BsN_U2Fsb8iR$b|+viRn;-$tZ6L^v)S|-iWews7V*>6;qU$D?8Mr3HID0&2aqE zp(a(Z9m=^^F41lpry8?msx$Q>z`28yQ*kQe#W~$FaAbohu@9w=a*MTxh2R+jM@J-R zt-UXVC-si-eIftcV zZ#e@;*Y0UD?026zc`Ws~+eF7R%@AkFrqQVnUfr}|58g)LmcD`9T-9d|J>HRhml8C- zy;x2OA|K{nhx!wVY#Ju-bQiN}$=Wme%>@Qba)wd+4$Mc!3#`HNM!OZhj?1=lJIB8B=2T&iIMipzwG zDPCMK#OkORikb4Ba+Oez*_XS)v-=&$!@WfLF!^;RCfm$vrC`TZ3w|U08e3YAMftd0 zIct*L;9|aRb;9$IW1bp63dWBjFFLFvu!D6|;*v!MW{6#RF|v&#IRelnUdhTf*|O7| z^Ijw8=H~E%4Fw`{k)!Mnc68HnPH)8bV})|m+>K9b<2-Tw5_~VE#|nm0ARmg6-+0#A zbHV~{^%stF z^%qxvam_D3bADl~>&Q~K636)>9dnA6rI7<{{j-Y(>#){-{pelF0g=4j_*kJYZ!=8a zXKenD@hJJoESqKg$u2r9@@MR}D6=9}>HQg+@{4u=p zwr5ke;+>~VxTCuBI2JyLjdJMiX^$Mh;zxhD2sc&5FJoypY;T%UAGyM|?DONad`nKn zg;fUBWbDH)FH^2)HrM$O-dSt)`fEyTET(W#GKaex7H0}CStL%;gy{(ElXp~kJo3S7 z4=gx{jfL04&w5UDJZHiehMpL$d@#~%H#|ydc0abkb5q@?tFe!{dq0zgn0fzQ4`+Dl z>nxu?$Z{zapSy2s7nIa6>TpZ3NK7bgcaC7?&szTiH;l>;@g3l%y+`6R4nN+8i4VM8 zo%h{tCXpK7o_EiF#A`4`f>5t?Zb=cQT-Iak~{A4FkvOSJP zZkdtozDKYevS=)$ECtzaQv}OJ3(l`HI8S-{DCbm<8EFNM{1e%3GbkX*5^br?=BBU( z-=FkjHWXM&Ed!8o-jW4sjKz$M^A^2jg@v_(G?^2}ed))Y#U7>U4>|{X3`jRSEhq!U zS!UT_(W4AZ0BWWK=PS1>IQMY5nkm6yhd1*c)%frkYNiH<4PL=S)y5Y87*DvMW{Pmw z%?VFv-VHyb#x9OiX=yX3=Ct7&^(gBd?&{$Wcw;knpH?w2e3ZJty4r*5dI@{Evm@ln zkHSeEY^4XM+L{j{Z(As*gaC=dCDwvN=dHx4Cl2l&v8RFV8&r6~bFB10Z^R}LYG_rh z(PJehwpjO+V;fiTA|1zGXFC0rha9_O5USjWoL_Wo@x(5UsmjqV&TDV@MRglTk~@s2 zUNwO+j?gLMhaH#j)xS0%Tko%!yc^SkqP`*L)*9*T}spR94*g#*4ABY zO=q?@vWq&#lw4QJ?-9R2dbz*Nw!upWgBeX+Nj)GgeR$^ZISZG7$5B6LfvD+ zqt&(c_3HW9yIp=k^JzE)PU@WhsU3&2j_m3LKknhKPN1fq=;{QnnLs_oH52?3W&*ab zQZt=D-%@+wh2rp1HPiX?9bkXB`rhyXYNqq2<89_)Roz?sV?5!!nyL6VRn_LF@HS{iT_Vz?l_%lpdlT;2)eeY92q(y*z6?FMbu@xdOjMNFhGcKRu z7Dv3g-lxJyufT*&m2t@N7%u)gmwR@h8GEYE>mP%$Q$=^=U0>I|JdERXn@RbvbQ3J2 z;>$XR>(wjl?_P|=%BD5#sM1?t&DH$dRpBetbM3Fq^!0_>|4Xlhv(>a(>*j-nl5d0- zjiY$K55gi!#KtkIIviiPW0G=WJ7}n< zfoq%_Ii{@;%3*Dvv4>h*X?-_* znRmaY9u@ttg~}XU)&)QK$#x#jb`TkIr@Mm7nBjOW*qwtq z-Nnd1-8tkaqfBTVT6Z|39AksvKtV6+7v&6kf6ed%==`af&Y!!RoXfy=NruDQUtL`3 zqe+f7DttTI5vPGuE2eal>`1f3CE8!opj@J*M*km9*{CJd}6CcR(|y;7{@O`ASz|&Gmk$wmJspcaBygbaz{asMGH07L%pG z4YrQ6VSIJVR>X2nFCfQy-UfYcg>jdGvnh56(ROdHkjXW;cX+oz0AY_?Q6LjC zID7cQ61k9$CBVWmcOi|l2h1u{2&tSsa7u}X&=Jdq@g<%@2XZTvLVM1x9)&}YcDT>J zZx1wPVOiPxfLdtF**tICc|t8DQ-ZrrXoNOm%HBe25J+1qB*9_=iTi+{#C1X|mbkBw z$P)JxTC&9bg%&LFfW|8L&8Dla8g=);7O9%+{y+E=%ln8#G&| z^80V{mOWr@8v0-NZl9Q`Gg&Pq_v?)@uu8J;Sow(VQS0NU=Z>2aGade!hY#uwS@$15 zbZ~3TMyL(RWdUwZS+@JToHGfda@1QGl|$Zn3Zt^`yy=}WD*Mi#-r0gtS^L7m&K5p{ zt5?7HN*^;1%J%s3+sraPowMEZVLy|cPvdMOK)Ca%oUO;!0VW0Ck+bz)Kh)&Gci?QP zTSj8<*dF#)n@8fVsU2r)wP`FiTq&F_>HP;gt9T61QEyG?q~?=3D{{~U`_?u{9=Wh+ z_|{TJy!j-~%Ce&6TX9yF7ave8FFHO^%!@DIQp}4V-$KlbKi^!;O8|ef!OkCVQiUm~ z#^!7t>r~Z1^}kD~Zx>Zowmgb+c;B4>i>Aole%-CTqh!I0;y7DyWc>GjryA-rf;u!G z5yM#n=Oo3P_Y>;BNQ~XzHfDG;RKxi1+eMu76Y5}N^4)q$Z(Hx^qvsC0*{02Jb|#%;oip)Rvl=mh6a01^*y2O6@i@dgj}!{ zKC9Y@pi_Q5PPtRiBhl^gwwSwM%bl%yOA1gR;Ot{j&7jJrVD|$O--G!7N{Rv$8T7|# zapQ}$ba#|`BB1J-*bsW&RAB2I1nkv}DO4h$VtI?;M|2cGLnZ>qQ3=-arSY-%`ZVDm z){McGkhOdxB&a3+5$*62#9yVFj#YrQn55`U{7Pirmt{;VSeY0##6BOASq=6ouUC8o zD@hSHXke3}0WLVGd^+NHjgC?gzcw=E3+dv+7Xmzddr%LYeQy~3o|_C;dM#YiActTB0rwd*4mIZANk z9Zb2&e9qMyUA@uO8_`=`z0ox{vdPpnH~xd?#+ytZ|9HDq*rpn6sY^dhRT)yI+g{w0 zKUFn7WutAwx{d2q8?$AHILE)X`fsys{dj^$JZBqvdHW>4Z0n@0&R2qBIctv%+uqOc zGd85Zx^Ll<*l4by_xiiuTBrAeMd*qTJ1toe8^zUQ50LT3HiI7wNtdt7=rQyCRuNns z?FS4m?FaW7ndh2&&Rmrk#$BV`0dIUN*W$-t&3tE#fwy#;x;itItHWl2=b?1z&tK7R zU8v^~@WK`omah{!$(Zh$KX1!~;ggKFTC&D%?1M*QyI2rndZY*;hW*owa)cNk*?oTy z=d{RiwRm@BcR$`{JocQ?okH&4GBS{J=WUk$)wfA}1@3nY_icMhhLtP3oRRn*#J}h5 zr{!3=@@#7eRZvqdbPN$-9KK<)94l9zZ4wdCxoosqNddRL|GWk(R|H^xhyZd_yw!C3 znuW1gxnAdIfv*O?JH&^TD{spxdc=hIy{ZRdPh>Td1hH~O-j7c*`m&5^!6pe}<%-tx z`7C1hI(?T93P$q7%2hNA!<8zPPe=S0-p;_v6?}+Ox@z?WKkM0#%wELLe0z;S;`!#j2H*XZPa= zq)8jxC{Qd~Q7lwH;}?X8@_Zh8Sf~I|<<>amurUOhpT^tPybKLW@KME(4yodX0n(($ z;)SvF74xvl9!Qqh;UqK&lel+Rbq81f`VK<`d=Mp=qDXA|73)Zk5rXs(Yt=_AY!vUX zbi%^+ziML)%SY@VBRkkqYhY5>MHk*BH7i@Shja2~?AJS)I6HPEMp~M?vegcj%0Ew9 zsL=nWaU{$kF|>XJ!#{&!x@~IFXD_BsS8TMc->`l|>c(u<6wcWSwYe%0wTWJ8L&HzJ+J?TnA!BfQMssM$EA^bLojoN|m&wU$Y~KzE*JW@r!J1nODxH%{R2oi=MP4cvH6qoK^N^?x zoTo&!=adrFj`NbJ6b=W#?0aoF9QiUTnZqG3quOxZ64jc+2`}R%aX8dvR4We0xQt5V zd?l(S=Ol5`_jTQD~qNg$627XrK~>1}af#pb~`!Dp6>l z5`_jTQD~qNg$627XrK~>1}aer=mbAyhw=9`E`p6jjeV2q4J;eKd_nzrcn$Pq(>&9# zYV6e3(-@wWt?Y|CP4{GaioW&h$ur<|s7V%njg#t3zJ%X-MaNu4$eTzj~7=7#*DWy4#c&+%7q(B0Y42zURZ|BJu6aD;a}J`wySJBWM3>zVL6o_R-Gz(laYZxA#W>UwC!F z`*p=YEJVDTjS&tU3 zRv04p_K)m!EKl$eOA#$xDOuxp*V*cO;`<)Y_hBl@(ZUZWPPd6J$jzyEAj)z=%aL+) zjPOJGxvXgG1Yd5gSU=xyaxO-#@*)#X^|K|SI3Ou4&Y&#B5* zGd1Q|#5~))#fcLN!I4vza2=PiX7D(8rq0*|!k|#m=bt*0D<&Q+oXgEGDm#U$IRDl8OJAR_-@pxvH2 zb;%O3s*sxb1?@d!eiU30k<_X>{C(S=pYoJFBCi*L^cWNJFN~E!hhN|$W8*p)8Xa`$LDW0y=>Y{t8p8-{(pWsuS0C*?JYzh>?_>A>?{U|HrX<+>T)kU1-7 zQYMr)byD`5@mI}V_pjbQ)?ndzAE_kK{8i)3t(~6SGLg6NTB%Uc{1sEr<4+ij4}b79 zZ`O(iV$u8$7Q^E8W{bu6z~+~*QD&BFG5imvp}WQzp-E~SzH*vIG#!f}O~jS&nvuHA zVjT9qS~Mh!g*xVlBg0|kX15rJs6?Z(STU}}qJV;+39q42WySGU_(GG4wOM$6`FeNp9I_xcka^CZ%>t!792hL+19OFmM>d2Z|byZ zPmX&?HuTc4JA3u+ltmv9zo1WlbFCRhcJACa+g6MoGv?9fC(mBEaM8LA8@9_1*iIG} zSIVmzs;kOMOABO2zY{;Vq-I)oz21Z;)R5Bl=L}}E$z(Jd40?lJkMA0IK1MN8nn zhE^vIvGhIemV*0O#4jX>s-1GQ2`RMdaFdX#?oh&|kb#qK;;N~RZg8Lm>U}*erU2UL zZO$%Lex8r%{%WM}G#52~n|hgoufswXnJ7C&00$SvX1%e$lszy>y;qJ`2TXdyz*z?? z4>rdBx8c}xCR|k;yFT>Z;fl{+?APUbi1FCObi-{=Y%a`MHKm^s-9iir=FeGBIjnBb zS~3kr!+}>P?9I(;$T4}Jap z-kJAxF(AY4+{tZ|GXF!IoRZS2>Z+FiBil##NDKFdkE{XJ zf-_f^Z#&1rt(RNIJI~0fY;=$zTjf~&nryQ5IiJ2?oJcaYy%nZl8V?l2Pp~e1ATn`I-FFOEUu#Mt@NhDqK0c zrd8OevfSEs5w+gJx2OHP;xsY;+=~eTNsG@H1qt7mP6|$3T5&=se!+WY9#m`cW~<)7 zAK-Uw+umvsg>rtr|Y*hn%cX}X3#mHtlJ8iepG?*<;$Jc`Ct1`S231G`jkQd5B zaO^qIcPq{SZ5J{^kh!ZTE)0oyu)1yB-uz$`X0`W2IO?=j2AObz`NN3|gCj@Plx&J= zUwtANpA1PmkHGEP(J(Ll{@j?5`)hK9$|pmI*1*Qnc9su1Nk?SU)NkP=>ASNt!+KTZ z;3W2Jf212ESo3FVX6B=DQMz72L)B{$T`C~BhFpOXR|!u1v(=zd5Qox-X=}yo=Efbl zu$C>}5|LSjuR0C`uJl`~o7|#`YMhtt_IVJeMGb`?B&2;p0;w7p`t%tu!QN&Uit+E_ zsXh~4d*<$LSs6)D?!8OOae&!ScsM!n{Q`VE_pBvs4Pv<^I(8L%;Q6W33$zM_+=Khh zP201y5=YX7hugMVQH0mFb8}iZ--~A~tQ(SBuEmkDts=*SJJzdO!`idO$J#f4rwA`T zlueDvs=~S3_r>dyV%L@n!ig_ljds^@^~!b|yTnZ_^CoN4L7`7qp{9%XWyH>{C@t)- z4dATGka1NxTBLG5J?sEdsmtG!5jJCSqB~CB71<>^;Y$8TaUH+H!614HOp){V^ww$V zc~HLt`DnnolqI!PPD!#t@6nYEpG4po#L~<8BKPVQ2+>#5G(=)@ger@kt zb*}0%taE_@i!VfRmm)7z|NGOYaqJn=VanmNB_{-djCVcQ&!f33-TSr))P!WsuRL1- zeS9+CMG$@&&DF{Mqk68w=_guJEv$DT%`YzQ@rmKAo^wxEp%F7fTX5q#r^=w3>^>{U zyOC#a5$pl2Ww(d(Zm?>q{Np&s=mK!a<`+lz=R?65QVIsy`hsyW5)6G67-ZuMi|g8E zUa`=JIeVSsxYQ0>(MkW#(TL{0_)!hi1M5Q{Uv;jwhCM6DQsLqbvmZ zqyuYw^Yk#c8175WbDN({3-V^+m(H9yDNrcX_|ClB&chkaecAq;kYAI#j>QRy8!-Fi z<*Di|Xq7=ezM5n=Xk4qa3*3b-Se%R&J}Uoslh-61`X8$?JbG}ve{)#Nw?F44T*|Mw zcyM9QL@no~(%`P(V!;U^CH#44Xyf8}tf`H#UpJQ}y_zk8t(W zeZdpTaeQA=fdQ)g(ZE(v{go}yOcLgjXd-B5d z2_a~c_1>Km+HNibO0G5U^QhEnC>5T6-a9bOpSvm#8*^!8e4DA|If#Ctd(Z|z5nn6* zI6X8*Tg`1!>e0x_L=bXa)`y}G{m^UTCa)ih$# zP0<<8YNG>Yd9}Q%zSME}nNCK4F4h}*zEXAN z&FQkqHabX_4fqac$vwN@S2^qR?T>ddS)y>wR6p$V&5sn_p_dtLbZ+dy|6q9WKt|tJ z4t_E=(_{(fubR3{#;sH4XS0mn{P+4*?-|U7+g~}bYK-0-%3m?`T=of0l7VNT_vXJf z9LdHVk=Zc#y+d!^t~Uqq-;u^rym4$Z9evKIhCH6g>Eb~#9^8=gau=f+Kq8xv1mH#tOV?2Z!>af6p8Qpd$vF1o z!!M&40Kn*G!p)M^bYJ1^xCydRKD_8{;_lCG-9FG@@xhfG*_?Gf@)Y=#iN458okich zVCy)8C4|1Y(%^+G+*8p*g8;(|@6G*euqgzeeEfJfT;|yHuYQKKuUhnvZ5wS|xVn=$ z7~knxbU!YyY{q@laUt~s!af>fFm+!$-)ITOCqJ8`M_|_?LN58<@W5ve;_}BhV&|g< zOAtb*?!)VAHuIoUx53`caMzBBMj73aJ&9z4a8lpD{4O)v7A5P2hsf^SmQ8mO4Ho`Q zq^&}EsFn)G<#%M6y!daaYAj}4bLcZW=Z%IK@R-@E zIbBH}#_^vHN2%>gI^zo98}p#NyZhhs=#=TNzq|d*ae9DLHkh*(t?0!7Sq#&5^h6}v zinluhtn!@2(66MrwBXRzjVotA@%)Z$qcTjmZZv1TxvUQ|=4P=iUD=6J=&|UXp126S zX5?q?8y6Lzc2jWQ2aMRT?KxbP@bgyoG2>YP)1Y-P8qw~)GxvCFZBG;K81(}-F3r$z zR|7}9xBaP3*&hxwdDFcFa%=SDe=v7?b!|V~aXhoEX;HB^CHT+NbaGgXj{!O(NelKn-O4$PlE8C?mj)i85~2dsHBKk5mA zTsG@72Ta^@GH>&wuFKv}XIC(EE7~;&HozAiSjywl7I#+0fwMj-Ji2f!E|@X_$A89wV^#pm+|XBkME1oea3rEf%X-zTja@$`}d<+#~08qC09Ap{wO z((j|VYkf`}+BB&bF1M(q0z<}~chlQD=iqv~A++>PTxU_Y0lEv!GFQJae}yOX!gXbL zq2LnN_U`Tr-Jmrt&mGl-X)qqYotVNXGmE+300bHR?)$-$9UOy7Vem7=`{Xek$i6=t zBLpGOc!2Zq1aM$lbe)sAXfgED7rmYVTpogx4st&l#WI z9mD;w{BlwG&S@iA7&LU!NozdK-*1LvvzkAN!5*8uTfJ;3JM(GT_7vw9NahDdo zsmC~E!Hp;)eZKnf{+7%^l@wubzEF7&wBcLt9b$IpzhH4@y>qha@CP$a55w&*ZKDcuqyZdgF#ey4P8r??j%RqZc+%v?irH;O30TtP5;a^@86wF!MZg|gx z0IT5%T!^D@n|rK&J`hl(BR0MG{=)7iHgkHllS!i6cUsKX7AjX`+6I^fc^c5Pp9`Z@}@2;<_q-zuwg4&6UH97?-S27wCpGYYmU@9BRTy+ke5acYFJ|d51PP8t$F= z?8ggw8x<6P)(XU@k(V?HFuohces&+wqrNs9`@K$7u ztj9=hH7;JqDx4re4IG02ZS9`P)eAsV1!8Ij=SCX81m>9z`*#VxGYtmt5@2U4EZ`;J z(~dBKXHcghW@hkqFy&DN8M3{4Qmw1+3qtEH#JuyOgB_*uRVDt3Bg6TyOzzHDW{@ zhif##2pt~F;j)coB!&ycSvR54Msr~}H7DfMD9)(?Y$!uZjeybKy%CKNsUn<8WFs&t zY%v&m%eT4t`E=)1bN*}lgApBIL`HnMPAx@3c-0In!I?t2H9vyq>hn^M8ci}+*U-wiUVX4k+9tW*_ucgY=CS-Bq{Dqy+dqu*7Tl^X!_4A_p$059^7C_9xzrre_7-G*)getxG=`0sJQ*e$WTVk& zqTx)IqPlha7RDJjY%|C>!;KkdG>~yd8~?_5r!K>$;)Y2E*<@^ZQ#RuYUF9&7jJ6>f zN?iMSA69tmqm@LPiZ zJRWvPcK26LHiu_#OPEdC+w49WkL#|zNoq8Oq}?ZRDeLOKuI`J@=jy)KO{-kp*ERcM zPIAq@G$ms$`Mu|1*X(;^_9awO14k&NTe|AG20XhBc+pJG4VwxA6eVCD>@x_H6)R^V z35FFbXOIkd6)R^V0kx`RkURiao$1RUc}zW)ERJQ6JPZqzLGmytRR+n!&{IW79s*1i zA$bU4R)pjsL|GA%hu}^{NFK@$LGnoX!LqqAKUg+5<_F8>#{6K}j6KEeYv#sc*$j#h zNwI9k4u$|-v1|rK7_QAYXHpo-OZkZ897*p3zLcT0Vh;v&;RyH$qg6uPiX<#IA5 zUJoK|P^RfAtNP)Tr0Ka}?vYurbr!$vsH&D#U1|&>B~VGnvu6*c<7w3!QkTzxAv8sI z=j%!RQwqAF-H9!<{_Q!ijHXBm}Wk{Z!bPMyD_rd zcSvvyp-8 z@5HtQo+Rx4Z{Kt`wkzPUEco}pqcEtiheEN>-^3nckF|7 zD@Ha)lkdFri7Vf$%2?;`Xn(Anw;%2;y$6C5-JUJP{`L z>pyi6oAcsG&A z5IEG}6byJ11KtQWcaOD3Kk%ORoI?r&ju`ys_vfvb^RuWeT&5&O@Nx}R$#xiKXCZ#NR``j^g6OE$p$^?0zE$!7e1(FX&Qhtl`H zt4OYbyLeI8wi|g!! z^ARQ~$A_J8M8ZfrW_TQvh_wFMml|ojq?Dt#zxQ53x|@AHhLCs zo0L4c(X(`Z#*JtG7`v`1jnn|m{(b|{sB*a^8Y6M-Rro$BB*bE z)t3y^H~(tcbL#zHyxq5LFfO{|CpTmd@=A^L4&dTdb!rvo#woP~6}#+rlrN7C9T%aCc{qRzZ|AEe!MJZXStF$nfZu+^1AyEMXc?x$g1C`u(V) z6gj;~hB?J+f0GQQs>m%_$38>ekAb#4AybZ=R@I%Kq-7`|_so)YGK)h2|YNn`nt)I|6M&qHlQNekYr~mbPOEI^k_R^#D(VA;tzM$E& z23XKukfNo5Z|ffJBZm|N>-^n3<*KA^RPU8nYO^(ucaPP1dibonE=Kf{31%g0imZak zOk0GT{+0FZ>W$KX14+7ijfN|kgUjw5 zp1mPI{{wm`Ld1`^7!5rhC=Vq6Z^n<8U&o#oq3O-W%wFXLCvU!D8hWae{{M_2#r&HcHbPBmkB!BFqJ8oJz_ zy`i!x>b=F-lYRQP=bH51d)`33?`F(24t(x9>V3(GXWlwg_{kiGdSCa^&bqHFmfoSo zGHl_s1@G7IFF!JOcpQ2N3AeoK9gi$Il)I4$lSu%o=f)9d!hbK}HpS-W&3gUdv-D}x z6~mB4b6DrhK`4|A}`WN%MvL3hN6>oj+W8J{F>dy8k_=M^FE(?8L%> zBzD#Ux*1J(JhJ%gO|msf^7t(+LVBIRV(KB*6ZyO1L4o0~U7#jlyrLggde5vKIeG7m zqXpp6x+A&H?@FHQsPy9!CSRNV#Yee0A3xn(jUpJSfSr2`&)!sW@P=#w=4ZI)^dBNy z*t%qntcgIbSfAphQDT z@14B9uyDuIa>SLSYv?h2Mny3BnKaSbEWcU0w?46e-DvX-MYu-I-`>oy&y%zsqM4uJ zl6#OgM6-2e2tU;?XmOE(v?M&=D2s!de`#Fu{v5gBtirvu=fd(FT+bH26V#_tCOFFH z<5JsWd?k3-Djo`cv_vRh)D9Qko{yXXtFGD{@xj^ct&(vU?lJaEP7F}Gb~kUkE-m2$ zT$6h|Pz6qX@jJn-nyoCu1-hc^p**};P%+jobm|!>d8ClnS~{hTPY0-ev^oHvE&t5( z(a;A;JX{!y)IWzR1;Eqe=p9xRE|%V9joyf751<^SnvbU*@J=D+IEo&Hpln9cGZB=z z2zoez@)S-_NqCH|$_b;#B|Q3_&IzSgVlxish0v?9NHv&Vkwt<*gv^fA0)-YFr4}Hx zWFqtz5}D}ygjP&szCx0is*lhbUmSM^09S25ATe(t83Yp32yIc`VO2m9N&yE2R|)M| ziM@mlELEk@k)`S>q_R{!gfxy)RS4;j7|JLZ#3C9wJJK}a z`eC%0b9!XUr*N(|;A#V|HsERlO3oTF`^j!*Ttl0?ZkpN26Iw>rfSE6g9D>mFfC7@$ zH+zQ3ggC~3?YkWonQDwLQ|1`Wak%O=tzOg#*1Ark2F%A_HW1RSsn6aCF!6Pm`eC9N zzp$?{4rZ~VcHd{>O?}_MJTYqOorXBR&iK-{UWTsA7h#$hz5FgiER2ymuUy#UwN+*8qLvowpPr3GkVgN z@*D+IRF>07diItw7y%nomalL^RqnHHNLp4Xy_TE4q>m|--p|ckF~%GM$UJMixkx?; zkL-$R2jbmbG3@}pxg=kIzJ(-LKfa|TPhUP!%7u={)G>ZRKbXm5>KL=^E`yfG)X{s% zAlRK^>gcm>B+Mf*b)>z0mr2cI>d1gNRD3&85MF$HNd}&L2PqRCd`Br03O-d5fIFWi z2|&)LOG(Rk%p)WKnB{U-swy7y2$di62xN7A$9JZu-Ol_P;M=K-9>ud{R` zUs#0qQL4V3uAP~uB!oFjv!Ult0DZ4yt>1u3;NhK_6f&q9pm$Yqt!e;N$G|~>lbK&V zIC@ac3E@OVtN4?-0LDBsBeH8LVEAn1zI}kw$S^{I#hF_>DD<|P6YS9(I zpQc`vi#LJG#%VSHb?-`U%@a|5giG{_5iGaj(of-&cEBDYYVLd5G35Z{%Q-VXLf-zZl?!#bm2=yKjVR6Y6Y8Ig_T$%|%>%Gs{&e-5ClH6gLS+gB7Ud{^@E?O~yVihy5Q6_*H< z*egJCJ$w3%`0$rco(L7bHx3=AGvRYq0hEnGX(I<|(DJ5sosSF^wv7(Mk>&AalN z%jYj#ym*wB= znODQ)I)7Q9GgKCBWpDHV@V2k6H{f`!my@E4D`b_|PG6|4Jws3N0Oz*WuV*C?cL}f; z*i8h(3m*aY!biZnH_&(`OkW9`mr$M%Mqs`Y<`aAb=1X4zXeWFG<_lkqIgs#vB_9E6 zhNA_b4kZpDYlaDqlD%M+>h37TPw4TdP{9sULh$x##uS1_Fq#0TEj*s41oNG@t?_J5#Y%RALWBfHLIPdWL6Ti#zS zC+;e*SA0cWV?gcZmi6~{$HUm{gJ2W5v7cZ+{}7&>0+()~z$I8?eE#grV2>tTdddk{ zyj3p;dp6;gLE31mFtAh-xAH%P* zV9Qj*t{kF03N}>;8ZFsks)=3Q#lKQwLo#HQsUbFMqZ(|gBKSy}-c8t4SLn_pPc7#p z^wRUGVP_DZs?C$6*HaA>P=eO9eUTV*5h0W-j5Q=zXpHwgOeoNl7X(o?Vz`1Bv3aw% zJ(LFz#!)JS9mZY5Dqj$&UHS=i@2FY91kQ}tH;xRca-88^V9y_TDf7S@{m7v?Tl}g?VP{H z8@rm|X2HGzjzEuWuF^HOyT*3c*zOwJU1PgzY(}i zDi2_}WxjY~?BKq5QpcDvuy6oyu>edpZR4YQAYj4L{P+__6>zMEeLmg@#4O|LFFFK-3u@TR$FXV;1AG4=jM#YcLGhl1-02*-SYTfCI-M3KS_rjp^=v}zBLFo-we-#(jYF(!7Q?;U zX8!BIZGiT&FX=|eV41IeMo4^_tKT(fU|?bx{9)}IIQMe&Ky;hw&oEc8v8BT@sP>l$JdWoe{5Cw+tAq{`PKz14P z>46tI8&NrS!-V62>SIunyeVtOzJC!4<9DX6&wTRfcr!pIjjLDSB=8DwBn^f;KG;6M zVhIJZpRxCh{kz8FAu!aCH-F8rbd7-(I}&J)hC5!~zhO}S(%y1|T>q_T>~GAxxAZ+K zel$tH?~?q2GmmAvvrP`(E~=!9b$%2ic&unAHXj$zP-J8@2PolOsb=}^o;>-*!N<~rL1i6fh2 ze~*(Iu} z4b_5v#jNykScBB395&Kdz^5)j_WC%jL1uxyNPJWk@JC6mp*XI&&ZkPFK2M^>c?}}I zzQcg{RDA&BW5UIO4F)8ee#JUH1dM8A0T3__Y=#0|k0pu_2CYcKT$zXi8ytXRRHF8V z&r!9avsuie-p|5q0^JS}k|c^ufv8@9 z@D%9BDiEIi3Rl)FkdC>EX?Edr>{necI<BI z;kXH&DDnIYm*nt7h(}&{HwT_DcyNM#IN1$5XB<+@t{MvBNBrS6Stbb?k!3Iq1f6B312vJ()Bp#=j?e%Q!}5cB41uzu=hzXX zfwSYp(a1Skx|ukqI$OEhB`TMw{)kp3jeq_e;h2#5FO7OoXn~ImglQsy4hwu_LQFFV z)K}mmBV(F4pu7SfnIY4B0hm_!Lg2%o)~Olu0ehK7G2qW4D3E7BEKpj3$6uTXps@lE zRw!%)LMMgKM;i3eP2pox07e|>tiabe#JA=g5%U|z^<>T&(Kwc;aE+sPJFaoOZqH$% z$MW9+I7?#QI|6)3%s0U>v6+panb^1rpi`a=q5wY?vxzH5jGdUEGC6TVLRX~;2wfGZ zFzBjJgrTd3W-GI~Y}p>cdD1L6cAqo}G_)9juL8$Fa4T^21iu0|li*n3W)M6J+;oC# zftyC~EpSr_&IN8qf_H)2f#6=?wkP-(xa~+W3T_H1M8R!KicoNq2|fmH8-kO8+nV5I z;3g5=4BS=(KLajT{-N1J0lm(UvgeWJ3tJ+7*7RfVfp{J2-hdEPnN%sb|f zHt{s38hINB#{lFV^6CM_LvALpdC1KGSP!}BK<^rUKuG+>QYJA-4l`bI5HE zjT~~@@fe`srT{dE+_pdwA~zY&UX$AfI78&N#)H}9CIN|v+*W`lA~z9OMdY>wcoDfR zfM!H)bHE#sn*fa&a^neq3vL{=Wyp<%t_-;`zb$PI>;47owjks&t_8ZzVtKtG0De`v>$>&J^zl`nK; ztP%6?GwHRNP?8DVwRgMrW7LM_37^NaxhWjrbMlJ10!s(~`v6*p9KzaRF5q_F8XoGi)_?VHV6 zU9E!&#??B|URvxO60KdWnXE<;XIU4NgTGnjB3r{(34SZ zIJ!TeTqWb+R;1eEq*A1${Vzhr{V&B6_rFAm`(L8O{V!3e*!GIQO~bxdq%bpO+VoTA zw8hx-v3=|8wwRe7cRZDn&F$ozJ`xC26O5Xop zECqoeu>yh^Y_5CbCI)Inzydbh>IF0qwJ3!uu2uypB0p6$UeI5~-%5V4@)P7D8YBdw z3zR!yxfR3<+V-z~kS001+jq{HEW1mvf7gx1 z-W?OPnzU40w)gwPbK^hszA)*!WKJF=h>Ug|`0~ld^W0#eX_rbuqp*PNIrjGrllfi0 zKKG9&64uYV<+=_!3rp)$lcq~HYB81X{;y7&I76(l_p>+$e){ZRA5ZwN31Bgjv_ZO{ zKY_;Rg^?k2Q22`-|D!MxHIU~Jxw5HGr!WBA?egO!1AzkRe520K&F%{~3v=6%~<9GrqNgu*&B#5QvJD}Uan z5U{9}G+=ibdxEnPsk`hXYymscKqvM*I73N!9JZ{X1qyXg&e^Q7hlc)Q&azK-y~XKm zmYsX`?e9K4T(W3H5=K3%&aK>7eeC3`V|z$&<$ycr&?ry`Rc>1tq~#d~>Y$Ocj&RZ$ zHJ!?TH8i2;Ga1yuO_fTf;XX1rd-#M!Ymaxse+@sIH|^xySGMhbyI_z3?&DR*P6Xud z3%fzPx1B5a{Hfxd`<6}U4ect#OoMZ8%12Rzk_S0#!__-0J08#fas8c<+O>l{NY!rk z*{pGgMo(C@e#e%@3Nh2U|JztqdGf8h(i5T27rqBGQ~A-7xmhMYIZ&vXZU%qU-WKA$ z%KpWiFy5<@@^#_7R}XbL&wI6XZ%guC%{|GR7+3GX$#cMaRWcKmH*M{|O8t8_JU=c) zi;2$zzWeX#=4LOlND?Bq_C^-aXBqX(?^u&r3^Du&-=Ra|a;bnyprz{@l|ajv0D7F1 ztFn4v2hO`+9?tYau6_E(%sj|-b8VS?XAa3I)`MH?VqJ`Wy(Y%!i)DrsW9MRdeRj%w zhGKbH(%AQ`#n|D(c_OfNoKs$4vktjP6K$>*SUuDb+FYShXI1}hn;HT=#QEk#KB2^1hqf8NE2|&VjabSjrf@ES8WUIE6QJME>m89ytj6E1BV=Wfg$)nD*s4o8v@JWHPo-w z#TflKPh<35ow`jCeaQ?azA z!MNF{*TkBPsm1cTANT(NW9O0)=H;eh9Q@|Y;TS%1az-3WCl_g=&D8>vvcN?xfm(Wd z@8zf^&{K|j0p1JnmcWPmsb2Zu-#)Lzh#xCmhfLm7EOD)0$_M>7{&v?0Q(mgd-lOBwjoZReHW>2>DeD#Wm`z<|C?S36lSBx|l^x?*{C z2ge$Hv44GbKhBoQzYwJN_)j^>MVe@vwSZazwQXwKylqoUpq4-_L2U_)nR@usz%{Ak zvxU=#^7afTsoi)`dZmWk{Al0U(s!h~0)xR!L3nXR= zV&!N_MiR6@I`K;EQiiJ z(|PA;KkrO+lE&XzmUY4T7D zq!vgmkXj&7$Pj%_`|Jtv3?yEFs6G=yp1Z|=!mv7V|u-si4Ov`H~x;U*@V3b*e~^wjJ*G^KO*@W3SI)8Br;?5WxDMUHip zAuJ-oI(@v;;*s}!)TKjs5Wa42e7LfMM?N;%lCBSng%7@8bJXgo*M<)CHWk*Mk|3udd0`!j@Nb&f*i{ipVpv}%Fc69Lgb{^~&uID7?pLz@dr$*}{ z1AL~PC>!7ImFDmgH8KB?Q)Z96>y%v=86xXvo!+15(H!zmNi>EP4Jwh;eaXo`$D-iA zeWp)Bcojnx)Mu?eyi1SJ)5Qam;=|&i_QsC?M1M>^FzO0Tc*X9>0tp6dz!=^TTFXK1 z1f*V<*3~MMDI?@QSRT0|#;0TfUR+@xw#mfAaT)oYoYsD-gRHq%7Z{qgD`hD_&4{wRb zydyNs!fLL4r)1_$23O6)6>mB%(g;<6PVngT8|5gz=gGbW3nF)`5k-Ey1NB|8WG@yUp= zI40+QJlc`slI{0w>4kZ8XvA118{U4x(GfAT-+b=EKxyaQjw@WgocSy32-~5AfjcG& z!aR4`k7?DgUX3&bCbH&)kRP>DqghroPl+872UwvPMMo|>k zt{H7ZQRL1lF-HWVi0^nWmlvWlZ`cU)J{<#ZYNr(tdWHlq-ACZm9qp|x6 zwq-?B9@IYVePv5-;>E*s(Fz8wS}}2; z-d5xI&AJsin74;kh-4-wjN7t9|Eavac#IU$g3#=`-=e?OKdMVavx`n5tvKfYX|B$u z$q5KkviWjz6uU3iW(&(V8bZvD%Dvis@}6V=+AZyq|9s}Jd!&87y)_5n;C`BYZqs@e zSgL2*B)>KeF9G5;cnKhzVss|F0N`%{>hMYIjTc@m5%Dpm3Fh{~{73rubCUE-gN&X# z%5|{UTg`Q_`>Vfm0Ucb-)3>K`mYxwyPt>sV{OsFIFN&l0q|AI2sK%|CO{Eh(1VU6g z%s>1{^pr<3e}mg|^b(q^H1WQ<5+>QC%J zWGHP{XP}Jm%4eM&|Bg?}?@GM)6h0}RFHgBDd6FSt9v`1E(VE|x$!Iqk0}G%5jiUyX z(snBYHT3$IEj6IMRBh^CZAfReI;(#JB90^CI3kXtPi&$VSY4g%a^{npvki9HdGL;0 ztG#ofT(H73-B2h$aAL^}YhmYdd27YCGDEq%<+Jjw)^evZ6{;VzOMRJeqTqUOpxTii znBq`It}aITje;`qG+`Pd%eSpF57`45j>15JqdZWiwqW9MAs&}D$>Y+e$M^XD=gCLo zH>7)goqsf0pD#}s9Q*V1d=2_?1NIp*Ji%r%s{d5~ss77EWJE+pZHvh0Qu}}6>LIS4 zw#e19Y(=KtF6WLvG9=yZTmNx^q0sll7qim~eabA}x5cw1T}ler6-?4Ou8XqoGCw*uV-q4vxt$5no!-Uq$<`v^+HW( zJkck$9DPz-=yn>?gov?*7;9|N%?i^H)*iDf)h=hO`9qf8?#rIB$81l<;^fYE3-pEZ zjOUI%U@A;4m&-oey46tb+wxhNNla_pNzCK)I`iF{$Jh_pT~52R&?(}C5;EXGkM_=; z+6wu=81pAmg?#wR{$8oV_fq^5QbqM)SIVA>iipcWB%)Or(ZO}s#vq$O}o2p~1=A$oJGe!fn9C8)>dff4!-GNP#9ka?oGo?>hq}2qdxDH zlZHPu{GoRSUg`>{D^Sizwx$CculPpc zFf)`6610fYr_-ETP?G+7*B}WTqN|tMB$w~!-m%>A#3v3MIkp8kUHRo;1=YHI*tY1GNTf4b&QS2hI#Jl*0&$>K)2X57Z zA6Z?f#-xTHn8p^3uX?3^0a2Eq?B=Y?)9=0AK=CeA7U`w#NT`X!p!(!`b~wluM& ziEVv%WJUV~$0a+<=i*?5?3{RL1P(*kmKEC}ZrneWAFim=(=qE~5YK4T^A-FA#xIWz zLzEnR;s9b$B|m3Tr>D<$|5j{nqlk5BjFdw)hgt`99n?M2vx6T+yvQ?@ltaq7aJWT- z2O2!IvcZFTbVsXxJ4(WF9eha&f`1nJBA&kNLY_zU3=a z&^P0SGDHhMuOpY?ybjLr@UKkQp5ck`+xoIj$Fej5y&L=87}E$qF!q=Lx4Q%&v;xY- z3BQ?k&&-0m=JdP2a4P&6zljbA0IA&Wd<-UIMu7YCKj;#lXVTH(epoP?G@)8wYH!x`1OoQ zYey(jXW@CrT`YZt%vPjg1mocPb-z@+q;&;CJ}l%yAzu-)Sjde+ekP<>l^^yIvOq|2 z{fFPE?oA?mlL#-}qWYKaRb|--A;tff3;%7B>c4G(Dl6uwaz`g2d#Q4FtyJ?V?H{Q6 z@4r>ZDXKhjhbq6gM@VtMGY_clGYeGtw_5pzaIaV8+4oc#C=qh2B6S+||8$xe!u^tv zwc-Cz-P$WvDXDtZNyVyL_kobxgghwZmqMOXrJmO%l&e8pZxH^*$5nshN+By%8LJoa zdLbvMGVv}&!f=~g7_5xt7D-VAw{}P)Q{(1&%0Ql?21=e9l^P{a7UU^vpya7hsZsJ2 zK%SxoN}d{(8aFFt?pRjj*1DKm2dTOII}I&^$1!^-7O1s$SGX)voGLwW}#t?G3(OD#~R)j2L!hQ3|fPyi#d< z$eWab^!*@^t_-9vo?Pa)7nl2O3H{%H zcstd=H$)A6vlMOd2H?GL>w7cRTHc^hI-~!MXA(mTXcccFTgw|$N@r_(!;KcuD&9h) zW>Gp@(W*gfDX)gFLo{X$Bbwsky-3)O@Jm>4Xl?5wmz-WFYlo{R!PO!q_w8-%B$!_% z_w8!sBy^?7$=s&WBE`&5Op9U$oY(<|{Xp#$W@w~6ucnw$7uxe$iW#k-J+Gvg(f%*i zFI>$3qVL-;^KLsz$K_maNmbW&XicR>c5b%pS`W&e?^dPtlor_)+p>B`+4G&i?RYI^ zKp>vcT1so%;f(iFt!`I#G^d%?Qd-;YcGM0zZQrwy? z_26-E$3MoD7?;eE5R7rj=ahmmn)FOhG%**{rp2u(Wo|7_nkrgV>=_|;OVFO=3be*+ ztwp`rrNJFvjCxhdtQm-LNeITUAjTyj7$blfZ5$W0@{kqO+S=D%WrS|{F8t8d<@&o# z`Ru9{o!M3I0L$InwHdZezy`&&9kw!HbJN#41M7}n(i&**@;|j`1IvPrIIaq~O)i$R zLdSC60ha5qdI0xk*f#+ignK*eWdQt@@Br)r?u7a29eG1^;e zR`u#qpP!1x6njR9zeTZ|z#4KsyePyT)z_lGcoTRXcoldVcoBFWSOPo?JOeBM<^fLv zj{}baj{viQS-?!-exML20Hy(V19t$EfeFCvz&PMGU=%PCxEUA@3%gnP%fO4k^S~0|S>PF90Wc4E5_lYV6nF%f z4a@>&0`~)jKmjlfxEr_wm<&t+ZU@Ezw*jMok-*Ksa9|iP1Q-N30UMA5WCAw;=|Df= zTA&wjHP91C1-b%VfKEV1paWnAl7M)?2p9m#tr^O4K7efv@IJ5#CdO6C_>TeV%K1R}JAhmu3*foF9^kp| z16%{70X=|j0MGG{fD|AZFaZfbEO0)zAHlT|SO=53lP9|$e? zhvA+LJP7bIp8?zpOa<-)rT`NGUfw*%qk)U%*p4t>&KbY}pg+(T=neb?;APw$xDtpg z-$eMu0WpADwgK4M4cr<|a*PJ70D`f{1i0NL01;%qP8|5q%->9zHhsnvaEBv+sr1?B z>BHUdOXdDf9(rl?;oWgv?R`Qi!;^$RPa!5i*j1|hu7=4O#6y3z%-{Ud^FLiO+`+V~ zVY=j>Di`Qdh6<@NUF%X*hG)ey7zYWnitDU->h;!}g%t6uw+Z)nAq7*kb&7B+dcu8F z=4_pHhVXwt$cKcSBjj8m9~bf|AysB=opq6LFA;L7kb*hex=gs=5b|vy-xYGDknamw zBIJ4@Hwn2}$gM(F2)RSZ-9qjcvQo&SLjFa_(?WhN?LGhA+Hzmr$S~6X%}*!B4J?m&1c;07MIdT{2Sird368) literal 0 HcmV?d00001

qU_ms2`=6_#fQ*xnhDHY%vZuOk4eWM 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 Date: Sun, 18 May 2025 21:37:41 +0200 Subject: [PATCH 056/181] i have a headache --- changelog | 3 +- .../hbm/render/item/ItemRenderLibrary.java | 3 +- .../hbm/render/tileentity/RenderBreeder.java | 2 - .../machine/albion/TileEntityPASource.java | 37 ++++++++++--------- 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/changelog b/changelog index 76500e081..947d5839a 100644 --- a/changelog +++ b/changelog @@ -43,4 +43,5 @@ * Fixed artillery shells not playing the explosion animation when directly impacting entities * Fixed bauxite and malachite vein toggles being on backwards * Fixed pneumatic tube order settings not saving -* Fixed crash caused by launching ABMs with blank target designators \ No newline at end of file +* Fixed crash caused by launching ABMs with blank target designators +* Fixed particle source throwing errors when trying to save nonexistant particles diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 2feabfbe3..b61f4ddcd 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -97,11 +97,10 @@ public class ItemRenderLibrary { renderers.put(Item.getItemFromBlock(ModBlocks.machine_reactor_breeding), new ItemRenderBase() { public void renderInventory() { - GL11.glTranslated(0, -4, 0); + GL11.glTranslated(0, -4.5, 0); GL11.glScaled(4.5, 4.5, 4.5); } public void renderCommon() { - GL11.glScaled(0.5, 0.5, 0.5); GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.breeder_tex); ResourceManager.breeder.renderAll(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderBreeder.java b/src/main/java/com/hbm/render/tileentity/RenderBreeder.java index 25c8659b7..1e48fcc2f 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBreeder.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBreeder.java @@ -40,8 +40,6 @@ public class RenderBreeder extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } - GL11.glScaled(0.5, 0.5, 0.5); - bindTexture(ResourceManager.breeder_tex); GL11.glShadeModel(GL11.GL_SMOOTH); diff --git a/src/main/java/com/hbm/tileentity/machine/albion/TileEntityPASource.java b/src/main/java/com/hbm/tileentity/machine/albion/TileEntityPASource.java index 151817494..1128ff67f 100644 --- a/src/main/java/com/hbm/tileentity/machine/albion/TileEntityPASource.java +++ b/src/main/java/com/hbm/tileentity/machine/albion/TileEntityPASource.java @@ -236,23 +236,26 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - NBTTagCompound particleTag = new NBTTagCompound(); - particleTag.setInteger("x", particle.x); - particleTag.setInteger("y", particle.y); - particleTag.setInteger("z", particle.z); - particleTag.setByte("dir", (byte) particle.dir.ordinal()); - particleTag.setInteger("momentum", particle.momentum); - particleTag.setInteger("defocus", particle.defocus); - particleTag.setInteger("dist", particle.distanceTraveled); - - NBTTagCompound inputTag1 = new NBTTagCompound(); - NBTTagCompound inputTag2 = new NBTTagCompound(); - particle.input1.writeToNBT(inputTag1); - particle.input2.writeToNBT(inputTag2); - - particleTag.setTag("input1", inputTag1); - particleTag.setTag("input2", inputTag2); - nbt.setTag("particle", particleTag); + + if(particle != null) { + NBTTagCompound particleTag = new NBTTagCompound(); + particleTag.setInteger("x", particle.x); + particleTag.setInteger("y", particle.y); + particleTag.setInteger("z", particle.z); + particleTag.setByte("dir", (byte) particle.dir.ordinal()); + particleTag.setInteger("momentum", particle.momentum); + particleTag.setInteger("defocus", particle.defocus); + particleTag.setInteger("dist", particle.distanceTraveled); + + NBTTagCompound inputTag1 = new NBTTagCompound(); + NBTTagCompound inputTag2 = new NBTTagCompound(); + particle.input1.writeToNBT(inputTag1); + particle.input2.writeToNBT(inputTag2); + + particleTag.setTag("input1", inputTag1); + particleTag.setTag("input2", inputTag2); + nbt.setTag("particle", particleTag); + } } @Override From fa25d17a457426826b0ac6f53835e92207731f6d Mon Sep 17 00:00:00 2001 From: pheo Date: Sun, 18 May 2025 22:16:59 +0100 Subject: [PATCH 057/181] fixed shading and green lightning in the breeder my tummy hurt --- .../hbm/render/tileentity/RenderBreeder.java | 2 +- .../assets/hbm/models/reactors/breeder.obj | 626 ++++++++---------- 2 files changed, 277 insertions(+), 351 deletions(-) diff --git a/src/main/java/com/hbm/render/tileentity/RenderBreeder.java b/src/main/java/com/hbm/render/tileentity/RenderBreeder.java index 1e48fcc2f..7c09e60fe 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBreeder.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBreeder.java @@ -36,7 +36,7 @@ public class RenderBreeder extends TileEntitySpecialRenderer { for(int i = 0; i < 3; i++) { GL11.glPushMatrix(); GL11.glRotatef((float) (Math.PI * i), 0F, 1F, 0F); - RenderSparks.renderSpark((int) ((System.currentTimeMillis() % 10000) / 100 + i), 0, 1.875, 0, 0.15F, 3, 4, 0x00ff00, 0xffffff); + RenderSparks.renderSpark((int) ((System.currentTimeMillis() % 10000) / 100 + i), 0, 1.5625, 0, 0.15F, 3, 4, 0x00ff00, 0xffffff); GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/models/reactors/breeder.obj b/src/main/resources/assets/hbm/models/reactors/breeder.obj index c96c81eb6..44261e883 100644 --- a/src/main/resources/assets/hbm/models/reactors/breeder.obj +++ b/src/main/resources/assets/hbm/models/reactors/breeder.obj @@ -1,6 +1,6 @@ # Blender v2.79 (sub 7) OBJ File: 'breeding_reactor.blend' # www.blender.org -mtllib breeding_reactor.mtl +mtllib breeding_reactor_fixed.mtl o Cube_Cube.001 v -0.437500 0.437500 -0.437500 v -0.437500 0.437500 -0.500000 @@ -82,30 +82,6 @@ v -0.500000 2.687499 -0.500000 v -0.437500 2.687499 -0.437500 v -0.500000 2.749999 -0.500000 v -0.437500 0.500000 0.437500 -v -0.000000 1.250000 -0.482963 -v 0.241481 1.250000 -0.418258 -v 0.418258 1.250000 -0.241481 -v 0.482963 1.250000 0.000000 -v 0.418258 1.250000 0.241482 -v 0.241482 1.250000 0.418258 -v 0.000000 1.250000 0.482963 -v -0.241481 1.250000 0.418258 -v -0.418258 1.250000 0.241482 -v -0.482963 1.250000 0.000000 -v -0.418258 1.250000 -0.241481 -v -0.241482 1.250000 -0.418258 -v -0.000000 1.875000 -0.482963 -v 0.241481 1.875000 -0.418258 -v 0.418258 1.875000 -0.241481 -v 0.482963 1.875000 0.000000 -v 0.418258 1.875000 0.241482 -v 0.241482 1.875000 0.418258 -v 0.000000 1.875000 0.482963 -v -0.241481 1.875000 0.418258 -v -0.418258 1.875000 0.241482 -v -0.482963 1.875000 0.000000 -v -0.418258 1.875000 -0.241481 -v -0.241482 1.875000 -0.418258 v -0.187500 0.625000 0.250000 v -0.187500 3.250000 0.250000 v -0.250000 0.625000 0.250000 @@ -198,22 +174,15 @@ v -0.000000 1.250000 -0.482963 v 0.241481 1.250000 -0.418258 v 0.418258 1.250000 -0.241481 v 0.482963 1.250000 0.000000 -v 0.418258 1.250000 0.241482 v 0.241482 1.250000 0.418258 v 0.000000 1.250000 0.482963 -v -0.241481 1.250000 0.418258 v -0.418258 1.250000 0.241482 v -0.482963 1.250000 0.000000 -v -0.418258 1.250000 -0.241481 v -0.241482 1.250000 -0.418258 v -0.000000 1.875000 -0.482963 v 0.241481 1.875000 -0.418258 v 0.418258 1.875000 -0.241481 v 0.482963 1.875000 0.000000 -v 0.418258 1.875000 0.241482 -v 0.241482 1.875000 0.418258 -v 0.000000 1.875000 0.482963 -v -0.241481 1.875000 0.418258 v -0.418258 1.875000 0.241482 v -0.482963 1.875000 0.000000 v -0.418258 1.875000 -0.241481 @@ -242,6 +211,13 @@ v -0.418258 0.375000 -0.241481 v -0.418258 0.625000 -0.241481 v -0.241482 0.375000 -0.418258 v -0.241482 0.625000 -0.418258 +v 0.418258 1.250000 0.241482 +v -0.241481 1.250000 0.418258 +v -0.418258 1.250000 -0.241481 +v 0.418258 1.875000 0.241482 +v 0.241482 1.875000 0.418258 +v 0.000000 1.875000 0.482963 +v -0.241481 1.875000 0.418258 vt 0.196262 0.875000 vt 0.327103 0.854167 vt 0.327103 0.875000 @@ -596,31 +572,6 @@ vt 0.905029 0.947544 vt 0.869675 0.968591 vt 0.808440 0.890042 vt 0.808440 0.732944 -vt 0.598131 0.604167 -vt 0.560748 0.395833 -vt 0.598131 0.395833 -vt 0.635514 0.604167 -vt 0.635514 0.395833 -vt 0.672897 0.604167 -vt 0.672897 0.395833 -vt 0.710280 0.604167 -vt 0.710280 0.395833 -vt 0.747664 0.604167 -vt 0.747664 0.395833 -vt 0.785047 0.604167 -vt 0.785047 0.395833 -vt 0.373832 0.604167 -vt 0.336449 0.395833 -vt 0.373832 0.395833 -vt 0.411215 0.604167 -vt 0.411215 0.395833 -vt 0.448598 0.604167 -vt 0.448598 0.395833 -vt 0.485981 0.604167 -vt 0.485981 0.395833 -vt 0.523364 0.604167 -vt 0.523364 0.395833 -vt 0.560748 0.604167 vt 0.560748 0.979167 vt 0.523364 0.895833 vt 0.560748 0.895833 @@ -721,10 +672,9 @@ vt 0.635514 0.104167 vt 0.635514 0.187500 vt 0.598131 0.104167 vt 0.598131 0.187500 -vt 0.336449 0.604167 +vt 0.336449 0.395833 vt 0.336449 0.979167 vt 0.336449 0.812500 -vt 0.336449 0.395833 vt 0.336449 0.187500 vn 0.0000 -1.0000 -0.0000 vn 0.0000 -0.0000 1.0000 @@ -736,38 +686,14 @@ 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.5000 0.0000 -0.8660 -vn -0.8660 0.0000 -0.5000 -vn -0.8660 0.0000 0.5000 -vn -0.5000 0.0000 0.8660 -vn 0.5000 0.0000 0.8660 -vn 0.8660 0.0000 0.5000 -vn 0.8660 0.0000 -0.5000 vn 0.5000 0.0000 -0.8660 -vn 0.0000 0.6532 -0.7571 -vn 0.3786 -0.6532 -0.6557 -vn 0.0000 -0.6532 -0.7571 -vn 0.3786 0.6532 -0.6557 -vn 0.6557 -0.6532 -0.3786 -vn 0.6557 0.6532 -0.3786 -vn 0.7571 -0.6532 0.0000 -vn 0.7571 0.6532 0.0000 -vn 0.6557 -0.6532 0.3786 -vn 0.6557 0.6532 0.3786 -vn 0.3786 -0.6532 0.6557 -vn 0.3786 0.6532 0.6557 -vn 0.0000 -0.6532 0.7571 -vn 0.0000 0.6532 0.7571 -vn -0.3786 -0.6532 0.6557 -vn -0.3786 0.6532 0.6557 -vn -0.6557 -0.6532 0.3786 -vn -0.6557 0.6532 0.3786 -vn -0.7571 -0.6532 0.0000 -vn -0.7571 0.6532 0.0000 -vn -0.6557 -0.6532 -0.3786 -vn -0.6557 0.6532 -0.3786 -vn -0.3786 -0.6532 -0.6557 -vn -0.3786 0.6532 -0.6557 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn -0.5000 0.0000 -0.8660 usemtl None s off f 78/1/1 7/2/1 39/3/1 @@ -858,44 +784,44 @@ f 73/153/2 78/154/2 66/155/2 f 4/156/3 67/157/3 5/158/3 f 66/155/6 79/159/6 77/149/6 f 3/150/4 79/159/4 4/156/4 -f 106/160/2 107/161/2 105/162/2 -f 108/163/6 111/164/6 107/161/6 -f 112/165/4 109/166/4 111/164/4 -f 110/167/5 105/162/5 109/168/5 -f 111/164/1 105/169/1 107/161/1 -f 108/163/3 110/170/3 112/165/3 -f 114/171/6 115/172/6 113/173/6 -f 116/174/4 119/175/4 115/172/4 -f 120/176/5 117/177/5 119/175/5 -f 118/178/2 113/173/2 117/179/2 -f 119/175/1 113/180/1 115/172/1 -f 116/174/3 118/181/3 120/176/3 -f 122/182/4 123/183/4 121/184/4 -f 124/185/5 127/186/5 123/183/5 -f 128/187/2 125/188/2 127/186/2 -f 126/189/6 121/184/6 125/190/6 -f 127/186/1 121/191/1 123/183/1 -f 124/185/3 126/192/3 128/187/3 -f 130/193/5 131/194/5 129/195/5 -f 132/196/2 135/197/2 131/194/2 -f 136/198/6 133/199/6 135/197/6 -f 134/200/4 129/195/4 133/201/4 -f 135/197/1 129/202/1 131/194/1 -f 132/196/3 134/203/3 136/198/3 -f 138/204/7 139/205/7 137/206/7 -f 140/207/8 143/208/8 139/205/8 -f 144/209/9 141/210/9 143/208/9 -f 142/211/10 137/206/10 141/212/10 -f 139/205/1 141/213/1 137/214/1 -f 140/207/3 142/215/3 144/209/3 -f 154/216/3 150/217/3 166/218/3 -f 159/219/1 163/220/1 167/221/1 -f 178/222/3 174/223/3 190/224/3 -f 183/225/1 187/226/1 191/227/1 -f 194/228/3 204/229/3 200/230/3 -f 215/231/3 213/232/3 209/233/3 -f 226/234/3 222/235/3 238/236/3 -f 231/237/1 235/238/1 239/239/1 +f 82/160/2 83/161/2 81/162/2 +f 84/163/6 87/164/6 83/161/6 +f 88/165/4 85/166/4 87/164/4 +f 86/167/5 81/162/5 85/168/5 +f 87/164/1 81/169/1 83/161/1 +f 84/163/3 86/170/3 88/165/3 +f 90/171/6 91/172/6 89/173/6 +f 92/174/4 95/175/4 91/172/4 +f 96/176/5 93/177/5 95/175/5 +f 94/178/2 89/173/2 93/179/2 +f 95/175/1 89/180/1 91/172/1 +f 92/174/3 94/181/3 96/176/3 +f 98/182/4 99/183/4 97/184/4 +f 100/185/5 103/186/5 99/183/5 +f 104/187/2 101/188/2 103/186/2 +f 102/189/6 97/184/6 101/190/6 +f 103/186/1 97/191/1 99/183/1 +f 100/185/3 102/192/3 104/187/3 +f 106/193/5 107/194/5 105/195/5 +f 108/196/2 111/197/2 107/194/2 +f 112/198/6 109/199/6 111/197/6 +f 110/200/4 105/195/4 109/201/4 +f 111/197/1 105/202/1 107/194/1 +f 108/196/3 110/203/3 112/198/3 +f 114/204/7 115/205/7 113/206/7 +f 116/207/8 119/208/8 115/205/8 +f 120/209/9 117/210/9 119/208/9 +f 118/211/10 113/206/10 117/212/10 +f 115/205/1 117/213/1 113/214/1 +f 116/207/3 118/215/3 120/209/3 +f 130/216/3 126/217/3 142/218/3 +f 135/219/1 139/220/1 143/221/1 +f 154/222/3 150/223/3 166/224/3 +f 159/225/1 163/226/1 167/227/1 +f 170/228/3 177/229/3 211/230/3 +f 184/231/3 182/232/3 213/233/3 +f 195/234/3 191/235/3 207/236/3 +f 200/237/1 204/238/1 208/239/1 f 78/1/1 3/13/1 7/2/1 f 78/4/2 39/240/2 24/5/2 f 1/7/2 13/241/2 19/8/2 @@ -984,226 +910,226 @@ f 73/153/2 76/267/2 78/154/2 f 4/156/3 79/159/3 67/157/3 f 66/155/6 67/268/6 79/159/6 f 3/150/4 77/149/4 79/159/4 -f 106/160/2 108/163/2 107/161/2 -f 108/163/6 112/165/6 111/164/6 -f 112/165/4 110/269/4 109/166/4 -f 110/167/5 106/160/5 105/162/5 -f 111/164/1 109/270/1 105/169/1 -f 108/163/3 106/271/3 110/170/3 -f 114/171/6 116/174/6 115/172/6 -f 116/174/4 120/176/4 119/175/4 -f 120/176/5 118/272/5 117/177/5 -f 118/178/2 114/171/2 113/173/2 -f 119/175/1 117/273/1 113/180/1 -f 116/174/3 114/274/3 118/181/3 -f 122/182/4 124/185/4 123/183/4 -f 124/185/5 128/187/5 127/186/5 -f 128/187/2 126/275/2 125/188/2 -f 126/189/6 122/182/6 121/184/6 -f 127/186/1 125/276/1 121/191/1 -f 124/185/3 122/277/3 126/192/3 -f 130/193/5 132/196/5 131/194/5 -f 132/196/2 136/198/2 135/197/2 -f 136/198/6 134/278/6 133/199/6 -f 134/200/4 130/193/4 129/195/4 -f 135/197/1 133/279/1 129/202/1 -f 132/196/3 130/280/3 134/203/3 -f 138/204/7 140/207/7 139/205/7 -f 140/207/8 144/209/8 143/208/8 -f 144/209/9 142/281/9 141/210/9 -f 142/211/10 138/204/10 137/206/10 -f 139/205/1 143/208/1 141/213/1 -f 140/207/3 138/282/3 142/215/3 -f 150/217/3 148/283/3 146/284/3 -f 146/284/3 168/285/3 166/218/3 -f 166/218/3 164/286/3 162/287/3 -f 162/287/3 160/288/3 166/218/3 -f 160/288/3 158/289/3 166/218/3 -f 158/289/3 156/290/3 154/216/3 -f 154/216/3 152/291/3 150/217/3 -f 150/217/3 146/284/3 166/218/3 -f 158/289/3 154/216/3 166/218/3 -f 167/221/1 145/292/1 147/293/1 -f 147/293/1 149/294/1 151/295/1 -f 151/295/1 153/296/1 155/297/1 -f 155/297/1 157/298/1 151/295/1 -f 157/298/1 159/219/1 151/295/1 -f 159/219/1 161/299/1 163/220/1 -f 163/220/1 165/300/1 167/221/1 -f 167/221/1 147/293/1 159/219/1 -f 147/293/1 151/295/1 159/219/1 -f 174/223/3 172/301/3 170/302/3 -f 170/302/3 192/303/3 190/224/3 -f 190/224/3 188/304/3 186/305/3 -f 186/305/3 184/306/3 190/224/3 -f 184/306/3 182/307/3 190/224/3 -f 182/307/3 180/308/3 178/222/3 -f 178/222/3 176/309/3 174/223/3 -f 174/223/3 170/302/3 190/224/3 -f 182/307/3 178/222/3 190/224/3 -f 191/227/1 169/310/1 171/311/1 -f 171/311/1 173/312/1 175/313/1 -f 175/313/1 177/314/1 179/315/1 -f 179/315/1 181/316/1 175/313/1 -f 181/316/1 183/225/1 175/313/1 -f 183/225/1 185/317/1 187/226/1 -f 187/226/1 189/318/1 191/227/1 -f 191/227/1 171/311/1 183/225/1 -f 171/311/1 175/313/1 183/225/1 -f 204/229/3 203/319/3 202/320/3 -f 202/320/3 201/321/3 200/230/3 -f 200/230/3 199/322/3 196/323/3 -f 199/322/3 198/324/3 196/323/3 -f 198/324/3 197/325/3 196/323/3 -f 196/323/3 195/326/3 194/228/3 -f 194/228/3 193/327/3 204/229/3 -f 204/229/3 202/320/3 200/230/3 -f 196/323/3 194/228/3 200/230/3 -f 205/328/3 216/329/3 215/231/3 -f 215/231/3 214/330/3 213/232/3 -f 213/232/3 212/331/3 209/233/3 -f 212/331/3 211/332/3 209/233/3 -f 211/332/3 210/333/3 209/233/3 -f 209/233/3 208/334/3 207/335/3 -f 207/335/3 206/336/3 209/233/3 -f 206/336/3 205/328/3 209/233/3 -f 205/328/3 215/231/3 209/233/3 -f 222/235/3 220/337/3 218/338/3 -f 218/338/3 240/339/3 238/236/3 -f 238/236/3 236/340/3 234/341/3 -f 234/341/3 232/342/3 238/236/3 -f 232/342/3 230/343/3 238/236/3 -f 230/343/3 228/344/3 226/234/3 -f 226/234/3 224/345/3 222/235/3 -f 222/235/3 218/338/3 238/236/3 -f 230/343/3 226/234/3 238/236/3 -f 239/239/1 217/346/1 219/347/1 -f 219/347/1 221/348/1 223/349/1 -f 223/349/1 225/350/1 227/351/1 -f 227/351/1 229/352/1 223/349/1 -f 229/352/1 231/237/1 223/349/1 -f 231/237/1 233/353/1 235/238/1 -f 235/238/1 237/354/1 239/239/1 -f 239/239/1 219/347/1 231/237/1 -f 219/347/1 223/349/1 231/237/1 +f 82/160/2 84/163/2 83/161/2 +f 84/163/6 88/165/6 87/164/6 +f 88/165/4 86/269/4 85/166/4 +f 86/167/5 82/160/5 81/162/5 +f 87/164/1 85/270/1 81/169/1 +f 84/163/3 82/271/3 86/170/3 +f 90/171/6 92/174/6 91/172/6 +f 92/174/4 96/176/4 95/175/4 +f 96/176/5 94/272/5 93/177/5 +f 94/178/2 90/171/2 89/173/2 +f 95/175/1 93/273/1 89/180/1 +f 92/174/3 90/274/3 94/181/3 +f 98/182/4 100/185/4 99/183/4 +f 100/185/5 104/187/5 103/186/5 +f 104/187/2 102/275/2 101/188/2 +f 102/189/6 98/182/6 97/184/6 +f 103/186/1 101/276/1 97/191/1 +f 100/185/3 98/277/3 102/192/3 +f 106/193/5 108/196/5 107/194/5 +f 108/196/2 112/198/2 111/197/2 +f 112/198/6 110/278/6 109/199/6 +f 110/200/4 106/193/4 105/195/4 +f 111/197/1 109/279/1 105/202/1 +f 108/196/3 106/280/3 110/203/3 +f 114/204/7 116/207/7 115/205/7 +f 116/207/8 120/209/8 119/208/8 +f 120/209/9 118/281/9 117/210/9 +f 118/211/10 114/204/10 113/206/10 +f 115/205/1 119/208/1 117/213/1 +f 116/207/3 114/282/3 118/215/3 +f 126/217/3 124/283/3 122/284/3 +f 122/284/3 144/285/3 142/218/3 +f 142/218/3 140/286/3 138/287/3 +f 138/287/3 136/288/3 142/218/3 +f 136/288/3 134/289/3 142/218/3 +f 134/289/3 132/290/3 130/216/3 +f 130/216/3 128/291/3 126/217/3 +f 126/217/3 122/284/3 142/218/3 +f 134/289/3 130/216/3 142/218/3 +f 143/221/1 121/292/1 123/293/1 +f 123/293/1 125/294/1 127/295/1 +f 127/295/1 129/296/1 131/297/1 +f 131/297/1 133/298/1 127/295/1 +f 133/298/1 135/219/1 127/295/1 +f 135/219/1 137/299/1 139/220/1 +f 139/220/1 141/300/1 143/221/1 +f 143/221/1 123/293/1 135/219/1 +f 123/293/1 127/295/1 135/219/1 +f 150/223/3 148/301/3 146/302/3 +f 146/302/3 168/303/3 166/224/3 +f 166/224/3 164/304/3 162/305/3 +f 162/305/3 160/306/3 166/224/3 +f 160/306/3 158/307/3 166/224/3 +f 158/307/3 156/308/3 154/222/3 +f 154/222/3 152/309/3 150/223/3 +f 150/223/3 146/302/3 166/224/3 +f 158/307/3 154/222/3 166/224/3 +f 167/227/1 145/310/1 147/311/1 +f 147/311/1 149/312/1 151/313/1 +f 151/313/1 153/314/1 155/315/1 +f 155/315/1 157/316/1 151/313/1 +f 157/316/1 159/225/1 151/313/1 +f 159/225/1 161/317/1 163/226/1 +f 163/226/1 165/318/1 167/227/1 +f 167/227/1 147/311/1 159/225/1 +f 147/311/1 151/313/1 159/225/1 +f 177/229/3 212/319/3 176/320/3 +f 176/320/3 175/321/3 211/230/3 +f 211/230/3 174/322/3 172/323/3 +f 174/322/3 173/324/3 172/323/3 +f 173/324/3 210/325/3 172/323/3 +f 172/323/3 171/326/3 170/228/3 +f 170/228/3 169/327/3 177/229/3 +f 177/229/3 176/320/3 211/230/3 +f 172/323/3 170/228/3 211/230/3 +f 178/328/3 185/329/3 184/231/3 +f 184/231/3 183/330/3 182/232/3 +f 182/232/3 216/331/3 213/233/3 +f 216/331/3 215/332/3 213/233/3 +f 215/332/3 214/333/3 213/233/3 +f 213/233/3 181/334/3 180/335/3 +f 180/335/3 179/336/3 213/233/3 +f 179/336/3 178/328/3 213/233/3 +f 178/328/3 184/231/3 213/233/3 +f 191/235/3 189/337/3 187/338/3 +f 187/338/3 209/339/3 207/236/3 +f 207/236/3 205/340/3 203/341/3 +f 203/341/3 201/342/3 207/236/3 +f 201/342/3 199/343/3 207/236/3 +f 199/343/3 197/344/3 195/234/3 +f 195/234/3 193/345/3 191/235/3 +f 191/235/3 187/338/3 207/236/3 +f 199/343/3 195/234/3 207/236/3 +f 208/239/1 186/346/1 188/347/1 +f 188/347/1 190/348/1 192/349/1 +f 192/349/1 194/350/1 196/351/1 +f 196/351/1 198/352/1 192/349/1 +f 198/352/1 200/237/1 192/349/1 +f 200/237/1 202/353/1 204/238/1 +f 204/238/1 206/354/1 208/239/1 +f 208/239/1 188/347/1 200/237/1 +f 188/347/1 192/349/1 200/237/1 s 1 -f 104/355/11 81/356/4 92/357/11 -f 103/358/12 92/357/11 91/359/12 -f 102/360/6 91/359/12 90/361/6 -f 101/362/13 90/361/6 89/363/13 -f 100/364/14 89/363/13 88/365/14 -f 99/366/2 88/365/14 87/367/2 -f 98/368/15 87/369/2 86/370/15 -f 97/371/16 86/370/15 85/372/16 -f 96/373/5 85/372/16 84/374/5 -f 95/375/17 84/374/5 83/376/17 -f 94/377/18 83/376/17 82/378/18 -f 93/379/4 82/378/18 81/356/4 -f 146/380/19 147/381/20 145/382/21 -f 148/383/22 149/384/23 147/381/20 -f 150/385/24 151/386/25 149/384/23 -f 152/387/26 153/388/27 151/386/25 -f 154/389/28 155/390/29 153/388/27 -f 156/391/30 157/392/31 155/390/29 -f 158/393/32 159/394/33 157/395/31 -f 160/396/34 161/397/35 159/394/33 -f 162/398/36 163/399/37 161/397/35 -f 164/400/38 165/401/39 163/399/37 -f 166/402/40 167/403/41 165/401/39 -f 168/404/42 145/382/21 167/403/41 -f 170/405/19 206/406/22 205/407/19 -f 172/408/22 207/409/24 206/406/22 -f 174/410/24 208/411/26 207/409/24 -f 176/412/26 209/413/28 208/411/26 -f 178/414/28 210/415/30 209/413/28 -f 180/416/30 211/417/32 210/415/30 -f 182/418/32 212/419/34 211/420/32 -f 184/421/34 213/422/36 212/419/34 -f 186/423/36 214/424/38 213/422/36 -f 188/425/38 215/426/40 214/424/38 -f 190/427/40 216/428/42 215/426/40 -f 192/429/42 205/407/19 216/428/42 -f 204/430/42 169/431/21 191/432/41 -f 203/433/40 191/432/41 189/434/39 -f 202/435/38 189/434/39 187/436/37 -f 201/437/36 187/436/37 185/438/35 -f 200/439/34 185/438/35 183/440/33 -f 199/441/32 183/440/33 181/442/31 -f 198/443/30 181/444/31 179/445/29 -f 197/446/28 179/445/29 177/447/27 -f 196/448/26 177/447/27 175/449/25 -f 195/450/24 175/449/25 173/451/23 -f 194/452/22 173/451/23 171/453/20 -f 193/454/19 171/453/20 169/431/21 -f 218/455/19 219/456/20 217/457/21 -f 220/458/22 221/459/23 219/456/20 -f 222/460/24 223/461/25 221/459/23 -f 224/462/26 225/463/27 223/461/25 -f 226/464/28 227/465/29 225/463/27 -f 228/466/30 229/467/31 227/465/29 -f 230/468/32 231/469/33 229/470/31 -f 232/471/34 233/472/35 231/469/33 -f 234/473/36 235/474/37 233/472/35 -f 236/475/38 237/476/39 235/474/37 -f 238/477/40 239/478/41 237/476/39 -f 240/479/42 217/457/21 239/478/41 -f 104/355/11 93/379/4 81/356/4 -f 103/358/12 104/355/11 92/357/11 -f 102/360/6 103/358/12 91/359/12 -f 101/362/13 102/360/6 90/361/6 -f 100/364/14 101/362/13 89/363/13 -f 99/366/2 100/364/14 88/365/14 -f 98/368/15 99/480/2 87/369/2 -f 97/371/16 98/368/15 86/370/15 -f 96/373/5 97/371/16 85/372/16 -f 95/375/17 96/373/5 84/374/5 -f 94/377/18 95/375/17 83/376/17 -f 93/379/4 94/377/18 82/378/18 -f 146/380/19 148/383/22 147/381/20 -f 148/383/22 150/385/24 149/384/23 -f 150/385/24 152/387/26 151/386/25 -f 152/387/26 154/389/28 153/388/27 -f 154/389/28 156/391/30 155/390/29 -f 156/391/30 158/481/32 157/392/31 -f 158/393/32 160/396/34 159/394/33 -f 160/396/34 162/398/36 161/397/35 -f 162/398/36 164/400/38 163/399/37 -f 164/400/38 166/402/40 165/401/39 -f 166/402/40 168/404/42 167/403/41 -f 168/404/42 146/380/19 145/382/21 -f 170/405/19 172/408/22 206/406/22 -f 172/408/22 174/410/24 207/409/24 -f 174/410/24 176/412/26 208/411/26 -f 176/412/26 178/414/28 209/413/28 -f 178/414/28 180/416/30 210/415/30 -f 180/416/30 182/482/32 211/417/32 -f 182/418/32 184/421/34 212/419/34 -f 184/421/34 186/423/36 213/422/36 -f 186/423/36 188/425/38 214/424/38 -f 188/425/38 190/427/40 215/426/40 -f 190/427/40 192/429/42 216/428/42 -f 192/429/42 170/405/19 205/407/19 -f 204/430/42 193/454/19 169/431/21 -f 203/433/40 204/430/42 191/432/41 -f 202/435/38 203/433/40 189/434/39 -f 201/437/36 202/435/38 187/436/37 -f 200/439/34 201/437/36 185/438/35 -f 199/441/32 200/439/34 183/440/33 -f 198/443/30 199/483/32 181/444/31 -f 197/446/28 198/443/30 179/445/29 -f 196/448/26 197/446/28 177/447/27 -f 195/450/24 196/448/26 175/449/25 -f 194/452/22 195/450/24 173/451/23 -f 193/454/19 194/452/22 171/453/20 -f 218/455/19 220/458/22 219/456/20 -f 220/458/22 222/460/24 221/459/23 -f 222/460/24 224/462/26 223/461/25 -f 224/462/26 226/464/28 225/463/27 -f 226/464/28 228/466/30 227/465/29 -f 228/466/30 230/484/32 229/467/31 -f 230/468/32 232/471/34 231/469/33 -f 232/471/34 234/473/36 233/472/35 -f 234/473/36 236/475/38 235/474/37 -f 236/475/38 238/477/40 237/476/39 -f 238/477/40 240/479/42 239/478/41 -f 240/479/42 218/455/19 217/457/21 +f 122/355/4 123/356/11 121/357/4 +f 124/358/11 125/359/12 123/356/11 +f 126/360/12 127/361/5 125/359/12 +f 128/362/5 129/363/13 127/361/5 +f 130/364/13 131/365/14 129/363/13 +f 132/366/14 133/367/2 131/365/14 +f 134/368/2 135/369/15 133/370/2 +f 136/371/15 137/372/16 135/369/15 +f 138/373/16 139/374/6 137/372/16 +f 140/375/6 141/376/17 139/374/6 +f 142/377/17 143/378/18 141/376/17 +f 144/379/18 121/357/4 143/378/18 +f 146/380/4 179/381/11 178/382/4 +f 148/383/11 180/384/12 179/381/11 +f 150/385/12 181/386/5 180/384/12 +f 152/387/5 213/388/13 181/386/5 +f 154/389/13 214/390/14 213/388/13 +f 156/391/14 215/392/2 214/390/14 +f 158/393/2 216/394/15 215/395/2 +f 160/396/15 182/397/16 216/394/15 +f 162/398/16 183/399/6 182/397/16 +f 164/400/6 184/401/17 183/399/6 +f 166/402/17 185/403/18 184/401/17 +f 168/404/18 178/382/4 185/403/18 +f 177/405/18 145/406/4 167/407/18 +f 212/408/17 167/407/18 165/409/17 +f 176/410/6 165/409/17 163/411/6 +f 175/412/16 163/411/6 161/413/16 +f 211/414/15 161/413/16 159/415/15 +f 174/416/2 159/415/15 157/417/2 +f 173/418/14 157/419/2 155/420/14 +f 210/421/13 155/420/14 153/422/13 +f 172/423/5 153/422/13 151/424/5 +f 171/425/12 151/424/5 149/426/12 +f 170/427/11 149/426/12 147/428/11 +f 169/429/4 147/428/11 145/406/4 +f 187/430/4 188/431/11 186/432/4 +f 189/433/11 190/434/12 188/431/11 +f 191/435/12 192/436/5 190/434/12 +f 193/437/5 194/438/13 192/436/5 +f 195/439/13 196/440/14 194/438/13 +f 197/441/14 198/442/2 196/440/14 +f 199/443/2 200/444/15 198/445/2 +f 201/446/15 202/447/16 200/444/15 +f 203/448/16 204/449/6 202/447/16 +f 205/450/6 206/451/17 204/449/6 +f 207/452/17 208/453/18 206/451/17 +f 209/454/18 186/432/4 208/453/18 +f 185/403/18 169/429/4 177/405/18 +f 184/401/17 177/405/18 212/408/17 +f 183/399/6 212/408/17 176/410/6 +f 182/397/16 176/410/6 175/412/16 +f 216/394/15 175/412/16 211/414/15 +f 215/395/2 211/414/15 174/416/2 +f 214/390/14 174/455/2 173/418/14 +f 213/388/13 173/418/14 210/421/13 +f 181/386/5 210/421/13 172/423/5 +f 180/384/12 172/423/5 171/425/12 +f 179/381/11 171/425/12 170/427/11 +f 178/382/4 170/427/11 169/429/4 +f 122/355/4 124/358/11 123/356/11 +f 124/358/11 126/360/12 125/359/12 +f 126/360/12 128/362/5 127/361/5 +f 128/362/5 130/364/13 129/363/13 +f 130/364/13 132/366/14 131/365/14 +f 132/366/14 134/456/2 133/367/2 +f 134/368/2 136/371/15 135/369/15 +f 136/371/15 138/373/16 137/372/16 +f 138/373/16 140/375/6 139/374/6 +f 140/375/6 142/377/17 141/376/17 +f 142/377/17 144/379/18 143/378/18 +f 144/379/18 122/355/4 121/357/4 +f 146/380/4 148/383/11 179/381/11 +f 148/383/11 150/385/12 180/384/12 +f 150/385/12 152/387/5 181/386/5 +f 152/387/5 154/389/13 213/388/13 +f 154/389/13 156/391/14 214/390/14 +f 156/391/14 158/457/2 215/392/2 +f 158/393/2 160/396/15 216/394/15 +f 160/396/15 162/398/16 182/397/16 +f 162/398/16 164/400/6 183/399/6 +f 164/400/6 166/402/17 184/401/17 +f 166/402/17 168/404/18 185/403/18 +f 168/404/18 146/380/4 178/382/4 +f 177/405/18 169/429/4 145/406/4 +f 212/408/17 177/405/18 167/407/18 +f 176/410/6 212/408/17 165/409/17 +f 175/412/16 176/410/6 163/411/6 +f 211/414/15 175/412/16 161/413/16 +f 174/416/2 211/414/15 159/415/15 +f 173/418/14 174/455/2 157/419/2 +f 210/421/13 173/418/14 155/420/14 +f 172/423/5 210/421/13 153/422/13 +f 171/425/12 172/423/5 151/424/5 +f 170/427/11 171/425/12 149/426/12 +f 169/429/4 170/427/11 147/428/11 +f 187/430/4 189/433/11 188/431/11 +f 189/433/11 191/435/12 190/434/12 +f 191/435/12 193/437/5 192/436/5 +f 193/437/5 195/439/13 194/438/13 +f 195/439/13 197/441/14 196/440/14 +f 197/441/14 199/458/2 198/442/2 +f 199/443/2 201/446/15 200/444/15 +f 201/446/15 203/448/16 202/447/16 +f 203/448/16 205/450/6 204/449/6 +f 205/450/6 207/452/17 206/451/17 +f 207/452/17 209/454/18 208/453/18 +f 209/454/18 187/430/4 186/432/4 +f 185/403/18 178/382/4 169/429/4 +f 184/401/17 185/403/18 177/405/18 +f 183/399/6 184/401/17 212/408/17 +f 182/397/16 183/399/6 176/410/6 +f 216/394/15 182/397/16 175/412/16 +f 215/395/2 216/394/15 211/414/15 +f 214/390/14 215/392/2 174/455/2 +f 213/388/13 214/390/14 173/418/14 +f 181/386/5 213/388/13 210/421/13 +f 180/384/12 181/386/5 172/423/5 +f 179/381/11 180/384/12 171/425/12 +f 178/382/4 179/381/11 170/427/11 From 9085dc5f0c666ef65da42cf29bb4a8ae92ffecce Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 19 May 2025 16:12:10 +0200 Subject: [PATCH 058/181] :b:alls --- CONTRIBUTING.md | 1 + changelog | 48 ++----------------- .../com/hbm/blocks/bomb/BlockCrashedBomb.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 26 ++++++++++ .../weapon/sedna/factory/XFactoryTool.java | 2 + .../machine/TileEntityCondenser.java | 13 +---- 6 files changed, 36 insertions(+), 56 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c900bddfa..8e1acbedf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,6 +13,7 @@ Things you should also avoid include: * duplicate util functions (just use what we have, man) * unused or half finished util functions (for obvious reasons) * half finished or obviously broken features (à la "bob will fix it, i'm sure of it", please don't do that) +* updating the changelog (you're guaranteed to cause a merge conflict with that) ## Test your code diff --git a/changelog b/changelog index 947d5839a..87762a2d6 100644 --- a/changelog +++ b/changelog @@ -1,47 +1,7 @@ -## Added -* Sandbags - * Connect to other sandbags or solid blocks - * Pretty -* Wooden barrier - * Pretty - * Automatically walls off connected solid blocks in addition to the direction it was placed in -* Some other wooden blocks like a roof, ceiling and scaffold -* Flow control pump - * The fluid equivalent to a diode - * Supports up to 10,000mB/t - * Unlike the diode, it is configured via GUI - * Can be shut off with redstone like a fluid valve -* Charge thrower - * A new weapon/tool - * Can fire two tiers of demolition charges or a grappling hook - * The grappling hook's line can be controlled via left and right mouse buttons -* Anti-materiel rifle - * Fires 12.7mm of fun - * x5 magnification scope - ## Changed -* Increased bayonet damage from 5 to 7.5 hearts -* Two numeric redstone over radio signals sent over the same channel will now be added together instead of one signal replacing the other - * This means that reading the fill state of multiple batteries over the same channel should result the combined fill state of all batteries -* Halved base spread of the .22 SMG -* Certain secret guns now have a proper way of being obtained -* Demolition mini nukes now create fire again -* New server configs - * `CRATE_OPEN_HELD` can toggle whether crates can be opened when held - * `CRATE_KEEP_CONTENTS` can toggle whether crates keep their contents when broken - * `ITEM_HAZARD_DROP_TICKRATE` can change the time between ticks for dropped item hazard checks (gunpowder, lithium), default is 2, lowest is 1 -* Duds now have multiple variants - * Dismantling different variants yields different drops - * Magnetic extraction can no longer be performed -* `isItemBlacklisted` on the item hazard checks now employs caching instead of doing a full ore dictionary lookup for every single check, this should make it marginally more performant -* The unfinished trains stuff is no longer listed in the creative tabs +* All compound plates can now also be made in the assembler ## Fixed -* Fixed RoR controller having the wrong recipe -* Either fixed the crate dupe/voiding issues or made them even worse -* Fixed skeletons and pedestals allowing blocks to be placed inside the player -* Fixed artillery shells not playing the explosion animation when directly impacting entities -* Fixed bauxite and malachite vein toggles being on backwards -* Fixed pneumatic tube order settings not saving -* Fixed crash caused by launching ABMs with blank target designators -* Fixed particle source throwing errors when trying to save nonexistant particles +* Fixed all dud variants having the balefire explosion effect +* Fixed demolition charges being able to explode multiple times when hitting entities +* Condensers are no longer affected by post-impact effects, fixing an issue where HP condenser tanks would go into the negatives \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java index 811d2a128..5a2e037b4 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockCrashedBomb.java @@ -83,8 +83,8 @@ public class BlockCrashedBomb extends BlockEnumMulti implements ITileEntityProvi if(!world.isRemote) { - world.setBlockToAir(x, y, z); EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, world.getBlockMetadata(x, y, z)); + world.setBlockToAir(x, y, z); if(type == type.BALEFIRE) { EntityBalefire bf = new EntityBalefire(world); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 935f371ed..b416a49a9 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1075,6 +1075,31 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID) }, 100); + + + /// PLATES /// + makeRecipe(new ComparableStack(ModItems.plate_desh, 4), new AStack[] { + new OreDictStack(DESH.ingot(), 4), + new OreDictStack(ANY_PLASTIC.dust(), 2), + new OreDictStack(DURA.ingot(), 1), + }, 200); + makeRecipe(new ComparableStack(ModItems.plate_bismuth, 1), new AStack[] { + new ComparableStack(ModItems.nugget_bismuth, 2), + new OreDictStack(U238.billet(), 2), + new OreDictStack(NB.dust(), 1), + }, 200); + makeRecipe(new ComparableStack(ModItems.plate_euphemium, 1), new AStack[] { + new OreDictStack(EUPH.ingot(), 4), + new OreDictStack(AT.dust(), 3), + new OreDictStack(BI.dust(), 1), + new OreDictStack(VOLCANIC.gem(), 1), + new ComparableStack(ModItems.ingot_osmiridium), + }, 600); + makeRecipe(new ComparableStack(ModItems.plate_dineutronium, 4), new AStack[] { + new OreDictStack(DNT.ingot(), 4), + new ComparableStack(ModItems.powder_spark_mix, 2), + new OreDictStack(DESH.ingot(), 1), + }, 600); makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.NUKA)), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); makeRecipe(new ComparableStack(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.QUANTUM)), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); @@ -1239,6 +1264,7 @@ public class AssemblerRecipes extends SerializableRecipe { new OreDictStack(DURA.bolt(), 16), new ComparableStack(ModItems.motor, 2) }, 200); + makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 16), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 400); makeRecipe(new ComparableStack(ModBlocks.water_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 16), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeRed", 1)}, 200); makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeBlack", 4)}, 400); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index 8fc728847..f010af5a2 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -71,6 +71,7 @@ public class XFactoryTool { vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); vnt.explode(); + bullet.setDead(); }; public static BiConsumer LAMBDA_MORTAR_CHARGE = (bullet, mop) -> { @@ -82,6 +83,7 @@ public class XFactoryTool { vnt.setPlayerProcessor(new PlayerProcessorStandard()); ExplosionCreator.composeEffectSmall(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord); vnt.explode(); + bullet.setDead(); }; public static void init() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index f29d0c0c1..31eaee685 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -6,7 +6,6 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IConfigurableMachine; @@ -17,7 +16,6 @@ import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IInfoProviderEC; import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.EnumSkyBlock; public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidStandardTransceiver, IInfoProviderEC, IConfigurableMachine, IBufPacketReceiver, IFluidCopiable { @@ -75,15 +73,8 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidS if(convert > 0) this.waterTimer = 20; - - int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); - - if(TomSaveData.forWorld(worldObj).fire > 1e-5 && light > 7) { // Make both steam and water evaporate during firestorms... - tanks[1].setFill(tanks[1].getFill() - convert); - } else { - tanks[1].setFill(tanks[1].getFill() + convert); - } - + + tanks[1].setFill(tanks[1].getFill() + convert); postConvert(convert); } From 5cf209e2c18e133c6e90b662bd0474bb7af38845 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 19 May 2025 21:30:25 +0200 Subject: [PATCH 059/181] guh --- changelog | 5 ++++- gradle.properties | 2 +- src/main/java/com/hbm/config/ServerConfig.java | 4 ++-- src/main/java/com/hbm/handler/HbmKeybinds.java | 2 ++ .../hbm/inventory/recipes/ParticleAcceleratorRecipes.java | 4 ++-- src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ModEventHandlerClient.java | 3 +++ src/main/java/com/hbm/wiaj/GuiWorldInAJar.java | 1 + 9 files changed, 17 insertions(+), 8 deletions(-) diff --git a/changelog b/changelog index 87762a2d6..03770a9c0 100644 --- a/changelog +++ b/changelog @@ -1,7 +1,10 @@ ## Changed * All compound plates can now also be made in the assembler +* Opening crates when held is now disabled by default ## Fixed * Fixed all dud variants having the balefire explosion effect * Fixed demolition charges being able to explode multiple times when hitting entities -* Condensers are no longer affected by post-impact effects, fixing an issue where HP condenser tanks would go into the negatives \ No newline at end of file +* Condensers are no longer affected by post-impact effects, fixing an issue where HP condenser tanks would go into the negatives +* Probably fixed particle accelerator recipe config not working +* Fixed potential dupe bug involving many held inventories \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index a556e9942..66c0a2486 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5334 +mod_build_number=5335 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/config/ServerConfig.java b/src/main/java/com/hbm/config/ServerConfig.java index 0ca1ccdcf..ef358cedf 100644 --- a/src/main/java/com/hbm/config/ServerConfig.java +++ b/src/main/java/com/hbm/config/ServerConfig.java @@ -17,7 +17,7 @@ public class ServerConfig extends RunningConfig { public static ConfigWrapper MINE_NUKE_DAMAGE = new ConfigWrapper(100F); public static ConfigWrapper MINE_NAVAL_DAMAGE = new ConfigWrapper(60F); public static ConfigWrapper TAINT_TRAILS = new ConfigWrapper(false); - public static ConfigWrapper CRATE_OPEN_HELD = new ConfigWrapper(true); + public static ConfigWrapper CRATE_ALLOW_OPEN_HELD = new ConfigWrapper(false); public static ConfigWrapper CRATE_KEEP_CONTENTS = new ConfigWrapper(true); public static ConfigWrapper ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2); @@ -29,7 +29,7 @@ public class ServerConfig extends RunningConfig { configMap.put("MINE_NUKE_DAMAGE", MINE_NUKE_DAMAGE); configMap.put("MINE_NAVAL_DAMAGE", MINE_NAVAL_DAMAGE); configMap.put("TAINT_TRAILS", TAINT_TRAILS); - configMap.put("CRATE_OPEN_HELD", CRATE_OPEN_HELD); + configMap.put("CRATE_ALLOW_OPEN_HELD", CRATE_ALLOW_OPEN_HELD); configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS); configMap.put("ITEM_HAZARD_DROP_TICKRATE", ITEM_HAZARD_DROP_TICKRATE); } diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index 890ef4474..d924a7e34 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -14,6 +14,7 @@ import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.InputEvent.MouseInputEvent; +import net.minecraft.client.Minecraft; import net.minecraft.client.settings.KeyBinding; public class HbmKeybinds { @@ -81,6 +82,7 @@ public class HbmKeybinds { @SubscribeEvent public void keyEvent(KeyInputEvent event) { if (calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only + Minecraft.getMinecraft().thePlayer.closeScreen(); FMLCommonHandler.instance().showGuiScreen(new GUICalculator()); } diff --git a/src/main/java/com/hbm/inventory/recipes/ParticleAcceleratorRecipes.java b/src/main/java/com/hbm/inventory/recipes/ParticleAcceleratorRecipes.java index 36a7b17cc..0d0121fde 100644 --- a/src/main/java/com/hbm/inventory/recipes/ParticleAcceleratorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ParticleAcceleratorRecipes.java @@ -168,10 +168,10 @@ public class ParticleAcceleratorRecipes extends SerializableRecipe { this.recipes.add(new ParticleAcceleratorRecipe( in[0], - in[1], + in.length > 1 ? in[1] : null, momentum, out[0], - out[1] + out.length > 1 ? out[1] : null )); } diff --git a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java index 3608619fa..bed6685d1 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java +++ b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java @@ -30,7 +30,7 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if(!ServerConfig.CRATE_OPEN_HELD.get()) return stack; + if(!ServerConfig.CRATE_ALLOW_OPEN_HELD.get()) return stack; Block block = Block.getBlockFromItem(player.getHeldItem().getItem()); if(block == ModBlocks.mass_storage) return stack; // Genuinely can't figure out how to make this part work, so I'm just not gonna mess with it. diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 20c2f72f6..8946c809d 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 (5334)"; + public static final String VERSION = "1.0.27 BETA (5335)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 4b14ef3e6..354043ab4 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -948,6 +948,7 @@ public class ModEventHandlerClient { if(comp != null) { CanneryBase cannery = Jars.canneries.get(comp); if(cannery != null) { + Minecraft.getMinecraft().thePlayer.closeScreen(); FMLCommonHandler.instance().showGuiScreen(new GuiWorldInAJar(cannery.createScript(), cannery.getName(), cannery.getIcon(), cannery.seeAlso())); } } @@ -959,6 +960,7 @@ public class ModEventHandlerClient { if(stack != null) { stack = stack.copy(); stack.stackSize = 1; + Minecraft.getMinecraft().thePlayer.closeScreen(); FMLCommonHandler.instance().showGuiScreen(new GUIScreenPreview(stack)); } } @@ -1002,6 +1004,7 @@ public class ModEventHandlerClient { } } + Minecraft.getMinecraft().thePlayer.closeScreen(); FMLCommonHandler.instance().showGuiScreen(new GUIScreenWikiRender(stacks.toArray(new ItemStack[0]), prefix, "wiki-block-renders-256", scale)); } } else { diff --git a/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java b/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java index 4236c83ee..ac8fea198 100644 --- a/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java +++ b/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java @@ -216,6 +216,7 @@ public class GuiWorldInAJar extends GuiScreen { if(15 <= mouseX && 39 > mouseX && 15 + 36 * (i + 1) < mouseY && 39 + 36 * (i + 1) >= mouseY) { CanneryBase cannery = seeAlso[i]; mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + Minecraft.getMinecraft().thePlayer.closeScreen(); FMLCommonHandler.instance().showGuiScreen(new GuiWorldInAJar(cannery.createScript(), cannery.getName(), cannery.getIcon(), cannery.seeAlso())); return; } From 4f8c102b68b3e92def0124c0076a51e3c94d4a10 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 20 May 2025 14:21:56 +1000 Subject: [PATCH 060/181] All dupes fixed and _verified_ --- .../java/com/hbm/config/ServerConfig.java | 2 +- .../container/ContainerCrateBase.java | 11 ++-- .../container/ContainerDroneRequester.java | 20 +++--- .../items/block/ItemBlockStorageCrate.java | 63 +++++++++---------- .../java/com/hbm/items/tool/ItemToolBox.java | 12 +++- 5 files changed, 54 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/hbm/config/ServerConfig.java b/src/main/java/com/hbm/config/ServerConfig.java index ef358cedf..43dfc36ae 100644 --- a/src/main/java/com/hbm/config/ServerConfig.java +++ b/src/main/java/com/hbm/config/ServerConfig.java @@ -17,7 +17,7 @@ public class ServerConfig extends RunningConfig { public static ConfigWrapper MINE_NUKE_DAMAGE = new ConfigWrapper(100F); public static ConfigWrapper MINE_NAVAL_DAMAGE = new ConfigWrapper(60F); public static ConfigWrapper TAINT_TRAILS = new ConfigWrapper(false); - public static ConfigWrapper CRATE_ALLOW_OPEN_HELD = new ConfigWrapper(false); + public static ConfigWrapper CRATE_ALLOW_OPEN_HELD = new ConfigWrapper(true); public static ConfigWrapper CRATE_KEEP_CONTENTS = new ConfigWrapper(true); public static ConfigWrapper ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java index 134032bae..ec6309430 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java @@ -10,14 +10,11 @@ import net.minecraft.tileentity.TileEntity; public class ContainerCrateBase extends ContainerBase { - //just there so prev stuff doesnt break - protected IInventory crate = tile; - public ContainerCrateBase(InventoryPlayer invPlayer, IInventory tedf) { super(invPlayer, tedf); tile.openInventory(); } - + @Override public void playerInv(InventoryPlayer invPlayer, int playerInvX, int playerInvY, int playerHotbarY) { for(int i = 0; i < 3; i++) { @@ -35,7 +32,7 @@ public class ContainerCrateBase extends ContainerBase { public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { // prevents the player from moving around the currently open box if(player.inventory.getStackInSlot(player.inventory.currentItem) != null && - player.inventory.getStackInSlot(player.inventory.currentItem).getItem() instanceof ItemBlockStorageCrate && !(this.crate instanceof TileEntity)) { + player.inventory.getStackInSlot(player.inventory.currentItem).getItem() instanceof ItemBlockStorageCrate && !(this.tile instanceof TileEntity)) { if (mode == 2 && button == player.inventory.currentItem) { return null; } @@ -51,7 +48,7 @@ public class ContainerCrateBase extends ContainerBase { super.onContainerClosed(p_75134_1_); tile.closeInventory(); } - + public class SlotPlayerCrate extends SlotNonRetarded { public SlotPlayerCrate(IInventory inventory, int id, int x, int y) { @@ -66,7 +63,7 @@ public class ContainerCrateBase extends ContainerBase { public boolean canTakeStack(EntityPlayer player) { if(player.inventory.currentItem == this.getSlotIndex() && // If this slot is the current held slot. this.getStack() != null && this.getStack().getItem() instanceof ItemBlockStorageCrate && // If the slot contains a storage crate. - player.openContainer instanceof ContainerCrateBase && !(ContainerCrateBase.this.crate instanceof TileEntity)) // If the player is currently inside a crate container. + player.openContainer instanceof ContainerCrateBase && !(ContainerCrateBase.this.tile instanceof TileEntity)) // If the player is currently inside a crate container. return false; return super.canTakeStack(player); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java index 7d1a6775d..bdc788c44 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java @@ -39,11 +39,11 @@ public class ContainerDroneRequester extends ContainerCrateBase { if(par2 < 9) return null; //ignore filters - if(par2 <= crate.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + if(par2 <= tile.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, tile.getSizeInventory(), this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 9, crate.getSizeInventory(), false)) { + } else if(!this.mergeItemStack(var5, 9, tile.getSizeInventory(), false)) { return null; } @@ -75,25 +75,25 @@ public class ContainerDroneRequester extends ContainerCrateBase { ItemStack ret = null; ItemStack held = player.inventory.getItemStack(); - TileEntityDroneRequester requester = (TileEntityDroneRequester) crate; - + TileEntityDroneRequester requester = (TileEntityDroneRequester) tile; + if(slot.getHasStack()) ret = slot.getStack().copy(); - + if(button == 1 && mode == 0 && slot.getHasStack()) { requester.nextMode(index); return ret; - + } else { slot.putStack(held != null ? held.copy() : null); - + if(slot.getHasStack()) { slot.getStack().stackSize = 1; } - + slot.onSlotChanged(); requester.matcher.initPatternStandard(requester.getWorldObj(), slot.getStack(), index); - + return ret; } } diff --git a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java index bed6685d1..94d61c10f 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java +++ b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java @@ -28,21 +28,27 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider super(block); } + // IF WE PUT ROCKS IN THE SHAPE OF A RUNWAY GOD WILL GIVE US HIGH-FRUCTOSE CORN SYRUP + @Override + public int getMaxItemUseDuration(ItemStack stack) { + return 1; + } + @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if(!ServerConfig.CRATE_ALLOW_OPEN_HELD.get()) return stack; - + Block block = Block.getBlockFromItem(player.getHeldItem().getItem()); if(block == ModBlocks.mass_storage) return stack; // Genuinely can't figure out how to make this part work, so I'm just not gonna mess with it. if(!world.isRemote && stack.stackSize == 1) { - if (stack.stackTagCompound != null && stack.stackTagCompound.hasKey("lock")) { - for (ItemStack item : player.inventory.mainInventory) { - + if(stack.stackTagCompound != null && stack.stackTagCompound.hasKey("lock")) { + for(ItemStack item : player.inventory.mainInventory) { + if(item == null) continue; // Skip if no item. if(!(item.getItem() instanceof ItemKey)) continue; // Skip if item isn't a key. if(item.stackTagCompound == null) continue; // Skip if there is no NBT (wouldn't open it anyway). - if (item.stackTagCompound.getInteger("pins") == stack.stackTagCompound.getInteger("lock")) { // Check if pins are equal (if it can open it) + if(item.stackTagCompound.getInteger("pins") == stack.stackTagCompound.getInteger("lock")) { // Check if pins are equal (if it can open it) TileEntityCrateBase.spawnSpiders(player, world, stack); player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); break; @@ -83,20 +89,16 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider } public static class InventoryCrate extends ItemInventory { - - public int heldIndex; - - public InventoryCrate(EntityPlayer player, ItemStack crate) { + public InventoryCrate(EntityPlayer player, ItemStack crate) { this.player = player; this.target = crate; - this.heldIndex = player.inventory.currentItem; - + this.slots = new ItemStack[this.getSizeInventory()]; if(target.stackTagCompound == null) { target.stackTagCompound = new NBTTagCompound(); } - + for(int i = 0; i < slots.length; i++) this.slots[i] = ItemStack.loadItemStackFromNBT(target.stackTagCompound.getCompoundTag("slot" + i)); } @@ -129,42 +131,35 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider } @Override - public void markDirty() { // I HATE THIS SO MUCH - NBTTagCompound nbt = new NBTTagCompound(); + public void markDirty() { // You have been blessed by the unfuck + + // Preserve existing NBT so we keep lock data and piders + NBTTagCompound nbt = target.stackTagCompound != null ? target.stackTagCompound : new NBTTagCompound(); int invSize = this.getSizeInventory(); for(int i = 0; i < invSize; i++) { ItemStack stack = this.getStackInSlot(i); - if(stack == null) continue; + if(stack == null) { + nbt.removeTag("slot" + i); + continue; + } NBTTagCompound slot = new NBTTagCompound(); stack.writeToNBT(slot); nbt.setTag("slot" + i, slot); } - /*if(target.stackTagCompound != null) { // yes it's a bit jank, but it wants to clear otherwise so... - if(target.stackTagCompound.hasKey("lock")) nbt.setInteger("lock", target.stackTagCompound.getInteger("lock")); - if(target.stackTagCompound.hasKey("lockMod")) nbt.setDouble("lockMod", target.stackTagCompound.getDouble("lockMod")); - if(target.stackTagCompound.hasKey("spiders")) nbt.setBoolean("spiders", target.stackTagCompound.getBoolean("spiders")); // fuck you!! - }*/ - - // i have completely given up - if(player.getHeldItem() != null && player.getHeldItem().getItem() == this.target.getItem() && player.inventory.currentItem == this.heldIndex) { - player.getHeldItem().setTagCompound(nbt); - } + target.setTagCompound(nbt); } - + @Override public void closeInventory() { - player.worldObj.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:block.crateClose", 1.0F, 0.8F); - - /* - * realistically, we only need one NBT size check (and we only *want* one because CompressedStreamTools is expensive) so we do that part only when closing - */ - if(player.getHeldItem() != null && player.getHeldItem().getItem() == this.target.getItem() && player.inventory.currentItem == this.heldIndex) { - player.getHeldItem().setTagCompound(checkNBT(player.getHeldItem().getTagCompound())); - } + super.closeInventory(); + + // Check for 6kb item vomit + target.setTagCompound(checkNBT(target.getTagCompound())); + player.inventoryContainer.detectAndSendChanges(); } } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolBox.java b/src/main/java/com/hbm/items/tool/ItemToolBox.java index 9739a6d26..9707e09d7 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolBox.java +++ b/src/main/java/com/hbm/items/tool/ItemToolBox.java @@ -10,6 +10,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.util.ItemStackUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -35,6 +36,11 @@ public class ItemToolBox extends Item implements IGUIProvider { this.setMaxStackSize(1); } + @Override + public int getMaxItemUseDuration(ItemStack stack) { + return 1; + } + @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister iconRegister) { @@ -285,9 +291,11 @@ public class ItemToolBox extends Item implements IGUIProvider { @Override public void closeInventory() { - this.target.getTagCompound().removeTag("isOpen"); - this.player.inventory.setInventorySlotContents(this.player.inventory.currentItem, this.target); super.closeInventory(); + + this.target.getTagCompound().removeTag("isOpen"); + this.target.getTagCompound().setInteger("rand", player.worldObj.rand.nextInt()); // a boolean changing isn't sufficient to detect the change + player.inventoryContainer.detectAndSendChanges(); } @Override From 4baf5e7c676cce5b19a4fd38aea38ddae0423ac3 Mon Sep 17 00:00:00 2001 From: George Paton Date: Tue, 20 May 2025 14:26:14 +1000 Subject: [PATCH 061/181] don't open conveyor sorter GUI when placing conveyors --- src/main/java/com/hbm/blocks/network/CraneRouter.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/network/CraneRouter.java b/src/main/java/com/hbm/blocks/network/CraneRouter.java index d6f663817..af4db88bb 100644 --- a/src/main/java/com/hbm/blocks/network/CraneRouter.java +++ b/src/main/java/com/hbm/blocks/network/CraneRouter.java @@ -7,6 +7,7 @@ import api.hbm.conveyor.IEnterableBlock; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; +import com.hbm.items.tool.ItemConveyorWand; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.module.ModulePatternMatcher; @@ -61,7 +62,9 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemConveyorWand) { + return false; + } else if(world.isRemote) { return true; } else if(!player.isSneaking()) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); From a8829245f4b39934a020f65569213defe3cfbb91 Mon Sep 17 00:00:00 2001 From: Justnightheron Date: Tue, 20 May 2025 14:08:40 +0800 Subject: [PATCH 062/181] juice --- src/main/resources/assets/hbm/lang/zh_CN.lang | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 3232fb3c9..64eea3277 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -6060,8 +6060,11 @@ item.ammo_standard.ct_mortar_charge.name=é‡åž‹ç‚¸è¯åŒ… item.gun_charge_thrower.name=ç‚¸è¯æŠ•æŽ·å™¨ tile.sandbags.name=沙袋 tile.wood_barrier.name=æœ¨åˆ¶å›´æ  -item.ammo_standard.nuke_balefire.name=Mini Nuke, Balefire Egg +item.ammo_standard.nuke_balefire.name=迷你野ç«ç‚¸å¼¹ item.gun_minigun_dual.name=åŒè”转管机枪 tile.wood_structure.ceiling.name=木质顶棚 -tile.wood_structure.roof.name=æœ¨è´¨é¡¶æ¿ +tile.wood_structure.roof.name=æœ¨è´¨åœ°æ¿ tile.wood_structure.scaffold.name=木质脚手架 +item.gun_amat.name=åå™¨ææ­¥æžª +tile.fluid_pump.name=æµé‡æŽ§åˆ¶æ³µ +tile.vine_phosphor.large.name=磷藤蔓 From ce8099d4aa3d5f1b7f27a8f5995c981f853b1f9d Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 20 May 2025 15:55:27 +0200 Subject: [PATCH 063/181] the sloplands --- changelog | 15 +++---- .../java/com/hbm/config/ServerConfig.java | 4 +- .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../items/block/ItemBlockStorageCrate.java | 2 +- .../java/com/hbm/items/tool/ItemToolBox.java | 1 - .../bomb/TileEntityCrashedBomb.java | 39 ++++++++++++++++-- .../machine/TileEntityMachineArcWelder.java | 11 ++++- .../TileEntityMachineSolderingStation.java | 11 ++++- .../textures/gui/processing/gui_chemplant.png | Bin 0 -> 3769 bytes 9 files changed, 65 insertions(+), 20 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_chemplant.png diff --git a/changelog b/changelog index 03770a9c0..878ed0d32 100644 --- a/changelog +++ b/changelog @@ -1,10 +1,11 @@ ## Changed -* All compound plates can now also be made in the assembler -* Opening crates when held is now disabled by default +* Updated chinese localiation +* Duds now have a radioactive AoE effect around them based on type +* HPS is no longer tagged as radioactive and no longer requires hazardous materials tanks to store + * Somehow, these meaningless tags triggered people exceptionally hard. Go annoy someone else. +* Solderers and arc welders can now use overdrive upgrades + * Do note that processing speed rises linearly, but power draw rises exponentially ## Fixed -* Fixed all dud variants having the balefire explosion effect -* Fixed demolition charges being able to explode multiple times when hitting entities -* Condensers are no longer affected by post-impact effects, fixing an issue where HP condenser tanks would go into the negatives -* Probably fixed particle accelerator recipe config not working -* Fixed potential dupe bug involving many held inventories \ No newline at end of file +* Crates? Maybe? +* Fixed conveyor placer not being usable on the conveyor sorter \ No newline at end of file diff --git a/src/main/java/com/hbm/config/ServerConfig.java b/src/main/java/com/hbm/config/ServerConfig.java index 43dfc36ae..0ca1ccdcf 100644 --- a/src/main/java/com/hbm/config/ServerConfig.java +++ b/src/main/java/com/hbm/config/ServerConfig.java @@ -17,7 +17,7 @@ public class ServerConfig extends RunningConfig { public static ConfigWrapper MINE_NUKE_DAMAGE = new ConfigWrapper(100F); public static ConfigWrapper MINE_NAVAL_DAMAGE = new ConfigWrapper(60F); public static ConfigWrapper TAINT_TRAILS = new ConfigWrapper(false); - public static ConfigWrapper CRATE_ALLOW_OPEN_HELD = new ConfigWrapper(true); + public static ConfigWrapper CRATE_OPEN_HELD = new ConfigWrapper(true); public static ConfigWrapper CRATE_KEEP_CONTENTS = new ConfigWrapper(true); public static ConfigWrapper ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2); @@ -29,7 +29,7 @@ public class ServerConfig extends RunningConfig { configMap.put("MINE_NUKE_DAMAGE", MINE_NUKE_DAMAGE); configMap.put("MINE_NAVAL_DAMAGE", MINE_NAVAL_DAMAGE); configMap.put("TAINT_TRAILS", TAINT_TRAILS); - configMap.put("CRATE_ALLOW_OPEN_HELD", CRATE_ALLOW_OPEN_HELD); + configMap.put("CRATE_OPEN_HELD", CRATE_OPEN_HELD); configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS); configMap.put("ITEM_HAZARD_DROP_TICKRATE", ITEM_HAZARD_DROP_TICKRATE); } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index d4c52f1cb..64a23a86b 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -336,7 +336,7 @@ public class Fluids { BLOOD_HOT = new FluidType("BLOOD_HOT", 0xF22419, 3, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).setTemp(666); //it's funny because it's the satan number SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFFFFFF, 0x131313)).addTraits(GASEOUS); OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); - RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F)); + RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(50)); CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25)); HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_OIL).addContainers(new CD_Canister(0x513F39)); REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, P_FUEL).addContainers(new CD_Canister(0xD180D6)); diff --git a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java index 94d61c10f..cf24e36c3 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java +++ b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java @@ -36,7 +36,7 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if(!ServerConfig.CRATE_ALLOW_OPEN_HELD.get()) return stack; + if(!ServerConfig.CRATE_OPEN_HELD.get()) return stack; Block block = Block.getBlockFromItem(player.getHeldItem().getItem()); if(block == ModBlocks.mass_storage) return stack; // Genuinely can't figure out how to make this part work, so I'm just not gonna mess with it. diff --git a/src/main/java/com/hbm/items/tool/ItemToolBox.java b/src/main/java/com/hbm/items/tool/ItemToolBox.java index 9707e09d7..8be7104ea 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolBox.java +++ b/src/main/java/com/hbm/items/tool/ItemToolBox.java @@ -10,7 +10,6 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.util.ItemStackUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java index cf70bb5f8..8e70048c8 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCrashedBomb.java @@ -1,16 +1,47 @@ package com.hbm.tileentity.bomb; +import java.util.List; +import java.util.function.BiConsumer; + +import com.hbm.blocks.bomb.BlockCrashedBomb.EnumDudType; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.EnumUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; public class TileEntityCrashedBomb extends TileEntity { @Override - public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 2 == 0) { + EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, this.getBlockMetadata()); + + if(type == type.BALEFIRE) affectEntities((entity, intensity) -> { ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1F * intensity); }, 15D); + if(type == type.NUKE) affectEntities((entity, intensity) -> { ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, 0.25F * intensity); }, 10D); + if(type == type.SALTED) affectEntities((entity, intensity) -> { ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, 0.5F * intensity); }, 10D); + } + } + } - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { return 65536.0D; } + public void affectEntities(BiConsumer effect, double range) { + List list = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(range, range, range)); + for(EntityLivingBase entity : list) { + double dist = Math.sqrt(getDistanceFrom(entity.posX, entity.posY + entity.height / 2, entity.posZ)); + if(dist > range) continue; + float intensity = (float) (1D - dist / range); + effect.accept(entity, intensity); + } + } + + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } + @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index 605cd06db..aa9f9736f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -18,6 +18,7 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.*; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; @@ -92,14 +93,16 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements upgradeManager.checkSlots(this, slots, 6, 7); int redLevel = upgradeManager.getLevel(UpgradeType.SPEED); int blueLevel = upgradeManager.getLevel(UpgradeType.POWER); + int blackLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE); if(recipe != null) { this.processTime = recipe.duration - (recipe.duration * redLevel / 6) + (recipe.duration * blueLevel / 3); this.consumption = recipe.consumption + (recipe.consumption * redLevel) - (recipe.consumption * blueLevel / 6); + this.consumption *= Math.pow(2, blackLevel); intendedMaxPower = recipe.consumption * 20; if(canProcess(recipe)) { - this.progress++; + this.progress += (1 + blackLevel); this.power -= this.consumption; if(progress >= processTime) { @@ -369,7 +372,7 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements @Override public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { - return type == UpgradeType.SPEED || type == UpgradeType.POWER; + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; } @Override @@ -383,6 +386,9 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 100 / 6) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 100 / 3) + "%")); } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } } @Override @@ -390,6 +396,7 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements HashMap upgrades = new HashMap<>(); upgrades.put(UpgradeType.SPEED, 3); upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); return upgrades; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java index 995b449e9..5515a816d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java @@ -22,6 +22,7 @@ import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; @@ -98,14 +99,16 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp upgradeManager.checkSlots(this, slots, 9, 10); int redLevel = upgradeManager.getLevel(UpgradeType.SPEED); int blueLevel = upgradeManager.getLevel(UpgradeType.POWER); + int blackLevel = upgradeManager.getLevel(UpgradeType.OVERDRIVE); if(recipe != null) { this.processTime = recipe.duration - (recipe.duration * redLevel / 6) + (recipe.duration * blueLevel / 3); this.consumption = recipe.consumption + (recipe.consumption * redLevel) - (recipe.consumption * blueLevel / 6); + this.consumption *= Math.pow(2, blackLevel); intendedMaxPower = recipe.consumption * 20; if(canProcess(recipe)) { - this.progress++; + this.progress += (1 + blackLevel); this.power -= this.consumption; if(progress >= processTime) { @@ -360,7 +363,7 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp @Override public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { - return type == UpgradeType.SPEED || type == UpgradeType.POWER; + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; } @Override @@ -374,6 +377,9 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 100 / 6) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 100 / 3) + "%")); } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } } @Override @@ -381,6 +387,7 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp HashMap upgrades = new HashMap<>(); upgrades.put(UpgradeType.SPEED, 3); upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 3); return upgrades; } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_chemplant.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_chemplant.png new file mode 100644 index 0000000000000000000000000000000000000000..8d24bb62fe9c7af4076f2a0b2cf7518dd3d57d97 GIT binary patch literal 3769 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 e_ Date: Tue, 20 May 2025 20:01:36 +0200 Subject: [PATCH 064/181] thank you doctor, no more nose blood --- changelog | 3 ++- gradle.properties | 2 +- .../inventory/material/MatDistribution.java | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../textures/gui/processing/gui_chemplant.png | Bin 3769 -> 4015 bytes 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/changelog b/changelog index 878ed0d32..4182f0d03 100644 --- a/changelog +++ b/changelog @@ -8,4 +8,5 @@ ## Fixed * Crates? Maybe? -* Fixed conveyor placer not being usable on the conveyor sorter \ No newline at end of file +* Fixed conveyor placer not being usable on the conveyor sorter +* Fixed crucible trying to autogen recipes for nonexistant nether thorium ore \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 66c0a2486..51b6e2cca 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5335 +mod_build_number=5336 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 1fd69c00c..6daea2e40 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -76,7 +76,7 @@ public class MatDistribution extends SerializableRecipe { registerOre(OreDictManager.COAL.ore(), MAT_CARBON, GEM.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.GOLD.ore(), MAT_GOLD, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.U.ore(), MAT_URANIUM, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); - for(String ore : OreDictManager.TH232.all(MaterialShapes.ORE)) registerOre(ore, MAT_THORIUM, INGOT.q(2), MAT_URANIUM, NUGGET.q(3), MAT_STONE, QUART.q(1)); + for(String ore : OreDictManager.TH232.all(MaterialShapes.ONLY_ORE)) registerOre(ore, MAT_THORIUM, INGOT.q(2), MAT_URANIUM, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.CU.ore(), MAT_COPPER, INGOT.q(2), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.PB.ore(), MAT_LEAD, INGOT.q(2), MAT_GOLD, NUGGET.q(1), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.BE.ore(), MAT_BERYLLIUM, INGOT.q(2), MAT_STONE, QUART.q(1)); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 8946c809d..b7169b68e 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 (5335)"; + public static final String VERSION = "1.0.27 BETA (5336)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_chemplant.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_chemplant.png index 8d24bb62fe9c7af4076f2a0b2cf7518dd3d57d97..824dd1ce99ffdf47214b6494f3055d833c8bcd01 100644 GIT binary patch literal 4015 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 e_ Date: Wed, 21 May 2025 00:56:30 +0300 Subject: [PATCH 065/181] Add some null safety In my survival playthrough, I got a crash when a tool with AOE broke mid-operation. This should fix it --- .../java/com/hbm/items/tool/ItemToolAbility.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index d12fe3cfb..6fd951e9e 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -297,6 +297,10 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro EntityPlayerMP player = (EntityPlayerMP) playerEntity; ItemStack stack = player.getHeldItem(); + if (stack == null) { + return; + } + Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); @@ -485,7 +489,7 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro public Configuration getConfiguration(ItemStack stack) { Configuration config = new Configuration(); - if(!stack.hasTagCompound() || !stack.stackTagCompound.hasKey("ability") || !stack.stackTagCompound.hasKey("abilityPresets")) { + if(stack == null || !stack.hasTagCompound() || !stack.stackTagCompound.hasKey("ability") || !stack.stackTagCompound.hasKey("abilityPresets")) { config.reset(availableAbilities); return config; } @@ -496,8 +500,13 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro } public void setConfiguration(ItemStack stack, Configuration config) { - if(!stack.hasTagCompound()) + if (stack == null) { + return; + } + + if (!stack.hasTagCompound()) { stack.stackTagCompound = new NBTTagCompound(); + } config.writeToNBT(stack.stackTagCompound); } From 716e4297725cd8b22efa89242dd577571433bd62 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 21 May 2025 16:29:18 +0200 Subject: [PATCH 066/181] the rim flappe on a bongfish --- changelog | 18 +- .../inventory/gui/GUIScreenToolAbility.java | 634 +- .../com/hbm/items/tool/ItemGuideBook.java | 2 +- .../com/hbm/items/tool/ItemToolAbility.java | 2 - .../java/com/hbm/main/CraftingManager.java | 1 - .../hbm/models/weapons/launch_pad_erector.obj | 33969 ++++++---------- .../textures/blocks/armor_table_bottom.png | Bin 307 -> 238 bytes .../hbm/textures/blocks/armor_table_side.png | Bin 334 -> 308 bytes .../hbm/textures/blocks/armor_table_top.png | Bin 324 -> 307 bytes .../hbm/textures/blocks/gun_table_bottom.png | Bin 203 -> 264 bytes .../hbm/textures/blocks/gun_table_side.png | Bin 261 -> 353 bytes .../hbm/textures/blocks/gun_table_top.png | Bin 289 -> 417 bytes 12 files changed, 13419 insertions(+), 21207 deletions(-) diff --git a/changelog b/changelog index 4182f0d03..3520d9bca 100644 --- a/changelog +++ b/changelog @@ -1,12 +1,10 @@ ## Changed -* Updated chinese localiation -* Duds now have a radioactive AoE effect around them based on type -* HPS is no longer tagged as radioactive and no longer requires hazardous materials tanks to store - * Somehow, these meaningless tags triggered people exceptionally hard. Go annoy someone else. -* Solderers and arc welders can now use overdrive upgrades - * Do note that processing speed rises linearly, but power draw rises exponentially +* The RBMK console's grid can now be rotated using a screwdriver +* Tool abilities have changed + * Righ-clicking while holding ALT now opens a configuration window + * The configuration window allows creation of tool presets + * Area and block abilities can now be toggled independently from each other. For example, the vein miner ability can be combined with silk touch + * Clicking on the same ability allows switching between levels +* Updated textures for the armor and gun modification tables -## Fixed -* Crates? Maybe? -* Fixed conveyor placer not being usable on the conveyor sorter -* Fixed crucible trying to autogen recipes for nonexistant nether thorium ore \ No newline at end of file +## Fixed \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java index 0815d6aec..18db58099 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenToolAbility.java @@ -16,403 +16,387 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTItemControlPacket; -import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class GUIScreenToolAbility extends GuiScreen { - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/tool/gui_tool_ability.png"); - - protected int guiLeft; - protected int guiTop; - protected int xSize; - protected int ySize; - protected int insetWidth; + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/tool/gui_tool_ability.png"); - public static class AbilityInfo { - public IBaseAbility ability; - public int textureU, textureV; + protected int guiLeft; + protected int guiTop; + protected int xSize; + protected int ySize; + protected int insetWidth; - public AbilityInfo(IBaseAbility ability, int textureU, int textureV) { - this.ability = ability; - this.textureU = textureU; - this.textureV = textureV; - } - } + public static class AbilityInfo { + public IBaseAbility ability; + public int textureU, textureV; - public static final List abilitiesArea = new ArrayList<>(); - public static final List abilitiesHarvest = new ArrayList<>(); + public AbilityInfo(IBaseAbility ability, int textureU, int textureV) { + this.ability = ability; + this.textureU = textureU; + this.textureV = textureV; + } + } - static { - abilitiesArea.add(new AbilityInfo(IToolAreaAbility.NONE, 0, 91)); - abilitiesArea.add(new AbilityInfo(IToolAreaAbility.RECURSION, 32, 91)); - abilitiesArea.add(new AbilityInfo(IToolAreaAbility.HAMMER, 64, 91)); - abilitiesArea.add(new AbilityInfo(IToolAreaAbility.EXPLOSION, 96, 91)); - - abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.NONE, 0, 107)); - abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SILK, 32, 107)); - abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.LUCK, 64, 107)); - abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SMELTER, 96, 107)); - abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SHREDDER, 128, 107)); - abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.CENTRIFUGE, 160, 107)); - abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.CRYSTALLIZER, 192, 107)); - abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.MERCURY, 224, 107)); - } + public static final List abilitiesArea = new ArrayList<>(); + public static final List abilitiesHarvest = new ArrayList<>(); - protected ItemStack toolStack; - protected AvailableAbilities availableAbilities; - protected ItemToolAbility.Configuration config; - - protected int hoverIdxHarvest = -1; - protected int hoverIdxArea = -1; - protected int hoverIdxExtraBtn = -1; - - public GUIScreenToolAbility(AvailableAbilities availableAbilities) { - super(); - - this.availableAbilities = availableAbilities; - - this.xSize = 186; // Note: increased dynamically - this.ySize = 76; + static { + abilitiesArea.add(new AbilityInfo(IToolAreaAbility.NONE, 0, 91)); + abilitiesArea.add(new AbilityInfo(IToolAreaAbility.RECURSION, 32, 91)); + abilitiesArea.add(new AbilityInfo(IToolAreaAbility.HAMMER, 64, 91)); + abilitiesArea.add(new AbilityInfo(IToolAreaAbility.EXPLOSION, 96, 91)); - this.insetWidth = 20 * Math.max(abilitiesArea.size() - 4, abilitiesHarvest.size() - 8); - this.xSize += insetWidth; - } + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.NONE, 0, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SILK, 32, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.LUCK, 64, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SMELTER, 96, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.SHREDDER, 128, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.CENTRIFUGE, 160, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.CRYSTALLIZER, 192, 107)); + abilitiesHarvest.add(new AbilityInfo(IToolHarvestAbility.MERCURY, 224, 107)); + } - @Override - public void initGui() { - this.toolStack = this.mc.thePlayer.getHeldItem(); + protected ItemStack toolStack; + protected AvailableAbilities availableAbilities; + protected ItemToolAbility.Configuration config; - if(this.toolStack == null) { - doClose(); - } + protected int hoverIdxHarvest = -1; + protected int hoverIdxArea = -1; + protected int hoverIdxExtraBtn = -1; - this.config = ((ItemToolAbility) this.toolStack.getItem()).getConfiguration(this.toolStack); - - guiLeft = (width - xSize) / 2; - guiTop = (height - ySize) / 2; - } + public GUIScreenToolAbility(AvailableAbilities availableAbilities) { + super(); - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - this.drawDefaultBackground(); + this.availableAbilities = availableAbilities; - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + this.xSize = 186; // Note: increased dynamically + this.ySize = 76; - // Draw window background - drawStretchedRect(guiLeft, guiTop, 0, 0, xSize, xSize - insetWidth, ySize, 74, 87); - - // Draw the switches - ToolPreset activePreset = config.getActivePreset(); - hoverIdxArea = drawSwitches(abilitiesArea, activePreset.areaAbility, activePreset.areaAbilityLevel, guiLeft + 15, guiTop + 25, mouseX, mouseY); - hoverIdxHarvest = drawSwitches(abilitiesHarvest, activePreset.harvestAbility, activePreset.harvestAbilityLevel, guiLeft + 15, guiTop + 45, mouseX, mouseY); + this.insetWidth = 20 * Math.max(abilitiesArea.size() - 4, abilitiesHarvest.size() - 8); + this.xSize += insetWidth; + } - // Draw preset indicator - drawNumber(config.currentPreset + 1, guiLeft + insetWidth + 115, guiTop + 25); - drawNumber(config.presets.size(), guiLeft + insetWidth + 149, guiTop + 25); + @Override + public void initGui() { + this.toolStack = this.mc.thePlayer.getHeldItem(); - // Draw extra buttons hover highlights - int extraBtnsX = guiLeft + xSize - 86; - - hoverIdxExtraBtn = -1; - for (int i = 0; i < 7; ++i) { - if (isInAABB(mouseX, mouseY, extraBtnsX + i * 11, guiTop + 11, 9, 9)) { - hoverIdxExtraBtn = i; - drawTexturedModalRect(extraBtnsX + i * 11, guiTop + 11, 193 + i * 9, 0, 9, 9); - } - } + if(this.toolStack == null) { + doClose(); + } - // Draw tooltip - String tooltipValue = ""; + this.config = ((ItemToolAbility) this.toolStack.getItem()).getConfiguration(this.toolStack); - if (hoverIdxArea != -1) { - int level = 0; - if (abilitiesArea.get(hoverIdxArea).ability == activePreset.areaAbility) { - level = activePreset.areaAbilityLevel; - } - tooltipValue = abilitiesArea.get(hoverIdxArea).ability.getFullName(level); - } else if (hoverIdxHarvest != -1) { - int level = 0; - if (abilitiesHarvest.get(hoverIdxHarvest).ability == activePreset.harvestAbility) { - level = activePreset.harvestAbilityLevel; - } - tooltipValue = abilitiesHarvest.get(hoverIdxHarvest).ability.getFullName(level); - } else if (hoverIdxExtraBtn != -1) { - switch (hoverIdxExtraBtn) { - case 0: tooltipValue = "Reset all presets"; break; - case 1: tooltipValue = "Delete current preset"; break; - case 2: tooltipValue = "Add new preset"; break; - case 3: tooltipValue = "Select first preset"; break; - case 4: tooltipValue = "Next preset"; break; - case 5: tooltipValue = "Previous preset"; break; - case 6: tooltipValue = "Close window"; break; - } - } + guiLeft = (width - xSize) / 2; + guiTop = (height - ySize) / 2; + } - if (!tooltipValue.isEmpty()) { - int tooltipWidth = Math.max(6, fontRendererObj.getStringWidth(tooltipValue)); - int tooltipX = guiLeft + xSize / 2 - tooltipWidth / 2; - int tooltipY = guiTop + ySize + 1 + 4; - drawStretchedRect(tooltipX - 5, tooltipY - 4, 0, 76, tooltipWidth + 10, 186, 15, 3, 3); - fontRendererObj.drawString(tooltipValue, tooltipX, tooltipY, 0xffffffff); - } - } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); - protected void drawStretchedRect(int x, int y, int u, int v, int realWidth, int width, int height, int keepLeft, int keepRight) { - int midWidth = width - keepLeft - keepRight; - int realMidWidth = realWidth - keepLeft - keepRight; - drawTexturedModalRect(x, y, u, v, keepLeft, height); - for (int i = 0; i < realMidWidth; i += midWidth) { - drawTexturedModalRect(x + keepLeft + i, y, u + keepLeft, v, Math.min(midWidth, realMidWidth - i), height); - } - drawTexturedModalRect(x + keepLeft + realMidWidth, y, u + keepLeft + midWidth, v, keepRight, height); - } + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - protected int drawSwitches(List abilities, IBaseAbility selectedAbility, int selectedLevel, int x, int y, int mouseX, int mouseY) { - int hoverIdx = -1; + // Draw window background + drawStretchedRect(guiLeft, guiTop, 0, 0, xSize, xSize - insetWidth, ySize, 74, 87); - for (int i = 0; i < abilities.size(); ++i) { - AbilityInfo abilityInfo = abilities.get(i); - boolean available = abilityAvailable(abilityInfo.ability); - boolean selected = abilityInfo.ability == selectedAbility; + // Draw the switches + ToolPreset activePreset = config.getActivePreset(); + hoverIdxArea = drawSwitches(abilitiesArea, activePreset.areaAbility, activePreset.areaAbilityLevel, guiLeft + 15, guiTop + 25, mouseX, mouseY); + hoverIdxHarvest = drawSwitches(abilitiesHarvest, activePreset.harvestAbility, activePreset.harvestAbilityLevel, guiLeft + 15, guiTop + 45, mouseX, mouseY); - // Draw switch - drawTexturedModalRect(x + 20 * i, y, abilityInfo.textureU + (available ? 16 : 0), abilityInfo.textureV, 16, 16); - - // Draw level LEDs - if (abilityInfo.ability.levels() > 1) { - int level = 0; + // Draw preset indicator + drawNumber(config.currentPreset + 1, guiLeft + insetWidth + 115, guiTop + 25); + drawNumber(config.presets.size(), guiLeft + insetWidth + 149, guiTop + 25); - if (selected) { - level = selectedLevel + 1; - } + // Draw extra buttons hover highlights + int extraBtnsX = guiLeft + xSize - 86; - // Note: only visual effect for the LEDs - // int maxLevel = Math.min(abilityInfo.ability.levels(), 5); - int maxLevel = 5; - - if (level > 10 || level < 0) { - // All-red LEDs for invalid levels - level = -1; - } + hoverIdxExtraBtn = -1; + for(int i = 0; i < 7; ++i) { + if(isInAABB(mouseX, mouseY, extraBtnsX + i * 11, guiTop + 11, 9, 9)) { + hoverIdxExtraBtn = i; + drawTexturedModalRect(extraBtnsX + i * 11, guiTop + 11, 193 + i * 9, 0, 9, 9); + } + } - drawTexturedModalRect(x + 20 * i + 17, y + 1, 188 + level * 2, maxLevel * 14, 2, 14); - } + // Draw tooltip + String tooltipValue = ""; - boolean isHovered = isInAABB(mouseX, mouseY, x + 20 * i, y, 16, 16); + if(hoverIdxArea != -1) { + int level = 0; + if(abilitiesArea.get(hoverIdxArea).ability == activePreset.areaAbility) { + level = activePreset.areaAbilityLevel; + } + tooltipValue = abilitiesArea.get(hoverIdxArea).ability.getFullName(level); + } else if(hoverIdxHarvest != -1) { + int level = 0; + if(abilitiesHarvest.get(hoverIdxHarvest).ability == activePreset.harvestAbility) { + level = activePreset.harvestAbilityLevel; + } + tooltipValue = abilitiesHarvest.get(hoverIdxHarvest).ability.getFullName(level); + } else if(hoverIdxExtraBtn != -1) { + switch(hoverIdxExtraBtn) { + case 0: tooltipValue = "Reset all presets"; break; + case 1: tooltipValue = "Delete current preset"; break; + case 2: tooltipValue = "Add new preset"; break; + case 3: tooltipValue = "Select first preset"; break; + case 4: tooltipValue = "Next preset"; break; + case 5: tooltipValue = "Previous preset"; break; + case 6: tooltipValue = "Close window"; break; + } + } - if (isHovered) { - hoverIdx = i; - } + if(!tooltipValue.isEmpty()) { + int tooltipWidth = Math.max(6, fontRendererObj.getStringWidth(tooltipValue)); + int tooltipX = guiLeft + xSize / 2 - tooltipWidth / 2; + int tooltipY = guiTop + ySize + 1 + 4; + drawStretchedRect(tooltipX - 5, tooltipY - 4, 0, 76, tooltipWidth + 10, 186, 15, 3, 3); + fontRendererObj.drawString(tooltipValue, tooltipX, tooltipY, 0xffffffff); + } + } - if (selected) { - // Draw selection highlight - drawTexturedModalRect(x + 20 * i - 1, y - 1, 220, 9, 18, 18); - } else if (available && isHovered) { - // Draw hover highlight - drawTexturedModalRect(x + 20 * i - 1, y - 1, 238, 9, 18, 18); - } - } + protected void drawStretchedRect(int x, int y, int u, int v, int realWidth, int width, int height, int keepLeft, int keepRight) { + int midWidth = width - keepLeft - keepRight; + int realMidWidth = realWidth - keepLeft - keepRight; + drawTexturedModalRect(x, y, u, v, keepLeft, height); + for(int i = 0; i < realMidWidth; i += midWidth) { + drawTexturedModalRect(x + keepLeft + i, y, u + keepLeft, v, Math.min(midWidth, realMidWidth - i), height); + } + drawTexturedModalRect(x + keepLeft + realMidWidth, y, u + keepLeft + midWidth, v, keepRight, height); + } - return hoverIdx; - } + protected int drawSwitches(List abilities, IBaseAbility selectedAbility, int selectedLevel, int x, int y, int mouseX, int mouseY) { + int hoverIdx = -1; - protected void drawNumber(int number, int x, int y) { - number += 100; // Against accidental negatives - drawDigit((number / 10) % 10, x, y); - drawDigit(number % 10, x + 12, y); - } + for(int i = 0; i < abilities.size(); ++i) { + AbilityInfo abilityInfo = abilities.get(i); + boolean available = abilityAvailable(abilityInfo.ability); + boolean selected = abilityInfo.ability == selectedAbility; - protected void drawDigit(int digit, int x, int y) { - drawTexturedModalRect(x, y, digit * 10, 123, 10, 15); - } + // Draw switch + drawTexturedModalRect(x + 20 * i, y, abilityInfo.textureU + (available ? 16 : 0), abilityInfo.textureV, 16, 16); - private boolean isInAABB(int mouseX, int mouseY, int x, int y, int width, int height) { - return x <= mouseX && x + width > mouseX && y <= mouseY && y + height > mouseY; - } + // Draw level LEDs + if(abilityInfo.ability.levels() > 1) { + int level = 0; - private boolean abilityAvailable(IBaseAbility ability) { - if (!availableAbilities.supportsAbility(ability)) { - return false; - } + if(selected) { + level = selectedLevel + 1; + } - ToolPreset activePreset = config.getActivePreset(); - if (ability instanceof IToolHarvestAbility && ability != IToolHarvestAbility.NONE && !activePreset.areaAbility.allowsHarvest(activePreset.areaAbilityLevel)) { - return false; - } + // Note: only visual effect for the LEDs + // int maxLevel = Math.min(abilityInfo.ability.levels(), 5); + int maxLevel = 5; - return true; - } + if(level > 10 || level < 0) { + // All-red LEDs for invalid levels + level = -1; + } - // Note: This spuriously trigger way too often, and I can't see why. I'll disable it altogether, I guess - // @Override - // public void updateScreen() { - // EntityPlayer player = this.mc.thePlayer; - // - // if(player.getHeldItem() == null || player.getHeldItem().getItem() != toolStack.getItem()) { - // // TODO: Remove - // MainRegistry.logger.warn("GUIScreenToolAbility.updateScreen: toolStack changed!"); - // player.closeScreen(); - // } - // } + drawTexturedModalRect(x + 20 * i + 17, y + 1, 188 + level * 2, maxLevel * 14, 2, 14); + } - @Override - public void handleMouseInput() { - super.handleMouseInput(); + boolean isHovered = isInAABB(mouseX, mouseY, x + 20 * i, y, 16, 16); - if(Mouse.getEventButton() == -1) { - int scroll = Mouse.getEventDWheel(); + if(isHovered) { + hoverIdx = i; + } - if(scroll < 0) doPrevPreset(true); - if(scroll > 0) doNextPreset(true); - } - } + if(selected) { + // Draw selection highlight + drawTexturedModalRect(x + 20 * i - 1, y - 1, 220, 9, 18, 18); + } else if(available && isHovered) { + // Draw hover highlight + drawTexturedModalRect(x + 20 * i - 1, y - 1, 238, 9, 18, 18); + } + } - @Override - protected void mouseClicked(int mouseX, int mouseY, int button) { - ToolPreset activePreset = config.getActivePreset(); - - // Process switches - Pair clickResult; + return hoverIdx; + } - clickResult = handleSwitchesClicked(abilitiesArea, activePreset.areaAbility, activePreset.areaAbilityLevel, hoverIdxArea, mouseX, mouseY); - activePreset.areaAbility = (IToolAreaAbility)clickResult.key; - activePreset.areaAbilityLevel = clickResult.value; + protected void drawNumber(int number, int x, int y) { + number += 100; // Against accidental negatives + drawDigit((number / 10) % 10, x, y); + drawDigit(number % 10, x + 12, y); + } - clickResult = handleSwitchesClicked(abilitiesHarvest, activePreset.harvestAbility, activePreset.harvestAbilityLevel, hoverIdxHarvest, mouseX, mouseY); - activePreset.harvestAbility = (IToolHarvestAbility)clickResult.key; - activePreset.harvestAbilityLevel = clickResult.value; + protected void drawDigit(int digit, int x, int y) { + drawTexturedModalRect(x, y, digit * 10, 123, 10, 15); + } - if (!activePreset.areaAbility.allowsHarvest(activePreset.areaAbilityLevel)) { - activePreset.harvestAbility = IToolHarvestAbility.NONE; - activePreset.harvestAbilityLevel = 0; - } + private boolean isInAABB(int mouseX, int mouseY, int x, int y, int width, int height) { + return x <= mouseX && x + width > mouseX && y <= mouseY && y + height > mouseY; + } - // Process extra buttons - if (hoverIdxExtraBtn != -1) { - switch (hoverIdxExtraBtn) { - case 0: doResetPresets(); break; - case 1: doDelPreset(); break; - case 2: doAddPreset(); break; - case 3: doZeroPreset(); break; - case 4: doNextPreset(false); break; - case 5: doPrevPreset(false); break; - case 6: doClose(); break; - } + private boolean abilityAvailable(IBaseAbility ability) { + if(!availableAbilities.supportsAbility(ability)) { + return false; + } - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F)); - } + ToolPreset activePreset = config.getActivePreset(); + if(ability instanceof IToolHarvestAbility && ability != IToolHarvestAbility.NONE && !activePreset.areaAbility.allowsHarvest(activePreset.areaAbilityLevel)) { + return false; + } - // Allow quick-closing - if (!isInAABB(mouseX, mouseY, guiLeft, guiTop, xSize, ySize)) { - MainRegistry.logger.info("GUIScreenToolAbility.mouseClicked: Clicked outside GUI, closing..."); - doClose(); - } - } + return true; + } - protected Pair handleSwitchesClicked(List abilities, IBaseAbility selectedAbility, int selectedLevel, int hoverIdx, int mouseX, int mouseY) { - if (hoverIdx != -1) { - IBaseAbility hoveredAbility = abilities.get(hoverIdx).ability; - boolean available = abilityAvailable(hoveredAbility); + @Override + public void handleMouseInput() { + super.handleMouseInput(); - if (available) { - int availableLevels = availableAbilities.maxLevel(hoveredAbility) + 1; + if(Mouse.getEventButton() == -1) { + int scroll = Mouse.getEventDWheel(); - if (hoveredAbility != selectedAbility || availableLevels > 1) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 2F)); - } + if(scroll < 0) doPrevPreset(true); + if(scroll > 0) doNextPreset(true); + } + } - if (hoveredAbility == selectedAbility) { - selectedLevel = (selectedLevel + 1) % availableLevels; - } else { - selectedLevel = 0; - } + @Override + protected void mouseClicked(int mouseX, int mouseY, int button) { + ToolPreset activePreset = config.getActivePreset(); - selectedAbility = hoveredAbility; - } - } + // Process switches + Pair clickResult; - return new Pair<>(selectedAbility, selectedLevel); - } + clickResult = handleSwitchesClicked(abilitiesArea, activePreset.areaAbility, activePreset.areaAbilityLevel, hoverIdxArea, mouseX, mouseY); + activePreset.areaAbility = (IToolAreaAbility) clickResult.key; + activePreset.areaAbilityLevel = clickResult.value; - @Override - protected void keyTyped(char c, int key) { - if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { - doClose(); - return; - } - - super.keyTyped(c, key); - } - - @Override - public boolean doesGuiPauseGame() { - return false; - } + clickResult = handleSwitchesClicked(abilitiesHarvest, activePreset.harvestAbility, activePreset.harvestAbilityLevel, hoverIdxHarvest, mouseX, mouseY); + activePreset.harvestAbility = (IToolHarvestAbility) clickResult.key; + activePreset.harvestAbilityLevel = clickResult.value; - protected void doResetPresets() { - config.reset(availableAbilities); - } + if(!activePreset.areaAbility.allowsHarvest(activePreset.areaAbilityLevel)) { + activePreset.harvestAbility = IToolHarvestAbility.NONE; + activePreset.harvestAbilityLevel = 0; + } - protected void doDelPreset() { - if (config.presets.size() <= 1) { - return; - } - config.presets.remove(config.currentPreset); - config.currentPreset = Math.min(config.currentPreset, config.presets.size() - 1); - } + // Process extra buttons + if(hoverIdxExtraBtn != -1) { + switch(hoverIdxExtraBtn) { + case 0: doResetPresets(); break; + case 1: doDelPreset(); break; + case 2: doAddPreset(); break; + case 3: doZeroPreset(); break; + case 4: doNextPreset(false); break; + case 5: doPrevPreset(false); break; + case 6: doClose(); break; + } - protected void doAddPreset() { - if (config.presets.size() >= 99) { - return; - } + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F)); + } - config.presets.add(config.currentPreset + 1, new ToolPreset()); - config.currentPreset += 1; - } + // Allow quick-closing + if(!isInAABB(mouseX, mouseY, guiLeft, guiTop, xSize, ySize)) { + doClose(); + } + } - protected void doZeroPreset() { - config.currentPreset = 0; - } + protected Pair handleSwitchesClicked(List abilities, IBaseAbility selectedAbility, int selectedLevel, int hoverIdx, int mouseX, int mouseY) { + if(hoverIdx != -1) { + IBaseAbility hoveredAbility = abilities.get(hoverIdx).ability; + boolean available = abilityAvailable(hoveredAbility); - protected void doNextPreset(boolean bound) { - if (bound) { - if (config.currentPreset < config.presets.size() - 1) { - config.currentPreset += 1; - } - } else { - config.currentPreset = (config.currentPreset + 1) % config.presets.size(); - } - } + if(available) { + int availableLevels = availableAbilities.maxLevel(hoveredAbility) + 1; - protected void doPrevPreset(boolean bound) { - if (bound) { - if (config.currentPreset > 0) { - config.currentPreset -= 1; - } - } else { - config.currentPreset = (config.currentPreset + config.presets.size() - 1) % config.presets.size(); - } - } + if(hoveredAbility != selectedAbility || availableLevels > 1) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:item.techBoop"), 2F)); + } - protected void doClose() { - // A bit messy, but I suppose it works - ((ItemToolAbility) this.toolStack.getItem()).setConfiguration(toolStack, config); - PacketDispatcher.wrapper.sendToServer(new NBTItemControlPacket(this.toolStack.getTagCompound())); + if(hoveredAbility == selectedAbility) { + selectedLevel = (selectedLevel + 1) % availableLevels; + } else { + selectedLevel = 0; + } - this.mc.thePlayer.closeScreen(); + selectedAbility = hoveredAbility; + } + } - MainRegistry.proxy.displayTooltip(config.getActivePreset().getMessage().getFormattedText(), MainRegistry.proxy.ID_TOOLABILITY); + return new Pair<>(selectedAbility, selectedLevel); + } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + doClose(); + return; + } + + super.keyTyped(c, key); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + protected void doResetPresets() { + config.reset(availableAbilities); + } + + protected void doDelPreset() { + if(config.presets.size() <= 1) { + return; + } + config.presets.remove(config.currentPreset); + config.currentPreset = Math.min(config.currentPreset, config.presets.size() - 1); + } + + protected void doAddPreset() { + if(config.presets.size() >= 99) { + return; + } + + config.presets.add(config.currentPreset + 1, new ToolPreset()); + config.currentPreset += 1; + } + + protected void doZeroPreset() { + config.currentPreset = 0; + } + + protected void doNextPreset(boolean bound) { + if(bound) { + if(config.currentPreset < config.presets.size() - 1) { + config.currentPreset += 1; + } + } else { + config.currentPreset = (config.currentPreset + 1) % config.presets.size(); + } + } + + protected void doPrevPreset(boolean bound) { + if(bound) { + if(config.currentPreset > 0) { + config.currentPreset -= 1; + } + } else { + config.currentPreset = (config.currentPreset + config.presets.size() - 1) % config.presets.size(); + } + } + + protected void doClose() { + // A bit messy, but I suppose it works + ((ItemToolAbility) this.toolStack.getItem()).setConfiguration(toolStack, config); + PacketDispatcher.wrapper.sendToServer(new NBTItemControlPacket(this.toolStack.getTagCompound())); + + this.mc.thePlayer.closeScreen(); + + MainRegistry.proxy.displayTooltip(config.getActivePreset().getMessage().getFormattedText(), MainRegistry.proxy.ID_TOOLABILITY); this.mc.theWorld.playSoundAtEntity(this.mc.thePlayer, "random.orb", 0.25F, config.getActivePreset().isNone() ? 0.75F : 1.25F); - } + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/items/tool/ItemGuideBook.java b/src/main/java/com/hbm/items/tool/ItemGuideBook.java index 948638f0f..920344cab 100644 --- a/src/main/java/com/hbm/items/tool/ItemGuideBook.java +++ b/src/main/java/com/hbm/items/tool/ItemGuideBook.java @@ -39,7 +39,7 @@ public class ItemGuideBook extends Item implements IGUIProvider { public void getSubItems(Item item, CreativeTabs tab, List list) { for(int i = 1; i < BookType.values().length; i++) - list.add(new ItemStack(item, 1, i)); + if(i != 2) list.add(new ItemStack(item, 1, i)); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 6fd951e9e..b23fe62d8 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -24,11 +24,9 @@ import com.hbm.handler.ability.ToolPreset; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.PlayerInformPacket; -import com.hbm.packet.toserver.NBTItemControlPacket; import com.hbm.tileentity.IGUIProvider; import api.hbm.item.IDepthRockTool; -import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index c1b471e74..76646f307 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -929,7 +929,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.TEST.ordinal()), new Object[] { Items.book, ModItems.canned_conserve.stackFromEnum(EnumFoodType.JIZZ) }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato }); - addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.HADRON.ordinal()), new Object[] { Items.book, ModItems.fuse }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal()), new Object[] { Items.book, Items.iron_ingot }); addRecipeAuto(new ItemStack(ModBlocks.charger), new Object[] { "G", "S", "C", 'G', Items.glowstone_dust, 'S', STEEL.ingot(), 'C', ModItems.coil_copper }); diff --git a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj index 6e1c08cdd..9ac4f0251 100644 --- a/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj +++ b/src/main/resources/assets/hbm/models/weapons/launch_pad_erector.obj @@ -1,4493 +1,8702 @@ -# Blender v2.79 (sub 0) OBJ File: 'launch_pad_erector.blend' +# Blender v2.79 (sub 0) OBJ File: '' # www.blender.org -o ABM_Pivot -v 0.125000 1.250000 -1.375000 -v 0.375000 1.250000 -1.375000 -v 0.125000 1.250000 -1.625000 -v 0.375000 1.250000 -1.625000 -v -0.375000 1.250000 -1.375000 -v -0.125000 1.250000 -1.375000 -v -0.375000 1.250000 -1.625000 -v -0.125000 1.250000 -1.625000 -v 0.125000 2.750000 -1.625000 -v 0.125000 2.750000 -1.375000 -v 0.375000 2.750000 -1.375000 -v 0.375000 2.750000 -1.625000 -v -0.375000 2.750000 -1.625000 -v -0.375000 2.750000 -1.375000 -v -0.125000 2.750000 -1.375000 -v -0.125000 2.750000 -1.625000 -v 0.187500 2.750000 -1.437500 -v 0.312500 2.750000 -1.437500 -v 0.187500 2.750000 -1.562500 -v 0.312500 2.750000 -1.562500 -v 0.187500 3.750000 -1.437500 -v 0.312500 3.750000 -1.437500 -v 0.187500 3.750000 -1.562500 -v 0.312500 3.750000 -1.562500 -v -0.312500 2.750000 -1.437500 -v -0.187500 2.750000 -1.437500 -v -0.312500 2.750000 -1.562500 -v -0.187500 2.750000 -1.562500 -v -0.312500 3.750000 -1.437500 -v -0.187500 3.750000 -1.437500 -v -0.312500 3.750000 -1.562500 -v -0.187500 3.750000 -1.562500 -v 0.125000 2.312500 -1.437500 -v 0.125000 2.187500 -1.437500 -v 0.125000 2.312500 -1.562500 -v 0.125000 2.187500 -1.562500 -v -0.125000 2.312500 -1.562500 -v -0.125000 2.312500 -1.437500 -v -0.125000 2.187500 -1.437500 -v -0.125000 2.187500 -1.562500 -vt 0.750000 0.227273 -vt 0.729167 0.136364 -vt 0.750000 0.136364 -vt 0.791667 0.227273 -vt 0.770833 0.136364 -vt 0.791667 0.136364 -vt 0.666667 0.159091 -vt 0.708333 0.136364 -vt 0.708333 0.159091 -vt 0.666667 0.159091 -vt 0.708333 0.136364 -vt 0.708333 0.159091 -vt 0.833333 -0.000000 -vt 0.791667 0.136364 -vt 0.791667 -0.000000 -vt 0.750000 -0.000000 -vt 0.708333 -0.000000 -vt 0.833333 -0.000000 -vt 0.791667 0.136364 -vt 0.791667 -0.000000 -vt 0.750000 -0.000000 -vt 0.708333 -0.000000 -vt 0.666667 0.136364 -vt 0.666667 -0.000000 -vt 0.750000 0.136364 -vt 0.666667 0.136364 -vt 0.666667 -0.000000 -vt 0.750000 0.136364 -vt 0.729167 0.227273 -vt 0.708333 0.136364 -vt 0.770833 0.227273 -vt 0.750000 0.227273 -vt 0.729167 0.136364 -vt 0.750000 0.136364 -vt 0.791667 0.227273 -vt 0.770833 0.136364 -vt 0.791667 0.136364 -vt 0.729167 0.227273 -vt 0.708333 0.136364 -vt 0.770833 0.227273 -vt 0.708333 0.170455 -vt 0.666667 0.181818 -vt 0.666667 0.170455 -vt 0.708333 0.193182 -vt 0.666667 0.204545 -vt 0.666667 0.193182 -vt 0.708333 0.159091 -vt 0.666667 0.159091 -vt 0.708333 0.181818 -vt 0.833333 0.136364 -vt 0.833333 0.136364 -vt 0.708333 0.227273 -vt 0.708333 0.227273 -vt 0.708333 0.204545 -vn -1.0000 0.0000 0.0000 +o Pad +v 4.500000 -0.000000 4.500000 +v 4.500000 1.000000 0.500000 +v 4.500000 1.000000 4.500000 +v -4.500000 1.000000 0.500000 +v 4.500000 -0.000000 0.500000 +v -4.500000 -0.000000 0.500000 +v -4.500000 1.000000 4.500000 +v -4.500000 0.000000 -4.500000 +v 4.500000 1.000000 -4.500000 +v 4.500000 0.000000 -4.500000 +v -4.500000 -0.000000 4.500000 +v 4.500000 1.000000 -0.500000 +v -4.500000 0.000000 -0.500000 +v 4.500000 0.000000 -0.500000 +v -4.500000 1.000000 -0.500000 +v -4.500000 1.000000 -4.500000 +v 0.500000 1.000000 -0.500000 +v 4.500000 1.000000 0.500000 +v 4.500000 1.000000 -0.500000 +v -4.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v -4.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.250000 +v 4.500000 0.750000 0.500000 +v 0.500000 0.750000 0.500000 +v 0.500000 1.000000 -0.250000 +v 4.500000 1.000000 0.250000 +v 0.500000 0.750000 -0.500000 +v 4.500000 1.000000 -0.250000 +v -4.500000 0.750000 0.500000 +v -4.500000 1.000000 0.500000 +v -4.500000 1.000000 0.250000 +v -4.500000 0.750000 -0.500000 +v -4.500000 1.000000 -0.250000 +v -4.500000 1.000000 -0.500000 +v 4.500000 1.000000 0.500000 +v 4.500000 0.750000 -0.500000 +v 4.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 0.750000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -0.500000 1.000000 -0.250000 +v -0.500000 0.750000 0.500000 +v -0.500000 1.000000 0.250000 +v -0.500000 1.000000 0.500000 +v 0.500000 -0.000000 0.500000 +v 0.000000 0.500000 -0.500000 +v 0.000000 0.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 -0.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 0.500000 +vt 0.000000 0.473684 +vt 0.400000 0.526316 +vt 0.000000 0.526316 +vt 0.900000 0.526316 +vt 0.000000 0.473684 +vt 0.900000 0.473684 +vt 0.400000 1.000000 +vt 0.000000 1.000000 +vt 0.900000 0.473684 +vt -0.000000 0.526316 +vt -0.000000 0.473684 +vt 0.900000 0.473684 +vt -0.000000 0.526316 +vt -0.000000 0.473684 +vt 0.900000 0.526316 +vt 0.500000 0.473684 +vt 0.900000 0.473684 +vt 0.000000 0.000000 +vt 0.400000 0.473684 +vt 0.900000 0.526316 +vt -0.000000 0.473684 +vt 0.900000 0.473684 +vt 0.900000 0.526316 +vt 0.500000 0.473684 +vt 0.900000 0.473684 +vt 0.000000 0.473684 +vt 0.400000 0.526316 +vt 0.000000 0.526316 +vt 0.900000 1.000000 +vt 0.500000 0.526316 +vt 0.500000 0.000000 +vt 0.900000 0.000000 +vt 0.500000 0.736842 +vt 0.400000 0.526316 +vt 0.500000 0.526316 +vt 0.400000 1.000000 +vt 0.500000 0.789474 +vt 0.500000 1.000000 +vt 0.925000 0.539474 +vt 0.900000 0.750000 +vt 0.900000 0.539474 +vt 0.975000 0.539474 +vt 0.925000 0.750000 +vt 1.000000 0.539474 +vt 0.975000 0.750000 +vt 1.000000 0.763158 +vt 1.000000 0.776316 +vt 0.975000 0.776316 +vt 0.900000 0.763158 +vt 0.925000 0.776316 +vt 0.900000 0.776316 +vt 1.000000 0.763158 +vt 0.975000 0.750000 +vt 1.000000 0.750000 +vt 0.900000 0.763158 +vt 0.900000 0.750000 +vt 0.925000 0.750000 +vt 0.900000 0.526316 +vt 0.925000 0.539474 +vt 0.900000 0.539474 +vt 1.000000 0.526316 +vt 1.000000 0.539474 +vt 0.975000 0.539474 +vt 0.900000 1.000000 +vt 0.900000 0.986842 +vt 0.925000 0.986842 +vt 1.000000 1.000000 +vt 0.975000 0.986842 +vt 1.000000 0.986842 +vt 1.000000 0.776316 +vt 0.975000 0.986842 +vt 0.975000 0.776316 +vt 0.925000 0.986842 +vt 0.925000 0.776316 +vt 0.900000 0.986842 +vt 0.900000 0.776316 +vt 0.900000 0.473684 +vt 1.000000 0.500000 +vt 0.900000 0.500000 +vt 1.000000 0.526316 +vt 0.900000 0.526316 +vt 1.000000 0.473684 +vt 0.900000 0.421053 +vt 1.000000 0.421053 +vt 0.000000 0.526316 +vt 0.900000 0.526316 +vt 0.900000 0.526316 +vt 0.500000 0.526316 +vt 0.400000 0.000000 +vt -0.000000 0.526316 +vt 0.400000 0.473684 +vt 0.500000 1.000000 +vt 0.400000 0.736842 +vt 0.400000 0.789474 +vt 1.000000 0.750000 +vt 1.000000 0.986842 vn 1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 s off -f 21/1/1 19/2/1 17/3/1 -f 24/4/2 18/5/2 20/6/2 -f 11/7/3 9/8/3 10/9/3 -f 15/10/3 13/11/3 14/12/3 -f 8/13/2 15/14/2 6/15/2 -f 5/16/1 13/11/1 7/17/1 -f 4/18/2 11/19/2 2/20/2 -f 1/21/1 9/8/1 3/22/1 -f 7/17/4 16/23/4 8/24/4 -f 6/15/5 14/25/5 5/16/5 -f 3/22/4 12/26/4 4/27/4 -f 2/20/5 10/28/5 1/21/5 -f 23/29/4 20/30/4 19/2/4 -f 22/31/5 17/3/5 18/5/5 -f 29/32/1 27/33/1 25/34/1 -f 32/35/2 26/36/2 28/37/2 -f 31/38/4 28/39/4 27/33/4 -f 30/40/5 25/34/5 26/36/5 -f 40/41/4 35/42/4 36/43/4 -f 38/44/5 34/45/5 33/46/5 -f 39/47/6 36/43/6 34/48/6 -f 37/49/3 33/46/3 35/42/3 -f 21/1/1 23/29/1 19/2/1 -f 24/4/2 22/31/2 18/5/2 -f 11/7/3 12/26/3 9/8/3 -f 15/10/3 16/23/3 13/11/3 -f 8/13/2 16/50/2 15/14/2 -f 5/16/1 14/25/1 13/11/1 -f 4/18/2 12/51/2 11/19/2 -f 1/21/1 10/28/1 9/8/1 -f 7/17/4 13/11/4 16/23/4 -f 6/15/5 15/14/5 14/25/5 -f 3/22/4 9/8/4 12/26/4 -f 2/20/5 11/19/5 10/28/5 -f 23/29/4 24/52/4 20/30/4 -f 22/31/5 21/1/5 17/3/5 -f 29/32/1 31/38/1 27/33/1 -f 32/35/2 30/40/2 26/36/2 -f 31/38/4 32/53/4 28/39/4 -f 30/40/5 29/32/5 25/34/5 -f 40/41/4 37/49/4 35/42/4 -f 38/44/5 39/54/5 34/45/5 -f 39/47/6 40/41/6 36/43/6 -f 37/49/3 38/44/3 33/46/3 -o ABM_Rope -v 0.000000 10.500000 1.437500 -v 0.000000 10.375000 1.437500 -v 0.000000 10.500000 0.000000 -v 0.000000 10.375000 0.000000 -v 0.000000 10.375000 1.062500 -v 0.000000 10.250000 1.062500 -v 0.000000 10.375000 0.375000 -v 0.000000 10.250000 0.375000 -v 0.000000 10.500000 1.437500 -v 0.000000 10.375000 1.437500 -v 0.000000 10.500000 0.000000 -v 0.000000 10.375000 0.000000 -v 0.000000 10.375000 1.062500 -v 0.000000 10.250000 1.062500 -v 0.000000 10.375000 0.375000 -v 0.000000 10.250000 0.375000 -vt 0.593750 0.920455 -vt 0.656250 0.909091 -vt 0.656250 0.920455 -vt 0.593750 0.909091 -vt 0.479167 0.920455 -vt 0.479167 0.909091 -vt 0.416667 0.909091 -vt 0.416667 0.920455 -vt 0.656250 0.909091 -vt 0.593750 0.920455 -vt 0.656250 0.920455 -vt 0.479167 0.920455 -vt 0.593750 0.909091 -vt 0.479167 0.909091 -vt 0.416667 0.909091 -vt 0.416667 0.920455 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 3/3/3 4/7/3 7/8/3 +f 8/9/2 9/10/2 10/11/2 +f 1/12/4 7/13/4 11/14/4 +f 7/15/5 6/16/5 11/17/5 +f 11/18/6 5/19/6 1/1/6 +f 12/20/4 13/21/4 14/22/4 +f 9/23/1 14/24/1 10/25/1 +f 8/26/5 15/27/5 16/28/5 +f 16/29/3 12/30/3 9/23/3 +f 10/25/6 13/31/6 8/32/6 +f 17/33/3 18/34/3 19/35/3 +f 20/36/3 21/37/3 22/38/3 +f 23/39/7 24/40/7 25/41/7 +f 26/42/6 27/43/6 23/39/6 +f 28/44/8 29/45/8 26/42/8 +f 30/46/5 31/47/5 32/48/5 +f 33/49/5 34/50/5 35/51/5 +f 24/52/1 27/53/1 36/54/1 +f 37/55/1 38/56/1 29/57/1 +f 28/58/5 26/59/5 39/60/5 +f 25/61/5 40/62/5 23/63/5 +f 41/64/1 42/65/1 43/66/1 +f 44/67/1 45/68/1 46/69/1 +f 33/70/8 43/71/8 34/72/8 +f 34/72/6 45/73/6 32/74/6 +f 32/74/7 44/75/7 30/76/7 +f 47/77/9 48/78/9 49/79/9 +f 49/79/10 50/80/10 51/81/10 +f 52/82/6 51/83/6 50/84/6 +f 1/1/1 5/19/1 2/2/1 +f 4/4/2 2/85/2 5/5/2 +f 3/3/3 2/2/3 4/7/3 +f 8/9/2 16/86/2 9/10/2 +f 1/12/4 3/87/4 7/13/4 +f 7/15/5 4/88/5 6/16/5 +f 11/18/6 6/89/6 5/19/6 +f 12/20/4 15/90/4 13/21/4 +f 9/23/1 12/30/1 14/24/1 +f 8/26/5 13/91/5 15/27/5 +f 16/29/3 15/92/3 12/30/3 +f 10/25/6 14/24/6 13/31/6 +f 17/33/3 53/93/3 18/34/3 +f 20/36/3 54/94/3 21/37/3 +f 23/39/7 27/43/7 24/40/7 +f 26/42/6 29/45/6 27/43/6 +f 28/44/8 37/95/8 29/45/8 +f 33/70/8 41/96/8 43/71/8 +f 34/72/6 43/71/6 45/73/6 +f 32/74/7 45/73/7 44/75/7 +f 47/77/9 52/82/9 48/78/9 +f 49/79/10 48/78/10 50/80/10 +f 52/82/6 47/77/6 51/83/6 +o V2_Erector +v -0.500000 7.750000 0.125000 +v -0.750000 7.750000 -0.125000 +v -0.750000 7.750000 0.125000 +v 0.750000 7.750000 0.125000 +v 0.500000 7.750000 -0.125000 +v 0.500000 7.750000 0.125000 +v -0.750000 4.250000 -0.125000 +v -0.500000 4.250000 0.125000 +v -0.750000 4.250000 0.125000 +v 0.500000 4.250000 -0.125000 +v 0.750000 4.250000 0.125000 +v 0.500000 4.250000 0.125000 +v 0.500000 2.750000 -1.875000 +v 0.750000 2.750000 -1.625000 +v 0.500000 2.750000 -1.625000 +v -0.750000 2.750000 -1.875000 +v -0.500000 2.750000 -1.625000 +v -0.750000 2.750000 -1.625000 +v 0.750000 7.750000 -1.625000 +v 0.500000 7.750000 -1.875000 +v 0.500000 7.750000 -1.625000 +v -0.500000 7.750000 -1.625000 +v -0.750000 7.750000 -1.875000 +v -0.750000 7.750000 -1.625000 +v -0.500000 2.750000 -1.875000 +v 0.750000 2.750000 -1.875000 +v -0.500000 7.750000 -1.875000 +v 0.750000 7.750000 -1.875000 +v -0.500000 4.250000 -0.125000 +v 0.750000 4.250000 -0.125000 +v -0.500000 7.750000 -0.125000 +v 0.750000 7.750000 -0.125000 +v -0.500000 7.250000 -0.125000 +v -0.250000 7.250000 -0.625000 +v -0.750000 7.250000 -0.125000 +v 0.750000 7.250000 -0.125000 +v 0.250000 7.250000 -0.375000 +v 0.500000 7.250000 -0.125000 +v 0.250000 7.250000 -0.625000 +v -0.250000 5.000000 -0.625000 +v 0.250000 5.000000 -0.375000 +v 0.250000 5.000000 -0.625000 +v 0.750000 5.000000 -0.125000 +v 0.500000 5.000000 -0.125000 +v -0.500000 5.000000 -0.125000 +v -0.750000 5.000000 -0.125000 +v -0.250000 5.000000 -0.375000 +v 0.250000 4.750000 -0.375000 +v -0.750000 4.750000 -0.125000 +v 0.500000 4.750000 -0.125000 +v -0.250000 4.750000 -0.625000 +v -0.250000 4.750000 -0.375000 +v 0.250000 4.750000 -0.625000 +v 0.750000 4.750000 -0.125000 +v -0.500000 4.750000 -0.125000 +v 0.750000 7.375000 -1.625000 +v 0.750000 7.625000 -0.125000 +v 0.750000 7.375000 -0.125000 +v 0.500000 7.375000 -1.625000 +v 0.500000 7.375000 -0.125000 +v 0.500000 7.625000 -1.625000 +v 0.500000 7.625000 -0.125000 +v -0.500000 7.375000 -1.625000 +v -0.500000 7.625000 -0.125000 +v -0.500000 7.375000 -0.125000 +v -0.750000 7.375000 -1.625000 +v -0.750000 7.375000 -0.125000 +v -0.750000 7.625000 -1.625000 +v -0.750000 7.625000 -0.125000 +v 0.750000 4.375000 -1.625000 +v 0.750000 4.625000 -0.125000 +v 0.750000 4.375000 -0.125000 +v 0.500000 4.375000 -1.625000 +v 0.500000 4.375000 -0.125000 +v 0.500000 4.625000 -1.625000 +v 0.500000 4.625000 -0.125000 +v -0.500000 4.375000 -1.625000 +v -0.500000 4.625000 -0.125000 +v -0.500000 4.375000 -0.125000 +v -0.750000 4.375000 -1.625000 +v -0.750000 4.375000 -0.125000 +v -0.750000 4.625000 -1.625000 +v -0.750000 4.625000 -0.125000 +v 0.750000 5.875000 -1.625000 +v 0.750000 6.125000 -0.125000 +v 0.750000 5.875000 -0.125000 +v 0.500000 5.875000 -1.625000 +v 0.500000 5.875000 -0.125000 +v 0.500000 6.125000 -1.625000 +v 0.500000 6.125000 -0.125000 +v -0.500000 5.875000 -1.625000 +v -0.500000 6.125000 -0.125000 +v -0.500000 5.875000 -0.125000 +v -0.750000 5.875000 -1.625000 +v -0.750000 5.875000 -0.125000 +v -0.750000 6.125000 -1.625000 +v -0.750000 6.125000 -0.125000 +v 0.500000 7.125000 -1.812500 +v -0.500000 6.375000 -1.812500 +v 0.500000 7.375000 -1.812500 +v -0.500000 7.125000 -1.687500 +v 0.500000 6.375000 -1.687500 +v 0.500000 6.125000 -1.687500 +v 0.500000 5.625000 -1.812500 +v -0.500000 4.875000 -1.812500 +v 0.500000 5.875000 -1.812500 +v -0.500000 5.625000 -1.687500 +v 0.500000 4.875000 -1.687500 +v 0.500000 4.625000 -1.687500 +v 0.500000 4.125000 -1.812500 +v -0.500000 3.375000 -1.812500 +v 0.500000 4.375000 -1.812500 +v -0.500000 4.125000 -1.687500 +v 0.500000 3.375000 -1.687500 +v 0.500000 3.125000 -1.687500 +v -0.250000 7.250000 -0.375000 +v 0.250000 7.000000 -0.375000 +v -0.750000 7.000000 -0.125000 +v 0.500000 7.000000 -0.125000 +v -0.250000 7.000000 -0.625000 +v -0.250000 7.000000 -0.375000 +v 0.250000 7.000000 -0.625000 +v 0.750000 7.000000 -0.125000 +v -0.500000 7.000000 -0.125000 +v -0.500000 6.375000 -1.812500 +v 0.500000 7.125000 -1.812500 +v 0.500000 7.375000 -1.812500 +v -0.500000 7.125000 -1.687500 +v 0.500000 6.375000 -1.687500 +v -0.500000 7.375000 -1.687500 +v -0.500000 4.875000 -1.812500 +v 0.500000 5.625000 -1.812500 +v 0.500000 5.875000 -1.812500 +v -0.500000 5.625000 -1.687500 +v 0.500000 4.875000 -1.687500 +v -0.500000 5.875000 -1.687500 +v -0.500000 3.375000 -1.812500 +v 0.500000 4.125000 -1.812500 +v 0.500000 4.375000 -1.812500 +v -0.500000 4.125000 -1.687500 +v 0.500000 3.375000 -1.687500 +v -0.500000 4.375000 -1.687500 +v 0.750000 7.625000 -1.625000 +v -0.500000 7.625000 -1.625000 +v 0.750000 4.625000 -1.625000 +v -0.500000 4.625000 -1.625000 +v 0.750000 6.125000 -1.625000 +v -0.500000 6.125000 -1.625000 +v -0.500000 6.125000 -1.812500 +v -0.500000 7.375000 -1.687500 +v -0.500000 4.625000 -1.812500 +v -0.500000 5.875000 -1.687500 +v -0.500000 3.125000 -1.812500 +v -0.500000 4.375000 -1.687500 +v -0.500000 6.125000 -1.812500 +v 0.500000 6.125000 -1.687500 +v -0.500000 4.625000 -1.812500 +v 0.500000 4.625000 -1.687500 +v -0.500000 3.125000 -1.812500 +v 0.500000 3.125000 -1.687500 +vt 0.918367 0.421053 +vt 0.938776 0.394737 +vt 0.938776 0.421053 +vt 0.918367 0.421053 +vt 0.938776 0.394737 +vt 0.938776 0.421053 +vt 0.938776 0.026316 +vt 0.918367 -0.000000 +vt 0.938776 -0.000000 +vt 0.938776 0.026316 +vt 0.918367 -0.000000 +vt 0.938776 -0.000000 +vt 0.857143 0.263158 +vt 0.836735 0.236842 +vt 0.857143 0.236842 +vt 0.857143 0.263158 +vt 0.836735 0.236842 +vt 0.857143 0.236842 +vt 0.836735 0.815789 +vt 0.857143 0.789474 +vt 0.857143 0.815789 +vt 0.836735 0.815789 +vt 0.857143 0.789474 +vt 0.857143 0.815789 +vt 0.918367 0.263158 +vt 0.897959 0.789474 +vt 0.897959 0.263158 +vt 0.877551 0.263158 +vt 0.918367 0.263158 +vt 0.897959 0.789474 +vt 0.897959 0.263158 +vt 0.877551 0.263158 +vt 0.836735 0.789474 +vt 0.836735 0.263158 +vt 0.877551 0.789474 +vt 0.836735 0.789474 +vt 0.836735 0.263158 +vt 0.877551 0.789474 +vt 1.000000 0.026316 +vt 0.979592 0.394737 +vt 0.979592 0.026316 +vt 0.959184 0.026316 +vt 1.000000 0.026316 +vt 0.979592 0.394737 +vt 0.979592 0.026316 +vt 0.959184 0.026316 +vt 0.918367 0.394737 +vt 0.918367 0.026316 +vt 0.959184 0.394737 +vt 0.918367 0.394737 +vt 0.918367 0.026316 +vt 0.959184 0.394737 +vt 0.653061 0.763158 +vt 0.632653 0.710526 +vt 0.673469 0.763158 +vt 0.551020 0.763158 +vt 0.591837 0.736842 +vt 0.571429 0.763158 +vt 0.591837 0.710526 +vt 0.632653 0.710526 +vt 0.591837 0.736842 +vt 0.591837 0.710526 +vt 0.551020 0.763158 +vt 0.571429 0.763158 +vt 0.653061 0.763158 +vt 0.673469 0.763158 +vt 0.632653 0.763158 +vt 0.591837 0.789474 +vt 0.591837 0.763158 +vt 0.673469 0.684211 +vt 0.673469 0.710526 +vt 0.571429 0.789474 +vt 0.632653 0.684211 +vt 0.632653 0.789474 +vt 0.551020 0.710526 +vt 0.591149 0.684899 +vt 0.551020 0.631579 +vt 0.591837 0.657895 +vt 0.632653 0.657895 +vt 0.653061 0.631579 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.421053 +vt 0.938776 0.578947 +vt 0.918367 0.578947 +vt 0.979592 0.421053 +vt 1.000000 0.578947 +vt 0.979592 0.578947 +vt 0.959184 0.421053 +vt 0.959184 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.605263 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.605263 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.605263 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 0.918367 0.578947 +vt 0.632653 0.763158 +vt 0.591837 0.789474 +vt 0.591837 0.763158 +vt 0.673469 0.684211 +vt 0.673469 0.710526 +vt 0.571429 0.789474 +vt 0.632653 0.684211 +vt 0.632653 0.789474 +vt 0.551020 0.710526 +vt 0.591149 0.684899 +vt 0.551020 0.631579 +vt 0.591837 0.657895 +vt 0.632653 0.657895 +vt 0.653061 0.631579 +vt 1.000000 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.605263 +vt 1.000000 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.605263 +vt 1.000000 0.605263 +vt 0.918367 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.578947 +vt 0.918367 0.605263 +vt 1.000000 0.605263 +vt 0.918367 0.789474 +vt 0.918367 0.789474 +vt 1.000000 0.394737 +vt 1.000000 0.394737 +vt 0.632653 0.736842 +vt 0.632653 0.736842 +vt 0.653061 0.789474 +vt 0.551020 0.684211 +vt 0.571429 0.631579 +vt 0.673469 0.631579 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 0.938776 0.421053 +vt 1.000000 0.421053 +vt 1.000000 0.578947 +vt 1.000000 0.605263 +vt 1.000000 0.578947 +vt 1.000000 0.605263 +vt 1.000000 0.578947 +vt 1.000000 0.605263 +vt 0.653061 0.789474 +vt 0.551020 0.684211 +vt 0.571429 0.631579 +vt 0.673469 0.631579 +vt 1.000000 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.578947 +vt 0.918367 0.578947 +vt 1.000000 0.578947 +vt 0.918367 0.578947 +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.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 s off -f 47/55/7 44/56/7 43/57/7 -f 48/58/7 45/59/7 46/60/7 -f 42/61/7 45/59/7 41/62/7 -f 52/63/8 55/64/8 51/65/8 -f 53/66/8 56/67/8 54/68/8 -f 50/69/8 53/66/8 54/68/8 -f 47/55/7 48/58/7 44/56/7 -f 48/58/7 47/55/7 45/59/7 -f 42/61/7 46/60/7 45/59/7 -f 52/63/8 56/67/8 55/64/8 -f 53/66/8 55/64/8 56/67/8 -f 50/69/8 49/70/8 53/66/8 -o ABM_Erector -v 0.125000 2.750000 -1.625000 -v 0.125000 2.750000 -1.375000 -v 0.375000 2.750000 -1.375000 -v 0.375000 2.750000 -1.625000 -v -0.375000 2.750000 -1.625000 -v -0.375000 2.750000 -1.375000 -v -0.125000 2.750000 -1.375000 -v -0.125000 2.750000 -1.625000 -v 0.125000 9.750000 -1.625000 -v 0.125000 9.750000 -1.375000 -v 0.375000 9.750000 -1.375000 -v 0.375000 9.750000 -1.625000 -v -0.375000 9.750000 -1.625000 -v -0.375000 9.750000 -1.375000 -v -0.125000 9.750000 -1.375000 -v -0.125000 9.750000 -1.625000 -v 0.250000 4.625000 -1.500000 -v 0.500000 4.625000 -1.500000 -v 0.250000 4.875000 -1.500000 -v 0.500000 4.875000 -1.500000 -v 0.250000 4.625000 0.250000 -v 0.500000 4.625000 0.250000 -v 0.250000 4.875000 0.250000 -v 0.500000 4.875000 0.250000 -v -0.500000 4.625000 -1.500000 -v -0.250000 4.625000 -1.500000 -v -0.500000 4.875000 -1.500000 -v -0.250000 4.875000 -1.500000 -v -0.500000 4.625000 0.250000 -v -0.250000 4.625000 0.250000 -v -0.500000 4.875000 0.250000 -v -0.250000 4.875000 0.250000 -v 0.250000 4.625000 -0.250000 -v 0.250000 4.875000 -0.250000 -v -0.250000 4.625000 -0.250000 -v -0.250000 4.875000 -0.250000 -v 0.250000 4.875000 -0.500000 -v 0.250000 4.625000 -0.500000 -v -0.250000 4.625000 -0.500000 -v -0.250000 4.875000 -0.500000 -v 0.250000 9.125000 -1.500000 -v 0.500000 9.125000 -1.500000 -v 0.250000 9.375000 -1.500000 -v 0.500000 9.375000 -1.500000 -v 0.250000 9.125000 0.250000 -v 0.500000 9.125000 0.250000 -v 0.250000 9.375000 0.250000 -v 0.500000 9.375000 0.250000 -v -0.500000 9.125000 -1.500000 -v -0.250000 9.125000 -1.500000 -v -0.500000 9.375000 -1.500000 -v -0.250000 9.375000 -1.500000 -v -0.500000 9.125000 0.250000 -v -0.250000 9.125000 0.250000 -v -0.500000 9.375000 0.250000 -v -0.250000 9.375000 0.250000 -v 0.250000 9.125000 -0.250000 -v 0.250000 9.375000 -0.250000 -v -0.250000 9.125000 -0.250000 -v -0.250000 9.375000 -0.250000 -v 0.250000 9.375000 -0.500000 -v 0.250000 9.125000 -0.500000 -v -0.250000 9.125000 -0.500000 -v -0.250000 9.375000 -0.500000 -v 0.125000 9.312500 -1.437500 -v 0.125000 9.187500 -1.437500 -v 0.125000 9.312500 -1.562500 -v 0.125000 9.187500 -1.562500 -v -0.125000 9.312500 -1.562500 -v -0.125000 9.312500 -1.437500 -v -0.125000 9.187500 -1.437500 -v -0.125000 9.187500 -1.562500 -v -0.125000 8.187500 -1.562500 -v -0.125000 8.187500 -1.437500 -v -0.125000 8.312500 -1.437500 -v -0.125000 8.312500 -1.562500 -v 0.125000 8.187500 -1.562500 -v 0.125000 8.312500 -1.562500 -v 0.125000 8.187500 -1.437500 -v 0.125000 8.312500 -1.437500 -v 0.125000 7.312500 -1.437500 -v 0.125000 7.187500 -1.437500 -v 0.125000 7.312500 -1.562500 -v 0.125000 7.187500 -1.562500 -v -0.125000 7.312500 -1.562500 -v -0.125000 7.312500 -1.437500 -v -0.125000 7.187500 -1.437500 -v -0.125000 7.187500 -1.562500 -v -0.125000 6.187500 -1.562500 -v -0.125000 6.187500 -1.437500 -v -0.125000 6.312500 -1.437500 -v -0.125000 6.312500 -1.562500 -v 0.125000 6.187500 -1.562500 -v 0.125000 6.312500 -1.562500 -v 0.125000 6.187500 -1.437500 -v 0.125000 6.312500 -1.437500 -v 0.125000 3.312500 -1.437500 -v 0.125000 3.187500 -1.437500 -v 0.125000 3.312500 -1.562500 -v 0.125000 3.187500 -1.562500 -v -0.125000 3.312500 -1.562500 -v -0.125000 3.312500 -1.437500 -v -0.125000 3.187500 -1.437500 -v -0.125000 3.187500 -1.562500 -v 0.125000 5.312500 -1.437500 -v 0.125000 5.187500 -1.437500 -v 0.125000 5.312500 -1.562500 -v 0.125000 5.187500 -1.562500 -v -0.125000 5.312500 -1.562500 -v -0.125000 5.312500 -1.437500 -v -0.125000 5.187500 -1.437500 -v -0.125000 5.187500 -1.562500 -v -0.125000 4.187500 -1.562500 -v -0.125000 4.187500 -1.437500 -v -0.125000 4.312500 -1.437500 -v -0.125000 4.312500 -1.562500 -v 0.125000 4.187500 -1.562500 -v 0.125000 4.312500 -1.562500 -v 0.125000 4.187500 -1.437500 -v 0.125000 4.312500 -1.437500 -v 0.250000 4.875000 -0.625000 -v 0.250000 4.875000 -0.875000 -v 0.250000 5.625000 -1.375000 -v 0.250000 5.375000 -1.375000 -v -0.250000 4.875000 -0.625000 -v -0.250000 4.875000 -0.875000 -v -0.250000 5.625000 -1.375000 -v -0.250000 5.375000 -1.375000 -v 0.250000 9.125000 -0.625000 -v 0.250000 9.125000 -0.875000 -v -0.250000 9.125000 -0.625000 -v -0.250000 9.125000 -0.875000 -v 0.250000 8.625000 -1.375000 -v 0.250000 8.375000 -1.375000 -v -0.250000 8.625000 -1.375000 -v -0.250000 8.375000 -1.375000 -v 0.250000 4.625000 -0.625000 -v 0.250000 4.625000 -0.875000 -v -0.250000 4.625000 -0.625000 -v -0.250000 4.625000 -0.875000 -v 0.250000 4.125000 -1.375000 -v 0.250000 3.875000 -1.375000 -v -0.250000 4.125000 -1.375000 -v -0.250000 3.875000 -1.375000 -v 0.250000 4.875000 -0.625000 -v 0.250000 4.875000 -0.875000 -v 0.250000 5.625000 -1.375000 -v 0.250000 5.375000 -1.375000 -v -0.250000 4.875000 -0.625000 -v -0.250000 4.875000 -0.875000 -v -0.250000 5.625000 -1.375000 -v -0.250000 5.375000 -1.375000 -v 0.250000 9.125000 -0.625000 -v 0.250000 9.125000 -0.875000 -v -0.250000 9.125000 -0.625000 -v -0.250000 9.125000 -0.875000 -v 0.250000 8.625000 -1.375000 -v 0.250000 8.375000 -1.375000 -v -0.250000 8.625000 -1.375000 -v -0.250000 8.375000 -1.375000 -v 0.250000 4.625000 -0.625000 -v 0.250000 4.625000 -0.875000 -v -0.250000 4.625000 -0.625000 -v -0.250000 4.625000 -0.875000 -v 0.250000 4.125000 -1.375000 -v 0.250000 3.875000 -1.375000 -v -0.250000 4.125000 -1.375000 -v -0.250000 3.875000 -1.375000 -vt 0.708333 0.227273 -vt 0.666667 0.204545 -vt 0.708333 0.204545 -vt 0.708333 0.227273 -vt 0.666667 0.204545 -vt 0.708333 0.204545 -vt 0.666667 0.886364 -vt 0.708333 0.863636 -vt 0.708333 0.886364 -vt 0.666667 0.886364 -vt 0.708333 0.863636 -vt 0.708333 0.886364 -vt 0.833333 0.227273 -vt 0.791667 0.863636 -vt 0.791667 0.227273 -vt 0.750000 0.227273 -vt 0.666667 0.863636 -vt 0.666667 0.227273 -vt 0.791667 0.227273 -vt 0.750000 0.863636 -vt 0.750000 0.227273 -vt 0.666667 0.863636 -vt 0.666667 0.227273 -vt 0.750000 0.863636 -vt 0.833333 0.227273 -vt 0.791667 0.863636 -vt 0.875000 0.022727 -vt 0.833333 -0.000000 -vt 0.875000 -0.000000 -vt 0.833333 0.204545 -vt 0.875000 0.181818 -vt 0.875000 0.204545 -vt 0.916667 0.022727 -vt 0.833333 0.181818 -vt 0.833333 0.022727 -vt 0.958333 0.022727 -vt 0.916667 0.181818 -vt 1.000000 0.022727 -vt 0.958333 0.181818 -vt 0.875000 0.022727 -vt 0.833333 -0.000000 -vt 0.875000 -0.000000 -vt 0.833333 0.204545 -vt 0.875000 0.181818 -vt 0.875000 0.204545 -vt 0.916667 0.022727 -vt 0.833333 0.181818 -vt 0.833333 0.022727 -vt 0.958333 0.022727 -vt 0.916667 0.181818 -vt 1.000000 0.022727 -vt 0.958333 0.181818 -vt 0.875000 0.250000 -vt 0.958333 0.272727 -vt 0.875000 0.272727 -vt 0.958333 0.204545 -vt 0.875000 0.227273 -vt 0.875000 0.204545 -vt 0.958333 0.181818 -vt 0.875000 0.181818 -vt 0.833333 0.204545 -vt 0.875000 0.181818 -vt 0.875000 0.204545 -vt 0.958333 0.227273 -vt 0.958333 0.250000 -vt 0.875000 0.022727 -vt 0.833333 -0.000000 -vt 0.875000 -0.000000 -vt 0.916667 0.022727 -vt 0.833333 0.181818 -vt 0.833333 0.022727 -vt 0.958333 0.022727 -vt 0.916667 0.181818 -vt 1.000000 0.022727 -vt 0.958333 0.181818 -vt 0.875000 0.022727 -vt 0.833333 -0.000000 -vt 0.875000 -0.000000 -vt 0.833333 0.204545 -vt 0.875000 0.181818 -vt 0.875000 0.204545 -vt 0.916667 0.022727 -vt 0.833333 0.181818 -vt 0.833333 0.022727 -vt 0.958333 0.022727 -vt 0.916667 0.181818 -vt 1.000000 0.022727 -vt 0.958333 0.181818 -vt 0.875000 0.250000 -vt 0.958333 0.272727 -vt 0.875000 0.272727 -vt 0.958333 0.204545 -vt 0.875000 0.227273 -vt 0.875000 0.204545 -vt 0.958333 0.181818 -vt 0.875000 0.181818 -vt 0.958333 0.227273 -vt 0.958333 0.250000 -vt 0.708333 0.159091 -vt 0.666667 0.170455 -vt 0.666667 0.159091 -vt 0.708333 0.181818 -vt 0.666667 0.193182 -vt 0.666667 0.181818 -vt 0.708333 0.170455 -vt 0.708333 0.193182 -vt 0.666667 0.204545 -vt 0.708333 0.193182 -vt 0.666667 0.204545 -vt 0.666667 0.193182 -vt 0.708333 0.170455 -vt 0.666667 0.181818 -vt 0.666667 0.170455 -vt 0.708333 0.181818 -vt 0.708333 0.159091 -vt 0.666667 0.159091 -vt 0.708333 0.159091 -vt 0.666667 0.170455 -vt 0.666667 0.159091 -vt 0.708333 0.181818 -vt 0.666667 0.193182 -vt 0.666667 0.181818 -vt 0.708333 0.193182 -vt 0.666667 0.204545 -vt 0.666667 0.193182 -vt 0.708333 0.170455 -vt 0.666667 0.181818 -vt 0.666667 0.170455 -vt 0.708333 0.170455 -vt 0.666667 0.181818 -vt 0.666667 0.170455 -vt 0.708333 0.193182 -vt 0.666667 0.204545 -vt 0.666667 0.193182 -vt 0.708333 0.159091 -vt 0.666667 0.159091 -vt 0.708333 0.181818 -vt 0.708333 0.170455 -vt 0.708333 0.193182 -vt 0.666667 0.204545 -vt 0.708333 0.193182 -vt 0.666667 0.204545 -vt 0.666667 0.193182 -vt 0.708333 0.170455 -vt 0.666667 0.181818 -vt 0.666667 0.170455 -vt 0.708333 0.181818 -vt 0.708333 0.159091 -vt 0.666667 0.159091 -vt 0.708333 0.159091 -vt 0.666667 0.170455 -vt 0.666667 0.159091 -vt 0.708333 0.181818 -vt 0.666667 0.193182 -vt 0.666667 0.181818 -vt 0.708333 0.170455 -vt 0.708333 0.193182 -vt 0.666667 0.204545 -vt 0.708333 0.181818 -vt 0.708333 0.159091 -vt 0.666667 0.159091 -vt 0.875000 0.272727 -vt 0.958333 0.340909 -vt 0.833333 0.272727 -vt 0.833333 0.272727 -vt 0.958333 0.318182 -vt 0.958333 0.340909 -vt 0.958333 0.318182 -vt 0.833333 0.272727 -vt 0.875000 0.272727 -vt 0.958333 0.340909 -vt 0.875000 0.272727 -vt 0.958333 0.318182 -vt 0.958333 0.318182 -vt 0.833333 0.272727 -vt 0.875000 0.272727 -vt 0.958333 0.340909 -vt 0.875000 0.272727 -vt 0.958333 0.318182 -vt 0.958333 0.340909 -vt 0.875000 0.272727 -vt 0.833333 0.272727 -vt 0.958333 0.318182 -vt 0.833333 0.272727 -vt 0.958333 0.340909 -vt 0.833333 0.272727 -vt 0.958333 0.318182 -vt 0.875000 0.272727 -vt 0.875000 0.272727 -vt 0.958333 0.340909 -vt 0.958333 0.318182 -vt 0.833333 0.272727 -vt 0.958333 0.318182 -vt 0.875000 0.272727 -vt 0.875000 0.272727 -vt 0.958333 0.340909 -vt 0.958333 0.318182 -vt 0.833333 0.863636 -vt 0.833333 0.863636 -vt 1.000000 0.181818 -vt 1.000000 0.181818 -vt 1.000000 0.181818 -vt 1.000000 0.181818 -vt 0.708333 0.204545 -vt 0.708333 0.204545 -vt 0.708333 0.204545 -vt 0.708333 0.204545 -vt 0.708333 0.204545 -vt 0.708333 0.204545 -vt 0.708333 0.204545 -vt 0.958333 0.318182 -vt 0.875000 0.272727 -vt 0.958333 0.340909 -vt 0.833333 0.272727 -vt 0.958333 0.340909 -vt 0.833333 0.272727 -vt 0.958333 0.318182 -vt 0.875000 0.272727 -vt 0.958333 0.340909 -vt 0.833333 0.272727 -vt 0.958333 0.340909 -vt 0.833333 0.272727 -vn 0.0000 -1.0000 0.0000 +f 55/97/11 56/98/11 57/99/11 +f 58/100/11 59/101/11 60/102/11 +f 61/103/12 62/104/12 63/105/12 +f 64/106/12 65/107/12 66/108/12 +f 67/109/12 68/110/12 69/111/12 +f 70/112/12 71/113/12 72/114/12 +f 73/115/11 74/116/11 75/117/11 +f 76/118/11 77/119/11 78/120/11 +f 79/121/13 76/122/13 71/123/13 +f 72/124/14 77/119/14 70/112/14 +f 80/125/13 73/126/13 68/127/13 +f 69/128/14 74/116/14 67/109/14 +f 70/112/15 81/129/15 79/130/15 +f 71/123/16 78/131/16 72/124/16 +f 67/109/15 82/132/15 80/133/15 +f 68/127/16 75/134/16 69/128/16 +f 83/135/13 55/136/13 62/137/13 +f 63/138/14 56/98/14 61/103/14 +f 84/139/13 58/140/13 65/141/13 +f 66/142/14 59/101/14 64/106/14 +f 61/103/15 85/143/15 83/144/15 +f 62/137/16 57/145/16 63/138/16 +f 64/106/15 86/146/15 84/147/15 +f 65/141/16 60/148/16 66/142/16 +f 87/149/11 88/150/11 89/151/11 +f 90/152/11 91/153/11 92/154/11 +f 88/150/11 91/153/11 93/155/11 +f 94/156/11 95/157/11 96/158/11 +f 97/159/11 95/157/11 98/160/11 +f 99/161/11 94/156/11 100/162/11 +f 101/163/16 102/164/16 95/165/16 +f 94/156/17 103/166/17 100/167/17 +f 95/165/18 104/168/18 98/160/18 +f 96/158/15 105/169/15 94/156/15 +f 99/161/19 106/170/19 101/163/19 +f 97/171/20 107/172/20 96/158/20 +f 108/173/12 102/174/12 107/172/12 +f 105/169/12 102/174/12 106/175/12 +f 109/176/12 105/169/12 106/175/12 +f 110/177/13 111/178/13 112/179/13 +f 113/180/12 112/181/12 114/182/12 +f 115/183/14 114/182/14 116/184/14 +f 111/178/11 115/183/11 116/184/11 +f 117/185/13 118/186/13 119/187/13 +f 120/188/12 119/189/12 121/190/12 +f 122/191/14 121/190/14 123/192/14 +f 118/186/11 122/191/11 123/192/11 +f 124/193/13 125/194/13 126/195/13 +f 127/196/12 126/197/12 128/198/12 +f 129/199/14 128/198/14 130/200/14 +f 125/194/11 129/199/11 130/200/11 +f 131/201/13 132/202/13 133/203/13 +f 134/204/12 133/205/12 135/206/12 +f 136/207/14 135/206/14 137/208/14 +f 132/202/11 136/207/11 137/208/11 +f 138/209/13 139/210/13 140/211/13 +f 141/212/12 140/213/12 142/214/12 +f 143/215/14 142/214/14 144/216/14 +f 139/210/11 143/215/11 144/216/11 +f 145/217/13 146/218/13 147/219/13 +f 148/220/12 147/221/12 149/222/12 +f 150/223/14 149/222/14 151/224/14 +f 146/218/11 150/223/11 151/224/11 +f 152/225/15 153/226/15 154/227/15 +f 155/228/15 156/229/15 157/230/15 +f 158/231/15 159/232/15 160/233/15 +f 161/234/15 162/235/15 163/236/15 +f 164/237/15 165/238/15 166/239/15 +f 167/240/15 168/241/15 169/242/15 +f 170/243/16 171/244/16 91/245/16 +f 88/150/17 172/246/17 89/247/17 +f 91/245/18 173/248/18 92/154/18 +f 93/155/15 174/249/15 88/150/15 +f 87/149/19 175/250/19 170/243/19 +f 90/251/20 176/252/20 93/155/20 +f 177/253/12 171/254/12 176/252/12 +f 174/249/12 171/254/12 175/255/12 +f 178/256/12 174/249/12 175/255/12 +f 179/257/16 180/258/16 181/259/16 +f 182/260/16 183/261/16 184/262/16 +f 185/263/16 186/264/16 187/265/16 +f 188/266/16 189/267/16 190/268/16 +f 191/269/16 192/270/16 193/271/16 +f 194/272/16 195/273/16 196/274/16 +f 55/97/11 85/143/11 56/98/11 +f 58/100/11 86/146/11 59/101/11 +f 61/103/12 83/144/12 62/104/12 +f 64/106/12 84/147/12 65/107/12 +f 67/109/12 80/133/12 68/110/12 +f 70/112/12 79/130/12 71/113/12 +f 73/115/11 82/132/11 74/116/11 +f 76/118/11 81/129/11 77/119/11 +f 79/121/13 81/275/13 76/122/13 +f 72/124/14 78/131/14 77/119/14 +f 80/125/13 82/276/13 73/126/13 +f 69/128/14 75/134/14 74/116/14 +f 70/112/15 77/119/15 81/129/15 +f 71/123/16 76/122/16 78/131/16 +f 67/109/15 74/116/15 82/132/15 +f 68/127/16 73/126/16 75/134/16 +f 83/135/13 85/277/13 55/136/13 +f 63/138/14 57/145/14 56/98/14 +f 84/139/13 86/278/13 58/140/13 +f 66/142/14 60/148/14 59/101/14 +f 61/103/15 56/98/15 85/143/15 +f 62/137/16 55/136/16 57/145/16 +f 64/106/15 59/101/15 86/146/15 +f 65/141/16 58/140/16 60/148/16 +f 87/149/11 170/279/11 88/150/11 +f 90/152/11 93/155/11 91/153/11 +f 88/150/11 170/279/11 91/153/11 +f 94/156/11 101/280/11 95/157/11 +f 97/159/11 96/158/11 95/157/11 +f 99/161/11 101/280/11 94/156/11 +f 101/163/16 106/170/16 102/164/16 +f 94/156/17 105/169/17 103/166/17 +f 95/165/18 102/164/18 104/168/18 +f 96/158/15 107/172/15 105/169/15 +f 99/161/19 109/281/19 106/170/19 +f 97/171/20 108/282/20 107/172/20 +f 108/173/12 104/283/12 102/174/12 +f 105/169/12 107/172/12 102/174/12 +f 109/176/12 103/284/12 105/169/12 +f 110/177/13 197/285/13 111/178/13 +f 113/180/12 110/286/12 112/181/12 +f 115/183/14 113/180/14 114/182/14 +f 111/178/11 197/285/11 115/183/11 +f 117/185/13 198/287/13 118/186/13 +f 120/188/12 117/288/12 119/189/12 +f 122/191/14 120/188/14 121/190/14 +f 118/186/11 198/287/11 122/191/11 +f 124/193/13 199/289/13 125/194/13 +f 127/196/12 124/290/12 126/197/12 +f 129/199/14 127/196/14 128/198/14 +f 125/194/11 199/289/11 129/199/11 +f 131/201/13 200/291/13 132/202/13 +f 134/204/12 131/292/12 133/205/12 +f 136/207/14 134/204/14 135/206/14 +f 132/202/11 200/291/11 136/207/11 +f 138/209/13 201/293/13 139/210/13 +f 141/212/12 138/294/12 140/213/12 +f 143/215/14 141/212/14 142/214/14 +f 139/210/11 201/293/11 143/215/11 +f 145/217/13 202/295/13 146/218/13 +f 148/220/12 145/296/12 147/221/12 +f 150/223/14 148/220/14 149/222/14 +f 146/218/11 202/295/11 150/223/11 +f 152/225/15 203/297/15 153/226/15 +f 155/228/15 204/298/15 156/229/15 +f 158/231/15 205/299/15 159/232/15 +f 161/234/15 206/300/15 162/235/15 +f 164/237/15 207/301/15 165/238/15 +f 167/240/15 208/302/15 168/241/15 +f 170/243/16 175/250/16 171/244/16 +f 88/150/17 174/249/17 172/246/17 +f 91/245/18 171/244/18 173/248/18 +f 93/155/15 176/252/15 174/249/15 +f 87/149/19 178/303/19 175/250/19 +f 90/251/20 177/304/20 176/252/20 +f 177/253/12 173/305/12 171/254/12 +f 174/249/12 176/252/12 171/254/12 +f 178/256/12 172/306/12 174/249/12 +f 179/257/16 209/307/16 180/258/16 +f 182/260/16 210/308/16 183/261/16 +f 185/263/16 211/309/16 186/264/16 +f 188/266/16 212/310/16 189/267/16 +f 191/269/16 213/311/16 192/270/16 +f 194/272/16 214/312/16 195/273/16 +o V2_Pivot +v 0.750000 2.750000 -1.625000 +v 0.500000 2.750000 -1.875000 +v 0.500000 2.750000 -1.625000 +v 0.750000 1.250000 -1.875000 +v 0.750000 1.250000 -1.625000 +v 0.500000 1.250000 -1.625000 +v 0.500000 1.250000 -1.875000 +v 0.750000 2.750000 -1.875000 +v -0.500000 2.750000 -1.625000 +v -0.750000 2.750000 -1.875000 +v -0.750000 2.750000 -1.625000 +v -0.500000 1.250000 -1.875000 +v -0.500000 1.250000 -1.625000 +v -0.750000 1.250000 -1.625000 +v -0.750000 1.250000 -1.875000 +v -0.500000 2.750000 -1.875000 +v 0.687500 2.750000 -1.812500 +v 0.687500 3.750000 -1.687500 +v 0.687500 2.750000 -1.687500 +v 0.562500 2.750000 -1.687500 +v 0.562500 3.750000 -1.812500 +v 0.562500 2.750000 -1.812500 +v 0.687500 3.750000 -1.812500 +v 0.562500 3.750000 -1.687500 +v -0.562500 2.750000 -1.812500 +v -0.562500 3.750000 -1.687500 +v -0.562500 2.750000 -1.687500 +v -0.687500 2.750000 -1.687500 +v -0.687500 3.750000 -1.812500 +v -0.687500 2.750000 -1.812500 +v -0.562500 3.750000 -1.812500 +v -0.687500 3.750000 -1.687500 +vt 0.836735 0.184211 +vt 0.857143 0.157895 +vt 0.857143 0.184211 +vt 0.918367 -0.000000 +vt 0.897959 0.157895 +vt 0.897959 -0.000000 +vt 0.877551 -0.000000 +vt 0.857143 -0.000000 +vt 0.836735 0.157895 +vt 0.836735 -0.000000 +vt 0.877551 0.157895 +vt 0.836735 0.184211 +vt 0.857143 0.157895 +vt 0.857143 0.184211 +vt 0.918367 -0.000000 +vt 0.897959 0.157895 +vt 0.897959 -0.000000 +vt 0.877551 -0.000000 +vt 0.857143 -0.000000 +vt 0.836735 0.157895 +vt 0.836735 -0.000000 +vt 0.877551 0.157895 +vt 0.897959 0.157895 +vt 0.887755 0.263158 +vt 0.887755 0.157895 +vt 0.877551 0.157895 +vt 0.867347 0.263158 +vt 0.867347 0.157895 +vt 0.857143 0.263158 +vt 0.857143 0.157895 +vt 0.877551 0.263158 +vt 0.897959 0.157895 +vt 0.887755 0.263158 +vt 0.887755 0.157895 +vt 0.877551 0.157895 +vt 0.867347 0.263158 +vt 0.867347 0.157895 +vt 0.857143 0.263158 +vt 0.857143 0.157895 +vt 0.877551 0.263158 +vt 0.918367 0.157895 +vt 0.918367 0.157895 +vt 0.897959 0.263158 +vt 0.897959 0.263158 vn 0.0000 1.0000 0.0000 vn 1.0000 0.0000 0.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0000 1.0000 s off -f 57/71/9 59/72/9 58/73/9 -f 61/74/9 63/75/9 62/76/9 -f 67/77/10 65/78/10 66/79/10 -f 71/80/10 69/81/10 70/82/10 -f 60/83/11 67/84/11 59/85/11 -f 58/86/12 65/78/12 57/71/12 -f 61/74/13 72/87/13 64/88/13 -f 63/89/14 70/90/14 62/91/14 -f 57/71/13 68/92/13 60/93/13 -f 59/85/14 66/94/14 58/86/14 -f 64/95/11 71/96/11 63/89/11 -f 62/91/12 69/81/12 61/74/12 -f 75/97/13 74/98/13 73/99/13 -f 78/100/14 79/101/14 77/102/14 -f 73/103/12 79/101/12 75/97/12 -f 75/97/10 80/104/10 76/105/10 -f 74/106/9 77/107/9 73/103/9 -f 76/108/11 78/109/11 74/106/11 -f 83/110/13 82/111/13 81/112/13 -f 86/113/14 87/114/14 85/115/14 -f 81/116/12 87/114/12 83/110/12 -f 83/110/10 88/117/10 84/118/10 -f 82/119/9 85/120/9 81/116/9 -f 84/121/11 86/122/11 82/119/11 -f 90/123/14 91/124/14 89/125/14 -f 95/126/13 93/127/13 94/128/13 -f 91/129/9 94/128/9 89/130/9 -f 102/131/14 103/132/14 101/133/14 -f 90/123/10 96/134/10 92/135/10 -f 99/136/13 98/137/13 97/138/13 -f 97/139/12 103/132/12 99/136/12 -f 99/136/10 104/140/10 100/141/10 -f 98/142/9 101/143/9 97/139/9 -f 100/144/11 102/145/11 98/142/11 -f 107/146/13 106/147/13 105/148/13 -f 110/149/14 111/150/14 109/151/14 -f 105/152/12 111/150/12 107/146/12 -f 107/146/10 112/153/10 108/154/10 -f 106/155/9 109/156/9 105/152/9 -f 108/157/11 110/158/11 106/155/11 -f 114/159/14 115/160/14 113/161/14 -f 119/162/13 117/163/13 118/164/13 -f 115/165/9 118/164/9 113/166/9 -f 114/159/10 120/167/10 116/168/10 -f 127/169/9 124/170/9 122/171/9 -f 125/172/10 121/173/10 123/174/10 -f 128/175/13 123/174/13 124/170/13 -f 126/176/14 122/177/14 121/173/14 -f 131/178/14 135/179/14 136/180/14 -f 129/181/13 134/182/13 133/183/13 -f 132/184/10 136/180/10 134/182/10 -f 130/185/9 133/183/9 135/186/9 -f 143/187/9 140/188/9 138/189/9 -f 141/190/10 137/191/10 139/192/10 -f 171/193/14 175/194/14 176/195/14 -f 169/196/13 174/197/13 173/198/13 -f 160/199/13 155/200/13 156/201/13 -f 158/202/14 154/203/14 153/204/14 -f 159/205/9 156/201/9 154/206/9 -f 157/207/10 153/204/10 155/200/10 -f 144/208/13 139/192/13 140/188/13 -f 142/209/14 138/210/14 137/191/14 -f 147/211/14 151/212/14 152/213/14 -f 145/214/13 150/215/13 149/216/13 -f 148/217/10 152/213/10 150/215/10 -f 146/218/9 149/216/9 151/219/9 -f 167/220/9 164/221/9 162/222/9 -f 165/223/10 161/224/10 163/225/10 -f 168/226/13 163/225/13 164/221/13 -f 166/227/14 162/228/14 161/224/14 -f 172/229/10 176/195/10 174/197/10 -f 170/230/9 173/198/9 175/231/9 -f 178/232/11 179/233/11 177/234/11 -f 183/235/12 182/236/12 181/237/12 -f 191/238/12 187/239/12 188/240/12 -f 185/241/11 189/242/11 186/243/11 -f 199/244/12 195/245/12 196/246/12 -f 193/247/11 197/248/11 194/249/11 -f 203/250/12 202/251/12 201/252/12 -f 206/253/11 207/254/11 205/255/11 -f 211/256/11 215/257/11 212/258/11 -f 213/259/12 209/260/12 210/261/12 -f 219/262/11 223/263/11 220/264/11 -f 221/265/12 217/266/12 218/267/12 -f 57/71/9 60/93/9 59/72/9 -f 61/74/9 64/88/9 63/75/9 -f 67/77/10 68/92/10 65/78/10 -f 71/80/10 72/87/10 69/81/10 -f 60/83/11 68/268/11 67/84/11 -f 58/86/12 66/94/12 65/78/12 -f 61/74/13 69/81/13 72/87/13 -f 63/89/14 71/96/14 70/90/14 -f 57/71/13 65/78/13 68/92/13 -f 59/85/14 67/84/14 66/94/14 -f 64/95/11 72/269/11 71/96/11 -f 62/91/12 70/90/12 69/81/12 -f 75/97/13 76/105/13 74/98/13 -f 78/100/14 80/104/14 79/101/14 -f 73/103/12 77/107/12 79/101/12 -f 75/97/10 79/101/10 80/104/10 -f 74/106/9 78/109/9 77/107/9 -f 76/108/11 80/270/11 78/109/11 -f 83/110/13 84/118/13 82/111/13 -f 86/113/14 88/117/14 87/114/14 -f 81/116/12 85/120/12 87/114/12 -f 83/110/10 87/114/10 88/117/10 -f 82/119/9 86/122/9 85/120/9 -f 84/121/11 88/271/11 86/122/11 -f 90/123/14 92/135/14 91/124/14 -f 95/126/13 96/134/13 93/127/13 -f 91/129/9 95/126/9 94/128/9 -f 102/131/14 104/140/14 103/132/14 -f 90/123/10 93/127/10 96/134/10 -f 99/136/13 100/141/13 98/137/13 -f 97/139/12 101/143/12 103/132/12 -f 99/136/10 103/132/10 104/140/10 -f 98/142/9 102/145/9 101/143/9 -f 100/144/11 104/272/11 102/145/11 -f 107/146/13 108/154/13 106/147/13 -f 110/149/14 112/153/14 111/150/14 -f 105/152/12 109/156/12 111/150/12 -f 107/146/10 111/150/10 112/153/10 -f 106/155/9 110/158/9 109/156/9 -f 108/157/11 112/273/11 110/158/11 -f 114/159/14 116/168/14 115/160/14 -f 119/162/13 120/167/13 117/163/13 -f 115/165/9 119/162/9 118/164/9 -f 114/159/10 117/163/10 120/167/10 -f 127/169/9 128/175/9 124/170/9 -f 125/172/10 126/176/10 121/173/10 -f 128/175/13 125/172/13 123/174/13 -f 126/176/14 127/274/14 122/177/14 -f 131/178/14 130/275/14 135/179/14 -f 129/181/13 132/184/13 134/182/13 -f 132/184/10 131/178/10 136/180/10 -f 130/185/9 129/181/9 133/183/9 -f 143/187/9 144/208/9 140/188/9 -f 141/190/10 142/209/10 137/191/10 -f 171/193/14 170/276/14 175/194/14 -f 169/196/13 172/229/13 174/197/13 -f 160/199/13 157/207/13 155/200/13 -f 158/202/14 159/277/14 154/203/14 -f 159/205/9 160/199/9 156/201/9 -f 157/207/10 158/202/10 153/204/10 -f 144/208/13 141/190/13 139/192/13 -f 142/209/14 143/278/14 138/210/14 -f 147/211/14 146/279/14 151/212/14 -f 145/214/13 148/217/13 150/215/13 -f 148/217/10 147/211/10 152/213/10 -f 146/218/9 145/214/9 149/216/9 -f 167/220/9 168/226/9 164/221/9 -f 165/223/10 166/227/10 161/224/10 -f 168/226/13 165/223/13 163/225/13 -f 166/227/14 167/280/14 162/228/14 -f 172/229/10 171/193/10 176/195/10 -f 170/230/9 169/196/9 173/198/9 -f 178/232/11 180/281/11 179/233/11 -f 183/235/12 184/282/12 182/236/12 -f 191/238/12 192/283/12 187/239/12 -f 185/241/11 190/284/11 189/242/11 -f 199/244/12 200/285/12 195/245/12 -f 193/247/11 198/286/11 197/248/11 -f 203/250/12 204/287/12 202/251/12 -f 206/253/11 208/288/11 207/254/11 -f 211/256/11 216/289/11 215/257/11 -f 213/259/12 214/290/12 209/260/12 -f 219/262/11 224/291/11 223/263/11 -f 221/265/12 222/292/12 217/266/12 -o ABM_Pad -v -1.000000 2.000000 1.000000 -v 1.000000 2.000000 1.000000 -v -1.000000 2.000000 -1.000000 -v 1.000000 2.000000 -1.000000 +f 215/313/21 216/314/21 217/315/21 +f 218/316/22 215/317/22 219/318/22 +f 220/319/23 216/314/23 221/320/23 +f 221/320/24 222/321/24 218/322/24 +f 219/318/25 217/323/25 220/319/25 +f 223/324/21 224/325/21 225/326/21 +f 226/327/22 223/328/22 227/329/22 +f 228/330/23 224/325/23 229/331/23 +f 229/331/24 230/332/24 226/333/24 +f 227/329/25 225/334/25 228/330/25 +f 231/335/22 232/336/22 233/337/22 +f 234/338/23 235/339/23 236/340/23 +f 236/340/24 237/341/24 231/342/24 +f 233/337/25 238/343/25 234/338/25 +f 239/344/22 240/345/22 241/346/22 +f 242/347/23 243/348/23 244/349/23 +f 244/349/24 245/350/24 239/351/24 +f 241/346/25 246/352/25 242/347/25 +f 215/313/21 222/321/21 216/314/21 +f 218/316/22 222/353/22 215/317/22 +f 220/319/23 217/323/23 216/314/23 +f 221/320/24 216/314/24 222/321/24 +f 219/318/25 215/317/25 217/323/25 +f 223/324/21 230/332/21 224/325/21 +f 226/327/22 230/354/22 223/328/22 +f 228/330/23 225/334/23 224/325/23 +f 229/331/24 224/325/24 230/332/24 +f 227/329/25 223/328/25 225/334/25 +f 231/335/22 237/355/22 232/336/22 +f 234/338/23 238/343/23 235/339/23 +f 236/340/24 235/339/24 237/341/24 +f 233/337/25 232/336/25 238/343/25 +f 239/344/22 245/356/22 240/345/22 +f 242/347/23 246/352/23 243/348/23 +f 244/349/24 243/348/24 245/350/24 +f 241/346/25 240/345/25 246/352/25 +o V2_Rope +v 0.000000 8.875000 1.750000 +v 0.000000 8.875000 1.375000 +v 0.000000 9.000000 1.750000 +v 0.000000 8.875000 0.375000 +v 0.000000 8.875000 0.000000 +v 0.000000 9.000000 0.000000 +v 0.000000 8.750000 1.375000 +v 0.000000 8.875000 1.750000 +v 0.000000 8.875000 1.375000 +v 0.000000 8.750000 1.375000 +v 0.000000 8.875000 0.000000 +v 0.000000 8.875000 0.375000 +v 0.000000 9.000000 0.000000 +v 0.000000 8.750000 0.375000 +v 0.000000 9.000000 1.750000 +v 0.000000 8.750000 0.375000 +v 0.312500 2.062500 2.062500 +v 0.362056 2.049556 2.044194 +v 0.356694 2.062500 2.044194 +v 0.250000 2.062500 2.000000 +v 0.299556 1.987056 2.044194 +v 0.268306 2.062500 2.044194 +v 0.312500 2.062500 1.937500 +v 0.299556 1.987056 1.955806 +v 0.268306 2.062500 1.955806 +v 0.362056 2.049556 1.955806 +v 0.330806 2.018306 1.937500 +v 0.330806 2.018306 2.062500 +v 0.286612 1.974112 2.000000 +v 0.375000 2.000000 1.937500 +v 0.375000 2.000000 2.062500 +v 0.375000 1.955806 1.955806 +v 0.375000 1.937500 2.000000 +v 0.375000 2.044194 2.044194 +v 0.375000 1.955806 2.044194 +v 0.375000 2.062500 2.000000 +v 0.356694 2.062500 1.955806 +v 0.375000 2.044194 1.955806 +v 0.500000 2.062500 2.000000 +v 0.500000 2.044194 1.955806 +v 0.500000 2.000000 1.937500 +v 0.500000 2.000000 2.062500 +v 0.500000 1.955806 1.955806 +v 0.500000 1.937500 2.000000 +v 0.500000 2.044194 2.044194 +v 0.500000 1.955806 2.044194 +v 0.375000 5.312500 2.000000 +v 0.312500 5.312500 2.062500 +v 0.250000 5.312500 2.000000 +v 0.312500 5.312500 1.937500 +v 0.356694 5.312500 1.955806 +v 0.356694 5.312500 2.044194 +v 0.268306 5.312500 2.044194 +v 0.268306 5.312500 1.955806 +v 0.250000 4.562500 0.250000 +v 0.268306 4.518306 2.000000 +v 0.250000 4.562500 2.000000 +v 0.312500 4.625000 0.250000 +v 0.268306 4.606694 2.000000 +v 0.312500 4.625000 2.000000 +v 0.356694 4.606694 0.250000 +v 0.356694 4.606694 2.000000 +v 0.356694 4.518306 0.250000 +v 0.375000 4.562500 2.000000 +v 0.356694 4.518306 2.000000 +v 0.268306 4.518306 0.250000 +v 0.312500 4.500000 2.000000 +v 0.268306 4.606694 0.250000 +v 0.375000 4.562500 0.250000 +v 0.312500 4.500000 0.250000 +v 0.356694 5.387944 2.012944 +v 0.268306 5.387944 2.012944 +v 0.268306 5.325444 1.950444 +v 0.356694 5.325444 1.950444 +v 0.375000 5.356694 1.981694 +v 0.312500 5.400888 2.025888 +v 0.250000 5.356694 1.981694 +v 0.250000 5.375000 1.937500 +v 0.268306 5.330806 1.937500 +v 0.375000 5.375000 1.937500 +v 0.312500 5.437500 1.937500 +v 0.268306 5.419194 1.937500 +v 0.356694 5.419194 1.937500 +v 0.356694 5.330806 1.937500 +v 0.312500 5.312500 0.187500 +v 0.356694 5.330806 0.187500 +v 0.375000 5.375000 0.187500 +v 0.312500 5.437500 0.187500 +v 0.250000 5.375000 0.187500 +v 0.356694 5.419194 0.187500 +v 0.268306 5.419194 0.187500 +v 0.268306 5.330806 0.187500 +vt 0.408163 0.631579 +vt 0.438776 0.644737 +vt 0.408163 0.644737 +vt 0.520408 0.644737 +vt 0.551020 0.631579 +vt 0.551020 0.644737 +vt 0.438776 0.631579 +vt 0.408163 0.631579 +vt 0.438776 0.644737 +vt 0.438776 0.631579 +vt 0.551020 0.631579 +vt 0.520408 0.644737 +vt 0.551020 0.644737 +vt 0.520408 0.631579 +vt 0.408163 0.644737 +vt 0.520408 0.631579 +vt 0.816327 0.342105 +vt 0.821429 0.335526 +vt 0.821429 0.342105 +vt 0.806122 0.342105 +vt 0.811224 0.335526 +vt 0.811224 0.342105 +vt 0.795918 0.342105 +vt 0.801020 0.335526 +vt 0.801020 0.342105 +vt 0.836735 0.342105 +vt 0.831633 0.335526 +vt 0.836735 0.335526 +vt 0.816327 0.335526 +vt 0.806122 0.335526 +vt 0.836735 0.328947 +vt 0.816327 0.328947 +vt 0.801020 0.328947 +vt 0.806122 0.328947 +vt 0.821429 0.328947 +vt 0.811224 0.328947 +vt 0.795918 0.328947 +vt 0.826531 0.335526 +vt 0.831633 0.342105 +vt 0.831633 0.328947 +vt 0.826531 0.315789 +vt 0.831633 0.315789 +vt 0.836735 0.315789 +vt 0.826531 0.328947 +vt 0.816327 0.315789 +vt 0.801020 0.315789 +vt 0.806122 0.315789 +vt 0.821429 0.315789 +vt 0.811224 0.315789 +vt 0.826531 0.684211 +vt 0.826531 0.342105 +vt 0.816327 0.684211 +vt 0.806122 0.684211 +vt 0.795918 0.684211 +vt 0.831633 0.684211 +vt 0.821429 0.684211 +vt 0.811224 0.684211 +vt 0.801020 0.684211 +vt 0.806122 0.828947 +vt 0.801020 0.697368 +vt 0.806122 0.697368 +vt 0.816327 0.828947 +vt 0.811224 0.697368 +vt 0.816327 0.697368 +vt 0.821429 0.828947 +vt 0.821429 0.697368 +vt 0.831633 0.828947 +vt 0.826531 0.697368 +vt 0.831633 0.697368 +vt 0.801020 0.828947 +vt 0.795918 0.697368 +vt 0.811224 0.828947 +vt 0.826531 0.828947 +vt 0.836735 0.828947 +vt 0.836735 0.697368 +vt 0.821429 0.690789 +vt 0.811224 0.690789 +vt 0.801020 0.690789 +vt 0.831633 0.690789 +vt 0.826531 0.690789 +vt 0.816327 0.690789 +vt 0.806122 0.690789 +vt 0.806122 0.697368 +vt 0.801020 0.697368 +vt 0.826531 0.697368 +vt 0.816327 0.697368 +vt 0.811224 0.697368 +vt 0.821429 0.697368 +vt 0.795918 0.690789 +vt 0.836735 0.690789 +vt 0.831633 0.697368 +vt 0.836735 0.828947 +vt 0.831633 0.828947 +vt 0.826531 0.828947 +vt 0.795918 0.828947 +vt 0.795918 0.697368 +vt 0.816327 0.828947 +vt 0.806122 0.828947 +vt 0.821429 0.828947 +vt 0.811224 0.828947 +vt 0.801020 0.828947 +vt 0.795918 0.335526 +vt 0.795918 0.315789 +vt 0.836735 0.684211 +vt 0.795918 0.828947 +vt 0.836735 0.697368 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0473 -0.0196 0.9987 +vn 0.4617 0.4617 0.7574 +vn 0.6737 0.1363 0.7263 +vn -0.9824 -0.1866 -0.0000 +vn -0.5294 -0.5294 0.6630 +vn -0.7194 -0.1448 0.6794 +vn -0.0473 -0.0196 -0.9987 +vn -0.5294 -0.5294 -0.6630 +vn -0.7194 -0.1448 -0.6794 +vn 0.4617 0.4617 -0.7574 +vn -0.0671 -0.0671 -0.9955 +vn -0.0671 -0.0671 0.9955 +vn -0.7071 -0.7071 -0.0000 +vn -0.0196 -0.0473 -0.9987 +vn -0.0196 -0.0473 0.9987 +vn -0.1448 -0.7194 -0.6794 +vn -0.1866 -0.9824 -0.0000 +vn 0.1363 0.6737 0.7263 +vn -0.1448 -0.7194 0.6794 +vn 0.7071 0.7071 -0.0000 +vn 0.6737 0.1363 -0.7263 +vn 0.1363 0.6737 -0.7263 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.9987 0.0196 0.0473 +vn -0.0000 0.1866 0.9824 +vn -0.9987 0.0196 0.0473 +vn 0.7263 -0.1363 -0.6737 +vn 0.6794 0.1448 0.7194 +vn -0.6794 0.1448 0.7194 +vn -0.7263 -0.1363 -0.6737 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.6630 0.5294 0.5294 +vn -0.6630 0.5294 0.5294 +vn -0.7574 -0.4617 -0.4617 +vn 0.7574 -0.4617 -0.4617 +vn 0.9955 0.0671 0.0671 +vn -0.9955 0.0671 0.0671 +vn -0.9987 0.0473 0.0196 +vn -0.7263 -0.6737 -0.1363 +vn 0.9987 0.0473 0.0196 +vn 0.0000 0.9824 0.1866 +vn -0.6794 0.7194 0.1448 +vn 0.6794 0.7194 0.1448 +vn 0.7263 -0.6737 -0.1363 +s off +f 247/357/26 248/358/26 249/359/26 +f 250/360/26 251/361/26 252/362/26 +f 253/363/26 250/360/26 248/358/26 +f 254/364/27 255/365/27 256/366/27 +f 257/367/27 258/368/27 259/369/27 +f 258/368/27 256/366/27 255/365/27 +f 247/357/26 253/363/26 248/358/26 +f 250/360/26 260/370/26 251/361/26 +f 253/363/26 260/370/26 250/360/26 +f 254/364/27 261/371/27 255/365/27 +f 257/367/27 262/372/27 258/368/27 +f 258/368/27 262/372/27 256/366/27 +s 1 +f 263/373/28 264/374/29 265/375/30 +f 266/376/31 267/377/32 268/378/33 +f 269/379/34 270/380/35 271/381/36 +f 269/382/34 272/383/37 273/384/38 +f 263/373/28 267/377/32 274/385/39 +f 271/381/36 275/386/40 266/376/31 +f 272/383/37 276/387/41 273/384/38 +f 267/377/32 277/388/42 274/385/39 +f 275/386/40 278/389/43 279/390/44 +f 264/374/29 277/388/42 280/391/45 +f 275/386/40 281/392/46 267/377/32 +f 270/380/35 276/393/41 278/389/43 +f 265/375/30 264/374/29 282/394/47 +f 264/374/29 280/391/45 282/394/47 +f 282/394/47 272/383/37 283/395/48 +f 272/383/37 282/394/47 284/396/49 +f 284/396/49 285/397/50 286/398/51 +f 284/396/49 287/399/52 276/387/41 +f 280/391/45 285/397/50 282/400/47 +f 281/392/46 288/401/53 277/388/42 +f 279/390/44 289/402/54 290/403/55 +f 277/388/42 291/404/56 280/391/45 +f 279/390/44 292/405/57 281/392/46 +f 276/393/41 289/402/54 278/389/43 +f 283/395/48 293/406/58 282/407/47 +f 265/375/30 294/408/59 263/373/28 +f 268/378/33 295/409/60 266/376/31 +f 271/381/36 296/410/54 269/379/34 +f 269/382/34 297/411/61 283/395/48 +f 282/407/47 298/412/62 265/375/30 +f 263/373/28 299/413/63 268/378/33 +f 266/376/31 300/414/64 271/381/36 +f 301/415/27 302/416/40 303/417/27 +f 304/418/50 305/419/65 306/420/50 +f 307/421/47 306/420/50 308/422/47 +f 309/423/66 310/424/26 311/425/66 +f 312/426/40 313/427/55 302/416/40 +f 314/428/65 303/417/27 305/419/65 +f 315/429/26 308/422/47 310/424/26 +f 316/430/55 311/425/66 313/431/55 +f 293/406/58 317/432/67 298/412/62 +f 294/408/59 318/433/68 299/413/63 +f 295/409/60 319/434/69 300/414/64 +f 293/406/58 320/435/70 321/436/71 +f 298/412/62 322/437/56 294/408/59 +f 295/409/60 318/433/68 323/438/72 +f 319/434/69 324/439/73 325/440/74 +f 320/435/70 326/441/75 321/436/71 +f 317/432/67 327/442/76 322/437/56 +f 323/438/72 328/443/77 324/439/73 +f 317/432/67 326/441/75 329/444/78 +f 318/433/68 327/442/76 328/443/77 +f 300/414/64 319/434/69 296/445/54 +f 319/434/69 325/440/74 296/445/54 +f 297/411/61 296/446/54 320/435/70 +f 320/435/70 296/446/54 330/447/79 +f 330/447/79 331/448/55 332/449/66 +f 330/447/79 333/450/26 326/441/75 +f 325/440/74 331/451/55 296/452/54 +f 329/444/78 334/453/50 327/442/76 +f 328/443/77 335/454/27 324/439/73 +f 326/441/75 336/455/47 329/444/78 +f 327/442/76 337/456/65 328/443/77 +f 325/440/74 335/454/27 338/457/40 +f 263/373/28 274/385/39 264/374/29 +f 266/376/31 275/386/40 267/377/32 +f 269/379/34 273/458/38 270/380/35 +f 269/382/34 283/395/48 272/383/37 +f 263/373/28 268/378/33 267/377/32 +f 271/381/36 270/380/35 275/386/40 +f 272/383/37 284/396/49 276/387/41 +f 267/377/32 281/392/46 277/388/42 +f 275/386/40 270/380/35 278/389/43 +f 264/374/29 274/385/39 277/388/42 +f 275/386/40 279/390/44 281/392/46 +f 270/380/35 273/458/38 276/393/41 +f 284/396/49 282/400/47 285/397/50 +f 284/396/49 286/398/51 287/399/52 +f 280/391/45 291/404/56 285/397/50 +f 281/392/46 292/405/57 288/401/53 +f 279/390/44 278/389/43 289/402/54 +f 277/388/42 288/401/53 291/404/56 +f 279/390/44 290/403/55 292/405/57 +f 276/393/41 287/459/52 289/402/54 +f 283/395/48 297/411/61 293/406/58 +f 265/375/30 298/412/62 294/408/59 +f 268/378/33 299/413/63 295/409/60 +f 271/381/36 300/414/64 296/410/54 +f 269/382/34 296/460/54 297/411/61 +f 282/407/47 293/406/58 298/412/62 +f 263/373/28 294/408/59 299/413/63 +f 266/376/31 295/409/60 300/414/64 +f 301/415/27 312/426/40 302/416/40 +f 304/418/50 314/428/65 305/419/65 +f 307/421/47 304/418/50 306/420/50 +f 309/423/66 315/429/26 310/424/26 +f 312/426/40 316/461/55 313/427/55 +f 314/428/65 301/415/27 303/417/27 +f 315/429/26 307/421/47 308/422/47 +f 316/430/55 309/423/66 311/425/66 +f 293/406/58 321/436/71 317/432/67 +f 294/408/59 322/437/56 318/433/68 +f 295/409/60 323/438/72 319/434/69 +f 293/406/58 297/411/61 320/435/70 +f 298/412/62 317/432/67 322/437/56 +f 295/409/60 299/413/63 318/433/68 +f 319/434/69 323/438/72 324/439/73 +f 320/435/70 330/447/79 326/441/75 +f 317/432/67 329/444/78 327/442/76 +f 323/438/72 318/433/68 328/443/77 +f 317/432/67 321/436/71 326/441/75 +f 318/433/68 322/437/56 327/442/76 +f 330/447/79 296/462/54 331/448/55 +f 330/447/79 332/449/66 333/450/26 +f 325/440/74 338/457/40 331/451/55 +f 329/444/78 336/455/47 334/453/50 +f 328/443/77 337/456/65 335/454/27 +f 326/441/75 333/450/26 336/455/47 +f 327/442/76 334/453/50 337/456/65 +f 325/440/74 324/439/73 335/454/27 +o V2_Pad +v 1.500000 1.500000 -1.500000 +v -1.500000 1.500000 -2.000000 +v -1.500000 1.500000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.500000 -2.000000 +v -1.500000 1.000000 -2.000000 +v 1.500000 1.000000 -2.000000 +v -0.500000 2.000000 0.500000 +v 1.500000 2.000000 1.500000 +v 0.500000 2.000000 0.500000 +v 1.500000 2.000000 -1.500000 +v 0.500000 2.000000 -0.500000 +v -1.500000 2.000000 -1.500000 +v -0.500000 2.000000 -0.500000 +v -1.500000 2.000000 1.500000 +v 0.500000 2.000000 -0.500000 v -0.500000 2.000000 0.500000 v 0.500000 2.000000 0.500000 -v -0.500000 2.000000 -0.500000 -v 0.500000 2.000000 -0.500000 -v -1.000000 1.750000 -1.000000 -v -1.000000 1.750000 1.000000 -v 1.000000 1.750000 1.000000 -v 1.000000 1.750000 -1.000000 -v -0.500000 1.750000 -0.500000 +v 1.500000 1.750000 1.500000 v -0.500000 1.750000 0.500000 v 0.500000 1.750000 0.500000 +v 1.500000 1.750000 -1.500000 v 0.500000 1.750000 -0.500000 +v -1.500000 1.750000 -1.500000 +v -0.500000 1.750000 -0.500000 +v -1.500000 1.750000 1.500000 +v 0.750000 1.125000 0.750000 +v 1.250000 1.625000 0.750000 +v 1.250000 1.125000 0.750000 +v 1.250000 1.125000 1.250000 +v 0.750000 1.625000 1.250000 +v 0.750000 1.125000 1.250000 +v 1.250000 1.625000 1.250000 +v 0.750000 1.625000 0.750000 +v 1.375000 1.625000 0.625000 +v 1.375000 1.750000 1.375000 +v 1.375000 1.625000 1.375000 +v 1.375000 1.125000 1.375000 +v 0.625000 1.125000 0.625000 +v 0.625000 1.125000 1.375000 +v 1.375000 1.000000 0.625000 +v 1.375000 1.000000 1.375000 +v 0.625000 1.000000 1.375000 +v 0.625000 1.000000 0.625000 +v 1.375000 1.125000 0.625000 +v 0.625000 1.625000 1.375000 +v 0.625000 1.750000 0.625000 +v 0.625000 1.625000 0.625000 +v 1.375000 1.750000 0.625000 +v 0.625000 1.750000 1.375000 +v 0.250000 10.000000 2.250000 +v -0.250000 10.000000 1.750000 +v -0.250000 10.000000 2.250000 +v 0.250000 1.000000 1.750000 +v 0.250000 1.000000 2.250000 +v -0.250000 1.000000 2.250000 +v -0.250000 1.000000 1.750000 +v 0.250000 10.000000 1.750000 +v 3.750000 2.750000 1.750000 +v 4.000000 2.750000 1.500000 +v 4.000000 2.750000 1.750000 +v 3.750000 1.000000 1.750000 +v 4.000000 1.000000 1.500000 +v 4.000000 1.000000 1.750000 +v 4.000000 1.250000 1.500000 +v 3.750000 1.250000 1.750000 +v 4.000000 1.250000 1.750000 +v 3.750000 1.000000 1.500000 +v 3.750000 1.250000 1.500000 +v 4.000000 1.250000 3.250000 +v 4.000000 1.000000 3.500000 +v 4.000000 1.000000 3.250000 +v 3.750000 1.250000 3.250000 +v 3.750000 1.000000 3.250000 +v 3.750000 1.250000 3.500000 +v 3.750000 1.000000 3.500000 +v 4.000000 1.250000 3.500000 +v 0.500000 1.000000 1.750000 +v 0.750000 1.000000 1.500000 +v 0.750000 1.000000 1.750000 +v 0.750000 1.250000 1.500000 +v 0.500000 1.250000 1.750000 +v 0.750000 1.250000 1.750000 +v 0.500000 1.000000 1.500000 +v 0.500000 1.250000 1.500000 +v 0.750000 1.250000 3.250000 +v 0.750000 1.000000 3.500000 +v 0.750000 1.000000 3.250000 +v 0.500000 1.250000 3.250000 +v 0.500000 1.000000 3.250000 +v 0.500000 1.250000 3.500000 +v 0.500000 1.000000 3.500000 +v 0.750000 1.250000 3.500000 +v 4.000000 3.000000 1.500000 +v 3.750000 3.000000 1.750000 +v 4.000000 3.000000 1.750000 +v 3.750000 2.750000 1.500000 +v 3.750000 3.000000 1.500000 +v 4.000000 3.000000 3.250000 +v 4.000000 2.750000 3.500000 +v 4.000000 2.750000 3.250000 +v 3.750000 3.000000 3.250000 +v 3.750000 2.750000 3.250000 +v 3.750000 3.000000 3.500000 +v 3.750000 2.750000 3.500000 +v 4.000000 3.000000 3.500000 +v 0.500000 2.750000 1.750000 +v 0.750000 2.750000 1.500000 +v 0.750000 2.750000 1.750000 +v 0.750000 3.000000 1.500000 +v 0.500000 3.000000 1.750000 +v 0.750000 3.000000 1.750000 +v 0.500000 2.750000 1.500000 +v 0.500000 3.000000 1.500000 +v 0.750000 3.000000 3.250000 +v 0.750000 2.750000 3.500000 +v 0.750000 2.750000 3.250000 +v 0.500000 3.000000 3.250000 +v 0.500000 2.750000 3.250000 +v 0.500000 3.000000 3.500000 +v 0.500000 2.750000 3.500000 +v 0.750000 3.000000 3.500000 +v 4.000000 1.000000 3.250000 +v 3.875000 1.000000 1.750000 +v 4.000000 1.000000 1.750000 +v 3.875000 1.000000 3.250000 +v 3.875000 1.125000 1.750000 +v 4.000000 1.125000 3.250000 +v 4.000000 1.125000 1.750000 +v 3.875000 1.125000 3.250000 +v 0.625000 1.000000 3.250000 +v 0.500000 1.000000 1.750000 +v 0.625000 1.000000 1.750000 +v 0.500000 1.000000 3.250000 +v 0.500000 1.125000 1.750000 +v 0.625000 1.125000 3.250000 +v 0.625000 1.125000 1.750000 +v 0.500000 1.125000 3.250000 +v 4.000000 2.875000 3.250000 +v 3.875000 2.875000 1.750000 +v 4.000000 2.875000 1.750000 +v 3.875000 2.875000 3.250000 +v 3.875000 3.000000 1.750000 +v 4.000000 3.000000 3.250000 +v 4.000000 3.000000 1.750000 +v 3.875000 3.000000 3.250000 +v 0.625000 2.875000 3.250000 +v 0.500000 2.875000 1.750000 +v 0.625000 2.875000 1.750000 +v 0.500000 2.875000 3.250000 +v 0.500000 3.000000 1.750000 +v 0.625000 3.000000 3.250000 +v 0.625000 3.000000 1.750000 +v 0.500000 3.000000 3.250000 +v 4.000000 1.250000 1.500000 +v 3.875000 2.750000 1.500000 +v 4.000000 2.750000 1.500000 +v 3.875000 1.250000 1.500000 +v 3.875000 2.750000 1.625000 +v 4.000000 1.250000 1.625000 +v 4.000000 2.750000 1.625000 +v 3.875000 1.250000 1.625000 +v 0.625000 1.250000 1.500000 +v 0.500000 2.750000 1.500000 +v 0.625000 2.750000 1.500000 +v 0.500000 1.250000 1.500000 +v 0.500000 2.750000 1.625000 +v 0.625000 1.250000 1.625000 +v 0.625000 2.750000 1.625000 +v 0.500000 1.250000 1.625000 +v 4.000000 1.250000 3.375000 +v 3.875000 2.750000 3.375000 +v 4.000000 2.750000 3.375000 +v 3.875000 1.250000 3.375000 +v 3.875000 2.750000 3.500000 +v 4.000000 1.250000 3.500000 +v 4.000000 2.750000 3.500000 +v 3.875000 1.250000 3.500000 +v 0.625000 1.250000 3.375000 +v 0.500000 2.750000 3.375000 +v 0.625000 2.750000 3.375000 +v 0.500000 1.250000 3.375000 +v 0.500000 2.750000 3.500000 +v 0.625000 1.250000 3.500000 +v 0.625000 2.750000 3.500000 +v 0.500000 1.250000 3.500000 +v 0.750000 1.000000 3.375000 +v 3.750000 1.000000 3.500000 +v 0.750000 1.000000 3.500000 +v 0.750000 1.125000 3.375000 +v 3.750000 1.000000 3.375000 +v 3.750000 1.125000 3.500000 +v 0.750000 1.125000 3.500000 +v 0.750000 2.875000 3.375000 +v 3.750000 2.875000 3.500000 +v 0.750000 2.875000 3.500000 +v 0.750000 3.000000 3.375000 +v 3.750000 2.875000 3.375000 +v 3.750000 3.000000 3.500000 +v 0.750000 3.000000 3.500000 +v 0.750000 1.000000 1.500000 +v 3.750000 1.000000 1.625000 +v 0.750000 1.000000 1.625000 +v 0.750000 1.125000 1.500000 +v 3.750000 1.000000 1.500000 +v 3.750000 1.125000 1.625000 +v 0.750000 1.125000 1.625000 +v 0.750000 2.875000 1.500000 +v 3.750000 2.875000 1.625000 +v 0.750000 2.875000 1.625000 +v 0.750000 3.000000 1.500000 +v 3.750000 2.875000 1.500000 +v 3.750000 3.000000 1.625000 +v 0.750000 3.000000 1.625000 +v 0.750000 1.125000 -1.250000 +v 1.250000 1.625000 -1.250000 +v 1.250000 1.125000 -1.250000 +v 1.250000 1.125000 -0.750000 +v 0.750000 1.625000 -0.750000 +v 0.750000 1.125000 -0.750000 +v 1.250000 1.625000 -0.750000 +v 0.750000 1.625000 -1.250000 +v 1.375000 1.625000 -1.375000 +v 1.375000 1.750000 -0.625000 +v 1.375000 1.625000 -0.625000 +v 1.375000 1.125000 -0.625000 +v 0.625000 1.125000 -1.375000 +v 0.625000 1.125000 -0.625000 +v 1.375000 1.000000 -1.375000 +v 1.375000 1.000000 -0.625000 +v 0.625000 1.000000 -0.625000 +v 0.625000 1.000000 -1.375000 +v 1.375000 1.125000 -1.375000 +v 0.625000 1.625000 -0.625000 +v 0.625000 1.750000 -1.375000 +v 0.625000 1.625000 -1.375000 +v 1.375000 1.750000 -1.375000 +v 0.625000 1.750000 -0.625000 +v -1.250000 1.125000 0.750000 +v -0.750000 1.625000 0.750000 +v -0.750000 1.125000 0.750000 +v -0.750000 1.125000 1.250000 +v -1.250000 1.625000 1.250000 +v -1.250000 1.125000 1.250000 +v -0.750000 1.625000 1.250000 +v -1.250000 1.625000 0.750000 +v -0.625000 1.625000 0.625000 +v -0.625000 1.750000 1.375000 +v -0.625000 1.625000 1.375000 +v -0.625000 1.125000 1.375000 +v -1.375000 1.125000 0.625000 +v -1.375000 1.125000 1.375000 +v -0.625000 1.000000 0.625000 +v -0.625000 1.000000 1.375000 +v -1.375000 1.000000 1.375000 +v -1.375000 1.000000 0.625000 +v -0.625000 1.125000 0.625000 +v -1.375000 1.625000 1.375000 +v -1.375000 1.750000 0.625000 +v -1.375000 1.625000 0.625000 +v -0.625000 1.750000 0.625000 +v -1.375000 1.750000 1.375000 +v -1.250000 1.125000 -1.250000 +v -0.750000 1.625000 -1.250000 +v -0.750000 1.125000 -1.250000 +v -0.750000 1.125000 -0.750000 +v -1.250000 1.625000 -0.750000 +v -1.250000 1.125000 -0.750000 +v -0.750000 1.625000 -0.750000 +v -1.250000 1.625000 -1.250000 +v -0.625000 1.625000 -1.375000 +v -0.625000 1.750000 -0.625000 +v -0.625000 1.625000 -0.625000 +v -0.625000 1.125000 -0.625000 +v -1.375000 1.125000 -1.375000 +v -1.375000 1.125000 -0.625000 +v -0.625000 1.000000 -1.375000 +v -0.625000 1.000000 -0.625000 +v -1.375000 1.000000 -0.625000 +v -1.375000 1.000000 -1.375000 +v -0.625000 1.125000 -1.375000 +v -1.375000 1.625000 -0.625000 +v -1.375000 1.750000 -1.375000 +v -1.375000 1.625000 -1.375000 +v -0.625000 1.750000 -1.375000 +v -1.375000 1.750000 -0.625000 +v -0.500000 2.000000 -0.500000 +v 3.750000 1.125000 3.375000 +v 3.750000 3.000000 3.375000 +v 3.750000 1.125000 1.500000 +v 3.750000 3.000000 1.500000 +v 3.750000 2.000000 1.500000 +v 0.750001 1.500000 1.633975 +v 0.750001 2.000000 1.500000 +v 3.750000 1.500000 1.633975 +v 0.750001 1.133975 2.000000 +v 3.750000 1.133975 2.000000 +v 0.750001 1.000000 2.500000 +v 3.750000 1.000000 2.500000 +v 0.750001 1.133975 3.000000 +v 3.750000 1.133975 3.000000 +v 0.750001 1.500000 3.366025 +v 3.750000 1.500000 3.366025 +v 0.750001 2.000000 3.500000 +v 3.750000 2.000000 3.500000 +v 0.750001 2.500000 3.366025 +v 3.750000 2.500000 3.366025 +v 0.750001 2.866026 3.000000 +v 3.750000 2.866026 3.000000 +v 0.750001 3.000000 2.500000 +v 3.750000 3.000000 2.500000 +v 0.750001 2.866026 2.000000 +v 4.000000 2.649519 2.875000 +v 3.750000 2.866026 2.000000 +v 0.750001 2.500001 1.633975 +v 3.750000 2.500001 1.633975 +v 0.500001 2.000000 3.250000 +v 0.500001 1.625000 3.149519 +v 4.000000 1.350481 2.875000 +v 4.000000 1.350481 2.125000 +v 4.000000 2.649520 2.125000 +v 4.000000 2.000000 3.250000 +v 4.000000 2.375000 3.149519 +v 4.000000 1.625000 3.149519 +v 4.000000 2.375001 1.850481 +v 4.000000 2.000000 1.750000 +v 4.000000 1.625000 1.850481 +v 4.000000 1.250000 2.500000 +v 4.000000 2.750000 2.500000 +v 0.500001 1.250000 2.500000 +v 0.500001 2.375000 3.149519 +v 0.500001 2.375001 1.850481 +v 0.500001 1.350481 2.875000 +v 0.500001 2.000000 1.750000 +v 0.500001 1.625000 1.850481 +v 0.500001 1.350481 2.125000 +v 0.500001 2.649520 2.125000 +v 0.500001 2.750000 2.500000 +v 0.500001 2.649519 2.875000 +vt 0.265306 0.763158 +vt 0.510204 0.710526 +vt 0.510204 0.763158 +vt 0.265306 0.815789 +vt 0.510204 0.815789 +vt 0.265306 0.710526 +vt 0.510204 0.657895 +vt 0.224490 0.710526 +vt 0.224490 0.763158 +vt 0.551020 0.710526 +vt 0.551020 0.763158 +vt 0.244898 0.552632 +vt 0.163265 0.342105 +vt 0.244898 0.447368 +vt 0.408163 0.342105 +vt 0.326531 0.447368 +vt 0.408163 0.657895 +vt 0.326531 0.552632 +vt 0.163265 0.657895 +vt 0.326531 0.447368 +vt 0.244898 0.552632 +vt 0.244898 0.447368 +vt 0.163265 0.315789 +vt 0.244898 0.105263 +vt 0.244898 0.210526 +vt 0.408163 0.315789 +vt 0.326531 0.210526 +vt 0.408163 -0.000000 +vt 0.326531 0.105263 +vt 0.163265 -0.000000 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.163265 0.342105 +vt 0.408163 0.315789 +vt 0.408163 0.342105 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.163265 0.342105 +vt 0.408163 0.315789 +vt 0.408163 0.342105 +vt 0.163265 0.342105 +vt 0.408163 0.315789 +vt 0.408163 0.342105 +vt 0.244898 0.210526 +vt 0.326531 0.184211 +vt 0.326531 0.210526 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.040816 0.947368 +vt 0.081633 1.000000 +vt 0.040816 1.000000 +vt 0.081633 0.000000 +vt 0.040816 0.000000 +vt 0.163265 0.000000 +vt 0.122449 0.947368 +vt 0.122449 0.000000 +vt 0.081633 0.947368 +vt 0.000000 0.947368 +vt 0.000000 0.000000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.765306 0.315789 +vt 0.775510 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.315789 +vt 0.785714 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.315789 +vt 0.775510 0.473684 +vt 0.765306 0.315789 +vt 0.795918 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.765306 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.775510 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.473684 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.785714 0.473684 +vt 0.775510 0.315789 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.765306 0.315789 +vt 0.775510 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.473684 +vt 0.775510 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.473684 +vt 0.765306 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.315789 +vt 0.775510 0.473684 +vt 0.765306 0.473684 +vt 0.775510 0.315789 +vt 0.785714 0.473684 +vt 0.755102 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.785714 0.315789 +vt 0.795918 0.473684 +vt 0.785714 0.473684 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.315789 +vt 0.775510 0.473684 +vt 0.765306 0.315789 +vt 0.755102 0.315789 +vt 0.765306 0.473684 +vt 0.755102 0.473684 +vt 0.765306 0.315789 +vt 0.775510 0.473684 +vt 0.795918 0.473684 +vt 0.785714 0.315789 +vt 0.795918 0.315789 +vt 0.785714 0.473684 +vt 0.775510 0.315789 +vt 0.724490 0.631579 +vt 0.734694 0.315789 +vt 0.734694 0.631579 +vt 0.714286 0.631579 +vt 0.724490 0.315789 +vt 0.744898 0.315789 +vt 0.755102 0.631579 +vt 0.744898 0.631579 +vt 0.714286 0.631579 +vt 0.724490 0.315789 +vt 0.724490 0.631579 +vt 0.744898 0.631579 +vt 0.755102 0.315789 +vt 0.755102 0.631579 +vt 0.734694 0.315789 +vt 0.734694 0.631579 +vt 0.734694 0.631579 +vt 0.744898 0.315789 +vt 0.744898 0.631579 +vt 0.724490 0.631579 +vt 0.734694 0.315789 +vt 0.755102 0.315789 +vt 0.714286 0.315789 +vt 0.714286 0.631579 +vt 0.744898 0.631579 +vt 0.755102 0.315789 +vt 0.755102 0.631579 +vt 0.734694 0.631579 +vt 0.744898 0.315789 +vt 0.724490 0.315789 +vt 0.714286 0.631579 +vt 0.714286 0.315789 +vt 0.724490 0.631579 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.214286 0.750000 +vt 0.173469 0.802632 +vt 0.173469 0.750000 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.671053 +vt 0.224490 0.750000 +vt 0.163265 0.750000 +vt 0.224490 0.657895 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.657895 +vt 0.163265 0.671053 +vt 0.163265 0.657895 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.224490 0.881579 +vt 0.163265 0.894737 +vt 0.163265 0.881579 +vt 0.163265 0.802632 +vt 0.224490 0.802632 +vt 0.265306 0.657895 +vt 0.326531 0.552632 +vt 0.244898 0.184211 +vt 0.163265 0.315789 +vt 0.244898 0.184211 +vt 0.244898 0.184211 +vt 0.163265 0.315789 +vt 0.163265 0.315789 +vt 0.244898 0.184211 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.163265 0.947368 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.500000 +vt 0.775510 0.473684 +vt 0.775510 0.473684 +vt 0.755102 0.473684 +vt 0.795918 0.315789 +vt 0.795918 0.315789 +vt 0.755102 0.473684 +vt 0.795918 0.315789 +vt 0.755102 0.473684 +vt 0.755102 0.473684 +vt 0.795918 0.315789 +vt 0.714286 0.315789 +vt 0.755102 0.315789 +vt 0.714286 0.315789 +vt 0.744898 0.315789 +vt 0.724490 0.315789 +vt 0.755102 0.631579 +vt 0.734694 0.315789 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.214286 0.802632 +vt 0.224490 0.894737 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.671053 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.224490 0.894737 +vt 0.683673 0.473684 +vt 0.438776 0.526316 +vt 0.438776 0.473684 +vt 0.683673 0.526316 +vt 0.438776 0.578947 +vt 0.683673 0.578947 +vt 0.438776 0.631579 +vt 0.683673 -0.000000 +vt 0.438776 0.052632 +vt 0.438776 -0.000000 +vt 0.683673 0.052632 +vt 0.438776 0.105263 +vt 0.683673 0.105263 +vt 0.438776 0.157895 +vt 0.683673 0.157895 +vt 0.438776 0.210526 +vt 0.683673 0.210526 +vt 0.438776 0.263158 +vt 0.683673 0.263158 +vt 0.438776 0.315789 +vt 0.683673 0.315789 +vt 0.438776 0.368421 +vt 0.714286 0.256579 +vt 0.683673 0.368421 +vt 0.438776 0.421053 +vt 0.683673 0.421053 +vt 0.408163 0.151316 +vt 0.408163 0.111842 +vt 0.745408 0.011716 +vt 0.805612 0.011716 +vt 0.805612 0.146179 +vt 0.714286 0.164474 +vt 0.714286 0.203947 +vt 0.714286 0.151316 +vt 0.714286 0.098684 +vt 0.714286 0.046053 +vt 0.714286 0.427632 +vt 0.714286 0.467105 +vt 0.714286 0.519737 +vt 0.683673 0.631579 +vt 0.714286 0.585526 +vt 0.714286 0.625000 +vt 0.714286 0.375000 +vt 0.714286 0.414474 +vt 0.714286 0.532895 +vt 0.714286 0.572368 +vt 0.714286 0.322368 +vt 0.714286 0.361842 +vt 0.714286 0.309211 +vt 0.775510 0.159210 +vt 0.827649 0.275658 +vt 0.723372 0.275658 +vt 0.408163 0.059211 +vt 0.408163 0.046053 +vt 0.408163 0.006579 +vt 0.408163 0.467105 +vt 0.408163 0.427632 +vt 0.408163 0.519737 +vt 0.408163 0.480263 +vt 0.408163 0.585526 +vt 0.408163 0.375000 +vt 0.408163 0.532895 +vt 0.408163 0.322368 +vt 0.408163 0.309211 +vt 0.408163 0.269737 +vt 0.408163 0.217105 +vt 0.408163 0.164474 +vt 0.714286 0.217105 +vt 0.827649 0.040131 +vt 0.835715 0.078947 +vt 0.827649 0.117763 +vt 0.775510 0.156579 +vt 0.745408 0.146179 +vt 0.723372 0.117763 +vt 0.715306 0.078947 +vt 0.723372 0.040131 +vt 0.775510 0.001315 +vt 0.714286 0.111842 +vt 0.714286 0.059211 +vt 0.714286 0.006579 +vt 0.714286 0.480263 +vt 0.714286 0.269737 +vt 0.715306 0.236842 +vt 0.723372 0.198026 +vt 0.745408 0.169611 +vt 0.805612 0.169611 +vt 0.827649 0.198026 +vt 0.835715 0.236842 +vt 0.805612 0.304073 +vt 0.775510 0.314474 +vt 0.745408 0.304073 +vt 0.408163 0.098684 +vt 0.408163 0.625000 +vt 0.408163 0.414474 +vt 0.408163 0.572368 +vt 0.408163 0.361842 +vt 0.408163 0.256579 +vt 0.408163 0.203947 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3620 -0.0000 -0.9322 +vn -0.3620 -0.4661 -0.8073 +vn -0.3620 -0.0000 -0.9322 +vn 0.3620 -0.4661 -0.8073 +vn -0.3620 -0.8073 -0.4661 +vn 0.3620 -0.8073 -0.4661 +vn -0.3620 -0.9322 -0.0000 +vn 0.3620 -0.9322 0.0000 +vn -0.3620 -0.8073 0.4661 +vn 0.3620 -0.8073 0.4661 +vn -0.3620 -0.4661 0.8073 +vn 0.3620 -0.4661 0.8073 +vn -0.3620 0.0000 0.9322 +vn 0.3620 -0.0000 0.9322 +vn -0.3620 0.4661 0.8073 +vn 0.3620 0.4661 0.8073 +vn -0.3620 0.8073 0.4661 +vn 0.3620 0.8073 0.4661 +vn -0.3620 0.9322 0.0000 +vn 0.3620 0.9322 -0.0000 +vn -0.3620 0.8073 -0.4661 +vn 0.9007 0.3762 0.2172 +vn 0.3620 0.8073 -0.4661 +vn -0.3620 0.4661 -0.8073 +vn 0.3620 0.4661 -0.8073 +vn -0.9007 -0.0000 0.4344 +vn -0.9007 -0.2172 0.3762 +vn 0.9007 -0.3762 0.2172 +vn 0.9007 -0.3762 -0.2172 +vn 0.9007 0.3762 -0.2172 +vn 0.9007 -0.0000 0.4344 +vn 0.9007 0.2172 0.3762 +vn 0.9007 -0.2172 0.3762 +vn 0.9007 0.2172 -0.3762 +vn 0.9007 -0.0000 -0.4344 +vn 0.9007 -0.2172 -0.3762 +vn 0.9007 -0.4344 0.0000 +vn 0.9007 0.4344 0.0000 +vn -0.9007 -0.4344 0.0000 +vn -0.9007 0.2172 0.3762 +vn -0.9007 0.2172 -0.3762 +vn -0.9007 -0.3762 0.2172 +vn -0.9007 -0.0000 -0.4344 +vn -0.9007 -0.2172 -0.3762 +vn -0.9007 -0.3762 -0.2172 +vn -0.9007 0.3762 -0.2172 +vn -0.9007 0.4344 0.0000 +vn -0.9007 0.3762 0.2172 +s off +f 339/463/80 340/464/80 341/465/80 +f 342/466/81 341/465/81 343/467/81 +f 344/468/82 345/469/82 340/464/82 +f 346/470/83 339/463/83 342/471/83 +f 341/465/84 345/472/84 343/473/84 +f 347/474/80 348/475/80 349/476/80 +f 349/476/80 350/477/80 351/478/80 +f 351/478/80 352/479/80 353/480/80 +f 353/480/80 354/481/80 347/474/80 +f 355/482/80 356/483/80 357/484/80 +f 358/485/85 359/486/85 360/487/85 +f 361/488/85 360/487/85 362/489/85 +f 363/490/85 362/489/85 364/491/85 +f 365/492/85 364/491/85 359/486/85 +f 351/493/84 360/494/84 349/495/84 +f 348/475/83 361/488/83 350/477/83 +f 352/496/84 365/497/84 354/498/84 +f 349/499/82 359/500/82 347/501/82 +f 347/502/83 364/503/83 353/504/83 +f 350/505/82 363/506/82 352/507/82 +f 354/508/81 358/509/81 348/510/81 +f 353/511/81 362/512/81 351/513/81 +f 366/514/82 367/515/82 368/516/82 +f 369/517/81 370/518/81 371/519/81 +f 368/520/83 372/521/83 369/522/83 +f 371/523/84 373/524/84 366/525/84 +f 374/526/83 375/527/83 376/528/83 +f 377/529/80 378/530/80 379/531/80 +f 380/532/83 377/529/83 381/533/83 +f 382/534/84 378/535/84 383/536/84 +f 383/537/82 384/538/82 380/539/82 +f 381/540/81 379/541/81 382/542/81 +f 385/543/84 386/544/84 387/545/84 +f 387/546/82 388/547/82 374/548/82 +f 376/549/81 389/550/81 385/551/81 +f 374/526/85 385/552/85 387/553/85 +f 390/554/80 391/555/80 392/556/80 +f 393/557/83 390/554/83 394/558/83 +f 395/559/84 391/560/84 396/561/84 +f 396/561/82 397/562/82 393/557/82 +f 394/558/81 392/563/81 395/564/81 +f 398/565/85 399/566/85 400/567/85 +f 401/568/85 402/569/85 403/570/85 +f 404/571/80 405/572/80 406/573/80 +f 406/574/81 401/575/81 403/576/81 +f 405/572/84 407/577/84 401/578/84 +f 408/579/82 402/569/82 407/580/82 +f 404/581/83 403/582/83 402/569/83 +f 409/583/83 410/584/83 411/585/83 +f 412/586/82 411/587/82 413/588/82 +f 414/589/84 413/590/84 415/591/84 +f 416/592/81 415/593/81 410/584/81 +f 409/594/80 414/595/80 416/596/80 +f 415/597/85 411/598/85 410/584/85 +f 417/599/85 418/600/85 419/601/85 +f 420/602/80 421/603/80 422/604/80 +f 422/604/81 417/605/81 419/606/81 +f 421/607/84 423/608/84 417/609/84 +f 424/610/82 418/611/82 423/608/82 +f 420/612/83 419/613/83 418/614/83 +f 425/615/83 426/616/83 427/617/83 +f 428/618/82 427/619/82 429/620/82 +f 430/621/84 429/622/84 431/623/84 +f 432/624/81 431/623/81 426/625/81 +f 425/615/80 430/626/80 432/627/80 +f 431/623/85 427/628/85 426/629/85 +f 433/630/80 434/631/80 435/632/80 +f 435/633/81 398/565/81 400/634/81 +f 434/635/84 436/636/84 398/565/84 +f 437/637/82 399/638/82 436/639/82 +f 433/630/83 400/640/83 399/641/83 +f 438/642/83 439/643/83 440/644/83 +f 441/645/82 440/646/82 442/647/82 +f 443/648/84 442/647/84 444/649/84 +f 445/650/81 444/651/81 439/652/81 +f 438/653/80 443/654/80 445/650/80 +f 444/655/85 440/656/85 439/657/85 +f 446/658/85 447/659/85 448/660/85 +f 449/661/80 450/662/80 451/663/80 +f 451/664/81 446/665/81 448/660/81 +f 450/666/84 452/667/84 446/668/84 +f 453/669/82 447/670/82 452/671/82 +f 449/672/83 448/660/83 447/673/83 +f 454/674/83 455/675/83 456/676/83 +f 457/677/82 456/676/82 458/678/82 +f 459/679/84 458/680/84 460/681/84 +f 461/682/81 460/683/81 455/684/81 +f 454/685/80 459/679/80 461/686/80 +f 460/687/85 456/676/85 455/688/85 +f 462/689/85 463/690/85 464/691/85 +f 465/692/84 466/693/84 463/690/84 +f 464/691/83 467/694/83 462/689/83 +f 468/695/80 469/696/80 467/694/80 +f 470/697/85 471/698/85 472/699/85 +f 473/700/84 474/701/84 471/698/84 +f 472/699/83 475/702/83 470/697/83 +f 476/703/80 477/704/80 475/705/80 +f 478/706/85 479/707/85 480/708/85 +f 481/709/84 482/710/84 479/711/84 +f 480/708/83 483/712/83 478/706/83 +f 484/713/80 485/714/80 483/712/80 +f 486/715/85 487/716/85 488/717/85 +f 489/718/84 490/719/84 487/716/84 +f 488/720/83 491/721/83 486/722/83 +f 492/723/80 493/724/80 491/721/80 +f 494/725/82 495/726/82 496/727/82 +f 497/728/84 498/729/84 495/726/84 +f 496/727/83 499/730/83 494/725/83 +f 500/731/81 501/732/81 499/730/81 +f 502/733/82 503/734/82 504/735/82 +f 505/736/84 506/737/84 503/734/84 +f 504/735/83 507/738/83 502/733/83 +f 508/739/81 509/740/81 507/741/81 +f 510/742/82 511/743/82 512/744/82 +f 513/745/84 514/746/84 511/747/84 +f 512/744/83 515/748/83 510/742/83 +f 516/749/81 517/750/81 515/748/81 +f 518/751/82 519/752/82 520/753/82 +f 521/754/84 522/755/84 519/752/84 +f 520/756/83 523/757/83 518/758/83 +f 524/759/81 525/760/81 523/757/81 +f 526/761/85 527/762/85 528/763/85 +f 529/764/82 530/765/82 526/761/82 +f 531/766/81 528/763/81 527/762/81 +f 531/766/80 529/767/80 532/768/80 +f 533/769/85 534/770/85 535/771/85 +f 536/772/82 537/773/82 533/774/82 +f 538/775/81 535/771/81 534/770/81 +f 538/775/80 536/772/80 539/776/80 +f 540/777/85 541/778/85 542/779/85 +f 543/780/82 544/781/82 540/777/82 +f 545/782/81 542/779/81 541/778/81 +f 545/783/80 543/780/80 546/784/80 +f 547/785/85 548/786/85 549/787/85 +f 550/788/82 551/789/82 547/785/82 +f 552/790/81 549/791/81 548/792/81 +f 552/790/80 550/788/80 553/793/80 +f 554/794/82 555/795/82 556/796/82 +f 557/797/81 558/798/81 559/799/81 +f 556/800/83 560/801/83 557/802/83 +f 559/803/84 561/804/84 554/805/84 +f 562/806/83 563/807/83 564/808/83 +f 565/809/80 566/810/80 567/811/80 +f 568/812/83 565/809/83 569/813/83 +f 570/814/84 566/815/84 571/816/84 +f 571/817/82 572/818/82 568/819/82 +f 569/820/81 567/821/81 570/822/81 +f 573/823/84 574/824/84 575/825/84 +f 575/826/82 576/827/82 562/828/82 +f 564/829/81 577/830/81 573/831/81 +f 562/806/85 573/832/85 575/833/85 +f 578/834/82 579/835/82 580/836/82 +f 581/837/81 582/838/81 583/839/81 +f 580/840/83 584/841/83 581/842/83 +f 583/843/84 585/844/84 578/845/84 +f 586/846/83 587/847/83 588/848/83 +f 589/849/80 590/850/80 591/851/80 +f 592/852/83 589/849/83 593/853/83 +f 594/854/84 590/855/84 595/856/84 +f 595/857/82 596/858/82 592/859/82 +f 593/860/81 591/861/81 594/862/81 +f 597/863/84 598/864/84 599/865/84 +f 599/866/82 600/867/82 586/868/82 +f 588/869/81 601/870/81 597/871/81 +f 586/846/85 597/872/85 599/873/85 +f 602/874/82 603/875/82 604/876/82 +f 605/877/81 606/878/81 607/879/81 +f 604/880/83 608/881/83 605/882/83 +f 607/883/84 609/884/84 602/885/84 +f 610/886/83 611/887/83 612/888/83 +f 613/889/80 614/890/80 615/891/80 +f 616/892/83 613/889/83 617/893/83 +f 618/894/84 614/895/84 619/896/84 +f 619/897/82 620/898/82 616/899/82 +f 617/900/81 615/901/81 618/902/81 +f 621/903/84 622/904/84 623/905/84 +f 623/906/82 624/907/82 610/908/82 +f 612/909/81 625/910/81 621/911/81 +f 610/886/85 621/912/85 623/913/85 +f 339/463/80 344/468/80 340/464/80 +f 342/466/81 339/463/81 341/465/81 +f 344/468/82 346/914/82 345/469/82 +f 346/470/83 344/468/83 339/463/83 +f 341/465/84 340/464/84 345/472/84 +f 347/474/80 354/481/80 348/475/80 +f 349/476/80 348/475/80 350/477/80 +f 351/478/80 350/477/80 352/479/80 +f 353/480/80 352/479/80 354/481/80 +f 355/482/80 626/915/80 356/483/80 +f 358/485/85 365/492/85 359/486/85 +f 361/488/85 358/485/85 360/487/85 +f 363/490/85 361/488/85 362/489/85 +f 365/492/85 363/490/85 364/491/85 +f 351/493/84 362/916/84 360/494/84 +f 348/475/83 358/485/83 361/488/83 +f 352/496/84 363/917/84 365/497/84 +f 349/499/82 360/918/82 359/500/82 +f 347/502/83 359/919/83 364/503/83 +f 350/505/82 361/920/82 363/506/82 +f 354/508/81 365/921/81 358/509/81 +f 353/511/81 364/922/81 362/512/81 +f 366/514/82 373/923/82 367/515/82 +f 369/517/81 372/924/81 370/518/81 +f 368/520/83 367/925/83 372/521/83 +f 371/523/84 370/926/84 373/524/84 +f 374/526/83 388/927/83 375/527/83 +f 377/529/80 384/928/80 378/530/80 +f 380/532/83 384/928/83 377/529/83 +f 382/534/84 379/929/84 378/535/84 +f 383/537/82 378/930/82 384/538/82 +f 381/540/81 377/931/81 379/541/81 +f 385/543/84 389/932/84 386/544/84 +f 387/546/82 386/933/82 388/547/82 +f 376/549/81 375/934/81 389/550/81 +f 374/526/85 376/528/85 385/552/85 +f 390/554/80 397/562/80 391/555/80 +f 393/557/83 397/562/83 390/554/83 +f 395/559/84 392/935/84 391/560/84 +f 396/561/82 391/560/82 397/562/82 +f 394/558/81 390/554/81 392/563/81 +f 398/565/85 436/936/85 399/566/85 +f 401/568/85 407/937/85 402/569/85 +f 404/571/80 408/938/80 405/572/80 +f 406/574/81 405/572/81 401/575/81 +f 405/572/84 408/939/84 407/577/84 +f 408/579/82 404/940/82 402/569/82 +f 404/581/83 406/941/83 403/582/83 +f 409/583/83 416/942/83 410/584/83 +f 412/586/82 409/943/82 411/587/82 +f 414/589/84 412/586/84 413/590/84 +f 416/592/81 414/944/81 415/593/81 +f 409/594/80 412/586/80 414/595/80 +f 415/597/85 413/945/85 411/598/85 +f 417/599/85 423/608/85 418/600/85 +f 420/602/80 424/946/80 421/603/80 +f 422/604/81 421/947/81 417/605/81 +f 421/607/84 424/948/84 423/608/84 +f 424/610/82 420/949/82 418/611/82 +f 420/612/83 422/604/83 419/613/83 +f 425/615/83 432/950/83 426/616/83 +f 428/618/82 425/615/82 427/619/82 +f 430/621/84 428/951/84 429/622/84 +f 432/624/81 430/952/81 431/623/81 +f 425/615/80 428/953/80 430/626/80 +f 431/623/85 429/954/85 427/628/85 +f 433/630/80 437/955/80 434/631/80 +f 435/633/81 434/956/81 398/565/81 +f 434/635/84 437/957/84 436/636/84 +f 437/637/82 433/630/82 399/638/82 +f 433/630/83 435/958/83 400/640/83 +f 438/642/83 445/650/83 439/643/83 +f 441/645/82 438/959/82 440/646/82 +f 443/648/84 441/960/84 442/647/84 +f 445/650/81 443/961/81 444/651/81 +f 438/653/80 441/962/80 443/654/80 +f 444/655/85 442/647/85 440/656/85 +f 446/658/85 452/963/85 447/659/85 +f 449/661/80 453/669/80 450/662/80 +f 451/664/81 450/964/81 446/665/81 +f 450/666/84 453/669/84 452/667/84 +f 453/669/82 449/965/82 447/670/82 +f 449/672/83 451/966/83 448/660/83 +f 454/674/83 461/967/83 455/675/83 +f 457/677/82 454/968/82 456/676/82 +f 459/679/84 457/969/84 458/680/84 +f 461/682/81 459/679/81 460/683/81 +f 454/685/80 457/970/80 459/679/80 +f 460/687/85 458/971/85 456/676/85 +f 462/689/85 465/692/85 463/690/85 +f 465/692/84 469/972/84 466/693/84 +f 464/691/83 468/695/83 467/694/83 +f 468/695/80 466/973/80 469/696/80 +f 470/697/85 473/700/85 471/698/85 +f 473/700/84 477/704/84 474/701/84 +f 472/699/83 476/974/83 475/702/83 +f 476/703/80 474/701/80 477/704/80 +f 478/706/85 481/975/85 479/707/85 +f 481/709/84 485/714/84 482/710/84 +f 480/708/83 484/713/83 483/712/83 +f 484/713/80 482/710/80 485/714/80 +f 486/715/85 489/718/85 487/716/85 +f 489/718/84 493/724/84 490/719/84 +f 488/720/83 492/723/83 491/721/83 +f 492/723/80 490/719/80 493/724/80 +f 494/725/82 497/728/82 495/726/82 +f 497/728/84 501/976/84 498/729/84 +f 496/727/83 500/731/83 499/730/83 +f 500/731/81 498/977/81 501/732/81 +f 502/733/82 505/736/82 503/734/82 +f 505/736/84 509/740/84 506/737/84 +f 504/735/83 508/978/83 507/738/83 +f 508/739/81 506/737/81 509/740/81 +f 510/742/82 513/979/82 511/743/82 +f 513/745/84 517/750/84 514/746/84 +f 512/744/83 516/749/83 515/748/83 +f 516/749/81 514/746/81 517/750/81 +f 518/751/82 521/754/82 519/752/82 +f 521/754/84 525/760/84 522/755/84 +f 520/756/83 524/759/83 523/757/83 +f 524/759/81 522/755/81 525/760/81 +f 526/761/85 530/765/85 527/762/85 +f 529/764/82 627/980/82 530/765/82 +f 531/766/81 532/768/81 528/763/81 +f 531/766/80 627/981/80 529/767/80 +f 533/769/85 537/982/85 534/770/85 +f 536/772/82 628/983/82 537/773/82 +f 538/775/81 539/776/81 535/771/81 +f 538/775/80 628/983/80 536/772/80 +f 540/777/85 544/781/85 541/778/85 +f 543/780/82 629/984/82 544/781/82 +f 545/782/81 546/985/81 542/779/81 +f 545/783/80 629/984/80 543/780/80 +f 547/785/85 551/789/85 548/786/85 +f 550/788/82 630/986/82 551/789/82 +f 552/790/81 553/793/81 549/791/81 +f 552/790/80 630/986/80 550/788/80 +f 554/794/82 561/987/82 555/795/82 +f 557/797/81 560/988/81 558/798/81 +f 556/800/83 555/989/83 560/801/83 +f 559/803/84 558/990/84 561/804/84 +f 562/806/83 576/991/83 563/807/83 +f 565/809/80 572/992/80 566/810/80 +f 568/812/83 572/992/83 565/809/83 +f 570/814/84 567/993/84 566/815/84 +f 571/817/82 566/994/82 572/818/82 +f 569/820/81 565/995/81 567/821/81 +f 573/823/84 577/996/84 574/824/84 +f 575/826/82 574/997/82 576/827/82 +f 564/829/81 563/998/81 577/830/81 +f 562/806/85 564/808/85 573/832/85 +f 578/834/82 585/999/82 579/835/82 +f 581/837/81 584/1000/81 582/838/81 +f 580/840/83 579/1001/83 584/841/83 +f 583/843/84 582/1002/84 585/844/84 +f 586/846/83 600/1003/83 587/847/83 +f 589/849/80 596/1004/80 590/850/80 +f 592/852/83 596/1004/83 589/849/83 +f 594/854/84 591/1005/84 590/855/84 +f 595/857/82 590/1006/82 596/858/82 +f 593/860/81 589/1007/81 591/861/81 +f 597/863/84 601/1008/84 598/864/84 +f 599/866/82 598/1009/82 600/867/82 +f 588/869/81 587/1010/81 601/870/81 +f 586/846/85 588/848/85 597/872/85 +f 602/874/82 609/1011/82 603/875/82 +f 605/877/81 608/1012/81 606/878/81 +f 604/880/83 603/1013/83 608/881/83 +f 607/883/84 606/1014/84 609/884/84 +f 610/886/83 624/1015/83 611/887/83 +f 613/889/80 620/1016/80 614/890/80 +f 616/892/83 620/1016/83 613/889/83 +f 618/894/84 615/1017/84 614/895/84 +f 619/897/82 614/1018/82 620/898/82 +f 617/900/81 613/1019/81 615/901/81 +f 621/903/84 625/1020/84 622/904/84 +f 623/906/82 622/1021/82 624/907/82 +f 612/909/81 611/1022/81 625/910/81 +f 610/886/85 612/888/85 621/912/85 +s 1 +f 631/1023/86 632/1024/87 633/1025/88 +f 634/1026/89 635/1027/90 632/1024/87 +f 636/1028/91 637/1029/92 635/1027/90 +f 638/1030/93 639/1031/94 637/1032/92 +f 640/1033/95 641/1034/96 639/1031/94 +f 642/1035/97 643/1036/98 641/1034/96 +f 644/1037/99 645/1038/100 643/1036/98 +f 646/1039/101 647/1040/102 645/1038/100 +f 648/1041/103 649/1042/104 647/1040/102 +f 650/1043/105 651/1044/106 649/1042/104 +f 646/1039/101 652/1045/107 648/1041/103 +f 653/1046/108 654/1047/109 651/1044/106 +f 655/1048/110 633/1025/88 654/1047/109 +f 641/1034/96 656/1049/111 657/1050/112 +f 658/1051/113 659/1052/114 660/1053/115 +f 646/1039/101 661/1054/116 662/1055/117 +f 642/1035/97 661/1056/116 644/1037/99 +f 640/1033/95 663/1057/118 642/1035/97 +f 638/1030/93 658/1058/113 640/1033/95 +f 631/1023/86 664/1059/119 665/1060/120 +f 631/1023/86 666/1061/121 634/1026/89 +f 638/1062/93 659/1063/114 667/1064/122 +f 655/1048/110 660/1065/115 664/1066/119 +f 636/1028/91 666/1067/121 659/1068/114 +f 653/1046/108 668/1069/123 660/1070/115 +f 648/1041/103 668/1071/123 650/1043/105 +f 669/1072/124 670/1073/125 671/1074/126 +f 641/1034/96 672/1075/127 639/1031/94 +f 637/1032/92 672/1076/127 669/1077/124 +f 654/1047/109 673/1078/128 671/1079/126 +f 633/1025/88 674/1080/129 673/1081/128 +f 637/1029/92 675/1082/130 635/1027/90 +f 654/1047/109 676/1083/131 651/1044/106 +f 635/1027/90 674/1084/129 632/1024/87 +f 651/1044/106 677/1085/132 649/1042/104 +f 647/1040/102 677/1086/132 678/1087/133 +f 647/1040/102 670/1088/125 645/1038/100 +f 645/1038/100 656/1089/111 643/1036/98 +f 631/1023/86 634/1026/89 632/1024/87 +f 634/1026/89 636/1028/91 635/1027/90 +f 636/1028/91 638/1062/93 637/1029/92 +f 638/1030/93 640/1033/95 639/1031/94 +f 640/1033/95 642/1035/97 641/1034/96 +f 642/1035/97 644/1037/99 643/1036/98 +f 644/1037/99 646/1039/101 645/1038/100 +f 646/1039/101 648/1041/103 647/1040/102 +f 648/1041/103 650/1043/105 649/1042/104 +f 650/1043/105 653/1046/108 651/1044/106 +f 646/1039/101 662/1090/117 652/1045/107 +f 653/1046/108 655/1048/110 654/1047/109 +f 655/1048/110 631/1023/86 633/1025/88 +f 641/1034/96 643/1036/98 656/1049/111 +f 659/1052/114 666/1091/121 665/1092/120 +f 665/1092/120 664/1093/119 659/1052/114 +f 664/1093/119 660/1053/115 659/1052/114 +f 660/1053/115 668/1094/123 652/1095/107 +f 652/1095/107 662/1096/117 660/1053/115 +f 662/1096/117 661/1097/116 660/1053/115 +f 661/1097/116 663/1098/118 658/1051/113 +f 658/1051/113 667/1099/122 659/1052/114 +f 661/1097/116 658/1051/113 660/1053/115 +f 646/1039/101 644/1037/99 661/1054/116 +f 642/1035/97 663/1100/118 661/1056/116 +f 640/1033/95 658/1101/113 663/1057/118 +f 638/1030/93 667/1102/122 658/1058/113 +f 631/1023/86 655/1048/110 664/1059/119 +f 631/1023/86 665/1103/120 666/1061/121 +f 638/1062/93 636/1028/91 659/1063/114 +f 655/1048/110 653/1046/108 660/1065/115 +f 636/1028/91 634/1026/89 666/1067/121 +f 653/1046/108 650/1043/105 668/1069/123 +f 648/1041/103 652/1104/107 668/1071/123 +f 671/1074/126 673/1105/128 674/1106/129 +f 674/1106/129 675/1107/130 671/1074/126 +f 675/1107/130 669/1072/124 671/1074/126 +f 669/1072/124 672/1108/127 657/1109/112 +f 657/1109/112 656/1110/111 670/1073/125 +f 670/1073/125 678/1111/133 677/1112/132 +f 677/1112/132 676/1113/131 670/1073/125 +f 676/1113/131 671/1074/126 670/1073/125 +f 669/1072/124 657/1109/112 670/1073/125 +f 641/1034/96 657/1114/112 672/1075/127 +f 637/1032/92 639/1031/94 672/1076/127 +f 654/1047/109 633/1025/88 673/1078/128 +f 633/1025/88 632/1024/87 674/1080/129 +f 637/1029/92 669/1115/124 675/1082/130 +f 654/1047/109 671/1116/126 676/1083/131 +f 635/1027/90 675/1117/130 674/1084/129 +f 651/1044/106 676/1118/131 677/1085/132 +f 647/1040/102 649/1042/104 677/1086/132 +f 647/1040/102 678/1119/133 670/1088/125 +f 645/1038/100 670/1120/125 656/1089/111 +o Micro_Pad v -0.500000 2.000000 0.500000 +v -1.250000 2.000000 -1.250000 +v -1.250000 2.000000 1.250000 v 0.500000 2.000000 0.500000 +v 1.250000 2.000000 1.250000 +v 1.250000 1.500000 -1.250000 +v 1.250000 2.000000 -1.250000 +v -1.250000 1.500000 1.250000 +v -1.250000 1.500000 -1.250000 +v 1.250000 1.500000 1.250000 +v -0.500000 1.500000 0.500000 v -0.500000 2.000000 -0.500000 v 0.500000 2.000000 -0.500000 -v 0.562500 1.750000 0.937500 -v 0.937500 1.750000 0.937500 -v 0.562500 1.750000 0.562500 -v 0.937500 1.750000 0.562500 -v 0.562500 1.000000 0.937500 -v 0.937500 1.000000 0.937500 -v 0.562500 1.000000 0.562500 -v 0.937500 1.000000 0.562500 -v -0.500000 1.000000 -1.250000 +v 0.500000 1.500000 0.500000 +v 0.500000 1.500000 -0.500000 +v -0.500000 1.500000 -0.500000 +v 0.500000 2.000000 0.500000 +v -0.500000 2.000000 -0.500000 +v -0.500000 2.000000 0.500000 +v 1.250000 1.000000 -1.250000 v 0.500000 1.000000 -1.250000 +v 0.500000 1.250000 -1.250000 +v 0.500000 1.250000 -0.500000 +v 1.250000 1.500000 -1.250000 +v 1.250000 1.500000 -0.250000 +v 1.250000 1.250000 -0.500000 +v 0.250000 1.500000 -0.500000 +v 0.500000 1.000000 -0.500000 +v 1.250000 1.000000 -0.500000 +v 0.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.250000 +v 0.500000 1.500000 -1.250000 +v -0.500000 1.500000 -1.750000 +v -0.500000 1.500000 -1.250000 +v -0.500000 1.000000 -1.250000 v -0.500000 1.000000 -1.750000 +v 0.500000 1.500000 -1.750000 v 0.500000 1.000000 -1.750000 -v -0.500000 1.500000 -1.625000 -v -0.500000 1.375000 -1.750000 -v -0.500000 1.375000 -1.250000 -v -0.500000 1.500000 -1.375000 -v 0.500000 1.500000 -1.375000 -v 0.500000 1.375000 -1.250000 -v 0.500000 1.375000 -1.750000 -v 0.500000 1.500000 -1.625000 -v 0.750000 1.750000 0.562500 -v 0.750000 1.000000 0.562500 -v 0.750000 1.750000 -0.562500 -v 0.750000 1.000000 -0.562500 -v 0.500000 1.000000 1.750000 -v 1.000000 1.000000 1.750000 -v 0.500000 1.000000 1.250000 -v 1.000000 1.000000 1.250000 -v -1.000000 1.000000 1.750000 -v -0.500000 1.000000 1.750000 -v -1.000000 1.000000 1.250000 +v 0.500000 1.000000 -1.250000 +v -0.625000 8.000000 2.000000 +v -0.875000 8.000000 1.750000 +v -0.875000 8.000000 2.000000 +v 0.875000 8.000000 2.000000 +v 0.625000 8.000000 1.750000 +v 0.625000 8.000000 2.000000 +v -0.625000 8.000000 1.000000 +v -0.875000 8.000000 0.750000 +v -0.875000 8.000000 1.000000 +v 0.875000 8.000000 1.000000 +v 0.625000 8.000000 0.750000 +v 0.625000 8.000000 1.000000 +v -0.625000 2.000000 0.750000 +v -0.625000 2.000000 1.000000 +v -0.875000 1.000000 1.750000 +v -0.625000 8.000000 1.750000 +v -0.625000 1.000000 1.750000 +v -0.875000 2.000000 0.750000 +v -0.625000 8.000000 0.750000 +v 0.625000 1.000000 2.000000 +v 0.625000 1.000000 1.750000 +v 0.625000 2.000000 1.000000 +v 0.625000 2.000000 0.750000 +v 0.875000 1.000000 2.000000 +v 0.875000 2.000000 1.000000 +v 0.875000 1.000000 1.750000 +v 0.875000 2.000000 0.750000 +v 0.875000 8.000000 1.750000 +v -0.875000 1.000000 2.000000 +v 0.875000 8.000000 0.750000 +v -0.875000 2.000000 1.000000 +v -0.625000 1.000000 2.000000 +v -0.625000 8.000000 1.875000 +v 0.625000 1.000000 1.875000 +v 0.625000 8.000000 1.875000 +v -0.625000 8.000000 0.875000 +v 0.625000 2.000000 0.875000 +v -0.625000 2.000000 0.875000 +v 0.750000 1.000000 1.750000 +v 0.750000 8.000000 1.000000 +v 0.750000 8.000000 1.750000 +v -0.750000 8.000000 1.000000 +v -0.750000 1.000000 1.750000 +v -0.750000 8.000000 1.750000 +v -0.062500 6.000000 1.625000 +v -0.312500 6.000000 1.375000 +v -0.312500 6.000000 1.625000 +v 0.312500 6.000000 1.625000 +v 0.062500 6.000000 1.375000 +v 0.062500 6.000000 1.625000 +v -0.062500 1.000000 1.375000 +v -0.062500 1.000000 1.625000 +v -0.312500 1.000000 1.625000 +v -0.312500 1.000000 1.375000 +v 0.062500 1.000000 1.375000 +v 0.312500 6.000000 1.375000 +v 0.312500 1.000000 1.375000 +v 0.312500 1.000000 1.625000 +v 0.062500 1.000000 1.625000 +v -0.062500 6.000000 1.375000 +v -1.250000 1.000000 1.250000 v -0.500000 1.000000 1.250000 -v 0.500000 11.000000 1.250000 -v 0.500000 11.000000 1.750000 -v 1.000000 11.000000 1.750000 -v 1.000000 11.000000 1.250000 -v -1.000000 11.000000 1.250000 -v -1.000000 11.000000 1.750000 -v -0.500000 11.000000 1.750000 -v -0.500000 11.000000 1.250000 -v -0.500000 10.750000 1.562500 -v 0.500000 10.000000 1.562500 -v -0.500000 11.000000 1.562500 -v 0.500000 10.250000 1.562500 -v -0.500000 1.250000 1.437500 -v 0.500000 2.000000 1.437500 -v -0.500000 1.000000 1.437500 -v 0.500000 1.750000 1.437500 -v 0.500000 1.250000 1.562500 -v -0.500000 2.000000 1.562500 -v 0.500000 1.000000 1.562500 -v -0.500000 1.750000 1.562500 -v -0.500000 4.750000 1.562500 -v 0.500000 4.000000 1.562500 -v -0.500000 5.000000 1.562500 -v 0.500000 4.250000 1.562500 -v 0.500000 4.750000 1.437500 -v -0.500000 4.000000 1.437500 -v 0.500000 5.000000 1.437500 -v -0.500000 4.250000 1.437500 -v -0.500000 2.500000 1.562500 -v 0.500000 1.750000 1.562500 -v -0.500000 2.750000 1.562500 -v 0.500000 2.000000 1.562500 -v 0.500000 2.500000 1.437500 -v -0.500000 1.750000 1.437500 -v 0.500000 2.750000 1.437500 -v -0.500000 2.000000 1.437500 -v -0.500000 2.750000 1.437500 -v 0.500000 3.500000 1.437500 -v -0.500000 2.500000 1.437500 -v 0.500000 3.250000 1.437500 -v 0.500000 2.750000 1.562500 -v -0.500000 3.500000 1.562500 -v 0.500000 2.500000 1.562500 -v -0.500000 3.250000 1.562500 -v -0.500000 3.500000 1.437500 -v 0.500000 4.250000 1.437500 -v -0.500000 3.250000 1.437500 -v 0.500000 4.000000 1.437500 -v 0.500000 3.500000 1.562500 -v -0.500000 4.250000 1.562500 -v 0.500000 3.250000 1.562500 -v -0.500000 4.000000 1.562500 -v -0.500000 7.000000 1.562500 -v 0.500000 6.250000 1.562500 -v -0.500000 7.250000 1.562500 -v 0.500000 6.500000 1.562500 -v 0.500000 7.000000 1.437500 -v -0.500000 6.250000 1.437500 -v 0.500000 7.250000 1.437500 -v -0.500000 6.500000 1.437500 -v 0.500000 10.750000 1.437500 -v -0.500000 10.000000 1.437500 -v 0.500000 11.000000 1.437500 -v -0.500000 10.250000 1.437500 -v -0.500000 6.250000 1.562500 -v 0.500000 5.500000 1.562500 -v -0.500000 6.500000 1.562500 -v 0.500000 5.750000 1.562500 -v 0.500000 6.250000 1.437500 -v -0.500000 5.500000 1.437500 -v 0.500000 6.500000 1.437500 -v -0.500000 5.750000 1.437500 -v -0.500000 5.000000 1.437500 -v 0.500000 5.750000 1.437500 -v -0.500000 4.750000 1.437500 -v 0.500000 5.500000 1.437500 -v 0.500000 5.000000 1.562500 -v -0.500000 5.750000 1.562500 -v 0.500000 4.750000 1.562500 -v -0.500000 5.500000 1.562500 -v -0.500000 7.250000 1.437500 -v 0.500000 8.000000 1.437500 -v -0.500000 7.000000 1.437500 -v 0.500000 7.750000 1.437500 -v 0.500000 7.250000 1.562500 -v -0.500000 8.000000 1.562500 -v 0.500000 7.000000 1.562500 -v -0.500000 7.750000 1.562500 -v -0.500000 8.500000 1.562500 -v 0.500000 7.750000 1.562500 -v -0.500000 8.750000 1.562500 -v 0.500000 8.000000 1.562500 -v 0.500000 8.500000 1.437500 -v -0.500000 7.750000 1.437500 -v 0.500000 8.750000 1.437500 -v -0.500000 8.000000 1.437500 -v -0.500000 8.750000 1.437500 -v 0.500000 9.500000 1.437500 -v -0.500000 8.500000 1.437500 -v 0.500000 9.250000 1.437500 -v 0.500000 8.750000 1.562500 -v -0.500000 9.500000 1.562500 -v 0.500000 8.500000 1.562500 -v -0.500000 9.250000 1.562500 -v -0.500000 9.500000 1.437500 -v 0.500000 10.250000 1.437500 -v -0.500000 9.250000 1.437500 -v 0.500000 10.000000 1.437500 -v 0.500000 9.500000 1.562500 -v -0.500000 10.250000 1.562500 -v 0.500000 9.250000 1.562500 -v -0.500000 10.000000 1.562500 -v -0.937500 1.000000 3.937500 -v -0.562500 1.000000 3.937500 -v -0.937500 1.000000 3.562500 -v -0.562500 1.000000 3.562500 -v -0.937500 2.812500 1.750000 -v -0.562500 2.812500 1.750000 -v -0.937500 3.187500 1.750000 -v -0.562500 3.187500 1.750000 -v 0.562500 1.000000 3.937500 -v 0.937500 1.000000 3.937500 -v 0.562500 1.000000 3.562500 -v 0.937500 1.000000 3.562500 -v 0.562500 2.812500 1.750000 -v 0.937500 2.812500 1.750000 -v 0.562500 3.187500 1.750000 -v 0.937500 3.187500 1.750000 -v -0.500000 10.750000 1.562500 -v 0.500000 10.000000 1.562500 -v -0.500000 11.000000 1.562500 -v 0.500000 10.250000 1.562500 -v -0.500000 1.250000 1.437500 -v 0.500000 2.000000 1.437500 -v -0.500000 1.000000 1.437500 -v 0.500000 1.750000 1.437500 -v 0.500000 1.250000 1.562500 -v -0.500000 2.000000 1.562500 -v 0.500000 1.000000 1.562500 -v -0.500000 1.750000 1.562500 -v -0.500000 4.750000 1.562500 -v 0.500000 4.000000 1.562500 -v -0.500000 5.000000 1.562500 -v 0.500000 4.250000 1.562500 -v 0.500000 4.750000 1.437500 -v -0.500000 4.000000 1.437500 -v 0.500000 5.000000 1.437500 -v -0.500000 4.250000 1.437500 -v -0.500000 2.500000 1.562500 -v 0.500000 1.750000 1.562500 -v -0.500000 2.750000 1.562500 -v 0.500000 2.000000 1.562500 -v 0.500000 2.500000 1.437500 -v -0.500000 1.750000 1.437500 -v 0.500000 2.750000 1.437500 -v -0.500000 2.000000 1.437500 -v -0.500000 2.750000 1.437500 -v 0.500000 3.500000 1.437500 -v -0.500000 2.500000 1.437500 -v 0.500000 3.250000 1.437500 -v 0.500000 2.750000 1.562500 -v -0.500000 3.500000 1.562500 -v 0.500000 2.500000 1.562500 -v -0.500000 3.250000 1.562500 -v -0.500000 3.500000 1.437500 -v 0.500000 4.250000 1.437500 -v -0.500000 3.250000 1.437500 -v 0.500000 4.000000 1.437500 -v 0.500000 3.500000 1.562500 -v -0.500000 4.250000 1.562500 -v 0.500000 3.250000 1.562500 -v -0.500000 4.000000 1.562500 -v -0.500000 7.000000 1.562500 -v 0.500000 6.250000 1.562500 -v -0.500000 7.250000 1.562500 -v 0.500000 6.500000 1.562500 -v 0.500000 7.000000 1.437500 -v -0.500000 6.250000 1.437500 -v 0.500000 7.250000 1.437500 -v -0.500000 6.500000 1.437500 -v 0.500000 10.750000 1.437500 -v -0.500000 10.000000 1.437500 -v 0.500000 11.000000 1.437500 -v -0.500000 10.250000 1.437500 -v -0.500000 6.250000 1.562500 -v 0.500000 5.500000 1.562500 -v -0.500000 6.500000 1.562500 -v 0.500000 5.750000 1.562500 -v 0.500000 6.250000 1.437500 -v -0.500000 5.500000 1.437500 -v 0.500000 6.500000 1.437500 -v -0.500000 5.750000 1.437500 -v -0.500000 5.000000 1.437500 -v 0.500000 5.750000 1.437500 -v -0.500000 4.750000 1.437500 -v 0.500000 5.500000 1.437500 -v 0.500000 5.000000 1.562500 -v -0.500000 5.750000 1.562500 -v 0.500000 4.750000 1.562500 -v -0.500000 5.500000 1.562500 -v -0.500000 7.250000 1.437500 -v 0.500000 8.000000 1.437500 -v -0.500000 7.000000 1.437500 -v 0.500000 7.750000 1.437500 -v 0.500000 7.250000 1.562500 -v -0.500000 8.000000 1.562500 -v 0.500000 7.000000 1.562500 -v -0.500000 7.750000 1.562500 -v -0.500000 8.500000 1.562500 -v 0.500000 7.750000 1.562500 -v -0.500000 8.750000 1.562500 -v 0.500000 8.000000 1.562500 -v 0.500000 8.500000 1.437500 -v -0.500000 7.750000 1.437500 -v 0.500000 8.750000 1.437500 -v -0.500000 8.000000 1.437500 -v -0.500000 8.750000 1.437500 -v 0.500000 9.500000 1.437500 -v -0.500000 8.500000 1.437500 -v 0.500000 9.250000 1.437500 -v 0.500000 8.750000 1.562500 -v -0.500000 9.500000 1.562500 -v 0.500000 8.500000 1.562500 -v -0.500000 9.250000 1.562500 -v -0.500000 9.500000 1.437500 -v 0.500000 10.250000 1.437500 -v -0.500000 9.250000 1.437500 -v 0.500000 10.000000 1.437500 -v 0.500000 9.500000 1.562500 -v -0.500000 10.250000 1.562500 -v 0.500000 9.250000 1.562500 -v -0.500000 10.000000 1.562500 -v 0.562500 1.750000 -0.562500 -v 0.937500 1.750000 -0.562500 -v 0.562500 1.750000 -0.937500 -v 0.937500 1.750000 -0.937500 -v 0.562500 1.000000 -0.562500 -v 0.937500 1.000000 -0.562500 -v 0.562500 1.000000 -0.937500 -v 0.937500 1.000000 -0.937500 -v -0.937500 1.750000 0.937500 -v -0.562500 1.750000 0.937500 -v -0.937500 1.750000 0.562500 -v -0.562500 1.750000 0.562500 -v -0.937500 1.000000 0.937500 -v -0.562500 1.000000 0.937500 -v -0.937500 1.000000 0.562500 -v -0.562500 1.000000 0.562500 -v -0.937500 1.750000 -0.562500 -v -0.562500 1.750000 -0.562500 -v -0.937500 1.750000 -0.937500 -v -0.562500 1.750000 -0.937500 -v -0.937500 1.000000 -0.562500 -v -0.562500 1.000000 -0.562500 -v -0.937500 1.000000 -0.937500 -v -0.562500 1.000000 -0.937500 -v -0.750000 1.750000 -0.562500 -v -0.750000 1.000000 -0.562500 -v -0.750000 1.750000 0.562500 -v -0.750000 1.000000 0.562500 -v 0.562500 1.750000 -0.750000 -v 0.562500 1.000000 -0.750000 -v -0.562500 1.750000 -0.750000 -v -0.562500 1.000000 -0.750000 -v -0.562500 1.750000 0.750000 -v -0.562500 1.000000 0.750000 -v 0.562500 1.750000 0.750000 -v 0.562500 1.000000 0.750000 -vt 0.083333 0.250000 -vt 0.000000 0.386364 -vt 0.000000 0.204545 -vt 0.000000 0.000000 -vt 0.083333 0.136364 -vt 0.000000 0.181818 -vt 0.083333 0.340909 -vt 0.333333 0.386364 -vt 0.250000 0.340909 -vt 0.333333 0.204545 -vt 0.250000 0.250000 -vt 0.333333 -0.000000 -vt 0.083333 0.045455 -vt 0.333333 0.181818 -vt 0.250000 0.045455 -vt 0.250000 0.136364 -vt 0.083333 0.136364 -vt 0.250000 0.113636 -vt 0.250000 0.136364 -vt 0.083333 0.136364 -vt 0.250000 0.113636 -vt 0.250000 0.136364 -vt -0.000000 0.204545 -vt 0.333333 0.181818 -vt 0.333333 0.204545 -vt -0.000000 0.204545 -vt 0.333333 0.181818 -vt 0.333333 0.204545 -vt 0.083333 0.136364 -vt 0.250000 0.113636 -vt 0.250000 0.136364 -vt 0.083333 0.136364 -vt 0.250000 0.113636 -vt 0.250000 0.136364 -vt -0.000000 0.204545 -vt 0.333333 0.181818 -vt 0.333333 0.204545 -vt 0.083333 0.340909 -vt 0.250000 0.250000 -vt 0.250000 0.340909 -vt 0.125000 0.454545 -vt 0.187500 0.386364 -vt 0.187500 0.454545 -vt -0.000000 0.454545 -vt 0.062500 0.386364 -vt 0.062500 0.454545 -vt 0.250000 0.386364 -vt 0.250000 0.454545 -vt 0.125000 0.386364 -vt 0.208333 0.954545 -vt 0.145833 0.863636 -vt 0.208333 0.863636 -vt 0.083333 0.863636 -vt 0.125000 0.954545 -vt 0.083333 0.954545 -vt 0.000000 0.863636 -vt 0.062500 0.954545 -vt 0.000000 0.954545 -vt 0.125000 0.863636 -vt 0.062500 0.852273 -vt 0.062500 0.863636 -vt 0.145833 0.954545 -vt 0.145833 0.965909 -vt 0.187500 0.454545 -vt 0.000000 0.522727 -vt 0.000000 0.454545 -vt 0.333333 0.909091 -vt 0.416667 0.954545 -vt 0.333333 0.954545 -vt 0.333333 0.909091 -vt 0.416667 0.954545 -vt 0.333333 0.954545 +v -0.500000 1.250000 1.250000 +v -0.500000 1.250000 0.500000 +v -1.250000 1.500000 1.250000 +v -1.250000 1.500000 0.250000 +v -1.250000 1.250000 0.500000 +v -0.250000 1.500000 1.250000 +v -0.250000 1.500000 0.500000 +v -0.500000 1.000000 0.500000 +v -1.250000 1.000000 0.500000 +v -0.500000 1.500000 0.500000 +v -0.500000 1.500000 0.250000 +v -1.250000 1.000000 -1.250000 +v -1.250000 1.000000 -0.500000 +v -1.250000 1.250000 -0.500000 +v -0.500000 1.250000 -0.500000 +v -1.250000 1.500000 -1.250000 +v -0.250000 1.500000 -1.250000 +v -0.500000 1.250000 -1.250000 +v -1.250000 1.500000 -0.250000 +v -0.500000 1.500000 -0.250000 +v -0.500000 1.000000 -0.500000 +v -0.500000 1.000000 -1.250000 +v -0.500000 1.500000 -0.500000 +v -0.250000 1.500000 -0.500000 +v 1.250000 1.000000 1.250000 +v 1.250000 1.000000 0.500000 +v 1.250000 1.250000 0.500000 +v 0.500000 1.250000 0.500000 +v 1.250000 1.500000 1.250000 +v 0.250000 1.500000 1.250000 +v 0.500000 1.250000 1.250000 +v 0.500000 1.500000 0.250000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 1.250000 +v 0.500000 1.500000 0.500000 +v 0.250000 1.500000 0.500000 +v 0.625000 1.000000 1.875000 +v -0.625000 8.000000 1.875000 +v 0.625000 8.000000 1.875000 +v 0.625000 2.000000 0.875000 +v -0.625000 8.000000 0.875000 +v -0.625000 2.000000 0.875000 +v 0.750000 8.000000 1.000000 +v 0.750000 1.000000 1.750000 +v 0.750000 8.000000 1.750000 +v -0.750000 1.000000 1.750000 +v -0.750000 8.000000 1.000000 +v -0.750000 8.000000 1.750000 +v 0.500000 2.000000 -0.500000 +v 0.250000 1.500000 -1.250000 +v -0.625000 1.000000 1.875000 +v 0.625000 8.000000 0.875000 +v 0.750000 1.000000 1.000000 +v -0.750000 1.000000 1.000000 +v 1.250000 1.500000 0.250000 +v -0.625000 1.000000 1.875000 +v 0.625000 8.000000 0.875000 +v 0.750000 1.000000 1.000000 +v -0.750000 1.000000 1.000000 +vt 0.066667 0.655172 +vt 0.222222 0.758621 +vt 0.000000 0.758621 +vt 0.066667 0.517241 +vt 0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt 0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt 0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt -0.000000 0.413793 +vt 0.222222 0.344828 +vt 0.222222 0.413793 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.155556 0.655172 +vt 0.155556 0.517241 +vt 0.000000 -0.000000 +vt 0.066667 0.241379 +vt 0.000000 0.344828 +vt 0.155556 0.241379 +vt 0.155556 0.103448 +vt 0.222222 -0.000000 +vt 0.066667 0.103448 +vt 0.066667 0.517241 +vt 0.155556 0.655172 +vt 0.066667 0.655172 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.066667 0.172414 +vt 0.155556 0.241379 +vt 0.066667 0.241379 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.888889 0.655172 +vt 0.933333 0.793103 +vt 0.888889 0.793103 +vt 0.888889 0.862069 +vt 0.933333 0.862069 +vt 0.977778 0.793103 +vt 0.933333 0.655172 +vt 0.977778 0.655172 +vt 0.844444 0.655172 +vt 0.844444 0.793103 +vt 0.933333 0.586207 +vt 0.888889 0.586207 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.577778 0.965517 +vt 0.600000 1.000000 +vt 0.577778 1.000000 +vt 0.600000 0.137931 +vt 0.577778 0.137931 +vt 0.622222 0.000000 +vt 0.600000 0.965517 +vt 0.600000 0.000000 +vt 0.622222 0.137931 +vt 0.600000 0.965517 +vt 0.644444 0.000000 +vt 0.622222 0.965517 +vt 0.622222 0.000000 +vt 0.644444 0.137931 +vt 0.622222 0.965517 +vt 0.622222 0.137931 vt 0.666667 0.000000 -vt 0.583333 0.909091 -vt 0.583333 0.000000 -vt 0.416667 -0.000000 -vt 0.333333 -0.000000 -vt 0.583333 0.000000 -vt 0.500000 0.909091 -vt 0.500000 0.000000 -vt 0.416667 -0.000000 -vt 0.333333 -0.000000 -vt 0.500000 0.909091 -vt 0.500000 0.000000 -vt 0.416667 0.909091 +vt 0.644444 0.965517 +vt 0.666667 0.137931 +vt 0.644444 0.965517 +vt 0.600000 0.000000 +vt 0.577778 0.000000 +vt 0.600000 0.137931 +vt 0.577778 0.137931 +vt 0.600000 0.965517 +vt 0.644444 0.000000 +vt 0.622222 0.965517 +vt 0.600000 0.965517 +vt 0.644444 0.137931 +vt 0.622222 0.965517 vt 0.666667 0.000000 -vt 0.583333 0.909091 -vt 0.416667 0.909091 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt -0.000000 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt -0.000000 0.522727 -vt 0.062500 0.545455 -vt 0.000000 0.784091 -vt -0.000000 0.579545 -vt 0.125000 0.545455 -vt 0.062500 0.818182 -vt 0.250000 0.579545 -vt 0.187500 0.784091 -vt 0.187500 0.579545 -vt 0.125000 0.818182 -vt 0.062500 0.545455 -vt 0.000000 0.784091 -vt -0.000000 0.579545 -vt 0.125000 0.545455 -vt 0.062500 0.818182 -vt 0.250000 0.579545 -vt 0.187500 0.784091 -vt 0.187500 0.579545 -vt 0.125000 0.818182 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt -0.000000 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.000000 0.545455 -vt 0.166667 0.545455 -vt 0.125000 0.454545 -vt 0.187500 0.386364 -vt 0.187500 0.454545 -vt -0.000000 0.454545 -vt 0.062500 0.386364 -vt 0.062500 0.454545 -vt 0.250000 0.386364 -vt 0.250000 0.454545 -vt 0.125000 0.386364 -vt 0.125000 0.454545 -vt 0.187500 0.386364 -vt 0.187500 0.454545 -vt -0.000000 0.454545 -vt 0.062500 0.386364 -vt 0.062500 0.454545 -vt 0.250000 0.386364 -vt 0.250000 0.454545 -vt 0.125000 0.386364 -vt 0.125000 0.454545 -vt 0.187500 0.386364 -vt 0.187500 0.454545 -vt -0.000000 0.454545 -vt 0.062500 0.386364 -vt 0.062500 0.454545 -vt 0.250000 0.386364 -vt 0.250000 0.454545 -vt 0.125000 0.386364 -vt 0.187500 0.454545 -vt 0.000000 0.522727 -vt 0.000000 0.454545 -vt 0.187500 0.454545 -vt 0.000000 0.522727 -vt 0.000000 0.454545 -vt 0.187500 0.454545 -vt 0.000000 0.522727 -vt 0.000000 0.454545 -vt 0.083333 0.113636 -vt 0.083333 0.113636 -vt -0.000000 0.181818 -vt -0.000000 0.181818 -vt 0.083333 0.113636 -vt 0.083333 0.113636 -vt -0.000000 0.181818 -vt 0.083333 0.250000 -vt -0.000000 0.386364 -vt 0.062500 0.818182 -vt 0.145833 0.818182 -vt 0.145833 0.852273 -vt 0.145833 1.000000 -vt 0.062500 1.000000 -vt 0.062500 0.965909 -vt 0.187500 0.522727 -vt 0.666667 0.909091 -vt 0.666667 0.909091 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.522727 -vt 0.166667 0.545455 -vt 0.166667 0.522727 -vt 0.166667 0.545455 -vt 0.250000 0.784091 -vt 0.250000 0.784091 -vt -0.000000 0.522727 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.545455 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt -0.000000 0.545455 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.545455 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.522727 -vt -0.000000 0.545455 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.545455 -vt -0.000000 0.522727 -vt -0.000000 0.386364 -vt -0.000000 0.386364 -vt -0.000000 0.386364 -vt 0.187500 0.522727 -vt 0.187500 0.522727 -vt 0.187500 0.522727 +vt 0.644444 0.965517 +vt 0.666667 0.137931 +vt 0.644444 0.965517 +vt 0.577778 0.000000 +vt 0.222222 0.965517 +vt 0.333333 -0.000000 +vt 0.333333 0.965517 +vt 0.511111 0.965517 +vt 0.400000 0.137931 +vt 0.511111 0.137931 +vt 0.333333 0.000000 +vt 0.400000 0.965517 +vt 0.333333 0.965517 +vt 0.511111 0.965517 +vt 0.577778 0.000000 +vt 0.577778 0.965517 +vt 0.666667 0.689655 +vt 0.688889 0.724138 +vt 0.666667 0.724138 +vt 0.666667 0.689655 +vt 0.688889 0.724138 +vt 0.666667 0.724138 +vt 0.688889 0.000000 +vt 0.666667 0.000000 +vt 0.733333 0.000000 +vt 0.711111 0.689655 +vt 0.711111 0.000000 +vt 0.711111 0.000000 +vt 0.688889 0.689655 +vt 0.688889 0.000000 +vt 0.755556 0.000000 +vt 0.733333 0.689655 +vt 0.733333 0.000000 +vt 0.688889 0.689655 +vt 0.755556 0.000000 +vt 0.733333 0.689655 +vt 0.666667 0.000000 +vt 0.711111 0.689655 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.022222 0.896552 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.022222 0.896552 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.088889 0.758621 +vt 0.155556 0.758621 +vt 0.155556 0.793103 +vt 0.022222 0.827586 +vt 0.088889 0.862069 +vt 0.022222 0.862069 +vt 0.088889 0.827586 +vt 0.000000 0.827586 +vt 0.022222 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.862069 +vt 0.088889 0.827586 +vt 0.155556 0.827586 +vt 0.155556 0.793103 +vt 0.177778 0.758621 +vt 0.177778 0.793103 +vt 0.200000 0.793103 +vt 0.088889 0.896552 +vt 0.155556 0.896552 +vt 0.333333 -0.000000 +vt 0.222222 0.965517 +vt 0.333333 0.965517 +vt 0.400000 0.137931 +vt 0.511111 0.965517 +vt 0.511111 0.137931 +vt 0.400000 0.965517 +vt 0.333333 0.000000 +vt 0.333333 0.965517 +vt 0.577778 0.000000 +vt 0.511111 0.965517 +vt 0.577778 0.965517 +vt 0.000000 0.344828 +vt 0.000000 0.344828 +vt -0.000000 0.344828 +vt 0.155556 0.172414 +vt 0.155556 0.517241 +vt 0.155556 0.172414 +vt 0.155556 0.172414 +vt 0.155556 0.172414 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.022222 0.896552 +vt 0.666667 0.965517 +vt 0.666667 0.965517 +vt 0.666667 0.965517 +vt 0.666667 0.965517 +vt 0.222222 0.000000 +vt 0.400000 0.965517 +vt 0.400000 0.000000 +vt 0.511111 0.000000 +vt 0.755556 0.689655 +vt 0.755556 0.689655 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.177778 0.827586 +vt 0.022222 0.758621 +vt 0.022222 0.896552 +vt 0.222222 0.000000 +vt 0.400000 0.965517 +vt 0.400000 0.000000 +vt 0.511111 0.000000 vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 vn 1.0000 0.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 vn 0.0000 -0.7071 -0.7071 s off -f 230/293/15 225/294/15 226/295/15 -f 234/296/16 239/297/16 235/298/16 -f 229/299/15 227/300/15 225/294/15 -f 231/301/15 228/302/15 227/300/15 -f 232/303/15 226/295/15 228/302/15 -f 233/304/16 238/305/16 234/296/16 -f 236/306/16 237/307/16 233/304/16 -f 235/298/16 240/308/16 236/306/16 -f 231/309/17 240/310/17 232/311/17 -f 230/312/18 238/313/18 229/314/18 -f 228/315/18 233/316/18 227/317/18 -f 225/318/17 235/319/17 226/320/17 -f 232/321/19 239/322/19 230/323/19 -f 229/324/20 237/325/20 231/326/20 -f 226/295/20 236/306/20 228/302/20 -f 227/327/19 234/328/19 225/329/19 -f 241/330/15 244/331/15 243/332/15 -f 246/333/20 252/334/20 248/335/20 -f 247/336/19 249/337/19 245/338/19 -f 248/335/18 251/339/18 247/340/18 -f 245/338/17 250/341/17 246/333/17 -f 255/342/18 263/343/18 256/344/18 -f 261/345/15 257/346/15 260/347/15 -f 254/348/17 259/349/17 253/350/17 -f 264/351/20 261/345/20 262/352/20 -f 262/353/21 260/347/21 259/349/21 -f 258/354/22 264/351/22 263/343/22 -f 260/347/19 257/346/19 258/355/19 -f 268/356/20 265/357/20 266/358/20 -f 279/359/15 277/360/15 278/361/15 -f 283/362/15 281/363/15 282/364/15 -f 270/365/17 278/366/17 269/367/17 -f 276/368/20 283/362/20 274/369/20 -f 273/370/19 281/371/19 275/372/19 -f 272/373/20 279/359/20 270/374/20 -f 269/367/19 277/375/19 271/376/19 -f 275/372/18 284/377/18 276/368/18 -f 274/378/17 282/379/17 273/370/17 -f 271/376/18 280/380/18 272/373/18 -f 285/381/18 288/382/18 286/383/18 -f 292/384/18 289/385/18 290/386/18 -f 296/387/18 293/388/18 295/389/18 -f 297/390/18 300/391/18 298/392/18 -f 301/393/18 304/394/18 303/395/18 -f 305/396/18 308/397/18 306/398/18 -f 309/399/18 312/400/18 311/401/18 -f 316/402/18 313/403/18 314/404/18 -f 320/405/18 317/406/18 319/407/18 -f 324/408/18 321/409/18 322/410/18 -f 328/411/18 325/412/18 327/413/18 -f 329/414/18 332/415/18 330/416/18 -f 333/417/18 336/418/18 335/419/18 -f 337/420/18 340/421/18 339/422/18 -f 341/423/18 344/424/18 342/425/18 -f 345/426/18 348/427/18 347/428/18 -f 352/429/18 349/430/18 350/431/18 -f 356/432/18 353/433/18 355/434/18 -f 360/435/18 357/436/18 358/437/18 -f 364/438/18 361/439/18 363/440/18 -f 365/441/18 368/442/18 366/443/18 -f 369/444/18 372/445/18 371/446/18 -f 376/447/18 373/448/18 374/449/18 -f 380/450/18 377/451/18 379/452/18 -f 384/453/18 381/454/18 382/455/18 -f 388/456/18 385/457/18 387/458/18 -f 389/459/19 393/460/19 391/461/19 -f 390/462/21 395/463/21 389/459/21 -f 391/464/23 394/465/23 392/466/23 -f 392/466/20 396/467/20 390/462/20 -f 397/468/19 401/469/19 399/470/19 -f 398/471/21 403/472/21 397/468/21 -f 399/473/23 402/474/23 400/475/23 -f 400/475/20 404/476/20 398/471/20 -f 405/477/17 408/478/17 407/479/17 -f 412/480/17 409/481/17 411/482/17 -f 416/483/17 413/484/17 414/485/17 -f 417/486/17 420/487/17 419/488/17 -f 421/489/17 424/490/17 422/491/17 -f 425/492/17 428/493/17 427/494/17 -f 429/495/17 432/496/17 430/497/17 -f 436/498/17 433/499/17 435/500/17 -f 440/501/17 437/502/17 438/503/17 -f 444/504/17 441/505/17 443/506/17 -f 448/507/17 445/508/17 446/509/17 -f 449/510/17 452/511/17 451/512/17 -f 453/513/17 456/514/17 454/515/17 -f 457/516/17 460/517/17 458/518/17 -f 461/519/17 464/520/17 463/521/17 -f 465/522/17 468/523/17 466/524/17 -f 472/525/17 469/526/17 471/527/17 -f 476/528/17 473/529/17 474/530/17 -f 480/531/17 477/532/17 479/533/17 -f 484/534/17 481/535/17 482/536/17 -f 485/537/17 488/538/17 487/539/17 -f 489/540/17 492/541/17 490/542/17 -f 496/543/17 493/544/17 495/545/17 -f 500/546/17 497/547/17 498/548/17 -f 504/549/17 501/550/17 503/551/17 -f 508/552/17 505/553/17 506/554/17 -f 510/555/20 516/556/20 512/557/20 -f 511/558/19 513/559/19 509/560/19 -f 512/557/18 515/561/18 511/562/18 -f 509/560/17 514/563/17 510/555/17 -f 518/564/20 524/565/20 520/566/20 -f 519/567/19 521/568/19 517/569/19 -f 520/566/18 523/570/18 519/571/18 -f 517/569/17 522/572/17 518/564/17 -f 526/573/20 532/574/20 528/575/20 -f 527/576/19 529/577/19 525/578/19 -f 528/575/18 531/579/18 527/580/18 -f 525/578/17 530/581/17 526/573/17 -f 536/582/19 533/583/19 534/584/19 -f 540/585/18 537/586/18 538/587/18 -f 544/588/17 541/589/17 542/590/17 -f 230/293/15 229/299/15 225/294/15 -f 234/296/16 238/305/16 239/297/16 -f 229/299/15 231/301/15 227/300/15 -f 231/301/15 232/303/15 228/302/15 -f 232/303/15 230/293/15 226/295/15 -f 233/304/16 237/307/16 238/305/16 -f 236/306/16 240/308/16 237/307/16 -f 235/298/16 239/297/16 240/308/16 -f 231/309/17 237/591/17 240/310/17 -f 230/312/18 239/592/18 238/313/18 -f 228/315/18 236/593/18 233/316/18 -f 225/318/17 234/594/17 235/319/17 -f 232/321/19 240/595/19 239/322/19 -f 229/324/20 238/596/20 237/325/20 -f 226/295/20 235/298/20 236/306/20 -f 227/327/19 233/597/19 234/328/19 -f 241/330/15 242/598/15 244/331/15 -f 246/333/20 250/341/20 252/334/20 -f 247/336/19 251/599/19 249/337/19 -f 248/335/18 252/334/18 251/339/18 -f 245/338/17 249/337/17 250/341/17 -f 255/342/18 258/354/18 263/343/18 -f 261/345/15 264/351/15 257/346/15 -f 254/348/17 262/353/17 259/349/17 -f 262/352/20 254/600/20 256/601/20 -f 256/601/20 263/602/20 262/352/20 -f 263/602/20 264/351/20 262/352/20 -f 262/353/21 261/345/21 260/347/21 -f 258/354/22 257/346/22 264/351/22 -f 258/355/19 255/603/19 253/604/19 -f 253/604/19 259/605/19 258/355/19 -f 259/605/19 260/347/19 258/355/19 -f 268/356/20 267/606/20 265/357/20 -f 279/359/15 280/380/15 277/360/15 -f 283/362/15 284/377/15 281/363/15 -f 270/365/17 279/607/17 278/366/17 -f 276/368/20 284/377/20 283/362/20 -f 273/370/19 282/379/19 281/371/19 -f 272/373/20 280/380/20 279/359/20 -f 269/367/19 278/366/19 277/375/19 -f 275/372/18 281/371/18 284/377/18 -f 274/378/17 283/608/17 282/379/17 -f 271/376/18 277/375/18 280/380/18 -f 285/381/18 287/609/18 288/382/18 -f 292/384/18 291/610/18 289/385/18 -f 296/387/18 294/611/18 293/388/18 -f 297/390/18 299/612/18 300/391/18 -f 301/393/18 302/613/18 304/394/18 -f 305/396/18 307/614/18 308/397/18 -f 309/399/18 310/615/18 312/400/18 -f 316/402/18 315/616/18 313/403/18 -f 320/405/18 318/617/18 317/406/18 -f 324/408/18 323/618/18 321/409/18 -f 328/411/18 326/619/18 325/412/18 -f 329/414/18 331/620/18 332/415/18 -f 333/417/18 334/621/18 336/418/18 -f 337/420/18 338/622/18 340/421/18 -f 341/423/18 343/623/18 344/424/18 -f 345/426/18 346/624/18 348/427/18 -f 352/429/18 351/625/18 349/430/18 -f 356/432/18 354/626/18 353/433/18 -f 360/435/18 359/627/18 357/436/18 -f 364/438/18 362/628/18 361/439/18 -f 365/441/18 367/629/18 368/442/18 -f 369/444/18 370/630/18 372/445/18 -f 376/447/18 375/631/18 373/448/18 -f 380/450/18 378/632/18 377/451/18 -f 384/453/18 383/633/18 381/454/18 -f 388/456/18 386/634/18 385/457/18 -f 389/459/19 395/463/19 393/460/19 -f 390/462/21 396/467/21 395/463/21 -f 391/464/23 393/635/23 394/465/23 -f 392/466/20 394/465/20 396/467/20 -f 397/468/19 403/472/19 401/469/19 -f 398/471/21 404/476/21 403/472/21 -f 399/473/23 401/636/23 402/474/23 -f 400/475/20 402/474/20 404/476/20 -f 405/477/17 406/637/17 408/478/17 -f 412/480/17 410/638/17 409/481/17 -f 416/483/17 415/639/17 413/484/17 -f 417/486/17 418/640/17 420/487/17 -f 421/489/17 423/641/17 424/490/17 -f 425/492/17 426/642/17 428/493/17 -f 429/495/17 431/643/17 432/496/17 -f 436/498/17 434/644/17 433/499/17 -f 440/501/17 439/645/17 437/502/17 -f 444/504/17 442/646/17 441/505/17 -f 448/507/17 447/647/17 445/508/17 -f 449/510/17 450/648/17 452/511/17 -f 453/513/17 455/649/17 456/514/17 -f 457/516/17 459/650/17 460/517/17 -f 461/519/17 462/651/17 464/520/17 -f 465/522/17 467/652/17 468/523/17 -f 472/525/17 470/653/17 469/526/17 -f 476/528/17 475/654/17 473/529/17 -f 480/531/17 478/655/17 477/532/17 -f 484/534/17 483/656/17 481/535/17 -f 485/537/17 486/657/17 488/538/17 -f 489/540/17 491/658/17 492/541/17 -f 496/543/17 494/659/17 493/544/17 -f 500/546/17 499/660/17 497/547/17 -f 504/549/17 502/661/17 501/550/17 -f 508/552/17 507/662/17 505/553/17 -f 510/555/20 514/563/20 516/556/20 -f 511/558/19 515/663/19 513/559/19 -f 512/557/18 516/556/18 515/561/18 -f 509/560/17 513/559/17 514/563/17 -f 518/564/20 522/572/20 524/565/20 -f 519/567/19 523/664/19 521/568/19 -f 520/566/18 524/565/18 523/570/18 -f 517/569/17 521/568/17 522/572/17 -f 526/573/20 530/581/20 532/574/20 -f 527/576/19 531/665/19 529/577/19 -f 528/575/18 532/574/18 531/579/18 -f 525/578/17 529/577/17 530/581/17 -f 536/582/19 535/666/19 533/583/19 -f 540/585/18 539/667/18 537/586/18 -f 544/588/17 543/668/17 541/589/17 -o Atlas_Rope -v -2.116117 11.000000 2.292893 -v -2.292893 11.000000 2.116117 -v -2.292893 11.000000 2.469670 -v -2.469670 11.000000 2.292893 -v -1.762563 16.250000 1.939340 -v -1.939340 16.250000 1.762563 -v -1.939340 16.250000 2.116117 -v -2.116117 16.250000 1.939340 -v -1.409010 16.750000 1.585786 -v -1.585786 16.750000 1.409010 -v -1.409010 17.000000 1.585786 -v -1.585786 17.000000 1.409010 -v -1.055456 17.000000 0.878680 -v -0.878680 17.000000 1.055456 -v -0.701903 16.750000 0.878680 -v -0.878680 16.750000 0.701903 -v -0.878680 16.750000 1.055456 -v -1.055456 16.750000 0.878680 -v -0.701903 15.250000 0.878680 -v -0.878680 15.250000 0.701903 -v -0.878680 15.250000 1.055456 -v -1.055456 15.250000 0.878680 -v 0.005204 14.250000 0.171573 -v -0.171573 14.250000 -0.005204 -v -0.171573 14.250000 0.348350 -v -0.348350 14.250000 0.171573 -vt 0.897436 0.395161 -vt 0.884615 0.346774 -vt 0.897436 0.346774 -vt 0.846154 -0.000000 -vt 0.858974 0.338710 -vt 0.846154 0.338710 -vt 0.884615 -0.000000 -vt 0.871795 0.338710 -vt 0.871795 -0.000000 -vt 0.858974 -0.000000 -vt 0.897436 -0.000000 -vt 0.884615 0.338710 -vt 0.858974 0.451613 -vt 0.846154 0.467742 -vt 0.846154 0.451613 -vt 0.858974 0.403226 -vt 0.846154 0.346774 -vt 0.884615 0.395161 -vt 0.871795 0.451613 -vt 0.897436 0.403226 -vt 0.884615 0.451613 -vt 0.884615 0.403226 -vt 0.871795 0.403226 -vt 0.871795 0.467742 -vt 0.884615 0.532258 -vt 0.897436 0.467742 -vt 0.897436 0.532258 -vt 0.884615 0.629032 -vt 0.897436 0.629032 -vt 0.871795 0.629032 -vt 0.858974 0.629032 -vt 0.871795 0.532258 -vt 0.846154 0.629032 -vt 0.858974 0.532258 -vt 0.884615 0.467742 -vt 0.858974 0.467742 -vt 0.871795 0.467742 -vt 0.846154 0.532258 -vt 0.897436 0.338710 -vt 0.846154 0.403226 -vt 0.846154 0.395161 -vt 0.897436 0.451613 -vt 0.884615 0.467742 -vt 0.858974 0.467742 -vt 0.846154 0.467742 -vn 0.5000 -0.7071 -0.5000 -vn -0.7071 -0.0000 -0.7071 -vn 0.7071 -0.0000 0.7071 -vn -0.7039 0.0948 0.7039 -vn 0.7039 -0.0948 -0.7039 -vn -0.5000 0.7071 0.5000 -vn 0.0000 1.0000 0.0000 +f 679/1121/134 680/1122/134 681/1123/134 +f 682/1124/134 681/1123/134 683/1125/134 +f 683/1125/135 684/1126/135 685/1127/135 +f 680/1128/136 686/1129/136 681/1130/136 +f 685/1131/137 687/1132/137 680/1133/137 +f 681/1134/138 688/1135/138 683/1136/138 +f 689/1137/135 690/1138/135 679/1139/135 +f 690/1140/134 685/1127/134 680/1122/134 +f 691/1141/134 683/1125/134 685/1127/134 +f 686/1142/139 692/1143/139 688/1144/139 +f 688/1144/139 693/1145/139 684/1126/139 +f 684/1126/139 694/1146/139 687/1147/139 +f 687/1147/139 689/1148/139 686/1142/139 +f 695/1149/134 696/1150/134 697/1151/134 +f 694/1152/138 691/1153/138 690/1154/138 +f 693/1155/136 682/1156/136 691/1157/136 +f 692/1158/137 679/1159/137 682/1160/137 +f 698/1161/137 699/1162/137 700/1163/137 +f 699/1164/136 701/1165/136 700/1166/136 +f 702/1167/135 703/1168/135 704/1169/135 +f 705/1170/140 700/1166/140 701/1165/140 +f 704/1171/138 706/1172/138 707/1173/138 +f 705/1174/138 701/1175/138 708/1176/138 +f 701/1175/136 709/1177/136 708/1176/136 +f 709/1178/141 704/1171/141 703/1179/141 +f 710/1180/134 711/1181/134 712/1182/134 +f 713/1183/136 711/1181/136 714/1184/136 +f 714/1185/137 715/1186/137 716/1187/137 +f 717/1188/138 712/1182/138 713/1189/138 +f 716/1190/135 710/1180/135 717/1191/135 +f 718/1192/134 719/1193/134 720/1194/134 +f 721/1195/134 722/1196/134 723/1197/134 +f 724/1198/134 725/1199/134 726/1200/134 +f 727/1201/134 728/1202/134 729/1203/134 +f 730/1204/135 724/1198/135 731/1205/135 +f 732/1206/137 733/1207/137 734/1208/137 +f 735/1209/137 736/1210/137 730/1204/137 +f 737/1211/136 722/1212/136 738/1213/136 +f 739/1214/136 728/1215/136 740/1216/136 +f 741/1217/138 723/1218/138 737/1211/138 +f 742/1219/138 729/1220/138 739/1214/138 +f 743/1221/135 721/1195/135 741/1222/135 +f 744/1223/135 727/1201/135 742/1224/135 +f 738/1213/137 745/1225/137 743/1221/137 +f 746/1226/136 719/1227/136 732/1206/136 +f 740/1216/137 747/1228/137 744/1223/137 +f 748/1229/136 725/1230/136 735/1209/136 +f 749/1231/138 720/1232/138 746/1226/138 +f 731/1233/138 726/1234/138 748/1229/138 +f 734/1208/135 718/1192/135 749/1235/135 +f 750/1236/138 751/1237/138 752/1238/138 +f 753/1239/137 754/1240/137 755/1241/137 +f 756/1242/135 757/1243/135 758/1244/135 +f 759/1245/136 760/1246/136 761/1247/136 +f 762/1248/134 763/1249/134 764/1250/134 +f 765/1251/134 766/1252/134 767/1253/134 +f 768/1254/135 762/1248/135 769/1255/135 +f 770/1256/136 763/1257/136 771/1258/136 +f 772/1259/137 773/1260/137 774/1261/137 +f 775/1262/138 767/1263/138 776/1264/138 +f 771/1258/137 777/1265/137 768/1254/137 +f 769/1266/138 764/1267/138 770/1256/138 +f 774/1261/135 765/1251/135 775/1268/135 +f 776/1264/136 766/1269/136 772/1259/136 +f 778/1270/138 779/1271/138 780/1272/138 +f 779/1273/135 781/1274/135 780/1275/135 +f 782/1276/136 783/1277/136 784/1278/136 +f 785/1279/142 781/1274/142 786/1280/142 +f 784/1281/137 787/1282/137 788/1283/137 +f 786/1284/137 781/1285/137 789/1286/137 +f 781/1285/135 790/1287/135 789/1286/135 +f 790/1288/143 784/1281/143 783/1289/143 +f 791/1290/136 792/1291/136 793/1292/136 +f 792/1293/138 794/1294/138 793/1295/138 +f 795/1296/137 796/1297/137 797/1298/137 +f 798/1299/141 794/1294/141 799/1300/141 +f 797/1301/135 800/1302/135 801/1303/135 +f 799/1304/135 794/1305/135 802/1306/135 +f 794/1305/138 803/1307/138 802/1306/138 +f 803/1308/142 797/1301/142 796/1309/142 +f 804/1310/135 805/1311/135 806/1312/135 +f 805/1313/137 807/1314/137 806/1315/137 +f 808/1316/138 809/1317/138 810/1318/138 +f 811/1319/143 806/1315/143 807/1314/143 +f 810/1320/136 812/1321/136 813/1322/136 +f 811/1323/136 807/1324/136 814/1325/136 +f 807/1324/137 815/1326/137 814/1325/137 +f 815/1327/140 810/1320/140 809/1328/140 +f 816/1329/137 817/1330/137 818/1331/137 +f 819/1332/138 820/1333/138 821/1334/138 +f 822/1335/136 823/1336/136 824/1337/136 +f 825/1338/135 826/1339/135 827/1340/135 +f 679/1121/134 690/1140/134 680/1122/134 +f 682/1124/134 679/1121/134 681/1123/134 +f 683/1125/135 688/1144/135 684/1126/135 +f 680/1128/136 687/1341/136 686/1129/136 +f 685/1131/137 684/1342/137 687/1132/137 +f 681/1134/138 686/1343/138 688/1135/138 +f 689/1137/135 694/1344/135 690/1138/135 +f 690/1140/134 691/1141/134 685/1127/134 +f 691/1141/134 682/1124/134 683/1125/134 +f 686/1142/139 689/1148/139 692/1143/139 +f 688/1144/139 692/1143/139 693/1145/139 +f 684/1126/139 693/1145/139 694/1146/139 +f 687/1147/139 694/1146/139 689/1148/139 +f 695/1149/134 828/1345/134 696/1150/134 +f 694/1152/138 693/1346/138 691/1153/138 +f 693/1155/136 692/1347/136 682/1156/136 +f 692/1158/137 689/1348/137 679/1159/137 +f 829/1349/137 702/1167/137 700/1163/137 +f 702/1167/137 698/1161/137 700/1163/137 +f 699/1164/136 706/1172/136 701/1165/136 +f 707/1350/135 698/1161/135 704/1169/135 +f 698/1161/135 702/1167/135 704/1169/135 +f 705/1170/140 829/1351/140 700/1166/140 +f 704/1171/138 701/1165/138 706/1172/138 +f 709/1178/141 701/1165/141 704/1171/141 +f 710/1180/134 715/1186/134 711/1181/134 +f 713/1183/136 712/1182/136 711/1181/136 +f 714/1185/137 711/1181/137 715/1186/137 +f 717/1188/138 710/1180/138 712/1182/138 +f 716/1190/135 715/1186/135 710/1180/135 +f 718/1192/134 733/1207/134 719/1193/134 +f 721/1195/134 745/1225/134 722/1196/134 +f 724/1198/134 736/1210/134 725/1199/134 +f 727/1201/134 747/1228/134 728/1202/134 +f 730/1204/135 736/1210/135 724/1198/135 +f 732/1206/137 719/1227/137 733/1207/137 +f 735/1209/137 725/1230/137 736/1210/137 +f 737/1211/136 723/1218/136 722/1212/136 +f 739/1214/136 729/1220/136 728/1215/136 +f 741/1217/138 721/1352/138 723/1218/138 +f 742/1219/138 727/1353/138 729/1220/138 +f 743/1221/135 745/1225/135 721/1195/135 +f 744/1223/135 747/1228/135 727/1201/135 +f 738/1213/137 722/1212/137 745/1225/137 +f 746/1226/136 720/1232/136 719/1227/136 +f 740/1216/137 728/1215/137 747/1228/137 +f 748/1229/136 726/1234/136 725/1230/136 +f 749/1231/138 718/1354/138 720/1232/138 +f 731/1233/138 724/1355/138 726/1234/138 +f 734/1208/135 733/1207/135 718/1192/135 +f 750/1236/138 830/1356/138 751/1237/138 +f 753/1239/137 831/1357/137 754/1240/137 +f 756/1242/135 832/1358/135 757/1243/135 +f 759/1245/136 833/1359/136 760/1246/136 +f 762/1248/134 777/1265/134 763/1249/134 +f 765/1251/134 773/1260/134 766/1252/134 +f 768/1254/135 777/1265/135 762/1248/135 +f 770/1256/136 764/1267/136 763/1257/136 +f 772/1259/137 766/1269/137 773/1260/137 +f 775/1262/138 765/1360/138 767/1263/138 +f 771/1258/137 763/1257/137 777/1265/137 +f 769/1266/138 762/1361/138 764/1267/138 +f 774/1261/135 773/1260/135 765/1251/135 +f 776/1264/136 767/1263/136 766/1269/136 +f 785/1362/138 782/1276/138 780/1272/138 +f 782/1276/138 778/1270/138 780/1272/138 +f 779/1273/135 787/1282/135 781/1274/135 +f 788/1363/136 778/1270/136 784/1278/136 +f 778/1270/136 782/1276/136 784/1278/136 +f 785/1279/142 780/1275/142 781/1274/142 +f 784/1281/137 781/1274/137 787/1282/137 +f 790/1288/143 781/1274/143 784/1281/143 +f 798/1364/136 795/1296/136 793/1292/136 +f 795/1296/136 791/1290/136 793/1292/136 +f 792/1293/138 800/1302/138 794/1294/138 +f 801/1365/137 791/1290/137 797/1298/137 +f 791/1290/137 795/1296/137 797/1298/137 +f 798/1299/141 793/1295/141 794/1294/141 +f 797/1301/135 794/1294/135 800/1302/135 +f 803/1308/142 794/1294/142 797/1301/142 +f 834/1366/135 808/1316/135 806/1312/135 +f 808/1316/135 804/1310/135 806/1312/135 +f 805/1313/137 812/1321/137 807/1314/137 +f 813/1367/138 804/1310/138 810/1318/138 +f 804/1310/138 808/1316/138 810/1318/138 +f 811/1319/143 834/1368/143 806/1315/143 +f 810/1320/136 807/1314/136 812/1321/136 +f 815/1327/140 807/1314/140 810/1320/140 +f 816/1329/137 835/1369/137 817/1330/137 +f 819/1332/138 836/1370/138 820/1333/138 +f 822/1335/136 837/1371/136 823/1336/136 +f 825/1338/135 838/1372/135 826/1339/135 +o Micro_Erector +v -0.125000 3.250000 -1.625000 +v 0.125000 3.250000 -1.375000 +v -0.125000 3.250000 -1.375000 +v 0.125000 6.250000 -1.375000 +v -0.125000 6.000000 -1.625000 +v -0.125000 6.250000 -1.375000 +v 0.125000 6.000000 -1.625000 +v 0.125000 3.250000 -1.625000 +v -0.625000 6.000000 -0.125000 +v -0.125000 6.000000 -0.375000 +v -0.375000 6.000000 -0.125000 +v -0.125000 6.250000 -0.625000 +v -0.125000 6.000000 -0.625000 +v 0.125000 6.250000 -1.375000 +v 0.125000 6.000000 -0.625000 +v 0.125000 6.000000 -1.375000 +v -0.125000 6.250000 -1.375000 +v 0.125000 6.250000 -0.625000 +v -0.125000 6.000000 -1.375000 +v 0.375000 6.250000 0.375000 +v 0.625000 6.000000 0.125000 +v 0.625000 6.250000 0.125000 +v 0.375000 6.000000 -0.125000 +v 0.375000 6.000000 0.375000 +v 0.625000 6.250000 -0.125000 +v 0.625000 6.000000 -0.125000 +v 0.375000 6.250000 -0.125000 +v -0.375000 6.250000 -0.125000 +v -0.625000 6.250000 -0.125000 +v -0.625000 6.250000 0.125000 +v -0.375000 6.000000 0.375000 +v -0.375000 6.250000 0.375000 +v -0.625000 6.000000 0.125000 +v -0.125000 6.250000 -0.375000 +v 0.125000 6.000000 -0.375000 +v 0.125000 6.250000 -0.375000 +v 0.000000 6.000000 -0.625000 +v 0.000000 5.500000 -1.375000 +v 0.000000 6.250000 -0.625000 +v 0.000000 4.250000 -0.625000 +v 0.000000 4.750000 -1.375000 +v 0.000000 5.000000 -1.375000 +v 0.125000 4.000000 -0.625000 +v -0.125000 4.000000 -0.375000 +v -0.125000 4.000000 -0.625000 +v -0.125000 4.250000 -0.375000 +v 0.125000 4.000000 -0.375000 +v 0.125000 4.250000 -0.375000 +v -0.625000 4.000000 -0.125000 +v -0.625000 4.250000 0.125000 +v -0.625000 4.250000 -0.125000 +v -0.375000 4.250000 -0.125000 +v -0.375000 4.250000 0.375000 +v -0.375000 4.000000 0.375000 +v -0.375000 4.000000 -0.125000 +v -0.625000 4.000000 0.125000 +v -0.125000 4.250000 -0.625000 +v 0.375000 4.000000 -0.125000 +v 0.375000 4.250000 0.375000 +v 0.375000 4.250000 -0.125000 +v 0.625000 4.250000 0.125000 +v 0.625000 4.250000 -0.125000 +v 0.625000 4.000000 0.125000 +v 0.625000 4.000000 -0.125000 +v 0.375000 4.000000 0.375000 +v 0.125000 4.000000 -1.375000 +v -0.125000 4.000000 -1.375000 +v -0.125000 4.250000 -1.375000 +v 0.125000 4.250000 -0.625000 +v 0.125000 4.250000 -1.375000 +v 0.000000 5.500000 -1.375000 +v 0.000000 6.000000 -0.625000 +v 0.000000 6.250000 -0.625000 +v 0.000000 4.750000 -1.375000 +v 0.000000 4.250000 -0.625000 +v 0.000000 5.000000 -1.375000 +v 0.000000 5.250000 -1.375000 +v 0.000000 4.000000 -0.625000 +v 0.000000 5.250000 -1.375000 +v 0.000000 4.000000 -0.625000 +vt 0.800000 0.448276 +vt 0.777778 0.413793 +vt 0.800000 0.413793 +vt 0.777778 0.862069 +vt 0.800000 0.827586 +vt 0.800000 0.862069 +vt 0.777778 0.827586 +vt 0.777778 0.448276 +vt 0.844444 0.448276 +vt 0.822222 0.862069 +vt 0.822222 0.448276 +vt 0.755556 0.448276 +vt 0.755556 0.862069 +vt 0.866667 0.172414 +vt 0.911111 0.137931 +vt 0.888889 0.172414 +vt 1.000000 0.172414 +vt 0.977778 0.103448 +vt 1.000000 0.103448 +vt 0.866667 -0.000000 +vt 0.844444 0.103448 +vt 0.844444 -0.000000 +vt 0.933333 0.000000 +vt 0.911111 0.103448 +vt 0.911111 0.000000 +vt 1.000000 -0.000000 +vt 0.977778 -0.000000 +vt 0.933333 -0.000000 +vt 0.911111 0.103448 +vt 0.911111 -0.000000 +vt 0.866667 0.241379 +vt 0.844444 0.206897 +vt 0.866667 0.206897 +vt 0.955556 0.172414 +vt 0.977778 0.206897 +vt 0.955556 0.241379 +vt 0.866667 0.172414 +vt 0.844444 0.172414 +vt 0.888889 0.172414 +vt 0.844444 0.310345 +vt 0.866667 0.310345 +vt 0.955556 0.172414 +vt 0.933333 0.103448 +vt 0.977778 0.172414 +vt 0.977778 0.206897 +vt 1.000000 0.241379 +vt 0.977778 0.241379 +vt 0.866667 0.206897 +vt 0.977778 0.310345 +vt 1.000000 0.310345 +vt 0.955556 0.241379 +vt 0.933333 0.137931 +vt 0.911111 0.172414 +vt 0.911111 0.137931 +vt 0.933333 0.103448 +vt 1.000000 0.344828 +vt 0.866667 0.344828 +vt 0.866667 0.103448 +vt 0.933333 0.137931 +vt 0.977778 0.172414 +vt 0.444444 0.000000 +vt 0.511111 0.034483 +vt 0.444444 0.034483 +vt 0.444444 0.034483 +vt 0.511111 0.000000 +vt 0.511111 0.034483 +vt 0.933333 0.103448 +vt 0.911111 0.137931 +vt 0.911111 0.103448 +vt 0.933333 0.137931 +vt 0.911111 0.172414 +vt 0.911111 0.137931 +vt 1.000000 0.172414 +vt 0.977778 0.206897 +vt 0.977778 0.172414 +vt 0.955556 0.172414 +vt 0.955556 0.241379 +vt 0.977778 0.310345 +vt 1.000000 0.241379 +vt 1.000000 0.310345 +vt 0.888889 0.172414 +vt 0.866667 0.206897 +vt 0.866667 0.172414 +vt 0.977778 0.241379 +vt 0.933333 0.103448 +vt 0.844444 0.310345 +vt 0.866667 0.241379 +vt 0.866667 0.310345 +vt 0.888889 0.172414 +vt 0.866667 0.206897 +vt 0.866667 0.172414 +vt 0.844444 0.206897 +vt 0.844444 0.172414 +vt 0.955556 0.172414 +vt 0.977778 0.206897 +vt 0.955556 0.241379 +vt 0.933333 -0.000000 +vt 0.911111 -0.000000 +vt 1.000000 -0.000000 +vt 0.977778 0.103448 +vt 0.977778 -0.000000 +vt 0.933333 0.000000 +vt 0.911111 0.103448 +vt 0.911111 0.000000 +vt 0.866667 -0.000000 +vt 0.844444 0.103448 +vt 0.844444 -0.000000 +vt 1.000000 0.103448 +vt 0.511111 0.034483 +vt 0.444444 0.000000 +vt 0.444444 0.034483 +vt 0.511111 0.000000 +vt 0.444444 0.034483 +vt 0.511111 0.034483 +vt 1.000000 0.344828 +vt 0.866667 0.344828 +vt 0.866667 0.103448 +vt 0.933333 0.137931 +vt 0.977778 0.172414 +vt 0.844444 0.862069 +vt 0.844444 0.241379 +vt 0.888889 0.241379 +vt 1.000000 0.206897 +vt 0.888889 0.241379 +vt 0.933333 0.172414 +vt 0.977778 0.344828 +vt 0.844444 0.344828 +vt 0.511111 0.000000 +vt 0.444444 -0.000000 +vt 0.933333 0.172414 +vt 1.000000 0.206897 +vt 0.888889 0.241379 +vt 0.844444 0.241379 +vt 0.888889 0.241379 +vt 0.511111 0.000000 +vt 0.444444 -0.000000 +vt 0.977778 0.344828 +vt 0.844444 0.344828 vn 0.0000 -1.0000 0.0000 -vn 0.5000 0.7071 -0.5000 -vn 0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 0.7071 -vn -0.5000 -0.7071 0.5000 -s off -f 554/669/24 549/670/24 550/671/24 -f 546/672/25 552/673/25 550/674/25 -f 545/675/26 551/676/26 547/677/26 -f 547/677/27 552/673/27 548/678/27 -f 546/679/28 549/680/28 545/675/28 -f 557/681/25 560/682/25 562/683/25 -f 556/684/25 550/685/25 552/673/25 -f 551/676/29 556/684/29 552/673/29 -f 553/686/26 551/676/26 549/670/26 -f 556/684/30 558/687/30 557/681/30 -f 554/688/31 561/689/31 553/690/31 -f 561/689/26 558/687/26 555/691/26 -f 559/692/32 557/681/32 558/687/32 -f 564/693/25 570/694/25 566/695/25 -f 560/696/25 566/695/25 562/697/25 -f 559/698/33 564/693/33 560/696/33 -f 561/699/26 563/700/26 559/698/26 -f 562/701/34 565/702/34 561/699/34 -f 563/700/32 568/703/32 564/693/32 -f 563/700/26 569/704/26 567/705/26 -f 566/706/35 569/704/35 565/702/35 -f 554/669/24 553/686/24 549/670/24 -f 546/672/25 548/678/25 552/673/25 -f 545/675/26 549/680/26 551/676/26 -f 547/677/27 551/676/27 552/673/27 -f 546/679/28 550/707/28 549/680/28 -f 562/683/25 554/708/25 556/684/25 -f 556/684/25 557/681/25 562/683/25 -f 556/684/25 554/709/25 550/685/25 -f 551/676/29 555/691/29 556/684/29 -f 553/686/26 555/691/26 551/676/26 -f 556/684/30 555/691/30 558/687/30 -f 554/688/31 562/710/31 561/689/31 -f 555/691/26 553/690/26 561/689/26 -f 561/689/26 559/711/26 558/687/26 -f 559/692/32 560/712/32 557/681/32 -f 564/693/25 568/703/25 570/694/25 -f 560/696/25 564/693/25 566/695/25 -f 559/698/33 563/700/33 564/693/33 -f 561/699/26 565/702/26 563/700/26 -f 562/701/34 566/706/34 565/702/34 -f 563/700/32 567/705/32 568/703/32 -f 563/700/26 565/702/26 569/704/26 -f 566/706/35 570/713/35 569/704/35 -o Atlas_Pivot -v 0.750000 1.500000 -3.750000 -v 1.250000 1.500000 -3.750000 -v 0.750000 1.500000 -4.250000 -v 1.250000 1.500000 -4.250000 -v -1.250000 1.500000 -3.750000 -v -0.750000 1.500000 -3.750000 -v -1.250000 1.500000 -4.250000 -v -0.750000 1.500000 -4.250000 -v 0.750000 2.000000 -2.250000 -v 1.250000 2.000000 -2.250000 -v 0.750000 2.000000 -2.750000 -v 1.250000 2.000000 -2.750000 -v -1.250000 2.000000 -2.250000 -v -0.750000 2.000000 -2.250000 -v -1.250000 2.000000 -2.750000 -v -0.750000 2.000000 -2.750000 -v 0.750000 3.500000 -4.250000 -v 0.750000 3.500000 -3.750000 -v 1.250000 3.500000 -3.750000 -v 1.250000 3.500000 -4.250000 -v -1.250000 3.500000 -4.250000 -v -1.250000 3.500000 -3.750000 -v -0.750000 3.500000 -3.750000 -v -0.750000 3.500000 -4.250000 -v 0.750000 3.500000 -2.750000 -v 0.750000 3.500000 -2.250000 -v 1.250000 3.500000 -2.250000 -v 1.250000 3.500000 -2.750000 -v -1.250000 3.500000 -2.750000 -v -1.250000 3.500000 -2.250000 -v -0.750000 3.500000 -2.250000 -v -0.750000 3.500000 -2.750000 -v 0.812500 3.500000 -3.812500 -v 1.187500 3.500000 -3.812500 -v 0.812500 3.500000 -4.187500 -v 1.187500 3.500000 -4.187500 -v 0.812500 4.500000 -3.812500 -v 1.187500 4.500000 -3.812500 -v 0.812500 4.500000 -4.187500 -v 1.187500 4.500000 -4.187500 -v 0.812500 3.500000 -2.312500 -v 1.187500 3.500000 -2.312500 -v 0.812500 3.500000 -2.687500 -v 1.187500 3.500000 -2.687500 -v 0.812500 4.500000 -2.312500 -v 1.187500 4.500000 -2.312500 -v 0.812500 4.500000 -2.687500 -v 1.187500 4.500000 -2.687500 -v -1.187500 3.500000 -3.812500 -v -0.812500 3.500000 -3.812500 -v -1.187500 3.500000 -4.187500 -v -0.812500 3.500000 -4.187500 -v -1.187500 4.500000 -3.812500 -v -0.812500 4.500000 -3.812500 -v -1.187500 4.500000 -4.187500 -v -0.812500 4.500000 -4.187500 -v -1.187500 3.500000 -2.312500 -v -0.812500 3.500000 -2.312500 -v -1.187500 3.500000 -2.687500 -v -0.812500 3.500000 -2.687500 -v -1.187500 4.500000 -2.312500 -v -0.812500 4.500000 -2.312500 -v -1.187500 4.500000 -2.687500 -v -0.812500 4.500000 -2.687500 -v 1.000000 3.000000 -2.750000 -v 1.000000 2.500000 -2.750000 -v 1.000000 3.000000 -3.750000 -v 1.000000 2.500000 -3.750000 -v -1.000000 3.000000 -2.750000 -v -1.000000 2.500000 -2.750000 -v -1.000000 3.000000 -3.750000 -v -1.000000 2.500000 -3.750000 -v 0.750000 3.000000 -4.000000 -v 0.750000 2.500000 -4.000000 -v -0.750000 3.000000 -4.000000 -v -0.750000 2.500000 -4.000000 -v 0.750000 3.000000 -2.500000 -v 0.750000 2.500000 -2.500000 -v -0.750000 3.000000 -2.500000 -v -0.750000 2.500000 -2.500000 -v 1.000000 3.000000 -2.750000 -v 1.000000 2.500000 -2.750000 -v 1.000000 3.000000 -3.750000 -v 1.000000 2.500000 -3.750000 -v -1.000000 3.000000 -2.750000 -v -1.000000 2.500000 -2.750000 -v -1.000000 3.000000 -3.750000 -v -1.000000 2.500000 -3.750000 -v 0.750000 3.000000 -4.000000 -v 0.750000 2.500000 -4.000000 -v -0.750000 3.000000 -4.000000 -v -0.750000 2.500000 -4.000000 -v 0.750000 3.000000 -2.500000 -v 0.750000 2.500000 -2.500000 -v -0.750000 3.000000 -2.500000 -v -0.750000 2.500000 -2.500000 -vt 0.769231 0.967742 -vt 0.750000 0.903226 -vt 0.769231 0.903226 -vt 0.750000 0.967742 -vt 0.730769 0.903226 -vt 0.692308 0.870968 -vt 0.717949 0.903226 -vt 0.692308 0.903226 -vt 0.692308 0.870968 -vt 0.717949 0.903226 -vt 0.692308 0.903226 -vt 0.692308 0.870968 -vt 0.717949 0.838710 -vt 0.717949 0.870968 -vt 0.692308 0.870968 -vt 0.717949 0.838710 -vt 0.717949 0.870968 -vt 0.769231 0.709677 -vt 0.743590 0.838710 -vt 0.743590 0.709677 -vt 0.717949 0.709677 -vt 0.692308 0.838710 -vt 0.692308 0.709677 -vt 0.769231 0.709677 -vt 0.743590 0.838710 -vt 0.743590 0.709677 -vt 0.794872 0.709677 -vt 0.769231 0.838710 -vt 0.717949 0.709677 -vt 0.794872 0.709677 -vt 0.769231 0.838710 -vt 0.692308 0.838710 -vt 0.692308 0.709677 -vt 0.692308 0.870968 -vt 0.717949 0.838710 -vt 0.717949 0.870968 -vt 0.692308 0.870968 -vt 0.717949 0.838710 -vt 0.717949 0.870968 -vt 0.794872 0.741935 -vt 0.769231 0.838710 -vt 0.769231 0.741935 -vt 0.743590 0.741935 -vt 0.717949 0.741935 -vt 0.794872 0.741935 -vt 0.769231 0.838710 -vt 0.769231 0.741935 -vt 0.743590 0.741935 -vt 0.717949 0.741935 -vt 0.692308 0.838710 -vt 0.692308 0.741935 -vt 0.743590 0.838710 -vt 0.692308 0.838710 -vt 0.692308 0.741935 -vt 0.743590 0.838710 -vt 0.730769 0.967742 -vt 0.711538 0.903226 -vt 0.711538 0.967742 -vt 0.692308 0.903226 -vt 0.769231 0.967742 -vt 0.750000 0.903226 -vt 0.769231 0.903226 -vt 0.750000 0.967742 -vt 0.730769 0.903226 -vt 0.730769 0.967742 -vt 0.711538 0.903226 -vt 0.711538 0.967742 -vt 0.692308 0.903226 -vt 0.769231 0.967742 -vt 0.750000 0.903226 -vt 0.769231 0.903226 -vt 0.750000 0.967742 -vt 0.730769 0.903226 -vt 0.730769 0.967742 -vt 0.711538 0.903226 -vt 0.711538 0.967742 -vt 0.692308 0.903226 -vt 0.769231 0.967742 -vt 0.750000 0.903226 -vt 0.769231 0.903226 -vt 0.750000 0.967742 -vt 0.730769 0.903226 -vt 0.730769 0.967742 -vt 0.711538 0.903226 -vt 0.711538 0.967742 -vt 0.692308 0.903226 -vt 0.743590 0.870968 -vt 0.794872 0.903226 -vt 0.743590 0.903226 -vt 0.743590 0.903226 -vt 0.794872 0.870968 -vt 0.794872 0.903226 -vt 0.717949 0.838710 -vt 0.794872 0.870968 -vt 0.717949 0.870968 -vt 0.717949 0.870968 -vt 0.794872 0.838710 -vt 0.794872 0.870968 -vt 0.794872 0.903226 -vt 0.743590 0.870968 -vt 0.743590 0.903226 -vt 0.794872 0.870968 -vt 0.743590 0.903226 -vt 0.794872 0.903226 -vt 0.794872 0.870968 -vt 0.717949 0.838710 -vt 0.717949 0.870968 -vt 0.794872 0.838710 -vt 0.717949 0.870968 -vt 0.794872 0.870968 -vt 0.717949 0.870968 -vt 0.717949 0.870968 -vt 0.794872 0.838710 -vt 0.794872 0.838710 -vt 0.794872 0.838710 -vt 0.794872 0.838710 -vt 0.692308 0.967742 -vt 0.692308 0.967742 -vt 0.692308 0.967742 -vt 0.692308 0.967742 -vt 0.794872 0.870968 -vt 0.743590 0.870968 -vt 0.794872 0.838710 -vt 0.717949 0.838710 -vt 0.794872 0.870968 -vt 0.743590 0.870968 -vt 0.794872 0.838710 -vt 0.717949 0.838710 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -s off -f 610/714/36 604/715/36 606/716/36 -f 608/717/37 603/718/37 604/715/37 -f 581/719/38 580/720/38 579/721/38 -f 585/722/38 584/723/38 583/724/38 -f 589/725/39 587/726/39 588/727/39 -f 593/728/39 591/729/39 592/730/39 -f 576/731/37 592/732/37 575/733/37 -f 573/734/40 590/735/40 574/736/40 -f 572/737/37 588/738/37 571/739/37 -f 578/740/36 593/741/36 576/731/36 -f 575/733/41 591/729/41 577/742/41 -f 574/743/36 589/744/36 572/737/36 -f 571/739/41 587/726/41 573/734/41 -f 577/742/40 594/745/40 578/746/40 -f 597/747/39 595/748/39 596/749/39 -f 601/750/39 599/751/39 600/752/39 -f 586/753/36 601/754/36 584/755/36 -f 583/756/41 599/751/41 585/757/41 -f 582/758/36 597/759/36 580/760/36 -f 579/761/41 595/748/41 581/762/41 -f 585/757/40 602/763/40 586/764/40 -f 584/755/37 600/765/37 583/756/37 -f 581/762/40 598/766/40 582/767/40 -f 580/760/37 596/768/37 579/761/37 -f 607/769/41 605/770/41 603/718/41 -f 609/771/40 606/772/40 605/770/40 -f 618/773/36 612/774/36 614/775/36 -f 616/776/37 611/777/37 612/774/37 -f 615/778/41 613/779/41 611/777/41 -f 617/780/40 614/781/40 613/779/40 -f 626/782/36 620/783/36 622/784/36 -f 624/785/37 619/786/37 620/783/37 -f 623/787/41 621/788/41 619/786/41 -f 625/789/40 622/790/40 621/788/40 -f 634/791/36 628/792/36 630/793/36 -f 632/794/37 627/795/37 628/792/37 -f 631/796/41 629/797/41 627/795/41 -f 633/798/40 630/799/40 629/797/40 -f 636/800/36 637/801/36 635/802/36 -f 641/803/41 640/804/41 639/805/41 -f 644/806/40 645/807/40 643/808/40 -f 649/809/37 648/810/37 647/811/37 -f 653/812/41 652/813/41 651/814/41 -f 656/815/36 657/816/36 655/817/36 -f 661/818/37 660/819/37 659/820/37 -f 664/821/40 665/822/40 663/823/40 -f 610/714/36 608/717/36 604/715/36 -f 608/717/37 607/769/37 603/718/37 -f 581/719/38 582/824/38 580/720/38 -f 585/722/38 586/825/38 584/723/38 -f 589/725/39 590/735/39 587/726/39 -f 593/728/39 594/745/39 591/729/39 -f 576/731/37 593/741/37 592/732/37 -f 573/734/40 587/726/40 590/735/40 -f 572/737/37 589/744/37 588/738/37 -f 578/740/36 594/826/36 593/741/36 -f 575/733/41 592/732/41 591/729/41 -f 574/743/36 590/827/36 589/744/36 -f 571/739/41 588/738/41 587/726/41 -f 577/742/40 591/729/40 594/745/40 -f 597/747/39 598/766/39 595/748/39 -f 601/750/39 602/763/39 599/751/39 -f 586/753/36 602/828/36 601/754/36 -f 583/756/41 600/765/41 599/751/41 -f 582/758/36 598/829/36 597/759/36 -f 579/761/41 596/768/41 595/748/41 -f 585/757/40 599/751/40 602/763/40 -f 584/755/37 601/754/37 600/765/37 -f 581/762/40 595/748/40 598/766/40 -f 580/760/37 597/759/37 596/768/37 -f 607/769/41 609/771/41 605/770/41 -f 609/771/40 610/830/40 606/772/40 -f 618/773/36 616/776/36 612/774/36 -f 616/776/37 615/778/37 611/777/37 -f 615/778/41 617/780/41 613/779/41 -f 617/780/40 618/831/40 614/781/40 -f 626/782/36 624/785/36 620/783/36 -f 624/785/37 623/787/37 619/786/37 -f 623/787/41 625/789/41 621/788/41 -f 625/789/40 626/832/40 622/790/40 -f 634/791/36 632/794/36 628/792/36 -f 632/794/37 631/796/37 627/795/37 -f 631/796/41 633/798/41 629/797/41 -f 633/798/40 634/833/40 630/799/40 -f 636/800/36 638/834/36 637/801/36 -f 641/803/41 642/835/41 640/804/41 -f 644/806/40 646/836/40 645/807/40 -f 649/809/37 650/837/37 648/810/37 -f 653/812/41 654/838/41 652/813/41 -f 656/815/36 658/839/36 657/816/36 -f 661/818/37 662/840/37 660/819/37 -f 664/821/40 666/841/40 665/822/40 -o Atlas_Erector -v 0.750000 3.500000 -4.250000 -v 0.750000 3.500000 -3.750000 -v 1.250000 3.500000 -3.750000 -v 1.250000 3.500000 -4.250000 -v -1.250000 3.500000 -4.250000 -v -1.250000 3.500000 -3.750000 -v -0.750000 3.500000 -3.750000 -v -0.750000 3.500000 -4.250000 -v 0.750000 3.500000 -2.750000 -v 0.750000 3.500000 -2.250000 -v 1.250000 3.500000 -2.250000 -v 1.250000 3.500000 -2.750000 -v -1.250000 3.500000 -2.750000 -v -1.250000 3.500000 -2.250000 -v -0.750000 3.500000 -2.250000 -v -0.750000 3.500000 -2.750000 -v 0.750000 14.750000 -4.250000 -v 0.750000 14.750000 -3.750000 -v 1.250000 14.750000 -3.750000 -v 1.250000 14.750000 -4.250000 -v -1.250000 14.750000 -4.250000 -v -1.250000 14.750000 -3.750000 -v -0.750000 14.750000 -3.750000 -v -0.750000 14.750000 -4.250000 -v 0.750000 14.750000 -2.750000 -v 0.750000 14.750000 -2.250000 -v 1.250000 14.750000 -2.250000 -v 1.250000 14.750000 -2.750000 -v -1.250000 14.750000 -2.750000 -v -1.250000 14.750000 -2.250000 -v -0.750000 14.750000 -2.250000 -v -0.750000 14.750000 -2.750000 -v 0.750000 12.750000 -2.750000 -v 0.750000 12.750000 -2.250000 -v -0.750000 12.750000 -2.250000 -v -0.750000 12.750000 -2.750000 -v 0.750000 12.250000 -2.750000 -v 0.750000 12.250000 -2.250000 -v -0.750000 12.250000 -2.250000 -v -0.750000 12.250000 -2.750000 -v 0.625000 12.750000 -1.375000 -v -0.625000 12.750000 -1.375000 -v 0.625000 12.250000 -1.375000 -v -0.625000 12.250000 -1.375000 -v 0.625000 12.750000 -1.125000 -v -0.625000 12.750000 -1.125000 -v 0.625000 12.250000 -1.125000 -v -0.625000 12.250000 -1.125000 -v -1.375000 12.749999 -0.625000 -v -1.375000 12.749999 0.250000 -v -1.375000 12.249999 -0.625000 -v -1.375000 12.249999 0.250000 -v -1.125000 12.749999 -0.625000 -v -1.125000 12.749999 0.250000 -v -1.125000 12.249999 -0.625000 -v -1.125000 12.249999 0.250000 -v 1.375000 12.749999 0.250000 -v 1.375000 12.749999 -0.625000 -v 1.375000 12.249999 0.250000 -v 1.375000 12.249999 -0.625000 -v 1.125000 12.749999 0.250000 -v 1.125000 12.749999 -0.625000 -v 1.125000 12.249999 0.250000 -v 1.125000 12.249999 -0.625000 -v 0.750000 12.750000 -4.250000 -v 0.750000 12.750000 -3.750000 -v -0.750000 12.750000 -3.750000 -v -0.750000 12.750000 -4.250000 -v 0.750000 12.250000 -4.250000 -v 0.750000 12.250000 -3.750000 -v -0.750000 12.250000 -3.750000 -v -0.750000 12.250000 -4.250000 -v 0.187500 12.312500 -1.375000 -v 0.562500 12.312500 -1.375000 -v 0.187500 12.687500 -1.375000 -v 0.562500 12.687500 -1.375000 -v 0.187500 12.312500 -3.750000 -v 0.562500 12.312500 -3.750000 -v 0.187500 12.687500 -3.750000 -v 0.562500 12.687500 -3.750000 -v -0.562500 12.312500 -1.375000 -v -0.187500 12.312500 -1.375000 -v -0.562500 12.687500 -1.375000 -v -0.187500 12.687500 -1.375000 -v -0.562500 12.312500 -3.750000 -v -0.187500 12.312500 -3.750000 -v -0.562500 12.687500 -3.750000 -v -0.187500 12.687500 -3.750000 -v 0.750000 8.750000 -2.750000 -v 0.750000 8.750000 -2.250000 -v -0.750000 8.750000 -2.250000 -v -0.750000 8.750000 -2.750000 -v 0.750000 8.250000 -2.750000 -v 0.750000 8.250000 -2.250000 -v -0.750000 8.250000 -2.250000 -v -0.750000 8.250000 -2.750000 -v 0.625000 8.750000 -1.625000 -v -0.625000 8.750000 -1.625000 -v 0.625000 8.250000 -1.625000 -v -0.625000 8.250000 -1.625000 -v 0.625000 8.750000 -1.375000 -v -0.625000 8.750000 -1.375000 -v 0.625000 8.250000 -1.375000 -v -0.625000 8.250000 -1.375000 -v -1.375000 8.749999 -0.875000 -v -1.375000 8.749999 0.250000 -v -1.375000 8.249999 -0.875000 -v -1.375000 8.249999 0.250000 -v -1.125000 8.749999 -0.875000 -v -1.125000 8.749999 0.250000 -v -1.125000 8.249999 -0.875000 -v -1.125000 8.249999 0.250000 -v 1.375000 8.749999 0.250000 -v 1.375000 8.749999 -0.875000 -v 1.375000 8.249999 0.250000 -v 1.375000 8.249999 -0.875000 -v 1.125000 8.749999 0.250000 -v 1.125000 8.749999 -0.875000 -v 1.125000 8.249999 0.250000 -v 1.125000 8.249999 -0.875000 -v 0.750000 8.750000 -4.250000 -v 0.750000 8.750000 -3.750000 -v -0.750000 8.750000 -3.750000 -v -0.750000 8.750000 -4.250000 -v 0.750000 8.250000 -4.250000 -v 0.750000 8.250000 -3.750000 -v -0.750000 8.250000 -3.750000 -v -0.750000 8.250000 -4.250000 -v 0.187500 8.312500 -1.625000 -v 0.562500 8.312500 -1.625000 -v 0.187500 8.687500 -1.625000 -v 0.562500 8.687500 -1.625000 -v 0.187500 8.312500 -3.750000 -v 0.562500 8.312500 -3.750000 -v 0.187500 8.687500 -3.750000 -v 0.562500 8.687500 -3.750000 -v -0.562500 8.312500 -1.625000 -v -0.187500 8.312500 -1.625000 -v -0.562500 8.687500 -1.625000 -v -0.187500 8.687500 -1.625000 -v -0.562500 8.312500 -3.750000 -v -0.187500 8.312500 -3.750000 -v -0.562500 8.687500 -3.750000 -v -0.187500 8.687500 -3.750000 -v 0.750000 4.750000 -2.750000 -v 0.750000 4.750000 -2.250000 -v -0.750000 4.750000 -2.250000 -v -0.750000 4.750000 -2.750000 -v 0.750000 4.250000 -2.750000 -v 0.750000 4.250000 -2.250000 -v -0.750000 4.250000 -2.250000 -v -0.750000 4.250000 -2.750000 -v 0.625000 4.750000 -1.875000 -v -0.625000 4.750000 -1.875000 -v 0.625000 4.250000 -1.875000 -v -0.625000 4.250000 -1.875000 -v 0.625000 4.750000 -1.625000 -v -0.625000 4.750000 -1.625000 -v 0.625000 4.250000 -1.625000 -v -0.625000 4.250000 -1.625000 -v -1.375000 4.749999 -1.125000 -v -1.375000 4.749999 0.250000 -v -1.375000 4.249999 -1.125000 -v -1.375000 4.249999 0.250000 -v -1.125000 4.749999 -1.125000 -v -1.125000 4.749999 0.250000 -v -1.125000 4.249999 -1.125000 -v -1.125000 4.249999 0.250000 -v 1.375000 4.749999 0.250000 -v 1.375000 4.749999 -1.125000 -v 1.375000 4.249999 0.250000 -v 1.375000 4.249999 -1.125000 -v 1.125000 4.749999 0.250000 -v 1.125000 4.749999 -1.125000 -v 1.125000 4.249999 0.250000 -v 1.125000 4.249999 -1.125000 -v 0.750000 4.750000 -4.250000 -v 0.750000 4.750000 -3.750000 -v -0.750000 4.750000 -3.750000 -v -0.750000 4.750000 -4.250000 -v 0.750000 4.250000 -4.250000 -v 0.750000 4.250000 -3.750000 -v -0.750000 4.250000 -3.750000 -v -0.750000 4.250000 -4.250000 -v 0.187500 4.312500 -1.875000 -v 0.562500 4.312500 -1.875000 -v 0.187500 4.687500 -1.875000 -v 0.562500 4.687500 -1.875000 -v 0.187500 4.312500 -3.750000 -v 0.562500 4.312500 -3.750000 -v 0.187500 4.687500 -3.750000 -v 0.562500 4.687500 -3.750000 -v -0.562500 4.312500 -1.875000 -v -0.187500 4.312500 -1.875000 -v -0.562500 4.687500 -1.875000 -v -0.187500 4.687500 -1.875000 -v -0.562500 4.312500 -3.750000 -v -0.187500 4.312500 -3.750000 -v -0.562500 4.687500 -3.750000 -v -0.187500 4.687500 -3.750000 -v 0.750000 12.250000 -4.062500 -v 0.750000 11.750000 -4.062500 -v -0.750000 10.750000 -4.062500 -v -0.750000 10.250000 -4.062500 -v 0.750000 10.750000 -4.062500 -v 0.750000 10.250000 -4.062500 -v -0.750000 9.250000 -4.062500 -v -0.750000 8.750000 -4.062500 -v 0.750000 10.750000 -3.937500 -v 0.750000 10.250000 -3.937500 -v -0.750000 12.250000 -3.937500 -v -0.750000 11.750000 -3.937500 -v 0.750000 9.250000 -3.937500 -v 0.750000 8.750000 -3.937500 -v -0.750000 10.750000 -3.937500 -v -0.750000 10.250000 -3.937500 -v 0.750000 8.250000 -4.062500 -v 0.750000 7.750000 -4.062500 -v -0.750000 6.750000 -4.062500 -v -0.750000 6.250000 -4.062500 -v 0.750000 6.750000 -4.062500 -v 0.750000 6.250000 -4.062500 -v -0.750000 5.250000 -4.062500 -v -0.750000 4.750000 -4.062500 -v 0.750000 6.750000 -3.937500 -v 0.750000 6.250000 -3.937500 -v -0.750000 8.250000 -3.937500 -v -0.750000 7.750000 -3.937500 -v 0.750000 5.250000 -3.937500 -v 0.750000 4.750000 -3.937500 -v -0.750000 6.750000 -3.937500 -v -0.750000 6.250000 -3.937500 -v 0.750000 12.250000 -2.562500 -v 0.750000 11.750000 -2.562500 -v -0.750000 10.750000 -2.562500 -v -0.750000 10.250000 -2.562500 -v 0.750000 10.750000 -2.562500 -v 0.750000 10.250000 -2.562500 -v -0.750000 9.250000 -2.562500 -v -0.750000 8.750000 -2.562500 -v 0.750000 10.750000 -2.437500 -v 0.750000 10.250000 -2.437500 -v -0.750000 12.250000 -2.437500 -v -0.750000 11.750000 -2.437500 -v 0.750000 9.250000 -2.437500 -v 0.750000 8.750000 -2.437500 -v -0.750000 10.750000 -2.437500 -v -0.750000 10.250000 -2.437500 -v 0.750000 8.250000 -2.562500 -v 0.750000 7.750000 -2.562500 -v -0.750000 6.750000 -2.562500 -v -0.750000 6.250000 -2.562500 -v 0.750000 6.750000 -2.562500 -v 0.750000 6.250000 -2.562500 -v -0.750000 5.250000 -2.562500 -v -0.750000 4.750000 -2.562500 -v 0.750000 6.750000 -2.437500 -v 0.750000 6.250000 -2.437500 -v -0.750000 8.250000 -2.437500 -v -0.750000 7.750000 -2.437500 -v 0.750000 5.250000 -2.437500 -v 0.750000 4.750000 -2.437500 -v -0.750000 6.750000 -2.437500 -v -0.750000 6.250000 -2.437500 -v 0.750000 14.750000 -4.062500 -v 0.750000 14.250000 -4.062500 -v -0.750000 13.250000 -4.062500 -v -0.750000 12.750000 -4.062500 -v 0.750000 13.250000 -3.937500 -v 0.750000 12.750000 -3.937500 -v -0.750000 14.750000 -3.937500 -v -0.750000 14.250000 -3.937500 -v 0.750000 14.750000 -2.562500 -v 0.750000 14.250000 -2.562500 -v -0.750000 13.250000 -2.562500 -v -0.750000 12.750000 -2.562500 -v 0.750000 13.250000 -2.437500 -v 0.750000 12.750000 -2.437500 -v -0.750000 14.750000 -2.437500 -v -0.750000 14.250000 -2.437500 -v 1.062500 14.750000 -2.750000 -v 1.062500 14.250000 -2.750000 -v 1.062500 13.250000 -3.750000 -v 1.062500 12.750000 -3.750000 -v 0.937500 13.250000 -2.750000 -v 0.937500 12.750000 -2.750000 -v 0.937500 14.750000 -3.750000 -v 0.937500 14.250000 -3.750000 -v 1.062500 12.250000 -2.750000 -v 1.062500 11.750000 -2.750000 -v 1.062500 10.750000 -3.750000 -v 1.062500 10.250000 -3.750000 -v 0.937500 10.750000 -2.750000 -v 0.937500 10.250000 -2.750000 -v 0.937500 12.250000 -3.750000 -v 0.937500 11.750000 -3.750000 -v 1.062500 10.750000 -2.750000 -v 1.062500 10.250000 -2.750000 -v 1.062500 9.250000 -3.750000 -v 1.062500 8.750000 -3.750000 -v 0.937500 9.250000 -2.750000 -v 0.937500 8.750000 -2.750000 -v 0.937500 10.750000 -3.750000 -v 0.937500 10.250000 -3.750000 -v 1.062500 8.250000 -2.750000 -v 1.062500 7.750000 -2.750000 -v 1.062500 6.750000 -3.750000 -v 1.062500 6.250000 -3.750000 -v 0.937500 6.750000 -2.750000 -v 0.937500 6.250000 -2.750000 -v 0.937500 8.250000 -3.750000 -v 0.937500 7.750000 -3.750000 -v 1.062500 6.750000 -2.750000 -v 1.062500 6.250000 -2.750000 -v 1.062500 5.250000 -3.750000 -v 1.062500 4.750000 -3.750000 -v 0.937500 5.250000 -2.750000 -v 0.937500 4.750000 -2.750000 -v 0.937500 6.750000 -3.750000 -v 0.937500 6.250000 -3.750000 -v -0.937500 14.750000 -2.750000 -v -0.937500 14.250000 -2.750000 -v -0.937500 13.250000 -3.750000 -v -0.937500 12.750000 -3.750000 -v -1.062500 13.250000 -2.750000 -v -1.062500 12.750000 -2.750000 -v -1.062500 14.750000 -3.750000 -v -1.062500 14.250000 -3.750000 -v -0.937500 12.250000 -2.750000 -v -0.937500 11.750000 -2.750000 -v -0.937500 10.750000 -3.750000 -v -0.937500 10.250000 -3.750000 -v -1.062500 10.750000 -2.750000 -v -1.062500 10.250000 -2.750000 -v -1.062500 12.250000 -3.750000 -v -1.062500 11.750000 -3.750000 -v -0.937500 10.750000 -2.750000 -v -0.937500 10.250000 -2.750000 -v -0.937500 9.250000 -3.750000 -v -0.937500 8.750000 -3.750000 -v -1.062500 9.250000 -2.750000 -v -1.062500 8.750000 -2.750000 -v -1.062500 10.750000 -3.750000 -v -1.062500 10.250000 -3.750000 -v -0.937500 8.250000 -2.750000 -v -0.937500 7.750000 -2.750000 -v -0.937500 6.750000 -3.750000 -v -0.937500 6.250000 -3.750000 -v -1.062500 6.750000 -2.750000 -v -1.062500 6.250000 -2.750000 -v -1.062500 8.250000 -3.750000 -v -1.062500 7.750000 -3.750000 -v -0.937500 6.750000 -2.750000 -v -0.937500 6.250000 -2.750000 -v -0.937500 5.250000 -3.750000 -v -0.937500 4.750000 -3.750000 -v -1.062500 5.250000 -2.750000 -v -1.062500 4.750000 -2.750000 -v -1.062500 6.750000 -3.750000 -v -1.062500 6.250000 -3.750000 -v 0.750000 12.250000 -4.062500 -v 0.750000 11.750000 -4.062500 -v -0.750000 10.750000 -4.062500 -v -0.750000 10.250000 -4.062500 -v 0.750000 10.750000 -4.062500 -v 0.750000 10.250000 -4.062500 -v -0.750000 9.250000 -4.062500 -v -0.750000 8.750000 -4.062500 -v 0.750000 10.750000 -3.937500 -v 0.750000 10.250000 -3.937500 -v -0.750000 12.250000 -3.937500 -v -0.750000 11.750000 -3.937500 -v 0.750000 9.250000 -3.937500 -v 0.750000 8.750000 -3.937500 -v -0.750000 10.750000 -3.937500 -v -0.750000 10.250000 -3.937500 -v 0.750000 8.250000 -4.062500 -v 0.750000 7.750000 -4.062500 -v -0.750000 6.750000 -4.062500 -v -0.750000 6.250000 -4.062500 -v 0.750000 6.750000 -4.062500 -v 0.750000 6.250000 -4.062500 -v -0.750000 5.250000 -4.062500 -v -0.750000 4.750000 -4.062500 -v 0.750000 6.750000 -3.937500 -v 0.750000 6.250000 -3.937500 -v -0.750000 8.250000 -3.937500 -v -0.750000 7.750000 -3.937500 -v 0.750000 5.250000 -3.937500 -v 0.750000 4.750000 -3.937500 -v -0.750000 6.750000 -3.937500 -v -0.750000 6.250000 -3.937500 -v 0.750000 12.250000 -2.562500 -v 0.750000 11.750000 -2.562500 -v -0.750000 10.750000 -2.562500 -v -0.750000 10.250000 -2.562500 -v 0.750000 10.750000 -2.562500 -v 0.750000 10.250000 -2.562500 -v -0.750000 9.250000 -2.562500 -v -0.750000 8.750000 -2.562500 -v 0.750000 10.750000 -2.437500 -v 0.750000 10.250000 -2.437500 -v -0.750000 12.250000 -2.437500 -v -0.750000 11.750000 -2.437500 -v 0.750000 9.250000 -2.437500 -v 0.750000 8.750000 -2.437500 -v -0.750000 10.750000 -2.437500 -v -0.750000 10.250000 -2.437500 -v 0.750000 8.250000 -2.562500 -v 0.750000 7.750000 -2.562500 -v -0.750000 6.750000 -2.562500 -v -0.750000 6.250000 -2.562500 -v 0.750000 6.750000 -2.562500 -v 0.750000 6.250000 -2.562500 -v -0.750000 5.250000 -2.562500 -v -0.750000 4.750000 -2.562500 -v 0.750000 6.750000 -2.437500 -v 0.750000 6.250000 -2.437500 -v -0.750000 8.250000 -2.437500 -v -0.750000 7.750000 -2.437500 -v 0.750000 5.250000 -2.437500 -v 0.750000 4.750000 -2.437500 -v -0.750000 6.750000 -2.437500 -v -0.750000 6.250000 -2.437500 -v 0.750000 14.750000 -4.062500 -v 0.750000 14.250000 -4.062500 -v -0.750000 13.250000 -4.062500 -v -0.750000 12.750000 -4.062500 -v 0.750000 13.250000 -3.937500 -v 0.750000 12.750000 -3.937500 -v -0.750000 14.750000 -3.937500 -v -0.750000 14.250000 -3.937500 -v 0.750000 14.750000 -2.562500 -v 0.750000 14.250000 -2.562500 -v -0.750000 13.250000 -2.562500 -v -0.750000 12.750000 -2.562500 -v 0.750000 13.250000 -2.437500 -v 0.750000 12.750000 -2.437500 -v -0.750000 14.750000 -2.437500 -v -0.750000 14.250000 -2.437500 -v 1.062500 14.750000 -2.750000 -v 1.062500 14.250000 -2.750000 -v 1.062500 13.250000 -3.750000 -v 1.062500 12.750000 -3.750000 -v 0.937500 13.250000 -2.750000 -v 0.937500 12.750000 -2.750000 -v 0.937500 14.750000 -3.750000 -v 0.937500 14.250000 -3.750000 -v 1.062500 12.250000 -2.750000 -v 1.062500 11.750000 -2.750000 -v 1.062500 10.750000 -3.750000 -v 1.062500 10.250000 -3.750000 -v 0.937500 10.750000 -2.750000 -v 0.937500 10.250000 -2.750000 -v 0.937500 12.250000 -3.750000 -v 0.937500 11.750000 -3.750000 -v 1.062500 10.750000 -2.750000 -v 1.062500 10.250000 -2.750000 -v 1.062500 9.250000 -3.750000 -v 1.062500 8.750000 -3.750000 -v 0.937500 9.250000 -2.750000 -v 0.937500 8.750000 -2.750000 -v 0.937500 10.750000 -3.750000 -v 0.937500 10.250000 -3.750000 -v 1.062500 8.250000 -2.750000 -v 1.062500 7.750000 -2.750000 -v 1.062500 6.750000 -3.750000 -v 1.062500 6.250000 -3.750000 -v 0.937500 6.750000 -2.750000 -v 0.937500 6.250000 -2.750000 -v 0.937500 8.250000 -3.750000 -v 0.937500 7.750000 -3.750000 -v 1.062500 6.750000 -2.750000 -v 1.062500 6.250000 -2.750000 -v 1.062500 5.250000 -3.750000 -v 1.062500 4.750000 -3.750000 -v 0.937500 5.250000 -2.750000 -v 0.937500 4.750000 -2.750000 -v 0.937500 6.750000 -3.750000 -v 0.937500 6.250000 -3.750000 -v -0.937500 14.750000 -2.750000 -v -0.937500 14.250000 -2.750000 -v -0.937500 13.250000 -3.750000 -v -0.937500 12.750000 -3.750000 -v -1.062500 13.250000 -2.750000 -v -1.062500 12.750000 -2.750000 -v -1.062500 14.750000 -3.750000 -v -1.062500 14.250000 -3.750000 -v -0.937500 12.250000 -2.750000 -v -0.937500 11.750000 -2.750000 -v -0.937500 10.750000 -3.750000 -v -0.937500 10.250000 -3.750000 -v -1.062500 10.750000 -2.750000 -v -1.062500 10.250000 -2.750000 -v -1.062500 12.250000 -3.750000 -v -1.062500 11.750000 -3.750000 -v -0.937500 10.750000 -2.750000 -v -0.937500 10.250000 -2.750000 -v -0.937500 9.250000 -3.750000 -v -0.937500 8.750000 -3.750000 -v -1.062500 9.250000 -2.750000 -v -1.062500 8.750000 -2.750000 -v -1.062500 10.750000 -3.750000 -v -1.062500 10.250000 -3.750000 -v -0.937500 8.250000 -2.750000 -v -0.937500 7.750000 -2.750000 -v -0.937500 6.750000 -3.750000 -v -0.937500 6.250000 -3.750000 -v -1.062500 6.750000 -2.750000 -v -1.062500 6.250000 -2.750000 -v -1.062500 8.250000 -3.750000 -v -1.062500 7.750000 -3.750000 -v -0.937500 6.750000 -2.750000 -v -0.937500 6.250000 -2.750000 -v -0.937500 5.250000 -3.750000 -v -0.937500 4.750000 -3.750000 -v -1.062500 5.250000 -2.750000 -v -1.062500 4.750000 -2.750000 -v -1.062500 6.750000 -3.750000 -v -1.062500 6.250000 -3.750000 -vt 0.923077 0.032258 -vt 0.897436 -0.000000 -vt 0.923077 -0.000000 -vt 0.923077 0.032258 -vt 0.897436 -0.000000 -vt 0.923077 -0.000000 -vt 0.923077 0.032258 -vt 0.897436 -0.000000 -vt 0.923077 -0.000000 -vt 0.923077 0.032258 -vt 0.897436 -0.000000 -vt 0.923077 -0.000000 -vt 0.897436 0.790323 -vt 0.923077 0.758065 -vt 0.923077 0.790323 -vt 0.897436 0.790323 -vt 0.923077 0.758065 -vt 0.923077 0.790323 -vt 0.897436 0.790323 -vt 0.923077 0.758065 -vt 0.923077 0.790323 -vt 0.897436 0.790323 -vt 0.923077 0.758065 -vt 0.923077 0.790323 -vt 0.974359 0.032258 -vt 0.948718 0.758065 -vt 0.948718 0.032258 -vt 1.000000 0.032258 -vt 0.974359 0.758065 -vt 0.974359 0.032258 -vt 1.000000 0.032258 -vt 0.974359 0.758065 -vt 0.897436 0.758065 -vt 0.897436 0.032258 -vt 0.897436 0.758065 -vt 0.897436 0.032258 -vt 0.948718 0.032258 -vt 0.948718 0.032258 -vt 0.974359 0.032258 -vt 0.948718 0.758065 -vt 0.974359 0.032258 -vt 0.948718 0.758065 -vt 1.000000 0.032258 -vt 0.974359 0.758065 -vt 1.000000 0.032258 -vt 0.974359 0.758065 -vt 0.897436 0.758065 -vt 0.897436 0.032258 -vt 0.948718 0.032258 -vt 0.897436 0.758065 -vt 0.897436 0.032258 -vt 0.948718 0.758065 -vt 0.897436 0.854839 -vt 0.974359 0.887097 -vt 0.897436 0.887097 -vt 0.974359 0.790323 -vt 0.897436 0.822581 -vt 0.897436 0.790323 -vt 0.974359 0.822581 -vt 0.974359 0.854839 -vt 0.897436 0.919355 -vt 0.448718 0.822581 -vt 0.512821 0.854839 -vt 0.448718 0.854839 -vt 0.275641 0.919355 -vt 0.211538 0.951613 -vt 0.211538 0.919355 -vt 0.512821 0.854839 -vt 0.538462 0.903226 -vt 0.512821 0.870968 -vt 0.448718 0.870968 -vt 0.448718 0.854839 -vt 0.384615 0.854839 -vt 0.410256 0.903226 -vt 0.384615 0.903226 -vt 0.448718 0.870968 -vt 0.576923 0.903226 -vt 0.551282 0.959677 -vt 0.551282 0.903226 -vt 0.346154 0.919355 -vt 0.301282 0.951613 -vt 0.301282 0.919355 -vt 0.384615 0.951613 -vt 0.371795 0.919355 -vt 0.384615 0.919355 -vt 0.410256 0.903226 -vt 0.423077 0.959677 -vt 0.410256 0.959677 -vt 0.538462 0.903226 -vt 0.384615 0.959677 -vt 0.410256 0.959677 -vt 0.185897 0.919355 -vt 0.141026 0.951613 -vt 0.141026 0.919355 -vt 0.551282 0.959677 -vt 0.551282 0.903226 -vt 0.102564 0.919355 -vt 0.115385 0.951613 -vt 0.102564 0.951613 -vt 0.423077 0.959677 -vt 0.275641 0.951613 -vt 0.512821 0.870968 -vt 0.576923 0.854839 -vt 0.551282 0.854839 -vt 0.423077 0.903226 -vt 0.897436 0.854839 -vt 0.974359 0.887097 -vt 0.897436 0.887097 -vt 0.974359 0.790323 -vt 0.897436 0.822581 -vt 0.897436 0.790323 -vt 0.974359 0.822581 -vt 0.974359 0.854839 -vt 0.897436 0.919355 -vt 0.794872 0.846774 -vt 0.814103 0.693548 -vt 0.814103 0.846774 -vt 0.833333 0.846774 -vt 0.852564 0.693548 -vt 0.852564 0.846774 -vt 0.833333 0.693548 -vt 0.871795 0.693548 -vt 0.871795 0.846774 -vt 0.794872 0.846774 -vt 0.814103 0.693548 -vt 0.814103 0.846774 -vt 0.833333 0.846774 -vt 0.852564 0.693548 -vt 0.852564 0.846774 -vt 0.833333 0.693548 -vt 0.871795 0.693548 -vt 0.871795 0.846774 -vt 0.897436 0.854839 -vt 0.974359 0.887097 -vt 0.897436 0.887097 -vt 0.974359 0.790323 -vt 0.897436 0.822581 -vt 0.897436 0.790323 -vt 0.974359 0.822581 -vt 0.974359 0.854839 -vt 0.897436 0.919355 -vt 0.448718 0.822581 -vt 0.512821 0.854839 -vt 0.448718 0.854839 -vt 0.275641 0.919355 -vt 0.211538 0.951613 -vt 0.211538 0.919355 -vt 0.512821 0.854839 -vt 0.538462 0.903226 -vt 0.512821 0.870968 -vt 0.448718 0.870968 -vt 0.448718 0.854839 -vt 0.384615 0.854839 -vt 0.410256 0.903226 -vt 0.384615 0.903226 -vt 0.448718 0.870968 -vt 0.576923 0.903226 -vt 0.551282 0.975806 -vt 0.551282 0.903226 -vt 0.358974 0.919355 -vt 0.301282 0.951613 -vt 0.301282 0.919355 -vt 0.384615 0.951613 -vt 0.371795 0.919355 -vt 0.384615 0.919355 -vt 0.410256 0.903226 -vt 0.423077 0.975806 -vt 0.410256 0.975806 -vt 0.538462 0.903226 -vt 0.384615 0.975806 -vt 0.410256 0.975806 -vt 0.185897 0.919355 -vt 0.128205 0.951613 -vt 0.128205 0.919355 -vt 0.551282 0.975806 -vt 0.551282 0.903226 -vt 0.102564 0.919355 -vt 0.115385 0.951613 -vt 0.102564 0.951613 -vt 0.423077 0.975806 -vt 0.275641 0.951613 -vt 0.512821 0.870968 -vt 0.576923 0.854839 -vt 0.551282 0.854839 -vt 0.423077 0.903226 -vt 0.897436 0.854839 -vt 0.974359 0.887097 -vt 0.897436 0.887097 -vt 0.974359 0.790323 -vt 0.897436 0.822581 -vt 0.897436 0.790323 -vt 0.974359 0.822581 -vt 0.974359 0.854839 -vt 0.897436 0.919355 -vt 0.794872 0.830645 -vt 0.814103 0.693548 -vt 0.814103 0.830645 -vt 0.833333 0.830645 -vt 0.852564 0.693548 -vt 0.852564 0.830645 -vt 0.833333 0.693548 -vt 0.871795 0.693548 -vt 0.871795 0.830645 -vt 0.794872 0.830645 -vt 0.814103 0.693548 -vt 0.814103 0.830645 -vt 0.833333 0.830645 -vt 0.852564 0.693548 -vt 0.852564 0.830645 -vt 0.833333 0.693548 -vt 0.871795 0.693548 -vt 0.871795 0.830645 -vt 0.897436 0.854839 -vt 0.974359 0.887097 -vt 0.897436 0.887097 -vt 0.974359 0.790323 -vt 0.897436 0.822581 -vt 0.897436 0.790323 -vt 0.974359 0.822581 -vt 0.974359 0.854839 -vt 0.897436 0.919355 -vt 0.448718 0.822581 -vt 0.512821 0.854839 -vt 0.448718 0.854839 -vt 0.275641 0.919355 -vt 0.211538 0.951613 -vt 0.211538 0.919355 -vt 0.512821 0.854839 -vt 0.538462 0.903226 -vt 0.512821 0.870968 -vt 0.448718 0.870968 -vt 0.448718 0.854839 -vt 0.384615 0.854839 -vt 0.410256 0.903226 -vt 0.384615 0.903226 -vt 0.448718 0.870968 -vt 0.576923 0.903226 -vt 0.551282 0.991935 -vt 0.551282 0.903226 -vt 0.371795 0.919355 -vt 0.301282 0.951613 -vt 0.301282 0.919355 -vt 0.384615 0.951613 -vt 0.384615 0.919355 -vt 0.410256 0.903226 -vt 0.423077 0.991935 -vt 0.410256 0.991935 -vt 0.538462 0.903226 -vt 0.384615 0.991935 -vt 0.410256 0.991935 -vt 0.185897 0.919355 -vt 0.115385 0.951613 -vt 0.115385 0.919355 -vt 0.551282 0.991935 -vt 0.551282 0.903226 -vt 0.102564 0.919355 -vt 0.102564 0.951613 -vt 0.423077 0.991935 -vt 0.275641 0.951613 -vt 0.512821 0.870968 -vt 0.576923 0.854839 -vt 0.551282 0.854839 -vt 0.423077 0.903226 -vt 0.897436 0.854839 -vt 0.974359 0.887097 -vt 0.897436 0.887097 -vt 0.974359 0.790323 -vt 0.897436 0.822581 -vt 0.897436 0.790323 -vt 0.974359 0.822581 -vt 0.974359 0.854839 -vt 0.897436 0.919355 -vt 0.794872 0.814516 -vt 0.814103 0.693548 -vt 0.814103 0.814516 -vt 0.833333 0.814516 -vt 0.852564 0.693548 -vt 0.852564 0.814516 -vt 0.833333 0.693548 -vt 0.871795 0.693548 -vt 0.871795 0.814516 -vt 0.794872 0.814516 -vt 0.814103 0.693548 -vt 0.814103 0.814516 -vt 0.833333 0.814516 -vt 0.852564 0.693548 -vt 0.852564 0.814516 -vt 0.833333 0.693548 -vt 0.871795 0.693548 -vt 0.871795 0.814516 -vt 0.948718 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 1.000000 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 1.000000 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.790323 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 0.974359 0.919355 -vt 0.512821 0.822581 -vt 0.410256 0.854839 -vt 0.576923 0.959677 -vt 0.346154 0.951613 -vt 0.371795 0.951613 -vt 0.423077 0.903226 -vt 0.538462 0.959677 -vt 0.185897 0.951613 -vt 0.538462 0.959677 -vt 0.115385 0.919355 -vt 0.974359 0.919355 -vt 0.794872 0.693548 -vt 0.794872 0.693548 -vt 0.974359 0.919355 -vt 0.512821 0.822581 -vt 0.410256 0.854839 -vt 0.576923 0.975806 -vt 0.358974 0.951613 -vt 0.371795 0.951613 -vt 0.423077 0.903226 -vt 0.538462 0.975806 -vt 0.185897 0.951613 -vt 0.538462 0.975806 -vt 0.115385 0.919355 -vt 0.974359 0.919355 -vt 0.794872 0.693548 -vt 0.794872 0.693548 -vt 0.974359 0.919355 -vt 0.512821 0.822581 -vt 0.410256 0.854839 -vt 0.576923 0.991935 -vt 0.371795 0.951613 -vt 0.423077 0.903226 -vt 0.538462 0.991935 -vt 0.185897 0.951613 -vt 0.538462 0.991935 -vt 0.974359 0.919355 -vt 0.794872 0.693548 -vt 0.794872 0.693548 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 1.000000 0.790323 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 0.948718 0.758065 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.758065 -vt 1.000000 0.790323 -vt 0.948718 0.758065 -vt 1.000000 0.758065 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.987179 0.758065 -vt 0.987179 0.790323 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vt 0.948718 0.758065 -vt 0.987179 0.758065 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0000 1.0000 vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 -vn 0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 1.0000 0.0000 vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +s off +f 839/1373/144 840/1374/144 841/1375/144 +f 842/1376/145 843/1377/145 844/1378/145 +f 839/1373/146 845/1379/146 846/1380/146 +f 840/1381/147 844/1382/147 841/1383/147 +f 840/1384/148 845/1379/148 842/1385/148 +f 841/1383/149 843/1377/149 839/1373/149 +f 847/1386/144 848/1387/144 849/1388/144 +f 847/1389/150 850/1390/150 851/1391/150 +f 852/1392/148 853/1393/148 854/1394/148 +f 855/1395/151 856/1396/151 852/1397/151 +f 857/1398/149 850/1390/149 855/1399/149 +f 854/1400/144 851/1401/144 857/1402/144 +f 858/1403/152 859/1404/152 860/1405/152 +f 861/1406/144 859/1407/144 862/1408/144 +f 863/1409/148 859/1404/148 864/1410/148 +f 865/1411/151 860/1405/151 863/1409/151 +f 861/1412/149 858/1403/149 865/1413/149 +f 866/1414/151 850/1415/151 867/1416/151 +f 868/1417/153 869/1418/153 870/1419/153 +f 849/1388/144 871/1420/144 847/1386/144 +f 866/1421/148 869/1418/148 849/1422/148 +f 866/1414/151 868/1417/151 870/1423/151 +f 847/1389/149 868/1417/149 867/1416/149 +f 872/1424/147 873/1425/147 874/1426/147 +f 853/1427/144 848/1387/144 851/1401/144 +f 848/1428/152 866/1421/152 849/1422/152 +f 850/1415/151 874/1426/151 856/1396/151 +f 874/1429/153 861/1412/153 865/1413/153 +f 863/1409/151 874/1426/151 865/1411/151 +f 863/1409/154 853/1393/154 856/1430/154 +f 873/1431/144 864/1432/144 861/1406/144 +f 875/1433/148 876/1434/148 877/1435/148 +f 878/1436/148 879/1437/148 880/1438/148 +f 881/1439/144 882/1440/144 883/1441/144 +f 884/1442/147 885/1443/147 886/1444/147 +f 887/1445/149 888/1446/149 889/1447/149 +f 890/1448/151 888/1446/151 891/1449/151 +f 890/1450/148 892/1451/148 893/1452/148 +f 893/1453/144 894/1454/144 887/1455/144 +f 888/1446/153 892/1451/153 891/1456/153 +f 890/1448/151 895/1457/151 889/1447/151 +f 896/1458/149 897/1459/149 898/1460/149 +f 898/1461/151 899/1462/151 900/1463/151 +f 900/1463/148 901/1464/148 902/1465/148 +f 896/1466/144 901/1467/144 903/1468/144 +f 897/1459/152 901/1464/152 899/1462/152 +f 904/1469/144 883/1441/144 905/1470/144 +f 905/1471/149 895/1472/149 906/1473/149 +f 906/1474/151 907/1475/151 908/1476/151 +f 908/1477/148 881/1478/148 904/1479/148 +f 887/1445/150 895/1472/150 883/1480/150 +f 887/1455/144 882/1440/144 893/1453/144 +f 909/1481/149 910/1482/149 911/1483/149 +f 912/1484/149 913/1485/149 914/1486/149 +f 882/1487/152 890/1450/152 893/1452/152 +f 895/1457/151 886/1444/151 907/1475/151 +f 886/1488/153 896/1458/153 898/1460/153 +f 900/1463/151 886/1444/151 898/1461/151 +f 900/1463/154 881/1478/154 907/1489/154 +f 885/1490/144 902/1491/144 896/1466/144 +f 839/1373/144 846/1380/144 840/1374/144 +f 842/1376/145 845/1379/145 843/1377/145 +f 839/1373/146 843/1377/146 845/1379/146 +f 840/1381/147 842/1492/147 844/1382/147 +f 840/1384/148 846/1380/148 845/1379/148 +f 841/1383/149 844/1382/149 843/1377/149 +f 847/1386/144 851/1401/144 848/1387/144 +f 847/1389/150 867/1416/150 850/1390/150 +f 852/1392/148 856/1430/148 853/1393/148 +f 855/1395/151 850/1415/151 856/1396/151 +f 857/1398/149 851/1391/149 850/1390/149 +f 854/1400/144 853/1427/144 851/1401/144 +f 858/1403/152 862/1493/152 859/1404/152 +f 861/1406/144 864/1432/144 859/1407/144 +f 863/1409/148 860/1405/148 859/1404/148 +f 865/1411/151 858/1494/151 860/1405/151 +f 861/1412/149 862/1493/149 858/1403/149 +f 866/1414/151 872/1424/151 850/1415/151 +f 868/1417/153 871/1495/153 869/1418/153 +f 849/1388/144 869/1496/144 871/1420/144 +f 866/1421/148 870/1419/148 869/1418/148 +f 866/1414/151 867/1416/151 868/1417/151 +f 847/1389/149 871/1495/149 868/1417/149 +f 872/1424/147 848/1497/147 873/1425/147 +f 853/1427/144 873/1431/144 848/1387/144 +f 848/1428/152 872/1498/152 866/1421/152 +f 850/1415/151 872/1424/151 874/1426/151 +f 874/1429/153 873/1499/153 861/1412/153 +f 863/1409/151 856/1396/151 874/1426/151 +f 863/1409/154 864/1410/154 853/1393/154 +f 873/1431/144 853/1427/144 864/1432/144 +f 875/1433/148 915/1500/148 876/1434/148 +f 878/1436/148 916/1501/148 879/1437/148 +f 881/1439/144 885/1490/144 882/1440/144 +f 884/1442/147 882/1502/147 885/1443/147 +f 887/1445/149 894/1503/149 888/1446/149 +f 890/1448/151 889/1447/151 888/1446/151 +f 890/1450/148 891/1456/148 892/1451/148 +f 893/1453/144 892/1504/144 894/1454/144 +f 888/1446/153 894/1503/153 892/1451/153 +f 890/1448/151 884/1442/151 895/1457/151 +f 896/1458/149 903/1505/149 897/1459/149 +f 898/1461/151 897/1506/151 899/1462/151 +f 900/1463/148 899/1462/148 901/1464/148 +f 896/1466/144 902/1491/144 901/1467/144 +f 897/1459/152 903/1505/152 901/1464/152 +f 904/1469/144 881/1439/144 883/1441/144 +f 905/1471/149 883/1480/149 895/1472/149 +f 906/1474/151 895/1457/151 907/1475/151 +f 908/1477/148 907/1489/148 881/1478/148 +f 887/1445/150 889/1447/150 895/1472/150 +f 887/1455/144 883/1441/144 882/1440/144 +f 909/1481/149 917/1507/149 910/1482/149 +f 912/1484/149 918/1508/149 913/1485/149 +f 882/1487/152 884/1509/152 890/1450/152 +f 895/1457/151 884/1442/151 886/1444/151 +f 886/1488/153 885/1510/153 896/1458/153 +f 900/1463/151 907/1475/151 886/1444/151 +f 900/1463/154 902/1465/154 881/1478/154 +f 885/1490/144 881/1439/144 902/1491/144 +o Micro_Pivot +v 0.125000 3.250000 -1.375000 +v -0.125000 3.250000 -1.625000 +v -0.125000 3.250000 -1.375000 +v 0.125000 1.250000 -1.625000 +v 0.125000 1.250000 -1.375000 +v -0.125000 1.250000 -1.375000 +v -0.125000 1.250000 -1.625000 +v 0.125000 3.250000 -1.625000 +v -0.062500 3.250000 -1.562500 +v 0.062500 4.250000 -1.562500 +v 0.062500 3.250000 -1.562500 +v 0.062500 3.250000 -1.437500 +v -0.062500 4.250000 -1.437500 +v -0.062500 3.250000 -1.437500 +v 0.062500 4.250000 -1.437500 +v -0.062500 4.250000 -1.562500 +vt 0.755556 0.310345 +vt 0.777778 0.275862 +vt 0.777778 0.310345 +vt 0.844444 -0.000000 +vt 0.822222 0.275862 +vt 0.822222 -0.000000 +vt 0.800000 -0.000000 +vt 0.777778 -0.000000 +vt 0.755556 0.275862 +vt 0.755556 -0.000000 +vt 0.800000 0.275862 +vt 0.788889 0.275862 +vt 0.777778 0.413793 +vt 0.777778 0.275862 +vt 0.811111 0.275862 +vt 0.800000 0.413793 +vt 0.800000 0.275862 +vt 0.822222 0.275862 +vt 0.811111 0.413793 +vt 0.788889 0.413793 +vt 0.844444 0.275862 +vt 0.822222 0.413793 +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 +s off +f 919/1511/155 920/1512/155 921/1513/155 +f 922/1514/156 919/1515/156 923/1516/156 +f 924/1517/157 920/1512/157 925/1518/157 +f 925/1518/158 926/1519/158 922/1520/158 +f 923/1516/159 921/1521/159 924/1517/159 +f 927/1522/158 928/1523/158 929/1524/158 +f 930/1525/159 931/1526/159 932/1527/159 +f 929/1528/156 933/1529/156 930/1525/156 +f 932/1527/157 934/1530/157 927/1522/157 +f 919/1511/155 926/1519/155 920/1512/155 +f 922/1514/156 926/1531/156 919/1515/156 +f 924/1517/157 921/1521/157 920/1512/157 +f 925/1518/158 920/1512/158 926/1519/158 +f 923/1516/159 919/1515/159 921/1521/159 +f 927/1522/158 934/1530/158 928/1523/158 +f 930/1525/159 933/1529/159 931/1526/159 +f 929/1528/156 928/1532/156 933/1529/156 +f 932/1527/157 931/1526/157 934/1530/157 +o Micro_Rope +v -0.187500 5.250000 0.125000 +v -0.275888 5.213388 1.375000 +v -0.187500 5.250000 1.375000 +v -0.099112 5.213388 0.125000 +v -0.099112 5.213388 1.375000 +v -0.099112 5.036612 0.125000 +v -0.062500 5.125000 1.375000 +v -0.099112 5.036612 1.375000 +v -0.275888 5.036612 0.125000 +v -0.187500 5.000000 1.375000 +v -0.275888 5.036612 1.375000 +v -0.275888 5.213388 0.125000 +v -0.312500 5.125000 1.375000 +v -0.062500 5.125000 0.125000 +v -0.187500 5.000000 0.125000 +v -0.312500 5.125000 0.125000 +v 0.187500 4.250000 0.125000 +v 0.099112 4.213388 1.375000 +v 0.187500 4.250000 1.375000 +v 0.275888 4.213388 0.125000 +v 0.275888 4.213388 1.375000 +v 0.275888 4.036612 0.125000 +v 0.312500 4.125000 1.375000 +v 0.275888 4.036612 1.375000 +v 0.099112 4.036612 0.125000 +v 0.187500 4.000000 1.375000 +v 0.099112 4.036612 1.375000 +v 0.099112 4.213388 0.125000 +v 0.062500 4.125000 1.375000 +v 0.312500 4.125000 0.125000 +v 0.187500 4.000000 0.125000 +v 0.062500 4.125000 0.125000 +vt 0.711111 0.896552 +vt 0.700000 0.724138 +vt 0.711111 0.724138 +vt 0.722222 0.896552 +vt 0.722222 0.724138 +vt 0.744444 0.896552 +vt 0.733333 0.724138 +vt 0.744444 0.724138 +vt 0.677778 0.896552 +vt 0.666667 0.724138 +vt 0.677778 0.724138 +vt 0.700000 0.896552 +vt 0.688889 0.724138 +vt 0.733333 0.896552 +vt 0.755556 0.896552 +vt 0.755556 0.724138 +vt 0.688889 0.896552 +vt 0.711111 0.896552 +vt 0.700000 0.724138 +vt 0.711111 0.724138 +vt 0.722222 0.896552 +vt 0.722222 0.724138 +vt 0.744444 0.896552 +vt 0.733333 0.724138 +vt 0.744444 0.724138 +vt 0.677778 0.896552 +vt 0.666667 0.724138 +vt 0.677778 0.724138 +vt 0.700000 0.896552 +vt 0.688889 0.724138 +vt 0.733333 0.896552 +vt 0.755556 0.896552 +vt 0.755556 0.724138 +vt 0.688889 0.896552 +vt 0.666667 0.896552 +vt 0.666667 0.896552 +vn -0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +s 1 +f 935/1533/160 936/1534/161 937/1535/160 +f 938/1536/162 937/1535/160 939/1537/162 +f 940/1538/163 941/1539/164 942/1540/163 +f 943/1541/165 944/1542/166 945/1543/165 +f 946/1544/161 947/1545/167 936/1534/161 +f 948/1546/164 939/1537/162 941/1539/164 +f 949/1547/166 942/1540/163 944/1548/166 +f 950/1549/167 945/1543/165 947/1545/167 +f 951/1550/160 952/1551/161 953/1552/160 +f 954/1553/162 953/1552/160 955/1554/162 +f 956/1555/163 957/1556/164 958/1557/163 +f 959/1558/165 960/1559/166 961/1560/165 +f 962/1561/161 963/1562/167 952/1551/161 +f 964/1563/164 955/1554/162 957/1556/164 +f 965/1564/166 958/1557/163 960/1565/166 +f 966/1566/167 961/1560/165 963/1562/167 +f 935/1533/160 946/1544/161 936/1534/161 +f 938/1536/162 935/1533/160 937/1535/160 +f 940/1538/163 948/1546/164 941/1539/164 +f 943/1541/165 949/1567/166 944/1542/166 +f 946/1544/161 950/1549/167 947/1545/167 +f 948/1546/164 938/1536/162 939/1537/162 +f 949/1547/166 940/1538/163 942/1540/163 +f 950/1549/167 943/1541/165 945/1543/165 +f 951/1550/160 962/1561/161 952/1551/161 +f 954/1553/162 951/1550/160 953/1552/160 +f 956/1555/163 964/1563/164 957/1556/164 +f 959/1558/165 965/1568/166 960/1559/166 +f 962/1561/161 966/1566/167 963/1562/167 +f 964/1563/164 954/1553/162 955/1554/162 +f 965/1564/166 956/1555/163 958/1557/163 +f 966/1566/167 959/1558/165 961/1560/165 +o Strong_Erector +v 0.250000 3.500000 -3.250000 +v 0.750000 3.500000 -2.750000 +v 0.250000 3.500000 -2.750000 +v -0.750000 3.500000 -3.250000 +v -0.250000 3.500000 -2.750000 +v -0.750000 3.500000 -2.750000 +v 0.750000 10.000000 -2.750000 +v 0.250000 10.000000 -3.250000 +v 0.250000 10.000000 -2.750000 +v -0.250000 10.000000 -2.750000 +v -0.750000 10.000000 -3.250000 +v -0.750000 10.000000 -2.750000 +v -0.250000 3.500000 -3.250000 +v -0.250000 10.000000 -3.250000 +v 0.750000 3.500000 -3.250000 +v 0.750000 10.000000 -3.250000 +v 0.250000 9.000000 -3.500000 +v -0.250000 9.000000 -1.000000 +v 0.250000 9.000000 -1.000000 +v -0.250000 8.500000 -1.000000 +v 0.250000 8.500000 -3.500000 +v 0.250000 8.500000 -1.000000 +v 0.375000 9.125000 -1.000000 +v -0.250000 9.000000 -3.500000 +v -0.250000 8.500000 -3.500000 +v -0.375000 8.375000 -1.000000 +v -0.375000 9.125000 -0.750000 +v -0.375000 9.125000 -1.000000 +v 0.375000 8.375000 -1.000000 +v 0.375000 8.375000 -0.750000 +v 0.375000 9.125000 -0.750000 +v -0.375000 8.375000 -0.750000 +v 0.375000 3.875000 -1.000000 +v -0.375000 3.875000 -0.750000 +v -0.375000 3.875000 -1.000000 +v 0.375000 4.625000 -1.000000 +v 0.375000 3.875000 -0.750000 +v -0.375000 4.625000 -1.000000 +v 0.375000 4.625000 -0.750000 +v -0.375000 4.625000 -0.750000 +v 0.250000 4.000000 -1.000000 +v -0.250000 4.000000 -1.000000 +v 0.250000 4.500000 -1.000000 +v -0.250000 4.500000 -1.000000 +v 0.250000 4.000000 -3.500000 +v 0.250000 4.500000 -3.500000 +v -0.250000 4.000000 -3.500000 +v -0.250000 4.500000 -3.500000 +v 0.750000 6.500000 -1.250000 +v 0.250000 6.500000 -2.750000 +v 0.750000 6.500000 -2.750000 +v -0.250000 7.000000 -1.250000 +v -0.250000 6.500000 -2.750000 +v -0.250000 7.000000 -2.750000 +v 0.250000 7.000000 -2.750000 +v 0.750000 7.000000 -1.250000 +v 0.750000 7.000000 -2.750000 +v 0.250000 6.500000 -1.250000 +v -0.750000 6.500000 -1.250000 +v -0.750000 7.000000 -2.750000 +v -0.750000 6.500000 -2.750000 +v -0.250000 6.500000 -1.250000 +v -0.750000 7.000000 -1.250000 +v 0.750000 6.500000 -1.250000 +v -0.750000 6.500000 -1.250000 +v 0.750000 6.500000 -0.750000 +v -0.750000 7.000000 -0.750000 +v -0.750000 6.500000 -0.750000 +v 0.750000 7.000000 -0.750000 +v 0.750000 7.000000 -1.250000 +v 1.250000 7.000000 0.750000 +v 1.250000 7.000000 -0.750000 +v -1.250000 6.500000 0.750000 +v -1.250000 6.500000 -0.750000 +v 1.250000 6.500000 -0.750000 +v -1.250000 7.000000 -0.750000 +v 0.750000 6.500000 0.750000 +v 0.750000 7.000000 0.750000 +v -0.750000 7.000000 0.750000 +v -0.750000 6.500000 0.750000 +v -1.250000 7.000000 0.750000 +v 1.250000 6.500000 0.750000 +v 0.250000 7.000000 -1.250000 +v -0.750000 7.000000 -1.250000 +vt 0.820513 0.269663 +vt 0.794872 0.224719 +vt 0.820513 0.224719 +vt 0.820513 0.269663 +vt 0.794872 0.224719 +vt 0.820513 0.224719 +vt 0.794872 0.898876 +vt 0.820513 0.853933 +vt 0.820513 0.898876 +vt 0.794872 0.898876 +vt 0.820513 0.853933 +vt 0.820513 0.898876 +vt 0.897436 0.269663 +vt 0.871795 0.853933 +vt 0.871795 0.269663 +vt 0.794872 0.853933 +vt 0.794872 0.269663 +vt 0.897436 0.269663 +vt 0.871795 0.853933 +vt 0.871795 0.269663 +vt 0.794872 0.853933 +vt 0.794872 0.269663 +vt 0.846154 0.269663 +vt 0.846154 0.853933 +vt 0.846154 0.269663 +vt 0.846154 0.853933 +vt 0.544872 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.416667 0.921348 +vt 0.544872 0.966292 +vt 0.416667 0.966292 +vt 0.410256 0.910112 +vt 0.544872 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.570513 0.966292 +vt 0.544872 0.966292 +vt 0.416667 0.966292 +vt 0.544872 0.921348 +vt 0.544872 0.966292 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.410256 0.910112 +vt 0.416667 0.921348 +vt 0.410256 0.910112 +vt 0.397436 0.977528 +vt 0.358974 0.910112 +vt 0.397436 0.910112 +vt 0.410256 0.977528 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.410256 0.910112 +vt 0.397436 0.977528 +vt 0.358974 0.910112 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.416667 0.966292 +vt 0.410256 0.910112 +vt 0.416667 0.921348 +vt 0.410256 0.977528 +vt 0.397436 0.910112 +vt 0.544872 0.921348 +vt 0.544872 0.966292 +vt 0.544872 0.921348 +vt 0.570513 0.966292 +vt 0.544872 0.966292 +vt 0.544872 0.921348 +vt 0.416667 0.966292 +vt 0.416667 0.921348 +vt 0.544872 0.966292 +vt 1.000000 0.134831 +vt 0.974359 -0.000000 +vt 1.000000 -0.000000 +vt 0.923077 0.134831 +vt 0.897436 -0.000000 +vt 0.923077 0.000000 +vt 0.948718 -0.000000 +vt 0.923077 0.134831 +vt 0.923077 0.000000 +vt 0.974359 0.134831 +vt 0.974359 0.134831 +vt 0.948718 -0.000000 +vt 0.974359 -0.000000 +vt 1.000000 0.134831 +vt 1.000000 -0.000000 +vt 0.897436 -0.000000 +vt 0.948718 0.494382 +vt 0.974359 0.359551 +vt 0.974359 0.494382 +vt 0.897436 0.359551 +vt 0.923077 0.494382 +vt 0.897436 0.494382 +vt 0.923077 0.359551 +vt 0.948718 0.359551 +vt 0.923077 0.314607 +vt 0.948718 0.179775 +vt 0.948718 0.314607 +vt 1.000000 0.494382 +vt 1.000000 0.539326 +vt 0.974359 0.674157 +vt 0.974359 0.539326 +vt 1.000000 0.359551 +vt 1.000000 0.314607 +vt 0.923077 0.314607 +vt 1.000000 0.539326 +vt 0.923077 0.539326 +vt 0.974359 0.134831 +vt 0.948718 0.134831 +vt 0.948718 0.719101 +vt 0.974359 0.719101 +vt 0.897436 0.314607 +vt 0.923077 0.179775 +vt 0.948718 0.539326 +vt 0.923077 0.674157 +vt 0.923077 0.539326 +vt 0.948718 0.674157 +vt 0.974359 0.314607 +vt 1.000000 0.179775 +vt 1.000000 0.314607 +vt 0.974359 0.179775 +vt 0.897436 0.674157 +vt 0.897436 0.539326 +vt 0.897436 0.853933 +vt 0.897436 0.853933 +vt 0.544872 0.921348 +vt 0.544872 0.966292 +vt 0.570513 0.921348 +vt 0.397436 0.977528 +vt 0.358974 0.977528 +vt 0.397436 0.977528 +vt 0.397436 0.977528 +vt 0.397436 0.977528 +vt 0.397436 0.977528 +vt 0.358974 0.977528 +vt 0.397436 0.977528 +vt 0.570513 0.921348 +vt 0.544872 0.966292 +vt 0.544872 0.921348 +vt 0.897436 0.134831 +vt 0.948718 0.134831 +vt 0.948718 0.134831 +vt 0.897436 0.134831 +vt 1.000000 0.674157 +vt 0.897436 0.179775 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.7071 0.0000 -0.7071 vn -0.7071 0.0000 -0.7071 s off -f 667/842/42 669/843/42 668/844/42 -f 671/845/42 673/846/42 672/847/42 -f 675/848/42 677/849/42 676/850/42 -f 679/851/42 681/852/42 680/853/42 -f 685/854/43 683/855/43 684/856/43 -f 689/857/43 687/858/43 688/859/43 -f 693/860/43 691/861/43 692/862/43 -f 697/863/43 695/864/43 696/865/43 -f 677/866/44 692/867/44 676/868/44 -f 670/869/45 685/870/45 669/871/45 -f 678/872/45 693/873/45 677/866/45 -f 667/842/46 686/874/46 670/875/46 -f 675/848/46 694/876/46 678/877/46 -f 672/878/47 687/858/47 671/845/47 -f 680/879/47 695/864/47 679/851/47 -f 673/880/44 688/881/44 672/878/44 -f 681/882/44 696/883/44 680/879/44 -f 674/884/45 689/885/45 673/880/45 -f 682/886/45 697/887/45 681/882/45 -f 671/845/46 690/888/46 674/889/46 -f 668/890/47 683/855/47 667/842/47 -f 679/851/46 698/891/46 682/892/46 -f 676/868/47 691/861/47 675/848/47 -f 669/871/44 684/893/44 668/890/44 -f 699/894/43 701/895/43 700/896/43 -f 705/897/42 703/898/42 704/899/42 -f 699/894/46 706/900/46 702/901/46 -f 701/895/44 704/902/44 700/896/44 -f 709/903/46 708/904/46 707/905/46 -f 712/906/44 713/907/44 711/908/44 -f 709/909/42 730/910/42 713/911/42 -f 709/909/42 714/912/42 710/913/42 -f 709/914/48 724/915/48 726/916/48 -f 708/904/43 711/917/43 707/905/43 -f 717/918/47 716/919/47 715/920/47 -f 720/921/45 721/922/45 719/923/45 -f 718/924/44 720/925/44 716/926/44 -f 717/927/42 722/928/42 718/929/42 -f 711/917/43 724/915/43 707/905/43 -f 716/919/43 719/930/43 715/920/43 -f 725/931/45 724/915/45 723/932/45 -f 728/933/47 729/934/47 727/935/47 -f 713/907/49 728/933/49 711/908/49 -f 725/936/42 730/910/42 726/937/42 -f 723/938/44 729/939/44 725/940/44 -f 724/915/43 727/941/43 723/932/43 -f 714/942/50 719/923/50 721/922/50 -f 708/904/43 719/930/43 712/943/43 -f 710/944/51 715/920/51 708/945/51 -f 721/946/42 710/913/42 714/912/42 -f 731/947/43 733/948/43 732/949/43 -f 737/950/42 735/951/42 736/952/42 -f 731/947/46 738/953/46 734/954/46 -f 733/948/44 736/955/44 732/949/44 -f 740/956/45 746/957/45 742/958/45 -f 741/959/47 743/960/47 739/961/47 -f 742/958/43 745/962/43 741/959/43 -f 739/961/42 744/963/42 740/964/42 -f 748/965/45 754/966/45 750/967/45 -f 749/968/47 751/969/47 747/970/47 -f 750/967/43 753/971/43 749/968/43 -f 747/970/42 752/972/42 748/973/42 -f 755/974/43 757/975/43 756/976/43 -f 761/977/42 759/978/42 760/979/42 -f 755/974/46 762/980/46 758/981/46 -f 757/975/44 760/982/44 756/976/44 -f 765/983/46 764/984/46 763/985/46 -f 768/986/44 769/987/44 767/988/44 -f 765/989/42 786/990/42 769/991/42 -f 765/989/42 770/992/42 766/993/42 -f 765/994/48 780/995/48 782/996/48 -f 764/984/43 767/997/43 763/985/43 -f 773/998/47 772/999/47 771/1000/47 -f 776/1001/45 777/1002/45 775/1003/45 -f 774/1004/44 776/1005/44 772/1006/44 -f 773/1007/42 778/1008/42 774/1009/42 -f 767/997/43 780/995/43 763/985/43 -f 772/999/43 775/1010/43 771/1000/43 -f 781/1011/45 780/995/45 779/1012/45 -f 784/1013/47 785/1014/47 783/1015/47 -f 769/987/49 784/1013/49 767/988/49 -f 781/1016/42 786/990/42 782/1017/42 -f 779/1018/44 785/1019/44 781/1020/44 -f 780/995/43 783/1021/43 779/1012/43 -f 770/1022/50 775/1003/50 777/1002/50 -f 764/984/43 775/1010/43 768/1023/43 -f 766/1024/51 771/1000/51 764/1025/51 -f 777/1026/42 766/993/42 770/992/42 -f 787/1027/43 789/1028/43 788/1029/43 -f 793/1030/42 791/1031/42 792/1032/42 -f 787/1027/46 794/1033/46 790/1034/46 -f 789/1028/44 792/1035/44 788/1029/44 -f 796/1036/45 802/1037/45 798/1038/45 -f 797/1039/47 799/1040/47 795/1041/47 -f 798/1038/43 801/1042/43 797/1039/43 -f 795/1041/42 800/1043/42 796/1044/42 -f 804/1045/45 810/1046/45 806/1047/45 -f 805/1048/47 807/1049/47 803/1050/47 -f 806/1047/43 809/1051/43 805/1048/43 -f 803/1050/42 808/1052/42 804/1053/42 -f 811/1054/43 813/1055/43 812/1056/43 -f 817/1057/42 815/1058/42 816/1059/42 -f 811/1054/46 818/1060/46 814/1061/46 -f 813/1055/44 816/1062/44 812/1056/44 -f 821/1063/46 820/1064/46 819/1065/46 -f 824/1066/44 825/1067/44 823/1068/44 -f 821/1069/42 842/1070/42 825/1071/42 -f 821/1069/42 826/1072/42 822/1073/42 -f 821/1074/48 836/1075/48 838/1076/48 -f 820/1064/43 823/1077/43 819/1065/43 -f 829/1078/47 828/1079/47 827/1080/47 -f 832/1081/45 833/1082/45 831/1083/45 -f 830/1084/44 832/1081/44 828/1085/44 -f 829/1086/42 834/1087/42 830/1088/42 -f 823/1077/43 836/1075/43 819/1065/43 -f 828/1079/43 831/1089/43 827/1080/43 -f 837/1090/45 836/1075/45 835/1091/45 -f 840/1092/47 841/1093/47 839/1094/47 -f 825/1067/49 840/1092/49 823/1068/49 -f 837/1095/42 842/1070/42 838/1096/42 -f 835/1097/44 841/1093/44 837/1098/44 -f 836/1075/43 839/1099/43 835/1091/43 -f 826/1100/50 831/1083/50 833/1082/50 -f 820/1064/43 831/1089/43 824/1101/43 -f 822/1102/51 827/1080/51 820/1103/51 -f 833/1104/42 822/1073/42 826/1072/42 -f 843/1105/43 845/1106/43 844/1107/43 -f 849/1108/42 847/1109/42 848/1110/42 -f 843/1105/46 850/1111/46 846/1112/46 -f 845/1106/44 848/1113/44 844/1107/44 -f 852/1114/45 858/1115/45 854/1116/45 -f 853/1117/47 855/1118/47 851/1119/47 -f 854/1116/43 857/1120/43 853/1117/43 -f 851/1119/42 856/1121/42 852/1122/42 -f 860/1123/45 866/1124/45 862/1125/45 -f 861/1126/47 863/1127/47 859/1128/47 -f 862/1125/43 865/1129/43 861/1126/43 -f 859/1128/42 864/1130/42 860/1131/42 -f 868/1132/46 869/1133/46 867/1134/46 -f 872/1135/46 873/1136/46 871/1137/46 -f 875/1138/46 878/1139/46 877/1140/46 -f 879/1141/46 882/1142/46 881/1143/46 -f 884/1144/46 885/1145/46 883/1146/46 -f 888/1147/46 889/1148/46 887/1149/46 -f 891/1150/46 894/1151/46 893/1152/46 -f 895/1153/46 898/1154/46 897/1155/46 -f 901/1156/44 900/1157/44 899/1158/44 -f 905/1159/44 904/1160/44 903/1161/44 -f 907/1162/44 910/1163/44 908/1164/44 -f 911/1165/44 914/1166/44 912/1167/44 -f 917/1168/44 916/1169/44 915/1170/44 -f 921/1171/44 920/1172/44 919/1173/44 -f 923/1174/44 926/1175/44 924/1176/44 -f 927/1177/44 930/1178/44 928/1179/44 -f 932/1180/46 933/1181/46 931/1182/46 -f 935/1183/46 938/1184/46 937/1185/46 -f 941/1186/44 940/1187/44 939/1188/44 -f 943/1189/44 946/1190/44 944/1191/44 -f 948/1192/45 949/1193/45 947/1194/45 -f 951/1195/45 954/1196/45 953/1197/45 -f 956/1198/45 957/1199/45 955/1200/45 -f 959/1201/45 962/1202/45 961/1203/45 -f 964/1204/45 965/1205/45 963/1206/45 -f 967/1207/45 970/1208/45 969/1209/45 -f 972/1210/45 973/1211/45 971/1212/45 -f 975/1213/45 978/1214/45 977/1215/45 -f 980/1216/45 981/1217/45 979/1218/45 -f 983/1219/45 986/1220/45 985/1221/45 -f 989/1222/47 988/1223/47 987/1224/47 -f 991/1225/47 994/1226/47 992/1227/47 -f 997/1228/47 996/1229/47 995/1230/47 -f 999/1231/47 1002/1232/47 1000/1233/47 -f 1005/1234/47 1004/1235/47 1003/1236/47 -f 1007/1237/47 1010/1238/47 1008/1239/47 -f 1013/1240/47 1012/1241/47 1011/1242/47 -f 1015/1243/47 1018/1244/47 1016/1245/47 -f 1021/1246/47 1020/1247/47 1019/1248/47 -f 1023/1249/47 1026/1250/47 1024/1251/47 -f 1029/1252/44 1028/1253/44 1027/1254/44 -f 1033/1255/44 1032/1256/44 1031/1257/44 -f 1035/1258/44 1038/1259/44 1036/1260/44 -f 1039/1261/44 1042/1262/44 1040/1263/44 -f 1045/1264/44 1044/1265/44 1043/1266/44 -f 1049/1267/44 1048/1268/44 1047/1269/44 -f 1051/1270/44 1054/1271/44 1052/1272/44 -f 1055/1273/44 1058/1274/44 1056/1275/44 -f 1060/1276/46 1061/1277/46 1059/1278/46 -f 1064/1279/46 1065/1280/46 1063/1281/46 -f 1067/1282/46 1070/1283/46 1069/1284/46 -f 1071/1285/46 1074/1286/46 1073/1287/46 -f 1076/1288/46 1077/1289/46 1075/1290/46 -f 1080/1291/46 1081/1292/46 1079/1293/46 -f 1083/1294/46 1086/1295/46 1085/1296/46 -f 1087/1297/46 1090/1298/46 1089/1299/46 -f 1093/1300/44 1092/1301/44 1091/1302/44 -f 1095/1303/44 1098/1304/44 1096/1305/44 -f 1100/1306/46 1101/1307/46 1099/1308/46 -f 1103/1309/46 1106/1310/46 1105/1311/46 -f 1109/1312/47 1108/1313/47 1107/1314/47 -f 1111/1315/47 1114/1316/47 1112/1317/47 -f 1117/1318/47 1116/1319/47 1115/1320/47 -f 1119/1321/47 1122/1322/47 1120/1323/47 -f 1125/1324/47 1124/1325/47 1123/1326/47 -f 1127/1327/47 1130/1328/47 1128/1329/47 -f 1133/1330/47 1132/1331/47 1131/1332/47 -f 1135/1333/47 1138/1334/47 1136/1335/47 -f 1141/1336/47 1140/1337/47 1139/1338/47 -f 1143/1339/47 1146/1340/47 1144/1341/47 -f 1148/1342/45 1149/1343/45 1147/1344/45 -f 1151/1345/45 1154/1346/45 1153/1347/45 -f 1156/1348/45 1157/1349/45 1155/1350/45 -f 1159/1351/45 1162/1352/45 1161/1353/45 -f 1164/1354/45 1165/1355/45 1163/1356/45 -f 1167/1357/45 1170/1358/45 1169/1359/45 -f 1172/1360/45 1173/1361/45 1171/1362/45 -f 1175/1363/45 1178/1364/45 1177/1365/45 -f 1180/1366/45 1181/1367/45 1179/1368/45 -f 1183/1369/45 1186/1370/45 1185/1371/45 -f 667/842/42 670/875/42 669/843/42 -f 671/845/42 674/889/42 673/846/42 -f 675/848/42 678/877/42 677/849/42 -f 679/851/42 682/892/42 681/852/42 -f 685/854/43 686/874/43 683/855/43 -f 689/857/43 690/888/43 687/858/43 -f 693/860/43 694/876/43 691/861/43 -f 697/863/43 698/891/43 695/864/43 -f 677/866/44 693/873/44 692/867/44 -f 670/869/45 686/1372/45 685/870/45 -f 678/872/45 694/1373/45 693/873/45 -f 667/842/46 683/855/46 686/874/46 -f 675/848/46 691/861/46 694/876/46 -f 672/878/47 688/881/47 687/858/47 -f 680/879/47 696/883/47 695/864/47 -f 673/880/44 689/885/44 688/881/44 -f 681/882/44 697/887/44 696/883/44 -f 674/884/45 690/1374/45 689/885/45 -f 682/886/45 698/1375/45 697/887/45 -f 671/845/46 687/858/46 690/888/46 -f 668/890/47 684/893/47 683/855/47 -f 679/851/46 695/864/46 698/891/46 -f 676/868/47 692/867/47 691/861/47 -f 669/871/44 685/870/44 684/893/44 -f 699/894/43 702/901/43 701/895/43 -f 705/897/42 706/900/42 703/898/42 -f 699/894/46 703/898/46 706/900/46 -f 701/895/44 705/1376/44 704/902/44 -f 709/903/46 710/1377/46 708/904/46 -f 712/906/44 714/942/44 713/907/44 -f 709/909/42 726/937/42 730/910/42 -f 709/909/42 713/911/42 714/912/42 -f 709/914/48 707/1378/48 724/915/48 -f 708/904/43 712/943/43 711/917/43 -f 717/918/47 718/1379/47 716/919/47 -f 720/921/45 722/1380/45 721/922/45 -f 718/924/44 722/1381/44 720/925/44 -f 717/927/42 721/946/42 722/928/42 -f 711/917/43 728/1382/43 724/915/43 -f 716/919/43 720/1383/43 719/930/43 -f 725/931/45 726/916/45 724/915/45 -f 728/933/47 730/1384/47 729/934/47 -f 713/907/49 730/1384/49 728/933/49 -f 725/936/42 729/1385/42 730/910/42 -f 723/938/44 727/1386/44 729/939/44 -f 724/915/43 728/1382/43 727/941/43 -f 714/942/50 712/906/50 719/923/50 -f 708/904/43 715/920/43 719/930/43 -f 710/944/51 717/918/51 715/920/51 -f 721/946/42 717/927/42 710/913/42 -f 731/947/43 734/954/43 733/948/43 -f 737/950/42 738/953/42 735/951/42 -f 731/947/46 735/951/46 738/953/46 -f 733/948/44 737/1387/44 736/955/44 -f 740/956/45 744/1388/45 746/957/45 -f 741/959/47 745/962/47 743/960/47 -f 742/958/43 746/957/43 745/962/43 -f 739/961/42 743/960/42 744/963/42 -f 748/965/45 752/1389/45 754/966/45 -f 749/968/47 753/971/47 751/969/47 -f 750/967/43 754/966/43 753/971/43 -f 747/970/42 751/969/42 752/972/42 -f 755/974/43 758/981/43 757/975/43 -f 761/977/42 762/980/42 759/978/42 -f 755/974/46 759/978/46 762/980/46 -f 757/975/44 761/1390/44 760/982/44 -f 765/983/46 766/1391/46 764/984/46 -f 768/986/44 770/1022/44 769/987/44 -f 765/989/42 782/1017/42 786/990/42 -f 765/989/42 769/991/42 770/992/42 -f 765/994/48 763/1392/48 780/995/48 -f 764/984/43 768/1023/43 767/997/43 -f 773/998/47 774/1393/47 772/999/47 -f 776/1001/45 778/1394/45 777/1002/45 -f 774/1004/44 778/1395/44 776/1005/44 -f 773/1007/42 777/1026/42 778/1008/42 -f 767/997/43 784/1396/43 780/995/43 -f 772/999/43 776/1397/43 775/1010/43 -f 781/1011/45 782/996/45 780/995/45 -f 784/1013/47 786/1398/47 785/1014/47 -f 769/987/49 786/1398/49 784/1013/49 -f 781/1016/42 785/1399/42 786/990/42 -f 779/1018/44 783/1400/44 785/1019/44 -f 780/995/43 784/1396/43 783/1021/43 -f 770/1022/50 768/986/50 775/1003/50 -f 764/984/43 771/1000/43 775/1010/43 -f 766/1024/51 773/998/51 771/1000/51 -f 777/1026/42 773/1007/42 766/993/42 -f 787/1027/43 790/1034/43 789/1028/43 -f 793/1030/42 794/1033/42 791/1031/42 -f 787/1027/46 791/1031/46 794/1033/46 -f 789/1028/44 793/1401/44 792/1035/44 -f 796/1036/45 800/1402/45 802/1037/45 -f 797/1039/47 801/1042/47 799/1040/47 -f 798/1038/43 802/1037/43 801/1042/43 -f 795/1041/42 799/1040/42 800/1043/42 -f 804/1045/45 808/1403/45 810/1046/45 -f 805/1048/47 809/1051/47 807/1049/47 -f 806/1047/43 810/1046/43 809/1051/43 -f 803/1050/42 807/1049/42 808/1052/42 -f 811/1054/43 814/1061/43 813/1055/43 -f 817/1057/42 818/1060/42 815/1058/42 -f 811/1054/46 815/1058/46 818/1060/46 -f 813/1055/44 817/1404/44 816/1062/44 -f 821/1063/46 822/1405/46 820/1064/46 -f 824/1066/44 826/1100/44 825/1067/44 -f 821/1069/42 838/1096/42 842/1070/42 -f 821/1069/42 825/1071/42 826/1072/42 -f 821/1074/48 819/1406/48 836/1075/48 -f 820/1064/43 824/1101/43 823/1077/43 -f 829/1078/47 830/1407/47 828/1079/47 -f 832/1081/45 834/1408/45 833/1082/45 -f 830/1084/44 834/1408/44 832/1081/44 -f 829/1086/42 833/1104/42 834/1087/42 -f 823/1077/43 840/1409/43 836/1075/43 -f 828/1079/43 832/1410/43 831/1089/43 -f 837/1090/45 838/1076/45 836/1075/45 -f 840/1092/47 842/1411/47 841/1093/47 -f 825/1067/49 842/1411/49 840/1092/49 -f 837/1095/42 841/1412/42 842/1070/42 -f 835/1097/44 839/1094/44 841/1093/44 -f 836/1075/43 840/1409/43 839/1099/43 -f 826/1100/50 824/1066/50 831/1083/50 -f 820/1064/43 827/1080/43 831/1089/43 -f 822/1102/51 829/1078/51 827/1080/51 -f 833/1104/42 829/1086/42 822/1073/42 -f 843/1105/43 846/1112/43 845/1106/43 -f 849/1108/42 850/1111/42 847/1109/42 -f 843/1105/46 847/1109/46 850/1111/46 -f 845/1106/44 849/1413/44 848/1113/44 -f 852/1114/45 856/1414/45 858/1115/45 -f 853/1117/47 857/1120/47 855/1118/47 -f 854/1116/43 858/1115/43 857/1120/43 -f 851/1119/42 855/1118/42 856/1121/42 -f 860/1123/45 864/1415/45 866/1124/45 -f 861/1126/47 865/1129/47 863/1127/47 -f 862/1125/43 866/1124/43 865/1129/43 -f 859/1128/42 863/1127/42 864/1130/42 -f 868/1132/46 870/1416/46 869/1133/46 -f 872/1135/46 874/1417/46 873/1136/46 -f 875/1138/46 876/1418/46 878/1139/46 -f 879/1141/46 880/1419/46 882/1142/46 -f 884/1144/46 886/1420/46 885/1145/46 -f 888/1147/46 890/1421/46 889/1148/46 -f 891/1150/46 892/1422/46 894/1151/46 -f 895/1153/46 896/1423/46 898/1154/46 -f 901/1156/44 902/1424/44 900/1157/44 -f 905/1159/44 906/1425/44 904/1160/44 -f 907/1162/44 909/1426/44 910/1163/44 -f 911/1165/44 913/1427/44 914/1166/44 -f 917/1168/44 918/1428/44 916/1169/44 -f 921/1171/44 922/1429/44 920/1172/44 -f 923/1174/44 925/1430/44 926/1175/44 -f 927/1177/44 929/1431/44 930/1178/44 -f 932/1180/46 934/1432/46 933/1181/46 -f 935/1183/46 936/1433/46 938/1184/46 -f 941/1186/44 942/1434/44 940/1187/44 -f 943/1189/44 945/1435/44 946/1190/44 -f 948/1192/45 950/1436/45 949/1193/45 -f 951/1195/45 952/1437/45 954/1196/45 -f 956/1198/45 958/1438/45 957/1199/45 -f 959/1201/45 960/1439/45 962/1202/45 -f 964/1204/45 966/1440/45 965/1205/45 -f 967/1207/45 968/1441/45 970/1208/45 -f 972/1210/45 974/1442/45 973/1211/45 -f 975/1213/45 976/1443/45 978/1214/45 -f 980/1216/45 982/1444/45 981/1217/45 -f 983/1219/45 984/1445/45 986/1220/45 -f 989/1222/47 990/1446/47 988/1223/47 -f 991/1225/47 993/1447/47 994/1226/47 -f 997/1228/47 998/1448/47 996/1229/47 -f 999/1231/47 1001/1449/47 1002/1232/47 -f 1005/1234/47 1006/1450/47 1004/1235/47 -f 1007/1237/47 1009/1451/47 1010/1238/47 -f 1013/1240/47 1014/1452/47 1012/1241/47 -f 1015/1243/47 1017/1453/47 1018/1244/47 -f 1021/1246/47 1022/1454/47 1020/1247/47 -f 1023/1249/47 1025/1455/47 1026/1250/47 -f 1029/1252/44 1030/1456/44 1028/1253/44 -f 1033/1255/44 1034/1457/44 1032/1256/44 -f 1035/1258/44 1037/1458/44 1038/1259/44 -f 1039/1261/44 1041/1459/44 1042/1262/44 -f 1045/1264/44 1046/1460/44 1044/1265/44 -f 1049/1267/44 1050/1461/44 1048/1268/44 -f 1051/1270/44 1053/1462/44 1054/1271/44 -f 1055/1273/44 1057/1463/44 1058/1274/44 -f 1060/1276/46 1062/1464/46 1061/1277/46 -f 1064/1279/46 1066/1465/46 1065/1280/46 -f 1067/1282/46 1068/1466/46 1070/1283/46 -f 1071/1285/46 1072/1467/46 1074/1286/46 -f 1076/1288/46 1078/1468/46 1077/1289/46 -f 1080/1291/46 1082/1469/46 1081/1292/46 -f 1083/1294/46 1084/1470/46 1086/1295/46 -f 1087/1297/46 1088/1471/46 1090/1298/46 -f 1093/1300/44 1094/1472/44 1092/1301/44 -f 1095/1303/44 1097/1473/44 1098/1304/44 -f 1100/1306/46 1102/1474/46 1101/1307/46 -f 1103/1309/46 1104/1475/46 1106/1310/46 -f 1109/1312/47 1110/1476/47 1108/1313/47 -f 1111/1315/47 1113/1477/47 1114/1316/47 -f 1117/1318/47 1118/1478/47 1116/1319/47 -f 1119/1321/47 1121/1479/47 1122/1322/47 -f 1125/1324/47 1126/1480/47 1124/1325/47 -f 1127/1327/47 1129/1481/47 1130/1328/47 -f 1133/1330/47 1134/1482/47 1132/1331/47 -f 1135/1333/47 1137/1483/47 1138/1334/47 -f 1141/1336/47 1142/1484/47 1140/1337/47 -f 1143/1339/47 1145/1485/47 1146/1340/47 -f 1148/1342/45 1150/1486/45 1149/1343/45 -f 1151/1345/45 1152/1487/45 1154/1346/45 -f 1156/1348/45 1158/1488/45 1157/1349/45 -f 1159/1351/45 1160/1489/45 1162/1352/45 -f 1164/1354/45 1166/1490/45 1165/1355/45 -f 1167/1357/45 1168/1491/45 1170/1358/45 -f 1172/1360/45 1174/1492/45 1173/1361/45 -f 1175/1363/45 1176/1493/45 1178/1364/45 -f 1180/1366/45 1182/1494/45 1181/1367/45 -f 1183/1369/45 1184/1495/45 1186/1370/45 -o Atlas_Pad -v -1.500000 2.000000 1.500000 -v 1.500000 2.000000 1.500000 -v -1.500000 2.000000 -1.500000 -v 1.500000 2.000000 -1.500000 -v -3.500000 2.000000 3.500000 -v 3.500000 2.000000 3.500000 -v -3.500000 2.000000 -3.500000 -v 3.500000 2.000000 -3.500000 -v -3.500000 1.750000 -3.500000 -v -3.500000 1.750000 3.500000 -v 3.500000 1.750000 3.500000 -v 3.500000 1.750000 -3.500000 -v -3.250000 1.750000 3.250000 -v 3.250000 1.750000 3.250000 -v -3.250000 1.750000 -3.250000 -v 3.250000 1.750000 -3.250000 -v -3.250000 1.000000 -3.250000 -v -3.250000 1.000000 3.250000 -v 3.250000 1.000000 3.250000 -v 3.250000 1.000000 -3.250000 -v -0.500000 1.000000 0.500000 +f 967/1569/168 968/1570/168 969/1571/168 +f 970/1572/168 971/1573/168 972/1574/168 +f 973/1575/169 974/1576/169 975/1577/169 +f 976/1578/169 977/1579/169 978/1580/169 +f 979/1581/170 976/1582/170 971/1583/170 +f 970/1572/171 980/1584/171 979/1585/171 +f 981/1586/170 973/1587/170 968/1588/170 +f 967/1569/171 982/1589/171 981/1590/171 +f 972/1591/172 977/1579/172 970/1572/172 +f 971/1583/173 978/1592/173 972/1591/173 +f 969/1593/172 974/1576/172 967/1569/172 +f 968/1588/173 975/1594/173 969/1593/173 +f 983/1595/169 984/1596/169 985/1597/169 +f 986/1598/168 987/1599/168 988/1600/168 +f 984/1596/171 989/1601/171 985/1597/171 +f 990/1602/172 986/1603/172 984/1604/172 +f 983/1595/171 991/1605/171 990/1606/171 +f 985/1607/170 987/1608/170 983/1609/170 +f 992/1610/172 993/1611/172 994/1612/172 +f 986/1603/171 994/1612/171 984/1604/171 +f 985/1607/171 995/1613/171 988/1614/171 +f 988/1600/171 992/1615/171 986/1598/171 +f 993/1616/173 996/1617/173 997/1618/173 +f 994/1619/169 997/1618/169 989/1601/169 +f 989/1620/170 996/1621/170 995/1613/170 +f 995/1622/168 998/1623/168 992/1615/168 +f 999/1624/168 1000/1625/168 1001/1626/168 +f 1002/1627/170 1003/1628/170 999/1629/170 +f 1004/1630/169 1005/1631/169 1002/1632/169 +f 1006/1633/173 1003/1634/173 1005/1631/173 +f 1007/1635/171 1001/1626/171 1008/1636/171 +f 1009/1637/171 999/1629/171 1007/1638/171 +f 1008/1639/171 1004/1640/171 1010/1641/171 +f 1001/1642/172 1006/1643/172 1004/1640/172 +f 1009/1637/170 1011/1644/170 1012/1645/170 +f 1012/1646/171 1013/1647/171 1014/1648/171 +f 1014/1649/172 1008/1639/172 1010/1641/172 +f 1010/1650/171 1002/1632/171 1009/1651/171 +f 1008/1636/168 1011/1652/168 1007/1635/168 +f 1012/1646/169 1010/1650/169 1009/1651/169 +f 1015/1653/168 1016/1654/168 1017/1655/168 +f 1018/1656/170 1019/1657/170 1020/1658/170 +f 1021/1659/169 1022/1660/169 1023/1661/169 +f 1024/1662/172 1021/1659/172 1016/1654/172 +f 1025/1663/172 1026/1664/172 1027/1665/172 +f 1028/1666/168 1027/1665/168 1019/1667/168 +f 1026/1664/169 1018/1656/169 1020/1658/169 +f 1022/1660/170 1017/1668/170 1023/1661/170 +f 1029/1669/171 1030/1670/171 1031/1671/171 +f 1032/1672/173 1033/1673/173 1034/1674/173 +f 1029/1669/169 1035/1675/169 1036/1676/169 +f 1035/1677/169 1037/1678/169 1038/1679/169 +f 1030/1670/168 1034/1680/168 1031/1671/168 +f 1034/1681/168 1039/1682/168 1040/1683/168 +f 1032/1684/168 1030/1670/168 1041/1685/168 +f 1035/1675/169 1038/1686/169 1036/1676/169 +f 1038/1679/174 1030/1670/174 1036/1676/174 +f 1034/1680/168 1040/1687/168 1031/1671/168 +f 1033/1673/169 1029/1669/169 1042/1688/169 +f 1040/1683/175 1029/1669/175 1031/1671/175 +f 1043/1689/173 1037/1678/173 1044/1690/173 +f 1045/1691/173 1039/1682/173 1046/1692/173 +f 1032/1693/172 1044/1694/172 1035/1677/172 +f 1042/1695/169 1045/1696/169 1033/1697/169 +f 1040/1683/172 1047/1698/172 1042/1695/172 +f 1041/1699/168 1043/1700/168 1032/1701/168 +f 1038/1679/170 1048/1702/170 1041/1699/170 +f 1033/1697/170 1046/1703/170 1034/1704/170 +f 967/1569/168 981/1590/168 968/1570/168 +f 970/1572/168 979/1585/168 971/1573/168 +f 973/1575/169 982/1589/169 974/1576/169 +f 976/1578/169 980/1584/169 977/1579/169 +f 979/1581/170 980/1705/170 976/1582/170 +f 970/1572/171 977/1579/171 980/1584/171 +f 981/1586/170 982/1706/170 973/1587/170 +f 967/1569/171 974/1576/171 982/1589/171 +f 972/1591/172 978/1592/172 977/1579/172 +f 971/1583/173 976/1582/173 978/1592/173 +f 969/1593/172 975/1594/172 974/1576/172 +f 968/1588/173 973/1587/173 975/1594/173 +f 983/1595/169 990/1606/169 984/1596/169 +f 986/1598/168 991/1707/168 987/1599/168 +f 984/1596/171 994/1619/171 989/1601/171 +f 990/1602/172 991/1708/172 986/1603/172 +f 983/1595/171 987/1709/171 991/1605/171 +f 985/1607/170 988/1614/170 987/1608/170 +f 992/1610/172 998/1710/172 993/1611/172 +f 986/1603/171 992/1610/171 994/1612/171 +f 985/1607/171 989/1620/171 995/1613/171 +f 988/1600/171 995/1622/171 992/1615/171 +f 993/1616/173 998/1711/173 996/1617/173 +f 994/1619/169 993/1616/169 997/1618/169 +f 989/1620/170 997/1712/170 996/1621/170 +f 995/1622/168 996/1713/168 998/1623/168 +f 999/1624/168 1003/1714/168 1000/1625/168 +f 1002/1627/170 1005/1715/170 1003/1628/170 +f 1004/1630/169 1006/1633/169 1005/1631/169 +f 1006/1633/173 1000/1716/173 1003/1634/173 +f 1007/1635/171 999/1624/171 1001/1626/171 +f 1009/1637/171 1002/1627/171 999/1629/171 +f 1008/1639/171 1001/1642/171 1004/1640/171 +f 1001/1642/172 1000/1717/172 1006/1643/172 +f 1009/1637/170 1007/1638/170 1011/1644/170 +f 1012/1646/171 1011/1718/171 1013/1647/171 +f 1014/1649/172 1013/1719/172 1008/1639/172 +f 1010/1650/171 1004/1630/171 1002/1632/171 +f 1008/1636/168 1013/1720/168 1011/1652/168 +f 1012/1646/169 1014/1648/169 1010/1650/169 +f 1015/1653/168 1024/1662/168 1016/1654/168 +f 1018/1656/170 1028/1721/170 1019/1657/170 +f 1021/1659/169 1049/1722/169 1022/1660/169 +f 1024/1662/172 1049/1722/172 1021/1659/172 +f 1025/1663/172 1050/1723/172 1026/1664/172 +f 1028/1666/168 1025/1663/168 1027/1665/168 +f 1026/1664/169 1050/1723/169 1018/1656/169 +f 1022/1660/170 1015/1724/170 1017/1668/170 +f 1029/1669/171 1036/1676/171 1030/1670/171 +f 1032/1672/173 1035/1675/173 1033/1673/173 +f 1029/1669/169 1033/1673/169 1035/1675/169 +f 1035/1677/169 1044/1694/169 1037/1678/169 +f 1030/1670/168 1032/1684/168 1034/1680/168 +f 1034/1681/168 1046/1725/168 1039/1682/168 +f 1038/1679/174 1041/1699/174 1030/1670/174 +f 1040/1683/175 1042/1695/175 1029/1669/175 +f 1043/1689/173 1048/1702/173 1037/1678/173 +f 1045/1691/173 1047/1698/173 1039/1682/173 +f 1032/1693/172 1043/1726/172 1044/1694/172 +f 1042/1695/169 1047/1698/169 1045/1696/169 +f 1040/1683/172 1039/1682/172 1047/1698/172 +f 1041/1699/168 1048/1702/168 1043/1700/168 +f 1038/1679/170 1037/1678/170 1048/1702/170 +f 1033/1697/170 1045/1696/170 1046/1703/170 +o Strong_Pivot +v 0.750000 3.500000 -2.750000 +v 0.250000 3.500000 -3.250000 +v 0.250000 3.500000 -2.750000 +v 0.750000 1.500000 -3.250000 +v 0.750000 1.500000 -2.750000 +v 0.250000 1.500000 -3.250000 +v 0.750000 3.500000 -3.250000 +v 0.250000 1.500000 -2.750000 +v -0.250000 3.500000 -2.750000 +v -0.750000 3.500000 -3.250000 +v -0.750000 3.500000 -2.750000 +v -0.250000 1.500000 -3.250000 +v -0.250000 1.500000 -2.750000 +v -0.750000 1.500000 -3.250000 +v -0.250000 3.500000 -3.250000 +v -0.750000 1.500000 -2.750000 +v 0.312500 4.500000 -3.187500 +v 0.687500 3.500000 -3.187500 +v 0.312500 3.500000 -3.187500 +v 0.687500 4.500000 -2.812500 +v 0.312500 3.500000 -2.812500 +v 0.687500 3.500000 -2.812500 +v 0.687500 4.500000 -3.187500 +v 0.312500 4.500000 -2.812500 +v -0.687500 4.500000 -3.187500 +v -0.312500 3.500000 -3.187500 +v -0.687500 3.500000 -3.187500 +v -0.312500 4.500000 -2.812500 +v -0.687500 3.500000 -2.812500 +v -0.312500 3.500000 -2.812500 +v -0.312500 4.500000 -3.187500 +v -0.687500 4.500000 -2.812500 +vt 0.794872 0.224719 +vt 0.820513 0.179775 +vt 0.820513 0.224719 +vt 0.897436 0.000000 +vt 0.871795 0.179775 +vt 0.871795 0.000000 +vt 0.820513 0.000000 +vt 0.794872 0.179775 +vt 0.794872 0.000000 +vt 0.846154 0.000000 +vt 0.846154 0.179775 +vt 0.794872 0.224719 +vt 0.820513 0.179775 +vt 0.820513 0.224719 +vt 0.897436 0.000000 +vt 0.871795 0.179775 +vt 0.871795 0.000000 +vt 0.820513 0.000000 +vt 0.794872 0.179775 +vt 0.794872 0.000000 +vt 0.846154 0.000000 +vt 0.846154 0.179775 +vt 0.839744 0.269663 +vt 0.820513 0.179775 +vt 0.839744 0.179775 +vt 0.878205 0.269663 +vt 0.858974 0.179775 +vt 0.878205 0.179775 +vt 0.897436 0.269663 +vt 0.897436 0.179775 +vt 0.858974 0.269663 +vt 0.839744 0.269663 +vt 0.820513 0.179775 +vt 0.839744 0.179775 +vt 0.878205 0.269663 +vt 0.858974 0.179775 +vt 0.878205 0.179775 +vt 0.897436 0.269663 +vt 0.897436 0.179775 +vt 0.858974 0.269663 +vt 0.897436 0.179775 +vt 0.897436 0.179775 +vt 0.820513 0.269663 +vt 0.820513 0.269663 +vn 0.0000 1.0000 0.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.0000 1.0000 +s off +f 1051/1727/176 1052/1728/176 1053/1729/176 +f 1054/1730/177 1051/1731/177 1055/1732/177 +f 1056/1733/178 1057/1734/178 1054/1735/178 +f 1058/1736/179 1052/1728/179 1056/1733/179 +f 1055/1732/180 1053/1737/180 1058/1736/180 +f 1059/1738/176 1060/1739/176 1061/1740/176 +f 1062/1741/177 1059/1742/177 1063/1743/177 +f 1064/1744/178 1065/1745/178 1062/1746/178 +f 1066/1747/179 1060/1739/179 1064/1744/179 +f 1063/1743/180 1061/1748/180 1066/1747/180 +f 1067/1749/178 1068/1750/178 1069/1751/178 +f 1070/1752/180 1071/1753/180 1072/1754/180 +f 1073/1755/177 1072/1754/177 1068/1756/177 +f 1074/1757/179 1069/1751/179 1071/1753/179 +f 1075/1758/178 1076/1759/178 1077/1760/178 +f 1078/1761/180 1079/1762/180 1080/1763/180 +f 1081/1764/177 1080/1763/177 1076/1765/177 +f 1082/1766/179 1077/1760/179 1079/1762/179 +f 1051/1727/176 1057/1734/176 1052/1728/176 +f 1054/1730/177 1057/1767/177 1051/1731/177 +f 1056/1733/178 1052/1728/178 1057/1734/178 +f 1058/1736/179 1053/1737/179 1052/1728/179 +f 1055/1732/180 1051/1731/180 1053/1737/180 +f 1059/1738/176 1065/1745/176 1060/1739/176 +f 1062/1741/177 1065/1768/177 1059/1742/177 +f 1064/1744/178 1060/1739/178 1065/1745/178 +f 1066/1747/179 1061/1748/179 1060/1739/179 +f 1063/1743/180 1059/1742/180 1061/1748/180 +f 1067/1749/178 1073/1769/178 1068/1750/178 +f 1070/1752/180 1074/1757/180 1071/1753/180 +f 1073/1755/177 1070/1752/177 1072/1754/177 +f 1074/1757/179 1067/1749/179 1069/1751/179 +f 1075/1758/178 1081/1770/178 1076/1759/178 +f 1078/1761/180 1082/1766/180 1079/1762/180 +f 1081/1764/177 1078/1761/177 1080/1763/177 +f 1082/1766/179 1075/1758/179 1077/1760/179 +o Strong_Rope +v -0.250000 8.500000 2.500000 +v 0.250000 8.500000 0.250000 +v 0.250000 8.500000 2.500000 +v 0.250000 9.000000 0.250000 +v 0.250000 9.000000 2.500000 +v -0.250000 9.000000 2.500000 +v -0.250000 8.500000 0.250000 +v -0.250000 9.000000 0.250000 +v 0.000000 10.812500 0.500000 +v 0.000000 10.875000 0.000000 +v 0.000000 11.000000 0.000000 +v 0.000000 10.875000 2.500000 +v 0.000000 10.812500 2.000000 +v 0.000000 11.000000 2.500000 +v 0.000000 10.687500 2.000000 +v 0.000000 10.750000 1.500000 +v 0.000000 10.625000 1.500000 +v 0.000000 10.750000 1.000000 +v 0.000000 10.687500 0.500000 +v 0.000000 10.812500 0.500000 +v 0.000000 10.875000 0.000000 +v 0.000000 10.687500 0.500000 +v 0.000000 10.812500 2.000000 +v 0.000000 10.875000 2.500000 +v 0.000000 11.000000 2.500000 +v 0.000000 10.750000 1.500000 +v 0.000000 10.687500 2.000000 +v 0.000000 10.750000 1.000000 +v 0.000000 10.625000 1.500000 +v 0.000000 10.625000 1.000000 +v 0.000000 10.625000 1.000000 +v 0.000000 11.000000 0.000000 +v 1.000000 7.625000 0.000000 +v 0.625000 7.661612 -0.088388 +v 1.000000 7.661612 -0.088388 +v 1.000000 7.838388 -0.088388 +v 0.625000 7.875000 0.000000 +v 1.000000 7.875000 0.000000 +v 0.625000 7.750000 -0.125000 +v 1.000000 7.750000 -0.125000 +v 1.000000 7.838388 0.088388 +v 0.625000 7.750000 0.125000 +v 1.000000 7.750000 0.125000 +v 1.000000 7.661612 0.088388 +v 0.625000 7.625000 0.000000 +v 0.625000 7.661612 0.088388 +v 0.625000 7.838388 0.088388 +v 0.625000 7.838388 -0.088388 +v 1.025888 7.661612 0.099112 +v 1.036612 7.661612 0.125000 +v 1.025888 7.838388 0.099112 +v 1.036612 7.838388 0.125000 +v 1.150888 7.838388 -0.025888 +v 1.088388 7.875000 0.036612 +v 1.150888 7.661612 -0.025888 +v 1.176777 7.750000 -0.051777 +v 1.088388 7.625000 0.036612 +v 1.213388 7.838388 0.125000 +v 1.213388 7.661612 0.125000 +v 1.125000 7.875000 0.125000 +v 1.250000 7.750000 0.125000 +v 1.125000 7.625000 0.125000 +v 1.213388 7.838388 2.875000 +v 1.125000 7.875000 2.875000 +v 1.213388 7.661612 2.875000 +v 1.250000 7.750000 2.875000 +v 1.036612 7.838388 2.875000 +v 1.000000 7.750000 2.875000 +v 1.036612 7.661612 2.875000 +v 1.125000 7.625000 2.875000 +v 1.025888 7.661612 2.900888 +v 1.000000 7.661612 2.911612 +v 1.025888 7.838388 2.900888 +v 1.000000 7.838388 2.911612 +v 1.088388 7.875000 2.963388 +v 1.150888 7.838388 3.025888 +v 1.176777 7.750000 3.051777 +v 1.150888 7.661612 3.025888 +v 1.088388 7.625000 2.963388 +v 1.000000 7.661612 3.088388 +v 1.000000 7.625000 3.000000 +v 1.000000 7.838388 3.088388 +v 1.000000 7.875000 3.000000 +v 1.000000 7.750000 3.125000 +v 1.176777 5.500000 3.051777 +v 1.000000 5.588388 3.088388 +v 1.000000 5.500000 3.125000 +v 1.000000 5.625000 3.000000 +v 1.025888 5.588388 2.900888 +v 1.000000 5.588388 2.911612 +v 1.000000 5.411612 2.911612 +v 1.088388 5.375000 2.963388 +v 1.000000 5.375000 3.000000 +v 1.000000 5.411612 3.088388 +v 1.088388 5.625000 2.963388 +v 1.213388 5.411612 2.875000 +v 1.150888 5.411612 3.025888 +v 1.213388 5.588388 2.875000 +v 1.150888 5.588388 3.025888 +v 1.125000 5.625000 2.875000 +v 1.025888 5.411612 2.900888 +v 1.125000 5.375000 2.875000 +v 1.000000 5.500000 2.875000 +v 1.036612 5.588388 2.875000 +v 1.036612 5.411612 2.875000 +v 1.213388 5.411612 0.125000 +v 1.250000 5.500000 2.875000 +v 1.213388 5.588388 0.125000 +v 1.036612 5.588388 0.125000 +v 1.036612 5.411612 0.125000 +v 1.125000 5.375000 0.125000 +v 1.000000 5.500000 0.125000 +v 1.250000 5.500000 0.125000 +v 1.125000 5.625000 0.125000 +v 1.088388 5.375000 0.036612 +v 1.176777 5.500000 -0.051777 +v 1.088388 5.625000 0.036612 +v 1.150888 5.411612 -0.025888 +v 1.150888 5.588388 -0.025888 +v 1.025888 5.588388 0.099112 +v 1.000000 5.375000 0.000000 +v 1.000000 5.411612 -0.088388 +v 1.000000 5.500000 -0.125000 +v 1.000000 5.588388 -0.088388 +v 1.000000 5.588388 0.088388 +v 1.025888 5.411612 0.099112 +v 1.000000 5.625000 0.000000 +v 1.000000 5.411612 0.088388 +v 0.625000 5.588388 -0.088388 +v 0.625000 5.588388 0.088388 +v 0.625000 5.411612 0.088388 +v 0.625000 5.375000 0.000000 +v 0.625000 5.500000 0.125000 +v 0.625000 5.500000 -0.125000 +v 0.625000 5.625000 0.000000 +v 0.625000 5.411612 -0.088388 +vt 0.692308 0.449438 +vt 0.666667 0.651685 +vt 0.666667 0.449438 +vt 0.769231 0.449438 +vt 0.743590 0.651685 +vt 0.743590 0.449438 +vt 0.717949 0.449438 +vt 0.692308 0.651685 +vt 0.717949 0.651685 +vt 0.461538 0.910112 +vt 0.487179 0.898876 +vt 0.487179 0.910112 +vt 0.358974 0.898876 +vt 0.384615 0.910112 +vt 0.358974 0.910112 +vt 0.384615 0.898876 +vt 0.410256 0.910112 +vt 0.410256 0.898876 +vt 0.435897 0.910112 +vt 0.461538 0.898876 +vt 0.461538 0.910112 +vt 0.487179 0.898876 +vt 0.461538 0.898876 +vt 0.384615 0.910112 +vt 0.358974 0.898876 +vt 0.358974 0.910112 +vt 0.410256 0.910112 +vt 0.384615 0.898876 +vt 0.435897 0.910112 +vt 0.410256 0.898876 +vt 0.435897 0.898876 +vt 0.769231 0.651685 +vt 0.435897 0.898876 +vt 0.487179 0.910112 +vt 0.705128 0.966292 +vt 0.698718 1.000000 +vt 0.698718 0.966292 +vt 0.685897 0.966292 +vt 0.679487 1.000000 +vt 0.679487 0.966292 +vt 0.692308 1.000000 +vt 0.692308 0.966292 +vt 0.673077 0.966292 +vt 0.666667 1.000000 +vt 0.666667 0.966292 +vt 0.711538 0.966292 +vt 0.705128 1.000000 +vt 0.717949 0.966292 +vt 0.711538 1.000000 +vt 0.673077 1.000000 +vt 0.685897 1.000000 +vt 0.711538 0.949438 +vt 0.717949 0.949438 +vt 0.711538 0.955056 +vt 0.711538 0.943820 +vt 0.673077 0.949438 +vt 0.673077 0.955056 +vt 0.666667 0.949438 +vt 0.673077 0.943820 +vt 0.685897 0.949438 +vt 0.679487 0.960674 +vt 0.679487 0.949438 +vt 0.698718 0.949438 +vt 0.692308 0.949438 +vt 0.705128 0.960674 +vt 0.705128 0.949438 +vt 0.685897 0.932584 +vt 0.698718 0.932584 +vt 0.679487 0.938202 +vt 0.692308 0.932584 +vt 0.705128 0.938202 +vt 0.685897 0.685393 +vt 0.679487 0.932584 +vt 0.679487 0.685393 +vt 0.698718 0.685393 +vt 0.692308 0.685393 +vt 0.673077 0.685393 +vt 0.666667 0.932584 +vt 0.666667 0.685393 +vt 0.711538 0.685393 +vt 0.705128 0.932584 +vt 0.705128 0.685393 +vt 0.717949 0.685393 +vt 0.711538 0.932584 +vt 0.673077 0.932584 +vt 0.711538 0.668539 +vt 0.717949 0.668539 +vt 0.711538 0.674157 +vt 0.711538 0.662921 +vt 0.673077 0.668539 +vt 0.673077 0.674157 +vt 0.666667 0.668539 +vt 0.673077 0.662921 +vt 0.679487 0.668539 +vt 0.685897 0.668539 +vt 0.692308 0.668539 +vt 0.698718 0.668539 +vt 0.705128 0.679775 +vt 0.705128 0.668539 +vt 0.679487 0.679775 +vt 0.698718 0.651685 +vt 0.705128 0.657303 +vt 0.685897 0.651685 +vt 0.679487 0.657303 +vt 0.692308 0.651685 +vt 0.692308 0.668539 +vt 0.685897 0.651685 +vt 0.692308 0.651685 +vt 0.679487 0.657303 +vt 0.673077 0.668539 +vt 0.673077 0.662921 +vt 0.711538 0.662921 +vt 0.705128 0.668539 +vt 0.705128 0.657303 +vt 0.698718 0.651685 +vt 0.679487 0.668539 +vt 0.698718 0.685393 +vt 0.698718 0.668539 +vt 0.685897 0.685393 +vt 0.685897 0.668539 +vt 0.679487 0.679775 +vt 0.711538 0.668539 +vt 0.705128 0.679775 +vt 0.666667 0.668539 +vt 0.673077 0.674157 +vt 0.717949 0.668539 +vt 0.711538 0.674157 +vt 0.705128 0.685393 +vt 0.698718 0.932584 +vt 0.692308 0.685393 +vt 0.685897 0.932584 +vt 0.679487 0.685393 +vt 0.673077 0.932584 +vt 0.673077 0.685393 +vt 0.717949 0.685393 +vt 0.711538 0.932584 +vt 0.711538 0.685393 +vt 0.705128 0.932584 +vt 0.666667 0.932584 +vt 0.666667 0.685393 +vt 0.692308 0.932584 +vt 0.679487 0.932584 +vt 0.711538 0.943820 +vt 0.705128 0.949438 +vt 0.705128 0.938202 +vt 0.692308 0.949438 +vt 0.679487 0.949438 +vt 0.679487 0.938202 +vt 0.698718 0.949438 +vt 0.685897 0.949438 +vt 0.673077 0.943820 +vt 0.673077 0.949438 +vt 0.705128 0.960674 +vt 0.698718 0.966292 +vt 0.692308 0.966292 +vt 0.685897 0.966292 +vt 0.673077 0.955056 +vt 0.711538 0.949438 +vt 0.679487 0.960674 +vt 0.666667 0.949438 +vt 0.717949 0.949438 +vt 0.711538 0.955056 +vt 0.685897 1.000000 +vt 0.679487 0.966292 +vt 0.673077 1.000000 +vt 0.673077 0.966292 +vt 0.717949 0.966292 +vt 0.711538 1.000000 +vt 0.711538 0.966292 +vt 0.705128 1.000000 +vt 0.705128 0.966292 +vt 0.666667 1.000000 +vt 0.666667 0.966292 +vt 0.692308 1.000000 +vt 0.679487 1.000000 +vt 0.698718 1.000000 +vt 0.717949 1.000000 +vt 0.717949 0.932584 +vt 0.717949 0.932584 +vt 0.717949 1.000000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0196 -0.9987 -0.0473 +vn 0.0000 -0.7071 -0.7071 +vn 0.1448 -0.6794 -0.7194 +vn 0.1448 0.6794 -0.7194 +vn 0.0196 0.9987 -0.0473 +vn 0.0000 -0.0000 -1.0000 +vn 0.1866 0.0000 -0.9824 +vn -0.1363 0.7263 0.6737 +vn 0.0000 0.0000 1.0000 +vn -0.7071 -0.0000 0.7071 +vn -0.1363 -0.7263 0.6737 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.4617 -0.7574 0.4617 +vn -0.6737 -0.7263 0.1363 +vn -0.4617 0.7574 0.4617 +vn -0.6737 0.7263 0.1363 +vn 0.5293 0.6630 -0.5294 +vn 0.0671 0.9955 -0.0671 +vn 0.5293 -0.6630 -0.5294 +vn 0.7071 0.0000 -0.7071 +vn 0.0671 -0.9955 -0.0671 +vn 0.7194 0.6794 -0.1448 +vn 0.7194 -0.6794 -0.1448 +vn 0.0473 0.9987 -0.0196 +vn 0.9824 -0.0000 -0.1866 +vn 0.0473 -0.9987 -0.0196 +vn 0.7194 0.6794 0.1448 +vn 0.0473 0.9987 0.0196 +vn 0.7194 -0.6794 0.1448 +vn 0.9824 -0.0000 0.1866 +vn -0.6737 0.7263 -0.1363 +vn -0.9809 -0.0000 -0.1944 +vn -0.6737 -0.7263 -0.1363 +vn 0.0473 -0.9987 0.0196 +vn -0.4617 -0.7574 -0.4617 +vn -0.2611 -0.7311 -0.6303 +vn -0.4617 0.7574 -0.4617 +vn -0.2611 0.7311 -0.6303 +vn 0.0671 0.9955 0.0671 +vn 0.5294 0.6630 0.5293 +vn 0.7071 0.0000 0.7071 +vn 0.5293 -0.6630 0.5294 +vn 0.0671 -0.9955 0.0671 +vn 0.2962 -0.6333 0.7150 +vn 0.0393 -0.9947 0.0948 +vn 0.2962 0.6333 0.7150 +vn 0.0393 0.9947 0.0948 +vn 0.3827 0.0000 0.9239 +vn 0.5293 -0.6630 0.5293 +vn 0.5293 0.6630 0.5294 +s off +f 1083/1771/181 1084/1772/181 1085/1773/181 +f 1085/1774/182 1086/1775/182 1087/1776/182 +f 1088/1777/183 1089/1778/183 1083/1771/183 +f 1087/1776/184 1090/1779/184 1088/1777/184 +f 1091/1780/182 1092/1781/182 1093/1782/182 +f 1094/1783/182 1095/1784/182 1096/1785/182 +f 1097/1786/182 1098/1787/182 1095/1784/182 +f 1099/1788/182 1100/1789/182 1098/1787/182 +f 1100/1789/182 1101/1790/182 1091/1780/182 +f 1102/1791/183 1103/1792/183 1104/1793/183 +f 1105/1794/183 1106/1795/183 1107/1796/183 +f 1108/1797/183 1109/1798/183 1105/1794/183 +f 1110/1799/183 1111/1800/183 1108/1797/183 +f 1110/1799/183 1104/1793/183 1112/1801/183 +f 1083/1771/181 1089/1778/181 1084/1772/181 +f 1085/1774/182 1084/1802/182 1086/1775/182 +f 1088/1777/183 1090/1779/183 1089/1778/183 +f 1087/1776/184 1086/1775/184 1090/1779/184 +f 1091/1780/182 1101/1790/182 1092/1781/182 +f 1094/1783/182 1097/1786/182 1095/1784/182 +f 1097/1786/182 1099/1788/182 1098/1787/182 +f 1099/1788/182 1113/1803/182 1100/1789/182 +f 1100/1789/182 1113/1803/182 1101/1790/182 +f 1102/1791/183 1114/1804/183 1103/1792/183 +f 1105/1794/183 1109/1798/183 1106/1795/183 +f 1108/1797/183 1111/1800/183 1109/1798/183 +f 1110/1799/183 1112/1801/183 1111/1800/183 +f 1110/1799/183 1102/1791/183 1104/1793/183 +s 1 +f 1115/1805/185 1116/1806/186 1117/1807/187 +f 1118/1808/188 1119/1809/184 1120/1810/189 +f 1117/1807/187 1121/1811/190 1122/1812/191 +f 1123/1813/192 1124/1814/193 1125/1815/194 +f 1126/1816/195 1127/1817/181 1115/1805/185 +f 1125/1818/194 1128/1819/196 1126/1816/195 +f 1120/1810/189 1129/1820/197 1123/1813/192 +f 1122/1812/191 1130/1821/198 1118/1808/188 +f 1131/1822/199 1125/1823/194 1126/1824/195 +f 1125/1823/194 1131/1822/199 1132/1825/200 +f 1133/1826/201 1123/1827/192 1125/1828/194 +f 1134/1829/202 1133/1826/201 1125/1828/194 +f 1135/1830/203 1120/1831/189 1136/1832/204 +f 1137/1833/205 1122/1812/191 1138/1834/206 +f 1131/1822/199 1115/1835/185 1139/1836/207 +f 1136/1832/204 1123/1827/192 1133/1826/201 +f 1135/1830/203 1122/1812/191 1118/1808/188 +f 1139/1836/207 1117/1807/187 1137/1833/205 +f 1134/1829/202 1136/1832/204 1133/1826/201 +f 1140/1837/208 1138/1834/206 1135/1830/203 +f 1141/1838/209 1139/1836/207 1137/1833/205 +f 1140/1837/208 1136/1832/204 1142/1839/210 +f 1141/1838/209 1138/1834/206 1143/1840/211 +f 1144/1841/212 1131/1822/199 1139/1836/207 +f 1145/1842/213 1142/1843/210 1146/1844/214 +f 1147/1845/215 1143/1840/211 1148/1846/216 +f 1149/1847/217 1125/1848/194 1150/1849/218 +f 1151/1850/219 1144/1851/212 1152/1852/220 +f 1150/1853/218 1132/1854/200 1151/1850/219 +f 1146/1844/214 1134/1855/202 1149/1847/217 +f 1148/1846/216 1140/1837/208 1145/1842/213 +f 1152/1852/220 1141/1838/209 1147/1845/215 +f 1153/1856/221 1150/1857/218 1151/1858/219 +f 1154/1859/222 1150/1857/218 1153/1856/221 +f 1155/1860/223 1149/1861/217 1150/1862/218 +f 1150/1862/218 1156/1863/224 1155/1860/223 +f 1145/1842/213 1157/1864/225 1158/1865/226 +f 1147/1845/215 1159/1866/227 1160/1867/228 +f 1153/1856/221 1152/1868/220 1161/1869/229 +f 1146/1870/214 1155/1860/223 1157/1864/225 +f 1159/1866/227 1145/1842/213 1158/1865/226 +f 1161/1869/229 1147/1845/215 1160/1867/228 +f 1161/1869/229 1162/1871/230 1163/1872/231 +f 1164/1873/232 1157/1864/225 1165/1874/233 +f 1162/1871/230 1159/1866/227 1166/1875/234 +f 1154/1859/222 1161/1869/229 1163/1872/231 +f 1165/1874/233 1155/1860/223 1156/1863/224 +f 1159/1866/227 1164/1873/232 1166/1875/234 +f 1167/1876/227 1168/1877/232 1169/1878/234 +f 1170/1879/233 1171/1880/223 1172/1881/224 +f 1173/1882/222 1174/1883/229 1175/1884/231 +f 1176/1885/230 1167/1876/227 1169/1878/234 +f 1168/1877/232 1177/1886/225 1170/1879/233 +f 1174/1883/229 1176/1885/230 1175/1884/231 +f 1174/1883/229 1178/1887/215 1179/1888/235 +f 1167/1876/227 1180/1889/213 1181/1890/236 +f 1182/1891/214 1171/1880/223 1177/1886/225 +f 1183/1892/221 1184/1893/220 1174/1883/229 +f 1178/1887/215 1167/1876/227 1179/1888/235 +f 1180/1889/213 1177/1886/225 1181/1890/236 +f 1185/1894/218 1172/1881/224 1171/1880/223 +f 1171/1880/223 1186/1895/217 1185/1894/218 +f 1173/1882/222 1185/1896/218 1183/1892/221 +f 1183/1892/221 1185/1896/218 1187/1897/219 +f 1184/1898/220 1188/1899/209 1178/1887/215 +f 1189/1900/216 1190/1901/208 1180/1889/213 +f 1182/1902/214 1191/1903/202 1186/1904/217 +f 1185/1905/218 1192/1906/200 1187/1907/219 +f 1187/1907/219 1193/1908/212 1184/1898/220 +f 1186/1904/217 1194/1909/194 1185/1910/218 +f 1178/1887/215 1195/1911/211 1189/1900/216 +f 1180/1889/213 1196/1912/210 1182/1902/214 +f 1192/1913/200 1197/1914/207 1193/1915/212 +f 1188/1899/209 1198/1916/206 1195/1911/211 +f 1190/1901/208 1199/1917/204 1196/1918/210 +f 1193/1915/212 1200/1919/205 1188/1899/209 +f 1190/1901/208 1198/1916/206 1201/1920/203 +f 1191/1921/202 1199/1917/204 1202/1922/201 +f 1200/1919/205 1203/1923/185 1204/1924/187 +f 1201/1920/203 1205/1925/191 1206/1926/188 +f 1199/1917/204 1207/1927/192 1202/1922/201 +f 1208/1928/199 1203/1923/185 1197/1914/207 +f 1200/1919/205 1205/1925/191 1198/1916/206 +f 1201/1920/203 1209/1929/189 1199/1917/204 +f 1191/1921/202 1202/1922/201 1194/1930/194 +f 1202/1922/201 1207/1927/192 1194/1930/194 +f 1194/1931/194 1208/1928/199 1192/1913/200 +f 1208/1928/199 1194/1931/194 1210/1932/195 +f 1205/1925/191 1211/1933/198 1206/1926/188 +f 1209/1934/189 1212/1935/197 1207/1936/192 +f 1194/1937/194 1213/1938/196 1210/1939/195 +f 1210/1939/195 1214/1940/181 1203/1941/185 +f 1207/1936/192 1215/1942/193 1194/1943/194 +f 1204/1924/187 1216/1944/190 1205/1925/191 +f 1206/1926/188 1217/1945/184 1209/1934/189 +f 1203/1941/185 1218/1946/186 1204/1924/187 +f 1115/1805/185 1127/1817/181 1116/1806/186 +f 1118/1808/188 1130/1821/198 1119/1809/184 +f 1117/1807/187 1116/1806/186 1121/1811/190 +f 1123/1813/192 1129/1820/197 1124/1814/193 +f 1126/1816/195 1128/1819/196 1127/1817/181 +f 1125/1818/194 1124/1947/193 1128/1819/196 +f 1120/1810/189 1119/1809/184 1129/1820/197 +f 1122/1812/191 1121/1811/190 1130/1821/198 +f 1135/1830/203 1118/1808/188 1120/1831/189 +f 1137/1833/205 1117/1807/187 1122/1812/191 +f 1131/1822/199 1126/1824/195 1115/1835/185 +f 1136/1832/204 1120/1831/189 1123/1827/192 +f 1135/1830/203 1138/1834/206 1122/1812/191 +f 1139/1836/207 1115/1835/185 1117/1807/187 +f 1134/1829/202 1142/1839/210 1136/1832/204 +f 1140/1837/208 1143/1840/211 1138/1834/206 +f 1141/1838/209 1144/1841/212 1139/1836/207 +f 1140/1837/208 1135/1830/203 1136/1832/204 +f 1141/1838/209 1137/1833/205 1138/1834/206 +f 1144/1841/212 1132/1825/200 1131/1822/199 +f 1145/1842/213 1140/1837/208 1142/1843/210 +f 1147/1845/215 1141/1838/209 1143/1840/211 +f 1149/1847/217 1134/1855/202 1125/1848/194 +f 1151/1850/219 1132/1854/200 1144/1851/212 +f 1150/1853/218 1125/1948/194 1132/1854/200 +f 1146/1844/214 1142/1843/210 1134/1855/202 +f 1148/1846/216 1143/1840/211 1140/1837/208 +f 1152/1852/220 1144/1851/212 1141/1838/209 +f 1145/1842/213 1146/1870/214 1157/1864/225 +f 1147/1845/215 1148/1846/216 1159/1866/227 +f 1153/1856/221 1151/1858/219 1152/1868/220 +f 1146/1870/214 1149/1861/217 1155/1860/223 +f 1159/1866/227 1148/1846/216 1145/1842/213 +f 1161/1869/229 1152/1868/220 1147/1845/215 +f 1161/1869/229 1160/1867/228 1162/1871/230 +f 1164/1873/232 1158/1865/226 1157/1864/225 +f 1162/1871/230 1160/1867/228 1159/1866/227 +f 1154/1859/222 1153/1856/221 1161/1869/229 +f 1165/1874/233 1157/1864/225 1155/1860/223 +f 1159/1866/227 1158/1865/226 1164/1873/232 +f 1167/1876/227 1181/1890/236 1168/1877/232 +f 1170/1879/233 1177/1886/225 1171/1880/223 +f 1173/1882/222 1183/1892/221 1174/1883/229 +f 1176/1885/230 1179/1888/235 1167/1876/227 +f 1168/1877/232 1181/1890/236 1177/1886/225 +f 1174/1883/229 1179/1888/235 1176/1885/230 +f 1174/1883/229 1184/1893/220 1178/1887/215 +f 1167/1876/227 1189/1900/216 1180/1889/213 +f 1182/1891/214 1186/1895/217 1171/1880/223 +f 1183/1892/221 1187/1897/219 1184/1893/220 +f 1178/1887/215 1189/1900/216 1167/1876/227 +f 1180/1889/213 1182/1891/214 1177/1886/225 +f 1184/1898/220 1193/1908/212 1188/1899/209 +f 1189/1900/216 1195/1911/211 1190/1901/208 +f 1182/1902/214 1196/1912/210 1191/1903/202 +f 1185/1905/218 1194/1949/194 1192/1906/200 +f 1187/1907/219 1192/1906/200 1193/1908/212 +f 1186/1904/217 1191/1903/202 1194/1909/194 +f 1178/1887/215 1188/1899/209 1195/1911/211 +f 1180/1889/213 1190/1901/208 1196/1912/210 +f 1192/1913/200 1208/1928/199 1197/1914/207 +f 1188/1899/209 1200/1919/205 1198/1916/206 +f 1190/1901/208 1201/1920/203 1199/1917/204 +f 1193/1915/212 1197/1914/207 1200/1919/205 +f 1190/1901/208 1195/1911/211 1198/1916/206 +f 1191/1921/202 1196/1918/210 1199/1917/204 +f 1200/1919/205 1197/1914/207 1203/1923/185 +f 1201/1920/203 1198/1916/206 1205/1925/191 +f 1199/1917/204 1209/1929/189 1207/1927/192 +f 1208/1928/199 1210/1932/195 1203/1923/185 +f 1200/1919/205 1204/1924/187 1205/1925/191 +f 1201/1920/203 1206/1926/188 1209/1929/189 +f 1205/1925/191 1216/1944/190 1211/1933/198 +f 1209/1934/189 1217/1945/184 1212/1935/197 +f 1194/1937/194 1215/1950/193 1213/1938/196 +f 1210/1939/195 1213/1938/196 1214/1940/181 +f 1207/1936/192 1212/1935/197 1215/1942/193 +f 1204/1924/187 1218/1946/186 1216/1944/190 +f 1206/1926/188 1211/1933/198 1217/1945/184 +f 1203/1941/185 1214/1940/181 1218/1946/186 +o Strong_Pad +v 0.500000 2.000000 0.500000 +v -2.500000 2.000000 2.500000 +v 2.500000 2.000000 2.500000 +v 0.500000 2.000000 -0.500000 +v 0.500000 1.500000 0.500000 +v -0.500000 2.000000 0.500000 +v -2.500000 2.000000 -2.500000 +v -0.500000 2.000000 -0.500000 +v 2.500000 2.000000 -2.500000 +v 0.500000 1.500000 2.500000 +v -2.500000 1.500000 0.500000 +v -0.500000 1.500000 -2.500000 +v 2.500000 1.500000 -0.500000 +v -0.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.500000 +v -0.500000 1.500000 0.500000 +v 2.500000 1.500000 0.500000 +v -0.500000 1.500000 2.500000 +v -2.500000 1.500000 -0.500000 +v 0.500000 1.500000 -2.500000 +v 1.500000 1.000000 1.500000 +v 2.500000 1.000000 1.500000 +v 1.500000 1.000000 -1.500000 +v 2.500000 1.000000 -1.500000 +v -1.500000 1.000000 -1.500000 +v -2.500000 1.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v -2.500000 1.000000 1.500000 +v -1.500000 1.000000 -3.500000 +v 1.500000 1.500000 -3.500000 +v 1.500000 1.000000 -3.500000 +v 1.500000 2.000000 -2.500000 +v -1.500000 2.000000 -3.000000 +v -1.500000 2.000000 -2.500000 +v 1.500000 2.000000 -3.000000 +v 1.500000 1.000000 -2.500000 +v -1.500000 1.000000 -2.500000 +v -1.500000 1.500000 -3.500000 +v 2.500000 1.250000 4.500000 +v 2.250000 2.000000 4.500000 +v 1.500000 1.750000 4.500000 +v 1.000000 11.000000 3.500000 +v -1.000000 11.000000 2.500000 +v -1.000000 11.000000 3.500000 +v 1.000000 1.000000 2.500000 +v 1.000000 1.000000 3.500000 +v -1.000000 1.000000 3.500000 +v -1.000000 1.000000 2.500000 +v 1.000000 11.000000 2.500000 +v 3.500000 1.250000 4.500000 +v 3.250000 2.000000 4.500000 +v 2.500000 1.750000 4.500000 +v 1.750000 2.000000 2.500000 +v 1.750000 2.000000 4.500000 +v 2.500000 1.250000 2.500000 +v 2.500000 1.750000 4.500000 +v 1.500000 1.250000 2.500000 +v 2.500000 1.750000 2.500000 +v 1.750000 1.000000 2.500000 +v 2.250000 1.000000 4.500000 +v 1.750000 1.000000 4.500000 +v 2.250000 1.000000 2.500000 +v 1.500000 1.750000 2.500000 +v 1.500000 1.250000 4.500000 +v 2.750000 2.000000 2.500000 +v 2.750000 2.000000 4.500000 +v 3.500000 1.250000 2.500000 +v 3.500000 1.750000 4.500000 +v 2.500000 1.250000 2.500000 +v 3.500000 1.750000 2.500000 +v 2.750000 1.000000 2.500000 +v 3.250000 1.000000 4.500000 +v 2.750000 1.000000 4.500000 +v 3.250000 1.000000 2.500000 +v 2.500000 1.750000 2.500000 +v 2.500000 1.250000 4.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 -0.500000 +v -0.500000 2.000000 -0.500000 +v -2.500000 1.250000 4.500000 +v -2.750000 2.000000 4.500000 +v -3.500000 1.750000 4.500000 +v -1.500000 1.250000 4.500000 +v -1.750000 2.000000 4.500000 +v -2.500000 1.750000 4.500000 +v -3.250000 2.000000 2.500000 +v -3.250000 2.000000 4.500000 +v -2.500000 1.250000 2.500000 +v -2.500000 1.750000 4.500000 +v -3.500000 1.250000 2.500000 +v -2.500000 1.750000 2.500000 +v -3.250000 1.000000 2.500000 +v -2.750000 1.000000 4.500000 +v -3.250000 1.000000 4.500000 +v -2.750000 1.000000 2.500000 +v -3.500000 1.750000 2.500000 +v -3.500000 1.250000 4.500000 +v -2.250000 2.000000 2.500000 +v -2.250000 2.000000 4.500000 +v -1.500000 1.250000 2.500000 +v -1.500000 1.750000 4.500000 +v -2.500000 1.250000 2.500000 +v -1.500000 1.750000 2.500000 +v -2.250000 1.000000 2.500000 +v -1.750000 1.000000 4.500000 +v -2.250000 1.000000 4.500000 +v -1.750000 1.000000 2.500000 +v -2.500000 1.750000 2.500000 +v -2.500000 1.250000 4.500000 +v 1.500000 1.000000 2.500000 +v 2.500000 1.000000 2.500000 +v -2.500000 1.000000 2.500000 +v -1.500000 1.000000 2.500000 +v -2.500000 1.000000 -2.500000 +v -1.500000 1.000000 -2.500000 +v 2.500000 1.000000 -2.500000 +v 1.500000 1.000000 -2.500000 +v 2.250000 2.000000 2.500000 +v 3.250000 2.000000 2.500000 +v 0.500000 2.000000 0.500000 +v -2.750000 2.000000 2.500000 +v -1.750000 2.000000 2.500000 +v 3.025888 2.150888 2.661612 +v 3.125000 2.000000 2.750000 +v 3.088388 2.000000 2.661612 +v 3.088388 2.000000 2.838388 +v 2.963388 2.088388 2.875000 +v 3.000000 2.000000 2.875000 +v 2.900888 2.025888 2.661612 +v 3.000000 2.000000 2.625000 +v 2.911612 2.000000 2.661612 +v 2.963388 2.088388 2.625000 +v 3.051777 2.176777 2.750000 +v 2.900888 2.025888 2.838388 +v 2.911612 2.000000 2.838388 +v 2.875000 2.213388 2.838388 +v 3.025888 2.150888 2.838388 +v 2.875000 2.036612 2.661612 +v 2.875000 2.125000 2.625000 +v 2.875000 2.250000 2.750000 +v 2.875000 2.036612 2.838388 +v 2.875000 2.000000 2.750000 +v 1.000000 2.125000 2.625000 +v 1.000000 2.036612 2.661612 +v 1.000000 2.213388 2.661612 +v 2.875000 2.213388 2.661612 +v 1.000000 2.000000 2.750000 +v 1.000000 2.213388 2.838388 +v 2.875000 2.125000 2.875000 +v 1.000000 2.036612 2.838388 +v 1.000000 2.250000 2.750000 +v 1.000000 2.125000 2.875000 +v 2.088388 2.000000 3.161612 +v 2.051777 2.176777 3.250000 +v 2.125000 2.000000 3.250000 +v 2.025888 2.150888 3.338388 +v 2.000000 2.000000 3.375000 +v 2.088388 2.000000 3.338388 +v 1.900888 2.025888 3.161612 +v 2.000000 2.000000 3.125000 +v 1.911612 2.000000 3.161612 +v 1.963388 2.088388 3.125000 +v 1.963388 2.088388 3.375000 +v 1.911612 2.000000 3.338388 +v 1.875000 2.125000 3.375000 +v 1.875000 2.036612 3.161612 +v 1.875000 2.213388 3.161612 +v 2.025888 2.150888 3.161612 +v 1.875000 2.250000 3.250000 +v 1.875000 2.036612 3.338388 +v 1.900888 2.025888 3.338388 +v 1.875000 2.000000 3.250000 +v 1.000000 2.125000 3.125000 +v 1.875000 2.125000 3.125000 +v 1.000000 2.036612 3.161612 +v 1.000000 2.213388 3.161612 +v 1.000000 2.000000 3.250000 +v 1.000000 2.213388 3.338388 +v 1.875000 2.213388 3.338388 +v 1.000000 2.036612 3.338388 +v 1.000000 2.250000 3.250000 +v 1.000000 2.125000 3.375000 +v -3.088388 2.000000 3.338389 +v -3.051777 2.176777 3.250000 +v -3.125000 2.000000 3.250000 +v -3.088388 2.000000 3.161612 +v -2.963388 2.088388 3.125000 +v -3.000000 2.000000 3.125000 +v -2.900888 2.025888 3.338389 +v -3.000000 2.000000 3.375000 +v -2.911612 2.000000 3.338389 +v -2.963388 2.088388 3.375000 +v -3.025888 2.150888 3.161612 +v -2.900888 2.025888 3.161612 +v -2.911612 2.000000 3.161612 +v -2.875000 2.125000 3.125000 +v -2.875000 2.036612 3.338389 +v -2.875000 2.125000 3.375000 +v -3.025888 2.150888 3.338389 +v -2.875000 2.250000 3.250000 +v -2.875000 2.036612 3.161612 +v -2.875000 2.000000 3.250000 +v -1.000000 2.125000 3.375000 +v -1.000000 2.036612 3.338388 +v -1.000000 2.213388 3.338388 +v -2.875000 2.213388 3.338389 +v -1.000000 2.000000 3.250000 +v -1.000000 2.213388 3.161612 +v -2.875000 2.213388 3.161612 +v -1.000000 2.036612 3.161612 +v -1.000000 2.250000 3.250000 +v -1.000000 2.125000 3.125000 +v -2.088388 2.000000 2.838389 +v -2.051777 2.176777 2.750000 +v -2.125000 2.000000 2.750000 +v -2.025888 2.150888 2.661612 +v -2.000000 2.000000 2.625000 +v -2.088388 2.000000 2.661612 +v -1.900888 2.025888 2.838389 +v -2.000000 2.000000 2.875000 +v -1.911612 2.000000 2.838389 +v -1.963388 2.088388 2.875000 +v -1.900888 2.025888 2.661612 +v -1.911612 2.000000 2.661612 +v -1.875000 2.213388 2.661612 +v -1.963388 2.088388 2.625000 +v -1.875000 2.125000 2.875000 +v -2.025888 2.150888 2.838389 +v -1.875000 2.250000 2.750000 +v -1.875000 2.036612 2.661612 +v -1.875000 2.213388 2.838389 +v -1.875000 2.000000 2.750000 +v -1.875000 2.036612 2.838389 +v -1.000000 2.125000 2.875000 +v -1.000000 2.036612 2.838388 +v -1.000000 2.213388 2.838388 +v -1.000000 2.000000 2.750000 +v -1.000000 2.213388 2.661612 +v -1.875000 2.125000 2.625000 +v -1.000000 2.036612 2.661612 +v -1.000000 2.250000 2.750000 +v -1.000000 2.125000 2.625000 +vt 0.102564 0.719101 +vt -0.000000 0.988764 +vt -0.000000 0.539326 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.808989 +vt 0.256410 0.988764 +vt 0.153846 0.808989 +vt 0.256410 0.539326 +vt 0.153846 0.719101 +vt 0.256410 0.539326 +vt -0.000000 0.539326 +vt 0.153846 0.494382 +vt 0.256410 0.539326 +vt -0.000000 0.539326 +vt 0.153846 0.494382 +vt 0.256410 0.539326 +vt -0.000000 0.539326 +vt 0.153846 0.494382 +vt 0.153846 0.494382 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.269663 +vt 0.153846 0.224719 +vt 0.153846 0.269663 +vt 0.102564 0.449438 +vt 0.153846 0.269663 +vt 0.153846 0.449438 +vt -0.000000 0.179775 +vt 0.102564 0.269663 +vt -0.000000 0.269663 +vt 0.153846 0.000000 +vt 0.102564 0.179775 +vt 0.102564 -0.000000 +vt 0.256410 0.269663 +vt 0.153846 0.179775 +vt 0.256410 0.179775 +vt 0.051282 0.359551 +vt 0.051282 0.449438 +vt 0.205128 0.359551 +vt 0.205128 0.449438 +vt 0.205128 0.089888 +vt 0.205128 0.000000 +vt 0.051282 0.089888 +vt 0.051282 -0.000000 +vt 0.794872 0.359551 +vt 0.769231 0.089888 +vt 0.794872 0.089888 +vt 0.717949 0.089888 +vt 0.743590 0.359551 +vt 0.717949 0.359551 +vt 0.743590 0.089888 +vt 0.717949 -0.000000 +vt 0.769231 0.044944 +vt 0.666667 0.089888 +vt 0.666667 0.359551 +vt 0.769231 0.359551 +vt 0.717949 0.449438 +vt 0.769231 0.404494 +vt 0.615385 0.651685 +vt 0.602564 0.719101 +vt 0.564103 0.696629 +vt 0.358974 0.898876 +vt 0.256410 0.988764 +vt 0.256410 0.898876 +vt 0.410256 -0.000000 +vt 0.358974 -0.000000 +vt 0.564103 -0.000000 +vt 0.512821 0.898876 +vt 0.512821 -0.000000 +vt 0.410256 0.898876 +vt 0.256410 -0.000000 +vt 0.615385 0.292135 +vt 0.602564 0.359551 +vt 0.564103 0.337079 +vt 0.564103 0.449438 +vt 0.666667 0.494382 +vt 0.564103 0.494382 +vt 0.666667 0.382022 +vt 0.564103 0.426966 +vt 0.564103 0.382022 +vt 0.666667 0.651685 +vt 0.653846 0.719101 +vt 0.615385 0.696629 +vt 0.666667 0.584270 +vt 0.564103 0.629214 +vt 0.564103 0.584270 +vt 0.666667 0.561798 +vt 0.666667 0.359551 +vt 0.564103 0.359551 +vt 0.564103 0.516854 +vt 0.666667 0.516854 +vt 0.666667 0.426966 +vt 0.564103 0.561798 +vt 0.564103 0.089888 +vt 0.666667 0.134831 +vt 0.564103 0.134831 +vt 0.666667 0.022472 +vt 0.564103 0.067416 +vt 0.564103 0.022472 +vt 0.666667 0.292135 +vt 0.653846 0.359551 +vt 0.615385 0.337079 +vt 0.666667 0.224719 +vt 0.564103 0.269663 +vt 0.564103 0.224719 +vt 0.666667 0.202247 +vt 0.666667 0.000000 +vt 0.564103 -0.000000 +vt 0.564103 0.157303 +vt 0.666667 0.157303 +vt 0.666667 0.067416 +vt 0.564103 0.202247 +vt 0.102564 0.808989 +vt 0.153846 0.719101 +vt 0.153846 0.808989 +vt 0.615385 0.651685 +vt 0.602564 0.719101 +vt 0.564103 0.696629 +vt 0.615385 0.292135 +vt 0.602564 0.359551 +vt 0.564103 0.337079 +vt 0.564103 0.449438 +vt 0.666667 0.494382 +vt 0.564103 0.494382 +vt 0.666667 0.382022 +vt 0.564103 0.426966 +vt 0.564103 0.382022 +vt 0.666667 0.651685 +vt 0.653846 0.719101 +vt 0.615385 0.696629 +vt 0.666667 0.584270 +vt 0.564103 0.629214 +vt 0.564103 0.584270 +vt 0.666667 0.561798 +vt 0.666667 0.359551 +vt 0.564103 0.359551 +vt 0.564103 0.516854 +vt 0.666667 0.516854 +vt 0.666667 0.426966 +vt 0.564103 0.561798 +vt 0.564103 0.089888 +vt 0.666667 0.134831 +vt 0.564103 0.134831 +vt 0.666667 0.022472 +vt 0.564103 0.067416 +vt 0.564103 0.022472 +vt 0.666667 0.292135 +vt 0.653846 0.359551 +vt 0.615385 0.337079 +vt 0.666667 0.224719 +vt 0.564103 0.269663 +vt 0.564103 0.224719 +vt 0.666667 0.202247 +vt 0.666667 0.000000 +vt 0.564103 -0.000000 +vt 0.564103 0.157303 +vt 0.666667 0.157303 +vt 0.666667 0.067416 +vt 0.564103 0.202247 +vt 0.102564 0.224719 +vt 0.205128 0.449438 +vt 0.256410 0.449438 +vt 0.000000 0.449438 +vt 0.051282 0.449438 +vt 0.102564 0.494382 +vt 0.205128 0.449438 +vt 0.256410 0.449438 +vt -0.000000 0.449438 +vt 0.051282 0.449438 +vt 0.102564 0.494382 +vt 0.205128 0.449438 +vt 0.256410 0.449438 +vt 0.000000 0.449438 +vt 0.051282 0.449438 +vt 0.102564 0.494382 +vt 0.256410 0.449438 +vt -0.000000 0.449438 +vt 0.102564 0.494382 +vt 0.102564 0.224719 +vt 0.102564 0.224719 +vt 0.102564 0.224719 +vt -0.000000 0.359551 +vt 0.256410 0.359551 +vt 0.256410 0.089888 +vt -0.000000 0.089888 +vt 0.769231 -0.000000 +vt 0.769231 0.449438 +vt 0.564103 0.651685 +vt 0.576923 0.629214 +vt 0.602564 0.629214 +vt 0.615385 0.696629 +vt 0.576923 0.719101 +vt 0.358974 0.988764 +vt 0.564103 0.898876 +vt 0.564103 0.292135 +vt 0.576923 0.269663 +vt 0.602564 0.269663 +vt 0.615385 0.337079 +vt 0.576923 0.359551 +vt 0.666667 0.449438 +vt 0.615385 0.651685 +vt 0.628205 0.629214 +vt 0.653846 0.629214 +vt 0.666667 0.696629 +vt 0.628205 0.719101 +vt 0.666667 0.629214 +vt 0.666667 0.089888 +vt 0.615385 0.292135 +vt 0.628205 0.269663 +vt 0.653846 0.269663 +vt 0.666667 0.337079 +vt 0.628205 0.359551 +vt 0.666667 0.269663 +vt 0.102564 0.719101 +vt 0.564103 0.651685 +vt 0.576923 0.629214 +vt 0.602564 0.629214 +vt 0.615385 0.696629 +vt 0.576923 0.719101 +vt 0.564103 0.292135 +vt 0.576923 0.269663 +vt 0.602564 0.269663 +vt 0.615385 0.337079 +vt 0.576923 0.359551 +vt 0.666667 0.449438 +vt 0.615385 0.651685 +vt 0.628205 0.629214 +vt 0.653846 0.629214 +vt 0.666667 0.696629 +vt 0.628205 0.719101 +vt 0.666667 0.629214 +vt 0.666667 0.089888 +vt 0.615385 0.292135 +vt 0.628205 0.269663 +vt 0.653846 0.269663 +vt 0.666667 0.337079 +vt 0.628205 0.359551 +vt 0.666667 0.269663 +vt 0.634615 0.904494 +vt 0.641026 0.921348 +vt 0.634615 0.921348 +vt 0.647436 0.921348 +vt 0.653846 0.904494 +vt 0.653846 0.915730 +vt 0.621795 0.904494 +vt 0.628205 0.915730 +vt 0.621795 0.910112 +vt 0.628205 0.904494 +vt 0.641026 0.904494 +vt 0.660256 0.904494 +vt 0.660256 0.910112 +vt 0.647436 0.887640 +vt 0.647436 0.904494 +vt 0.621795 0.898876 +vt 0.628205 0.893258 +vt 0.641026 0.887640 +vt 0.660256 0.898876 +vt 0.666667 0.904494 +vt 0.615385 0.904494 +vt 0.621795 0.887640 +vt 0.628205 0.719101 +vt 0.628205 0.887640 +vt 0.615385 0.887640 +vt 0.621795 0.719101 +vt 0.634615 0.719101 +vt 0.634615 0.887640 +vt 0.660256 0.887640 +vt 0.666667 0.719101 +vt 0.666667 0.887640 +vt 0.647436 0.719101 +vt 0.653846 0.887640 +vt 0.660256 0.719101 +vt 0.641026 0.719101 +vt 0.653846 0.719101 +vt 0.583333 0.831461 +vt 0.589744 0.814607 +vt 0.589744 0.831461 +vt 0.596154 0.814607 +vt 0.602564 0.825843 +vt 0.596154 0.831461 +vt 0.570513 0.814607 +vt 0.576923 0.825843 +vt 0.570513 0.820225 +vt 0.576923 0.814607 +vt 0.602564 0.814607 +vt 0.608974 0.820225 +vt 0.602564 0.803371 +vt 0.570513 0.808989 +vt 0.583333 0.797753 +vt 0.583333 0.814607 +vt 0.589744 0.797753 +vt 0.608974 0.808989 +vt 0.608974 0.814607 +vt 0.615385 0.814607 +vt 0.564103 0.814607 +vt 0.570513 0.797753 +vt 0.576923 0.719101 +vt 0.576923 0.797753 +vt 0.564103 0.797753 +vt 0.570513 0.719101 +vt 0.583333 0.719101 +vt 0.608974 0.797753 +vt 0.615385 0.719101 +vt 0.615385 0.797753 +vt 0.596154 0.719101 +vt 0.596154 0.797753 +vt 0.602564 0.797753 +vt 0.608974 0.719101 +vt 0.589744 0.719101 +vt 0.602564 0.719101 +vt 0.634615 0.921348 +vt 0.641026 0.904494 +vt 0.641026 0.921348 +vt 0.647436 0.921348 +vt 0.653846 0.904494 +vt 0.653846 0.915730 +vt 0.621795 0.904494 +vt 0.628205 0.915730 +vt 0.621795 0.910112 +vt 0.628205 0.904494 +vt 0.647436 0.904494 +vt 0.660256 0.904494 +vt 0.660256 0.910112 +vt 0.653846 0.893258 +vt 0.621795 0.898876 +vt 0.628205 0.893258 +vt 0.634615 0.904494 +vt 0.641026 0.887640 +vt 0.660256 0.898876 +vt 0.666667 0.904494 +vt 0.615385 0.904494 +vt 0.621795 0.887640 +vt 0.628205 0.719101 +vt 0.628205 0.887640 +vt 0.615385 0.887640 +vt 0.621795 0.719101 +vt 0.634615 0.719101 +vt 0.634615 0.887640 +vt 0.660256 0.887640 +vt 0.666667 0.719101 +vt 0.666667 0.887640 +vt 0.647436 0.719101 +vt 0.647436 0.887640 +vt 0.653846 0.887640 +vt 0.660256 0.719101 +vt 0.641026 0.719101 +vt 0.653846 0.719101 +vt 0.583333 0.831461 +vt 0.589744 0.814607 +vt 0.589744 0.831461 +vt 0.596154 0.814607 +vt 0.602564 0.825843 +vt 0.596154 0.831461 +vt 0.570513 0.814607 +vt 0.576923 0.825843 +vt 0.570513 0.820225 +vt 0.576923 0.814607 +vt 0.608974 0.814607 +vt 0.608974 0.820225 +vt 0.596154 0.797753 +vt 0.602564 0.814607 +vt 0.576923 0.803371 +vt 0.583333 0.814607 +vt 0.589744 0.797753 +vt 0.608974 0.808989 +vt 0.583333 0.797753 +vt 0.615385 0.814607 +vt 0.564103 0.814607 +vt 0.570513 0.808989 +vt 0.570513 0.797753 +vt 0.576923 0.719101 +vt 0.576923 0.797753 +vt 0.564103 0.797753 +vt 0.570513 0.719101 +vt 0.583333 0.719101 +vt 0.608974 0.797753 +vt 0.615385 0.719101 +vt 0.615385 0.797753 +vt 0.596154 0.719101 +vt 0.602564 0.797753 +vt 0.608974 0.719101 +vt 0.589744 0.719101 +vt 0.602564 0.719101 +vt 0.653846 0.893258 +vt 0.615385 0.719101 +vt 0.576923 0.803371 +vt 0.564103 0.719101 +vt 0.615385 0.719101 +vt 0.602564 0.803371 +vt 0.564103 0.719101 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.4472 -0.8944 -0.0000 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn 0.4472 -0.8944 -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.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.5294 0.5294 -0.6630 +vn 0.9239 0.3827 -0.0000 +vn 0.7150 0.2962 -0.6333 +vn 0.7150 0.2962 0.6333 +vn 0.0671 0.0671 0.9955 +vn 0.0948 0.0393 0.9947 +vn -0.4617 -0.4617 -0.7574 +vn 0.0948 0.0393 -0.9947 +vn -0.6303 -0.2611 -0.7311 +vn 0.0671 0.0671 -0.9955 +vn -0.4617 -0.4617 0.7574 +vn -0.6303 -0.2611 0.7311 +vn 0.1448 0.7194 0.6794 +vn 0.5293 0.5293 0.6630 +vn -0.1363 -0.6737 -0.7263 +vn 0.0196 0.0473 -0.9987 +vn 0.1866 0.9824 0.0000 +vn -0.1363 -0.6737 0.7263 +vn -0.1944 -0.9809 -0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.1448 0.7194 -0.6794 +vn 0.0000 0.7071 0.7071 +vn 0.0196 0.0473 0.9987 +vn 0.0000 -0.7071 0.7071 +vn 0.5293 0.5293 -0.6630 +vn -0.7150 0.2962 0.6333 +vn -0.9239 0.3827 -0.0000 +vn -0.7150 0.2962 -0.6333 +vn -0.0671 0.0671 -0.9955 +vn -0.0948 0.0393 -0.9947 +vn 0.4617 -0.4617 0.7574 +vn -0.0948 0.0393 0.9947 +vn 0.6303 -0.2611 0.7311 +vn -0.0671 0.0671 0.9955 +vn -0.5294 0.5293 -0.6630 +vn 0.4617 -0.4617 -0.7574 +vn 0.6303 -0.2611 -0.7311 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.5293 0.5293 0.6630 +vn -0.1866 0.9824 -0.0000 +vn 0.1363 -0.6737 -0.7263 +vn 0.1944 -0.9809 -0.0000 +vn -0.1448 0.7194 0.6794 +vn -0.1448 0.7194 -0.6794 +vn -0.5293 0.5294 -0.6630 +s off +f 1219/1951/237 1220/1952/237 1221/1953/237 +f 1222/1954/238 1223/1955/238 1219/1956/238 +f 1224/1957/237 1225/1958/237 1220/1952/237 +f 1226/1959/237 1227/1960/237 1225/1958/237 +f 1222/1961/237 1221/1953/237 1227/1960/237 +f 1221/1962/239 1220/1963/239 1228/1964/239 +f 1220/1965/238 1225/1966/238 1229/1967/238 +f 1225/1968/240 1227/1969/240 1230/1970/240 +f 1227/1960/241 1221/1953/241 1231/1971/241 +f 1224/1972/241 1232/1973/241 1226/1974/241 +f 1226/1975/239 1233/1976/239 1222/1977/239 +f 1219/1978/240 1234/1979/240 1224/1980/240 +f 1235/1981/242 1233/1982/242 1231/1983/242 +f 1236/1984/242 1223/1985/242 1228/1986/242 +f 1237/1987/242 1234/1988/242 1229/1989/242 +f 1238/1990/242 1232/1991/242 1230/1992/242 +f 1239/1993/243 1228/1986/243 1223/1985/243 +f 1239/1993/244 1235/1981/244 1240/1994/244 +f 1231/1983/245 1241/1995/245 1242/1996/245 +f 1238/1990/243 1241/1995/243 1233/1982/243 +f 1243/1997/246 1230/1992/246 1232/1991/246 +f 1243/1997/245 1237/1987/245 1244/1998/245 +f 1229/1989/244 1245/1999/244 1246/2000/244 +f 1236/1984/246 1245/1999/246 1234/1988/246 +f 1247/2001/240 1248/2002/240 1249/2003/240 +f 1250/2004/237 1251/2005/237 1252/2006/237 +f 1253/2007/241 1254/2008/241 1248/2009/241 +f 1254/2010/239 1252/2006/239 1255/2011/239 +f 1256/2012/247 1253/2007/247 1248/2002/247 +f 1255/2013/238 1251/2005/238 1256/2014/238 +f 1257/2015/239 1258/2016/239 1259/2017/239 +f 1260/2018/237 1261/2019/237 1262/2020/237 +f 1263/2021/241 1260/2018/241 1264/2022/241 +f 1265/2023/238 1261/2024/238 1266/2025/238 +f 1266/2025/240 1267/2026/240 1263/2021/240 +f 1264/2022/239 1262/2020/239 1265/2027/239 +f 1268/2028/239 1269/2029/239 1270/2030/239 +f 1258/2031/237 1271/2032/237 1272/2033/237 +f 1273/2034/241 1274/2035/241 1257/2036/241 +f 1275/2037/240 1271/2038/240 1276/2039/240 +f 1277/2040/242 1278/2041/242 1279/2042/242 +f 1279/2042/248 1275/2043/248 1277/2040/248 +f 1280/2044/249 1257/2036/249 1278/2045/249 +f 1259/2046/250 1271/2032/250 1281/2047/250 +f 1276/2048/251 1258/2031/251 1274/2035/251 +f 1282/2049/238 1281/2047/238 1275/2043/238 +f 1269/2050/237 1283/2051/237 1284/2052/237 +f 1285/2053/241 1286/2054/241 1268/2055/241 +f 1287/2056/240 1283/2057/240 1288/2058/240 +f 1289/2059/242 1290/2060/242 1291/2061/242 +f 1291/2061/248 1287/2062/248 1289/2059/248 +f 1292/2063/249 1268/2055/249 1290/2064/249 +f 1270/2065/250 1283/2051/250 1293/2066/250 +f 1288/2067/251 1269/2050/251 1286/2054/251 +f 1294/2068/238 1293/2066/238 1287/2062/238 +f 1295/2069/237 1296/2070/237 1297/2071/237 +f 1298/2072/239 1299/2073/239 1300/2074/239 +f 1301/2075/239 1302/2076/239 1303/2077/239 +f 1299/2078/237 1304/2079/237 1305/2080/237 +f 1306/2081/241 1307/2082/241 1298/2083/241 +f 1308/2084/240 1304/2085/240 1309/2086/240 +f 1310/2087/242 1311/2088/242 1312/2089/242 +f 1312/2089/248 1308/2090/248 1310/2087/248 +f 1313/2091/249 1298/2083/249 1311/2092/249 +f 1300/2093/250 1304/2079/250 1314/2094/250 +f 1309/2095/251 1299/2078/251 1307/2082/251 +f 1315/2096/238 1314/2094/238 1308/2090/238 +f 1302/2097/237 1316/2098/237 1317/2099/237 +f 1318/2100/241 1319/2101/241 1301/2102/241 +f 1320/2103/240 1316/2104/240 1321/2105/240 +f 1322/2106/242 1323/2107/242 1324/2108/242 +f 1324/2108/248 1320/2109/248 1322/2106/248 +f 1325/2110/249 1301/2102/249 1323/2111/249 +f 1303/2112/250 1316/2098/250 1326/2113/250 +f 1321/2114/251 1302/2097/251 1319/2101/251 +f 1327/2115/238 1326/2113/238 1320/2109/238 +f 1219/1951/237 1224/1957/237 1220/1952/237 +f 1222/1954/238 1233/2116/238 1223/1955/238 +f 1224/1957/237 1226/1959/237 1225/1958/237 +f 1226/1959/237 1222/1961/237 1227/1960/237 +f 1222/1961/237 1219/1951/237 1221/1953/237 +f 1328/2117/239 1329/2118/239 1221/1962/239 +f 1220/1963/239 1330/2119/239 1331/2120/239 +f 1220/1963/239 1331/2120/239 1236/2121/239 +f 1228/1964/239 1328/2117/239 1221/1962/239 +f 1220/1963/239 1236/2121/239 1228/1964/239 +f 1246/2122/238 1330/2123/238 1220/1965/238 +f 1225/1966/238 1332/2124/238 1244/2125/238 +f 1225/1966/238 1244/2125/238 1237/2126/238 +f 1229/1967/238 1246/2122/238 1220/1965/238 +f 1225/1966/238 1237/2126/238 1229/1967/238 +f 1333/2127/240 1332/2128/240 1225/1968/240 +f 1227/1969/240 1334/2129/240 1335/2130/240 +f 1227/1969/240 1335/2130/240 1238/2131/240 +f 1230/1970/240 1333/2127/240 1225/1968/240 +f 1227/1969/240 1238/2131/240 1230/1970/240 +f 1242/1996/241 1334/2132/241 1227/1960/241 +f 1221/1953/241 1329/2133/241 1240/1994/241 +f 1221/1953/241 1240/1994/241 1235/2134/241 +f 1231/1971/241 1242/1996/241 1227/1960/241 +f 1221/1953/241 1235/2134/241 1231/1971/241 +f 1224/1972/241 1234/2135/241 1232/1973/241 +f 1226/1975/239 1232/2136/239 1233/1976/239 +f 1219/1978/240 1223/2137/240 1234/1979/240 +f 1235/1981/242 1223/1985/242 1233/1982/242 +f 1236/1984/242 1234/1988/242 1223/1985/242 +f 1237/1987/242 1232/1991/242 1234/1988/242 +f 1238/1990/242 1233/1982/242 1232/1991/242 +f 1239/1993/243 1328/2138/243 1228/1986/243 +f 1239/1993/244 1223/1985/244 1235/1981/244 +f 1231/1983/245 1233/1982/245 1241/1995/245 +f 1238/1990/243 1335/2139/243 1241/1995/243 +f 1243/1997/246 1333/2140/246 1230/1992/246 +f 1243/1997/245 1232/1991/245 1237/1987/245 +f 1229/1989/244 1234/1988/244 1245/1999/244 +f 1236/1984/246 1331/2141/246 1245/1999/246 +f 1247/2001/240 1256/2012/240 1248/2002/240 +f 1250/2004/237 1253/2007/237 1251/2005/237 +f 1250/2004/241 1254/2008/241 1253/2007/241 +f 1254/2008/241 1249/2142/241 1248/2009/241 +f 1254/2010/239 1250/2004/239 1252/2006/239 +f 1256/2012/247 1251/2005/247 1253/2007/247 +f 1256/2014/238 1247/2143/238 1255/2013/238 +f 1255/2013/238 1252/2006/238 1251/2005/238 +f 1259/2017/239 1282/2144/239 1279/2145/239 +f 1279/2145/239 1278/2146/239 1257/2015/239 +f 1257/2015/239 1274/2147/239 1258/2016/239 +f 1258/2016/239 1272/2148/239 1259/2017/239 +f 1259/2017/239 1279/2145/239 1257/2015/239 +f 1260/2018/237 1267/2149/237 1261/2019/237 +f 1263/2021/241 1267/2026/241 1260/2018/241 +f 1265/2023/238 1262/2150/238 1261/2024/238 +f 1266/2025/240 1261/2024/240 1267/2026/240 +f 1264/2022/239 1260/2018/239 1262/2020/239 +f 1270/2030/239 1294/2151/239 1291/2152/239 +f 1291/2152/239 1290/2153/239 1268/2028/239 +f 1268/2028/239 1286/2154/239 1269/2029/239 +f 1269/2029/239 1284/2155/239 1270/2030/239 +f 1270/2030/239 1291/2152/239 1268/2028/239 +f 1258/2031/237 1336/2156/237 1271/2032/237 +f 1273/2034/241 1276/2048/241 1274/2035/241 +f 1276/2039/240 1273/2157/240 1280/2158/240 +f 1280/2158/240 1277/2159/240 1275/2037/240 +f 1275/2037/240 1281/2160/240 1271/2038/240 +f 1271/2038/240 1336/2161/240 1276/2039/240 +f 1276/2039/240 1280/2158/240 1275/2037/240 +f 1277/2040/242 1280/2162/242 1278/2041/242 +f 1279/2042/248 1282/2049/248 1275/2043/248 +f 1280/2044/249 1273/2034/249 1257/2036/249 +f 1259/2046/250 1272/2033/250 1271/2032/250 +f 1276/2048/251 1336/2156/251 1258/2031/251 +f 1282/2049/238 1259/2046/238 1281/2047/238 +f 1269/2050/237 1337/2163/237 1283/2051/237 +f 1285/2053/241 1288/2067/241 1286/2054/241 +f 1288/2058/240 1285/2164/240 1292/2165/240 +f 1292/2165/240 1289/2166/240 1287/2056/240 +f 1287/2056/240 1293/2167/240 1283/2057/240 +f 1283/2057/240 1337/2168/240 1288/2058/240 +f 1288/2058/240 1292/2165/240 1287/2056/240 +f 1289/2059/242 1292/2169/242 1290/2060/242 +f 1291/2061/248 1294/2068/248 1287/2062/248 +f 1292/2063/249 1285/2053/249 1268/2055/249 +f 1270/2065/250 1284/2052/250 1283/2051/250 +f 1288/2067/251 1337/2163/251 1269/2050/251 +f 1294/2068/238 1270/2065/238 1293/2066/238 +f 1295/2069/237 1338/2170/237 1296/2070/237 +f 1300/2074/239 1315/2171/239 1312/2172/239 +f 1312/2172/239 1311/2173/239 1298/2072/239 +f 1298/2072/239 1307/2174/239 1299/2073/239 +f 1299/2073/239 1305/2175/239 1300/2074/239 +f 1300/2074/239 1312/2172/239 1298/2072/239 +f 1303/2077/239 1327/2176/239 1324/2177/239 +f 1324/2177/239 1323/2178/239 1301/2075/239 +f 1301/2075/239 1319/2179/239 1302/2076/239 +f 1302/2076/239 1317/2180/239 1303/2077/239 +f 1303/2077/239 1324/2177/239 1301/2075/239 +f 1299/2078/237 1339/2181/237 1304/2079/237 +f 1306/2081/241 1309/2095/241 1307/2082/241 +f 1309/2086/240 1306/2182/240 1313/2183/240 +f 1313/2183/240 1310/2184/240 1308/2084/240 +f 1308/2084/240 1314/2185/240 1304/2085/240 +f 1304/2085/240 1339/2186/240 1309/2086/240 +f 1309/2086/240 1313/2183/240 1308/2084/240 +f 1310/2087/242 1313/2187/242 1311/2088/242 +f 1312/2089/248 1315/2096/248 1308/2090/248 +f 1313/2091/249 1306/2081/249 1298/2083/249 +f 1300/2093/250 1305/2080/250 1304/2079/250 +f 1309/2095/251 1339/2181/251 1299/2078/251 +f 1315/2096/238 1300/2093/238 1314/2094/238 +f 1302/2097/237 1340/2188/237 1316/2098/237 +f 1318/2100/241 1321/2114/241 1319/2101/241 +f 1321/2105/240 1318/2189/240 1325/2190/240 +f 1325/2190/240 1322/2191/240 1320/2103/240 +f 1320/2103/240 1326/2192/240 1316/2104/240 +f 1316/2104/240 1340/2193/240 1321/2105/240 +f 1321/2105/240 1325/2190/240 1320/2103/240 +f 1322/2106/242 1325/2194/242 1323/2107/242 +f 1324/2108/248 1327/2115/248 1320/2109/248 +f 1325/2110/249 1318/2100/249 1301/2102/249 +f 1303/2112/250 1317/2099/250 1316/2098/250 +f 1321/2114/251 1340/2188/251 1302/2097/251 +f 1327/2115/238 1303/2112/238 1326/2113/238 +s 1 +f 1341/2195/252 1342/2196/253 1343/2197/254 +f 1344/2198/255 1345/2199/256 1346/2200/257 +f 1347/2201/258 1348/2202/259 1349/2203/260 +f 1350/2204/261 1343/2197/254 1348/2202/259 +f 1351/2205/251 1344/2198/255 1342/2196/253 +f 1346/2200/257 1352/2206/262 1353/2207/263 +f 1354/2208/264 1345/2199/256 1355/2209/265 +f 1356/2210/266 1350/2204/261 1347/2201/258 +f 1357/2211/267 1341/2195/252 1350/2204/261 +f 1358/2212/268 1355/2209/265 1351/2205/251 +f 1345/2199/256 1359/2213/269 1352/2206/262 +f 1341/2195/252 1358/2212/268 1351/2205/251 +f 1360/2214/270 1353/2207/263 1352/2206/262 +f 1352/2206/262 1359/2213/269 1360/2214/270 +f 1349/2203/260 1360/2215/270 1347/2201/258 +f 1347/2201/258 1360/2215/270 1356/2210/266 +f 1356/2216/266 1361/2217/240 1357/2218/267 +f 1360/2219/270 1362/2220/271 1356/2216/266 +f 1357/2218/267 1363/2221/247 1364/2222/272 +f 1359/2223/269 1365/2224/242 1360/2225/270 +f 1358/2212/268 1366/2226/273 1354/2208/264 +f 1367/2227/274 1368/2228/275 1359/2223/269 +f 1364/2222/272 1369/2229/237 1358/2212/268 +f 1354/2208/264 1370/2230/239 1367/2227/274 +f 1371/2231/254 1372/2232/251 1373/2233/253 +f 1374/2234/265 1375/2235/257 1376/2236/255 +f 1377/2237/258 1378/2238/259 1379/2239/260 +f 1380/2240/261 1371/2231/254 1378/2238/259 +f 1372/2232/251 1376/2236/255 1373/2233/253 +f 1381/2241/256 1382/2242/263 1375/2235/257 +f 1374/2234/265 1383/2243/274 1381/2241/256 +f 1384/2244/266 1380/2240/261 1377/2237/258 +f 1380/2240/261 1385/2245/272 1386/2246/276 +f 1387/2247/268 1374/2234/265 1372/2232/251 +f 1381/2241/256 1388/2248/269 1389/2249/262 +f 1386/2246/276 1387/2247/268 1372/2232/251 +f 1390/2250/270 1382/2242/263 1389/2249/262 +f 1389/2249/262 1388/2248/269 1390/2250/270 +f 1379/2239/260 1390/2251/270 1377/2237/258 +f 1377/2237/258 1390/2251/270 1384/2244/266 +f 1384/2252/266 1391/2253/240 1392/2254/267 +f 1390/2255/270 1393/2256/271 1384/2252/266 +f 1392/2254/267 1394/2257/247 1385/2245/272 +f 1388/2258/269 1395/2259/242 1390/2260/270 +f 1387/2247/268 1396/2261/273 1397/2262/264 +f 1383/2263/274 1398/2264/275 1388/2258/269 +f 1385/2245/272 1399/2265/237 1387/2247/268 +f 1397/2262/264 1400/2266/239 1383/2263/274 +f 1401/2267/277 1402/2268/250 1403/2269/278 +f 1404/2270/279 1405/2271/280 1406/2272/281 +f 1407/2273/282 1408/2274/283 1409/2275/284 +f 1410/2276/285 1401/2267/277 1408/2274/283 +f 1403/2269/278 1411/2277/286 1404/2270/279 +f 1406/2272/281 1412/2278/287 1413/2279/288 +f 1411/2277/286 1414/2280/289 1405/2271/280 +f 1415/2281/290 1410/2276/285 1407/2273/282 +f 1416/2282/291 1417/2283/292 1410/2276/285 +f 1418/2284/293 1411/2277/286 1402/2268/250 +f 1405/2271/280 1419/2285/294 1412/2278/287 +f 1417/2283/292 1418/2284/293 1402/2268/250 +f 1420/2286/295 1413/2279/288 1412/2278/287 +f 1412/2278/287 1419/2285/294 1420/2286/295 +f 1409/2275/284 1420/2287/295 1407/2273/282 +f 1407/2273/282 1420/2287/295 1415/2281/290 +f 1415/2288/290 1421/2289/239 1416/2290/291 +f 1420/2291/295 1422/2292/275 1415/2288/290 +f 1416/2290/291 1423/2293/273 1424/2294/296 +f 1419/2295/294 1425/2296/242 1420/2297/295 +f 1418/2284/293 1426/2298/247 1427/2299/297 +f 1414/2300/289 1428/2301/271 1419/2295/294 +f 1424/2294/296 1429/2302/237 1418/2284/293 +f 1427/2299/297 1430/2303/240 1414/2300/289 +f 1431/2304/277 1432/2305/250 1433/2306/278 +f 1434/2307/298 1435/2308/281 1436/2309/279 +f 1437/2310/282 1438/2311/283 1439/2312/284 +f 1440/2313/285 1431/2304/277 1438/2311/283 +f 1432/2305/250 1436/2309/279 1433/2306/278 +f 1435/2308/281 1441/2314/287 1442/2315/288 +f 1443/2316/297 1444/2317/280 1434/2307/298 +f 1437/2310/282 1445/2318/291 1440/2313/285 +f 1445/2318/291 1446/2319/292 1440/2313/285 +f 1447/2320/293 1434/2307/298 1432/2305/250 +f 1444/2317/280 1448/2321/294 1441/2314/287 +f 1449/2322/296 1432/2305/250 1446/2319/292 +f 1450/2323/295 1442/2315/288 1441/2314/287 +f 1441/2314/287 1448/2321/294 1450/2323/295 +f 1439/2312/284 1450/2324/295 1437/2310/282 +f 1437/2310/282 1450/2324/295 1451/2325/290 +f 1451/2326/290 1452/2327/239 1445/2328/291 +f 1450/2329/295 1453/2330/275 1451/2326/290 +f 1445/2328/291 1454/2331/273 1449/2322/296 +f 1448/2332/294 1455/2333/242 1450/2334/295 +f 1447/2320/293 1456/2335/247 1443/2316/297 +f 1457/2336/289 1458/2337/271 1448/2332/294 +f 1447/2320/293 1454/2331/273 1459/2338/237 +f 1457/2336/289 1456/2335/247 1460/2339/240 +f 1341/2195/252 1351/2205/251 1342/2196/253 +f 1344/2198/255 1355/2209/265 1345/2199/256 +f 1347/2201/258 1350/2204/261 1348/2202/259 +f 1350/2204/261 1341/2195/252 1343/2197/254 +f 1351/2205/251 1355/2209/265 1344/2198/255 +f 1346/2200/257 1345/2199/256 1352/2206/262 +f 1354/2208/264 1367/2340/274 1345/2199/256 +f 1356/2210/266 1357/2211/267 1350/2204/261 +f 1357/2211/267 1364/2222/272 1341/2195/252 +f 1358/2212/268 1354/2208/264 1355/2209/265 +f 1345/2199/256 1367/2340/274 1359/2213/269 +f 1341/2195/252 1364/2222/272 1358/2212/268 +f 1356/2216/266 1362/2220/271 1361/2217/240 +f 1360/2219/270 1365/2341/242 1362/2220/271 +f 1357/2218/267 1361/2217/240 1363/2221/247 +f 1359/2223/269 1368/2228/275 1365/2224/242 +f 1358/2212/268 1369/2229/237 1366/2226/273 +f 1367/2227/274 1370/2230/239 1368/2228/275 +f 1364/2222/272 1363/2221/247 1369/2229/237 +f 1354/2208/264 1366/2226/273 1370/2230/239 +f 1371/2231/254 1386/2246/276 1372/2232/251 +f 1374/2234/265 1381/2241/256 1375/2235/257 +f 1377/2237/258 1380/2240/261 1378/2238/259 +f 1380/2240/261 1386/2246/276 1371/2231/254 +f 1372/2232/251 1374/2234/265 1376/2236/255 +f 1381/2241/256 1389/2249/262 1382/2242/263 +f 1374/2234/265 1397/2262/264 1383/2243/274 +f 1384/2244/266 1392/2342/267 1380/2240/261 +f 1380/2240/261 1392/2342/267 1385/2245/272 +f 1387/2247/268 1397/2262/264 1374/2234/265 +f 1381/2241/256 1383/2243/274 1388/2248/269 +f 1386/2246/276 1385/2245/272 1387/2247/268 +f 1384/2252/266 1393/2256/271 1391/2253/240 +f 1390/2255/270 1395/2343/242 1393/2256/271 +f 1392/2254/267 1391/2253/240 1394/2257/247 +f 1388/2258/269 1398/2264/275 1395/2259/242 +f 1387/2247/268 1399/2265/237 1396/2261/273 +f 1383/2263/274 1400/2266/239 1398/2264/275 +f 1385/2245/272 1394/2257/247 1399/2265/237 +f 1397/2262/264 1396/2261/273 1400/2266/239 +f 1401/2267/277 1417/2283/292 1402/2268/250 +f 1404/2270/279 1411/2277/286 1405/2271/280 +f 1407/2273/282 1410/2276/285 1408/2274/283 +f 1410/2276/285 1417/2283/292 1401/2267/277 +f 1403/2269/278 1402/2268/250 1411/2277/286 +f 1406/2272/281 1405/2271/280 1412/2278/287 +f 1411/2277/286 1427/2299/297 1414/2280/289 +f 1415/2281/290 1416/2282/291 1410/2276/285 +f 1416/2282/291 1424/2294/296 1417/2283/292 +f 1418/2284/293 1427/2299/297 1411/2277/286 +f 1405/2271/280 1414/2280/289 1419/2285/294 +f 1417/2283/292 1424/2294/296 1418/2284/293 +f 1415/2288/290 1422/2292/275 1421/2289/239 +f 1420/2291/295 1425/2344/242 1422/2292/275 +f 1416/2290/291 1421/2289/239 1423/2293/273 +f 1419/2295/294 1428/2301/271 1425/2296/242 +f 1418/2284/293 1429/2302/237 1426/2298/247 +f 1414/2300/289 1430/2303/240 1428/2301/271 +f 1424/2294/296 1423/2293/273 1429/2302/237 +f 1427/2299/297 1426/2298/247 1430/2303/240 +f 1431/2304/277 1446/2319/292 1432/2305/250 +f 1434/2307/298 1444/2317/280 1435/2308/281 +f 1437/2310/282 1440/2313/285 1438/2311/283 +f 1440/2313/285 1446/2319/292 1431/2304/277 +f 1432/2305/250 1434/2307/298 1436/2309/279 +f 1435/2308/281 1444/2317/280 1441/2314/287 +f 1443/2316/297 1457/2345/289 1444/2317/280 +f 1437/2310/282 1451/2325/290 1445/2318/291 +f 1445/2318/291 1449/2322/296 1446/2319/292 +f 1447/2320/293 1443/2316/297 1434/2307/298 +f 1444/2317/280 1457/2345/289 1448/2321/294 +f 1449/2322/296 1447/2320/293 1432/2305/250 +f 1451/2326/290 1453/2330/275 1452/2327/239 +f 1450/2329/295 1455/2346/242 1453/2330/275 +f 1445/2328/291 1452/2327/239 1454/2331/273 +f 1448/2332/294 1458/2337/271 1455/2333/242 +f 1447/2320/293 1459/2338/237 1456/2335/247 +f 1457/2336/289 1460/2339/240 1458/2337/271 +f 1447/2320/293 1449/2322/296 1454/2331/273 +f 1457/2336/289 1443/2316/297 1456/2335/247 +o Huge_Pad +v -1.250000 2.000000 1.250000 +v 1.250000 2.000000 -1.250000 +v -1.250000 2.000000 -1.250000 +v -1.250000 2.000000 1.250000 +v 2.500000 2.000000 2.500000 +v 1.250000 2.000000 1.250000 +v -1.250000 2.000000 -1.250000 +v -2.500000 2.000000 2.500000 +v 1.250000 2.000000 -1.250000 +v -2.500000 2.000000 -2.500000 +v 2.500000 2.000000 -2.500000 +v -2.500000 1.500000 -2.500000 +v 2.500000 1.500000 2.500000 +v 2.500000 1.500000 -2.500000 +v -2.500000 1.500000 2.500000 +v 3.000000 1.500000 -3.000000 +v 3.000000 1.500000 3.000000 +v -3.000000 1.500000 3.000000 +v -3.000000 1.500000 -3.000000 +v 3.000000 1.000000 -3.000000 +v -3.000000 1.000000 3.000000 +v -3.000000 1.000000 -3.000000 +v 3.000000 1.000000 3.000000 v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 0.500000 v -0.500000 1.000000 -0.500000 v 0.500000 1.000000 -0.500000 +v 1.500000 2.000000 -2.500000 +v -1.500000 2.000000 -3.500000 +v -1.500000 2.000000 -2.500000 +v -1.500000 1.000000 -3.500000 +v 1.500000 2.000000 -3.500000 +v 1.500000 1.000000 -3.500000 +v 1.500000 1.000000 -2.500000 +v -1.500000 1.000000 -2.500000 +v 2.000000 2.000000 4.000000 +v -2.000000 2.000000 2.500000 +v -2.000000 2.000000 4.000000 +v 2.000000 1.000000 2.500000 +v 2.000000 1.000000 4.000000 +v -2.000000 1.000000 4.000000 +v -2.000000 1.000000 2.500000 +v 1.187500 2.000000 1.812500 +v 1.187500 8.000000 2.187500 +v 1.187500 2.000000 2.187500 +v 0.812500 2.000000 3.312500 +v 1.187500 8.000000 3.312500 +v 1.187500 2.000000 3.312500 +v 0.812500 2.000000 1.812500 +v 1.187500 8.000000 1.812500 +v -1.187500 2.000000 3.687500 +v -1.187500 8.000000 3.312500 +v -1.187500 2.000000 3.312500 +v -1.187500 2.000000 2.187500 +v -1.187500 8.000000 1.812500 +v -1.187500 2.000000 1.812500 +v -0.812500 2.000000 3.687500 +v -1.187500 8.000000 3.687500 +v -0.812500 2.000000 2.187500 +v -1.187500 8.000000 2.187500 +v -0.812500 2.000000 3.312500 +v -0.812500 8.000000 3.687500 +v -0.812500 2.000000 1.812500 +v -0.812500 8.000000 2.187500 +v -0.812500 8.000000 3.312500 +v 0.812500 2.000000 3.687500 +v 0.812500 8.000000 3.312500 +v -0.812500 8.000000 1.812500 +v 0.812500 2.000000 2.187500 +v 0.812500 8.000000 1.812500 +v 1.187500 2.000000 3.687500 +v 0.812500 8.000000 3.687500 +v 0.812500 8.000000 2.187500 +v 1.187500 8.000000 3.687500 +v -1.500000 8.000000 1.500000 +v 1.500000 8.000000 4.000000 +v -1.500000 8.000000 4.000000 +v 1.500000 8.250000 4.000000 +v -1.500000 8.250000 1.500000 +v -1.500000 8.250000 4.000000 +v 1.500000 8.250000 1.500000 +v 1.500000 8.000000 1.500000 +v 1.187500 8.250000 1.812500 +v 1.187500 14.250000 2.187501 +v 1.187500 8.250000 2.187500 +v 0.812500 8.250000 1.812500 +v 1.187500 14.250000 1.812501 +v -1.187500 8.250000 2.187500 +v -1.187500 14.250000 1.812501 +v -1.187500 8.250000 1.812500 +v -0.812500 8.250000 2.187500 +v -1.187500 14.250000 2.187501 +v -0.812500 8.250000 1.812500 +v -0.812500 14.250000 2.187501 +v -0.812500 14.250000 1.812501 +v 0.812500 8.250000 2.187500 +v 0.812500 14.250000 1.812501 +v 0.812500 14.250000 2.187501 +v 1.187500 8.250000 2.812500 +v 1.187500 14.250000 3.187501 +v 1.187500 8.250000 3.187500 +v 0.812500 8.250000 2.812500 +v 1.187500 14.250000 2.812501 +v -1.187500 8.250000 3.187500 +v -1.187500 14.250000 2.812501 +v -1.187500 8.250000 2.812500 +v -0.812500 8.250000 3.187500 +v -1.187500 14.250000 3.187501 +v -0.812500 8.250000 2.812500 +v -0.812500 14.250000 3.187501 +v -0.812500 14.250000 2.812501 +v 0.812500 8.250000 3.187500 +v 0.812500 14.250000 2.812501 +v 0.812500 14.250000 3.187501 +v -1.500000 14.250000 1.500001 +v 1.500000 14.250000 3.500001 +v -1.500000 14.250000 3.500001 +v 0.812500 8.000000 2.000000 +v -0.812500 2.000000 2.000000 +v -0.812500 8.000000 2.000000 +v -0.812500 2.000000 3.500000 +v 0.812500 8.000000 3.500000 +v -0.812500 8.000000 3.500000 +v -1.000000 2.000000 2.187500 +v -1.000000 8.000000 3.312500 +v -1.000000 8.000000 2.187500 +v 1.000000 8.000000 3.312500 +v 1.000000 2.000000 2.187500 +v 1.000000 8.000000 2.187500 +v 0.812500 14.250000 2.000001 +v -0.812500 8.250000 2.000000 +v -0.812500 14.250000 2.000001 +v -0.812500 8.250000 3.000000 +v 0.812500 14.250000 3.000001 +v -0.812500 14.250000 3.000001 +v -1.000000 8.250000 2.187500 +v -1.000000 14.250000 2.812501 +v -1.000000 14.250000 2.187501 +v 1.000000 14.250000 2.812501 +v 1.000000 8.250000 2.187500 +v 1.000000 14.250000 2.187501 +v 1.500000 14.500000 3.500001 +v -1.500000 14.500000 1.500001 +v -1.500000 14.500000 3.500001 +v 1.500000 14.500000 1.500001 +v 1.500000 14.250000 1.500001 +v 0.375000 10.000000 2.250000 +v 0.198223 10.073223 2.250000 +v 0.551777 10.426777 2.250000 +v -0.375000 10.000000 2.250000 +v -0.551777 10.073223 2.250000 +v -0.198223 10.426777 2.250000 +v -0.812500 2.000000 2.000000 +v 0.812500 8.000000 2.000000 +v -0.812500 8.000000 2.000000 +v 0.812500 8.000000 3.500000 +v -0.812500 2.000000 3.500000 +v -0.812500 8.000000 3.500000 +v -1.000000 8.000000 3.312500 +v -1.000000 2.000000 2.187500 +v -1.000000 8.000000 2.187500 +v 1.000000 2.000000 2.187500 +v 1.000000 8.000000 3.312500 +v 1.000000 8.000000 2.187500 +v -0.812500 8.250000 2.000000 +v 0.812500 14.250000 2.000001 +v -0.812500 14.250000 2.000001 +v 0.812500 14.250000 3.000001 +v -0.812500 8.250000 3.000000 +v -0.812500 14.250000 3.000001 +v -1.000000 14.250000 2.812501 +v -1.000000 8.250000 2.187500 +v -1.000000 14.250000 2.187501 +v 1.000000 8.250000 2.187500 +v 1.000000 14.250000 2.812501 +v 1.000000 14.250000 2.187501 +v 1.250000 2.000000 1.250000 +v 2.000000 2.000000 2.500000 +v 0.812500 2.000000 2.000000 +v 0.812500 2.000000 3.500000 +v -1.000000 2.000000 3.312500 +v 1.000000 2.000000 3.312500 +v 0.812500 8.250000 2.000000 +v 0.812500 8.250000 3.000000 +v -1.000000 8.250000 2.812500 +v 1.000000 8.250000 2.812500 +v 0.125000 10.250000 2.250000 +v 0.198223 10.426777 2.250000 +v 0.375000 10.500000 2.250000 +v 0.625000 10.250000 2.250000 +v 0.551777 10.073223 2.250000 +v -0.625000 10.250000 2.250000 +v -0.551777 10.426777 2.250000 +v -0.375000 10.500000 2.250000 +v -0.125000 10.250000 2.250000 +v -0.198223 10.073223 2.250000 +v 0.812500 2.000000 2.000000 +v 0.812500 2.000000 3.500000 +v -1.000000 2.000000 3.312500 +v 1.000000 2.000000 3.312500 +v 0.812500 8.250000 2.000000 +v 0.812500 8.250000 3.000000 +v -1.000000 8.250000 2.812500 +v 1.000000 8.250000 2.812500 +v 0.551777 2.000000 2.676777 +v 0.375000 10.000000 2.750000 +v 0.375000 2.000000 2.750000 +v 0.198223 2.000000 2.676777 +v 0.125000 10.000000 2.500000 +v 0.125000 2.000000 2.500000 +v 0.198223 2.000000 2.323223 +v 0.375000 2.000000 2.250000 +v 0.551777 10.000000 2.323224 +v 0.551777 2.000000 2.323223 +v 0.625000 2.000000 2.500000 +v 0.551777 10.000000 2.676777 +v 0.198223 10.000000 2.676777 +v 0.198223 10.000000 2.323224 +v 0.625000 10.000000 2.500000 +v 0.625000 10.176777 2.426777 +v 0.551777 10.301777 2.551777 +v 0.375000 10.353554 2.603554 +v 0.198223 10.301777 2.551777 +v 0.125000 10.176777 2.426777 +v 0.198223 10.051777 2.301777 +v 0.551777 10.051777 2.301777 +v -0.198223 2.000000 2.676777 +v -0.375000 10.000000 2.750000 +v -0.375000 2.000000 2.750000 +v -0.551777 2.000000 2.676777 +v -0.625000 10.000000 2.500000 +v -0.625000 2.000000 2.500000 +v -0.551777 2.000000 2.323223 +v -0.375000 2.000000 2.250000 +v -0.198223 10.000000 2.323224 +v -0.198223 2.000000 2.323223 +v -0.125000 2.000000 2.500000 +v -0.198223 10.000000 2.676777 +v -0.551777 10.000000 2.676777 +v -0.551777 10.000000 2.323224 +v -0.125000 10.000000 2.500000 +v -0.125000 10.176777 2.426777 +v -0.198223 10.301777 2.551777 +v -0.551777 10.301777 2.551777 +v -0.551777 10.051777 2.301777 +v -0.375000 10.353554 2.603554 +v -0.625000 10.176777 2.426777 +v -0.198223 10.051777 2.301777 +vt 0.155844 0.875000 +vt 0.285714 0.666667 +vt 0.285714 0.875000 +vt 0.090909 0.437500 +vt 0.025974 0.125000 +vt 0.090909 0.229167 +vt 0.220779 0.437500 +vt 0.025974 0.541667 +vt 0.220779 0.229167 +vt 0.285714 0.541667 +vt 0.285714 0.125000 +vt 0.025974 0.125000 +vt 0.285714 0.083333 +vt 0.285714 0.125000 +vt 0.025974 0.125000 +vt 0.285714 0.083333 +vt 0.285714 0.125000 +vt 0.285714 0.083333 +vt 0.025974 0.125000 +vt 0.285714 0.083333 +vt 0.285714 0.125000 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt 0.025974 0.083333 +vt 0.311688 0.041667 +vt -0.000000 0.041667 +vt 0.311688 -0.000000 +vt 0.000000 0.041667 +vt 0.311688 0.000000 +vt 0.000000 0.041667 +vt 0.311688 0.000000 +vt 0.000000 0.041667 +vt 0.311688 0.000000 +vt 0.129870 0.291667 +vt 0.129870 0.375000 +vt 0.181818 0.375000 +vt 0.181818 0.291667 +vt 0.441558 0.625000 +vt 0.493506 0.875000 +vt 0.441558 0.875000 +vt 0.545455 0.875000 +vt 0.493506 0.625000 +vt 0.545455 0.625000 +vt 0.493506 0.541667 +vt 0.441558 0.541667 +vt 0.441558 0.958333 +vt 0.493506 0.958333 +vt 0.337662 0.083333 +vt 0.415584 0.416667 +vt 0.337662 0.416667 +vt 0.415584 -0.000000 +vt 0.337662 -0.000000 +vt 0.337662 0.500000 +vt 0.415584 0.500000 +vt 0.285714 0.083333 +vt 0.285714 0.416667 +vt 0.324675 0.500000 +vt 0.305195 1.000000 +vt 0.305195 0.500000 +vt 0.344156 0.500000 +vt 0.324675 1.000000 +vt 0.324675 0.500000 +vt 0.344156 0.500000 +vt 0.324675 1.000000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.344156 0.500000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.344156 0.500000 +vt 0.305195 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.305195 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.324675 0.500000 +vt 0.305195 1.000000 +vt 0.324675 0.500000 +vt 0.305195 1.000000 +vt 0.324675 1.000000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.324675 1.000000 +vt 0.363636 0.500000 +vt 0.344156 1.000000 +vt 0.305195 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.285714 1.000000 +vt 0.285714 0.500000 +vt 0.305195 1.000000 +vt 0.675325 0.750000 +vt 0.545455 1.000000 +vt 0.545455 0.750000 +vt 0.545455 0.750000 +vt 0.675325 1.000000 +vt 0.545455 1.000000 +vt 0.688312 1.000000 +vt 0.675325 0.750000 +vt 0.688312 0.750000 +vt 0.688312 1.000000 +vt 0.675325 0.750000 +vt 0.688312 0.750000 +vt 0.675325 0.729167 +vt 0.545455 0.729167 +vt 0.675325 0.729167 +vt 0.545455 0.750000 +vt 0.545455 0.729167 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.383117 0.500000 +vt 0.422078 0.500000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.422078 0.500000 +vt 0.383117 0.500000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.383117 0.500000 +vt 0.422078 0.500000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.422078 0.500000 +vt 0.383117 0.500000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.402597 0.500000 +vt 0.383117 1.000000 +vt 0.402597 1.000000 +vt 0.441558 0.500000 +vt 0.422078 1.000000 +vt 0.363636 1.000000 +vt 0.363636 0.500000 +vt 0.792208 0.750000 +vt 0.688312 1.000000 +vt 0.688312 0.750000 +vt 0.415584 0.500000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.415584 0.000000 +vt 0.500000 0.500000 +vt 0.415584 0.500000 +vt 0.500000 0.000000 +vt 0.558442 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.500000 +vt 0.558442 0.000000 +vt 0.558442 0.500000 +vt 0.558442 0.500000 +vt 0.642857 0.000000 +vt 0.642857 0.500000 +vt 0.558442 0.000000 +vt 0.642857 0.500000 +vt 0.558442 0.500000 +vt 0.642857 0.000000 +vt 0.675325 0.500000 +vt 0.642857 0.500000 +vt 0.642857 0.500000 +vt 0.675325 0.000000 +vt 0.675325 0.500000 +vt 0.688312 0.750000 +vt 0.792208 1.000000 +vt 0.688312 1.000000 +vt 0.805195 1.000000 +vt 0.792208 0.750000 +vt 0.805195 0.750000 +vt 0.805195 1.000000 +vt 0.792208 0.750000 +vt 0.805195 0.750000 +vt 0.792208 0.729167 +vt 0.688312 0.729167 +vt 0.792208 0.729167 +vt 0.688312 0.750000 +vt 0.688312 0.729167 +vt 0.636364 0.625272 +vt 0.645427 0.631294 +vt 0.627300 0.660373 +vt 0.662338 0.624730 +vt 0.671640 0.630911 +vt 0.653036 0.660756 +vt 0.500000 0.000000 +vt 0.415584 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.500000 +vt 0.415584 0.000000 +vt 0.415584 0.500000 +vt 0.558442 0.500000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.558442 0.000000 +vt 0.500000 0.500000 +vt 0.558442 0.500000 +vt 0.642857 0.000000 +vt 0.558442 0.500000 +vt 0.642857 0.500000 +vt 0.642857 0.500000 +vt 0.558442 0.000000 +vt 0.558442 0.500000 +vt 0.675325 0.500000 +vt 0.642857 0.000000 +vt 0.642857 0.500000 +vt 0.675325 0.000000 +vt 0.642857 0.500000 +vt 0.675325 0.500000 +vt 0.155844 0.666667 +vt -0.000000 -0.000000 +vt -0.000000 -0.000000 +vt -0.000000 -0.000000 +vt -0.000000 -0.000000 +vt 0.415584 0.083333 +vt 0.363636 1.000000 +vt 0.363636 1.000000 +vt 0.363636 1.000000 +vt 0.363636 1.000000 +vt 0.675325 1.000000 +vt 0.675325 1.000000 +vt 0.441558 1.000000 +vt 0.441558 1.000000 +vt 0.441558 1.000000 +vt 0.441558 1.000000 +vt 0.792208 1.000000 +vt 0.415584 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.642857 0.000000 +vt 0.675325 0.000000 +vt 0.642857 0.000000 +vt 0.792208 1.000000 +vt 0.649182 0.645834 +vt 0.645427 0.660374 +vt 0.636364 0.666396 +vt 0.623546 0.645834 +vt 0.627300 0.631294 +vt 0.675493 0.645833 +vt 0.671640 0.660756 +vt 0.662338 0.666937 +vt 0.649182 0.645833 +vt 0.653035 0.630911 +vt 0.415584 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.500000 0.000000 +vt 0.558442 0.000000 +vt 0.642857 0.000000 +vt 0.675325 0.000000 +vt 0.642857 0.000000 +vt 0.724026 -0.000000 +vt 0.714286 0.666667 +vt 0.714286 0.000000 +vt 0.704545 -0.000000 +vt 0.694805 0.666667 +vt 0.694805 0.000000 +vt 0.685065 0.000000 +vt 0.675325 0.666667 +vt 0.675325 -0.000000 +vt 0.753247 0.000000 +vt 0.743506 0.666667 +vt 0.743506 -0.000000 +vt 0.733766 -0.000000 +vt 0.724026 0.666667 +vt 0.704545 0.666667 +vt 0.685065 0.666667 +vt 0.733766 0.666667 +vt 0.724026 0.671875 +vt 0.733766 0.697917 +vt 0.724026 0.697917 +vt 0.704545 0.671875 +vt 0.714286 0.697917 +vt 0.704545 0.697917 +vt 0.685065 0.692708 +vt 0.694805 0.697917 +vt 0.685065 0.697917 +vt 0.733766 0.682292 +vt 0.743506 0.697917 +vt 0.694805 0.682292 +vt 0.704545 0.723958 +vt 0.694805 0.713542 +vt 0.685065 0.703125 +vt 0.733766 0.713542 +vt 0.724026 0.723958 +vt 0.714286 0.729167 +vt 0.743506 0.692708 +vt 0.753247 0.697917 +vt 0.743506 0.703125 +vt 0.675325 0.697917 +vt 0.801948 0.000000 +vt 0.792208 0.666667 +vt 0.792208 0.000000 +vt 0.782468 0.000000 +vt 0.772727 0.666667 +vt 0.772727 0.000000 +vt 0.762987 -0.000000 +vt 0.753247 0.666667 +vt 0.753247 0.000000 +vt 0.831169 0.000000 +vt 0.821429 0.666667 +vt 0.821429 -0.000000 +vt 0.811688 -0.000000 +vt 0.801948 0.666667 +vt 0.782468 0.666667 +vt 0.762987 0.666667 +vt 0.811688 0.666667 +vt 0.801948 0.671875 +vt 0.811688 0.697917 +vt 0.801948 0.697917 +vt 0.782468 0.697917 +vt 0.782468 0.671875 +vt 0.772727 0.682292 +vt 0.762987 0.697917 +vt 0.762987 0.692708 +vt 0.821429 0.692708 +vt 0.811688 0.682292 +vt 0.792208 0.697917 +vt 0.772727 0.697917 +vt 0.782468 0.723958 +vt 0.772727 0.713542 +vt 0.762987 0.703125 +vt 0.821429 0.697917 +vt 0.811688 0.713542 +vt 0.801948 0.723958 +vt 0.792208 0.729167 +vt 0.831169 0.697917 +vt 0.821429 0.703125 +vt 0.753247 0.697917 +vt 0.753247 0.666667 +vt 0.831169 0.666667 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.6000 -0.8000 +vn 0.8000 0.6000 0.0000 +vn 0.0000 0.6000 0.8000 +vn -0.8000 0.6000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.0000 0.7071 +vn -0.0000 0.1866 0.9824 +vn -0.7071 -0.0000 0.7071 +vn -0.9987 0.0196 0.0473 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 -0.1944 -0.9809 +vn 0.7263 -0.1363 -0.6737 +vn 0.7071 0.0000 -0.7071 +vn 0.6794 0.1448 0.7194 +vn -0.6794 0.1448 0.7194 +vn -0.7263 -0.1363 -0.6737 +vn 0.9987 0.0196 0.0473 +vn 0.9955 0.0671 0.0671 +vn 0.6630 0.5294 0.5294 +vn -0.0000 0.7071 0.7071 +vn -0.6630 0.5294 0.5294 +vn -0.9955 0.0671 0.0671 +vn -0.7574 -0.4617 -0.4617 +vn 0.7574 -0.4617 -0.4617 +vn -0.6333 0.7150 0.2962 +vn -0.9947 0.0948 0.0393 +vn -0.7311 -0.6303 -0.2611 +vn 0.9947 0.0948 0.0393 +vn 0.6333 0.7150 0.2962 +vn -0.0000 0.9239 0.3827 +vn 0.7311 -0.6303 -0.2611 +s off +f 1461/2347/299 1462/2348/299 1463/2349/299 +f 1464/2350/299 1465/2351/299 1466/2352/299 +f 1467/2353/299 1468/2354/299 1464/2350/299 +f 1469/2355/299 1470/2356/299 1467/2353/299 +f 1466/2352/299 1471/2357/299 1469/2355/299 +f 1471/2358/300 1472/2359/300 1470/2360/300 +f 1468/2361/301 1473/2362/301 1465/2363/301 +f 1465/2351/302 1474/2364/302 1471/2357/302 +f 1470/2365/303 1475/2366/303 1468/2367/303 +f 1473/2368/299 1476/2369/299 1474/2364/299 +f 1475/2370/299 1477/2371/299 1473/2362/299 +f 1472/2372/299 1478/2373/299 1475/2366/299 +f 1474/2374/299 1479/2375/299 1472/2359/299 +f 1477/2376/302 1480/2377/302 1476/2369/302 +f 1479/2378/303 1481/2379/303 1478/2373/303 +f 1476/2380/300 1482/2381/300 1479/2375/300 +f 1478/2382/301 1483/2383/301 1477/2371/301 +f 1484/2384/304 1464/2350/304 1466/2352/304 +f 1485/2385/305 1467/2353/305 1464/2350/305 +f 1486/2386/306 1469/2355/306 1467/2353/306 +f 1487/2387/307 1466/2352/307 1469/2355/307 +f 1488/2388/299 1489/2389/299 1490/2390/299 +f 1491/2391/300 1492/2392/300 1493/2393/300 +f 1493/2394/302 1488/2388/302 1494/2395/302 +f 1495/2396/303 1489/2389/303 1491/2397/303 +f 1496/2398/299 1497/2399/299 1498/2400/299 +f 1499/2401/302 1496/2398/302 1500/2402/302 +f 1501/2403/303 1497/2399/303 1502/2404/303 +f 1500/2405/301 1498/2400/301 1501/2406/301 +f 1503/2407/302 1504/2408/302 1505/2409/302 +f 1506/2410/300 1507/2411/300 1508/2412/300 +f 1509/2413/300 1510/2414/300 1503/2407/300 +f 1511/2415/303 1512/2416/303 1513/2417/303 +f 1514/2418/303 1515/2419/303 1516/2420/303 +f 1517/2421/301 1518/2422/301 1511/2423/301 +f 1519/2424/301 1520/2425/301 1514/2426/301 +f 1521/2427/302 1522/2428/302 1517/2421/302 +f 1523/2429/302 1524/2430/302 1519/2424/302 +f 1513/2417/300 1525/2431/300 1521/2427/300 +f 1526/2432/303 1527/2433/303 1506/2410/303 +f 1516/2420/300 1528/2434/300 1523/2429/300 +f 1529/2435/303 1530/2436/303 1509/2413/303 +f 1531/2437/301 1532/2438/301 1526/2439/301 +f 1505/2409/301 1533/2440/301 1529/2441/301 +f 1508/2412/302 1534/2442/302 1531/2437/302 +f 1535/2443/308 1536/2444/308 1537/2445/308 +f 1538/2446/299 1539/2447/299 1540/2448/299 +f 1535/2449/300 1541/2450/300 1542/2451/300 +f 1536/2452/301 1540/2453/301 1537/2454/301 +f 1542/2455/302 1538/2446/302 1536/2456/302 +f 1537/2457/303 1539/2458/303 1535/2459/303 +f 1543/2460/302 1544/2461/302 1545/2462/302 +f 1546/2463/300 1547/2464/300 1543/2460/300 +f 1548/2465/303 1549/2466/303 1550/2467/303 +f 1551/2468/301 1552/2469/301 1548/2470/301 +f 1553/2471/302 1554/2472/302 1551/2468/302 +f 1550/2467/300 1555/2473/300 1553/2471/300 +f 1556/2474/303 1557/2475/303 1546/2463/303 +f 1545/2462/301 1558/2476/301 1556/2477/301 +f 1559/2478/302 1560/2479/302 1561/2480/302 +f 1562/2481/300 1563/2482/300 1559/2478/300 +f 1564/2483/303 1565/2484/303 1566/2485/303 +f 1567/2486/301 1568/2487/301 1564/2488/301 +f 1569/2489/302 1570/2490/302 1567/2486/302 +f 1566/2485/300 1571/2491/300 1569/2489/300 +f 1572/2492/303 1573/2493/303 1562/2481/303 +f 1561/2480/301 1574/2494/301 1572/2495/301 +f 1575/2496/308 1576/2497/308 1577/2498/308 +f 1578/2499/300 1579/2500/300 1580/2501/300 +f 1581/2502/301 1582/2503/301 1583/2504/301 +f 1584/2505/303 1585/2506/303 1586/2507/303 +f 1587/2508/302 1588/2509/302 1589/2510/302 +f 1590/2511/300 1591/2512/300 1592/2513/300 +f 1593/2514/301 1594/2515/301 1595/2516/301 +f 1596/2517/303 1597/2518/303 1598/2519/303 +f 1599/2520/302 1600/2521/302 1601/2522/302 +f 1602/2523/299 1603/2524/299 1604/2525/299 +f 1575/2526/300 1605/2527/300 1606/2528/300 +f 1576/2529/301 1604/2530/301 1577/2531/301 +f 1606/2532/302 1602/2523/302 1576/2533/302 +f 1577/2534/303 1603/2535/303 1575/2536/303 +f 1607/2537/300 1608/2538/300 1609/2539/300 +f 1610/2540/300 1611/2541/300 1612/2542/300 +f 1613/2543/301 1614/2544/301 1615/2545/301 +f 1616/2546/300 1617/2547/300 1618/2548/300 +f 1619/2549/302 1620/2550/302 1621/2551/302 +f 1622/2552/303 1623/2553/303 1624/2554/303 +f 1625/2555/301 1626/2556/301 1627/2557/301 +f 1628/2558/300 1629/2559/300 1630/2560/300 +f 1631/2561/302 1632/2562/302 1633/2563/302 +f 1634/2564/303 1635/2565/303 1636/2566/303 +f 1461/2347/299 1637/2567/299 1462/2348/299 +f 1464/2350/299 1468/2354/299 1465/2351/299 +f 1467/2353/299 1470/2356/299 1468/2354/299 +f 1469/2355/299 1471/2357/299 1470/2356/299 +f 1466/2352/299 1465/2351/299 1471/2357/299 +f 1471/2358/300 1474/2374/300 1472/2359/300 +f 1468/2361/301 1475/2370/301 1473/2362/301 +f 1465/2351/302 1473/2368/302 1474/2364/302 +f 1470/2365/303 1472/2372/303 1475/2366/303 +f 1473/2368/299 1477/2376/299 1476/2369/299 +f 1475/2370/299 1478/2382/299 1477/2371/299 +f 1472/2372/299 1479/2378/299 1478/2373/299 +f 1474/2374/299 1476/2380/299 1479/2375/299 +f 1477/2376/302 1483/2568/302 1480/2377/302 +f 1479/2378/303 1482/2569/303 1481/2379/303 +f 1476/2380/300 1480/2570/300 1482/2381/300 +f 1478/2382/301 1481/2571/301 1483/2383/301 +f 1484/2384/304 1485/2385/304 1464/2350/304 +f 1485/2385/305 1486/2386/305 1467/2353/305 +f 1486/2386/306 1487/2387/306 1469/2355/306 +f 1487/2387/307 1484/2384/307 1466/2352/307 +f 1488/2388/299 1492/2392/299 1489/2389/299 +f 1491/2391/300 1489/2389/300 1492/2392/300 +f 1493/2394/302 1492/2392/302 1488/2388/302 +f 1495/2396/303 1490/2390/303 1489/2389/303 +f 1496/2398/299 1638/2572/299 1497/2399/299 +f 1499/2401/302 1638/2572/302 1496/2398/302 +f 1501/2403/303 1498/2400/303 1497/2399/303 +f 1500/2405/301 1496/2398/301 1498/2400/301 +f 1503/2407/302 1510/2414/302 1504/2408/302 +f 1506/2410/300 1527/2433/300 1507/2411/300 +f 1509/2413/300 1530/2436/300 1510/2414/300 +f 1511/2415/303 1518/2573/303 1512/2416/303 +f 1514/2418/303 1520/2574/303 1515/2419/303 +f 1517/2421/301 1522/2428/301 1518/2422/301 +f 1519/2424/301 1524/2430/301 1520/2425/301 +f 1521/2427/302 1525/2431/302 1522/2428/302 +f 1523/2429/302 1528/2434/302 1524/2430/302 +f 1513/2417/300 1512/2416/300 1525/2431/300 +f 1526/2432/303 1532/2575/303 1527/2433/303 +f 1516/2420/300 1515/2419/300 1528/2434/300 +f 1529/2435/303 1533/2576/303 1530/2436/303 +f 1531/2437/301 1534/2442/301 1532/2438/301 +f 1505/2409/301 1504/2408/301 1533/2440/301 +f 1508/2412/302 1507/2411/302 1534/2442/302 +f 1535/2443/308 1542/2577/308 1536/2444/308 +f 1538/2446/299 1541/2450/299 1539/2447/299 +f 1535/2449/300 1539/2447/300 1541/2450/300 +f 1536/2452/301 1538/2578/301 1540/2453/301 +f 1542/2455/302 1541/2450/302 1538/2446/302 +f 1537/2457/303 1540/2453/303 1539/2458/303 +f 1543/2460/302 1547/2464/302 1544/2461/302 +f 1546/2463/300 1557/2475/300 1547/2464/300 +f 1548/2465/303 1552/2579/303 1549/2466/303 +f 1551/2468/301 1554/2472/301 1552/2469/301 +f 1553/2471/302 1555/2473/302 1554/2472/302 +f 1550/2467/300 1549/2466/300 1555/2473/300 +f 1556/2474/303 1558/2580/303 1557/2475/303 +f 1545/2462/301 1544/2461/301 1558/2476/301 +f 1559/2478/302 1563/2482/302 1560/2479/302 +f 1562/2481/300 1573/2493/300 1563/2482/300 +f 1564/2483/303 1568/2581/303 1565/2484/303 +f 1567/2486/301 1570/2490/301 1568/2487/301 +f 1569/2489/302 1571/2491/302 1570/2490/302 +f 1566/2485/300 1565/2484/300 1571/2491/300 +f 1572/2492/303 1574/2582/303 1573/2493/303 +f 1561/2480/301 1560/2479/301 1574/2494/301 +f 1575/2496/308 1606/2583/308 1576/2497/308 +f 1578/2499/300 1639/2584/300 1579/2500/300 +f 1581/2502/301 1640/2585/301 1582/2503/301 +f 1584/2505/303 1641/2586/303 1585/2506/303 +f 1587/2508/302 1642/2587/302 1588/2509/302 +f 1590/2511/300 1643/2588/300 1591/2512/300 +f 1593/2514/301 1644/2589/301 1594/2515/301 +f 1596/2517/303 1645/2590/303 1597/2518/303 +f 1599/2520/302 1646/2591/302 1600/2521/302 +f 1602/2523/299 1605/2527/299 1603/2524/299 +f 1575/2526/300 1603/2524/300 1605/2527/300 +f 1576/2529/301 1602/2592/301 1604/2530/301 +f 1606/2532/302 1605/2527/302 1602/2523/302 +f 1577/2534/303 1604/2530/303 1603/2535/303 +f 1608/2538/300 1647/2593/300 1648/2594/300 +f 1648/2594/300 1649/2595/300 1608/2538/300 +f 1649/2595/300 1609/2539/300 1608/2538/300 +f 1609/2539/300 1650/2596/300 1651/2597/300 +f 1651/2597/300 1607/2537/300 1609/2539/300 +f 1611/2541/300 1652/2598/300 1653/2599/300 +f 1653/2599/300 1654/2600/300 1611/2541/300 +f 1654/2600/300 1612/2542/300 1611/2541/300 +f 1612/2542/300 1655/2601/300 1656/2602/300 +f 1656/2602/300 1610/2540/300 1612/2542/300 +f 1613/2543/301 1657/2603/301 1614/2544/301 +f 1616/2546/300 1658/2604/300 1617/2547/300 +f 1619/2549/302 1659/2605/302 1620/2550/302 +f 1622/2552/303 1660/2606/303 1623/2553/303 +f 1625/2555/301 1661/2607/301 1626/2556/301 +f 1628/2558/300 1662/2608/300 1629/2559/300 +f 1631/2561/302 1663/2609/302 1632/2562/302 +f 1634/2564/303 1664/2610/303 1635/2565/303 +s 1 +f 1665/2611/309 1666/2612/310 1667/2613/301 +f 1668/2614/311 1669/2615/312 1670/2616/303 +f 1671/2617/313 1607/2618/314 1672/2619/300 +f 1672/2620/300 1673/2621/315 1674/2622/316 +f 1675/2623/302 1676/2624/317 1665/2611/309 +f 1667/2613/301 1677/2625/318 1668/2614/311 +f 1670/2616/303 1678/2626/319 1671/2617/313 +f 1674/2622/316 1679/2627/320 1675/2623/302 +f 1676/2628/317 1680/2629/321 1681/2630/322 +f 1677/2631/318 1682/2632/323 1683/2633/324 +f 1678/2634/319 1684/2635/325 1685/2636/326 +f 1679/2637/320 1686/2638/327 1680/2629/321 +f 1666/2612/310 1681/2630/322 1682/2632/323 +f 1677/2631/318 1684/2635/325 1669/2639/312 +f 1682/2632/323 1648/2640/328 1683/2633/324 +f 1685/2636/326 1647/2641/329 1608/2642/330 +f 1686/2638/327 1650/2643/331 1680/2629/321 +f 1682/2632/323 1609/2644/332 1649/2645/333 +f 1684/2635/325 1648/2640/328 1647/2641/329 +f 1680/2629/321 1609/2644/332 1681/2630/322 +f 1673/2646/315 1607/2647/314 1686/2638/327 +f 1686/2638/327 1607/2647/314 1651/2648/334 +f 1678/2634/319 1685/2636/326 1607/2649/314 +f 1685/2636/326 1608/2642/330 1607/2649/314 +f 1687/2650/309 1688/2651/310 1689/2652/301 +f 1690/2653/311 1691/2654/312 1692/2655/303 +f 1693/2656/313 1610/2657/314 1694/2658/300 +f 1694/2659/300 1695/2660/315 1696/2661/316 +f 1697/2662/302 1698/2663/317 1687/2650/309 +f 1689/2652/301 1699/2664/318 1690/2653/311 +f 1692/2655/303 1700/2665/319 1693/2656/313 +f 1696/2661/316 1701/2666/320 1697/2662/302 +f 1698/2667/317 1702/2668/321 1703/2669/322 +f 1688/2651/310 1704/2670/324 1699/2671/318 +f 1691/2672/312 1705/2673/326 1700/2674/319 +f 1695/2675/315 1702/2668/321 1701/2676/320 +f 1688/2651/310 1703/2669/322 1706/2677/323 +f 1699/2671/318 1707/2678/325 1691/2672/312 +f 1706/2677/323 1653/2679/328 1704/2670/324 +f 1705/2673/326 1652/2680/329 1611/2681/330 +f 1708/2682/327 1655/2683/331 1702/2668/321 +f 1706/2677/323 1612/2684/332 1654/2685/333 +f 1707/2678/325 1653/2679/328 1652/2680/329 +f 1702/2668/321 1612/2684/332 1703/2669/322 +f 1695/2675/315 1610/2686/314 1708/2682/327 +f 1708/2682/327 1610/2686/314 1656/2687/334 +f 1700/2674/319 1705/2673/326 1610/2688/314 +f 1705/2673/326 1611/2681/330 1610/2688/314 +f 1665/2611/309 1676/2624/317 1666/2612/310 +f 1668/2614/311 1677/2625/318 1669/2615/312 +f 1671/2617/313 1678/2626/319 1607/2618/314 +f 1672/2620/300 1607/2689/314 1673/2621/315 +f 1675/2623/302 1679/2627/320 1676/2624/317 +f 1667/2613/301 1666/2612/310 1677/2625/318 +f 1670/2616/303 1669/2615/312 1678/2626/319 +f 1674/2622/316 1673/2621/315 1679/2627/320 +f 1676/2628/317 1679/2637/320 1680/2629/321 +f 1677/2631/318 1666/2612/310 1682/2632/323 +f 1678/2634/319 1669/2639/312 1684/2635/325 +f 1679/2637/320 1673/2646/315 1686/2638/327 +f 1666/2612/310 1676/2628/317 1681/2630/322 +f 1677/2631/318 1683/2633/324 1684/2635/325 +f 1682/2632/323 1649/2645/333 1648/2640/328 +f 1685/2636/326 1684/2635/325 1647/2641/329 +f 1686/2638/327 1651/2648/334 1650/2643/331 +f 1682/2632/323 1681/2630/322 1609/2644/332 +f 1684/2635/325 1683/2633/324 1648/2640/328 +f 1680/2629/321 1650/2643/331 1609/2644/332 +f 1687/2650/309 1698/2663/317 1688/2651/310 +f 1690/2653/311 1699/2664/318 1691/2654/312 +f 1693/2656/313 1700/2665/319 1610/2657/314 +f 1694/2659/300 1610/2690/314 1695/2660/315 +f 1697/2662/302 1701/2666/320 1698/2663/317 +f 1689/2652/301 1688/2651/310 1699/2664/318 +f 1692/2655/303 1691/2654/312 1700/2665/319 +f 1696/2661/316 1695/2660/315 1701/2666/320 +f 1698/2667/317 1701/2676/320 1702/2668/321 +f 1688/2651/310 1706/2677/323 1704/2670/324 +f 1691/2672/312 1707/2678/325 1705/2673/326 +f 1695/2675/315 1708/2682/327 1702/2668/321 +f 1688/2651/310 1698/2667/317 1703/2669/322 +f 1699/2671/318 1704/2670/324 1707/2678/325 +f 1706/2677/323 1654/2685/333 1653/2679/328 +f 1705/2673/326 1707/2678/325 1652/2680/329 +f 1708/2682/327 1656/2687/334 1655/2683/331 +f 1706/2677/323 1703/2669/322 1612/2684/332 +f 1707/2678/325 1704/2670/324 1653/2679/328 +f 1702/2668/321 1655/2683/331 1612/2684/332 +o Huge_Erector +v 0.562500 3.500000 -3.187500 +v 0.937500 3.500000 -2.812500 +v 0.562500 3.500000 -2.812500 +v 0.937500 14.500000 -2.812499 +v 0.562500 14.500000 -3.187499 +v 0.562500 14.500000 -2.812499 +v 0.937500 3.500000 -3.187500 +v 0.937500 14.500000 -3.187499 +v -0.937500 5.750000 -1.812500 +v 0.937500 6.125000 -1.812500 +v 0.937500 5.750000 -1.812500 +v -0.562500 6.125000 -1.187500 +v -0.937500 5.750000 -0.812500 +v -0.562500 5.750000 -1.187500 +v -0.937500 6.125000 -0.812500 +v -0.937500 6.125000 -1.812500 +v 0.937500 5.750000 -0.812500 +v 0.562500 6.125000 -1.187500 +v 0.937500 6.125000 -0.812500 +v 0.562500 5.750000 -1.187500 +v -0.937500 8.750000 -1.812500 +v 0.937500 9.125000 -1.812500 +v 0.937500 8.750000 -1.812500 +v -0.562500 9.125000 -0.937500 +v -0.937500 8.750000 -0.562500 +v -0.562500 8.750000 -0.937500 +v -0.937500 9.125000 -0.562500 +v -0.937500 9.125000 -1.812500 +v 0.937500 8.750000 -0.562500 +v 0.562500 9.125000 -0.937500 +v 0.937500 9.125000 -0.562500 +v 0.562500 8.750000 -0.937500 +v -0.937500 10.750000 -1.812500 +v 0.937500 11.125000 -1.812500 +v 0.937500 10.750000 -1.812500 +v -0.562500 11.125000 -0.937500 +v -0.937500 10.750000 -0.562500 +v -0.562500 10.750000 -0.937500 +v -0.937500 11.125000 -0.562500 +v -0.937500 11.125000 -1.812500 +v 0.937500 10.750000 -0.562500 +v 0.562500 11.125000 -0.937500 +v 0.937500 11.125000 -0.562500 +v 0.562500 10.750000 -0.937500 +v -0.562500 8.812500 -1.812500 +v 0.562500 8.812500 -2.062500 +v 0.562500 8.812500 -1.812500 +v -0.562500 11.062500 -2.062500 +v 0.562500 10.812500 -2.062500 +v -0.562500 10.812500 -2.062500 +v 0.562500 11.062500 -1.812500 +v -0.562500 11.062500 -1.812500 +v -0.562500 10.812500 -1.812500 +v 0.562500 10.812500 -1.812500 +v 0.562500 9.062500 -1.812500 +v -0.562500 9.062500 -2.062500 +v -0.562500 9.062500 -1.812500 +v -0.562500 8.812500 -2.062500 +v -0.562500 5.812500 -1.812500 +v 0.562500 5.812500 -2.062500 +v 0.562500 5.812500 -1.812500 +v 0.562500 6.062500 -1.812500 +v -0.562500 6.062500 -2.062500 +v -0.562500 6.062500 -1.812500 +v -0.562500 5.812500 -2.062500 +v -0.562500 3.500000 -3.000000 +v 0.562500 14.500000 -2.999999 +v 0.562500 3.500000 -3.000000 +v -0.750000 14.500000 -2.187499 +v -0.750000 3.500000 -2.812500 +v -0.750000 3.500000 -2.187500 +v 0.562500 14.500000 -1.999999 +v -0.562500 3.500000 -2.000000 +v 0.562500 3.500000 -2.000000 +v 0.750000 3.500000 -2.812500 +v 0.750000 14.500000 -2.187499 +v 0.750000 3.500000 -2.187500 +v 0.562500 3.500000 -2.187500 +v 0.937500 3.500000 -1.812500 +v 0.562500 3.500000 -1.812500 +v 0.937500 14.500000 -1.812499 +v 0.562500 14.500000 -2.187499 +v 0.562500 14.500000 -1.812499 +v 0.937500 3.500000 -2.187500 +v 0.937500 14.500000 -2.187499 +v -0.937500 3.500000 -3.187500 +v -0.562500 3.500000 -2.812500 +v -0.937500 3.500000 -2.812500 +v -0.562500 14.500000 -2.812499 +v -0.937500 14.500000 -3.187499 +v -0.937500 14.500000 -2.812499 +v -0.562500 3.500000 -3.187500 +v -0.562500 14.500000 -3.187499 +v -0.937500 3.500000 -2.187500 +v -0.562500 3.500000 -1.812500 +v -0.937500 3.500000 -1.812500 +v -0.562500 14.500000 -1.812499 +v -0.937500 14.500000 -2.187499 +v -0.937500 14.500000 -1.812499 +v -0.562500 3.500000 -2.187500 +v -0.562500 14.500000 -2.187499 +v 0.562500 14.500000 -2.999999 +v -0.562500 3.500000 -3.000000 +v 0.562500 3.500000 -3.000000 +v -0.750000 3.500000 -2.812500 +v -0.750000 14.500000 -2.187499 +v -0.750000 3.500000 -2.187500 +v -0.562500 3.500000 -2.000000 +v 0.562500 14.500000 -1.999999 +v 0.562500 3.500000 -2.000000 +v 0.750000 14.500000 -2.187499 +v 0.750000 3.500000 -2.812500 +v 0.750000 3.500000 -2.187500 +v 0.562500 11.062500 -2.062500 +v 0.562500 9.062500 -2.062500 +v 0.562500 6.062500 -2.062500 +v -0.562500 14.500000 -2.999999 +v -0.750000 14.500000 -2.812499 +v -0.562500 14.500000 -1.999999 +v 0.750000 14.500000 -2.812499 +v -0.562500 14.500000 -2.999999 +v -0.750000 14.500000 -2.812499 +v -0.562500 14.500000 -1.999999 +v 0.750000 14.500000 -2.812499 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.136364 0.739583 +vt 0.038961 0.770833 +vt 0.038961 0.739583 +vt 0.116883 0.875000 +vt 0.136364 0.906250 +vt 0.116883 0.906250 +vt 0.155844 0.791667 +vt 0.136364 0.875000 +vt 0.136364 0.791667 +vt 0.038961 0.791667 +vt 0.136364 0.791667 +vt 0.058442 0.843750 +vt 0.038961 0.791667 +vt 0.019481 0.875000 +vt 0.019481 0.791667 +vt 0.058442 0.843750 +vt 0.038961 0.875000 +vt 0.058442 0.906250 +vt 0.038961 0.906250 +vt 0.058442 0.875000 +vt 0.136364 0.739583 +vt 0.038961 0.770833 +vt 0.038961 0.739583 +vt 0.116883 0.875000 +vt 0.136364 0.906250 +vt 0.116883 0.906250 +vt 0.155844 0.770833 +vt 0.136364 0.875000 +vt 0.136364 0.770833 +vt 0.038961 0.770833 +vt 0.136364 0.770833 +vt 0.058442 0.843750 +vt 0.019481 0.875000 +vt 0.019481 0.770833 +vt 0.058442 0.843750 +vt 0.038961 0.875000 +vt 0.058442 0.906250 +vt 0.038961 0.906250 +vt 0.058442 0.875000 +vt 0.136364 0.739583 +vt 0.038961 0.770833 +vt 0.038961 0.739583 +vt 0.116883 0.875000 +vt 0.136364 0.906250 +vt 0.116883 0.906250 +vt 0.155844 0.770833 +vt 0.136364 0.875000 +vt 0.136364 0.770833 +vt 0.038961 0.770833 +vt 0.136364 0.770833 +vt 0.058442 0.843750 +vt 0.019481 0.875000 +vt 0.019481 0.770833 +vt 0.058442 0.843750 +vt 0.038961 0.875000 +vt 0.058442 0.906250 +vt 0.038961 0.906250 +vt 0.058442 0.875000 +vt 0.967532 0.916667 +vt 0.909091 0.937500 +vt 0.909091 0.916667 +vt 0.967532 0.958333 +vt 0.909091 0.937500 +vt 0.967532 0.937500 +vt 0.909091 0.979167 +vt 0.967532 0.979167 +vt 0.967532 0.916667 +vt 0.909091 0.916667 +vt 0.909091 0.979167 +vt 0.967532 0.958333 +vt 0.967532 0.979167 +vt 0.967532 0.937500 +vt 0.967532 0.916667 +vt 0.909091 0.937500 +vt 0.909091 0.916667 +vt 0.909091 0.979167 +vt 0.967532 0.958333 +vt 0.967532 0.979167 +vt 0.967532 0.937500 +vt 0.967532 0.000000 +vt 0.909091 0.916667 +vt 0.909091 -0.000000 +vt 1.000000 0.916667 +vt 0.967532 -0.000000 +vt 1.000000 -0.000000 +vt 0.967532 0.916667 +vt 0.909091 -0.000000 +vt 0.967532 0.000000 +vt 1.000000 -0.000000 +vt 0.967532 0.916667 +vt 0.967532 -0.000000 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.850649 0.031250 +vt 0.831169 -0.000000 +vt 0.850649 -0.000000 +vt 0.831169 0.979167 +vt 0.850649 0.947917 +vt 0.850649 0.979167 +vt 0.870130 0.031250 +vt 0.889610 0.031250 +vt 0.870130 0.947917 +vt 0.909091 0.031250 +vt 0.889610 0.947917 +vt 0.831169 0.947917 +vt 0.831169 0.031250 +vt 0.909091 0.916667 +vt 0.967532 0.000000 +vt 0.909091 -0.000000 +vt 0.967532 -0.000000 +vt 1.000000 0.916667 +vt 1.000000 -0.000000 +vt 0.909091 -0.000000 +vt 0.967532 0.916667 +vt 0.967532 0.000000 +vt 0.967532 0.916667 +vt 1.000000 -0.000000 +vt 0.967532 -0.000000 +vt 0.909091 0.947917 +vt 0.136364 0.770833 +vt 0.155844 0.875000 +vt 0.136364 0.875000 +vt 0.116883 0.843750 +vt 0.038961 0.875000 +vt 0.116883 0.843750 +vt 0.155844 0.875000 +vt 0.136364 0.875000 +vt 0.116883 0.843750 +vt 0.038961 0.875000 +vt 0.116883 0.843750 +vt 0.155844 0.875000 +vt 0.136364 0.875000 +vt 0.116883 0.843750 +vt 0.038961 0.875000 +vt 0.116883 0.843750 +vt 0.909091 0.958333 +vt 0.909091 0.958333 +vt 0.909091 0.958333 +vt 0.967532 0.916667 +vt 0.967532 0.916667 +vt 0.909091 0.916667 +vt 1.000000 0.916667 +vt 0.909091 0.947917 +vt 0.909091 0.947917 +vt 0.909091 0.947917 +vt 0.967532 0.916667 +vt 0.967532 0.916667 +vt 0.909091 0.916667 +vt 1.000000 0.916667 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +s off +f 1709/2691/335 1710/2692/335 1711/2693/335 +f 1712/2694/336 1713/2695/336 1714/2696/336 +f 1711/2697/337 1713/2695/337 1709/2691/337 +f 1710/2698/338 1714/2699/338 1711/2697/338 +f 1715/2700/339 1712/2701/339 1710/2698/339 +f 1709/2691/340 1716/2702/340 1715/2703/340 +f 1717/2704/340 1718/2705/340 1719/2706/340 +f 1720/2707/341 1721/2708/341 1722/2709/341 +f 1717/2710/337 1723/2711/337 1724/2712/337 +f 1717/2713/335 1719/2714/335 1722/2715/335 +f 1718/2716/339 1725/2717/339 1719/2718/339 +f 1718/2716/336 1724/2712/336 1726/2719/336 +f 1727/2720/342 1728/2721/342 1725/2722/342 +f 1726/2723/338 1722/2709/338 1728/2721/338 +f 1729/2724/340 1730/2725/340 1731/2726/340 +f 1732/2727/341 1733/2728/341 1734/2729/341 +f 1729/2730/337 1735/2731/337 1736/2732/337 +f 1729/2733/335 1731/2734/335 1734/2735/335 +f 1730/2725/339 1737/2736/339 1731/2737/339 +f 1730/2725/336 1736/2732/336 1738/2738/336 +f 1739/2739/342 1740/2740/342 1737/2741/342 +f 1738/2742/338 1734/2729/338 1740/2740/338 +f 1741/2743/340 1742/2744/340 1743/2745/340 +f 1744/2746/341 1745/2747/341 1746/2748/341 +f 1741/2749/337 1747/2750/337 1748/2751/337 +f 1741/2752/335 1743/2753/335 1746/2754/335 +f 1742/2744/339 1749/2755/339 1743/2756/339 +f 1742/2744/336 1748/2751/336 1750/2757/336 +f 1751/2758/342 1752/2759/342 1749/2760/342 +f 1750/2761/338 1746/2748/338 1752/2759/338 +f 1753/2762/335 1754/2763/335 1755/2764/335 +f 1756/2765/340 1757/2766/340 1758/2767/340 +f 1759/2768/336 1756/2765/336 1760/2769/336 +f 1761/2770/335 1757/2766/335 1762/2771/335 +f 1763/2772/336 1764/2773/336 1765/2774/336 +f 1764/2773/340 1754/2763/340 1766/2775/340 +f 1767/2776/335 1768/2777/335 1769/2778/335 +f 1770/2779/336 1771/2780/336 1772/2781/336 +f 1771/2780/340 1768/2777/340 1773/2782/340 +f 1774/2783/340 1775/2784/340 1776/2785/340 +f 1777/2786/337 1778/2787/337 1779/2788/337 +f 1780/2789/338 1781/2790/338 1782/2791/338 +f 1783/2792/339 1784/2793/339 1785/2794/339 +f 1786/2795/335 1787/2796/335 1788/2797/335 +f 1789/2798/336 1790/2799/336 1791/2800/336 +f 1788/2801/337 1790/2799/337 1786/2795/337 +f 1787/2802/338 1791/2803/338 1788/2801/338 +f 1792/2804/339 1789/2805/339 1787/2802/339 +f 1786/2795/340 1793/2806/340 1792/2807/340 +f 1794/2808/335 1795/2809/335 1796/2810/335 +f 1797/2811/336 1798/2812/336 1799/2813/336 +f 1796/2814/337 1798/2812/337 1794/2808/337 +f 1795/2815/338 1799/2816/338 1796/2814/338 +f 1800/2817/339 1797/2818/339 1795/2815/339 +f 1794/2808/340 1801/2819/340 1800/2820/340 +f 1802/2821/335 1803/2822/335 1804/2823/335 +f 1805/2824/336 1806/2825/336 1807/2826/336 +f 1804/2827/337 1806/2825/337 1802/2821/337 +f 1803/2828/338 1807/2829/338 1804/2827/338 +f 1808/2830/339 1805/2831/339 1803/2828/339 +f 1802/2821/340 1809/2832/340 1808/2833/340 +f 1810/2834/338 1811/2835/338 1812/2836/338 +f 1813/2837/339 1814/2838/339 1815/2839/339 +f 1816/2840/340 1817/2841/340 1818/2842/340 +f 1819/2843/337 1820/2844/337 1821/2845/337 +f 1709/2691/335 1715/2703/335 1710/2692/335 +f 1712/2694/336 1716/2702/336 1713/2695/336 +f 1711/2697/337 1714/2699/337 1713/2695/337 +f 1710/2698/338 1712/2701/338 1714/2699/338 +f 1715/2700/339 1716/2846/339 1712/2701/339 +f 1709/2691/340 1713/2695/340 1716/2702/340 +f 1717/2704/340 1724/2847/340 1718/2705/340 +f 1720/2707/341 1723/2711/341 1721/2708/341 +f 1717/2710/337 1721/2848/337 1723/2711/337 +f 1719/2714/335 1725/2849/335 1728/2850/335 +f 1722/2715/335 1721/2851/335 1717/2713/335 +f 1719/2714/335 1728/2850/335 1722/2715/335 +f 1718/2716/339 1727/2720/339 1725/2717/339 +f 1724/2712/336 1723/2711/336 1720/2852/336 +f 1726/2719/336 1727/2720/336 1718/2716/336 +f 1724/2712/336 1720/2852/336 1726/2719/336 +f 1727/2720/342 1726/2723/342 1728/2721/342 +f 1726/2723/338 1720/2707/338 1722/2709/338 +f 1729/2724/340 1736/2732/340 1730/2725/340 +f 1732/2727/341 1735/2731/341 1733/2728/341 +f 1729/2730/337 1733/2853/337 1735/2731/337 +f 1731/2734/335 1737/2854/335 1740/2855/335 +f 1734/2735/335 1733/2856/335 1729/2733/335 +f 1731/2734/335 1740/2855/335 1734/2735/335 +f 1730/2725/339 1739/2739/339 1737/2736/339 +f 1736/2732/336 1735/2731/336 1732/2857/336 +f 1738/2738/336 1739/2739/336 1730/2725/336 +f 1736/2732/336 1732/2857/336 1738/2738/336 +f 1739/2739/342 1738/2742/342 1740/2740/342 +f 1738/2742/338 1732/2727/338 1734/2729/338 +f 1741/2743/340 1748/2751/340 1742/2744/340 +f 1744/2746/341 1747/2750/341 1745/2747/341 +f 1741/2749/337 1745/2858/337 1747/2750/337 +f 1743/2753/335 1749/2859/335 1752/2860/335 +f 1746/2754/335 1745/2861/335 1741/2752/335 +f 1743/2753/335 1752/2860/335 1746/2754/335 +f 1742/2744/339 1751/2758/339 1749/2755/339 +f 1748/2751/336 1747/2750/336 1744/2862/336 +f 1750/2757/336 1751/2758/336 1742/2744/336 +f 1748/2751/336 1744/2862/336 1750/2757/336 +f 1751/2758/342 1750/2761/342 1752/2759/342 +f 1750/2761/338 1744/2746/338 1746/2748/338 +f 1753/2762/335 1766/2775/335 1754/2763/335 +f 1756/2765/340 1822/2863/340 1757/2766/340 +f 1759/2768/336 1822/2863/336 1756/2765/336 +f 1761/2770/335 1758/2767/335 1757/2766/335 +f 1763/2772/336 1823/2864/336 1764/2773/336 +f 1764/2773/340 1823/2864/340 1754/2763/340 +f 1767/2776/335 1773/2782/335 1768/2777/335 +f 1770/2779/336 1824/2865/336 1771/2780/336 +f 1771/2780/340 1824/2865/340 1768/2777/340 +f 1774/2783/340 1825/2866/340 1775/2784/340 +f 1777/2786/337 1826/2867/337 1778/2787/337 +f 1780/2789/338 1827/2868/338 1781/2790/338 +f 1783/2792/339 1828/2869/339 1784/2793/339 +f 1786/2795/335 1792/2807/335 1787/2796/335 +f 1789/2798/336 1793/2806/336 1790/2799/336 +f 1788/2801/337 1791/2803/337 1790/2799/337 +f 1787/2802/338 1789/2805/338 1791/2803/338 +f 1792/2804/339 1793/2870/339 1789/2805/339 +f 1786/2795/340 1790/2799/340 1793/2806/340 +f 1794/2808/335 1800/2820/335 1795/2809/335 +f 1797/2811/336 1801/2819/336 1798/2812/336 +f 1796/2814/337 1799/2816/337 1798/2812/337 +f 1795/2815/338 1797/2818/338 1799/2816/338 +f 1800/2817/339 1801/2871/339 1797/2818/339 +f 1794/2808/340 1798/2812/340 1801/2819/340 +f 1802/2821/335 1808/2833/335 1803/2822/335 +f 1805/2824/336 1809/2832/336 1806/2825/336 +f 1804/2827/337 1807/2829/337 1806/2825/337 +f 1803/2828/338 1805/2831/338 1807/2829/338 +f 1808/2830/339 1809/2872/339 1805/2831/339 +f 1802/2821/340 1806/2825/340 1809/2832/340 +f 1810/2834/338 1829/2873/338 1811/2835/338 +f 1813/2837/339 1830/2874/339 1814/2838/339 +f 1816/2840/340 1831/2875/340 1817/2841/340 +f 1819/2843/337 1832/2876/337 1820/2844/337 +o Huge_Pivot +v 0.875000 3.500000 -1.875000 +v 0.625000 4.500000 -1.875000 +v 0.625000 3.500000 -1.875000 +v 0.625000 3.500000 -2.125000 +v 0.875000 4.500000 -2.125000 +v 0.875000 3.500000 -2.125000 +v 0.562500 2.000000 -2.187500 +v 0.937500 2.000000 -1.812500 +v 0.562500 2.000000 -1.812500 +v -0.937500 2.000000 -2.187500 +v -0.562500 2.000000 -1.812500 +v -0.937500 2.000000 -1.812500 +v 0.937500 3.500000 -2.812500 +v 0.562500 3.500000 -3.187500 +v 0.562500 3.500000 -2.812500 +v -0.562500 3.500000 -2.812500 +v -0.937500 3.500000 -3.187500 +v -0.937500 3.500000 -2.812500 +v -0.937500 1.500000 -3.187500 +v -0.562500 3.500000 -3.187500 +v -0.562500 1.500000 -3.187500 +v -0.562500 1.500000 -2.812500 +v -0.937500 1.500000 -2.812500 +v 0.562500 1.500000 -3.187500 +v 0.937500 3.500000 -3.187500 +v 0.937500 1.500000 -3.187500 +v 0.937500 1.500000 -2.812500 +v 0.562500 1.500000 -2.812500 +v 0.937500 3.500000 -1.812500 +v 0.562500 3.500000 -2.187500 +v 0.562500 3.500000 -1.812500 +v -0.562500 3.500000 -1.812500 +v -0.937500 3.500000 -2.187500 +v -0.937500 3.500000 -1.812500 +v -0.562500 2.000000 -2.187500 +v 0.937500 2.000000 -2.187500 +v -0.562500 3.500000 -2.187500 +v 0.937500 3.500000 -2.187500 +v 0.625000 3.500000 -3.125000 +v 0.875000 4.500000 -3.125000 +v 0.875000 3.500000 -3.125000 +v 0.875000 3.500000 -2.875000 +v 0.625000 4.500000 -2.875000 +v 0.625000 3.500000 -2.875000 +v 0.875000 4.500000 -2.875000 +v 0.625000 4.500000 -3.125000 +v 0.875000 4.500000 -1.875000 +v 0.625000 4.500000 -2.125000 +v -0.625000 3.500000 -1.875000 +v -0.875000 4.500000 -1.875000 +v -0.875000 3.500000 -1.875000 +v -0.875000 3.500000 -2.125000 +v -0.625000 4.500000 -2.125000 +v -0.625000 3.500000 -2.125000 +v -0.875000 3.500000 -3.125000 +v -0.625000 4.500000 -3.125000 +v -0.625000 3.500000 -3.125000 +v -0.625000 3.500000 -2.875000 +v -0.875000 4.500000 -2.875000 +v -0.875000 3.500000 -2.875000 +v -0.625000 4.500000 -2.875000 +v -0.875000 4.500000 -3.125000 +v -0.625000 4.500000 -1.875000 +v -0.875000 4.500000 -2.125000 +v 0.750000 2.000000 -2.187500 +v 0.750000 3.500000 -2.812500 +v 0.750000 3.500000 -2.187500 +v -0.750000 3.500000 -2.812500 +v -0.750000 2.000000 -2.187500 +v -0.750000 3.500000 -2.187500 +v -0.562500 2.000000 -2.000000 +v 0.562500 3.500000 -2.000000 +v -0.562500 3.500000 -2.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 2.000000 -3.000000 +v -0.562500 3.500000 -3.000000 +v 0.750000 3.500000 -2.812500 +v 0.750000 2.000000 -2.187500 +v 0.750000 3.500000 -2.187500 +v -0.750000 2.000000 -2.187500 +v -0.750000 3.500000 -2.812500 +v -0.750000 3.500000 -2.187500 +v 0.562500 3.500000 -2.000000 +v -0.562500 2.000000 -2.000000 +v -0.562500 3.500000 -2.000000 +v -0.562500 2.000000 -3.000000 +v 0.562500 3.500000 -3.000000 +v -0.562500 3.500000 -3.000000 +v 0.750000 2.000000 -2.812500 +v -0.750000 2.000000 -2.812500 +v 0.562500 2.000000 -2.000000 +v 0.562500 2.000000 -3.000000 +v 0.750000 2.000000 -2.812500 +v -0.750000 2.000000 -2.812500 +v 0.562500 2.000000 -2.000000 +v 0.562500 2.000000 -3.000000 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.051948 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.051948 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.071429 0.541667 +vt 0.051948 0.708333 +vt 0.051948 0.541667 +vt 0.110390 0.541667 +vt 0.090909 0.708333 +vt 0.090909 0.541667 +vt 0.071429 0.541667 +vt 0.051948 0.708333 +vt 0.051948 0.541667 +vt 0.110390 0.541667 +vt 0.090909 0.708333 +vt 0.090909 0.541667 +vt 0.129870 0.541667 +vt 0.110390 0.708333 +vt 0.129870 0.541667 +vt 0.110390 0.708333 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.051948 0.739583 +vt 0.071429 0.708333 +vt 0.071429 0.739583 +vt 0.110390 0.583333 +vt 0.090909 0.708333 +vt 0.090909 0.583333 +vt 0.129870 0.583333 +vt 0.110390 0.708333 +vt 0.110390 0.583333 +vt 0.090909 0.583333 +vt 0.071429 0.583333 +vt 0.129870 0.583333 +vt 0.110390 0.708333 +vt 0.071429 0.583333 +vt 0.051948 0.708333 +vt 0.051948 0.583333 +vt 0.090909 0.708333 +vt 0.051948 0.708333 +vt 0.051948 0.583333 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.142857 0.541667 +vt 0.129870 0.625000 +vt 0.129870 0.541667 +vt 0.168831 0.541667 +vt 0.155844 0.625000 +vt 0.155844 0.541667 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.181818 0.541667 +vt 0.168831 0.625000 +vt 0.142857 0.625000 +vt 0.240260 0.541667 +vt 0.272727 0.666667 +vt 0.240260 0.666667 +vt 0.240260 0.666667 +vt 0.272727 0.541667 +vt 0.272727 0.666667 +vt 0.181818 0.541667 +vt 0.240260 0.666667 +vt 0.181818 0.666667 +vt 0.181818 0.666667 +vt 0.240260 0.541667 +vt 0.240260 0.666667 +vt 0.272727 0.666667 +vt 0.240260 0.541667 +vt 0.240260 0.666667 +vt 0.272727 0.541667 +vt 0.240260 0.666667 +vt 0.272727 0.666667 +vt 0.240260 0.666667 +vt 0.181818 0.541667 +vt 0.181818 0.666667 +vt 0.240260 0.541667 +vt 0.181818 0.666667 +vt 0.240260 0.666667 +vt 0.071429 0.708333 +vt 0.071429 0.708333 +vt 0.129870 0.708333 +vt 0.129870 0.708333 +vt 0.129870 0.708333 +vt 0.129870 0.708333 +vt 0.181818 0.625000 +vt 0.181818 0.625000 +vt 0.181818 0.625000 +vt 0.181818 0.625000 +vt 0.272727 0.541667 +vt 0.240260 0.541667 +vt 0.240260 0.541667 +vt 0.181818 0.541667 +vt 0.272727 0.541667 +vt 0.240260 0.541667 +vt 0.240260 0.541667 +vt 0.181818 0.541667 +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 +s off +f 1833/2877/343 1834/2878/343 1835/2879/343 +f 1836/2880/344 1837/2881/344 1838/2882/344 +f 1839/2883/345 1840/2884/345 1841/2885/345 +f 1842/2886/345 1843/2887/345 1844/2888/345 +f 1845/2889/346 1846/2890/346 1847/2891/346 +f 1848/2892/346 1849/2893/346 1850/2894/346 +f 1851/2895/344 1852/2896/344 1853/2897/344 +f 1854/2898/343 1850/2899/343 1855/2900/343 +f 1856/2901/344 1857/2902/344 1858/2903/344 +f 1859/2904/343 1847/2905/343 1860/2906/343 +f 1853/2907/347 1848/2908/347 1854/2898/347 +f 1855/2900/348 1849/2893/348 1851/2895/348 +f 1858/2909/347 1845/2910/347 1859/2904/347 +f 1860/2906/348 1846/2890/348 1856/2901/348 +f 1861/2911/346 1862/2912/346 1863/2913/346 +f 1864/2914/346 1865/2915/346 1866/2916/346 +f 1840/2917/343 1863/2918/343 1841/2919/343 +f 1867/2920/347 1864/2921/347 1843/2922/347 +f 1844/2923/348 1865/2915/348 1842/2924/348 +f 1868/2925/347 1861/2926/347 1840/2917/347 +f 1841/2919/348 1862/2912/348 1839/2927/348 +f 1842/2924/344 1869/2928/344 1867/2929/344 +f 1843/2922/343 1866/2930/343 1844/2923/343 +f 1839/2927/344 1870/2931/344 1868/2932/344 +f 1871/2933/344 1872/2934/344 1873/2935/344 +f 1874/2936/343 1875/2937/343 1876/2938/343 +f 1873/2939/347 1877/2940/347 1874/2936/347 +f 1876/2938/348 1878/2941/348 1871/2933/348 +f 1838/2942/347 1879/2943/347 1833/2877/347 +f 1835/2879/348 1880/2944/348 1836/2880/348 +f 1881/2945/343 1882/2946/343 1883/2947/343 +f 1884/2948/344 1885/2949/344 1886/2950/344 +f 1887/2951/344 1888/2952/344 1889/2953/344 +f 1890/2954/343 1891/2955/343 1892/2956/343 +f 1889/2957/347 1893/2958/347 1890/2954/347 +f 1892/2956/348 1894/2959/348 1887/2951/348 +f 1886/2960/347 1895/2961/347 1881/2945/347 +f 1883/2947/348 1896/2962/348 1884/2948/348 +f 1897/2963/347 1898/2964/347 1899/2965/347 +f 1900/2966/348 1901/2967/348 1902/2968/348 +f 1903/2969/343 1904/2970/343 1905/2971/343 +f 1906/2972/344 1907/2973/344 1908/2974/344 +f 1909/2975/348 1910/2976/348 1911/2977/348 +f 1912/2978/347 1913/2979/347 1914/2980/347 +f 1915/2981/344 1916/2982/344 1917/2983/344 +f 1918/2984/343 1919/2985/343 1920/2986/343 +f 1833/2877/343 1879/2943/343 1834/2878/343 +f 1836/2880/344 1880/2944/344 1837/2881/344 +f 1839/2883/345 1868/2987/345 1840/2884/345 +f 1842/2886/345 1867/2988/345 1843/2887/345 +f 1845/2889/346 1857/2902/346 1846/2890/346 +f 1848/2892/346 1852/2896/346 1849/2893/346 +f 1851/2895/344 1849/2893/344 1852/2896/344 +f 1854/2898/343 1848/2908/343 1850/2899/343 +f 1856/2901/344 1846/2890/344 1857/2902/344 +f 1859/2904/343 1845/2910/343 1847/2905/343 +f 1853/2907/347 1852/2989/347 1848/2908/347 +f 1855/2900/348 1850/2899/348 1849/2893/348 +f 1858/2909/347 1857/2990/347 1845/2910/347 +f 1860/2906/348 1847/2905/348 1846/2890/348 +f 1861/2911/346 1870/2931/346 1862/2912/346 +f 1864/2914/346 1869/2928/346 1865/2915/346 +f 1840/2917/343 1861/2926/343 1863/2918/343 +f 1867/2920/347 1869/2991/347 1864/2921/347 +f 1844/2923/348 1866/2930/348 1865/2915/348 +f 1868/2925/347 1870/2992/347 1861/2926/347 +f 1841/2919/348 1863/2918/348 1862/2912/348 +f 1842/2924/344 1865/2915/344 1869/2928/344 +f 1843/2922/343 1864/2921/343 1866/2930/343 +f 1839/2927/344 1862/2912/344 1870/2931/344 +f 1871/2933/344 1878/2941/344 1872/2934/344 +f 1874/2936/343 1877/2940/343 1875/2937/343 +f 1873/2939/347 1872/2993/347 1877/2940/347 +f 1876/2938/348 1875/2937/348 1878/2941/348 +f 1838/2942/347 1837/2994/347 1879/2943/347 +f 1835/2879/348 1834/2878/348 1880/2944/348 +f 1881/2945/343 1895/2961/343 1882/2946/343 +f 1884/2948/344 1896/2962/344 1885/2949/344 +f 1887/2951/344 1894/2959/344 1888/2952/344 +f 1890/2954/343 1893/2958/343 1891/2955/343 +f 1889/2957/347 1888/2995/347 1893/2958/347 +f 1892/2956/348 1891/2955/348 1894/2959/348 +f 1886/2960/347 1885/2996/347 1895/2961/347 +f 1883/2947/348 1882/2946/348 1896/2962/348 +f 1897/2963/347 1921/2997/347 1898/2964/347 +f 1900/2966/348 1922/2998/348 1901/2967/348 +f 1903/2969/343 1923/2999/343 1904/2970/343 +f 1906/2972/344 1924/3000/344 1907/2973/344 +f 1909/2975/348 1925/3001/348 1910/2976/348 +f 1912/2978/347 1926/3002/347 1913/2979/347 +f 1915/2981/344 1927/3003/344 1916/2982/344 +f 1918/2984/343 1928/3004/343 1919/2985/343 +o Huge_Rope +v 0.125000 5.750000 2.500000 +v 0.198223 5.573223 1.000000 +v 0.198223 5.573223 2.500000 +v 0.375000 5.500000 1.000000 +v 0.375000 5.500000 2.500000 +v 0.551777 5.573223 2.500000 +v 0.625000 5.750000 1.000000 +v 0.625000 5.750000 2.500000 +v 0.551777 5.573223 1.000000 +v 0.551777 5.926777 2.500000 +v 0.375000 6.000000 1.000000 +v 0.375000 6.000000 2.500000 +v 0.198223 5.926777 2.500000 +v 0.125000 5.750000 1.000000 +v 0.551777 5.926777 1.000000 +v 0.198223 5.926777 1.000000 +v -0.625000 5.750000 2.500000 +v -0.551777 5.573223 1.000000 +v -0.551777 5.573223 2.500000 +v -0.375000 5.500000 1.000000 +v -0.375000 5.500000 2.500000 +v -0.198223 5.573223 2.500000 +v -0.125000 5.750000 1.000000 +v -0.125000 5.750000 2.500000 +v -0.198223 5.573223 1.000000 +v -0.198223 5.926777 2.500000 +v -0.375000 6.000000 1.000000 +v -0.375000 6.000000 2.500000 +v -0.551777 5.926777 2.500000 +v -0.625000 5.750000 1.000000 +v -0.198223 5.926777 1.000000 +v -0.551777 5.926777 1.000000 +v 0.125000 10.250000 2.250000 +v 0.198223 10.073223 0.750000 +v 0.198223 10.073223 2.250000 +v 0.375000 10.000000 0.750000 +v 0.375000 10.000000 2.250000 +v 0.551777 10.073223 2.250000 +v 0.625000 10.250000 0.750000 +v 0.625000 10.250000 2.250000 +v 0.551777 10.073223 0.750000 +v 0.551777 10.426777 2.250000 +v 0.375000 10.500000 0.750000 +v 0.375000 10.500000 2.250000 +v 0.198223 10.426777 2.250000 +v 0.125000 10.250000 0.750000 +v 0.551777 10.426777 0.750000 +v 0.198223 10.426777 0.750000 +v -0.625000 10.250000 2.250000 +v -0.551777 10.073223 0.750000 +v -0.551777 10.073223 2.250000 +v -0.375000 10.000000 0.750000 +v -0.375000 10.000000 2.250000 +v -0.198223 10.073223 2.250000 +v -0.125000 10.250000 0.750000 +v -0.125000 10.250000 2.250000 +v -0.198223 10.073223 0.750000 +v -0.198223 10.426777 2.250000 +v -0.375000 10.500000 0.750000 +v -0.375000 10.500000 2.250000 +v -0.551777 10.426777 2.250000 +v -0.625000 10.250000 0.750000 +v -0.198223 10.426777 0.750000 +v -0.551777 10.426777 0.750000 +vt 0.538961 0.500000 +vt 0.529221 0.625000 +vt 0.529221 0.500000 +vt 0.519481 0.625000 +vt 0.519481 0.500000 +vt 0.587662 0.500000 +vt 0.577922 0.625000 +vt 0.577922 0.500000 +vt 0.597403 0.625000 +vt 0.587662 0.625000 +vt 0.568182 0.500000 +vt 0.558442 0.625000 +vt 0.558442 0.500000 +vt 0.548701 0.500000 +vt 0.538961 0.625000 +vt 0.568182 0.625000 +vt 0.548701 0.625000 +vt 0.616883 0.500000 +vt 0.607143 0.625000 +vt 0.607143 0.500000 +vt 0.597403 0.625000 +vt 0.597403 0.500000 +vt 0.665585 0.500000 +vt 0.655844 0.625000 +vt 0.655844 0.500000 +vt 0.675325 0.625000 +vt 0.665585 0.625000 +vt 0.646104 0.500000 +vt 0.636364 0.625000 +vt 0.636364 0.500000 +vt 0.626623 0.500000 +vt 0.616883 0.625000 +vt 0.646104 0.625000 +vt 0.626623 0.625000 +vt 0.538961 0.500000 +vt 0.529221 0.625000 +vt 0.529221 0.500000 +vt 0.519481 0.625000 +vt 0.519481 0.500000 +vt 0.587662 0.500000 +vt 0.577922 0.625000 +vt 0.577922 0.500000 +vt 0.597403 0.625000 +vt 0.587662 0.625000 +vt 0.568182 0.500000 +vt 0.558442 0.625000 +vt 0.558442 0.500000 +vt 0.548701 0.500000 +vt 0.538961 0.625000 +vt 0.568182 0.625000 +vt 0.548701 0.625000 +vt 0.616883 0.500000 +vt 0.607143 0.625000 +vt 0.607143 0.500000 +vt 0.597403 0.625000 +vt 0.597403 0.500000 +vt 0.665585 0.500000 +vt 0.655844 0.625000 +vt 0.655844 0.500000 +vt 0.675325 0.625000 +vt 0.665585 0.625000 +vt 0.646104 0.500000 +vt 0.636364 0.625000 +vt 0.636364 0.500000 +vt 0.626623 0.500000 +vt 0.616883 0.625000 +vt 0.646104 0.625000 +vt 0.626623 0.625000 +vt 0.597403 0.500000 +vt 0.675325 0.500000 +vt 0.597403 0.500000 +vt 0.675325 0.500000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +s 1 +f 1929/3005/349 1930/3006/350 1931/3007/350 +f 1931/3007/350 1932/3008/351 1933/3009/351 +f 1934/3010/352 1935/3011/353 1936/3012/353 +f 1934/3010/352 1932/3013/351 1937/3014/352 +f 1938/3015/354 1939/3016/355 1940/3017/355 +f 1941/3018/356 1942/3019/349 1929/3005/349 +f 1936/3012/353 1943/3020/354 1938/3015/354 +f 1940/3017/355 1944/3021/356 1941/3018/356 +f 1945/3022/349 1946/3023/350 1947/3024/350 +f 1947/3024/350 1948/3025/351 1949/3026/351 +f 1950/3027/352 1951/3028/353 1952/3029/353 +f 1950/3027/352 1948/3030/351 1953/3031/352 +f 1954/3032/354 1955/3033/355 1956/3034/355 +f 1957/3035/356 1958/3036/349 1945/3022/349 +f 1952/3029/353 1959/3037/354 1954/3032/354 +f 1956/3034/355 1960/3038/356 1957/3035/356 +f 1961/3039/349 1962/3040/350 1963/3041/350 +f 1963/3041/350 1964/3042/351 1965/3043/351 +f 1966/3044/352 1967/3045/353 1968/3046/353 +f 1966/3044/352 1964/3047/351 1969/3048/352 +f 1970/3049/354 1971/3050/355 1972/3051/355 +f 1973/3052/356 1974/3053/349 1961/3039/349 +f 1968/3046/353 1975/3054/354 1970/3049/354 +f 1972/3051/355 1976/3055/356 1973/3052/356 +f 1977/3056/349 1978/3057/350 1979/3058/350 +f 1979/3058/350 1980/3059/351 1981/3060/351 +f 1982/3061/352 1983/3062/353 1984/3063/353 +f 1982/3061/352 1980/3064/351 1985/3065/352 +f 1986/3066/354 1987/3067/355 1988/3068/355 +f 1989/3069/356 1990/3070/349 1977/3056/349 +f 1984/3063/353 1991/3071/354 1986/3066/354 +f 1988/3068/355 1992/3072/356 1989/3069/356 +f 1929/3005/349 1942/3019/349 1930/3006/350 +f 1931/3007/350 1930/3006/350 1932/3008/351 +f 1934/3010/352 1937/3014/352 1935/3011/353 +f 1934/3010/352 1933/3073/351 1932/3013/351 +f 1938/3015/354 1943/3020/354 1939/3016/355 +f 1941/3018/356 1944/3021/356 1942/3019/349 +f 1936/3012/353 1935/3011/353 1943/3020/354 +f 1940/3017/355 1939/3016/355 1944/3021/356 +f 1945/3022/349 1958/3036/349 1946/3023/350 +f 1947/3024/350 1946/3023/350 1948/3025/351 +f 1950/3027/352 1953/3031/352 1951/3028/353 +f 1950/3027/352 1949/3074/351 1948/3030/351 +f 1954/3032/354 1959/3037/354 1955/3033/355 +f 1957/3035/356 1960/3038/356 1958/3036/349 +f 1952/3029/353 1951/3028/353 1959/3037/354 +f 1956/3034/355 1955/3033/355 1960/3038/356 +f 1961/3039/349 1974/3053/349 1962/3040/350 +f 1963/3041/350 1962/3040/350 1964/3042/351 +f 1966/3044/352 1969/3048/352 1967/3045/353 +f 1966/3044/352 1965/3075/351 1964/3047/351 +f 1970/3049/354 1975/3054/354 1971/3050/355 +f 1973/3052/356 1976/3055/356 1974/3053/349 +f 1968/3046/353 1967/3045/353 1975/3054/354 +f 1972/3051/355 1971/3050/355 1976/3055/356 +f 1977/3056/349 1990/3070/349 1978/3057/350 +f 1979/3058/350 1978/3057/350 1980/3059/351 +f 1982/3061/352 1985/3065/352 1983/3062/353 +f 1982/3061/352 1981/3076/351 1980/3064/351 +f 1986/3066/354 1991/3071/354 1987/3067/355 +f 1989/3069/356 1992/3072/356 1990/3070/349 +f 1984/3063/353 1983/3062/353 1991/3071/354 +f 1988/3068/355 1987/3067/355 1992/3072/356 +o Atlas_Pad +v 1.500000 2.000000 -1.500000 v -1.500000 2.000000 1.500000 v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 1.500000 +v 3.500000 2.000000 3.500000 +v 1.500000 2.000000 1.500000 +v 3.500000 1.750000 3.500000 +v 3.250000 1.750000 -3.250000 +v 3.500000 1.750000 -3.500000 +v 3.500000 2.000000 -3.500000 +v -3.500000 2.000000 -3.500000 +v -3.500000 1.750000 3.500000 +v -3.500000 2.000000 3.500000 +v -3.500000 1.750000 -3.500000 +v -3.250000 1.000000 -3.250000 +v -3.250000 1.750000 -3.250000 +v -3.250000 1.750000 3.250000 +v 3.250000 1.750000 3.250000 v -1.500000 2.000000 -1.500000 +v 3.250000 1.000000 3.250000 +v 3.250000 1.000000 -3.250000 +v -3.250000 1.000000 3.250000 v 1.500000 2.000000 -1.500000 -v -2.000000 2.000000 -3.500000 -v 2.000000 2.000000 -3.500000 -v -2.000000 1.000000 -4.500000 -v -2.000000 1.000000 -3.500000 -v 2.000000 1.000000 -3.500000 -v 2.000000 1.000000 -4.500000 -v -2.000000 2.000000 -4.000000 -v -2.000000 1.500000 -4.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 v 2.000000 1.500000 -4.500000 +v -2.000000 1.000000 -4.500000 +v -2.000000 1.500000 -4.500000 +v 2.000000 2.000000 -3.500000 +v -2.000000 2.000000 -4.000000 +v -2.000000 2.000000 -3.500000 v 2.000000 2.000000 -4.000000 +v 2.000000 1.000000 -3.500000 +v -2.000000 1.000000 -3.500000 +v -4.500000 2.000000 1.500000 +v -3.500000 2.000000 1.500000 +v -3.500000 1.750000 1.500000 +v -4.500000 2.000000 4.500000 +v -4.500000 1.000000 1.500000 +v -4.500000 1.000000 4.500000 +v -1.500000 1.000000 4.500000 v -1.500000 1.750000 3.500000 +v -1.500000 2.000000 4.500000 +v -3.500000 2.000000 3.500000 +v -4.500000 4.000000 1.500000 +v -1.500000 4.000000 4.500000 +v -4.500000 4.000000 4.500000 +v -4.500000 4.250000 4.500000 +v -1.500000 4.250000 4.500000 +v -4.500000 4.250000 1.500000 +v -1.500000 4.250000 1.500000 +v -1.500000 4.000000 1.500000 +v -4.000000 2.000000 4.250000 +v -2.000000 4.000000 4.250000 +v -4.000000 4.000000 4.250000 +v -1.500000 2.000000 2.000000 +v -2.000000 4.000000 2.000000 +v -2.000000 2.000000 2.000000 +v -4.000000 2.000000 1.500000 +v -4.000000 4.000000 2.000000 +v -4.000000 2.000000 2.000000 +v -1.500000 2.000000 1.500000 +v -1.500000 4.000000 2.000000 +v -4.500000 2.000000 1.500000 +v -4.000000 4.000000 1.500000 +v -2.000000 2.000000 1.500000 +v -1.500000 4.000000 1.500000 +v -4.500000 2.000000 4.500000 +v -4.500000 4.000000 4.000000 +v -4.500000 2.000000 4.000000 +v -2.000000 2.000000 4.500000 +v -2.000000 4.000000 4.000000 +v -2.000000 2.000000 4.000000 +v -4.000000 2.000000 4.500000 +v -4.500000 4.000000 4.500000 +v -1.500000 2.000000 4.500000 +v -2.000000 4.000000 4.500000 +v -4.000000 2.000000 4.000000 +v -4.000000 4.000000 4.500000 +v -1.500000 2.000000 4.000000 +v -1.500000 4.000000 4.500000 +v -4.000000 4.000000 4.000000 +v -4.500000 2.000000 2.000000 +v -4.500000 4.000000 1.500000 +v -1.500000 4.000000 4.000000 +v -2.000000 4.000000 1.500000 +v -4.500000 4.000000 2.000000 +v -2.000000 4.000000 1.750000 +v -4.000000 2.000000 1.750000 +v -4.000000 4.000000 1.750000 +v -1.750000 4.000000 4.000000 +v -1.750000 2.000000 2.000000 +v -1.750000 4.000000 2.000000 +v -4.250000 2.000000 2.000000 +v -4.250000 4.000000 4.000000 +v -4.250000 4.000000 2.000000 +v -4.500000 6.250000 1.500000 +v -1.500000 6.250000 4.500000 +v -4.500000 6.250000 4.500000 +v -4.500000 6.500000 4.500000 +v -1.500000 6.500000 4.500000 +v -4.500000 6.500000 1.500000 +v -1.500000 6.500000 1.500000 +v -1.500000 6.250000 1.500000 +v -4.000000 4.250000 4.250000 +v -2.000000 6.250000 4.250000 +v -4.000000 6.250000 4.250000 +v -1.500000 4.250000 2.000000 +v -2.000000 6.250000 2.000000 +v -2.000000 4.250000 2.000000 +v -4.000000 4.250000 1.500000 +v -4.000000 6.250000 2.000000 +v -4.000000 4.250000 2.000000 +v -1.500000 4.250000 1.500000 +v -1.500000 6.250000 2.000000 +v -4.500000 4.250000 1.500000 +v -4.000000 6.250000 1.500000 +v -2.000000 4.250000 1.500000 +v -1.500000 6.250000 1.500000 +v -4.500000 4.250000 4.500000 +v -4.500000 6.250000 4.000000 +v -4.500000 4.250000 4.000000 +v -2.000000 4.250000 4.500000 +v -2.000000 6.250000 4.000000 +v -2.000000 4.250000 4.000000 +v -4.000000 4.250000 4.500000 +v -4.500000 6.250000 4.500000 +v -1.500000 4.250000 4.500000 +v -2.000000 6.250000 4.500000 +v -4.000000 4.250000 4.000000 +v -4.000000 6.250000 4.500000 +v -1.500000 4.250000 4.000000 +v -1.500000 6.250000 4.500000 +v -4.000000 6.250000 4.000000 +v -4.500000 4.250000 2.000000 +v -4.500000 6.250000 1.500000 +v -1.500000 6.250000 4.000000 +v -2.000000 6.250000 1.500000 +v -4.500000 6.250000 2.000000 +v -2.000000 6.250000 1.750000 +v -4.000000 4.250000 1.750000 +v -4.000000 6.250000 1.750000 +v -1.750000 6.250000 4.000000 +v -1.750000 4.250000 2.000000 +v -1.750000 6.250000 2.000000 +v -4.250000 4.250000 2.000000 +v -4.250000 6.250000 4.000000 +v -4.250000 6.250000 2.000000 +v -4.500000 8.500000 1.500000 +v -1.500000 8.500000 4.500000 +v -4.500000 8.500000 4.500000 +v -4.500000 8.750000 4.500000 +v -1.500000 8.750000 4.500000 +v -4.500000 8.750000 1.500000 +v -1.500000 8.750000 1.500000 +v -1.500000 8.500000 1.500000 +v -4.000000 6.500000 4.250000 +v -2.000000 8.500000 4.250000 +v -4.000000 8.500000 4.250000 +v -1.500000 6.500000 2.000000 +v -2.000000 8.500000 2.000000 +v -2.000000 6.500000 2.000000 +v -4.000000 6.500000 1.500000 +v -4.000000 8.500000 2.000000 +v -4.000000 6.500000 2.000000 +v -1.500000 6.500000 1.500000 +v -1.500000 8.500000 2.000000 +v -4.500000 6.500000 1.500000 +v -4.000000 8.500000 1.500000 +v -2.000000 6.500000 1.500000 +v -1.500000 8.500000 1.500000 +v -4.500000 6.500000 4.500000 +v -4.500000 8.500000 4.000000 +v -4.500000 6.500000 4.000000 +v -2.000000 6.500000 4.500000 +v -2.000000 8.500000 4.000000 +v -2.000000 6.500000 4.000000 +v -4.000000 6.500000 4.500000 +v -4.500000 8.500000 4.500000 +v -1.500000 6.500000 4.500000 +v -2.000000 8.500000 4.500000 +v -4.000000 6.500000 4.000000 +v -4.000000 8.500000 4.500000 +v -1.500000 6.500000 4.000000 +v -1.500000 8.500000 4.500000 +v -4.000000 8.500000 4.000000 +v -4.500000 6.500000 2.000000 +v -4.500000 8.500000 1.500000 +v -1.500000 8.500000 4.000000 +v -2.000000 8.500000 1.500000 +v -4.500000 8.500000 2.000000 +v -2.000000 8.500000 1.750000 +v -4.000000 6.500000 1.750000 +v -4.000000 8.500000 1.750000 +v -1.750000 8.500000 4.000000 +v -1.750000 6.500000 2.000000 +v -1.750000 8.500000 2.000000 +v -4.250000 6.500000 2.000000 +v -4.250000 8.500000 4.000000 +v -4.250000 8.500000 2.000000 +v -4.500000 10.750000 1.500000 +v -1.500000 10.750000 4.500000 +v -4.500000 10.750000 4.500000 +v -4.500000 11.000000 4.500000 +v -1.500000 11.000000 4.500000 +v -4.500000 11.000000 1.500000 +v -1.500000 11.000000 1.500000 +v -1.500000 10.750000 1.500000 +v -4.000000 8.750000 4.250000 +v -2.000000 10.750000 4.250000 +v -4.000000 10.750000 4.250000 +v -1.500000 8.750000 2.000000 +v -2.000000 10.750000 2.000000 +v -2.000000 8.750000 2.000000 +v -4.000000 8.750000 1.500000 +v -4.000000 10.750000 2.000000 +v -4.000000 8.750000 2.000000 +v -1.500000 8.750000 1.500000 +v -1.500000 10.750000 2.000000 +v -4.500000 8.750000 1.500000 +v -4.000000 10.750000 1.500000 +v -2.000000 8.750000 1.500000 +v -1.500000 10.750000 1.500000 +v -4.500000 8.750000 4.500000 +v -4.500000 10.750000 4.000000 +v -4.500000 8.750000 4.000000 +v -2.000000 8.750000 4.500000 +v -2.000000 10.750000 4.000000 +v -2.000000 8.750000 4.000000 +v -4.000000 8.750000 4.500000 +v -4.500000 10.750000 4.500000 +v -1.500000 8.750000 4.500000 +v -2.000000 10.750000 4.500000 +v -4.000000 8.750000 4.000000 +v -4.000000 10.750000 4.500000 +v -1.500000 8.750000 4.000000 +v -1.500000 10.750000 4.500000 +v -4.000000 10.750000 4.000000 +v -4.500000 8.750000 2.000000 +v -4.500000 10.750000 1.500000 +v -1.500000 10.750000 4.000000 +v -2.000000 10.750000 1.500000 +v -4.500000 10.750000 2.000000 +v -2.000000 10.750000 1.750000 +v -4.000000 8.750000 1.750000 +v -4.000000 10.750000 1.750000 +v -1.750000 10.750000 4.000000 +v -1.750000 8.750000 2.000000 +v -1.750000 10.750000 2.000000 +v -4.250000 8.750000 2.000000 +v -4.250000 10.750000 4.000000 +v -4.250000 10.750000 2.000000 +v -3.187500 15.250000 3.750001 +v -3.750000 15.250000 4.625000 +v -3.187500 13.250000 3.750000 +v -3.750000 15.250000 3.187501 +v -3.750000 13.250000 3.187500 +v -4.625000 15.250000 3.750001 +v -3.375000 15.250000 4.250000 +v -4.625000 15.250000 3.750001 +v -4.250000 15.250000 3.375001 +v -3.750000 15.500000 4.625000 +v -3.750000 15.250000 4.625000 +v -4.250000 15.500000 3.375001 +v -3.375000 15.500000 4.250000 +v -2.250000 15.250000 1.375001 +v -1.750000 15.250000 2.625001 +v -2.625000 15.250000 1.750001 +v -1.750000 15.500000 2.625001 +v -2.250000 15.500000 1.375001 +v -2.625000 15.500000 1.750001 +v -1.375000 15.500000 2.250001 +v -1.375000 15.250000 2.250001 +v -4.250000 15.500000 2.625001 +v -4.250000 15.250000 2.625001 +v -1.750000 15.500000 3.375001 +v -1.750000 15.250000 3.375001 +v -4.625000 15.500000 3.750001 +v -2.625000 15.250000 4.250000 +v -3.375000 15.250000 1.750001 +v -2.625000 15.500000 4.250000 +v -3.375000 15.500000 1.750001 +v -4.250000 13.000000 2.625000 +v -3.375000 13.250000 1.750001 +v -3.375000 13.000000 1.750001 +v -3.937500 2.000000 2.812500 +v -3.562500 17.500000 2.812501 +v -3.562500 2.000000 2.812500 +v -1.750000 13.000000 3.375000 +v -2.625000 13.250000 4.250000 +v -2.625000 13.000000 4.250000 +v -1.750000 13.250000 2.625000 +v -1.750000 13.000000 2.625000 +v -4.250000 13.000000 3.375000 +v -3.187500 2.000000 3.562500 +v -2.812500 17.500000 3.562501 +v -2.812500 2.000000 3.562500 +v -2.062500 2.000000 3.187500 +v -2.437500 17.500000 3.187501 +v -2.437500 2.000000 3.187500 +v -2.437500 17.500000 2.812501 +v -2.437500 2.000000 2.812500 +v -2.062500 17.500000 2.812501 +v -2.062500 2.000000 2.812500 +v -2.812500 2.000000 2.437500 +v -3.187500 17.500000 2.437501 +v -3.187500 2.000000 2.437500 +v -3.187500 17.500000 2.062501 +v -3.187500 2.000000 2.062500 +v -3.562500 17.500000 3.187501 +v -3.562500 2.000000 3.187500 +v -2.812500 2.000000 2.062500 +v -2.812500 17.500000 2.437501 +v -2.812500 17.500000 2.062501 +v -3.187500 2.000000 3.937500 +v -3.187500 17.500000 3.562501 +v -3.937500 2.000000 3.187500 +v -3.937500 17.500000 2.812501 +v -2.812500 17.500000 3.937501 +v -2.812500 2.000000 3.937500 +v -3.187500 17.500000 3.937501 +v -3.937500 17.500000 3.187501 +v -2.062500 17.500000 3.187501 +v -3.750000 17.500000 2.812501 +v -3.187500 2.000000 2.250000 +v -3.750000 2.000000 2.812500 +v -2.250000 17.500000 3.187501 +v -2.812500 2.000000 3.750000 +v -2.250000 2.000000 3.187500 +v -3.187500 2.000000 3.750000 +v -3.750000 17.500000 3.187501 +v -3.750000 2.000000 3.187500 +v -2.812500 2.000000 2.250000 +v -2.250000 17.500000 2.812501 +v -2.250000 2.000000 2.812500 +v -2.625000 13.250000 1.750001 +v -2.625000 13.000000 1.750001 +v -3.375000 13.250000 4.250000 +v -3.375000 13.000000 4.250000 +v -1.375000 13.250000 2.250000 +v -4.625000 13.250000 3.750000 +v -4.250000 13.250000 3.375000 +v -1.750000 13.250000 3.375000 +v -4.250000 13.250000 2.625000 +v -1.750000 17.500000 2.625001 +v -2.625000 17.500000 4.250001 +v -4.250000 17.500000 3.375001 +v -2.625000 17.750000 4.250001 +v -1.750000 17.750000 2.625001 +v -3.375000 17.750000 1.750001 +v -1.750000 17.500000 3.375001 +v -4.250000 17.500000 2.625001 +v -3.375000 17.500000 1.750001 +v -2.625000 17.750000 1.750001 +v -2.625000 17.500000 1.750001 +v -3.375000 17.750000 4.250001 +v -3.375000 17.500000 4.250001 +v -4.250000 17.750000 3.375001 +v -1.750000 17.750000 3.375001 +v -4.250000 17.750000 2.625001 +v -2.250000 13.000000 1.375001 +v -1.375000 13.000000 2.250000 +v -2.250000 13.250000 1.375001 +v -3.750000 13.000000 4.625000 +v -3.750000 13.250000 4.625000 +v -4.625000 13.000000 3.750000 +v 1.375000 3.000000 0.250000 +v 1.375000 4.000000 -0.250000 +v 1.375000 4.000000 0.250000 +v 1.125000 4.000000 -0.250000 +v 1.125000 3.000000 0.250000 +v 1.125000 4.000000 0.250000 +v 1.375000 3.000000 -0.250000 +v 1.125000 3.000000 -0.250000 +v 3.500000 2.250000 0.250000 +v 2.500000 2.250000 -0.250000 +v 2.500000 2.250000 0.250000 +v 3.500000 2.000000 -0.250000 +v 3.500000 2.000000 0.250000 +v 2.500000 2.000000 0.250000 +v 2.500000 2.000000 -0.250000 +v 3.500000 2.250000 -0.250000 +v 1.196051 3.475517 -0.125000 +v 3.080348 2.220756 -0.125000 +v 2.919652 2.029244 -0.125000 +v 1.356748 3.667028 0.125000 +v 3.080348 2.220756 0.125000 +v 1.875000 2.000000 0.375000 +v 1.875000 3.000000 0.125000 +v 1.875000 3.000000 -0.125000 +v 2.919652 2.029244 0.125000 +v 2.125000 3.000000 -0.125000 +v 2.125000 2.000000 0.375000 +v 2.125000 2.000000 0.625000 +v 1.875000 2.000000 0.625000 +v 1.196051 3.475517 0.125000 +v 2.125000 3.000000 0.125000 +v 2.125000 2.000000 -0.375000 +v 2.125000 3.000000 -0.125000 +v 2.125000 3.000000 0.125000 +v 1.875000 2.000000 -0.375000 +v 1.875000 3.000000 -0.125000 +v 1.875000 2.000000 -0.625000 +v 2.125000 2.000000 -0.625000 +v 1.875000 3.000000 0.125000 +v -1.502151 2.591684 1.678928 +v -0.934124 3.475517 0.757348 +v -0.757348 3.475517 0.934124 +v -1.615781 2.783195 1.792558 +v -0.870978 3.667028 1.047755 +v -1.792558 2.783195 1.615781 +v -1.047754 3.667028 0.870978 +v -1.678928 2.591684 1.502151 +v 1.149048 3.000000 -0.795495 +v 0.795495 4.000000 -1.149048 +v 1.149048 4.000000 -0.795495 +v -3.187500 15.250000 3.750001 +v -3.187500 13.250000 3.750000 +v -3.750000 15.250000 4.625000 +v -3.750000 15.250000 3.187501 +v -4.625000 15.250000 3.750001 +v -3.750000 13.250000 3.187500 +v -3.187500 2.000000 2.250000 +v -3.750000 17.500000 2.812501 +v -3.750000 2.000000 2.812500 +v -2.812500 2.000000 3.750000 +v -2.250000 17.500000 3.187501 +v -2.250000 2.000000 3.187500 +v -3.750000 17.500000 3.187501 +v -3.187500 2.000000 3.750000 +v -3.750000 2.000000 3.187500 +v -2.250000 17.500000 2.812501 +v -2.812500 2.000000 2.250000 +v -2.250000 2.000000 2.812500 +v -2.000000 4.000000 4.250000 +v -4.000000 2.000000 4.250000 +v -4.000000 4.000000 4.250000 +v -4.000000 2.000000 1.750000 +v -2.000000 4.000000 1.750000 +v -4.000000 4.000000 1.750000 +v -1.750000 2.000000 2.000000 +v -1.750000 4.000000 4.000000 +v -1.750000 4.000000 2.000000 +v -4.250000 4.000000 4.000000 +v -4.250000 2.000000 2.000000 +v -4.250000 4.000000 2.000000 +v -2.000000 6.250000 4.250000 +v -4.000000 4.250000 4.250000 +v -4.000000 6.250000 4.250000 +v -4.000000 4.250000 1.750000 +v -2.000000 6.250000 1.750000 +v -4.000000 6.250000 1.750000 +v -1.750000 4.250000 2.000000 +v -1.750000 6.250000 4.000000 +v -1.750000 6.250000 2.000000 +v -4.250000 6.250000 4.000000 +v -4.250000 4.250000 2.000000 +v -4.250000 6.250000 2.000000 +v -2.000000 8.500000 4.250000 +v -4.000000 6.500000 4.250000 +v -4.000000 8.500000 4.250000 +v -4.000000 6.500000 1.750000 +v -2.000000 8.500000 1.750000 +v -4.000000 8.500000 1.750000 +v -1.750000 6.500000 2.000000 +v -1.750000 8.500000 4.000000 +v -1.750000 8.500000 2.000000 +v -4.250000 8.500000 4.000000 +v -4.250000 6.500000 2.000000 +v -4.250000 8.500000 2.000000 +v -2.000000 10.750000 4.250000 +v -4.000000 8.750000 4.250000 +v -4.000000 10.750000 4.250000 +v -4.000000 8.750000 1.750000 +v -2.000000 10.750000 1.750000 +v -4.000000 10.750000 1.750000 +v -1.750000 8.750000 2.000000 +v -1.750000 10.750000 4.000000 +v -1.750000 10.750000 2.000000 +v -4.250000 10.750000 4.000000 +v -4.250000 8.750000 2.000000 +v -4.250000 10.750000 2.000000 +v 0.618718 4.000000 -0.972272 +v 0.972272 3.000000 -0.618718 +v 0.972272 4.000000 -0.618718 +v 0.795495 3.000000 -1.149048 +v 0.618718 3.000000 -0.972272 +v 2.651650 2.250000 -2.298097 +v 1.590990 2.250000 -1.944544 +v 1.944544 2.250000 -1.590990 +v 2.298097 2.000000 -2.651650 +v 2.651650 2.000000 -2.298097 +v 1.944544 2.000000 -1.590990 +v 1.590990 2.000000 -1.944544 +v 2.298097 2.250000 -2.651650 +v 0.757348 3.475517 -0.934124 +v 2.089747 2.220756 -2.266524 +v 1.976117 2.029244 -2.152894 +v 1.047754 3.667028 -0.870978 +v 2.266524 2.220756 -2.089747 +v 1.590990 2.000000 -1.060660 +v 1.414214 3.000000 -1.237437 +v 1.237437 3.000000 -1.414214 +v 2.152894 2.029244 -1.976117 +v 1.414214 3.000000 -1.590990 +v 1.767767 2.000000 -1.237437 +v 1.944544 2.000000 -1.060660 +v 1.767767 2.000000 -0.883883 +v 0.934124 3.475517 -0.757348 +v 1.590990 3.000000 -1.414214 +v 1.237437 2.000000 -1.767767 +v 1.414214 3.000000 -1.590990 +v 1.590990 3.000000 -1.414214 +v 1.060660 2.000000 -1.590990 +v 1.237437 3.000000 -1.414214 +v 0.883883 2.000000 -1.767767 +v 1.060660 2.000000 -1.944544 +v 1.414214 3.000000 -1.237437 +v 0.795495 3.000000 1.149048 +v 1.149048 4.000000 0.795495 +v 0.795495 4.000000 1.149048 +v 0.972272 4.000000 0.618719 +v 0.618718 3.000000 0.972272 +v 0.618718 4.000000 0.972272 +v 1.149048 3.000000 0.795495 +v 0.972272 3.000000 0.618719 +v 2.298097 2.250000 2.651650 +v 1.944543 2.250000 1.590990 +v 1.590990 2.250000 1.944544 +v 2.651650 2.000000 2.298097 +v 2.298097 2.000000 2.651650 +v 1.590990 2.000000 1.944544 +v 1.944543 2.000000 1.590990 +v 2.651650 2.250000 2.298097 +v 0.934124 3.475517 0.757348 +v 2.266524 2.220755 2.089747 +v 2.152894 2.029244 1.976117 +v 0.870978 3.667028 1.047755 +v 2.089747 2.220755 2.266524 +v 1.060660 2.000000 1.590990 +v 1.237437 3.000000 1.414214 +v 1.414214 3.000000 1.237437 +v 1.976117 2.029244 2.152894 +v 1.590990 3.000000 1.414214 +v 1.237437 2.000000 1.767767 +v 1.060660 2.000000 1.944544 +v 0.883883 2.000000 1.767767 +v 0.757348 3.475517 0.934125 +v 1.414213 3.000000 1.590990 +v 1.767767 2.000000 1.237437 +v 1.590990 3.000000 1.414214 +v 1.414213 3.000000 1.590990 +v 1.590990 2.000000 1.060660 +v 1.414214 3.000000 1.237437 +v 1.767767 2.000000 0.883883 +v 1.944544 2.000000 1.060660 +v 1.237437 3.000000 1.414214 +v -1.375000 3.000000 -0.250000 +v -1.375000 4.000000 0.250000 +v -1.375000 4.000000 -0.250000 +v -1.125000 4.000000 0.250000 +v -1.125000 3.000000 -0.250000 +v -1.125000 4.000000 -0.250000 +v -1.375000 3.000000 0.250000 +v -1.125000 3.000000 0.250000 +v -3.500000 2.250000 -0.250000 +v -2.500000 2.250000 0.250000 +v -2.500000 2.250000 -0.250000 +v -3.500000 2.000000 0.250000 +v -3.500000 2.000000 -0.250000 +v -2.500000 2.000000 -0.250000 +v -2.500000 2.000000 0.250000 +v -3.500000 2.250000 0.250000 +v -1.196051 3.475517 0.125000 +v -3.080348 2.220756 0.125000 +v -2.919652 2.029244 0.125000 +v -1.356748 3.667028 -0.125000 +v -3.080348 2.220756 -0.125000 +v -1.875000 2.000000 -0.375000 +v -1.875000 3.000000 -0.125000 +v -1.875000 3.000000 0.125000 +v -2.919652 2.029244 -0.125000 +v -2.125000 3.000000 0.125000 +v -2.125000 2.000000 -0.375000 +v -2.125000 2.000000 -0.625000 +v -1.875000 2.000000 -0.625000 +v -2.125000 3.000000 -0.125000 +v -2.125000 2.000000 0.375000 +v -2.125000 3.000000 0.125000 +v -2.125000 3.000000 -0.125000 +v -1.875000 2.000000 0.375000 +v -1.875000 3.000000 0.125000 +v -1.875000 2.000000 0.625000 +v -2.125000 2.000000 0.625000 +v -1.875000 3.000000 -0.125000 +v -0.795495 3.000000 -1.149048 +v -1.149049 4.000000 -0.795495 +v -0.795495 4.000000 -1.149048 +v -0.972272 4.000000 -0.618719 +v -0.618718 3.000000 -0.972272 +v -0.618718 4.000000 -0.972272 +v -1.149049 3.000000 -0.795495 +v -0.972272 3.000000 -0.618719 +v -2.298097 2.250000 -2.651650 +v -1.944544 2.250000 -1.590990 +v -1.590990 2.250000 -1.944544 +v -2.651650 2.000000 -2.298097 +v -2.298097 2.000000 -2.651650 +v -1.590990 2.000000 -1.944544 +v -1.944544 2.000000 -1.590990 +v -2.651650 2.250000 -2.298097 +v -0.934124 3.475517 -0.757348 +v -2.266524 2.220755 -2.089746 +v -2.152894 2.029244 -1.976117 +v -0.870978 3.667028 -1.047755 +v -2.089747 2.220755 -2.266523 +v -1.060660 2.000000 -1.590990 +v -1.237437 3.000000 -1.414213 +v -1.414214 3.000000 -1.237437 +v -1.976117 2.029244 -2.152894 +v -1.590990 3.000000 -1.414213 +v -1.237437 2.000000 -1.767767 +v -1.060660 2.000000 -1.944544 +v -0.883884 2.000000 -1.767767 +v -1.414213 3.000000 -1.590990 +v -1.767767 2.000000 -1.237437 +v -1.590990 3.000000 -1.414213 +v -1.414213 3.000000 -1.590990 +v -1.590990 2.000000 -1.060660 +v -1.414214 3.000000 -1.237437 +v -1.767767 2.000000 -0.883883 +v -1.944544 2.000000 -1.060660 +v -1.237437 3.000000 -1.414213 +v -1.149048 3.000000 0.795495 +v -0.795495 4.000000 1.149049 +v -1.149048 4.000000 0.795495 +v -0.618718 4.000000 0.972272 +v -0.972272 3.000000 0.618719 +v -0.972272 4.000000 0.618719 +v -0.795495 3.000000 1.149049 +v -0.618718 3.000000 0.972272 +v -1.590990 2.000000 1.060660 +v -1.414213 3.000000 1.237437 +v -1.237437 3.000000 1.414214 +v -1.414213 3.000000 1.590990 +v -1.767767 2.000000 1.237437 +v -1.944543 2.000000 1.060660 +v -1.767767 2.000000 0.883884 +v -1.590990 3.000000 1.414214 +v -1.237437 2.000000 1.767767 +v -1.414213 3.000000 1.590990 +v -1.590990 3.000000 1.414214 +v -1.060660 2.000000 1.590990 +v -1.237437 3.000000 1.414214 +v -0.883883 2.000000 1.767767 +v -1.060660 2.000000 1.944544 +v -1.414213 3.000000 1.237437 +v -1.500000 2.000000 -1.500000 +v 2.000000 1.000000 -4.500000 v -3.250000 1.750000 1.500000 +v -3.250000 1.000000 1.500000 v -1.500000 1.000000 3.250000 v -1.500000 1.750000 3.250000 v -1.500000 2.000000 3.500000 -v -1.500000 2.000000 4.500000 -v -1.500000 1.000000 4.500000 -v -4.500000 1.000000 4.500000 -v -4.500000 2.000000 4.500000 -v -3.250000 1.000000 1.500000 -v -3.500000 1.750000 1.500000 -v -3.500000 2.000000 1.500000 -v -4.500000 2.000000 1.500000 -v -4.500000 1.000000 1.500000 -v -3.500000 2.000000 3.500000 -v -4.500000 2.000000 2.000000 -v -4.000000 2.000000 2.000000 -v -4.500000 2.000000 1.500000 -v -4.000000 2.000000 1.500000 -v -4.500000 2.000000 4.500000 -v -4.000000 2.000000 4.500000 -v -4.500000 2.000000 4.000000 -v -4.000000 2.000000 4.000000 -v -2.000000 2.000000 2.000000 -v -1.500000 2.000000 2.000000 -v -2.000000 2.000000 1.500000 -v -1.500000 2.000000 1.500000 -v -2.000000 2.000000 4.500000 -v -1.500000 2.000000 4.500000 -v -2.000000 2.000000 4.000000 -v -1.500000 2.000000 4.000000 -v -4.500000 4.000000 1.500000 -v -4.500000 4.000000 2.000000 -v -4.000000 4.000000 2.000000 -v -4.000000 4.000000 1.500000 -v -4.500000 4.000000 4.000000 -v -4.500000 4.000000 4.500000 -v -4.000000 4.000000 4.500000 -v -4.000000 4.000000 4.000000 -v -2.000000 4.000000 1.500000 -v -2.000000 4.000000 2.000000 -v -1.500000 4.000000 2.000000 -v -1.500000 4.000000 1.500000 -v -2.000000 4.000000 4.000000 -v -2.000000 4.000000 4.500000 -v -1.500000 4.000000 4.500000 -v -1.500000 4.000000 4.000000 -v -4.500000 4.000000 4.500000 -v -1.500000 4.000000 4.500000 -v -4.500000 4.000000 1.500000 -v -1.500000 4.000000 1.500000 -v -4.500000 4.250000 1.500000 -v -4.500000 4.250000 4.500000 -v -1.500000 4.250000 4.500000 -v -1.500000 4.250000 1.500000 -v -4.000000 2.000000 4.250000 v -2.000000 2.000000 4.250000 -v -4.000000 4.000000 4.250000 -v -2.000000 4.000000 4.250000 -v -2.000000 4.000000 1.750000 -v -4.000000 4.000000 1.750000 v -2.000000 2.000000 1.750000 -v -4.000000 2.000000 1.750000 -v -1.750000 2.000000 2.000000 v -1.750000 2.000000 4.000000 -v -1.750000 4.000000 2.000000 -v -1.750000 4.000000 4.000000 -v -4.250000 4.000000 4.000000 -v -4.250000 4.000000 2.000000 v -4.250000 2.000000 4.000000 -v -4.250000 2.000000 2.000000 -v -4.500000 4.250000 2.000000 -v -4.000000 4.250000 2.000000 -v -4.500000 4.250000 1.500000 -v -4.000000 4.250000 1.500000 -v -4.500000 4.250000 4.500000 -v -4.000000 4.250000 4.500000 -v -4.500000 4.250000 4.000000 -v -4.000000 4.250000 4.000000 -v -2.000000 4.250000 2.000000 -v -1.500000 4.250000 2.000000 -v -2.000000 4.250000 1.500000 -v -1.500000 4.250000 1.500000 -v -2.000000 4.250000 4.500000 -v -1.500000 4.250000 4.500000 -v -2.000000 4.250000 4.000000 -v -1.500000 4.250000 4.000000 -v -4.500000 6.250000 1.500000 -v -4.500000 6.250000 2.000000 -v -4.000000 6.250000 2.000000 -v -4.000000 6.250000 1.500000 -v -4.500000 6.250000 4.000000 -v -4.500000 6.250000 4.500000 -v -4.000000 6.250000 4.500000 -v -4.000000 6.250000 4.000000 -v -2.000000 6.250000 1.500000 -v -2.000000 6.250000 2.000000 -v -1.500000 6.250000 2.000000 -v -1.500000 6.250000 1.500000 -v -2.000000 6.250000 4.000000 -v -2.000000 6.250000 4.500000 -v -1.500000 6.250000 4.500000 -v -1.500000 6.250000 4.000000 -v -4.500000 6.250000 4.500000 -v -1.500000 6.250000 4.500000 -v -4.500000 6.250000 1.500000 -v -1.500000 6.250000 1.500000 -v -4.500000 6.500000 1.500000 -v -4.500000 6.500000 4.500000 -v -1.500000 6.500000 4.500000 -v -1.500000 6.500000 1.500000 -v -4.000000 4.250000 4.250000 v -2.000000 4.250000 4.250000 -v -4.000000 6.250000 4.250000 -v -2.000000 6.250000 4.250000 -v -2.000000 6.250000 1.750000 -v -4.000000 6.250000 1.750000 v -2.000000 4.250000 1.750000 -v -4.000000 4.250000 1.750000 -v -1.750000 4.250000 2.000000 v -1.750000 4.250000 4.000000 -v -1.750000 6.250000 2.000000 -v -1.750000 6.250000 4.000000 -v -4.250000 6.250000 4.000000 -v -4.250000 6.250000 2.000000 v -4.250000 4.250000 4.000000 -v -4.250000 4.250000 2.000000 -v -4.500000 6.500000 2.000000 -v -4.000000 6.500000 2.000000 -v -4.500000 6.500000 1.500000 -v -4.000000 6.500000 1.500000 -v -4.500000 6.500000 4.500000 -v -4.000000 6.500000 4.500000 -v -4.500000 6.500000 4.000000 -v -4.000000 6.500000 4.000000 -v -2.000000 6.500000 2.000000 -v -1.500000 6.500000 2.000000 -v -2.000000 6.500000 1.500000 -v -1.500000 6.500000 1.500000 -v -2.000000 6.500000 4.500000 -v -1.500000 6.500000 4.500000 -v -2.000000 6.500000 4.000000 -v -1.500000 6.500000 4.000000 -v -4.500000 8.500000 1.500000 -v -4.500000 8.500000 2.000000 -v -4.000000 8.500000 2.000000 -v -4.000000 8.500000 1.500000 -v -4.500000 8.500000 4.000000 -v -4.500000 8.500000 4.500000 -v -4.000000 8.500000 4.500000 -v -4.000000 8.500000 4.000000 -v -2.000000 8.500000 1.500000 -v -2.000000 8.500000 2.000000 -v -1.500000 8.500000 2.000000 -v -1.500000 8.500000 1.500000 -v -2.000000 8.500000 4.000000 -v -2.000000 8.500000 4.500000 -v -1.500000 8.500000 4.500000 -v -1.500000 8.500000 4.000000 -v -4.500000 8.500000 4.500000 -v -1.500000 8.500000 4.500000 -v -4.500000 8.500000 1.500000 -v -1.500000 8.500000 1.500000 -v -4.500000 8.750000 1.500000 -v -4.500000 8.750000 4.500000 -v -1.500000 8.750000 4.500000 -v -1.500000 8.750000 1.500000 -v -4.000000 6.500000 4.250000 v -2.000000 6.500000 4.250000 -v -4.000000 8.500000 4.250000 -v -2.000000 8.500000 4.250000 -v -2.000000 8.500000 1.750000 -v -4.000000 8.500000 1.750000 v -2.000000 6.500000 1.750000 -v -4.000000 6.500000 1.750000 -v -1.750000 6.500000 2.000000 v -1.750000 6.500000 4.000000 -v -1.750000 8.500000 2.000000 -v -1.750000 8.500000 4.000000 -v -4.250000 8.500000 4.000000 -v -4.250000 8.500000 2.000000 v -4.250000 6.500000 4.000000 -v -4.250000 6.500000 2.000000 -v -4.500000 8.750000 2.000000 -v -4.000000 8.750000 2.000000 -v -4.500000 8.750000 1.500000 -v -4.000000 8.750000 1.500000 -v -4.500000 8.750000 4.500000 -v -4.000000 8.750000 4.500000 -v -4.500000 8.750000 4.000000 -v -4.000000 8.750000 4.000000 -v -2.000000 8.750000 2.000000 -v -1.500000 8.750000 2.000000 -v -2.000000 8.750000 1.500000 -v -1.500000 8.750000 1.500000 -v -2.000000 8.750000 4.500000 -v -1.500000 8.750000 4.500000 -v -2.000000 8.750000 4.000000 -v -1.500000 8.750000 4.000000 -v -4.500000 10.750000 1.500000 -v -4.500000 10.750000 2.000000 -v -4.000000 10.750000 2.000000 -v -4.000000 10.750000 1.500000 -v -4.500000 10.750000 4.000000 -v -4.500000 10.750000 4.500000 -v -4.000000 10.750000 4.500000 -v -4.000000 10.750000 4.000000 -v -2.000000 10.750000 1.500000 -v -2.000000 10.750000 2.000000 -v -1.500000 10.750000 2.000000 -v -1.500000 10.750000 1.500000 -v -2.000000 10.750000 4.000000 -v -2.000000 10.750000 4.500000 -v -1.500000 10.750000 4.500000 -v -1.500000 10.750000 4.000000 -v -4.500000 10.750000 4.500000 -v -1.500000 10.750000 4.500000 -v -4.500000 10.750000 1.500000 -v -1.500000 10.750000 1.500000 -v -4.500000 11.000000 1.500000 -v -4.500000 11.000000 4.500000 -v -1.500000 11.000000 4.500000 -v -1.500000 11.000000 1.500000 -v -4.000000 8.750000 4.250000 v -2.000000 8.750000 4.250000 -v -4.000000 10.750000 4.250000 -v -2.000000 10.750000 4.250000 -v -2.000000 10.750000 1.750000 -v -4.000000 10.750000 1.750000 v -2.000000 8.750000 1.750000 -v -4.000000 8.750000 1.750000 -v -1.750000 8.750000 2.000000 v -1.750000 8.750000 4.000000 -v -1.750000 10.750000 2.000000 -v -1.750000 10.750000 4.000000 -v -4.250000 10.750000 4.000000 -v -4.250000 10.750000 2.000000 v -4.250000 8.750000 4.000000 -v -4.250000 8.750000 2.000000 -v -3.750000 15.250000 4.625000 -v -4.625000 15.250000 3.750000 -v -3.187500 13.250000 3.750000 -v -3.750000 13.250000 3.187500 -v -3.750000 15.250000 3.187500 -v -3.187500 15.250000 3.750000 -v -3.750000 15.500000 4.625000 -v -4.625000 15.500000 3.750000 -v -4.625000 15.250000 3.750000 -v -3.750000 15.250000 4.625000 -v -2.250000 15.500000 1.375000 -v -2.250000 15.250000 1.375000 -v -1.375000 15.500000 2.250000 -v -1.375000 15.250000 2.250000 -v -3.375000 15.500000 1.750000 -v -2.625000 15.500000 1.750000 -v -1.750000 15.500000 2.625000 -v -1.750000 15.500000 3.375000 -v -2.625000 15.500000 4.250000 -v -3.375000 15.500000 4.250000 -v -4.250000 15.500000 3.375000 -v -4.250000 15.500000 2.625000 -v -4.250000 15.250000 2.625000 -v -4.250000 15.250000 3.375000 -v -1.750000 15.250000 2.625000 -v -1.750000 15.250000 3.375000 -v -2.625000 15.250000 1.750000 -v -3.375000 15.250000 1.750000 -v -2.625000 15.250000 4.250000 -v -3.375000 15.250000 4.250000 -v -3.187500 2.000000 2.437500 -v -2.812500 2.000000 2.437500 -v -3.187500 2.000000 2.062500 -v -2.812500 2.000000 2.062500 -v -3.187500 2.000000 3.937500 -v -2.812500 2.000000 3.937500 -v -3.187500 2.000000 3.562500 -v -2.812500 2.000000 3.562500 -v -3.562500 2.000000 3.187500 -v -3.562500 2.000000 2.812500 -v -3.937500 2.000000 3.187500 -v -3.937500 2.000000 2.812500 -v -2.062500 2.000000 3.187500 -v -2.062500 2.000000 2.812500 -v -2.437500 2.000000 3.187500 -v -2.437500 2.000000 2.812500 -v -3.187500 17.500000 3.562500 -v -2.812500 17.500000 3.562500 -v -2.812500 17.500000 3.937500 -v -3.187500 17.500000 3.937500 -v -3.187500 17.500000 2.062500 -v -2.812500 17.500000 2.062500 -v -2.812500 17.500000 2.437500 -v -3.187500 17.500000 2.437500 -v -3.187500 2.000000 2.250000 -v -2.812500 2.000000 2.250000 -v -3.187500 2.000000 3.750000 -v -2.812500 2.000000 3.750000 -v -3.750000 2.000000 3.187500 -v -3.750000 2.000000 2.812500 -v -2.250000 2.000000 3.187500 -v -2.250000 2.000000 2.812500 -v -3.562500 17.500000 3.187500 -v -3.562500 17.500000 2.812500 -v -3.937500 17.500000 2.812500 -v -3.937500 17.500000 3.187500 -v -2.062500 17.500000 3.187500 -v -2.062500 17.500000 2.812500 -v -2.437500 17.500000 2.812500 -v -2.437500 17.500000 3.187500 -v -3.187500 17.500000 2.250000 -v -2.812500 17.500000 2.250000 -v -3.187500 17.500000 3.750000 -v -2.812500 17.500000 3.750000 -v -3.750000 17.500000 3.187500 -v -3.750000 17.500000 2.812500 -v -2.250000 17.500000 3.187500 -v -2.250000 17.500000 2.812500 -v -3.375000 13.000000 4.250000 -v -2.625000 13.000000 4.250000 -v -3.375000 13.000000 1.750000 -v -2.625000 13.000000 1.750000 -v -1.750000 13.000000 3.375000 -v -1.750000 13.000000 2.625000 -v -4.250000 13.000000 3.375000 -v -4.250000 13.000000 2.625000 -v -4.250000 13.250000 2.625000 -v -4.250000 13.250000 3.375000 -v -3.375000 13.250000 4.250000 -v -2.625000 13.250000 4.250000 -v -1.750000 13.250000 3.375000 -v -1.750000 13.250000 2.625000 -v -2.625000 13.250000 1.750000 -v -3.375000 13.250000 1.750000 -v -4.250000 17.500000 2.625000 -v -4.250000 17.500000 3.375000 -v -3.375000 17.500000 4.250000 -v -2.625000 17.500000 4.250000 -v -1.750000 17.500000 3.375000 -v -1.750000 17.500000 2.625000 -v -2.625000 17.500000 1.750000 -v -3.375000 17.500000 1.750000 -v -4.250000 17.750000 2.625000 -v -4.250000 17.750000 3.375000 -v -3.375000 17.750000 4.250000 -v -2.625000 17.750000 4.250000 -v -1.750000 17.750000 3.375000 -v -1.750000 17.750000 2.625000 -v -2.625000 17.750000 1.750000 -v -3.375000 17.750000 1.750000 -v -1.375000 13.000000 2.250000 -v -1.375000 13.250000 2.250000 -v -2.250000 13.000000 1.375000 -v -2.250000 13.250000 1.375000 -v -3.750000 13.000000 4.625000 -v -4.625000 13.000000 3.750000 -v -4.625000 13.250000 3.750000 -v -3.750000 13.250000 4.625000 -v 1.375000 4.000000 0.250000 -v 1.375000 3.000000 0.250000 -v 1.375000 4.000000 -0.250000 -v 1.375000 3.000000 -0.250000 -v 1.125000 4.000000 -0.250000 -v 1.125000 4.000000 0.250000 -v 1.125000 3.000000 0.250000 -v 1.125000 3.000000 -0.250000 -v 2.500000 2.000000 0.250000 -v 3.500000 2.000000 0.250000 -v 2.500000 2.000000 -0.250000 -v 3.500000 2.000000 -0.250000 -v 2.500000 2.250000 -0.250000 -v 2.500000 2.250000 0.250000 -v 3.500000 2.250000 0.250000 -v 3.500000 2.250000 -0.250000 -v 2.919652 2.029244 0.125000 -v 3.080348 2.220756 0.125000 -v 2.919652 2.029244 -0.125000 -v 3.080348 2.220756 -0.125000 -v 2.125000 2.000000 0.375000 -v 1.875000 2.000000 0.375000 -v 2.125000 2.000000 0.625000 -v 1.875000 2.000000 0.625000 -v 1.196051 3.475517 -0.125000 -v 1.196051 3.475517 0.125000 -v 1.356748 3.667028 0.125000 +v -3.187500 17.500000 2.250001 +v -2.812500 17.500000 3.750001 +v -3.187500 17.500000 3.750001 +v -2.812500 17.500000 2.250001 v 1.356748 3.667028 -0.125000 -v 1.875000 3.000000 0.125000 -v 2.125000 3.000000 0.125000 -v 2.125000 3.000000 -0.125000 -v 1.875000 3.000000 -0.125000 -v 1.875000 2.000000 -0.375000 -v 2.125000 2.000000 -0.375000 -v 1.875000 2.000000 -0.625000 -v 2.125000 2.000000 -0.625000 -v 1.875000 3.000000 -0.125000 -v 1.875000 3.000000 0.125000 -v 2.125000 3.000000 0.125000 -v 2.125000 3.000000 -0.125000 -v -1.615781 2.783195 1.792558 -v -1.792558 2.783195 1.615781 -v -1.502151 2.591684 1.678928 -v -1.678928 2.591684 1.502151 -v -0.757348 3.475517 0.934124 -v -0.934124 3.475517 0.757348 -v -1.047754 3.667028 0.870978 -v -0.870978 3.667028 1.047755 -v -3.750000 15.250000 4.625000 -v -4.625000 15.250000 3.750000 -v -3.187500 13.250000 3.750000 -v -3.750000 13.250000 3.187500 -v -3.750000 15.250000 3.187500 -v -3.187500 15.250000 3.750000 -v -3.187500 2.000000 2.250000 -v -2.812500 2.000000 2.250000 -v -3.187500 2.000000 3.750000 -v -2.812500 2.000000 3.750000 -v -3.750000 2.000000 3.187500 -v -3.750000 2.000000 2.812500 -v -2.250000 2.000000 3.187500 -v -2.250000 2.000000 2.812500 -v -3.187500 17.500000 2.250000 -v -2.812500 17.500000 2.250000 -v -3.187500 17.500000 3.750000 -v -2.812500 17.500000 3.750000 -v -3.750000 17.500000 3.187500 -v -3.750000 17.500000 2.812500 -v -2.250000 17.500000 3.187500 -v -2.250000 17.500000 2.812500 -v -4.000000 2.000000 4.250000 +v -3.187500 17.500000 2.250001 +v -2.812500 17.500000 3.750001 +v -3.187500 17.500000 3.750001 +v -2.812500 17.500000 2.250001 v -2.000000 2.000000 4.250000 -v -4.000000 4.000000 4.250000 -v -2.000000 4.000000 4.250000 -v -2.000000 4.000000 1.750000 -v -4.000000 4.000000 1.750000 v -2.000000 2.000000 1.750000 -v -4.000000 2.000000 1.750000 -v -1.750000 2.000000 2.000000 v -1.750000 2.000000 4.000000 -v -1.750000 4.000000 2.000000 -v -1.750000 4.000000 4.000000 -v -4.250000 4.000000 4.000000 -v -4.250000 4.000000 2.000000 v -4.250000 2.000000 4.000000 -v -4.250000 2.000000 2.000000 -v -4.000000 4.250000 4.250000 v -2.000000 4.250000 4.250000 -v -4.000000 6.250000 4.250000 -v -2.000000 6.250000 4.250000 -v -2.000000 6.250000 1.750000 -v -4.000000 6.250000 1.750000 v -2.000000 4.250000 1.750000 -v -4.000000 4.250000 1.750000 -v -1.750000 4.250000 2.000000 v -1.750000 4.250000 4.000000 -v -1.750000 6.250000 2.000000 -v -1.750000 6.250000 4.000000 -v -4.250000 6.250000 4.000000 -v -4.250000 6.250000 2.000000 v -4.250000 4.250000 4.000000 -v -4.250000 4.250000 2.000000 -v -4.000000 6.500000 4.250000 v -2.000000 6.500000 4.250000 -v -4.000000 8.500000 4.250000 -v -2.000000 8.500000 4.250000 -v -2.000000 8.500000 1.750000 -v -4.000000 8.500000 1.750000 v -2.000000 6.500000 1.750000 -v -4.000000 6.500000 1.750000 -v -1.750000 6.500000 2.000000 v -1.750000 6.500000 4.000000 -v -1.750000 8.500000 2.000000 -v -1.750000 8.500000 4.000000 -v -4.250000 8.500000 4.000000 -v -4.250000 8.500000 2.000000 v -4.250000 6.500000 4.000000 -v -4.250000 6.500000 2.000000 -v -4.000000 8.750000 4.250000 v -2.000000 8.750000 4.250000 -v -4.000000 10.750000 4.250000 -v -2.000000 10.750000 4.250000 -v -2.000000 10.750000 1.750000 -v -4.000000 10.750000 1.750000 v -2.000000 8.750000 1.750000 -v -4.000000 8.750000 1.750000 -v -1.750000 8.750000 2.000000 v -1.750000 8.750000 4.000000 -v -1.750000 10.750000 2.000000 -v -1.750000 10.750000 4.000000 -v -4.250000 10.750000 4.000000 -v -4.250000 10.750000 2.000000 v -4.250000 8.750000 4.000000 -v -4.250000 8.750000 2.000000 -v 1.149048 4.000000 -0.795495 -v 1.149048 3.000000 -0.795495 -v 0.795495 4.000000 -1.149048 -v 0.795495 3.000000 -1.149048 -v 0.618718 4.000000 -0.972272 -v 0.972272 4.000000 -0.618718 -v 0.972272 3.000000 -0.618718 -v 0.618718 3.000000 -0.972272 -v 1.944544 2.000000 -1.590990 -v 2.651650 2.000000 -2.298097 -v 1.590990 2.000000 -1.944544 -v 2.298097 2.000000 -2.651650 -v 1.590990 2.250000 -1.944544 -v 1.944544 2.250000 -1.590990 -v 2.651650 2.250000 -2.298097 -v 2.298097 2.250000 -2.651650 -v 2.152894 2.029244 -1.976117 -v 2.266524 2.220756 -2.089747 -v 1.976117 2.029244 -2.152894 -v 2.089747 2.220756 -2.266524 -v 1.767767 2.000000 -1.237437 -v 1.590990 2.000000 -1.060660 -v 1.944544 2.000000 -1.060660 -v 1.767767 2.000000 -0.883883 -v 0.757348 3.475517 -0.934124 -v 0.934124 3.475517 -0.757348 -v 1.047754 3.667028 -0.870978 v 0.870978 3.667028 -1.047754 -v 1.414214 3.000000 -1.237437 -v 1.590990 3.000000 -1.414214 -v 1.414214 3.000000 -1.590990 -v 1.237437 3.000000 -1.414214 -v 1.060660 2.000000 -1.590990 -v 1.237437 2.000000 -1.767767 -v 0.883883 2.000000 -1.767767 -v 1.060660 2.000000 -1.944544 -v 1.237437 3.000000 -1.414214 -v 1.414214 3.000000 -1.237437 -v 1.590990 3.000000 -1.414214 -v 1.414214 3.000000 -1.590990 -v 0.795495 4.000000 1.149048 -v 0.795495 3.000000 1.149048 -v 1.149048 4.000000 0.795495 -v 1.149048 3.000000 0.795495 -v 0.972272 4.000000 0.618719 -v 0.618718 4.000000 0.972272 -v 0.618718 3.000000 0.972272 -v 0.972272 3.000000 0.618719 -v 1.590990 2.000000 1.944544 -v 2.298097 2.000000 2.651650 -v 1.944543 2.000000 1.590990 -v 2.651650 2.000000 2.298097 -v 1.944543 2.250000 1.590990 -v 1.590990 2.250000 1.944544 -v 2.298097 2.250000 2.651650 -v 2.651650 2.250000 2.298097 -v 1.976117 2.029244 2.152894 -v 2.089747 2.220755 2.266524 -v 2.152894 2.029244 1.976117 -v 2.266524 2.220755 2.089747 -v 1.237437 2.000000 1.767767 -v 1.060660 2.000000 1.590990 -v 1.060660 2.000000 1.944544 -v 0.883883 2.000000 1.767767 -v 0.934124 3.475517 0.757348 -v 0.757348 3.475517 0.934125 -v 0.870978 3.667028 1.047755 v 1.047754 3.667028 0.870978 -v 1.237437 3.000000 1.414214 -v 1.414213 3.000000 1.590990 -v 1.590990 3.000000 1.414214 -v 1.414214 3.000000 1.237437 -v 1.590990 2.000000 1.060660 -v 1.767767 2.000000 1.237437 -v 1.767767 2.000000 0.883883 -v 1.944544 2.000000 1.060660 -v 1.414214 3.000000 1.237437 -v 1.237437 3.000000 1.414214 -v 1.414213 3.000000 1.590990 -v 1.590990 3.000000 1.414214 -v -1.375000 4.000000 -0.250000 -v -1.375000 3.000000 -0.250000 -v -1.375000 4.000000 0.250000 -v -1.375000 3.000000 0.250000 -v -1.125000 4.000000 0.250000 -v -1.125000 4.000000 -0.250000 -v -1.125000 3.000000 -0.250000 -v -1.125000 3.000000 0.250000 -v -2.500000 2.000000 -0.250000 -v -3.500000 2.000000 -0.250000 -v -2.500000 2.000000 0.250000 -v -3.500000 2.000000 0.250000 -v -2.500000 2.250000 0.250000 -v -2.500000 2.250000 -0.250000 -v -3.500000 2.250000 -0.250000 -v -3.500000 2.250000 0.250000 -v -2.919652 2.029244 -0.125000 -v -3.080348 2.220756 -0.125000 -v -2.919652 2.029244 0.125000 -v -3.080348 2.220756 0.125000 -v -2.125000 2.000000 -0.375000 -v -1.875000 2.000000 -0.375000 -v -2.125000 2.000000 -0.625000 -v -1.875000 2.000000 -0.625000 -v -1.196051 3.475517 0.125000 -v -1.196051 3.475517 -0.125000 -v -1.356748 3.667028 -0.125000 v -1.356748 3.667028 0.125000 -v -1.875000 3.000000 -0.125000 -v -2.125000 3.000000 -0.125000 -v -2.125000 3.000000 0.125000 -v -1.875000 3.000000 0.125000 -v -1.875000 2.000000 0.375000 -v -2.125000 2.000000 0.375000 -v -1.875000 2.000000 0.625000 -v -2.125000 2.000000 0.625000 -v -1.875000 3.000000 0.125000 -v -1.875000 3.000000 -0.125000 -v -2.125000 3.000000 -0.125000 -v -2.125000 3.000000 0.125000 -v -0.795495 4.000000 -1.149048 -v -0.795495 3.000000 -1.149048 -v -1.149049 4.000000 -0.795495 -v -1.149049 3.000000 -0.795495 -v -0.972272 4.000000 -0.618719 -v -0.618718 4.000000 -0.972272 -v -0.618718 3.000000 -0.972272 -v -0.972272 3.000000 -0.618719 -v -1.590990 2.000000 -1.944544 -v -2.298097 2.000000 -2.651650 -v -1.944544 2.000000 -1.590990 -v -2.651650 2.000000 -2.298097 -v -1.944544 2.250000 -1.590990 -v -1.590990 2.250000 -1.944544 -v -2.298097 2.250000 -2.651650 -v -2.651650 2.250000 -2.298097 -v -1.976117 2.029244 -2.152894 -v -2.089747 2.220755 -2.266523 -v -2.152894 2.029244 -1.976117 -v -2.266524 2.220755 -2.089746 -v -1.237437 2.000000 -1.767767 -v -1.060660 2.000000 -1.590990 -v -1.060660 2.000000 -1.944544 -v -0.883884 2.000000 -1.767767 -v -0.934124 3.475517 -0.757348 -v -0.757348 3.475517 -0.934124 -v -0.870978 3.667028 -1.047755 +v -1.196051 3.475517 -0.125000 v -1.047755 3.667028 -0.870978 -v -1.237437 3.000000 -1.414213 -v -1.414213 3.000000 -1.590990 -v -1.590990 3.000000 -1.414213 -v -1.414214 3.000000 -1.237437 -v -1.590990 2.000000 -1.060660 -v -1.767767 2.000000 -1.237437 -v -1.767767 2.000000 -0.883883 -v -1.944544 2.000000 -1.060660 -v -1.414214 3.000000 -1.237437 -v -1.237437 3.000000 -1.414213 -v -1.414213 3.000000 -1.590990 -v -1.590990 3.000000 -1.414213 -v -1.149048 4.000000 0.795495 -v -1.149048 3.000000 0.795495 -v -0.795495 4.000000 1.149049 -v -0.795495 3.000000 1.149049 -v -0.618718 4.000000 0.972272 -v -0.972272 4.000000 0.618719 -v -0.972272 3.000000 0.618719 -v -0.618718 3.000000 0.972272 -v -1.767767 2.000000 1.237437 -v -1.590990 2.000000 1.060660 -v -1.944543 2.000000 1.060660 -v -1.767767 2.000000 0.883884 -v -1.414213 3.000000 1.237437 -v -1.590990 3.000000 1.414214 -v -1.414213 3.000000 1.590990 -v -1.237437 3.000000 1.414214 -v -1.060660 2.000000 1.590990 -v -1.237437 2.000000 1.767767 -v -0.883883 2.000000 1.767767 -v -1.060660 2.000000 1.944544 -v -1.237437 3.000000 1.414214 -v -1.414213 3.000000 1.237437 -v -1.590990 3.000000 1.414214 -v -1.414213 3.000000 1.590990 +v -0.757348 3.475517 -0.934124 vt 0.269231 0.532258 vt 0.115385 0.725806 vt 0.115385 0.532258 @@ -5473,7 +9682,7 @@ vt 0.730769 0.709677 vt 0.846154 0.629032 vt 0.846154 0.693548 vn 0.0000 1.0000 0.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.0000 0.0000 -1.0000 @@ -5515,16499 +9724,4523 @@ vn 0.6428 -0.7660 0.0000 vn -0.4545 0.7660 -0.4545 vn 0.4545 -0.7660 0.4545 s off -f 1214/1496/52 1211/1497/52 1212/1498/52 -f 1187/1499/52 1192/1500/52 1188/1501/52 -f 1197/1502/53 1202/1503/53 1198/1504/53 -f 1192/1500/54 1198/1504/54 1194/1505/54 -f 1193/1506/55 1196/1507/55 1191/1508/55 -f 1194/1509/56 1195/1510/56 1193/1511/56 -f 1191/1512/57 1197/1513/57 1192/1514/57 -f 1202/1515/56 1203/1516/56 1201/1517/56 -f 1198/1518/53 1201/1517/53 1195/1510/53 -f 1195/1519/53 1199/1520/53 1196/1507/53 -f 1196/1521/53 1200/1522/53 1197/1513/53 -f 1189/1523/52 1191/1524/52 1187/1499/52 -f 1199/1525/57 1205/1526/57 1200/1522/57 -f 1200/1527/54 1206/1528/54 1202/1503/54 -f 1201/1529/55 1204/1530/55 1199/1520/55 -f 1190/1531/52 1193/1532/52 1189/1523/52 -f 1188/1501/52 1194/1505/52 1190/1531/52 -f 1208/1533/58 1187/1499/58 1188/1501/58 -f 1207/1534/59 1189/1523/59 1187/1499/59 -f 1209/1535/60 1190/1531/60 1189/1523/60 -f 1210/1536/61 1188/1501/61 1190/1531/61 -f 1223/1537/56 1217/1538/56 1222/1539/56 -f 1216/1540/52 1221/1541/52 1215/1542/52 -f 1224/1543/54 1216/1540/54 1219/1544/54 -f 1215/1542/57 1219/1545/57 1216/1540/57 -f 1222/1539/58 1224/1543/58 1223/1537/58 -f 1222/1546/55 1217/1547/55 1218/1548/55 -f 1237/1549/56 1236/1550/56 1235/1551/56 -f 1233/1552/55 1238/1553/55 1232/1554/55 -f 1231/1555/57 1233/1552/57 1232/1556/57 -f 1225/1557/54 1230/1558/54 1231/1559/54 -f 1239/1560/52 1237/1549/52 1233/1552/52 -f 1274/1561/53 1273/1562/53 1272/1563/53 -f 1273/1564/57 1277/1565/57 1272/1566/57 -f 1278/1567/52 1276/1568/52 1277/1565/52 -f 1274/1569/56 1279/1570/56 1275/1571/56 -f 1280/1572/57 1283/1573/57 1282/1574/57 -f 1272/1575/55 1276/1568/55 1274/1576/55 -f 1275/1577/54 1278/1567/54 1273/1578/54 -f 1249/1579/57 1265/1580/57 1248/1581/57 -f 1243/1582/54 1258/1583/54 1241/1584/54 -f 1251/1585/54 1266/1586/54 1249/1579/54 -f 1242/1587/56 1259/1588/56 1243/1582/56 -f 1250/1589/56 1267/1590/56 1251/1585/56 -f 1244/1591/55 1260/1592/55 1246/1593/55 -f 1252/1594/55 1268/1595/55 1254/1596/55 -f 1245/1597/57 1261/1598/57 1244/1591/57 -f 1253/1599/57 1269/1600/57 1252/1594/57 -f 1247/1601/54 1262/1602/54 1245/1597/54 -f 1255/1603/54 1270/1604/54 1253/1599/54 -f 1246/1593/56 1263/1605/56 1247/1606/56 -f 1240/1607/55 1256/1608/55 1242/1587/55 -f 1254/1609/56 1271/1610/56 1255/1603/56 -f 1248/1611/55 1264/1612/55 1250/1589/55 -f 1241/1613/57 1257/1614/57 1240/1607/57 -f 1284/1615/56 1287/1616/56 1285/1617/56 -f 1291/1618/54 1288/1619/54 1290/1620/54 -f 1295/1621/55 1292/1622/55 1293/1623/55 -f 1330/1624/53 1329/1625/53 1328/1626/53 -f 1329/1627/57 1333/1628/57 1328/1629/57 -f 1334/1630/52 1332/1631/52 1333/1628/52 -f 1330/1632/56 1335/1633/56 1331/1634/56 -f 1336/1635/57 1339/1636/57 1338/1637/57 -f 1328/1638/55 1332/1631/55 1330/1639/55 -f 1331/1640/54 1334/1630/54 1329/1641/54 -f 1305/1642/57 1321/1643/57 1304/1644/57 -f 1299/1645/54 1314/1646/54 1297/1647/54 -f 1307/1648/54 1322/1649/54 1305/1642/54 -f 1298/1650/56 1315/1651/56 1299/1645/56 -f 1306/1652/56 1323/1653/56 1307/1648/56 -f 1300/1654/55 1316/1655/55 1302/1656/55 -f 1308/1657/55 1324/1658/55 1310/1659/55 -f 1301/1660/57 1317/1661/57 1300/1654/57 -f 1309/1662/57 1325/1663/57 1308/1657/57 -f 1303/1664/54 1318/1665/54 1301/1660/54 -f 1311/1666/54 1326/1667/54 1309/1662/54 -f 1302/1656/56 1319/1668/56 1303/1669/56 -f 1296/1670/55 1312/1671/55 1298/1650/55 -f 1310/1672/56 1327/1673/56 1311/1666/56 -f 1304/1674/55 1320/1675/55 1306/1652/55 -f 1297/1676/57 1313/1677/57 1296/1670/57 -f 1340/1678/56 1343/1679/56 1341/1680/56 -f 1347/1681/54 1344/1682/54 1346/1683/54 -f 1351/1684/55 1348/1685/55 1349/1686/55 -f 1386/1687/53 1385/1688/53 1384/1689/53 -f 1385/1690/57 1389/1691/57 1384/1692/57 -f 1390/1693/52 1388/1694/52 1389/1691/52 -f 1386/1695/56 1391/1696/56 1387/1697/56 -f 1392/1698/57 1395/1699/57 1394/1700/57 -f 1384/1701/55 1388/1694/55 1386/1702/55 -f 1387/1703/54 1390/1693/54 1385/1704/54 -f 1361/1705/57 1377/1706/57 1360/1707/57 -f 1355/1708/54 1370/1709/54 1353/1710/54 -f 1363/1711/54 1378/1712/54 1361/1705/54 -f 1354/1713/56 1371/1714/56 1355/1708/56 -f 1362/1715/56 1379/1716/56 1363/1711/56 -f 1356/1717/55 1372/1718/55 1358/1719/55 -f 1364/1720/55 1380/1721/55 1366/1722/55 -f 1357/1723/57 1373/1724/57 1356/1717/57 -f 1365/1725/57 1381/1726/57 1364/1720/57 -f 1359/1727/54 1374/1728/54 1357/1723/54 -f 1367/1729/54 1382/1730/54 1365/1725/54 -f 1358/1719/56 1375/1731/56 1359/1732/56 -f 1352/1733/55 1368/1734/55 1354/1713/55 -f 1366/1735/56 1383/1736/56 1367/1729/56 -f 1360/1737/55 1376/1738/55 1362/1715/55 -f 1353/1739/57 1369/1740/57 1352/1733/57 -f 1396/1741/56 1399/1742/56 1397/1743/56 -f 1403/1744/54 1400/1745/54 1402/1746/54 -f 1407/1747/55 1404/1748/55 1405/1749/55 -f 1442/1750/53 1441/1751/53 1440/1752/53 -f 1441/1753/57 1445/1754/57 1440/1755/57 -f 1446/1756/52 1444/1757/52 1445/1754/52 -f 1442/1758/56 1447/1759/56 1443/1760/56 -f 1448/1761/57 1451/1762/57 1450/1763/57 -f 1440/1764/55 1444/1757/55 1442/1765/55 -f 1443/1766/54 1446/1756/54 1441/1767/54 -f 1417/1768/57 1433/1769/57 1416/1770/57 -f 1411/1771/54 1426/1772/54 1409/1773/54 -f 1419/1774/54 1434/1775/54 1417/1768/54 -f 1410/1776/56 1427/1777/56 1411/1771/56 -f 1418/1778/56 1435/1779/56 1419/1774/56 -f 1412/1780/55 1428/1781/55 1414/1782/55 -f 1420/1783/55 1436/1784/55 1422/1785/55 -f 1413/1786/57 1429/1787/57 1412/1780/57 -f 1421/1788/57 1437/1789/57 1420/1783/57 -f 1415/1790/54 1430/1791/54 1413/1786/54 -f 1423/1792/54 1438/1793/54 1421/1788/54 -f 1414/1782/56 1431/1794/56 1415/1795/56 -f 1408/1796/55 1424/1797/55 1410/1776/55 -f 1422/1798/56 1439/1799/56 1423/1792/56 -f 1416/1800/55 1432/1801/55 1418/1778/55 -f 1409/1802/57 1425/1803/57 1408/1796/57 -f 1452/1804/56 1455/1805/56 1453/1806/56 -f 1459/1807/54 1456/1808/54 1458/1809/54 -f 1463/1810/55 1460/1811/55 1461/1812/55 -f 1469/1813/62 1464/1814/62 1466/1815/62 -f 1468/1816/63 1467/1817/63 1465/1818/63 -f 1493/1819/53 1472/1820/53 1487/1821/53 -f 1470/1822/64 1472/1823/64 1473/1824/64 -f 1484/1825/52 1470/1822/52 1483/1826/52 -f 1483/1826/65 1473/1827/65 1493/1828/65 -f 1475/1829/53 1488/1830/53 1490/1831/53 -f 1480/1832/52 1474/1833/52 1479/1834/52 -f 1475/1835/66 1476/1836/66 1477/1837/66 -f 1479/1834/67 1475/1838/67 1490/1839/67 -f 1487/1840/55 1485/1841/55 1486/1842/55 -f 1488/1843/54 1481/1844/54 1489/1845/54 -f 1487/1846/67 1471/1847/67 1484/1825/67 -f 1488/1848/65 1476/1836/65 1480/1832/65 -f 1492/1849/57 1483/1850/57 1493/1851/57 -f 1491/1852/56 1479/1853/56 1490/1854/56 -f 1488/1855/53 1492/1856/53 1487/1857/53 -f 1482/1858/52 1480/1859/52 1478/1860/52 -f 1489/1845/65 1482/1861/65 1492/1862/65 -f 1486/1842/67 1478/1863/67 1491/1864/67 -f 1549/1865/67 1557/1866/67 1544/1867/67 -f 1505/1868/56 1527/1869/56 1503/1870/56 -f 1546/1871/65 1553/1872/65 1543/1873/65 -f 1553/1874/52 1555/1875/52 1557/1876/52 -f 1547/1877/53 1543/1878/53 1548/1879/53 -f 1500/1880/56 1511/1881/56 1501/1882/56 -f 1506/1883/57 1533/1884/57 1508/1885/57 -f 1508/1885/55 1532/1886/55 1509/1887/55 -f 1509/1888/56 1531/1889/56 1507/1890/56 -f 1495/1891/57 1517/1892/57 1494/1893/57 -f 1494/1893/55 1514/1894/55 1496/1895/55 -f 1503/1870/54 1526/1896/54 1502/1897/54 -f 1497/1898/54 1516/1899/54 1495/1891/54 -f 1496/1900/56 1515/1901/56 1497/1898/56 -f 1498/1902/55 1510/1903/55 1500/1904/55 -f 1504/1905/55 1528/1906/55 1505/1907/55 -f 1501/1882/54 1512/1908/54 1499/1909/54 -f 1499/1909/57 1513/1910/57 1498/1902/57 -f 1502/1897/57 1529/1911/57 1504/1905/57 -f 1507/1890/54 1530/1912/54 1506/1883/54 -f 1539/1913/67 1518/1914/67 1523/1915/67 -f 1540/1916/65 1521/1917/65 1524/1918/65 -f 1520/1919/64 1538/1920/64 1522/1921/64 -f 1519/1922/66 1541/1923/66 1525/1924/66 -f 1544/1925/56 1556/1926/56 1545/1927/56 -f 1543/1928/57 1552/1929/57 1542/1930/57 -f 1547/1931/65 1575/1932/65 1555/1933/65 -f 1548/1934/67 1580/1935/67 1551/1936/67 -f 1547/1937/54 1554/1938/54 1546/1871/54 -f 1548/1939/55 1550/1940/55 1549/1865/55 -f 1563/1941/53 1561/1942/53 1559/1943/53 -f 1569/1944/52 1571/1945/52 1573/1946/52 -f 1562/1947/65 1569/1948/65 1561/1949/65 -f 1558/1950/67 1573/1951/67 1565/1952/67 -f 1565/1953/56 1572/1954/56 1564/1955/56 -f 1561/1956/57 1568/1957/57 1560/1958/57 -f 1564/1959/66 1571/1945/66 1563/1960/66 -f 1560/1961/64 1567/1962/64 1559/1963/64 -f 1563/1960/54 1570/1964/54 1562/1947/54 -f 1559/1963/55 1566/1965/55 1558/1950/55 -f 1556/1966/67 1576/1967/67 1545/1968/67 -f 1576/1969/66 1575/1932/66 1574/1970/66 -f 1555/1933/52 1577/1971/52 1556/1966/52 -f 1576/1972/53 1547/1973/53 1545/1974/53 -f 1552/1975/65 1578/1976/65 1542/1977/65 -f 1551/1936/52 1581/1978/52 1552/1975/52 -f 1581/1978/64 1579/1979/64 1578/1980/64 -f 1542/1981/53 1579/1982/53 1548/1983/53 -f 1583/1984/54 1584/1985/54 1582/1986/54 -f 1586/1987/55 1588/1988/55 1587/1989/55 -f 1585/1990/56 1586/1987/56 1584/1985/56 -f 1582/1986/57 1588/1991/57 1583/1984/57 -f 1583/1984/53 1589/1992/53 1585/1990/53 -f 1584/1985/52 1587/1993/52 1582/1986/52 -f 1596/1994/52 1594/1995/52 1595/1996/52 -f 1593/1997/54 1596/1994/54 1591/1998/54 -f 1590/1999/55 1594/1995/55 1592/2000/55 -f 1592/2001/56 1597/2002/56 1593/2003/56 -f 1591/2004/57 1595/1996/57 1590/2005/57 -f 1606/2006/56 1601/2007/56 1600/2008/56 -f 1601/2007/68 1608/2009/68 1599/2010/68 -f 1603/2011/55 1610/2012/55 1613/2013/55 -f 1608/2009/57 1598/2014/57 1599/2010/57 -f 1603/2011/69 1612/2015/69 1602/2016/69 -f 1604/2017/70 1610/2018/70 1605/2019/70 -f 1607/2020/71 1600/2008/71 1598/2021/71 -f 1602/2016/54 1611/2022/54 1604/2017/54 -f 1615/2023/54 1621/2024/54 1620/2025/54 -f 1614/2026/55 1618/2027/55 1616/2028/55 -f 1616/2028/72 1621/2024/72 1617/2029/72 -f 1615/2023/73 1619/2030/73 1614/2031/73 -f 1624/2032/74 1627/2033/74 1626/2034/74 -f 1622/2035/65 1626/2034/65 1629/2036/65 -f 1623/2037/75 1629/2036/75 1628/2038/75 -f 1625/2039/67 1628/2038/67 1627/2040/67 -f 1717/2041/66 1718/2042/66 1716/2043/66 -f 1635/2044/76 1632/2045/76 1630/2046/76 -f 1634/2047/77 1631/2048/77 1633/2049/77 -f 1636/2050/65 1649/2051/65 1641/2052/65 -f 1639/2053/67 1650/2054/67 1642/2055/67 -f 1648/2056/66 1638/2057/66 1640/2058/66 -f 1651/2059/64 1637/2060/64 1643/2061/64 -f 1655/2062/56 1652/2063/56 1654/2064/56 -f 1659/2065/57 1656/2066/57 1657/2067/57 -f 1660/2068/55 1663/2069/55 1662/2070/55 -f 1664/2071/54 1667/2072/54 1665/2073/54 -f 1671/2074/56 1668/2075/56 1670/2076/56 -f 1675/2077/57 1672/2078/57 1673/2079/57 -f 1676/2080/55 1679/2081/55 1678/2082/55 -f 1680/2083/54 1683/2084/54 1681/2085/54 -f 1687/2086/56 1684/2087/56 1686/2088/56 -f 1691/2089/57 1688/2090/57 1689/2091/57 -f 1692/2092/55 1695/2093/55 1694/2094/55 -f 1696/2095/54 1699/2096/54 1697/2097/54 -f 1703/2098/56 1700/2099/56 1702/2100/56 -f 1707/2101/57 1704/2102/57 1705/2103/57 -f 1708/2104/55 1711/2105/55 1710/2106/55 -f 1712/2107/54 1715/2108/54 1713/2109/54 -f 1720/2110/64 1722/2111/64 1721/2112/64 -f 1719/2113/67 1720/2110/67 1718/2042/67 -f 1716/2043/65 1722/2114/65 1717/2041/65 -f 1717/2041/53 1723/2115/53 1719/2113/53 -f 1718/2042/52 1721/2116/52 1716/2043/52 -f 1730/2117/52 1728/2118/52 1729/2119/52 -f 1727/2120/66 1730/2117/66 1725/2121/66 -f 1724/2122/64 1728/2118/64 1726/2123/64 -f 1726/2124/67 1731/2125/67 1727/2126/67 -f 1725/2127/65 1729/2119/65 1724/2128/65 -f 1740/2129/67 1735/2130/67 1734/2131/67 -f 1735/2130/78 1742/2132/78 1733/2133/78 -f 1737/2134/64 1744/2135/64 1747/2136/64 -f 1742/2132/65 1732/2137/65 1733/2133/65 -f 1737/2134/79 1746/2138/79 1736/2139/79 -f 1738/2140/80 1744/2141/80 1739/2142/80 -f 1741/2143/81 1734/2131/81 1732/2144/81 -f 1736/2139/66 1745/2145/66 1738/2140/66 -f 1749/2146/66 1755/2147/66 1754/2148/66 -f 1748/2149/64 1752/2150/64 1750/2151/64 -f 1750/2151/82 1755/2147/82 1751/2152/82 -f 1749/2146/83 1753/2153/83 1748/2154/83 -f 1757/2155/65 1758/2156/65 1756/2157/65 -f 1760/2158/67 1762/2159/67 1761/2160/67 -f 1759/2161/66 1760/2158/66 1758/2156/66 -f 1756/2157/64 1762/2162/64 1757/2155/64 -f 1757/2155/53 1763/2163/53 1759/2161/53 -f 1756/2157/52 1760/2164/52 1761/2165/52 -f 1770/2166/52 1768/2167/52 1769/2168/52 -f 1767/2169/65 1770/2166/65 1765/2170/65 -f 1764/2171/67 1768/2167/67 1766/2172/67 -f 1766/2173/66 1771/2174/66 1767/2175/66 -f 1765/2176/64 1769/2168/64 1764/2177/64 -f 1780/2178/66 1775/2179/66 1774/2180/66 -f 1775/2179/84 1782/2181/84 1773/2182/84 -f 1777/2183/67 1784/2184/67 1787/2185/67 -f 1782/2181/64 1772/2186/64 1773/2182/64 -f 1777/2183/85 1786/2187/85 1776/2188/85 -f 1778/2189/86 1784/2190/86 1779/2191/86 -f 1781/2192/87 1774/2180/87 1772/2193/87 -f 1776/2188/65 1785/2194/65 1778/2189/65 -f 1789/2195/65 1795/2196/65 1794/2197/65 -f 1788/2198/67 1792/2199/67 1790/2200/67 -f 1791/2201/88 1792/2199/88 1795/2196/88 -f 1789/2195/89 1793/2202/89 1788/2203/89 -f 1797/2204/55 1798/2205/55 1796/2206/55 -f 1800/2207/54 1802/2208/54 1801/2209/54 -f 1799/2210/57 1800/2207/57 1798/2205/57 -f 1796/2206/56 1802/2211/56 1797/2204/56 -f 1797/2204/53 1803/2212/53 1799/2210/53 -f 1798/2205/52 1801/2213/52 1796/2206/52 -f 1810/2214/52 1808/2215/52 1809/2216/52 -f 1807/2217/55 1810/2214/55 1805/2218/55 -f 1804/2219/54 1808/2215/54 1806/2220/54 -f 1806/2221/57 1811/2222/57 1807/2223/57 -f 1805/2224/56 1809/2216/56 1804/2225/56 -f 1820/2226/57 1815/2227/57 1814/2228/57 -f 1815/2227/90 1822/2229/90 1813/2230/90 -f 1817/2231/54 1824/2232/54 1827/2233/54 -f 1822/2229/56 1812/2234/56 1813/2230/56 -f 1817/2231/73 1826/2235/73 1816/2236/73 -f 1818/2237/72 1824/2238/72 1819/2239/72 -f 1812/2240/91 1820/2226/91 1814/2228/91 -f 1816/2236/55 1825/2241/55 1818/2237/55 -f 1829/2242/55 1835/2243/55 1834/2244/55 -f 1828/2245/54 1832/2246/54 1830/2247/54 -f 1830/2247/70 1835/2243/70 1831/2248/70 -f 1829/2242/69 1833/2249/69 1828/2250/69 -f 1837/2251/67 1838/2252/67 1836/2253/67 -f 1840/2254/65 1842/2255/65 1841/2256/65 -f 1839/2257/64 1840/2254/64 1838/2252/64 -f 1836/2253/66 1842/2258/66 1837/2251/66 -f 1837/2251/53 1843/2259/53 1839/2257/53 -f 1836/2253/52 1840/2260/52 1841/2261/52 -f 1850/2262/52 1848/2263/52 1849/2264/52 -f 1847/2265/67 1850/2262/67 1845/2266/67 -f 1844/2267/65 1848/2263/65 1846/2268/65 -f 1846/2269/64 1851/2270/64 1847/2271/64 -f 1845/2272/66 1849/2264/66 1844/2273/66 -f 1860/2274/64 1855/2275/64 1854/2276/64 -f 1855/2275/92 1862/2277/92 1853/2278/92 -f 1857/2279/65 1864/2280/65 1867/2281/65 -f 1862/2277/66 1852/2282/66 1853/2278/66 -f 1857/2279/89 1866/2283/89 1856/2284/89 -f 1858/2285/88 1864/2286/88 1859/2287/88 -f 1852/2288/93 1860/2274/93 1854/2276/93 -f 1856/2284/67 1865/2289/67 1858/2285/67 -f 1869/2290/67 1875/2291/67 1874/2292/67 -f 1868/2293/65 1872/2294/65 1870/2295/65 -f 1871/2296/86 1872/2294/86 1875/2291/86 -f 1869/2290/85 1873/2297/85 1868/2298/85 -f 1877/2299/64 1878/2300/64 1876/2301/64 -f 1880/2302/66 1882/2303/66 1881/2304/66 -f 1879/2305/65 1880/2302/65 1878/2300/65 -f 1876/2301/67 1882/2306/67 1877/2299/67 -f 1877/2299/53 1883/2307/53 1879/2305/53 -f 1878/2300/52 1881/2308/52 1876/2301/52 -f 1885/2309/66 1888/2310/66 1891/2311/66 -f 1885/2309/83 1890/2312/83 1884/2313/83 -f 1886/2314/82 1888/2315/82 1887/2316/82 -f 1884/2313/64 1889/2317/64 1886/2314/64 -f 1893/2318/64 1899/2319/64 1898/2320/64 -f 1892/2321/66 1896/2322/66 1894/2323/66 -f 1894/2323/80 1899/2319/80 1895/2324/80 -f 1893/2318/79 1897/2325/79 1892/2326/79 -f 1214/1496/52 1213/2327/52 1211/1497/52 -f 1187/1499/52 1191/1524/52 1192/1500/52 -f 1197/1502/53 1200/1527/53 1202/1503/53 -f 1192/1500/54 1197/1502/54 1198/1504/54 -f 1193/1506/55 1195/1519/55 1196/1507/55 -f 1194/1509/56 1198/1518/56 1195/1510/56 -f 1191/1512/57 1196/1521/57 1197/1513/57 -f 1202/1515/56 1206/2328/56 1203/1516/56 -f 1198/1518/53 1202/1515/53 1201/1517/53 -f 1195/1519/53 1201/1529/53 1199/1520/53 -f 1196/1521/53 1199/1525/53 1200/1522/53 -f 1189/1523/52 1193/1532/52 1191/1524/52 -f 1199/1525/57 1204/2329/57 1205/1526/57 -f 1200/1527/54 1205/2330/54 1206/1528/54 -f 1201/1529/55 1203/2331/55 1204/1530/55 -f 1190/1531/52 1194/1505/52 1193/1532/52 -f 1188/1501/52 1192/1500/52 1194/1505/52 -f 1208/1533/58 1207/1534/58 1187/1499/58 -f 1207/1534/59 1209/1535/59 1189/1523/59 -f 1209/1535/60 1210/1536/60 1190/1531/60 -f 1210/1536/61 1208/1533/61 1188/1501/61 -f 1223/1537/56 1220/2332/56 1217/1538/56 -f 1216/1540/52 1224/1543/52 1221/1541/52 -f 1220/2333/54 1223/2334/54 1219/1544/54 -f 1223/2334/54 1224/1543/54 1219/1544/54 -f 1215/1542/57 1218/2335/57 1219/1545/57 -f 1222/1539/58 1221/1541/58 1224/1543/58 -f 1218/1548/55 1215/1542/55 1221/1541/55 -f 1221/1541/55 1222/1546/55 1218/1548/55 -f 1235/1551/56 1226/2336/56 1234/2337/56 -f 1234/2337/56 1238/2338/56 1235/1551/56 -f 1238/2338/56 1237/1549/56 1235/1551/56 -f 1233/1552/55 1237/1549/55 1238/1553/55 -f 1231/1555/57 1230/1558/57 1233/1552/57 -f 1231/1559/54 1227/2339/54 1225/1557/54 -f 1227/2339/54 1228/2340/54 1225/1557/54 -f 1225/1557/54 1229/2341/54 1230/1558/54 -f 1230/1558/52 1229/2341/52 1239/1560/52 -f 1239/1560/52 1236/1550/52 1237/1549/52 -f 1233/1552/52 1230/1558/52 1239/1560/52 -f 1274/1561/53 1275/2342/53 1273/1562/53 -f 1273/1564/57 1278/1567/57 1277/1565/57 -f 1278/1567/52 1279/1570/52 1276/1568/52 -f 1274/1569/56 1276/1568/56 1279/1570/56 -f 1280/1572/57 1281/2343/57 1283/1573/57 -f 1272/1575/55 1277/1565/55 1276/1568/55 -f 1275/1577/54 1279/1570/54 1278/1567/54 -f 1249/1579/57 1266/1586/57 1265/1580/57 -f 1243/1582/54 1259/1588/54 1258/1583/54 -f 1251/1585/54 1267/1590/54 1266/1586/54 -f 1242/1587/56 1256/1608/56 1259/1588/56 -f 1250/1589/56 1264/1612/56 1267/1590/56 -f 1244/1591/55 1261/1598/55 1260/1592/55 -f 1252/1594/55 1269/1600/55 1268/1595/55 -f 1245/1597/57 1262/1602/57 1261/1598/57 -f 1253/1599/57 1270/1604/57 1269/1600/57 -f 1247/1601/54 1263/2344/54 1262/1602/54 -f 1255/1603/54 1271/1610/54 1270/1604/54 -f 1246/1593/56 1260/1592/56 1263/1605/56 -f 1240/1607/55 1257/1614/55 1256/1608/55 -f 1254/1609/56 1268/2345/56 1271/1610/56 -f 1248/1611/55 1265/2346/55 1264/1612/55 -f 1241/1613/57 1258/2347/57 1257/1614/57 -f 1284/1615/56 1286/2348/56 1287/1616/56 -f 1291/1618/54 1289/2349/54 1288/1619/54 -f 1295/1621/55 1294/2350/55 1292/1622/55 -f 1330/1624/53 1331/2351/53 1329/1625/53 -f 1329/1627/57 1334/1630/57 1333/1628/57 -f 1334/1630/52 1335/1633/52 1332/1631/52 -f 1330/1632/56 1332/1631/56 1335/1633/56 -f 1336/1635/57 1337/2352/57 1339/1636/57 -f 1328/1638/55 1333/1628/55 1332/1631/55 -f 1331/1640/54 1335/1633/54 1334/1630/54 -f 1305/1642/57 1322/1649/57 1321/1643/57 -f 1299/1645/54 1315/1651/54 1314/1646/54 -f 1307/1648/54 1323/1653/54 1322/1649/54 -f 1298/1650/56 1312/1671/56 1315/1651/56 -f 1306/1652/56 1320/1675/56 1323/1653/56 -f 1300/1654/55 1317/1661/55 1316/1655/55 -f 1308/1657/55 1325/1663/55 1324/1658/55 -f 1301/1660/57 1318/1665/57 1317/1661/57 -f 1309/1662/57 1326/1667/57 1325/1663/57 -f 1303/1664/54 1319/2353/54 1318/1665/54 -f 1311/1666/54 1327/1673/54 1326/1667/54 -f 1302/1656/56 1316/1655/56 1319/1668/56 -f 1296/1670/55 1313/1677/55 1312/1671/55 -f 1310/1672/56 1324/2354/56 1327/1673/56 -f 1304/1674/55 1321/2355/55 1320/1675/55 -f 1297/1676/57 1314/2356/57 1313/1677/57 -f 1340/1678/56 1342/2357/56 1343/1679/56 -f 1347/1681/54 1345/2358/54 1344/1682/54 -f 1351/1684/55 1350/2359/55 1348/1685/55 -f 1386/1687/53 1387/2360/53 1385/1688/53 -f 1385/1690/57 1390/1693/57 1389/1691/57 -f 1390/1693/52 1391/1696/52 1388/1694/52 -f 1386/1695/56 1388/1694/56 1391/1696/56 -f 1392/1698/57 1393/2361/57 1395/1699/57 -f 1384/1701/55 1389/1691/55 1388/1694/55 -f 1387/1703/54 1391/1696/54 1390/1693/54 -f 1361/1705/57 1378/1712/57 1377/1706/57 -f 1355/1708/54 1371/1714/54 1370/1709/54 -f 1363/1711/54 1379/1716/54 1378/1712/54 -f 1354/1713/56 1368/1734/56 1371/1714/56 -f 1362/1715/56 1376/1738/56 1379/1716/56 -f 1356/1717/55 1373/1724/55 1372/1718/55 -f 1364/1720/55 1381/1726/55 1380/1721/55 -f 1357/1723/57 1374/1728/57 1373/1724/57 -f 1365/1725/57 1382/1730/57 1381/1726/57 -f 1359/1727/54 1375/2362/54 1374/1728/54 -f 1367/1729/54 1383/1736/54 1382/1730/54 -f 1358/1719/56 1372/1718/56 1375/1731/56 -f 1352/1733/55 1369/1740/55 1368/1734/55 -f 1366/1735/56 1380/2363/56 1383/1736/56 -f 1360/1737/55 1377/2364/55 1376/1738/55 -f 1353/1739/57 1370/2365/57 1369/1740/57 -f 1396/1741/56 1398/2366/56 1399/1742/56 -f 1403/1744/54 1401/2367/54 1400/1745/54 -f 1407/1747/55 1406/2368/55 1404/1748/55 -f 1442/1750/53 1443/2369/53 1441/1751/53 -f 1441/1753/57 1446/1756/57 1445/1754/57 -f 1446/1756/52 1447/1759/52 1444/1757/52 -f 1442/1758/56 1444/1757/56 1447/1759/56 -f 1448/1761/57 1449/2370/57 1451/1762/57 -f 1440/1764/55 1445/1754/55 1444/1757/55 -f 1443/1766/54 1447/1759/54 1446/1756/54 -f 1417/1768/57 1434/1775/57 1433/1769/57 -f 1411/1771/54 1427/1777/54 1426/1772/54 -f 1419/1774/54 1435/1779/54 1434/1775/54 -f 1410/1776/56 1424/1797/56 1427/1777/56 -f 1418/1778/56 1432/1801/56 1435/1779/56 -f 1412/1780/55 1429/1787/55 1428/1781/55 -f 1420/1783/55 1437/1789/55 1436/1784/55 -f 1413/1786/57 1430/1791/57 1429/1787/57 -f 1421/1788/57 1438/1793/57 1437/1789/57 -f 1415/1790/54 1431/2371/54 1430/1791/54 -f 1423/1792/54 1439/1799/54 1438/1793/54 -f 1414/1782/56 1428/1781/56 1431/1794/56 -f 1408/1796/55 1425/1803/55 1424/1797/55 -f 1422/1798/56 1436/2372/56 1439/1799/56 -f 1416/1800/55 1433/2373/55 1432/1801/55 -f 1409/1802/57 1426/2374/57 1425/1803/57 -f 1452/1804/56 1454/2375/56 1455/1805/56 -f 1459/1807/54 1457/2376/54 1456/1808/54 -f 1463/1810/55 1462/2377/55 1460/1811/55 -f 1493/1819/53 1473/2378/53 1472/1820/53 -f 1470/1822/64 1471/1847/64 1472/1823/64 -f 1484/1825/52 1471/1847/52 1470/1822/52 -f 1483/1826/65 1470/1822/65 1473/1827/65 -f 1475/1829/53 1477/2379/53 1488/1830/53 -f 1480/1832/52 1476/1836/52 1474/1833/52 -f 1475/1835/66 1474/1833/66 1476/1836/66 -f 1479/1834/67 1474/1833/67 1475/1838/67 -f 1487/1840/55 1484/2380/55 1485/1841/55 -f 1488/1843/54 1480/1859/54 1481/1844/54 -f 1487/1846/67 1472/2381/67 1471/1847/67 -f 1488/1848/65 1477/2382/65 1476/1836/65 -f 1492/1849/57 1482/1858/57 1483/1850/57 -f 1491/1852/56 1478/1860/56 1479/1853/56 -f 1487/1857/53 1486/2383/53 1491/2384/53 -f 1491/2384/53 1490/2385/53 1488/1855/53 -f 1488/1855/53 1489/2386/53 1492/1856/53 -f 1492/1856/53 1493/2387/53 1487/1857/53 -f 1487/1857/53 1491/2384/53 1488/1855/53 -f 1478/1860/52 1485/1841/52 1484/2380/52 -f 1484/2380/52 1483/1850/52 1482/1858/52 -f 1482/1858/52 1481/1844/52 1480/1859/52 -f 1480/1859/52 1479/1853/52 1478/1860/52 -f 1478/1860/52 1484/2380/52 1482/1858/52 -f 1489/1845/65 1481/1844/65 1482/1861/65 -f 1486/1842/67 1485/1841/67 1478/1863/67 -f 1549/1865/67 1550/1940/67 1557/1866/67 -f 1505/1868/56 1528/2388/56 1527/1869/56 -f 1546/1871/65 1554/1938/65 1553/1872/65 -f 1557/1876/52 1550/1940/52 1551/2389/52 -f 1551/2389/52 1552/1929/52 1553/1874/52 -f 1553/1874/52 1554/1938/52 1555/1875/52 -f 1555/1875/52 1556/1926/52 1557/1876/52 -f 1557/1876/52 1551/2389/52 1553/1874/52 -f 1548/1879/53 1549/2390/53 1544/2391/53 -f 1544/2391/53 1545/2392/53 1547/1877/53 -f 1547/1877/53 1546/2393/53 1543/1878/53 -f 1543/1878/53 1542/2394/53 1548/1879/53 -f 1548/1879/53 1544/2391/53 1547/1877/53 -f 1500/1880/56 1510/2395/56 1511/1881/56 -f 1506/1883/57 1530/1912/57 1533/1884/57 -f 1508/1885/55 1533/1884/55 1532/1886/55 -f 1509/1888/56 1532/2396/56 1531/1889/56 -f 1495/1891/57 1516/1899/57 1517/1892/57 -f 1494/1893/55 1517/1892/55 1514/1894/55 -f 1503/1870/54 1527/1869/54 1526/1896/54 -f 1497/1898/54 1515/1901/54 1516/1899/54 -f 1496/1900/56 1514/2397/56 1515/1901/56 -f 1498/1902/55 1513/1910/55 1510/1903/55 -f 1504/1905/55 1529/1911/55 1528/1906/55 -f 1501/1882/54 1511/1881/54 1512/1908/54 -f 1499/1909/57 1512/1908/57 1513/1910/57 -f 1502/1897/57 1526/1896/57 1529/1911/57 -f 1507/1890/54 1531/1889/54 1530/1912/54 -f 1539/1913/67 1534/2398/67 1518/1914/67 -f 1540/1916/65 1537/2399/65 1521/1917/65 -f 1520/1919/64 1536/2400/64 1538/1920/64 -f 1519/1922/66 1535/2401/66 1541/1923/66 -f 1544/1925/56 1557/1876/56 1556/1926/56 -f 1543/1928/57 1553/1874/57 1552/1929/57 -f 1547/1931/65 1574/2402/65 1575/1932/65 -f 1548/1934/67 1579/2403/67 1580/1935/67 -f 1547/1937/54 1555/1875/54 1554/1938/54 -f 1548/1939/55 1551/2389/55 1550/1940/55 -f 1559/1943/53 1558/2404/53 1565/2405/53 -f 1565/2405/53 1564/2406/53 1563/1941/53 -f 1563/1941/53 1562/2407/53 1561/1942/53 -f 1561/1942/53 1560/2408/53 1559/1943/53 -f 1559/1943/53 1565/2405/53 1563/1941/53 -f 1573/1946/52 1566/1965/52 1567/1962/52 -f 1567/1962/52 1568/1957/52 1569/1944/52 -f 1569/1944/52 1570/1964/52 1571/1945/52 -f 1571/1945/52 1572/1954/52 1573/1946/52 -f 1573/1946/52 1567/1962/52 1569/1944/52 -f 1562/1947/65 1570/1964/65 1569/1948/65 -f 1558/1950/67 1566/1965/67 1573/1951/67 -f 1565/1953/56 1573/1946/56 1572/1954/56 -f 1561/1956/57 1569/1944/57 1568/1957/57 -f 1564/1959/66 1572/2409/66 1571/1945/66 -f 1560/1961/64 1568/2410/64 1567/1962/64 -f 1563/1960/54 1571/1945/54 1570/1964/54 -f 1559/1963/55 1567/1962/55 1566/1965/55 -f 1556/1966/67 1577/1971/67 1576/1967/67 -f 1576/1969/66 1577/1971/66 1575/1932/66 -f 1555/1933/52 1575/1932/52 1577/1971/52 -f 1576/1972/53 1574/2411/53 1547/1973/53 -f 1552/1975/65 1581/1978/65 1578/1976/65 -f 1551/1936/52 1580/1935/52 1581/1978/52 -f 1581/1978/64 1580/1935/64 1579/1979/64 -f 1542/1981/53 1578/2412/53 1579/1982/53 -f 1583/1984/54 1585/1990/54 1584/1985/54 -f 1586/1987/55 1589/2413/55 1588/1988/55 -f 1585/1990/56 1589/2413/56 1586/1987/56 -f 1582/1986/57 1587/2414/57 1588/1991/57 -f 1583/1984/53 1588/2415/53 1589/1992/53 -f 1584/1985/52 1586/2416/52 1587/1993/52 -f 1596/1994/52 1597/2002/52 1594/1995/52 -f 1593/1997/54 1597/2002/54 1596/1994/54 -f 1590/1999/55 1595/1996/55 1594/1995/55 -f 1592/2001/56 1594/1995/56 1597/2002/56 -f 1591/2004/57 1596/1994/57 1595/1996/57 -f 1606/2006/56 1609/2417/56 1601/2007/56 -f 1601/2007/68 1609/2417/68 1608/2009/68 -f 1603/2011/55 1605/2418/55 1610/2012/55 -f 1608/2009/57 1607/2419/57 1598/2014/57 -f 1603/2011/69 1613/2013/69 1612/2015/69 -f 1604/2017/70 1611/2022/70 1610/2018/70 -f 1607/2020/71 1606/2006/71 1600/2008/71 -f 1602/2016/54 1612/2015/54 1611/2022/54 -f 1615/2023/54 1617/2029/54 1621/2024/54 -f 1614/2026/55 1619/2420/55 1618/2027/55 -f 1616/2028/72 1618/2027/72 1621/2024/72 -f 1615/2023/73 1620/2025/73 1619/2030/73 -f 1624/2032/74 1625/2421/74 1627/2033/74 -f 1622/2035/65 1624/2032/65 1626/2034/65 -f 1623/2037/75 1622/2035/75 1629/2036/75 -f 1625/2039/67 1623/2037/67 1628/2038/67 -f 1717/2041/66 1719/2113/66 1718/2042/66 -f 1636/2050/65 1644/2422/65 1649/2051/65 -f 1639/2053/67 1647/2423/67 1650/2054/67 -f 1648/2056/66 1646/2424/66 1638/2057/66 -f 1651/2059/64 1645/2425/64 1637/2060/64 -f 1655/2062/56 1653/2426/56 1652/2063/56 -f 1659/2065/57 1658/2427/57 1656/2066/57 -f 1660/2068/55 1661/2428/55 1663/2069/55 -f 1664/2071/54 1666/2429/54 1667/2072/54 -f 1671/2074/56 1669/2430/56 1668/2075/56 -f 1675/2077/57 1674/2431/57 1672/2078/57 -f 1676/2080/55 1677/2432/55 1679/2081/55 -f 1680/2083/54 1682/2433/54 1683/2084/54 -f 1687/2086/56 1685/2434/56 1684/2087/56 -f 1691/2089/57 1690/2435/57 1688/2090/57 -f 1692/2092/55 1693/2436/55 1695/2093/55 -f 1696/2095/54 1698/2437/54 1699/2096/54 -f 1703/2098/56 1701/2438/56 1700/2099/56 -f 1707/2101/57 1706/2439/57 1704/2102/57 -f 1708/2104/55 1709/2440/55 1711/2105/55 -f 1712/2107/54 1714/2441/54 1715/2108/54 -f 1720/2110/64 1723/2442/64 1722/2111/64 -f 1719/2113/67 1723/2442/67 1720/2110/67 -f 1716/2043/65 1721/2443/65 1722/2114/65 -f 1717/2041/53 1722/2444/53 1723/2115/53 -f 1718/2042/52 1720/2445/52 1721/2116/52 -f 1730/2117/52 1731/2125/52 1728/2118/52 -f 1727/2120/66 1731/2125/66 1730/2117/66 -f 1724/2122/64 1729/2119/64 1728/2118/64 -f 1726/2124/67 1728/2118/67 1731/2125/67 -f 1725/2127/65 1730/2117/65 1729/2119/65 -f 1740/2129/67 1743/2446/67 1735/2130/67 -f 1735/2130/78 1743/2446/78 1742/2132/78 -f 1737/2134/64 1739/2447/64 1744/2135/64 -f 1742/2132/65 1741/2448/65 1732/2137/65 -f 1737/2134/79 1747/2136/79 1746/2138/79 -f 1738/2140/80 1745/2145/80 1744/2141/80 -f 1741/2143/81 1740/2129/81 1734/2131/81 -f 1736/2139/66 1746/2138/66 1745/2145/66 -f 1749/2146/66 1751/2152/66 1755/2147/66 -f 1748/2149/64 1753/2449/64 1752/2150/64 -f 1750/2151/82 1752/2150/82 1755/2147/82 -f 1749/2146/83 1754/2148/83 1753/2153/83 -f 1757/2155/65 1759/2161/65 1758/2156/65 -f 1760/2158/67 1763/2450/67 1762/2159/67 -f 1759/2161/66 1763/2450/66 1760/2158/66 -f 1756/2157/64 1761/2451/64 1762/2162/64 -f 1757/2155/53 1762/2452/53 1763/2163/53 -f 1756/2157/52 1758/2156/52 1760/2164/52 -f 1770/2166/52 1771/2174/52 1768/2167/52 -f 1767/2169/65 1771/2174/65 1770/2166/65 -f 1764/2171/67 1769/2168/67 1768/2167/67 -f 1766/2173/66 1768/2167/66 1771/2174/66 -f 1765/2176/64 1770/2166/64 1769/2168/64 -f 1780/2178/66 1783/2453/66 1775/2179/66 -f 1775/2179/84 1783/2453/84 1782/2181/84 -f 1777/2183/67 1779/2454/67 1784/2184/67 -f 1782/2181/64 1781/2455/64 1772/2186/64 -f 1777/2183/85 1787/2185/85 1786/2187/85 -f 1778/2189/86 1785/2194/86 1784/2190/86 -f 1781/2192/87 1780/2178/87 1774/2180/87 -f 1776/2188/65 1786/2187/65 1785/2194/65 -f 1789/2195/65 1791/2201/65 1795/2196/65 -f 1788/2198/67 1793/2456/67 1792/2199/67 -f 1791/2201/88 1790/2200/88 1792/2199/88 -f 1789/2195/89 1794/2197/89 1793/2202/89 -f 1797/2204/55 1799/2210/55 1798/2205/55 -f 1800/2207/54 1803/2457/54 1802/2208/54 -f 1799/2210/57 1803/2457/57 1800/2207/57 -f 1796/2206/56 1801/2458/56 1802/2211/56 -f 1797/2204/53 1802/2459/53 1803/2212/53 -f 1798/2205/52 1800/2460/52 1801/2213/52 -f 1810/2214/52 1811/2222/52 1808/2215/52 -f 1807/2217/55 1811/2222/55 1810/2214/55 -f 1804/2219/54 1809/2216/54 1808/2215/54 -f 1806/2221/57 1808/2215/57 1811/2222/57 -f 1805/2224/56 1810/2214/56 1809/2216/56 -f 1820/2226/57 1823/2461/57 1815/2227/57 -f 1815/2227/90 1823/2461/90 1822/2229/90 -f 1817/2231/54 1819/2462/54 1824/2232/54 -f 1822/2229/56 1821/2463/56 1812/2234/56 -f 1817/2231/73 1827/2233/73 1826/2235/73 -f 1818/2237/72 1825/2241/72 1824/2238/72 -f 1812/2240/91 1821/2464/91 1820/2226/91 -f 1816/2236/55 1826/2235/55 1825/2241/55 -f 1829/2242/55 1831/2248/55 1835/2243/55 -f 1828/2245/54 1833/2465/54 1832/2246/54 -f 1830/2247/70 1832/2246/70 1835/2243/70 -f 1829/2242/69 1834/2244/69 1833/2249/69 -f 1837/2251/67 1839/2257/67 1838/2252/67 -f 1840/2254/65 1843/2466/65 1842/2255/65 -f 1839/2257/64 1843/2466/64 1840/2254/64 -f 1836/2253/66 1841/2467/66 1842/2258/66 -f 1837/2251/53 1842/2468/53 1843/2259/53 -f 1836/2253/52 1838/2252/52 1840/2260/52 -f 1850/2262/52 1851/2270/52 1848/2263/52 -f 1847/2265/67 1851/2270/67 1850/2262/67 -f 1844/2267/65 1849/2264/65 1848/2263/65 -f 1846/2269/64 1848/2263/64 1851/2270/64 -f 1845/2272/66 1850/2262/66 1849/2264/66 -f 1860/2274/64 1863/2469/64 1855/2275/64 -f 1855/2275/92 1863/2469/92 1862/2277/92 -f 1857/2279/65 1859/2470/65 1864/2280/65 -f 1862/2277/66 1861/2471/66 1852/2282/66 -f 1857/2279/89 1867/2281/89 1866/2283/89 -f 1858/2285/88 1865/2289/88 1864/2286/88 -f 1852/2288/93 1861/2472/93 1860/2274/93 -f 1856/2284/67 1866/2283/67 1865/2289/67 -f 1869/2290/67 1871/2296/67 1875/2291/67 -f 1868/2293/65 1873/2473/65 1872/2294/65 -f 1871/2296/86 1870/2295/86 1872/2294/86 -f 1869/2290/85 1874/2292/85 1873/2297/85 -f 1877/2299/64 1879/2305/64 1878/2300/64 -f 1880/2302/66 1883/2474/66 1882/2303/66 -f 1879/2305/65 1883/2474/65 1880/2302/65 -f 1876/2301/67 1881/2475/67 1882/2306/67 -f 1877/2299/53 1882/2476/53 1883/2307/53 -f 1878/2300/52 1880/2477/52 1881/2308/52 -f 1885/2309/66 1887/2478/66 1888/2310/66 -f 1885/2309/83 1891/2311/83 1890/2312/83 -f 1886/2314/82 1889/2317/82 1888/2315/82 -f 1884/2313/64 1890/2312/64 1889/2317/64 -f 1893/2318/64 1895/2324/64 1899/2319/64 -f 1892/2321/66 1897/2479/66 1896/2322/66 -f 1894/2323/80 1896/2322/80 1899/2319/80 -f 1893/2318/79 1898/2320/79 1897/2325/79 -o Huge_Rope -v 0.375000 5.500000 2.500000 -v 0.198223 5.573223 2.500000 -v 0.125000 5.750000 2.500000 -v 0.198223 5.926777 2.500000 -v 0.375000 6.000000 2.500000 -v 0.551777 5.926777 2.500000 -v 0.625000 5.750000 2.500000 -v 0.551777 5.573223 2.500000 -v 0.375000 5.500000 1.000000 -v 0.198223 5.573223 1.000000 -v 0.125000 5.750000 1.000000 -v 0.198223 5.926777 1.000000 -v 0.375000 6.000000 1.000000 -v 0.551777 5.926777 1.000000 -v 0.625000 5.750000 1.000000 -v 0.551777 5.573223 1.000000 -v -0.375000 5.500000 2.500000 -v -0.551777 5.573223 2.500000 -v -0.625000 5.750000 2.500000 -v -0.551777 5.926777 2.500000 -v -0.375000 6.000000 2.500000 -v -0.198223 5.926777 2.500000 -v -0.125000 5.750000 2.500000 -v -0.198223 5.573223 2.500000 -v -0.375000 5.500000 1.000000 -v -0.551777 5.573223 1.000000 -v -0.625000 5.750000 1.000000 -v -0.551777 5.926777 1.000000 -v -0.375000 6.000000 1.000000 -v -0.198223 5.926777 1.000000 -v -0.125000 5.750000 1.000000 -v -0.198223 5.573223 1.000000 -v 0.375000 10.000000 2.250000 -v 0.198223 10.073223 2.250000 -v 0.125000 10.250000 2.250000 -v 0.198223 10.426777 2.250000 -v 0.375000 10.500000 2.250000 -v 0.551777 10.426777 2.250000 -v 0.625000 10.250000 2.250000 -v 0.551777 10.073223 2.250000 -v 0.375000 10.000000 0.750000 -v 0.198223 10.073223 0.750000 -v 0.125000 10.250000 0.750000 -v 0.198223 10.426777 0.750000 -v 0.375000 10.500000 0.750000 -v 0.551777 10.426777 0.750000 -v 0.625000 10.250000 0.750000 -v 0.551777 10.073223 0.750000 -v -0.375000 10.000000 2.250000 -v -0.551777 10.073223 2.250000 -v -0.625000 10.250000 2.250000 -v -0.551777 10.426777 2.250000 -v -0.375000 10.500000 2.250000 -v -0.198223 10.426777 2.250000 -v -0.125000 10.250000 2.250000 -v -0.198223 10.073223 2.250000 -v -0.375000 10.000000 0.750000 -v -0.551777 10.073223 0.750000 -v -0.625000 10.250000 0.750000 -v -0.551777 10.426777 0.750000 -v -0.375000 10.500000 0.750000 -v -0.198223 10.426777 0.750000 -v -0.125000 10.250000 0.750000 -v -0.198223 10.073223 0.750000 -vt 0.538961 0.500000 -vt 0.529221 0.625000 -vt 0.529221 0.500000 -vt 0.519481 0.625000 -vt 0.519481 0.500000 -vt 0.587662 0.500000 -vt 0.577922 0.625000 -vt 0.577922 0.500000 -vt 0.597403 0.625000 -vt 0.587662 0.625000 -vt 0.568182 0.500000 -vt 0.558442 0.625000 -vt 0.558442 0.500000 -vt 0.548701 0.500000 -vt 0.538961 0.625000 -vt 0.568182 0.625000 -vt 0.548701 0.625000 -vt 0.616883 0.500000 -vt 0.607143 0.625000 -vt 0.607143 0.500000 -vt 0.597403 0.625000 -vt 0.597403 0.500000 -vt 0.665585 0.500000 -vt 0.655844 0.625000 -vt 0.655844 0.500000 -vt 0.675325 0.625000 -vt 0.665585 0.625000 -vt 0.646104 0.500000 -vt 0.636364 0.625000 -vt 0.636364 0.500000 -vt 0.626623 0.500000 -vt 0.616883 0.625000 -vt 0.646104 0.625000 -vt 0.626623 0.625000 -vt 0.538961 0.500000 -vt 0.529221 0.625000 -vt 0.529221 0.500000 -vt 0.519481 0.625000 -vt 0.519481 0.500000 -vt 0.587662 0.500000 -vt 0.577922 0.625000 -vt 0.577922 0.500000 -vt 0.597403 0.625000 -vt 0.587662 0.625000 -vt 0.568182 0.500000 -vt 0.558442 0.625000 -vt 0.558442 0.500000 -vt 0.548701 0.500000 -vt 0.538961 0.625000 -vt 0.568182 0.625000 -vt 0.548701 0.625000 -vt 0.616883 0.500000 -vt 0.607143 0.625000 -vt 0.607143 0.500000 -vt 0.597403 0.625000 -vt 0.597403 0.500000 -vt 0.665585 0.500000 -vt 0.655844 0.625000 -vt 0.655844 0.500000 -vt 0.675325 0.625000 -vt 0.665585 0.625000 -vt 0.646104 0.500000 -vt 0.636364 0.625000 -vt 0.636364 0.500000 -vt 0.626623 0.500000 -vt 0.616883 0.625000 -vt 0.646104 0.625000 -vt 0.626623 0.625000 -vt 0.597403 0.500000 -vt 0.675325 0.500000 -vt 0.597403 0.500000 -vt 0.675325 0.500000 -vn -1.0000 -0.0000 0.0000 -vn -0.7071 -0.7071 0.0000 -vn -0.0000 -1.0000 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.7071 0.7071 0.0000 -vn -0.0000 1.0000 0.0000 -vn -0.7071 0.7071 0.0000 -s 1 -f 1902/2480/94 1909/2481/95 1901/2482/95 -f 1901/2482/95 1908/2483/96 1900/2484/96 -f 1907/2485/97 1914/2486/98 1906/2487/98 -f 1907/2485/97 1908/2488/96 1915/2489/97 -f 1905/2490/99 1912/2491/100 1904/2492/100 -f 1903/2493/101 1910/2494/94 1902/2480/94 -f 1906/2487/98 1913/2495/99 1905/2490/99 -f 1904/2492/100 1911/2496/101 1903/2493/101 -f 1918/2497/94 1925/2498/95 1917/2499/95 -f 1917/2499/95 1924/2500/96 1916/2501/96 -f 1923/2502/97 1930/2503/98 1922/2504/98 -f 1923/2502/97 1924/2505/96 1931/2506/97 -f 1921/2507/99 1928/2508/100 1920/2509/100 -f 1919/2510/101 1926/2511/94 1918/2497/94 -f 1922/2504/98 1929/2512/99 1921/2507/99 -f 1920/2509/100 1927/2513/101 1919/2510/101 -f 1934/2514/94 1941/2515/95 1933/2516/95 -f 1933/2516/95 1940/2517/96 1932/2518/96 -f 1939/2519/97 1946/2520/98 1938/2521/98 -f 1939/2519/97 1940/2522/96 1947/2523/97 -f 1937/2524/99 1944/2525/100 1936/2526/100 -f 1935/2527/101 1942/2528/94 1934/2514/94 -f 1938/2521/98 1945/2529/99 1937/2524/99 -f 1936/2526/100 1943/2530/101 1935/2527/101 -f 1950/2531/94 1957/2532/95 1949/2533/95 -f 1949/2533/95 1956/2534/96 1948/2535/96 -f 1955/2536/97 1962/2537/98 1954/2538/98 -f 1955/2536/97 1956/2539/96 1963/2540/97 -f 1953/2541/99 1960/2542/100 1952/2543/100 -f 1951/2544/101 1958/2545/94 1950/2531/94 -f 1954/2538/98 1961/2546/99 1953/2541/99 -f 1952/2543/100 1959/2547/101 1951/2544/101 -f 1902/2480/94 1910/2494/94 1909/2481/95 -f 1901/2482/95 1909/2481/95 1908/2483/96 -f 1907/2485/97 1915/2489/97 1914/2486/98 -f 1907/2485/97 1900/2548/96 1908/2488/96 -f 1905/2490/99 1913/2495/99 1912/2491/100 -f 1903/2493/101 1911/2496/101 1910/2494/94 -f 1906/2487/98 1914/2486/98 1913/2495/99 -f 1904/2492/100 1912/2491/100 1911/2496/101 -f 1918/2497/94 1926/2511/94 1925/2498/95 -f 1917/2499/95 1925/2498/95 1924/2500/96 -f 1923/2502/97 1931/2506/97 1930/2503/98 -f 1923/2502/97 1916/2549/96 1924/2505/96 -f 1921/2507/99 1929/2512/99 1928/2508/100 -f 1919/2510/101 1927/2513/101 1926/2511/94 -f 1922/2504/98 1930/2503/98 1929/2512/99 -f 1920/2509/100 1928/2508/100 1927/2513/101 -f 1934/2514/94 1942/2528/94 1941/2515/95 -f 1933/2516/95 1941/2515/95 1940/2517/96 -f 1939/2519/97 1947/2523/97 1946/2520/98 -f 1939/2519/97 1932/2550/96 1940/2522/96 -f 1937/2524/99 1945/2529/99 1944/2525/100 -f 1935/2527/101 1943/2530/101 1942/2528/94 -f 1938/2521/98 1946/2520/98 1945/2529/99 -f 1936/2526/100 1944/2525/100 1943/2530/101 -f 1950/2531/94 1958/2545/94 1957/2532/95 -f 1949/2533/95 1957/2532/95 1956/2534/96 -f 1955/2536/97 1963/2540/97 1962/2537/98 -f 1955/2536/97 1948/2551/96 1956/2539/96 -f 1953/2541/99 1961/2546/99 1960/2542/100 -f 1951/2544/101 1959/2547/101 1958/2545/94 -f 1954/2538/98 1962/2537/98 1961/2546/99 -f 1952/2543/100 1960/2542/100 1959/2547/101 -o Huge_Pivot -v 0.562500 1.500000 -2.812500 -v 0.937500 1.500000 -2.812500 -v 0.562500 1.500000 -3.187500 -v 0.937500 1.500000 -3.187500 -v -0.937500 1.500000 -2.812500 -v -0.562500 1.500000 -2.812500 -v -0.937500 1.500000 -3.187500 -v -0.562500 1.500000 -3.187500 -v 0.562500 2.000000 -1.812500 -v 0.937500 2.000000 -1.812500 -v 0.562500 2.000000 -2.187500 -v 0.937500 2.000000 -2.187500 -v -0.937500 2.000000 -1.812500 -v -0.562500 2.000000 -1.812500 -v -0.937500 2.000000 -2.187500 -v -0.562500 2.000000 -2.187500 -v 0.562500 3.500000 -3.187500 -v 0.562500 3.500000 -2.812500 -v 0.937500 3.500000 -2.812500 -v 0.937500 3.500000 -3.187500 -v -0.937500 3.500000 -3.187500 -v -0.937500 3.500000 -2.812500 -v -0.562500 3.500000 -2.812500 -v -0.562500 3.500000 -3.187500 -v 0.562500 3.500000 -2.187500 -v 0.562500 3.500000 -1.812500 -v 0.937500 3.500000 -1.812500 -v 0.937500 3.500000 -2.187500 -v -0.937500 3.500000 -2.187500 -v -0.937500 3.500000 -1.812500 -v -0.562500 3.500000 -1.812500 -v -0.562500 3.500000 -2.187500 -v 0.625000 3.500000 -2.875000 -v 0.875000 3.500000 -2.875000 -v 0.625000 3.500000 -3.125000 -v 0.875000 3.500000 -3.125000 -v 0.625000 4.500000 -3.125000 -v 0.625000 4.500000 -2.875000 -v 0.875000 4.500000 -2.875000 -v 0.875000 4.500000 -3.125000 -v 0.625000 3.500000 -1.875000 -v 0.875000 3.500000 -1.875000 -v 0.625000 3.500000 -2.125000 -v 0.875000 3.500000 -2.125000 -v 0.625000 4.500000 -2.125000 -v 0.625000 4.500000 -1.875000 -v 0.875000 4.500000 -1.875000 -v 0.875000 4.500000 -2.125000 -v -0.875000 3.500000 -2.875000 -v -0.625000 3.500000 -2.875000 -v -0.875000 3.500000 -3.125000 -v -0.625000 3.500000 -3.125000 -v -0.875000 4.500000 -3.125000 -v -0.875000 4.500000 -2.875000 -v -0.625000 4.500000 -2.875000 -v -0.625000 4.500000 -3.125000 -v -0.875000 3.500000 -1.875000 -v -0.625000 3.500000 -1.875000 -v -0.875000 3.500000 -2.125000 -v -0.625000 3.500000 -2.125000 -v -0.875000 4.500000 -2.125000 -v -0.875000 4.500000 -1.875000 -v -0.625000 4.500000 -1.875000 -v -0.625000 4.500000 -2.125000 -v 0.750000 2.000000 -2.187500 -v 0.750000 3.500000 -2.187500 -v 0.750000 2.000000 -2.812500 -v 0.750000 3.500000 -2.812500 -v -0.750000 2.000000 -2.187500 -v -0.750000 3.500000 -2.187500 -v -0.750000 2.000000 -2.812500 -v -0.750000 3.500000 -2.812500 -v 0.562500 2.000000 -2.000000 -v -0.562500 2.000000 -2.000000 -v 0.562500 3.500000 -2.000000 -v -0.562500 3.500000 -2.000000 -v 0.562500 2.000000 -3.000000 -v -0.562500 2.000000 -3.000000 -v 0.562500 3.500000 -3.000000 -v -0.562500 3.500000 -3.000000 -v 0.750000 2.000000 -2.187500 -v 0.750000 3.500000 -2.187500 -v 0.750000 2.000000 -2.812500 -v 0.750000 3.500000 -2.812500 -v -0.750000 2.000000 -2.187500 -v -0.750000 3.500000 -2.187500 -v -0.750000 2.000000 -2.812500 -v -0.750000 3.500000 -2.812500 -v 0.562500 2.000000 -2.000000 -v -0.562500 2.000000 -2.000000 -v 0.562500 3.500000 -2.000000 -v -0.562500 3.500000 -2.000000 -v 0.562500 2.000000 -3.000000 -v -0.562500 2.000000 -3.000000 -v 0.562500 3.500000 -3.000000 -v -0.562500 3.500000 -3.000000 -vt 0.168831 0.541667 -vt 0.155844 0.625000 -vt 0.155844 0.541667 -vt 0.142857 0.541667 -vt 0.129870 0.625000 -vt 0.129870 0.541667 -vt 0.051948 0.708333 -vt 0.071429 0.739583 -vt 0.051948 0.739583 -vt 0.051948 0.708333 -vt 0.071429 0.739583 -vt 0.051948 0.739583 -vt 0.051948 0.739583 -vt 0.071429 0.708333 -vt 0.071429 0.739583 -vt 0.051948 0.739583 -vt 0.071429 0.708333 -vt 0.071429 0.739583 -vt 0.071429 0.541667 -vt 0.051948 0.708333 -vt 0.051948 0.541667 -vt 0.110390 0.541667 -vt 0.090909 0.708333 -vt 0.090909 0.541667 -vt 0.071429 0.541667 -vt 0.051948 0.708333 -vt 0.051948 0.541667 -vt 0.110390 0.541667 -vt 0.090909 0.708333 -vt 0.090909 0.541667 -vt 0.129870 0.541667 -vt 0.110390 0.708333 -vt 0.129870 0.541667 -vt 0.110390 0.708333 -vt 0.051948 0.739583 -vt 0.071429 0.708333 -vt 0.071429 0.739583 -vt 0.051948 0.739583 -vt 0.071429 0.708333 -vt 0.071429 0.739583 -vt 0.110390 0.583333 -vt 0.090909 0.708333 -vt 0.090909 0.583333 -vt 0.129870 0.583333 -vt 0.110390 0.708333 -vt 0.110390 0.583333 -vt 0.090909 0.583333 -vt 0.071429 0.583333 -vt 0.129870 0.583333 -vt 0.110390 0.708333 -vt 0.071429 0.583333 -vt 0.051948 0.708333 -vt 0.051948 0.583333 -vt 0.090909 0.708333 -vt 0.051948 0.708333 -vt 0.051948 0.583333 -vt 0.142857 0.541667 -vt 0.129870 0.625000 -vt 0.129870 0.541667 -vt 0.168831 0.541667 -vt 0.155844 0.625000 -vt 0.155844 0.541667 -vt 0.181818 0.541667 -vt 0.168831 0.625000 -vt 0.142857 0.625000 -vt 0.181818 0.541667 -vt 0.168831 0.625000 -vt 0.142857 0.625000 -vt 0.168831 0.541667 -vt 0.155844 0.625000 -vt 0.155844 0.541667 -vt 0.142857 0.541667 -vt 0.129870 0.625000 -vt 0.129870 0.541667 -vt 0.142857 0.541667 -vt 0.129870 0.625000 -vt 0.129870 0.541667 -vt 0.168831 0.541667 -vt 0.155844 0.625000 -vt 0.155844 0.541667 -vt 0.181818 0.541667 -vt 0.168831 0.625000 -vt 0.142857 0.625000 -vt 0.181818 0.541667 -vt 0.168831 0.625000 -vt 0.142857 0.625000 -vt 0.240260 0.541667 -vt 0.272727 0.666667 -vt 0.240260 0.666667 -vt 0.240260 0.666667 -vt 0.272727 0.541667 -vt 0.272727 0.666667 -vt 0.181818 0.541667 -vt 0.240260 0.666667 -vt 0.181818 0.666667 -vt 0.181818 0.666667 -vt 0.240260 0.541667 -vt 0.240260 0.666667 -vt 0.272727 0.666667 -vt 0.240260 0.541667 -vt 0.240260 0.666667 -vt 0.272727 0.541667 -vt 0.240260 0.666667 -vt 0.272727 0.666667 -vt 0.240260 0.666667 -vt 0.181818 0.541667 -vt 0.181818 0.666667 -vt 0.240260 0.541667 -vt 0.181818 0.666667 -vt 0.240260 0.666667 -vt 0.071429 0.708333 -vt 0.071429 0.708333 -vt 0.129870 0.708333 -vt 0.129870 0.708333 -vt 0.129870 0.708333 -vt 0.129870 0.708333 -vt 0.181818 0.625000 -vt 0.181818 0.625000 -vt 0.181818 0.625000 -vt 0.181818 0.625000 -vt 0.272727 0.541667 -vt 0.240260 0.541667 -vt 0.240260 0.541667 -vt 0.181818 0.541667 -vt 0.272727 0.541667 -vt 0.240260 0.541667 -vt 0.240260 0.541667 -vt 0.181818 0.541667 -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 -s off -f 2005/2552/102 2009/2553/102 2004/2554/102 -f 2006/2555/103 2011/2556/103 2007/2557/103 -f 1974/2558/104 1973/2559/104 1972/2560/104 -f 1978/2561/104 1977/2562/104 1976/2563/104 -f 1982/2564/105 1980/2565/105 1981/2566/105 -f 1986/2567/105 1984/2568/105 1985/2569/105 -f 1970/2570/103 1987/2571/103 1971/2572/103 -f 1969/2573/102 1985/2574/102 1968/2575/102 -f 1966/2576/103 1983/2577/103 1967/2578/103 -f 1965/2579/102 1981/2580/102 1964/2581/102 -f 1971/2582/106 1986/2583/106 1969/2573/106 -f 1968/2575/107 1984/2568/107 1970/2570/107 -f 1967/2584/106 1982/2585/106 1965/2579/106 -f 1964/2581/107 1980/2565/107 1966/2576/107 -f 1990/2586/105 1988/2587/105 1989/2588/105 -f 1994/2589/105 1992/2590/105 1993/2591/105 -f 1973/2592/102 1989/2593/102 1972/2594/102 -f 1979/2595/106 1994/2596/106 1977/2597/106 -f 1976/2598/107 1992/2590/107 1978/2599/107 -f 1975/2600/106 1990/2601/106 1973/2592/106 -f 1972/2594/107 1988/2587/107 1974/2602/107 -f 1978/2599/103 1995/2603/103 1979/2604/103 -f 1977/2597/102 1993/2605/102 1976/2598/102 -f 1974/2602/103 1991/2606/103 1975/2607/103 -f 1998/2608/103 2003/2609/103 1999/2610/103 -f 1997/2611/102 2001/2612/102 1996/2613/102 -f 1999/2614/106 2002/2615/106 1997/2611/106 -f 1996/2613/107 2000/2616/107 1998/2608/107 -f 2007/2617/106 2010/2618/106 2005/2552/106 -f 2004/2554/107 2008/2619/107 2006/2555/107 -f 2021/2620/102 2025/2621/102 2020/2622/102 -f 2022/2623/103 2027/2624/103 2023/2625/103 -f 2014/2626/103 2019/2627/103 2015/2628/103 -f 2013/2629/102 2017/2630/102 2012/2631/102 -f 2015/2632/106 2018/2633/106 2013/2629/106 -f 2012/2631/107 2016/2634/107 2014/2626/107 -f 2023/2635/106 2026/2636/106 2021/2620/106 -f 2020/2622/107 2024/2637/107 2022/2623/107 -f 2028/2638/106 2031/2639/106 2029/2640/106 -f 2035/2641/107 2032/2642/107 2033/2643/107 -f 2037/2644/102 2038/2645/102 2039/2646/102 -f 2042/2647/103 2041/2648/103 2043/2649/103 -f 2047/2650/107 2044/2651/107 2045/2652/107 -f 2048/2653/106 2051/2654/106 2049/2655/106 -f 2054/2656/103 2053/2657/103 2055/2658/103 -f 2057/2659/102 2058/2660/102 2059/2661/102 -f 2005/2552/102 2010/2618/102 2009/2553/102 -f 2006/2555/103 2008/2619/103 2011/2556/103 -f 1974/2558/104 1975/2662/104 1973/2559/104 -f 1978/2561/104 1979/2663/104 1977/2562/104 -f 1982/2564/105 1983/2577/105 1980/2565/105 -f 1986/2567/105 1987/2571/105 1984/2568/105 -f 1970/2570/103 1984/2568/103 1987/2571/103 -f 1969/2573/102 1986/2583/102 1985/2574/102 -f 1966/2576/103 1980/2565/103 1983/2577/103 -f 1965/2579/102 1982/2585/102 1981/2580/102 -f 1971/2582/106 1987/2664/106 1986/2583/106 -f 1968/2575/107 1985/2574/107 1984/2568/107 -f 1967/2584/106 1983/2665/106 1982/2585/106 -f 1964/2581/107 1981/2580/107 1980/2565/107 -f 1990/2586/105 1991/2606/105 1988/2587/105 -f 1994/2589/105 1995/2603/105 1992/2590/105 -f 1973/2592/102 1990/2601/102 1989/2593/102 -f 1979/2595/106 1995/2666/106 1994/2596/106 -f 1976/2598/107 1993/2605/107 1992/2590/107 -f 1975/2600/106 1991/2667/106 1990/2601/106 -f 1972/2594/107 1989/2593/107 1988/2587/107 -f 1978/2599/103 1992/2590/103 1995/2603/103 -f 1977/2597/102 1994/2596/102 1993/2605/102 -f 1974/2602/103 1988/2587/103 1991/2606/103 -f 1998/2608/103 2000/2616/103 2003/2609/103 -f 1997/2611/102 2002/2615/102 2001/2612/102 -f 1999/2614/106 2003/2668/106 2002/2615/106 -f 1996/2613/107 2001/2612/107 2000/2616/107 -f 2007/2617/106 2011/2669/106 2010/2618/106 -f 2004/2554/107 2009/2553/107 2008/2619/107 -f 2021/2620/102 2026/2636/102 2025/2621/102 -f 2022/2623/103 2024/2637/103 2027/2624/103 -f 2014/2626/103 2016/2634/103 2019/2627/103 -f 2013/2629/102 2018/2633/102 2017/2630/102 -f 2015/2632/106 2019/2670/106 2018/2633/106 -f 2012/2631/107 2017/2630/107 2016/2634/107 -f 2023/2635/106 2027/2671/106 2026/2636/106 -f 2020/2622/107 2025/2621/107 2024/2637/107 -f 2028/2638/106 2030/2672/106 2031/2639/106 -f 2035/2641/107 2034/2673/107 2032/2642/107 -f 2037/2644/102 2036/2674/102 2038/2645/102 -f 2042/2647/103 2040/2675/103 2041/2648/103 -f 2047/2650/107 2046/2676/107 2044/2651/107 -f 2048/2653/106 2050/2677/106 2051/2654/106 -f 2054/2656/103 2052/2678/103 2053/2657/103 -f 2057/2659/102 2056/2679/102 2058/2660/102 -o Huge_Erector -v 0.562500 3.500000 -3.187500 -v 0.562500 3.500000 -2.812500 -v 0.937500 3.500000 -2.812500 -v 0.937500 3.500000 -3.187500 -v 0.562500 14.500000 -3.187500 -v 0.562500 14.500000 -2.812500 -v 0.937500 14.500000 -2.812500 -v 0.937500 14.500000 -3.187500 -v 0.937500 5.750000 -1.812500 -v -0.937500 5.750000 -1.812500 -v 0.937500 6.125000 -1.812500 -v -0.937500 6.125000 -1.812500 -v 0.937500 5.750000 -0.812500 -v -0.937500 5.750000 -0.812500 -v 0.937500 6.125000 -0.812500 -v -0.937500 6.125000 -0.812500 -v 0.562500 5.750000 -1.187500 -v -0.562500 5.750000 -1.187500 -v 0.562500 6.125000 -1.187500 -v -0.562500 6.125000 -1.187500 -v 0.937500 8.750000 -1.812500 -v -0.937500 8.750000 -1.812500 -v 0.937500 9.125000 -1.812500 -v -0.937500 9.125000 -1.812500 -v 0.937500 8.750000 -0.562500 -v -0.937500 8.750000 -0.562500 -v 0.937500 9.125000 -0.562500 -v -0.937500 9.125000 -0.562500 -v 0.562500 8.750000 -0.937500 -v -0.562500 8.750000 -0.937500 -v 0.562500 9.125000 -0.937500 -v -0.562500 9.125000 -0.937500 -v 0.937500 10.750000 -1.812500 -v -0.937500 10.750000 -1.812500 -v 0.937500 11.125000 -1.812500 -v -0.937500 11.125000 -1.812500 -v 0.937500 10.750000 -0.562500 -v -0.937500 10.750000 -0.562500 -v 0.937500 11.125000 -0.562500 -v -0.937500 11.125000 -0.562500 -v 0.562500 10.750000 -0.937500 -v -0.562500 10.750000 -0.937500 -v 0.562500 11.125000 -0.937500 -v -0.562500 11.125000 -0.937500 -v -0.562500 10.812500 -1.812500 -v 0.562500 10.812500 -1.812500 -v -0.562500 11.062500 -1.812500 -v 0.562500 11.062500 -1.812500 -v -0.562500 11.062500 -2.062500 -v -0.562500 10.812500 -2.062500 -v 0.562500 10.812500 -2.062500 -v 0.562500 11.062500 -2.062500 -v -0.562500 8.812500 -1.812500 -v 0.562500 8.812500 -1.812500 -v -0.562500 9.062500 -1.812500 -v 0.562500 9.062500 -1.812500 -v -0.562500 9.062500 -2.062500 -v -0.562500 8.812500 -2.062500 -v 0.562500 8.812500 -2.062500 -v 0.562500 9.062500 -2.062500 -v -0.562500 5.812500 -1.812500 -v 0.562500 5.812500 -1.812500 -v -0.562500 6.062500 -1.812500 -v 0.562500 6.062500 -1.812500 -v -0.562500 6.062500 -2.062500 -v -0.562500 5.812500 -2.062500 -v 0.562500 5.812500 -2.062500 -v 0.562500 6.062500 -2.062500 -v 0.750000 3.500000 -2.187500 -v 0.750000 3.500000 -2.812500 -v -0.750000 3.500000 -2.187500 -v -0.750000 3.500000 -2.812500 -v 0.562500 3.500000 -2.000000 -v -0.562500 3.500000 -2.000000 -v 0.562500 3.500000 -3.000000 -v -0.562500 3.500000 -3.000000 -v 0.750000 14.500000 -2.187500 -v 0.750000 14.500000 -2.812500 -v -0.750000 14.500000 -2.187500 -v -0.750000 14.500000 -2.812500 -v 0.562500 14.500000 -2.000000 -v -0.562500 14.500000 -2.000000 -v 0.562500 14.500000 -3.000000 -v -0.562500 14.500000 -3.000000 -v 0.562500 3.500000 -2.187500 -v 0.562500 3.500000 -1.812500 -v 0.937500 3.500000 -1.812500 -v 0.937500 3.500000 -2.187500 -v 0.562500 14.500000 -2.187500 -v 0.562500 14.500000 -1.812500 -v 0.937500 14.500000 -1.812500 -v 0.937500 14.500000 -2.187500 -v -0.937500 3.500000 -3.187500 -v -0.937500 3.500000 -2.812500 -v -0.562500 3.500000 -2.812500 -v -0.562500 3.500000 -3.187500 -v -0.937500 14.500000 -3.187500 -v -0.937500 14.500000 -2.812500 -v -0.562500 14.500000 -2.812500 -v -0.562500 14.500000 -3.187500 -v -0.937500 3.500000 -2.187500 -v -0.937500 3.500000 -1.812500 -v -0.562500 3.500000 -1.812500 -v -0.562500 3.500000 -2.187500 -v -0.937500 14.500000 -2.187500 -v -0.937500 14.500000 -1.812500 -v -0.562500 14.500000 -1.812500 -v -0.562500 14.500000 -2.187500 -v 0.750000 3.500000 -2.187500 -v 0.750000 3.500000 -2.812500 -v -0.750000 3.500000 -2.187500 -v -0.750000 3.500000 -2.812500 -v 0.562500 3.500000 -2.000000 -v -0.562500 3.500000 -2.000000 -v 0.562500 3.500000 -3.000000 -v -0.562500 3.500000 -3.000000 -v 0.750000 14.500000 -2.187500 -v 0.750000 14.500000 -2.812500 -v -0.750000 14.500000 -2.187500 -v -0.750000 14.500000 -2.812500 -v 0.562500 14.500000 -2.000000 -v -0.562500 14.500000 -2.000000 -v 0.562500 14.500000 -3.000000 -v -0.562500 14.500000 -3.000000 -vt 0.850649 0.031250 -vt 0.831169 -0.000000 -vt 0.850649 -0.000000 -vt 0.831169 0.979167 -vt 0.850649 0.947917 -vt 0.850649 0.979167 -vt 0.870130 0.031250 -vt 0.889610 0.031250 -vt 0.870130 0.947917 -vt 0.909091 0.031250 -vt 0.889610 0.947917 -vt 0.831169 0.947917 -vt 0.831169 0.031250 -vt 0.136364 0.739583 -vt 0.038961 0.770833 -vt 0.038961 0.739583 -vt 0.116883 0.875000 -vt 0.136364 0.906250 -vt 0.116883 0.906250 -vt 0.155844 0.791667 -vt 0.136364 0.875000 -vt 0.136364 0.791667 -vt 0.038961 0.791667 -vt 0.136364 0.791667 -vt 0.058442 0.843750 -vt 0.038961 0.791667 -vt 0.019481 0.875000 -vt 0.019481 0.791667 -vt 0.058442 0.843750 -vt 0.038961 0.875000 -vt 0.058442 0.906250 -vt 0.038961 0.906250 -vt 0.058442 0.875000 -vt 0.136364 0.739583 -vt 0.038961 0.770833 -vt 0.038961 0.739583 -vt 0.116883 0.875000 -vt 0.136364 0.906250 -vt 0.116883 0.906250 -vt 0.155844 0.770833 -vt 0.136364 0.875000 -vt 0.136364 0.770833 -vt 0.038961 0.770833 -vt 0.136364 0.770833 -vt 0.058442 0.843750 -vt 0.019481 0.875000 -vt 0.019481 0.770833 -vt 0.058442 0.843750 -vt 0.038961 0.875000 -vt 0.058442 0.906250 -vt 0.038961 0.906250 -vt 0.058442 0.875000 -vt 0.136364 0.739583 -vt 0.038961 0.770833 -vt 0.038961 0.739583 -vt 0.116883 0.875000 -vt 0.136364 0.906250 -vt 0.116883 0.906250 -vt 0.155844 0.770833 -vt 0.136364 0.875000 -vt 0.136364 0.770833 -vt 0.038961 0.770833 -vt 0.136364 0.770833 -vt 0.058442 0.843750 -vt 0.019481 0.875000 -vt 0.019481 0.770833 -vt 0.058442 0.843750 -vt 0.038961 0.875000 -vt 0.058442 0.906250 -vt 0.038961 0.906250 -vt 0.058442 0.875000 -vt 0.967532 0.916667 -vt 0.909091 0.937500 -vt 0.909091 0.916667 -vt 0.967532 0.958333 -vt 0.909091 0.937500 -vt 0.967532 0.937500 -vt 0.909091 0.979167 -vt 0.967532 0.979167 -vt 0.967532 0.916667 -vt 0.909091 0.916667 -vt 0.909091 0.979167 -vt 0.967532 0.958333 -vt 0.967532 0.979167 -vt 0.967532 0.937500 -vt 0.967532 0.916667 -vt 0.909091 0.937500 -vt 0.909091 0.916667 -vt 0.909091 0.979167 -vt 0.967532 0.958333 -vt 0.967532 0.979167 -vt 0.967532 0.937500 -vt 0.967532 0.000000 -vt 0.909091 0.916667 -vt 0.909091 -0.000000 -vt 1.000000 0.916667 -vt 0.967532 -0.000000 -vt 1.000000 -0.000000 -vt 0.967532 0.916667 -vt 0.909091 -0.000000 -vt 0.967532 0.000000 -vt 1.000000 -0.000000 -vt 0.967532 0.916667 -vt 0.967532 -0.000000 -vt 0.850649 0.031250 -vt 0.831169 -0.000000 -vt 0.850649 -0.000000 -vt 0.831169 0.979167 -vt 0.850649 0.947917 -vt 0.850649 0.979167 -vt 0.870130 0.031250 -vt 0.889610 0.031250 -vt 0.870130 0.947917 -vt 0.909091 0.031250 -vt 0.889610 0.947917 -vt 0.831169 0.947917 -vt 0.831169 0.031250 -vt 0.850649 0.031250 -vt 0.831169 -0.000000 -vt 0.850649 -0.000000 -vt 0.831169 0.979167 -vt 0.850649 0.947917 -vt 0.850649 0.979167 -vt 0.870130 0.031250 -vt 0.889610 0.031250 -vt 0.870130 0.947917 -vt 0.909091 0.031250 -vt 0.889610 0.947917 -vt 0.831169 0.947917 -vt 0.831169 0.031250 -vt 0.850649 0.031250 -vt 0.831169 -0.000000 -vt 0.850649 -0.000000 -vt 0.831169 0.979167 -vt 0.850649 0.947917 -vt 0.850649 0.979167 -vt 0.870130 0.031250 -vt 0.889610 0.031250 -vt 0.870130 0.947917 -vt 0.909091 0.031250 -vt 0.889610 0.947917 -vt 0.831169 0.947917 -vt 0.831169 0.031250 -vt 0.909091 0.916667 -vt 0.967532 0.000000 -vt 0.909091 -0.000000 -vt 0.967532 -0.000000 -vt 1.000000 0.916667 -vt 1.000000 -0.000000 -vt 0.909091 -0.000000 -vt 0.967532 0.916667 -vt 0.967532 0.000000 -vt 0.967532 0.916667 -vt 1.000000 -0.000000 -vt 0.967532 -0.000000 -vt 0.909091 0.947917 -vt 0.136364 0.770833 -vt 0.155844 0.875000 -vt 0.136364 0.875000 -vt 0.116883 0.843750 -vt 0.038961 0.875000 -vt 0.116883 0.843750 -vt 0.155844 0.875000 -vt 0.136364 0.875000 -vt 0.116883 0.843750 -vt 0.038961 0.875000 -vt 0.116883 0.843750 -vt 0.155844 0.875000 -vt 0.136364 0.875000 -vt 0.116883 0.843750 -vt 0.038961 0.875000 -vt 0.116883 0.843750 -vt 0.909091 0.958333 -vt 0.909091 0.958333 -vt 0.909091 0.958333 -vt 0.967532 0.916667 -vt 0.967532 0.916667 -vt 0.909091 0.916667 -vt 1.000000 0.916667 -vt 0.909091 0.947917 -vt 0.909091 0.947917 -vt 0.909091 0.947917 -vt 0.967532 0.916667 -vt 0.967532 0.916667 -vt 0.909091 0.916667 -vt 1.000000 0.916667 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.7071 0.0000 0.7071 -vn -0.7071 0.0000 0.7071 -s off -f 2060/2680/108 2062/2681/108 2061/2682/108 -f 2066/2683/109 2064/2684/109 2065/2685/109 -f 2061/2686/110 2064/2684/110 2060/2680/110 -f 2062/2687/111 2065/2688/111 2061/2686/111 -f 2063/2689/112 2066/2690/112 2062/2687/112 -f 2060/2680/113 2067/2691/113 2063/2692/113 -f 2069/2693/113 2070/2694/113 2068/2695/113 -f 2079/2696/114 2073/2697/114 2077/2698/114 -f 2069/2699/110 2075/2700/110 2071/2701/110 -f 2069/2702/108 2068/2703/108 2077/2704/108 -f 2070/2705/112 2072/2706/112 2068/2707/112 -f 2070/2705/109 2071/2701/109 2078/2708/109 -f 2074/2709/115 2076/2710/115 2072/2711/115 -f 2078/2712/111 2077/2698/111 2076/2710/111 -f 2081/2713/113 2082/2714/113 2080/2715/113 -f 2091/2716/114 2085/2717/114 2089/2718/114 -f 2081/2719/110 2087/2720/110 2083/2721/110 -f 2081/2722/108 2080/2723/108 2089/2724/108 -f 2082/2714/112 2084/2725/112 2080/2726/112 -f 2082/2714/109 2083/2721/109 2090/2727/109 -f 2086/2728/115 2088/2729/115 2084/2730/115 -f 2090/2731/111 2089/2718/111 2088/2729/111 -f 2093/2732/113 2094/2733/113 2092/2734/113 -f 2103/2735/114 2097/2736/114 2101/2737/114 -f 2093/2738/110 2099/2739/110 2095/2740/110 -f 2093/2741/108 2092/2742/108 2101/2743/108 -f 2094/2733/112 2096/2744/112 2092/2745/112 -f 2094/2733/109 2095/2740/109 2102/2746/109 -f 2098/2747/115 2100/2748/115 2096/2749/115 -f 2102/2750/111 2101/2737/111 2100/2748/111 -f 2112/2751/108 2118/2752/108 2113/2753/108 -f 2108/2754/113 2110/2755/113 2109/2756/113 -f 2107/2757/109 2108/2754/109 2106/2758/109 -f 2104/2759/108 2110/2755/108 2105/2760/108 -f 2115/2761/109 2116/2762/109 2114/2763/109 -f 2116/2762/113 2118/2752/113 2117/2764/113 -f 2120/2765/108 2126/2766/108 2121/2767/108 -f 2123/2768/109 2124/2769/109 2122/2770/109 -f 2124/2769/113 2126/2766/113 2125/2771/113 -f 2135/2772/113 2142/2773/113 2134/2774/113 -f 2138/2775/110 2131/2776/110 2130/2777/110 -f 2140/2778/111 2133/2779/111 2132/2780/111 -f 2129/2781/112 2136/2782/112 2128/2783/112 -f 2144/2784/108 2146/2785/108 2145/2786/108 -f 2150/2787/109 2148/2788/109 2149/2789/109 -f 2145/2790/110 2148/2788/110 2144/2784/110 -f 2146/2791/111 2149/2792/111 2145/2790/111 -f 2147/2793/112 2150/2794/112 2146/2791/112 -f 2144/2784/113 2151/2795/113 2147/2796/113 -f 2152/2797/108 2154/2798/108 2153/2799/108 -f 2158/2800/109 2156/2801/109 2157/2802/109 -f 2153/2803/110 2156/2801/110 2152/2797/110 -f 2154/2804/111 2157/2805/111 2153/2803/111 -f 2155/2806/112 2158/2807/112 2154/2804/112 -f 2152/2797/113 2159/2808/113 2155/2809/113 -f 2160/2810/108 2162/2811/108 2161/2812/108 -f 2166/2813/109 2164/2814/109 2165/2815/109 -f 2161/2816/110 2164/2814/110 2160/2810/110 -f 2162/2817/111 2165/2818/111 2161/2816/111 -f 2163/2819/112 2166/2820/112 2162/2817/112 -f 2160/2810/113 2167/2821/113 2163/2822/113 -f 2182/2823/111 2175/2824/111 2174/2825/111 -f 2171/2826/112 2178/2827/112 2170/2828/112 -f 2173/2829/113 2180/2830/113 2172/2831/113 -f 2176/2832/110 2169/2833/110 2168/2834/110 -f 2060/2680/108 2063/2692/108 2062/2681/108 -f 2066/2683/109 2067/2691/109 2064/2684/109 -f 2061/2686/110 2065/2688/110 2064/2684/110 -f 2062/2687/111 2066/2690/111 2065/2688/111 -f 2063/2689/112 2067/2835/112 2066/2690/112 -f 2060/2680/113 2064/2684/113 2067/2691/113 -f 2069/2693/113 2071/2836/113 2070/2694/113 -f 2079/2696/114 2075/2700/114 2073/2697/114 -f 2069/2699/110 2073/2837/110 2075/2700/110 -f 2068/2703/108 2072/2838/108 2076/2839/108 -f 2077/2704/108 2073/2840/108 2069/2702/108 -f 2068/2703/108 2076/2839/108 2077/2704/108 -f 2070/2705/112 2074/2709/112 2072/2706/112 -f 2071/2701/109 2075/2700/109 2079/2841/109 -f 2078/2708/109 2074/2709/109 2070/2705/109 -f 2071/2701/109 2079/2841/109 2078/2708/109 -f 2074/2709/115 2078/2712/115 2076/2710/115 -f 2078/2712/111 2079/2696/111 2077/2698/111 -f 2081/2713/113 2083/2721/113 2082/2714/113 -f 2091/2716/114 2087/2720/114 2085/2717/114 -f 2081/2719/110 2085/2842/110 2087/2720/110 -f 2080/2723/108 2084/2843/108 2088/2844/108 -f 2089/2724/108 2085/2845/108 2081/2722/108 -f 2080/2723/108 2088/2844/108 2089/2724/108 -f 2082/2714/112 2086/2728/112 2084/2725/112 -f 2083/2721/109 2087/2720/109 2091/2846/109 -f 2090/2727/109 2086/2728/109 2082/2714/109 -f 2083/2721/109 2091/2846/109 2090/2727/109 -f 2086/2728/115 2090/2731/115 2088/2729/115 -f 2090/2731/111 2091/2716/111 2089/2718/111 -f 2093/2732/113 2095/2740/113 2094/2733/113 -f 2103/2735/114 2099/2739/114 2097/2736/114 -f 2093/2738/110 2097/2847/110 2099/2739/110 -f 2092/2742/108 2096/2848/108 2100/2849/108 -f 2101/2743/108 2097/2850/108 2093/2741/108 -f 2092/2742/108 2100/2849/108 2101/2743/108 -f 2094/2733/112 2098/2747/112 2096/2744/112 -f 2095/2740/109 2099/2739/109 2103/2851/109 -f 2102/2746/109 2098/2747/109 2094/2733/109 -f 2095/2740/109 2103/2851/109 2102/2746/109 -f 2098/2747/115 2102/2750/115 2100/2748/115 -f 2102/2750/111 2103/2735/111 2101/2737/111 -f 2112/2751/108 2117/2764/108 2118/2752/108 -f 2108/2754/113 2111/2852/113 2110/2755/113 -f 2107/2757/109 2111/2852/109 2108/2754/109 -f 2104/2759/108 2109/2756/108 2110/2755/108 -f 2115/2761/109 2119/2853/109 2116/2762/109 -f 2116/2762/113 2119/2853/113 2118/2752/113 -f 2120/2765/108 2125/2771/108 2126/2766/108 -f 2123/2768/109 2127/2854/109 2124/2769/109 -f 2124/2769/113 2127/2854/113 2126/2766/113 -f 2135/2772/113 2143/2855/113 2142/2773/113 -f 2138/2775/110 2139/2856/110 2131/2776/110 -f 2140/2778/111 2141/2857/111 2133/2779/111 -f 2129/2781/112 2137/2858/112 2136/2782/112 -f 2144/2784/108 2147/2796/108 2146/2785/108 -f 2150/2787/109 2151/2795/109 2148/2788/109 -f 2145/2790/110 2149/2792/110 2148/2788/110 -f 2146/2791/111 2150/2794/111 2149/2792/111 -f 2147/2793/112 2151/2859/112 2150/2794/112 -f 2144/2784/113 2148/2788/113 2151/2795/113 -f 2152/2797/108 2155/2809/108 2154/2798/108 -f 2158/2800/109 2159/2808/109 2156/2801/109 -f 2153/2803/110 2157/2805/110 2156/2801/110 -f 2154/2804/111 2158/2807/111 2157/2805/111 -f 2155/2806/112 2159/2860/112 2158/2807/112 -f 2152/2797/113 2156/2801/113 2159/2808/113 -f 2160/2810/108 2163/2822/108 2162/2811/108 -f 2166/2813/109 2167/2821/109 2164/2814/109 -f 2161/2816/110 2165/2818/110 2164/2814/110 -f 2162/2817/111 2166/2820/111 2165/2818/111 -f 2163/2819/112 2167/2861/112 2166/2820/112 -f 2160/2810/113 2164/2814/113 2167/2821/113 -f 2182/2823/111 2183/2862/111 2175/2824/111 -f 2171/2826/112 2179/2863/112 2178/2827/112 -f 2173/2829/113 2181/2864/113 2180/2830/113 -f 2176/2832/110 2177/2865/110 2169/2833/110 -o Huge_Pad -v -1.250000 2.000000 1.250000 -v 1.250000 2.000000 1.250000 -v -1.250000 2.000000 -1.250000 -v 1.250000 2.000000 -1.250000 -v -2.500000 2.000000 2.500000 -v 2.500000 2.000000 2.500000 -v -2.500000 2.000000 -2.500000 -v 2.500000 2.000000 -2.500000 -v -2.500000 1.500000 2.500000 -v 2.500000 1.500000 2.500000 -v -2.500000 1.500000 -2.500000 -v 2.500000 1.500000 -2.500000 -v -3.000000 1.500000 3.000000 -v 3.000000 1.500000 3.000000 -v -3.000000 1.500000 -3.000000 -v 3.000000 1.500000 -3.000000 -v -3.000000 1.000000 3.000000 -v 3.000000 1.000000 3.000000 -v -3.000000 1.000000 -3.000000 -v 3.000000 1.000000 -3.000000 -v -0.500000 1.000000 0.500000 -v 0.500000 1.000000 0.500000 -v -0.500000 1.000000 -0.500000 -v 0.500000 1.000000 -0.500000 -v -1.250000 2.000000 1.250000 -v 1.250000 2.000000 1.250000 -v -1.250000 2.000000 -1.250000 -v 1.250000 2.000000 -1.250000 -v -1.500000 1.000000 -2.500000 -v 1.500000 1.000000 -2.500000 -v -1.500000 1.000000 -3.500000 -v 1.500000 1.000000 -3.500000 -v -1.500000 2.000000 -3.500000 -v -1.500000 2.000000 -2.500000 -v 1.500000 2.000000 -2.500000 -v 1.500000 2.000000 -3.500000 -v -2.000000 1.000000 4.000000 -v 2.000000 1.000000 4.000000 -v -2.000000 1.000000 2.500000 -v 2.000000 1.000000 2.500000 -v -2.000000 2.000000 2.500000 -v -2.000000 2.000000 4.000000 -v 2.000000 2.000000 4.000000 -v 2.000000 2.000000 2.500000 -v 0.812500 2.000000 3.687500 -v 1.187500 2.000000 3.687500 -v 0.812500 2.000000 3.312500 -v 1.187500 2.000000 3.312500 -v -1.187500 2.000000 3.687500 -v -0.812500 2.000000 3.687500 -v -1.187500 2.000000 3.312500 -v -0.812500 2.000000 3.312500 -v 0.812500 2.000000 2.187500 -v 1.187500 2.000000 2.187500 -v 0.812500 2.000000 1.812500 -v 1.187500 2.000000 1.812500 -v -1.187500 2.000000 2.187500 -v -0.812500 2.000000 2.187500 -v -1.187500 2.000000 1.812500 -v -0.812500 2.000000 1.812500 -v 0.812500 8.000000 3.312500 -v 0.812500 8.000000 3.687500 -v 1.187500 8.000000 3.687500 -v 1.187500 8.000000 3.312500 -v -1.187500 8.000000 3.312500 -v -1.187500 8.000000 3.687500 -v -0.812500 8.000000 3.687500 -v -0.812500 8.000000 3.312500 -v 0.812500 8.000000 1.812500 -v 0.812500 8.000000 2.187500 -v 1.187500 8.000000 2.187500 -v 1.187500 8.000000 1.812500 -v -1.187500 8.000000 1.812500 -v -1.187500 8.000000 2.187500 -v -0.812500 8.000000 2.187500 -v -0.812500 8.000000 1.812500 -v -1.500000 8.000000 4.000000 -v 1.500000 8.000000 4.000000 -v -1.500000 8.000000 1.500000 -v 1.500000 8.000000 1.500000 -v -1.500000 8.250000 1.500000 -v -1.500000 8.250000 4.000000 -v 1.500000 8.250000 4.000000 -v 1.500000 8.250000 1.500000 -v 0.812500 8.250000 2.187500 -v 1.187500 8.250000 2.187500 -v 0.812500 8.250000 1.812500 -v 1.187500 8.250000 1.812500 -v -1.187500 8.250000 2.187500 -v -0.812500 8.250000 2.187500 -v -1.187500 8.250000 1.812500 -v -0.812500 8.250000 1.812500 -v 0.812500 14.250000 1.812500 -v 0.812500 14.250000 2.187500 -v 1.187500 14.250000 2.187500 -v 1.187500 14.250000 1.812500 -v -1.187500 14.250000 1.812500 -v -1.187500 14.250000 2.187500 -v -0.812500 14.250000 2.187500 -v -0.812500 14.250000 1.812500 -v 0.812500 8.250000 3.187500 -v 1.187500 8.250000 3.187500 -v 0.812500 8.250000 2.812500 -v 1.187500 8.250000 2.812500 -v -1.187500 8.250000 3.187500 -v -0.812500 8.250000 3.187500 -v -1.187500 8.250000 2.812500 -v -0.812500 8.250000 2.812500 -v 0.812500 14.250000 2.812500 -v 0.812500 14.250000 3.187500 -v 1.187500 14.250000 3.187500 -v 1.187500 14.250000 2.812500 -v -1.187500 14.250000 2.812500 -v -1.187500 14.250000 3.187500 -v -0.812500 14.250000 3.187500 -v -0.812500 14.250000 2.812500 -v 0.812500 2.000000 2.000000 -v -0.812500 2.000000 2.000000 -v 0.812500 8.000000 2.000000 -v -0.812500 8.000000 2.000000 -v 0.812500 2.000000 3.500000 -v -0.812500 2.000000 3.500000 -v 0.812500 8.000000 3.500000 -v -0.812500 8.000000 3.500000 -v -1.000000 2.000000 3.312500 -v -1.000000 2.000000 2.187500 -v -1.000000 8.000000 3.312500 -v -1.000000 8.000000 2.187500 -v 1.000000 2.000000 3.312500 -v 1.000000 2.000000 2.187500 -v 1.000000 8.000000 3.312500 -v 1.000000 8.000000 2.187500 -v 0.812500 8.250000 2.000000 -v -0.812500 8.250000 2.000000 -v 0.812500 14.250000 2.000000 -v -0.812500 14.250000 2.000000 -v 0.812500 8.250000 3.000000 -v -0.812500 8.250000 3.000000 -v 0.812500 14.250000 3.000000 -v -0.812500 14.250000 3.000000 -v -1.000000 8.250000 2.187500 -v -1.000000 14.250000 2.187500 -v -1.000000 8.250000 2.812500 -v -1.000000 14.250000 2.812500 -v 1.000000 8.250000 2.187500 -v 1.000000 14.250000 2.187500 -v 1.000000 8.250000 2.812500 -v 1.000000 14.250000 2.812500 -v -1.500000 14.250000 3.500000 -v 1.500000 14.250000 3.500000 -v -1.500000 14.250000 1.500000 -v 1.500000 14.250000 1.500000 -v -1.500000 14.500000 1.500000 -v -1.500000 14.500000 3.500000 -v 1.500000 14.500000 3.500000 -v 1.500000 14.500000 1.500000 -v 0.375000 2.000000 2.250000 -v 0.198223 2.000000 2.323223 -v 0.125000 2.000000 2.500000 -v 0.198223 2.000000 2.676777 -v 0.375000 2.000000 2.750000 -v 0.551777 2.000000 2.676777 -v 0.625000 2.000000 2.500000 -v 0.551777 2.000000 2.323223 -v 0.375000 10.000000 2.250000 -v 0.198223 10.000000 2.323223 -v 0.125000 10.000000 2.500000 -v 0.198223 10.000000 2.676777 -v 0.375000 10.000000 2.750000 -v 0.551777 10.000000 2.676777 -v 0.625000 10.000000 2.500000 -v 0.551777 10.000000 2.323223 -v 0.198223 10.051777 2.301777 -v 0.125000 10.176777 2.426777 -v 0.198223 10.301777 2.551777 -v 0.375000 10.353554 2.603553 -v 0.551777 10.301777 2.551777 -v 0.625000 10.176777 2.426777 -v 0.551777 10.051777 2.301777 -v 0.198223 10.073223 2.250000 -v 0.125000 10.250000 2.250000 -v 0.198223 10.426777 2.250000 -v 0.375000 10.500000 2.250000 -v 0.551777 10.426777 2.250000 -v 0.625000 10.250000 2.250000 -v 0.551777 10.073223 2.250000 -v -0.375000 2.000000 2.250000 -v -0.551777 2.000000 2.323223 -v -0.625000 2.000000 2.500000 -v -0.551777 2.000000 2.676777 -v -0.375000 2.000000 2.750000 -v -0.198223 2.000000 2.676777 -v -0.125000 2.000000 2.500000 -v -0.198223 2.000000 2.323223 -v -0.375000 10.000000 2.250000 -v -0.551777 10.000000 2.323223 -v -0.625000 10.000000 2.500000 -v -0.551777 10.000000 2.676777 -v -0.375000 10.000000 2.750000 -v -0.198223 10.000000 2.676777 -v -0.125000 10.000000 2.500000 -v -0.198223 10.000000 2.323223 -v -0.551777 10.051777 2.301777 -v -0.625000 10.176777 2.426777 -v -0.551777 10.301777 2.551777 -v -0.375000 10.353554 2.603553 -v -0.198223 10.301777 2.551777 -v -0.125000 10.176777 2.426777 -v -0.198223 10.051777 2.301777 -v -0.551777 10.073223 2.250000 -v -0.625000 10.250000 2.250000 -v -0.551777 10.426777 2.250000 -v -0.375000 10.500000 2.250000 -v -0.198223 10.426777 2.250000 -v -0.125000 10.250000 2.250000 -v -0.198223 10.073223 2.250000 -v 0.812500 2.000000 2.000000 -v -0.812500 2.000000 2.000000 -v 0.812500 8.000000 2.000000 -v -0.812500 8.000000 2.000000 -v 0.812500 2.000000 3.500000 -v -0.812500 2.000000 3.500000 -v 0.812500 8.000000 3.500000 -v -0.812500 8.000000 3.500000 -v -1.000000 2.000000 3.312500 -v -1.000000 2.000000 2.187500 -v -1.000000 8.000000 3.312500 -v -1.000000 8.000000 2.187500 -v 1.000000 2.000000 3.312500 -v 1.000000 2.000000 2.187500 -v 1.000000 8.000000 3.312500 -v 1.000000 8.000000 2.187500 -v 0.812500 8.250000 2.000000 -v -0.812500 8.250000 2.000000 -v 0.812500 14.250000 2.000000 -v -0.812500 14.250000 2.000000 -v 0.812500 8.250000 3.000000 -v -0.812500 8.250000 3.000000 -v 0.812500 14.250000 3.000000 -v -0.812500 14.250000 3.000000 -v -1.000000 8.250000 2.187500 -v -1.000000 14.250000 2.187500 -v -1.000000 8.250000 2.812500 -v -1.000000 14.250000 2.812500 -v 1.000000 8.250000 2.187500 -v 1.000000 14.250000 2.187500 -v 1.000000 8.250000 2.812500 -v 1.000000 14.250000 2.812500 -vt 0.155844 0.875000 -vt 0.285714 0.666667 -vt 0.285714 0.875000 -vt 0.090909 0.437500 -vt 0.025974 0.125000 -vt 0.090909 0.229167 -vt 0.220779 0.437500 -vt 0.025974 0.541667 -vt 0.220779 0.229167 -vt 0.285714 0.541667 -vt 0.285714 0.125000 -vt 0.025974 0.125000 -vt 0.285714 0.083333 -vt 0.285714 0.125000 -vt 0.025974 0.125000 -vt 0.285714 0.083333 -vt 0.285714 0.125000 -vt 0.285714 0.083333 -vt 0.025974 0.125000 -vt 0.285714 0.083333 -vt 0.285714 0.125000 -vt 0.025974 0.083333 -vt 0.311688 0.041667 -vt 0.025974 0.083333 -vt 0.311688 0.041667 -vt 0.025974 0.083333 -vt 0.311688 0.041667 -vt 0.025974 0.083333 -vt 0.311688 0.041667 -vt -0.000000 0.041667 -vt 0.311688 -0.000000 -vt 0.000000 0.041667 -vt 0.311688 0.000000 -vt 0.000000 0.041667 -vt 0.311688 0.000000 -vt 0.000000 0.041667 -vt 0.311688 0.000000 -vt 0.129870 0.291667 -vt 0.129870 0.375000 -vt 0.181818 0.375000 -vt 0.181818 0.291667 -vt 0.441558 0.625000 -vt 0.493506 0.875000 -vt 0.441558 0.875000 -vt 0.545455 0.875000 -vt 0.493506 0.625000 -vt 0.545455 0.625000 -vt 0.493506 0.541667 -vt 0.441558 0.541667 -vt 0.441558 0.958333 -vt 0.493506 0.958333 -vt 0.337662 0.083333 -vt 0.415584 0.416667 -vt 0.337662 0.416667 -vt 0.415584 -0.000000 -vt 0.337662 -0.000000 -vt 0.337662 0.500000 -vt 0.415584 0.500000 -vt 0.285714 0.083333 -vt 0.285714 0.416667 -vt 0.324675 0.500000 -vt 0.305195 1.000000 -vt 0.305195 0.500000 -vt 0.344156 0.500000 -vt 0.324675 1.000000 -vt 0.324675 0.500000 -vt 0.344156 0.500000 -vt 0.324675 1.000000 -vt 0.363636 0.500000 -vt 0.344156 1.000000 -vt 0.344156 0.500000 -vt 0.363636 0.500000 -vt 0.344156 1.000000 -vt 0.344156 0.500000 -vt 0.305195 0.500000 -vt 0.285714 1.000000 -vt 0.285714 0.500000 -vt 0.305195 0.500000 -vt 0.285714 1.000000 -vt 0.285714 0.500000 -vt 0.324675 0.500000 -vt 0.305195 1.000000 -vt 0.324675 0.500000 -vt 0.305195 1.000000 -vt 0.324675 1.000000 -vt 0.363636 0.500000 -vt 0.344156 1.000000 -vt 0.324675 1.000000 -vt 0.363636 0.500000 -vt 0.344156 1.000000 -vt 0.305195 0.500000 -vt 0.285714 1.000000 -vt 0.285714 0.500000 -vt 0.285714 1.000000 -vt 0.285714 0.500000 -vt 0.305195 1.000000 -vt 0.675325 0.750000 -vt 0.545455 1.000000 -vt 0.545455 0.750000 -vt 0.545455 0.750000 -vt 0.675325 1.000000 -vt 0.545455 1.000000 -vt 0.688312 1.000000 -vt 0.675325 0.750000 -vt 0.688312 0.750000 -vt 0.688312 1.000000 -vt 0.675325 0.750000 -vt 0.688312 0.750000 -vt 0.675325 0.729167 -vt 0.545455 0.729167 -vt 0.675325 0.729167 -vt 0.545455 0.750000 -vt 0.545455 0.729167 -vt 0.402597 0.500000 -vt 0.383117 1.000000 -vt 0.383117 0.500000 -vt 0.422078 0.500000 -vt 0.402597 1.000000 -vt 0.441558 0.500000 -vt 0.422078 1.000000 -vt 0.422078 0.500000 -vt 0.383117 0.500000 -vt 0.363636 1.000000 -vt 0.363636 0.500000 -vt 0.402597 0.500000 -vt 0.383117 1.000000 -vt 0.402597 1.000000 -vt 0.441558 0.500000 -vt 0.422078 1.000000 -vt 0.363636 1.000000 -vt 0.363636 0.500000 -vt 0.402597 0.500000 -vt 0.383117 1.000000 -vt 0.383117 0.500000 -vt 0.422078 0.500000 -vt 0.402597 1.000000 -vt 0.441558 0.500000 -vt 0.422078 1.000000 -vt 0.422078 0.500000 -vt 0.383117 0.500000 -vt 0.363636 1.000000 -vt 0.363636 0.500000 -vt 0.402597 0.500000 -vt 0.383117 1.000000 -vt 0.402597 1.000000 -vt 0.441558 0.500000 -vt 0.422078 1.000000 -vt 0.363636 1.000000 -vt 0.363636 0.500000 -vt 0.792208 0.750000 -vt 0.688312 1.000000 -vt 0.688312 0.750000 -vt 0.415584 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.415584 0.000000 -vt 0.500000 0.500000 -vt 0.415584 0.500000 -vt 0.500000 0.000000 -vt 0.558442 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.558442 0.000000 -vt 0.558442 0.500000 -vt 0.558442 0.500000 -vt 0.642857 0.000000 -vt 0.642857 0.500000 -vt 0.558442 0.000000 -vt 0.642857 0.500000 -vt 0.558442 0.500000 -vt 0.642857 0.000000 -vt 0.675325 0.500000 -vt 0.642857 0.500000 -vt 0.642857 0.500000 -vt 0.675325 0.000000 -vt 0.675325 0.500000 -vt 0.688312 0.750000 -vt 0.792208 1.000000 -vt 0.688312 1.000000 -vt 0.805195 1.000000 -vt 0.792208 0.750000 -vt 0.805195 0.750000 -vt 0.805195 1.000000 -vt 0.792208 0.750000 -vt 0.805195 0.750000 -vt 0.792208 0.729167 -vt 0.688312 0.729167 -vt 0.792208 0.729167 -vt 0.688312 0.750000 -vt 0.688312 0.729167 -vt 0.636364 0.625272 -vt 0.645427 0.631294 -vt 0.627300 0.660373 -vt 0.662338 0.624730 -vt 0.671640 0.630911 -vt 0.653036 0.660756 -vt 0.500000 0.000000 -vt 0.415584 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.415584 0.000000 -vt 0.415584 0.500000 -vt 0.558442 0.500000 -vt 0.500000 0.000000 -vt 0.500000 0.500000 -vt 0.558442 0.000000 -vt 0.500000 0.500000 -vt 0.558442 0.500000 -vt 0.642857 0.000000 -vt 0.558442 0.500000 -vt 0.642857 0.500000 -vt 0.642857 0.500000 -vt 0.558442 0.000000 -vt 0.558442 0.500000 -vt 0.675325 0.500000 -vt 0.642857 0.000000 -vt 0.642857 0.500000 -vt 0.675325 0.000000 -vt 0.642857 0.500000 -vt 0.675325 0.500000 -vt 0.155844 0.666667 -vt -0.000000 -0.000000 -vt -0.000000 -0.000000 -vt -0.000000 -0.000000 -vt -0.000000 -0.000000 -vt 0.415584 0.083333 -vt 0.363636 1.000000 -vt 0.363636 1.000000 -vt 0.363636 1.000000 -vt 0.363636 1.000000 -vt 0.675325 1.000000 -vt 0.675325 1.000000 -vt 0.441558 1.000000 -vt 0.441558 1.000000 -vt 0.441558 1.000000 -vt 0.441558 1.000000 -vt 0.792208 1.000000 -vt 0.415584 0.000000 -vt 0.500000 0.000000 -vt 0.558442 0.000000 -vt 0.500000 0.000000 -vt 0.558442 0.000000 -vt 0.642857 0.000000 -vt 0.675325 0.000000 -vt 0.642857 0.000000 -vt 0.792208 1.000000 -vt 0.649182 0.645834 -vt 0.645427 0.660374 -vt 0.636364 0.666396 -vt 0.623546 0.645834 -vt 0.627300 0.631294 -vt 0.675493 0.645833 -vt 0.671640 0.660756 -vt 0.662338 0.666937 -vt 0.649182 0.645833 -vt 0.653035 0.630911 -vt 0.415584 0.000000 -vt 0.500000 0.000000 -vt 0.558442 0.000000 -vt 0.500000 0.000000 -vt 0.558442 0.000000 -vt 0.642857 0.000000 -vt 0.675325 0.000000 -vt 0.642857 0.000000 -vt 0.724026 -0.000000 -vt 0.714286 0.666667 -vt 0.714286 0.000000 -vt 0.704545 -0.000000 -vt 0.694805 0.666667 -vt 0.694805 0.000000 -vt 0.685065 0.000000 -vt 0.675325 0.666667 -vt 0.675325 -0.000000 -vt 0.753247 0.000000 -vt 0.743506 0.666667 -vt 0.743506 -0.000000 -vt 0.733766 -0.000000 -vt 0.724026 0.666667 -vt 0.704545 0.666667 -vt 0.685065 0.666667 -vt 0.733766 0.666667 -vt 0.724026 0.671875 -vt 0.733766 0.697917 -vt 0.724026 0.697917 -vt 0.704545 0.671875 -vt 0.714286 0.697917 -vt 0.704545 0.697917 -vt 0.685065 0.692708 -vt 0.694805 0.697917 -vt 0.685065 0.697917 -vt 0.733766 0.682292 -vt 0.743506 0.697917 -vt 0.694805 0.682292 -vt 0.704545 0.723958 -vt 0.694805 0.713542 -vt 0.685065 0.703125 -vt 0.733766 0.713542 -vt 0.724026 0.723958 -vt 0.714286 0.729167 -vt 0.743506 0.692708 -vt 0.753247 0.697917 -vt 0.743506 0.703125 -vt 0.675325 0.697917 -vt 0.801948 0.000000 -vt 0.792208 0.666667 -vt 0.792208 0.000000 -vt 0.782468 0.000000 -vt 0.772727 0.666667 -vt 0.772727 0.000000 -vt 0.762987 -0.000000 -vt 0.753247 0.666667 -vt 0.753247 0.000000 -vt 0.831169 0.000000 -vt 0.821429 0.666667 -vt 0.821429 -0.000000 -vt 0.811688 -0.000000 -vt 0.801948 0.666667 -vt 0.782468 0.666667 -vt 0.762987 0.666667 -vt 0.811688 0.666667 -vt 0.801948 0.671875 -vt 0.811688 0.697917 -vt 0.801948 0.697917 -vt 0.782468 0.697917 -vt 0.782468 0.671875 -vt 0.772727 0.682292 -vt 0.762987 0.697917 -vt 0.762987 0.692708 -vt 0.821429 0.692708 -vt 0.811688 0.682292 -vt 0.792208 0.697917 -vt 0.772727 0.697917 -vt 0.782468 0.723958 -vt 0.772727 0.713542 -vt 0.762987 0.703125 -vt 0.821429 0.697917 -vt 0.811688 0.713542 -vt 0.801948 0.723958 -vt 0.792208 0.729167 -vt 0.831169 0.697917 -vt 0.821429 0.703125 -vt 0.753247 0.697917 -vt 0.753247 0.666667 -vt 0.831169 0.666667 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.6000 -0.8000 -vn 0.8000 0.6000 0.0000 -vn 0.0000 0.6000 0.8000 -vn -0.8000 0.6000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.7071 0.0000 0.7071 -vn 0.0000 0.1866 0.9824 -vn -0.7071 0.0000 0.7071 -vn -0.9987 0.0196 0.0473 -vn -0.7071 0.0000 -0.7071 -vn -0.0000 -0.1944 -0.9809 -vn 0.7263 -0.1363 -0.6737 -vn 0.7071 0.0000 -0.7071 -vn 0.6794 0.1448 0.7194 -vn -0.6794 0.1448 0.7194 -vn -0.7263 -0.1363 -0.6737 -vn 0.9987 0.0196 0.0473 -vn 0.9955 0.0671 0.0671 -vn 0.6630 0.5294 0.5294 -vn -0.0000 0.7071 0.7071 -vn -0.6630 0.5294 0.5294 -vn -0.9955 0.0671 0.0671 -vn -0.7574 -0.4617 -0.4617 -vn 0.7574 -0.4617 -0.4617 -vn -0.6333 0.7150 0.2962 -vn -0.9947 0.0948 0.0393 -vn -0.7311 -0.6303 -0.2611 -vn 0.9947 0.0948 0.0393 -vn 0.6333 0.7150 0.2962 -vn 0.0000 0.9239 0.3827 -vn 0.7311 -0.6303 -0.2611 -s off -f 2208/2866/116 2211/2867/116 2210/2868/116 -f 2184/2869/116 2189/2870/116 2185/2871/116 -f 2186/2872/116 2188/2873/116 2184/2869/116 -f 2187/2874/116 2190/2875/116 2186/2872/116 -f 2185/2871/116 2191/2876/116 2187/2874/116 -f 2191/2877/117 2194/2878/117 2190/2879/117 -f 2188/2880/118 2193/2881/118 2189/2882/118 -f 2189/2870/119 2195/2883/119 2191/2876/119 -f 2190/2884/120 2192/2885/120 2188/2886/120 -f 2193/2887/116 2199/2888/116 2195/2883/116 -f 2192/2889/116 2197/2890/116 2193/2881/116 -f 2194/2891/116 2196/2892/116 2192/2885/116 -f 2195/2893/116 2198/2894/116 2194/2878/116 -f 2197/2895/119 2203/2896/119 2199/2888/119 -f 2198/2897/120 2200/2898/120 2196/2892/120 -f 2199/2899/117 2202/2900/117 2198/2894/117 -f 2196/2901/118 2201/2902/118 2197/2890/118 -f 2205/2903/121 2184/2869/121 2185/2871/121 -f 2204/2904/122 2186/2872/122 2184/2869/122 -f 2206/2905/123 2187/2874/123 2186/2872/123 -f 2207/2906/124 2185/2871/124 2187/2874/124 -f 2218/2907/116 2216/2908/116 2217/2909/116 -f 2214/2910/117 2219/2911/117 2215/2912/117 -f 2215/2913/119 2218/2907/119 2213/2914/119 -f 2212/2915/120 2216/2908/120 2214/2916/120 -f 2226/2917/116 2224/2918/116 2225/2919/116 -f 2223/2920/119 2226/2917/119 2221/2921/119 -f 2220/2922/120 2224/2918/120 2222/2923/120 -f 2221/2924/118 2225/2919/118 2220/2925/118 -f 2239/2926/119 2254/2927/119 2237/2928/119 -f 2230/2929/117 2247/2930/117 2231/2931/117 -f 2238/2932/117 2255/2933/117 2239/2926/117 -f 2232/2934/120 2248/2935/120 2234/2936/120 -f 2240/2937/120 2256/2938/120 2242/2939/120 -f 2233/2940/118 2249/2941/118 2232/2942/118 -f 2241/2943/118 2257/2944/118 2240/2945/118 -f 2235/2946/119 2250/2947/119 2233/2940/119 -f 2243/2948/119 2258/2949/119 2241/2943/119 -f 2234/2936/117 2251/2950/117 2235/2946/117 -f 2228/2951/120 2244/2952/120 2230/2929/120 -f 2242/2939/117 2259/2953/117 2243/2948/117 -f 2236/2954/120 2252/2955/120 2238/2932/120 -f 2229/2956/118 2245/2957/118 2228/2958/118 -f 2237/2928/118 2253/2959/118 2236/2960/118 -f 2231/2931/119 2246/2961/119 2229/2956/119 -f 2262/2962/125 2261/2963/125 2260/2964/125 -f 2266/2965/116 2264/2966/116 2265/2967/116 -f 2262/2968/117 2267/2969/117 2263/2970/117 -f 2261/2971/118 2265/2972/118 2260/2973/118 -f 2263/2974/119 2266/2965/119 2261/2975/119 -f 2260/2976/120 2264/2977/120 2262/2978/120 -f 2271/2979/119 2278/2980/119 2269/2981/119 -f 2270/2982/117 2279/2983/117 2271/2979/117 -f 2272/2984/120 2280/2985/120 2274/2986/120 -f 2273/2987/118 2281/2988/118 2272/2989/118 -f 2275/2990/119 2282/2991/119 2273/2987/119 -f 2274/2986/117 2283/2992/117 2275/2990/117 -f 2268/2993/120 2276/2994/120 2270/2982/120 -f 2269/2981/118 2277/2995/118 2268/2996/118 -f 2287/2997/119 2294/2998/119 2285/2999/119 -f 2286/3000/117 2295/3001/117 2287/2997/117 -f 2288/3002/120 2296/3003/120 2290/3004/120 -f 2289/3005/118 2297/3006/118 2288/3007/118 -f 2291/3008/119 2298/3009/119 2289/3005/119 -f 2290/3004/117 2299/3010/117 2291/3008/117 -f 2284/3011/120 2292/3012/120 2286/3000/120 -f 2285/2999/118 2293/3013/118 2284/3014/118 -f 2334/3015/125 2333/3016/125 2332/3017/125 -f 2302/3018/117 2301/3019/117 2303/3020/117 -f 2305/3021/118 2306/3022/118 2307/3023/118 -f 2309/3024/120 2310/3025/120 2311/3026/120 -f 2314/3027/119 2313/3028/119 2315/3029/119 -f 2318/3030/117 2317/3031/117 2319/3032/117 -f 2321/3033/118 2322/3034/118 2323/3035/118 -f 2324/3036/120 2327/3037/120 2325/3038/120 -f 2331/3039/119 2328/3040/119 2329/3041/119 -f 2338/3042/116 2336/3043/116 2337/3044/116 -f 2334/3045/117 2339/3046/117 2335/3047/117 -f 2333/3048/118 2337/3049/118 2332/3050/118 -f 2335/3051/119 2338/3042/119 2333/3052/119 -f 2332/3053/120 2336/3054/120 2334/3055/120 -f 2348/3056/117 2363/3057/117 2367/3058/117 -f 2378/3059/117 2393/3060/117 2397/3061/117 -f 2401/3062/118 2402/3063/118 2403/3064/118 -f 2406/3065/117 2405/3066/117 2407/3067/117 -f 2410/3068/119 2409/3069/119 2411/3070/119 -f 2413/3071/120 2414/3072/120 2415/3073/120 -f 2417/3074/118 2418/3075/118 2419/3076/118 -f 2422/3077/117 2421/3078/117 2423/3079/117 -f 2427/3080/119 2424/3081/119 2425/3082/119 -f 2428/3083/120 2431/3084/120 2429/3085/120 -f 2208/2866/116 2209/3086/116 2211/2867/116 -f 2184/2869/116 2188/2873/116 2189/2870/116 -f 2186/2872/116 2190/2875/116 2188/2873/116 -f 2187/2874/116 2191/2876/116 2190/2875/116 -f 2185/2871/116 2189/2870/116 2191/2876/116 -f 2191/2877/117 2195/2893/117 2194/2878/117 -f 2188/2880/118 2192/2889/118 2193/2881/118 -f 2189/2870/119 2193/2887/119 2195/2883/119 -f 2190/2884/120 2194/2891/120 2192/2885/120 -f 2193/2887/116 2197/2895/116 2199/2888/116 -f 2192/2889/116 2196/2901/116 2197/2890/116 -f 2194/2891/116 2198/2897/116 2196/2892/116 -f 2195/2893/116 2199/2899/116 2198/2894/116 -f 2197/2895/119 2201/3087/119 2203/2896/119 -f 2198/2897/120 2202/3088/120 2200/2898/120 -f 2199/2899/117 2203/3089/117 2202/2900/117 -f 2196/2901/118 2200/3090/118 2201/2902/118 -f 2205/2903/121 2204/2904/121 2184/2869/121 -f 2204/2904/122 2206/2905/122 2186/2872/122 -f 2206/2905/123 2207/2906/123 2187/2874/123 -f 2207/2906/124 2205/2903/124 2185/2871/124 -f 2218/2907/116 2219/2911/116 2216/2908/116 -f 2214/2910/117 2216/2908/117 2219/2911/117 -f 2215/2913/119 2219/2911/119 2218/2907/119 -f 2212/2915/120 2217/2909/120 2216/2908/120 -f 2226/2917/116 2227/3091/116 2224/2918/116 -f 2223/2920/119 2227/3091/119 2226/2917/119 -f 2220/2922/120 2225/2919/120 2224/2918/120 -f 2221/2924/118 2226/2917/118 2225/2919/118 -f 2239/2926/119 2255/2933/119 2254/2927/119 -f 2230/2929/117 2244/2952/117 2247/2930/117 -f 2238/2932/117 2252/2955/117 2255/2933/117 -f 2232/2934/120 2249/3092/120 2248/2935/120 -f 2240/2937/120 2257/3093/120 2256/2938/120 -f 2233/2940/118 2250/2947/118 2249/2941/118 -f 2241/2943/118 2258/2949/118 2257/2944/118 -f 2235/2946/119 2251/2950/119 2250/2947/119 -f 2243/2948/119 2259/2953/119 2258/2949/119 -f 2234/2936/117 2248/2935/117 2251/2950/117 -f 2228/2951/120 2245/3094/120 2244/2952/120 -f 2242/2939/117 2256/2938/117 2259/2953/117 -f 2236/2954/120 2253/3095/120 2252/2955/120 -f 2229/2956/118 2246/2961/118 2245/2957/118 -f 2237/2928/118 2254/2927/118 2253/2959/118 -f 2231/2931/119 2247/2930/119 2246/2961/119 -f 2262/2962/125 2263/3096/125 2261/2963/125 -f 2266/2965/116 2267/2969/116 2264/2966/116 -f 2262/2968/117 2264/2966/117 2267/2969/117 -f 2261/2971/118 2266/3097/118 2265/2972/118 -f 2263/2974/119 2267/2969/119 2266/2965/119 -f 2260/2976/120 2265/2972/120 2264/2977/120 -f 2271/2979/119 2279/2983/119 2278/2980/119 -f 2270/2982/117 2276/2994/117 2279/2983/117 -f 2272/2984/120 2281/3098/120 2280/2985/120 -f 2273/2987/118 2282/2991/118 2281/2988/118 -f 2275/2990/119 2283/2992/119 2282/2991/119 -f 2274/2986/117 2280/2985/117 2283/2992/117 -f 2268/2993/120 2277/3099/120 2276/2994/120 -f 2269/2981/118 2278/2980/118 2277/2995/118 -f 2287/2997/119 2295/3001/119 2294/2998/119 -f 2286/3000/117 2292/3012/117 2295/3001/117 -f 2288/3002/120 2297/3100/120 2296/3003/120 -f 2289/3005/118 2298/3009/118 2297/3006/118 -f 2291/3008/119 2299/3010/119 2298/3009/119 -f 2290/3004/117 2296/3003/117 2299/3010/117 -f 2284/3011/120 2293/3101/120 2292/3012/120 -f 2285/2999/118 2294/2998/118 2293/3013/118 -f 2334/3015/125 2335/3102/125 2333/3016/125 -f 2302/3018/117 2300/3103/117 2301/3019/117 -f 2305/3021/118 2304/3104/118 2306/3022/118 -f 2309/3024/120 2308/3105/120 2310/3025/120 -f 2314/3027/119 2312/3106/119 2313/3028/119 -f 2318/3030/117 2316/3107/117 2317/3031/117 -f 2321/3033/118 2320/3108/118 2322/3034/118 -f 2324/3036/120 2326/3109/120 2327/3037/120 -f 2331/3039/119 2330/3110/119 2328/3040/119 -f 2338/3042/116 2339/3046/116 2336/3043/116 -f 2334/3045/117 2336/3043/117 2339/3046/117 -f 2333/3048/118 2338/3111/118 2337/3049/118 -f 2335/3051/119 2339/3046/119 2338/3042/119 -f 2332/3053/120 2337/3049/120 2336/3054/120 -f 2363/3057/117 2364/3112/117 2365/3113/117 -f 2365/3113/117 2366/3114/117 2363/3057/117 -f 2366/3114/117 2367/3058/117 2363/3057/117 -f 2367/3058/117 2368/3115/117 2369/3116/117 -f 2369/3116/117 2348/3056/117 2367/3058/117 -f 2393/3060/117 2394/3117/117 2395/3118/117 -f 2395/3118/117 2396/3119/117 2393/3060/117 -f 2396/3119/117 2397/3061/117 2393/3060/117 -f 2397/3061/117 2398/3120/117 2399/3121/117 -f 2399/3121/117 2378/3059/117 2397/3061/117 -f 2401/3062/118 2400/3122/118 2402/3063/118 -f 2406/3065/117 2404/3123/117 2405/3066/117 -f 2410/3068/119 2408/3124/119 2409/3069/119 -f 2413/3071/120 2412/3125/120 2414/3072/120 -f 2417/3074/118 2416/3126/118 2418/3075/118 -f 2422/3077/117 2420/3127/117 2421/3078/117 -f 2427/3080/119 2426/3128/119 2424/3081/119 -f 2428/3083/120 2430/3129/120 2431/3084/120 -s 1 -f 2345/3130/126 2352/3131/127 2344/3132/118 -f 2343/3133/128 2350/3134/129 2342/3135/120 -f 2341/3136/130 2348/3137/131 2340/3138/117 -f 2340/3139/117 2355/3140/132 2347/3141/133 -f 2346/3142/119 2353/3143/134 2345/3130/126 -f 2344/3132/118 2351/3144/135 2343/3133/128 -f 2342/3135/120 2349/3145/136 2341/3136/130 -f 2347/3141/133 2354/3146/137 2346/3142/119 -f 2353/3147/134 2361/3148/138 2360/3149/139 -f 2351/3150/135 2359/3151/140 2358/3152/141 -f 2349/3153/136 2357/3154/142 2356/3155/143 -f 2354/3156/137 2362/3157/144 2361/3148/138 -f 2352/3131/127 2360/3149/139 2359/3151/140 -f 2351/3150/135 2357/3154/142 2350/3158/129 -f 2359/3151/140 2365/3159/145 2358/3152/141 -f 2356/3155/143 2364/3160/146 2363/3161/147 -f 2362/3157/144 2368/3162/148 2361/3148/138 -f 2359/3151/140 2367/3163/149 2366/3164/150 -f 2357/3154/142 2365/3159/145 2364/3160/146 -f 2361/3148/138 2367/3163/149 2360/3149/139 -f 2355/3165/132 2348/3166/131 2362/3157/144 -f 2362/3157/144 2348/3166/131 2369/3167/151 -f 2349/3153/136 2356/3155/143 2348/3168/131 -f 2356/3155/143 2363/3161/147 2348/3168/131 -f 2375/3169/126 2382/3170/127 2374/3171/118 -f 2373/3172/128 2380/3173/129 2372/3174/120 -f 2371/3175/130 2378/3176/131 2370/3177/117 -f 2370/3178/117 2385/3179/132 2377/3180/133 -f 2376/3181/119 2383/3182/134 2375/3169/126 -f 2374/3171/118 2381/3183/135 2373/3172/128 -f 2372/3174/120 2379/3184/136 2371/3175/130 -f 2377/3180/133 2384/3185/137 2376/3181/119 -f 2383/3186/134 2391/3187/138 2390/3188/139 -f 2382/3170/127 2388/3189/141 2381/3190/135 -f 2380/3191/129 2386/3192/143 2379/3193/136 -f 2385/3194/132 2391/3187/138 2384/3195/137 -f 2382/3170/127 2390/3188/139 2389/3196/140 -f 2381/3190/135 2387/3197/142 2380/3191/129 -f 2389/3196/140 2395/3198/145 2388/3189/141 -f 2386/3192/143 2394/3199/146 2393/3200/147 -f 2392/3201/144 2398/3202/148 2391/3187/138 -f 2389/3196/140 2397/3203/149 2396/3204/150 -f 2387/3197/142 2395/3198/145 2394/3199/146 -f 2391/3187/138 2397/3203/149 2390/3188/139 -f 2385/3194/132 2378/3205/131 2392/3201/144 -f 2392/3201/144 2378/3205/131 2399/3206/151 -f 2379/3193/136 2386/3192/143 2378/3207/131 -f 2386/3192/143 2393/3200/147 2378/3207/131 -f 2345/3130/126 2353/3143/134 2352/3131/127 -f 2343/3133/128 2351/3144/135 2350/3134/129 -f 2341/3136/130 2349/3145/136 2348/3137/131 -f 2340/3139/117 2348/3208/131 2355/3140/132 -f 2346/3142/119 2354/3146/137 2353/3143/134 -f 2344/3132/118 2352/3131/127 2351/3144/135 -f 2342/3135/120 2350/3134/129 2349/3145/136 -f 2347/3141/133 2355/3140/132 2354/3146/137 -f 2353/3147/134 2354/3156/137 2361/3148/138 -f 2351/3150/135 2352/3131/127 2359/3151/140 -f 2349/3153/136 2350/3158/129 2357/3154/142 -f 2354/3156/137 2355/3165/132 2362/3157/144 -f 2352/3131/127 2353/3147/134 2360/3149/139 -f 2351/3150/135 2358/3152/141 2357/3154/142 -f 2359/3151/140 2366/3164/150 2365/3159/145 -f 2356/3155/143 2357/3154/142 2364/3160/146 -f 2362/3157/144 2369/3167/151 2368/3162/148 -f 2359/3151/140 2360/3149/139 2367/3163/149 -f 2357/3154/142 2358/3152/141 2365/3159/145 -f 2361/3148/138 2368/3162/148 2367/3163/149 -f 2375/3169/126 2383/3182/134 2382/3170/127 -f 2373/3172/128 2381/3183/135 2380/3173/129 -f 2371/3175/130 2379/3184/136 2378/3176/131 -f 2370/3178/117 2378/3209/131 2385/3179/132 -f 2376/3181/119 2384/3185/137 2383/3182/134 -f 2374/3171/118 2382/3170/127 2381/3183/135 -f 2372/3174/120 2380/3173/129 2379/3184/136 -f 2377/3180/133 2385/3179/132 2384/3185/137 -f 2383/3186/134 2384/3195/137 2391/3187/138 -f 2382/3170/127 2389/3196/140 2388/3189/141 -f 2380/3191/129 2387/3197/142 2386/3192/143 -f 2385/3194/132 2392/3201/144 2391/3187/138 -f 2382/3170/127 2383/3186/134 2390/3188/139 -f 2381/3190/135 2388/3189/141 2387/3197/142 -f 2389/3196/140 2396/3204/150 2395/3198/145 -f 2386/3192/143 2387/3197/142 2394/3199/146 -f 2392/3201/144 2399/3206/151 2398/3202/148 -f 2389/3196/140 2390/3188/139 2397/3203/149 -f 2387/3197/142 2388/3189/141 2395/3198/145 -f 2391/3187/138 2398/3202/148 2397/3203/149 -o Strong_Pad -v -2.500000 2.000000 2.500000 -v 2.500000 2.000000 2.500000 -v -2.500000 2.000000 -2.500000 -v 2.500000 2.000000 -2.500000 -v -0.500000 2.000000 0.500000 -v 0.500000 2.000000 0.500000 -v -0.500000 2.000000 -0.500000 -v 0.500000 2.000000 -0.500000 -v 2.500000 1.000000 2.500000 -v -2.500000 1.000000 -2.500000 -v -2.500000 1.000000 2.500000 -v 2.500000 1.000000 -2.500000 -v 2.500000 1.000000 1.500000 -v -2.500000 1.000000 1.500000 -v -2.500000 1.000000 -1.500000 -v 2.500000 1.000000 -1.500000 -v -1.500000 1.000000 -2.500000 -v -1.500000 1.000000 2.500000 -v 1.500000 1.000000 2.500000 -v 1.500000 1.000000 -2.500000 -v 2.500000 1.500000 0.500000 -v -2.500000 1.500000 0.500000 -v -2.500000 1.500000 -0.500000 -v 2.500000 1.500000 -0.500000 -v -0.500000 1.500000 -2.500000 -v -0.500000 1.500000 2.500000 -v 0.500000 1.500000 2.500000 -v 0.500000 1.500000 -2.500000 -v -0.500000 1.500000 0.500000 -v 0.500000 1.500000 0.500000 -v -0.500000 1.500000 -0.500000 -v 0.500000 1.500000 -0.500000 -v -1.500000 1.000000 -1.500000 -v 1.500000 1.000000 -1.500000 -v -1.500000 1.000000 1.500000 -v 1.500000 1.000000 1.500000 -v -1.500000 1.000000 -2.500000 -v 1.500000 1.000000 -2.500000 -v -1.500000 1.000000 -3.500000 -v 1.500000 1.000000 -3.500000 -v -1.500000 2.000000 -2.500000 -v 1.500000 2.000000 -2.500000 -v -1.500000 2.000000 -3.000000 -v -1.500000 1.500000 -3.500000 -v 1.500000 1.500000 -3.500000 -v 1.500000 2.000000 -3.000000 -v -1.000000 1.000000 3.500000 -v 1.000000 1.000000 3.500000 -v -1.000000 1.000000 2.500000 -v 1.000000 1.000000 2.500000 -v -1.000000 11.000000 2.500000 -v -1.000000 11.000000 3.500000 -v 1.000000 11.000000 3.500000 -v 1.000000 11.000000 2.500000 -v 3.250000 1.000000 2.500000 -v 3.500000 1.250000 2.500000 -v 2.500000 1.250000 2.500000 -v 2.750000 1.000000 2.500000 -v 3.500000 1.250000 4.500000 -v 3.250000 1.000000 4.500000 -v 2.750000 1.000000 4.500000 -v 2.500000 1.250000 4.500000 -v 1.500000 1.250000 4.500000 -v 1.750000 1.000000 4.500000 -v 2.250000 1.000000 4.500000 -v 2.500000 1.250000 4.500000 -v 1.750000 1.000000 2.500000 -v 1.500000 1.250000 2.500000 -v 2.500000 1.250000 2.500000 -v 2.250000 1.000000 2.500000 -v 1.500000 1.750000 2.500000 -v 1.750000 2.000000 2.500000 -v 1.750000 2.000000 4.500000 -v 1.500000 1.750000 4.500000 -v 2.500000 1.750000 4.500000 -v 2.250000 2.000000 4.500000 -v 2.250000 2.000000 2.500000 -v 2.500000 1.750000 2.500000 -v 2.500000 1.750000 2.500000 -v 2.750000 2.000000 2.500000 -v 2.750000 2.000000 4.500000 -v 2.500000 1.750000 4.500000 -v 3.500000 1.750000 4.500000 -v 3.250000 2.000000 4.500000 -v 3.250000 2.000000 2.500000 -v 3.500000 1.750000 2.500000 -v 3.000000 2.000000 2.625000 -v 2.911612 2.000000 2.661612 -v 2.875000 2.000000 2.750000 -v 2.911612 2.000000 2.838388 -v 3.000000 2.000000 2.875000 -v 3.088388 2.000000 2.838388 -v 3.125000 2.000000 2.750000 -v 3.088388 2.000000 2.661612 -v 2.963388 2.088388 2.625000 -v 2.900888 2.025888 2.661612 -v 2.900888 2.025888 2.838388 -v 2.963388 2.088388 2.875000 -v 3.025888 2.150888 2.838388 -v 3.051777 2.176777 2.750000 -v 3.025888 2.150888 2.661612 -v 2.875000 2.125000 2.625000 -v 2.875000 2.036612 2.661612 -v 2.875000 2.036612 2.838388 -v 2.875000 2.125000 2.875000 -v 2.875000 2.213388 2.838388 -v 2.875000 2.250000 2.750000 -v 2.875000 2.213388 2.661612 -v 1.000000 2.000000 2.750000 -v 1.000000 2.125000 2.625000 -v 1.000000 2.036612 2.661612 -v 1.000000 2.036612 2.838388 -v 1.000000 2.125000 2.875000 -v 1.000000 2.213388 2.838388 -v 1.000000 2.250000 2.750000 -v 1.000000 2.213388 2.661612 -v 2.000000 2.000000 3.125000 -v 1.911612 2.000000 3.161612 -v 1.875000 2.000000 3.250000 -v 1.911612 2.000000 3.338388 -v 2.000000 2.000000 3.375000 -v 2.088388 2.000000 3.338388 -v 2.125000 2.000000 3.250000 -v 2.088388 2.000000 3.161612 -v 1.963388 2.088388 3.125000 -v 1.900888 2.025888 3.161612 -v 1.900888 2.025888 3.338388 -v 1.963388 2.088388 3.375000 -v 2.025888 2.150888 3.338388 -v 2.051777 2.176777 3.250000 -v 2.025888 2.150888 3.161612 -v 1.875000 2.125000 3.125000 -v 1.875000 2.036612 3.161612 -v 1.875000 2.036612 3.338388 -v 1.875000 2.125000 3.375000 -v 1.875000 2.213388 3.338388 -v 1.875000 2.250000 3.250000 -v 1.875000 2.213388 3.161612 -v 1.000000 2.000000 3.250000 -v 1.000000 2.125000 3.125000 -v 1.000000 2.036612 3.161612 -v 1.000000 2.036612 3.338388 -v 1.000000 2.125000 3.375000 -v 1.000000 2.213388 3.338388 -v 1.000000 2.250000 3.250000 -v 1.000000 2.213388 3.161612 -v -0.500000 2.000000 0.500000 -v 0.500000 2.000000 0.500000 -v -0.500000 2.000000 -0.500000 -v 0.500000 2.000000 -0.500000 -v -1.750000 1.000000 2.500000 -v -1.500000 1.250000 2.500000 -v -2.500000 1.250000 2.500000 -v -2.250000 1.000000 2.500000 -v -1.500000 1.250000 4.500000 -v -1.750000 1.000000 4.500000 -v -2.250000 1.000000 4.500000 -v -2.500000 1.250000 4.500000 -v -3.500000 1.250000 4.500000 -v -3.250000 1.000000 4.500000 -v -2.750000 1.000000 4.500000 -v -2.500000 1.250000 4.500000 -v -3.250000 1.000000 2.500000 -v -3.500000 1.250000 2.500000 -v -2.500000 1.250000 2.500000 -v -2.750000 1.000000 2.500000 -v -3.500000 1.750000 2.500000 -v -3.250000 2.000000 2.500000 -v -3.250000 2.000000 4.500000 -v -3.500000 1.750000 4.500000 -v -2.500000 1.750000 4.500000 -v -2.750000 2.000000 4.500000 -v -2.750000 2.000000 2.500000 -v -2.500000 1.750000 2.500000 -v -2.500000 1.750000 2.500000 -v -2.250000 2.000000 2.500000 -v -2.250000 2.000000 4.500000 -v -2.500000 1.750000 4.500000 -v -1.500000 1.750000 4.500000 -v -1.750000 2.000000 4.500000 -v -1.750000 2.000000 2.500000 -v -1.500000 1.750000 2.500000 -v -3.000000 2.000000 3.375000 -v -2.911612 2.000000 3.338389 -v -2.875000 2.000000 3.250000 -v -2.911612 2.000000 3.161612 -v -3.000000 2.000000 3.125000 -v -3.088388 2.000000 3.161612 -v -3.125000 2.000000 3.250000 -v -3.088388 2.000000 3.338389 -v -2.963388 2.088388 3.375000 -v -2.900888 2.025888 3.338389 -v -2.900888 2.025888 3.161612 -v -2.963388 2.088388 3.125000 -v -3.025888 2.150888 3.161612 -v -3.051777 2.176777 3.250000 -v -3.025888 2.150888 3.338389 -v -2.875000 2.125000 3.375000 -v -2.875000 2.036612 3.338389 -v -2.875000 2.036612 3.161612 -v -2.875000 2.125000 3.125000 -v -2.875000 2.213388 3.161612 -v -2.875000 2.250000 3.250000 -v -2.875000 2.213388 3.338389 -v -1.000000 2.000000 3.250000 -v -1.000000 2.125000 3.375000 -v -1.000000 2.036612 3.338388 -v -1.000000 2.036612 3.161612 -v -1.000000 2.125000 3.125000 -v -1.000000 2.213388 3.161612 -v -1.000000 2.250000 3.250000 -v -1.000000 2.213388 3.338388 -v -2.000000 2.000000 2.875000 -v -1.911612 2.000000 2.838389 -v -1.875000 2.000000 2.750000 -v -1.911612 2.000000 2.661612 -v -2.000000 2.000000 2.625000 -v -2.088388 2.000000 2.661612 -v -2.125000 2.000000 2.750000 -v -2.088388 2.000000 2.838389 -v -1.963388 2.088388 2.875000 -v -1.900888 2.025888 2.838389 -v -1.900888 2.025888 2.661612 -v -1.963388 2.088388 2.625000 -v -2.025888 2.150888 2.661612 -v -2.051777 2.176777 2.750000 -v -2.025888 2.150888 2.838389 -v -1.875000 2.125000 2.875000 -v -1.875000 2.036612 2.838389 -v -1.875000 2.036612 2.661612 -v -1.875000 2.125000 2.625000 -v -1.875000 2.213388 2.661612 -v -1.875000 2.250000 2.750000 -v -1.875000 2.213388 2.838389 -v -1.000000 2.000000 2.750000 -v -1.000000 2.125000 2.875000 -v -1.000000 2.036612 2.838388 -v -1.000000 2.036612 2.661612 -v -1.000000 2.125000 2.625000 -v -1.000000 2.213388 2.661612 -v -1.000000 2.250000 2.750000 -v -1.000000 2.213388 2.838388 -vt 0.102564 0.719101 -vt -0.000000 0.988764 -vt -0.000000 0.539326 -vt 0.102564 0.269663 -vt 0.153846 0.224719 -vt 0.153846 0.269663 -vt 0.102564 0.808989 -vt 0.256410 0.988764 -vt 0.153846 0.808989 -vt 0.256410 0.539326 -vt 0.153846 0.719101 -vt 0.256410 0.539326 -vt -0.000000 0.539326 -vt 0.153846 0.494382 -vt 0.256410 0.539326 -vt -0.000000 0.539326 -vt 0.153846 0.494382 -vt 0.256410 0.539326 -vt -0.000000 0.539326 -vt 0.153846 0.494382 -vt 0.153846 0.494382 -vt 0.102564 0.269663 -vt 0.153846 0.224719 -vt 0.153846 0.269663 -vt 0.102564 0.269663 -vt 0.153846 0.224719 -vt 0.153846 0.269663 -vt 0.102564 0.269663 -vt 0.153846 0.224719 -vt 0.153846 0.269663 -vt 0.102564 0.449438 -vt 0.153846 0.269663 -vt 0.153846 0.449438 -vt -0.000000 0.179775 -vt 0.102564 0.269663 -vt -0.000000 0.269663 -vt 0.153846 0.000000 -vt 0.102564 0.179775 -vt 0.102564 -0.000000 -vt 0.256410 0.269663 -vt 0.153846 0.179775 -vt 0.256410 0.179775 -vt 0.051282 0.359551 -vt 0.051282 0.449438 -vt 0.205128 0.359551 -vt 0.205128 0.449438 -vt 0.205128 0.089888 -vt 0.205128 0.000000 -vt 0.051282 0.089888 -vt 0.051282 -0.000000 -vt 0.794872 0.359551 -vt 0.769231 0.089888 -vt 0.794872 0.089888 -vt 0.717949 0.089888 -vt 0.743590 0.359551 -vt 0.717949 0.359551 -vt 0.743590 0.089888 -vt 0.717949 -0.000000 -vt 0.769231 0.044944 -vt 0.666667 0.089888 -vt 0.666667 0.359551 -vt 0.769231 0.359551 -vt 0.717949 0.449438 -vt 0.769231 0.404494 -vt 0.615385 0.651685 -vt 0.602564 0.719101 -vt 0.564103 0.696629 -vt 0.358974 0.898876 -vt 0.256410 0.988764 -vt 0.256410 0.898876 -vt 0.410256 -0.000000 -vt 0.358974 -0.000000 -vt 0.564103 -0.000000 -vt 0.512821 0.898876 -vt 0.512821 -0.000000 -vt 0.410256 0.898876 -vt 0.256410 -0.000000 -vt 0.615385 0.292135 -vt 0.602564 0.359551 -vt 0.564103 0.337079 -vt 0.564103 0.449438 -vt 0.666667 0.494382 -vt 0.564103 0.494382 -vt 0.666667 0.382022 -vt 0.564103 0.426966 -vt 0.564103 0.382022 -vt 0.666667 0.651685 -vt 0.653846 0.719101 -vt 0.615385 0.696629 -vt 0.666667 0.584270 -vt 0.564103 0.629214 -vt 0.564103 0.584270 -vt 0.666667 0.561798 -vt 0.666667 0.359551 -vt 0.564103 0.359551 -vt 0.564103 0.516854 -vt 0.666667 0.516854 -vt 0.666667 0.426966 -vt 0.564103 0.561798 -vt 0.564103 0.089888 -vt 0.666667 0.134831 -vt 0.564103 0.134831 -vt 0.666667 0.022472 -vt 0.564103 0.067416 -vt 0.564103 0.022472 -vt 0.666667 0.292135 -vt 0.653846 0.359551 -vt 0.615385 0.337079 -vt 0.666667 0.224719 -vt 0.564103 0.269663 -vt 0.564103 0.224719 -vt 0.666667 0.202247 -vt 0.666667 0.000000 -vt 0.564103 -0.000000 -vt 0.564103 0.157303 -vt 0.666667 0.157303 -vt 0.666667 0.067416 -vt 0.564103 0.202247 -vt 0.102564 0.808989 -vt 0.153846 0.719101 -vt 0.153846 0.808989 -vt 0.615385 0.651685 -vt 0.602564 0.719101 -vt 0.564103 0.696629 -vt 0.615385 0.292135 -vt 0.602564 0.359551 -vt 0.564103 0.337079 -vt 0.564103 0.449438 -vt 0.666667 0.494382 -vt 0.564103 0.494382 -vt 0.666667 0.382022 -vt 0.564103 0.426966 -vt 0.564103 0.382022 -vt 0.666667 0.651685 -vt 0.653846 0.719101 -vt 0.615385 0.696629 -vt 0.666667 0.584270 -vt 0.564103 0.629214 -vt 0.564103 0.584270 -vt 0.666667 0.561798 -vt 0.666667 0.359551 -vt 0.564103 0.359551 -vt 0.564103 0.516854 -vt 0.666667 0.516854 -vt 0.666667 0.426966 -vt 0.564103 0.561798 -vt 0.564103 0.089888 -vt 0.666667 0.134831 -vt 0.564103 0.134831 -vt 0.666667 0.022472 -vt 0.564103 0.067416 -vt 0.564103 0.022472 -vt 0.666667 0.292135 -vt 0.653846 0.359551 -vt 0.615385 0.337079 -vt 0.666667 0.224719 -vt 0.564103 0.269663 -vt 0.564103 0.224719 -vt 0.666667 0.202247 -vt 0.666667 0.000000 -vt 0.564103 -0.000000 -vt 0.564103 0.157303 -vt 0.666667 0.157303 -vt 0.666667 0.067416 -vt 0.564103 0.202247 -vt 0.102564 0.224719 -vt 0.205128 0.449438 -vt 0.256410 0.449438 -vt 0.000000 0.449438 -vt 0.051282 0.449438 -vt 0.102564 0.494382 -vt 0.205128 0.449438 -vt 0.256410 0.449438 -vt -0.000000 0.449438 -vt 0.051282 0.449438 -vt 0.102564 0.494382 -vt 0.205128 0.449438 -vt 0.256410 0.449438 -vt 0.000000 0.449438 -vt 0.051282 0.449438 -vt 0.102564 0.494382 -vt 0.256410 0.449438 -vt -0.000000 0.449438 -vt 0.102564 0.494382 -vt 0.102564 0.224719 -vt 0.102564 0.224719 -vt 0.102564 0.224719 -vt -0.000000 0.359551 -vt 0.256410 0.359551 -vt 0.256410 0.089888 -vt -0.000000 0.089888 -vt 0.769231 -0.000000 -vt 0.769231 0.449438 -vt 0.564103 0.651685 -vt 0.576923 0.629214 -vt 0.602564 0.629214 -vt 0.615385 0.696629 -vt 0.576923 0.719101 -vt 0.358974 0.988764 -vt 0.564103 0.898876 -vt 0.564103 0.292135 -vt 0.576923 0.269663 -vt 0.602564 0.269663 -vt 0.615385 0.337079 -vt 0.576923 0.359551 -vt 0.666667 0.449438 -vt 0.615385 0.651685 -vt 0.628205 0.629214 -vt 0.653846 0.629214 -vt 0.666667 0.696629 -vt 0.628205 0.719101 -vt 0.666667 0.629214 -vt 0.666667 0.089888 -vt 0.615385 0.292135 -vt 0.628205 0.269663 -vt 0.653846 0.269663 -vt 0.666667 0.337079 -vt 0.628205 0.359551 -vt 0.666667 0.269663 -vt 0.102564 0.719101 -vt 0.564103 0.651685 -vt 0.576923 0.629214 -vt 0.602564 0.629214 -vt 0.615385 0.696629 -vt 0.576923 0.719101 -vt 0.564103 0.292135 -vt 0.576923 0.269663 -vt 0.602564 0.269663 -vt 0.615385 0.337079 -vt 0.576923 0.359551 -vt 0.666667 0.449438 -vt 0.615385 0.651685 -vt 0.628205 0.629214 -vt 0.653846 0.629214 -vt 0.666667 0.696629 -vt 0.628205 0.719101 -vt 0.666667 0.629214 -vt 0.666667 0.089888 -vt 0.615385 0.292135 -vt 0.628205 0.269663 -vt 0.653846 0.269663 -vt 0.666667 0.337079 -vt 0.628205 0.359551 -vt 0.666667 0.269663 -vt 0.634615 0.904494 -vt 0.641026 0.921348 -vt 0.634615 0.921348 -vt 0.647436 0.921348 -vt 0.653846 0.904494 -vt 0.653846 0.915730 -vt 0.621795 0.904494 -vt 0.628205 0.915730 -vt 0.621795 0.910112 -vt 0.628205 0.904494 -vt 0.641026 0.904494 -vt 0.660256 0.904494 -vt 0.660256 0.910112 -vt 0.647436 0.887640 -vt 0.647436 0.904494 -vt 0.621795 0.898876 -vt 0.628205 0.893258 -vt 0.641026 0.887640 -vt 0.660256 0.898876 -vt 0.666667 0.904494 -vt 0.615385 0.904494 -vt 0.621795 0.887640 -vt 0.628205 0.719101 -vt 0.628205 0.887640 -vt 0.615385 0.887640 -vt 0.621795 0.719101 -vt 0.634615 0.719101 -vt 0.634615 0.887640 -vt 0.660256 0.887640 -vt 0.666667 0.719101 -vt 0.666667 0.887640 -vt 0.647436 0.719101 -vt 0.653846 0.887640 -vt 0.660256 0.719101 -vt 0.641026 0.719101 -vt 0.653846 0.719101 -vt 0.583333 0.831461 -vt 0.589744 0.814607 -vt 0.589744 0.831461 -vt 0.596154 0.814607 -vt 0.602564 0.825843 -vt 0.596154 0.831461 -vt 0.570513 0.814607 -vt 0.576923 0.825843 -vt 0.570513 0.820225 -vt 0.576923 0.814607 -vt 0.602564 0.814607 -vt 0.608974 0.820225 -vt 0.602564 0.803371 -vt 0.570513 0.808989 -vt 0.583333 0.797753 -vt 0.583333 0.814607 -vt 0.589744 0.797753 -vt 0.608974 0.808989 -vt 0.608974 0.814607 -vt 0.615385 0.814607 -vt 0.564103 0.814607 -vt 0.570513 0.797753 -vt 0.576923 0.719101 -vt 0.576923 0.797753 -vt 0.564103 0.797753 -vt 0.570513 0.719101 -vt 0.583333 0.719101 -vt 0.608974 0.797753 -vt 0.615385 0.719101 -vt 0.615385 0.797753 -vt 0.596154 0.719101 -vt 0.596154 0.797753 -vt 0.602564 0.797753 -vt 0.608974 0.719101 -vt 0.589744 0.719101 -vt 0.602564 0.719101 -vt 0.634615 0.921348 -vt 0.641026 0.904494 -vt 0.641026 0.921348 -vt 0.647436 0.921348 -vt 0.653846 0.904494 -vt 0.653846 0.915730 -vt 0.621795 0.904494 -vt 0.628205 0.915730 -vt 0.621795 0.910112 -vt 0.628205 0.904494 -vt 0.647436 0.904494 -vt 0.660256 0.904494 -vt 0.660256 0.910112 -vt 0.653846 0.893258 -vt 0.621795 0.898876 -vt 0.628205 0.893258 -vt 0.634615 0.904494 -vt 0.641026 0.887640 -vt 0.660256 0.898876 -vt 0.666667 0.904494 -vt 0.615385 0.904494 -vt 0.621795 0.887640 -vt 0.628205 0.719101 -vt 0.628205 0.887640 -vt 0.615385 0.887640 -vt 0.621795 0.719101 -vt 0.634615 0.719101 -vt 0.634615 0.887640 -vt 0.660256 0.887640 -vt 0.666667 0.719101 -vt 0.666667 0.887640 -vt 0.647436 0.719101 -vt 0.647436 0.887640 -vt 0.653846 0.887640 -vt 0.660256 0.719101 -vt 0.641026 0.719101 -vt 0.653846 0.719101 -vt 0.583333 0.831461 -vt 0.589744 0.814607 -vt 0.589744 0.831461 -vt 0.596154 0.814607 -vt 0.602564 0.825843 -vt 0.596154 0.831461 -vt 0.570513 0.814607 -vt 0.576923 0.825843 -vt 0.570513 0.820225 -vt 0.576923 0.814607 -vt 0.608974 0.814607 -vt 0.608974 0.820225 -vt 0.596154 0.797753 -vt 0.602564 0.814607 -vt 0.576923 0.803371 -vt 0.583333 0.814607 -vt 0.589744 0.797753 -vt 0.608974 0.808989 -vt 0.583333 0.797753 -vt 0.615385 0.814607 -vt 0.564103 0.814607 -vt 0.570513 0.808989 -vt 0.570513 0.797753 -vt 0.576923 0.719101 -vt 0.576923 0.797753 -vt 0.564103 0.797753 -vt 0.570513 0.719101 -vt 0.583333 0.719101 -vt 0.608974 0.797753 -vt 0.615385 0.719101 -vt 0.615385 0.797753 -vt 0.596154 0.719101 -vt 0.602564 0.797753 -vt 0.608974 0.719101 -vt 0.589744 0.719101 -vt 0.602564 0.719101 -vt 0.653846 0.893258 -vt 0.615385 0.719101 -vt 0.576923 0.803371 -vt 0.564103 0.719101 -vt 0.615385 0.719101 -vt 0.602564 0.803371 -vt 0.564103 0.719101 -vn 0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.4472 -0.8944 0.0000 -vn 0.0000 -0.8944 -0.4472 -vn 0.0000 -0.8944 0.4472 -vn 0.4472 -0.8944 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.7071 0.7071 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.5293 0.5293 -0.6630 -vn 0.9239 0.3827 0.0000 -vn 0.7150 0.2962 -0.6332 -vn 0.7150 0.2962 0.6332 -vn 0.0670 0.0670 0.9955 -vn 0.0948 0.0392 0.9947 -vn -0.4617 -0.4617 -0.7573 -vn 0.0948 0.0392 -0.9947 -vn -0.6303 -0.2611 -0.7311 -vn 0.0670 0.0670 -0.9955 -vn -0.4617 -0.4617 0.7573 -vn -0.6303 -0.2611 0.7311 -vn 0.1447 0.7194 0.6794 -vn 0.5293 0.5293 0.6630 -vn -0.1363 -0.6737 -0.7263 -vn 0.0196 0.0473 -0.9987 -vn 0.1866 0.9824 0.0000 -vn -0.1363 -0.6737 0.7263 -vn -0.1944 -0.9809 0.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.1447 0.7194 -0.6794 -vn 0.0000 0.7071 0.7071 -vn 0.0196 0.0473 0.9987 -vn 0.0000 -0.7071 0.7071 -vn -0.7150 0.2962 0.6332 -vn -0.9239 0.3827 0.0000 -vn -0.7150 0.2962 -0.6332 -vn -0.0670 0.0670 -0.9955 -vn -0.0948 0.0392 -0.9947 -vn 0.4617 -0.4617 0.7573 -vn -0.0948 0.0392 0.9947 -vn 0.6303 -0.2611 0.7311 -vn -0.0670 0.0670 0.9955 -vn -0.5293 0.5293 -0.6630 -vn 0.4617 -0.4617 -0.7573 -vn 0.6303 -0.2611 -0.7311 -vn -0.0196 0.0473 -0.9987 -vn 0.1363 -0.6737 0.7263 -vn -0.0196 0.0473 0.9987 -vn -0.5293 0.5293 0.6630 -vn -0.1866 0.9824 0.0000 -vn 0.1363 -0.6737 -0.7263 -vn 0.1944 -0.9809 0.0000 -vn -0.1447 0.7194 0.6794 -vn -0.1447 0.7194 -0.6794 -s off -f 2437/3210/152 2432/3211/152 2433/3212/152 -f 2439/3213/153 2461/3214/153 2437/3215/153 -f 2436/3216/152 2434/3217/152 2432/3211/152 -f 2438/3218/152 2435/3219/152 2434/3217/152 -f 2439/3220/152 2433/3212/152 2435/3219/152 -f 2433/3221/154 2432/3222/154 2458/3223/154 -f 2432/3224/153 2434/3225/153 2453/3226/153 -f 2434/3227/155 2435/3228/155 2456/3229/155 -f 2435/3219/156 2433/3212/156 2455/3230/156 -f 2436/3231/156 2462/3232/156 2438/3233/156 -f 2438/3234/154 2463/3235/154 2439/3236/154 -f 2437/3237/155 2460/3238/155 2436/3239/155 -f 2452/3240/157 2463/3241/157 2455/3242/157 -f 2457/3243/157 2461/3244/157 2458/3245/157 -f 2454/3246/157 2460/3247/157 2453/3248/157 -f 2459/3249/157 2462/3250/157 2456/3251/157 -f 2467/3252/158 2458/3245/158 2461/3244/158 -f 2467/3252/159 2452/3240/159 2444/3253/159 -f 2455/3242/160 2465/3254/160 2447/3255/160 -f 2459/3249/158 2465/3254/158 2463/3241/158 -f 2464/3256/161 2456/3251/161 2462/3250/161 -f 2464/3256/160 2454/3246/160 2446/3257/160 -f 2453/3248/159 2466/3258/159 2445/3259/159 -f 2457/3243/161 2466/3258/161 2460/3247/161 -f 2470/3260/155 2476/3261/155 2471/3262/155 -f 2473/3263/152 2474/3264/152 2472/3265/152 -f 2477/3266/156 2469/3267/156 2476/3268/156 -f 2469/3269/154 2472/3265/154 2468/3270/154 -f 2475/3271/162 2477/3266/162 2476/3261/162 -f 2468/3272/153 2474/3264/153 2475/3273/153 -f 2497/3274/154 2507/3275/154 2505/3276/154 -f 2484/3277/152 2482/3278/152 2483/3279/152 -f 2481/3280/156 2484/3277/156 2479/3281/156 -f 2478/3282/153 2482/3283/153 2480/3284/153 -f 2480/3284/155 2485/3285/155 2481/3280/155 -f 2479/3281/154 2483/3279/154 2478/3286/154 -f 2490/3287/154 2515/3288/154 2513/3289/154 -f 2507/3290/152 2503/3291/152 2504/3292/152 -f 2500/3293/156 2506/3294/156 2497/3295/156 -f 2499/3296/155 2503/3297/155 2509/3298/155 -f 2498/3299/157 2496/3300/157 2495/3301/157 -f 2495/3301/163 2499/3302/163 2498/3299/163 -f 2501/3303/164 2497/3295/164 2496/3304/164 -f 2505/3305/165 2503/3291/165 2502/3306/165 -f 2509/3307/166 2507/3290/166 2506/3294/166 -f 2494/3308/153 2502/3306/153 2499/3302/153 -f 2515/3309/152 2511/3310/152 2512/3311/152 -f 2487/3312/156 2514/3313/156 2490/3314/156 -f 2488/3315/155 2511/3316/155 2517/3317/155 -f 2489/3318/157 2491/3319/157 2492/3320/157 -f 2492/3320/163 2488/3321/163 2489/3318/163 -f 2486/3322/164 2490/3314/164 2491/3323/164 -f 2513/3324/165 2511/3310/165 2510/3325/165 -f 2517/3326/166 2515/3309/166 2514/3313/166 -f 2493/3327/153 2510/3325/153 2488/3321/153 -f 2578/3328/152 2581/3329/152 2580/3330/152 -f 2593/3331/154 2603/3332/154 2601/3333/154 -f 2586/3334/154 2611/3335/154 2609/3336/154 -f 2603/3337/152 2599/3338/152 2600/3339/152 -f 2596/3340/156 2602/3341/156 2593/3342/156 -f 2595/3343/155 2599/3344/155 2605/3345/155 -f 2594/3346/157 2592/3347/157 2591/3348/157 -f 2591/3348/163 2595/3349/163 2594/3346/163 -f 2597/3350/164 2593/3342/164 2592/3351/164 -f 2601/3352/165 2599/3338/165 2598/3353/165 -f 2605/3354/166 2603/3337/166 2602/3341/166 -f 2590/3355/153 2598/3353/153 2595/3349/153 -f 2611/3356/152 2607/3357/152 2608/3358/152 -f 2583/3359/156 2610/3360/156 2586/3361/156 -f 2584/3362/155 2607/3363/155 2613/3364/155 -f 2585/3365/157 2587/3366/157 2588/3367/157 -f 2588/3367/163 2584/3368/163 2585/3365/163 -f 2582/3369/164 2586/3361/164 2587/3370/164 -f 2609/3371/165 2607/3357/165 2606/3372/165 -f 2613/3373/166 2611/3356/166 2610/3360/166 -f 2589/3374/153 2606/3372/153 2584/3368/153 -f 2437/3210/152 2436/3216/152 2432/3211/152 -f 2439/3213/153 2463/3375/153 2461/3214/153 -f 2436/3216/152 2438/3218/152 2434/3217/152 -f 2438/3218/152 2439/3220/152 2435/3219/152 -f 2439/3220/152 2437/3210/152 2433/3212/152 -f 2450/3376/154 2440/3377/154 2433/3221/154 -f 2432/3222/154 2442/3378/154 2449/3379/154 -f 2432/3222/154 2449/3379/154 2457/3380/154 -f 2458/3223/154 2450/3376/154 2433/3221/154 -f 2432/3222/154 2457/3380/154 2458/3223/154 -f 2445/3381/153 2442/3382/153 2432/3224/153 -f 2434/3225/153 2441/3383/153 2446/3384/153 -f 2434/3225/153 2446/3384/153 2454/3385/153 -f 2453/3226/153 2445/3381/153 2432/3224/153 -f 2434/3225/153 2454/3385/153 2453/3226/153 -f 2448/3386/155 2441/3387/155 2434/3227/155 -f 2435/3228/155 2443/3388/155 2451/3389/155 -f 2435/3228/155 2451/3389/155 2459/3390/155 -f 2456/3229/155 2448/3386/155 2434/3227/155 -f 2435/3228/155 2459/3390/155 2456/3229/155 -f 2447/3255/156 2443/3391/156 2435/3219/156 -f 2433/3212/156 2440/3392/156 2444/3253/156 -f 2433/3212/156 2444/3253/156 2452/3393/156 -f 2455/3230/156 2447/3255/156 2435/3219/156 -f 2433/3212/156 2452/3393/156 2455/3230/156 -f 2436/3231/156 2460/3394/156 2462/3232/156 -f 2438/3234/154 2462/3395/154 2463/3235/154 -f 2437/3237/155 2461/3396/155 2460/3238/155 -f 2452/3240/157 2461/3244/157 2463/3241/157 -f 2457/3243/157 2460/3247/157 2461/3244/157 -f 2454/3246/157 2462/3250/157 2460/3247/157 -f 2459/3249/157 2463/3241/157 2462/3250/157 -f 2467/3252/158 2450/3397/158 2458/3245/158 -f 2467/3252/159 2461/3244/159 2452/3240/159 -f 2455/3242/160 2463/3241/160 2465/3254/160 -f 2459/3249/158 2451/3398/158 2465/3254/158 -f 2464/3256/161 2448/3399/161 2456/3251/161 -f 2464/3256/160 2462/3250/160 2454/3246/160 -f 2453/3248/159 2460/3247/159 2466/3258/159 -f 2457/3243/161 2449/3400/161 2466/3258/161 -f 2470/3260/155 2475/3271/155 2476/3261/155 -f 2473/3263/152 2477/3266/152 2474/3264/152 -f 2473/3263/156 2469/3267/156 2477/3266/156 -f 2469/3267/156 2471/3401/156 2476/3268/156 -f 2469/3269/154 2473/3263/154 2472/3265/154 -f 2475/3271/162 2474/3264/162 2477/3266/162 -f 2475/3273/153 2470/3402/153 2468/3272/153 -f 2468/3272/153 2472/3265/153 2474/3264/153 -f 2505/3276/154 2494/3403/154 2495/3404/154 -f 2495/3404/154 2496/3405/154 2497/3274/154 -f 2497/3274/154 2506/3406/154 2507/3275/154 -f 2507/3275/154 2504/3407/154 2505/3276/154 -f 2505/3276/154 2495/3404/154 2497/3274/154 -f 2484/3277/152 2485/3408/152 2482/3278/152 -f 2481/3280/156 2485/3285/156 2484/3277/156 -f 2478/3282/153 2483/3409/153 2482/3283/153 -f 2480/3284/155 2482/3283/155 2485/3285/155 -f 2479/3281/154 2484/3277/154 2483/3279/154 -f 2513/3289/154 2493/3410/154 2492/3411/154 -f 2492/3411/154 2491/3412/154 2490/3287/154 -f 2490/3287/154 2514/3413/154 2515/3288/154 -f 2515/3288/154 2512/3414/154 2513/3289/154 -f 2513/3289/154 2492/3411/154 2490/3287/154 -f 2507/3290/152 2508/3415/152 2503/3291/152 -f 2500/3293/156 2509/3307/156 2506/3294/156 -f 2509/3298/155 2500/3416/155 2501/3417/155 -f 2501/3417/155 2498/3418/155 2499/3296/155 -f 2499/3296/155 2502/3419/155 2503/3297/155 -f 2503/3297/155 2508/3420/155 2509/3298/155 -f 2509/3298/155 2501/3417/155 2499/3296/155 -f 2498/3299/157 2501/3421/157 2496/3300/157 -f 2495/3301/163 2494/3308/163 2499/3302/163 -f 2501/3303/164 2500/3293/164 2497/3295/164 -f 2505/3305/165 2504/3292/165 2503/3291/165 -f 2509/3307/166 2508/3415/166 2507/3290/166 -f 2494/3308/153 2505/3305/153 2502/3306/153 -f 2515/3309/152 2516/3422/152 2511/3310/152 -f 2487/3312/156 2517/3326/156 2514/3313/156 -f 2517/3317/155 2487/3423/155 2486/3424/155 -f 2486/3424/155 2489/3425/155 2488/3315/155 -f 2488/3315/155 2510/3426/155 2511/3316/155 -f 2511/3316/155 2516/3427/155 2517/3317/155 -f 2517/3317/155 2486/3424/155 2488/3315/155 -f 2489/3318/157 2486/3428/157 2491/3319/157 -f 2492/3320/163 2493/3327/163 2488/3321/163 -f 2486/3322/164 2487/3312/164 2490/3314/164 -f 2513/3324/165 2512/3311/165 2511/3310/165 -f 2517/3326/166 2516/3422/166 2515/3309/166 -f 2493/3327/153 2513/3324/153 2510/3325/153 -f 2578/3328/152 2579/3429/152 2581/3329/152 -f 2601/3333/154 2590/3430/154 2591/3431/154 -f 2591/3431/154 2592/3432/154 2593/3331/154 -f 2593/3331/154 2602/3433/154 2603/3332/154 -f 2603/3332/154 2600/3434/154 2601/3333/154 -f 2601/3333/154 2591/3431/154 2593/3331/154 -f 2609/3336/154 2589/3435/154 2588/3436/154 -f 2588/3436/154 2587/3437/154 2586/3334/154 -f 2586/3334/154 2610/3438/154 2611/3335/154 -f 2611/3335/154 2608/3439/154 2609/3336/154 -f 2609/3336/154 2588/3436/154 2586/3334/154 -f 2603/3337/152 2604/3440/152 2599/3338/152 -f 2596/3340/156 2605/3354/156 2602/3341/156 -f 2605/3345/155 2596/3441/155 2597/3442/155 -f 2597/3442/155 2594/3443/155 2595/3343/155 -f 2595/3343/155 2598/3444/155 2599/3344/155 -f 2599/3344/155 2604/3445/155 2605/3345/155 -f 2605/3345/155 2597/3442/155 2595/3343/155 -f 2594/3346/157 2597/3446/157 2592/3347/157 -f 2591/3348/163 2590/3355/163 2595/3349/163 -f 2597/3350/164 2596/3340/164 2593/3342/164 -f 2601/3352/165 2600/3339/165 2599/3338/165 -f 2605/3354/166 2604/3440/166 2603/3337/166 -f 2590/3355/153 2601/3352/153 2598/3353/153 -f 2611/3356/152 2612/3447/152 2607/3357/152 -f 2583/3359/156 2613/3373/156 2610/3360/156 -f 2613/3364/155 2583/3448/155 2582/3449/155 -f 2582/3449/155 2585/3450/155 2584/3362/155 -f 2584/3362/155 2606/3451/155 2607/3363/155 -f 2607/3363/155 2612/3452/155 2613/3364/155 -f 2613/3364/155 2582/3449/155 2584/3362/155 -f 2585/3365/157 2582/3453/157 2587/3366/157 -f 2588/3367/163 2589/3374/163 2584/3368/163 -f 2582/3369/164 2583/3359/164 2586/3361/164 -f 2609/3371/165 2608/3358/165 2607/3357/165 -f 2613/3373/166 2612/3447/166 2611/3356/166 -f 2589/3374/153 2609/3371/153 2606/3372/153 -s 1 -f 2532/3454/167 2524/3455/168 2525/3456/169 -f 2523/3457/170 2529/3458/171 2522/3459/172 -f 2527/3460/173 2518/3461/174 2519/3462/175 -f 2526/3463/176 2525/3456/169 2518/3461/174 -f 2531/3464/166 2523/3457/170 2524/3455/168 -f 2522/3459/172 2528/3465/177 2521/3466/178 -f 2537/3467/179 2529/3458/171 2530/3468/180 -f 2534/3469/181 2526/3463/176 2527/3460/173 -f 2533/3470/182 2532/3454/167 2526/3463/176 -f 2538/3471/183 2530/3468/180 2531/3464/166 -f 2529/3458/171 2535/3472/184 2528/3465/177 -f 2532/3454/167 2538/3471/183 2531/3464/166 -f 2520/3473/185 2521/3466/178 2528/3465/177 -f 2528/3465/177 2535/3472/184 2520/3473/185 -f 2519/3462/175 2520/3474/185 2527/3460/173 -f 2527/3460/173 2520/3474/185 2534/3469/181 -f 2534/3475/181 2541/3476/155 2533/3477/182 -f 2520/3478/185 2542/3479/186 2534/3475/181 -f 2533/3477/182 2547/3480/162 2539/3481/187 -f 2535/3482/184 2540/3483/157 2520/3484/185 -f 2538/3471/183 2545/3485/188 2537/3467/179 -f 2536/3486/189 2543/3487/190 2535/3482/184 -f 2539/3481/187 2546/3488/152 2538/3471/183 -f 2537/3467/179 2544/3489/154 2536/3486/189 -f 2555/3490/169 2561/3491/166 2554/3492/168 -f 2560/3493/180 2552/3494/172 2553/3495/170 -f 2557/3496/173 2548/3497/174 2549/3498/175 -f 2556/3499/176 2555/3490/169 2548/3497/174 -f 2561/3491/166 2553/3495/170 2554/3492/168 -f 2559/3500/171 2551/3501/178 2552/3494/172 -f 2560/3493/180 2566/3502/189 2559/3500/171 -f 2564/3503/181 2556/3499/176 2557/3496/173 -f 2556/3499/176 2569/3504/187 2562/3505/167 -f 2568/3506/183 2560/3493/180 2561/3491/166 -f 2559/3500/171 2565/3507/184 2558/3508/177 -f 2562/3505/167 2568/3506/183 2561/3491/166 -f 2550/3509/185 2551/3501/178 2558/3508/177 -f 2558/3508/177 2565/3507/184 2550/3509/185 -f 2549/3498/175 2550/3510/185 2557/3496/173 -f 2557/3496/173 2550/3510/185 2564/3503/181 -f 2564/3511/181 2571/3512/155 2563/3513/182 -f 2550/3514/185 2572/3515/186 2564/3511/181 -f 2563/3513/182 2577/3516/162 2569/3504/187 -f 2565/3517/184 2570/3518/157 2550/3519/185 -f 2568/3506/183 2575/3520/188 2567/3521/179 -f 2566/3522/189 2573/3523/190 2565/3517/184 -f 2569/3504/187 2576/3524/152 2568/3506/183 -f 2567/3521/179 2574/3525/154 2566/3522/189 -f 2621/3526/191 2627/3527/165 2620/3528/192 -f 2619/3529/193 2625/3530/194 2618/3531/195 -f 2623/3532/196 2614/3533/197 2615/3534/198 -f 2622/3535/199 2621/3526/191 2614/3533/197 -f 2620/3528/192 2626/3536/200 2619/3529/193 -f 2618/3531/195 2624/3537/201 2617/3538/202 -f 2626/3536/200 2632/3539/203 2625/3530/194 -f 2630/3540/204 2622/3535/199 2623/3532/196 -f 2629/3541/205 2628/3542/206 2622/3535/199 -f 2634/3543/207 2626/3536/200 2627/3527/165 -f 2625/3530/194 2631/3544/208 2624/3537/201 -f 2628/3542/206 2634/3543/207 2627/3527/165 -f 2616/3545/209 2617/3538/202 2624/3537/201 -f 2624/3537/201 2631/3544/208 2616/3545/209 -f 2615/3534/198 2616/3546/209 2623/3532/196 -f 2623/3532/196 2616/3546/209 2630/3540/204 -f 2630/3547/204 2637/3548/154 2629/3549/205 -f 2616/3550/209 2638/3551/190 2630/3547/204 -f 2629/3549/205 2643/3552/188 2635/3553/210 -f 2631/3554/208 2636/3555/157 2616/3556/209 -f 2634/3543/207 2641/3557/162 2633/3558/211 -f 2632/3559/203 2639/3560/186 2631/3554/208 -f 2635/3553/210 2642/3561/152 2634/3543/207 -f 2633/3558/211 2640/3562/155 2632/3559/203 -f 2651/3563/191 2657/3564/165 2650/3565/192 -f 2656/3566/200 2648/3567/195 2649/3568/193 -f 2653/3569/196 2644/3570/197 2645/3571/198 -f 2652/3572/199 2651/3563/191 2644/3570/197 -f 2657/3564/165 2649/3568/193 2650/3565/192 -f 2648/3567/195 2654/3573/201 2647/3574/202 -f 2663/3575/211 2655/3576/194 2656/3566/200 -f 2653/3569/196 2659/3577/205 2652/3572/199 -f 2659/3577/205 2658/3578/206 2652/3572/199 -f 2664/3579/207 2656/3566/200 2657/3564/165 -f 2655/3576/194 2661/3580/208 2654/3573/201 -f 2665/3581/210 2657/3564/165 2658/3578/206 -f 2646/3582/209 2647/3574/202 2654/3573/201 -f 2654/3573/201 2661/3580/208 2646/3582/209 -f 2645/3571/198 2646/3583/209 2653/3569/196 -f 2653/3569/196 2646/3583/209 2660/3584/204 -f 2660/3585/204 2667/3586/154 2659/3587/205 -f 2646/3588/209 2668/3589/190 2660/3585/204 -f 2659/3587/205 2673/3590/188 2665/3581/210 -f 2661/3591/208 2666/3592/157 2646/3593/209 -f 2664/3579/207 2671/3594/162 2663/3575/211 -f 2662/3595/203 2669/3596/186 2661/3591/208 -f 2664/3579/207 2673/3590/188 2672/3597/152 -f 2662/3595/203 2671/3594/162 2670/3598/155 -f 2532/3454/167 2531/3464/166 2524/3455/168 -f 2523/3457/170 2530/3468/180 2529/3458/171 -f 2527/3460/173 2526/3463/176 2518/3461/174 -f 2526/3463/176 2532/3454/167 2525/3456/169 -f 2531/3464/166 2530/3468/180 2523/3457/170 -f 2522/3459/172 2529/3458/171 2528/3465/177 -f 2537/3467/179 2536/3599/189 2529/3458/171 -f 2534/3469/181 2533/3470/182 2526/3463/176 -f 2533/3470/182 2539/3481/187 2532/3454/167 -f 2538/3471/183 2537/3467/179 2530/3468/180 -f 2529/3458/171 2536/3599/189 2535/3472/184 -f 2532/3454/167 2539/3481/187 2538/3471/183 -f 2534/3475/181 2542/3479/186 2541/3476/155 -f 2520/3478/185 2540/3600/157 2542/3479/186 -f 2533/3477/182 2541/3476/155 2547/3480/162 -f 2535/3482/184 2543/3487/190 2540/3483/157 -f 2538/3471/183 2546/3488/152 2545/3485/188 -f 2536/3486/189 2544/3489/154 2543/3487/190 -f 2539/3481/187 2547/3480/162 2546/3488/152 -f 2537/3467/179 2545/3485/188 2544/3489/154 -f 2555/3490/169 2562/3505/167 2561/3491/166 -f 2560/3493/180 2559/3500/171 2552/3494/172 -f 2557/3496/173 2556/3499/176 2548/3497/174 -f 2556/3499/176 2562/3505/167 2555/3490/169 -f 2561/3491/166 2560/3493/180 2553/3495/170 -f 2559/3500/171 2558/3508/177 2551/3501/178 -f 2560/3493/180 2567/3521/179 2566/3502/189 -f 2564/3503/181 2563/3601/182 2556/3499/176 -f 2556/3499/176 2563/3601/182 2569/3504/187 -f 2568/3506/183 2567/3521/179 2560/3493/180 -f 2559/3500/171 2566/3502/189 2565/3507/184 -f 2562/3505/167 2569/3504/187 2568/3506/183 -f 2564/3511/181 2572/3515/186 2571/3512/155 -f 2550/3514/185 2570/3602/157 2572/3515/186 -f 2563/3513/182 2571/3512/155 2577/3516/162 -f 2565/3517/184 2573/3523/190 2570/3518/157 -f 2568/3506/183 2576/3524/152 2575/3520/188 -f 2566/3522/189 2574/3525/154 2573/3523/190 -f 2569/3504/187 2577/3516/162 2576/3524/152 -f 2567/3521/179 2575/3520/188 2574/3525/154 -f 2621/3526/191 2628/3542/206 2627/3527/165 -f 2619/3529/193 2626/3536/200 2625/3530/194 -f 2623/3532/196 2622/3535/199 2614/3533/197 -f 2622/3535/199 2628/3542/206 2621/3526/191 -f 2620/3528/192 2627/3527/165 2626/3536/200 -f 2618/3531/195 2625/3530/194 2624/3537/201 -f 2626/3536/200 2633/3558/211 2632/3539/203 -f 2630/3540/204 2629/3541/205 2622/3535/199 -f 2629/3541/205 2635/3553/210 2628/3542/206 -f 2634/3543/207 2633/3558/211 2626/3536/200 -f 2625/3530/194 2632/3539/203 2631/3544/208 -f 2628/3542/206 2635/3553/210 2634/3543/207 -f 2630/3547/204 2638/3551/190 2637/3548/154 -f 2616/3550/209 2636/3603/157 2638/3551/190 -f 2629/3549/205 2637/3548/154 2643/3552/188 -f 2631/3554/208 2639/3560/186 2636/3555/157 -f 2634/3543/207 2642/3561/152 2641/3557/162 -f 2632/3559/203 2640/3562/155 2639/3560/186 -f 2635/3553/210 2643/3552/188 2642/3561/152 -f 2633/3558/211 2641/3557/162 2640/3562/155 -f 2651/3563/191 2658/3578/206 2657/3564/165 -f 2656/3566/200 2655/3576/194 2648/3567/195 -f 2653/3569/196 2652/3572/199 2644/3570/197 -f 2652/3572/199 2658/3578/206 2651/3563/191 -f 2657/3564/165 2656/3566/200 2649/3568/193 -f 2648/3567/195 2655/3576/194 2654/3573/201 -f 2663/3575/211 2662/3604/203 2655/3576/194 -f 2653/3569/196 2660/3584/204 2659/3577/205 -f 2659/3577/205 2665/3581/210 2658/3578/206 -f 2664/3579/207 2663/3575/211 2656/3566/200 -f 2655/3576/194 2662/3604/203 2661/3580/208 -f 2665/3581/210 2664/3579/207 2657/3564/165 -f 2660/3585/204 2668/3589/190 2667/3586/154 -f 2646/3588/209 2666/3605/157 2668/3589/190 -f 2659/3587/205 2667/3586/154 2673/3590/188 -f 2661/3591/208 2669/3596/186 2666/3592/157 -f 2664/3579/207 2672/3597/152 2671/3594/162 -f 2662/3595/203 2670/3598/155 2669/3596/186 -f 2664/3579/207 2665/3581/210 2673/3590/188 -f 2662/3595/203 2663/3575/211 2671/3594/162 -o Strong_Rope -v 0.625000 7.661612 0.088388 -v 0.625000 7.625000 0.000000 -v 0.625000 7.661612 -0.088388 -v 0.625000 7.750000 -0.125000 -v 0.625000 7.838388 -0.088388 -v 0.625000 7.875000 0.000000 -v 0.625000 7.838388 0.088388 -v 0.625000 7.750000 0.125000 -v 1.000000 7.661612 0.088388 -v 1.000000 7.625000 0.000000 -v 1.000000 7.661612 -0.088388 -v 1.000000 7.750000 -0.125000 -v 1.000000 7.838388 -0.088388 -v 1.000000 7.875000 0.000000 -v 1.000000 7.838388 0.088388 -v 1.025888 7.661612 0.099112 -v 1.088388 7.625000 0.036612 -v 1.150888 7.661612 -0.025888 -v 1.176777 7.750000 -0.051777 -v 1.150888 7.838388 -0.025888 -v 1.088388 7.875000 0.036612 -v 1.025888 7.838388 0.099112 -v 1.036612 7.661612 0.125000 -v 1.125000 7.625000 0.125000 -v 1.213388 7.661612 0.125000 -v 1.250000 7.750000 0.125000 -v 1.213388 7.838388 0.125000 -v 1.125000 7.875000 0.125000 -v 1.036612 7.838388 0.125000 -v 1.000000 7.750000 0.125000 -v 1.036612 7.661612 2.875000 -v 1.125000 7.625000 2.875000 -v 1.213388 7.661612 2.875000 -v 1.250000 7.750000 2.875000 -v 1.213388 7.838388 2.875000 -v 1.125000 7.875000 2.875000 -v 1.036612 7.838388 2.875000 -v 1.025888 7.661612 2.900888 -v 1.088388 7.625000 2.963388 -v 1.150888 7.661612 3.025888 -v 1.176777 7.750000 3.051777 -v 1.150888 7.838388 3.025888 -v 1.088388 7.875000 2.963388 -v 1.025888 7.838388 2.900888 -v 1.000000 7.661612 2.911612 -v 1.000000 7.625000 3.000000 -v 1.000000 7.661612 3.088388 -v 1.000000 7.750000 3.125000 -v 1.000000 7.838388 3.088388 -v 1.000000 7.875000 3.000000 -v 1.000000 7.838388 2.911612 -v 1.000000 7.750000 2.875000 -v 1.000000 5.500000 2.875000 -v 1.000000 5.588388 2.911612 -v 1.000000 5.625000 3.000000 -v 1.000000 5.588388 3.088388 -v 1.000000 5.500000 3.125000 -v 1.000000 5.411612 3.088388 -v 1.000000 5.375000 3.000000 -v 1.000000 5.411612 2.911612 -v 1.025888 5.588388 2.900888 -v 1.088388 5.625000 2.963388 -v 1.150888 5.588388 3.025888 -v 1.176777 5.500000 3.051777 -v 1.150888 5.411612 3.025888 -v 1.088388 5.375000 2.963388 -v 1.025888 5.411612 2.900888 -v 1.036612 5.588388 2.875000 -v 1.125000 5.625000 2.875000 -v 1.213388 5.588388 2.875000 -v 1.250000 5.500000 2.875000 -v 1.213388 5.411612 2.875000 -v 1.125000 5.375000 2.875000 -v 1.036612 5.411612 2.875000 -v 1.000000 5.500000 0.125000 -v 1.036612 5.588388 0.125000 -v 1.125000 5.625000 0.125000 -v 1.213388 5.588388 0.125000 -v 1.250000 5.500000 0.125000 -v 1.213388 5.411612 0.125000 -v 1.125000 5.375000 0.125000 -v 1.036612 5.411612 0.125000 -v 1.025888 5.588388 0.099112 -v 1.088388 5.625000 0.036612 -v 1.150888 5.588388 -0.025888 -v 1.176777 5.500000 -0.051777 -v 1.150888 5.411612 -0.025888 -v 1.088388 5.375000 0.036612 -v 1.025888 5.411612 0.099112 -v 1.000000 5.588388 0.088388 -v 1.000000 5.625000 0.000000 -v 1.000000 5.588388 -0.088388 -v 1.000000 5.500000 -0.125000 -v 1.000000 5.411612 -0.088388 -v 1.000000 5.375000 0.000000 -v 1.000000 5.411612 0.088388 -v 0.625000 5.500000 0.125000 -v 0.625000 5.588388 0.088388 -v 0.625000 5.625000 0.000000 -v 0.625000 5.588388 -0.088388 -v 0.625000 5.500000 -0.125000 -v 0.625000 5.411612 -0.088388 -v 0.625000 5.375000 0.000000 -v 0.625000 5.411612 0.088388 -v -0.250000 8.500000 2.500000 -v 0.250000 8.500000 2.500000 -v -0.250000 9.000000 2.500000 -v 0.250000 9.000000 2.500000 -v -0.250000 8.500000 0.250000 -v 0.250000 8.500000 0.250000 -v -0.250000 9.000000 0.250000 -v 0.250000 9.000000 0.250000 -v 0.000000 11.000000 2.500000 -v 0.000000 10.875000 2.500000 -v 0.000000 11.000000 0.000000 -v 0.000000 10.875000 0.000000 -v 0.000000 10.812500 0.500000 -v 0.000000 10.750000 1.000000 -v 0.000000 10.750000 1.500000 -v 0.000000 10.812500 2.000000 -v 0.000000 10.687500 2.000000 -v 0.000000 10.625000 1.500000 -v 0.000000 10.625000 1.000000 -v 0.000000 10.687500 0.500000 -v 0.000000 11.000000 2.500000 -v 0.000000 10.875000 2.500000 -v 0.000000 11.000000 0.000000 -v 0.000000 10.875000 0.000000 -v 0.000000 10.812500 0.500000 -v 0.000000 10.750000 1.000000 -v 0.000000 10.750000 1.500000 -v 0.000000 10.812500 2.000000 -v 0.000000 10.687500 2.000000 -v 0.000000 10.625000 1.500000 -v 0.000000 10.625000 1.000000 -v 0.000000 10.687500 0.500000 -vt 0.692308 0.449438 -vt 0.666667 0.651685 -vt 0.666667 0.449438 -vt 0.769231 0.449438 -vt 0.743590 0.651685 -vt 0.743590 0.449438 -vt 0.717949 0.449438 -vt 0.692308 0.651685 -vt 0.717949 0.651685 -vt 0.461538 0.910112 -vt 0.487179 0.898876 -vt 0.487179 0.910112 -vt 0.358974 0.898876 -vt 0.384615 0.910112 -vt 0.358974 0.910112 -vt 0.384615 0.898876 -vt 0.410256 0.910112 -vt 0.410256 0.898876 -vt 0.435897 0.910112 -vt 0.461538 0.898876 -vt 0.461538 0.910112 -vt 0.487179 0.898876 -vt 0.461538 0.898876 -vt 0.384615 0.910112 -vt 0.358974 0.898876 -vt 0.358974 0.910112 -vt 0.410256 0.910112 -vt 0.384615 0.898876 -vt 0.435897 0.910112 -vt 0.410256 0.898876 -vt 0.435897 0.898876 -vt 0.769231 0.651685 -vt 0.435897 0.898876 -vt 0.487179 0.910112 -vt 0.705128 0.966292 -vt 0.698718 1.000000 -vt 0.698718 0.966292 -vt 0.685897 0.966292 -vt 0.679487 1.000000 -vt 0.679487 0.966292 -vt 0.692308 1.000000 -vt 0.692308 0.966292 -vt 0.673077 0.966292 -vt 0.666667 1.000000 -vt 0.666667 0.966292 -vt 0.711538 0.966292 -vt 0.705128 1.000000 -vt 0.717949 0.966292 -vt 0.711538 1.000000 -vt 0.673077 1.000000 -vt 0.685897 1.000000 -vt 0.711538 0.949438 -vt 0.717949 0.949438 -vt 0.711538 0.955056 -vt 0.711538 0.943820 -vt 0.673077 0.949438 -vt 0.673077 0.955056 -vt 0.666667 0.949438 -vt 0.673077 0.943820 -vt 0.685897 0.949438 -vt 0.679487 0.960674 -vt 0.679487 0.949438 -vt 0.698718 0.949438 -vt 0.692308 0.949438 -vt 0.705128 0.960674 -vt 0.705128 0.949438 -vt 0.685897 0.932584 -vt 0.698718 0.932584 -vt 0.679487 0.938202 -vt 0.692308 0.932584 -vt 0.705128 0.938202 -vt 0.685897 0.685393 -vt 0.679487 0.932584 -vt 0.679487 0.685393 -vt 0.698718 0.685393 -vt 0.692308 0.685393 -vt 0.673077 0.685393 -vt 0.666667 0.932584 -vt 0.666667 0.685393 -vt 0.711538 0.685393 -vt 0.705128 0.932584 -vt 0.705128 0.685393 -vt 0.717949 0.685393 -vt 0.711538 0.932584 -vt 0.673077 0.932584 -vt 0.711538 0.668539 -vt 0.717949 0.668539 -vt 0.711538 0.674157 -vt 0.711538 0.662921 -vt 0.673077 0.668539 -vt 0.673077 0.674157 -vt 0.666667 0.668539 -vt 0.673077 0.662921 -vt 0.679487 0.668539 -vt 0.685897 0.668539 -vt 0.692308 0.668539 -vt 0.698718 0.668539 -vt 0.705128 0.679775 -vt 0.705128 0.668539 -vt 0.679487 0.679775 -vt 0.698718 0.651685 -vt 0.705128 0.657303 -vt 0.685897 0.651685 -vt 0.679487 0.657303 -vt 0.692308 0.651685 -vt 0.692308 0.668539 -vt 0.685897 0.651685 -vt 0.692308 0.651685 -vt 0.679487 0.657303 -vt 0.673077 0.668539 -vt 0.673077 0.662921 -vt 0.711538 0.662921 -vt 0.705128 0.668539 -vt 0.705128 0.657303 -vt 0.698718 0.651685 -vt 0.679487 0.668539 -vt 0.698718 0.685393 -vt 0.698718 0.668539 -vt 0.685897 0.685393 -vt 0.685897 0.668539 -vt 0.679487 0.679775 -vt 0.711538 0.668539 -vt 0.705128 0.679775 -vt 0.666667 0.668539 -vt 0.673077 0.674157 -vt 0.717949 0.668539 -vt 0.711538 0.674157 -vt 0.705128 0.685393 -vt 0.698718 0.932584 -vt 0.692308 0.685393 -vt 0.685897 0.932584 -vt 0.679487 0.685393 -vt 0.673077 0.932584 -vt 0.673077 0.685393 -vt 0.717949 0.685393 -vt 0.711538 0.932584 -vt 0.711538 0.685393 -vt 0.705128 0.932584 -vt 0.666667 0.932584 -vt 0.666667 0.685393 -vt 0.692308 0.932584 -vt 0.679487 0.932584 -vt 0.711538 0.943820 -vt 0.705128 0.949438 -vt 0.705128 0.938202 -vt 0.692308 0.949438 -vt 0.679487 0.949438 -vt 0.679487 0.938202 -vt 0.698718 0.949438 -vt 0.685897 0.949438 -vt 0.673077 0.943820 -vt 0.673077 0.949438 -vt 0.705128 0.960674 -vt 0.698718 0.966292 -vt 0.692308 0.966292 -vt 0.685897 0.966292 -vt 0.673077 0.955056 -vt 0.711538 0.949438 -vt 0.679487 0.960674 -vt 0.666667 0.949438 -vt 0.717949 0.949438 -vt 0.711538 0.955056 -vt 0.685897 1.000000 -vt 0.679487 0.966292 -vt 0.673077 1.000000 -vt 0.673077 0.966292 -vt 0.717949 0.966292 -vt 0.711538 1.000000 -vt 0.711538 0.966292 -vt 0.705128 1.000000 -vt 0.705128 0.966292 -vt 0.666667 1.000000 -vt 0.666667 0.966292 -vt 0.692308 1.000000 -vt 0.679487 1.000000 -vt 0.698718 1.000000 -vt 0.717949 1.000000 -vt 0.717949 0.932584 -vt 0.717949 0.932584 -vt 0.717949 1.000000 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0196 -0.9987 -0.0473 -vn 0.0000 -0.7071 -0.7071 -vn 0.1447 -0.6794 -0.7194 -vn 0.1447 0.6794 -0.7194 -vn 0.0196 0.9987 -0.0473 -vn 0.0000 0.0000 -1.0000 -vn 0.1866 0.0000 -0.9824 -vn -0.1363 0.7263 0.6737 -vn 0.0000 0.0000 1.0000 -vn -0.7071 0.0000 0.7071 -vn -0.1363 -0.7263 0.6737 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 -vn -0.4617 -0.7573 0.4617 -vn -0.6737 -0.7263 0.1363 -vn -0.4617 0.7573 0.4617 -vn -0.6737 0.7263 0.1363 -vn 0.5293 0.6630 -0.5293 -vn 0.0670 0.9955 -0.0670 -vn 0.5293 -0.6630 -0.5293 -vn 0.7071 0.0000 -0.7071 -vn 0.0670 -0.9955 -0.0670 -vn 0.7194 0.6794 -0.1447 -vn 0.7194 -0.6794 -0.1447 -vn 0.0473 0.9987 -0.0196 -vn 0.9824 0.0000 -0.1866 -vn 0.0473 -0.9987 -0.0196 -vn 0.7194 0.6794 0.1447 -vn 0.0473 0.9987 0.0196 -vn 0.7194 -0.6794 0.1447 -vn 0.9824 0.0000 0.1866 -vn -0.6737 0.7263 -0.1363 -vn -0.9809 0.0000 -0.1944 -vn -0.6737 -0.7263 -0.1363 -vn 0.0473 -0.9987 0.0196 -vn -0.4617 -0.7573 -0.4617 -vn -0.2611 -0.7311 -0.6303 -vn -0.4617 0.7573 -0.4617 -vn -0.2611 0.7311 -0.6303 -vn 0.0670 0.9955 0.0670 -vn 0.5293 0.6630 0.5293 -vn 0.7071 0.0000 0.7071 -vn 0.5293 -0.6630 0.5293 -vn 0.0670 -0.9955 0.0670 -vn 0.2962 -0.6332 0.7150 -vn 0.0392 -0.9947 0.0948 -vn 0.2962 0.6332 0.7150 -vn 0.0392 0.9947 0.0948 -vn 0.3827 0.0000 0.9239 -s off -f 2778/3606/212 2783/3607/212 2779/3608/212 -f 2779/3609/213 2785/3610/213 2781/3611/213 -f 2780/3612/214 2782/3613/214 2778/3606/214 -f 2781/3611/215 2784/3614/215 2780/3612/215 -f 2790/3615/213 2789/3616/213 2788/3617/213 -f 2787/3618/213 2793/3619/213 2786/3620/213 -f 2794/3621/213 2792/3622/213 2793/3619/213 -f 2795/3623/213 2791/3624/213 2792/3622/213 -f 2791/3624/213 2797/3625/213 2790/3615/213 -f 2802/3626/214 2801/3627/214 2809/3628/214 -f 2805/3629/214 2799/3630/214 2798/3631/214 -f 2804/3632/214 2806/3633/214 2805/3629/214 -f 2803/3634/214 2807/3635/214 2804/3632/214 -f 2803/3634/214 2809/3628/214 2808/3636/214 -f 2778/3606/212 2782/3613/212 2783/3607/212 -f 2779/3609/213 2783/3637/213 2785/3610/213 -f 2780/3612/214 2784/3614/214 2782/3613/214 -f 2781/3611/215 2785/3610/215 2784/3614/215 -f 2790/3615/213 2797/3625/213 2789/3616/213 -f 2787/3618/213 2794/3621/213 2793/3619/213 -f 2794/3621/213 2795/3623/213 2792/3622/213 -f 2795/3623/213 2796/3638/213 2791/3624/213 -f 2791/3624/213 2796/3638/213 2797/3625/213 -f 2802/3626/214 2800/3639/214 2801/3627/214 -f 2805/3629/214 2806/3633/214 2799/3630/214 -f 2804/3632/214 2807/3635/214 2806/3633/214 -f 2803/3634/214 2808/3636/214 2807/3635/214 -f 2803/3634/214 2802/3626/214 2809/3628/214 -s 1 -f 2683/3640/216 2676/3641/217 2684/3642/218 -f 2686/3643/219 2679/3644/215 2687/3645/220 -f 2684/3642/218 2677/3646/221 2685/3647/222 -f 2688/3648/223 2681/3649/224 2703/3650/225 -f 2682/3651/226 2675/3652/212 2683/3640/216 -f 2703/3653/225 2674/3654/227 2682/3651/226 -f 2687/3645/220 2680/3655/228 2688/3648/223 -f 2685/3647/222 2678/3656/229 2686/3643/219 -f 2689/3657/230 2703/3658/225 2682/3659/226 -f 2703/3658/225 2689/3657/230 2696/3660/231 -f 2695/3661/232 2688/3662/223 2703/3663/225 -f 2702/3664/233 2695/3661/232 2703/3663/225 -f 2693/3665/234 2687/3666/220 2694/3667/235 -f 2691/3668/236 2685/3647/222 2692/3669/237 -f 2689/3657/230 2683/3670/216 2690/3671/238 -f 2694/3667/235 2688/3662/223 2695/3661/232 -f 2693/3665/234 2685/3647/222 2686/3643/219 -f 2690/3671/238 2684/3642/218 2691/3668/236 -f 2702/3664/233 2694/3667/235 2695/3661/232 -f 2700/3672/239 2692/3669/237 2693/3665/234 -f 2698/3673/240 2690/3671/238 2691/3668/236 -f 2700/3672/239 2694/3667/235 2701/3674/241 -f 2698/3673/240 2692/3669/237 2699/3675/242 -f 2697/3676/243 2689/3657/230 2690/3671/238 -f 2708/3677/244 2701/3678/241 2709/3679/245 -f 2706/3680/246 2699/3675/242 2707/3681/247 -f 2710/3682/248 2703/3683/225 2725/3684/249 -f 2704/3685/250 2697/3686/243 2705/3687/251 -f 2725/3688/249 2696/3689/231 2704/3685/250 -f 2709/3679/245 2702/3690/233 2710/3682/248 -f 2707/3681/247 2700/3672/239 2708/3677/244 -f 2705/3687/251 2698/3673/240 2706/3680/246 -f 2711/3691/252 2725/3692/249 2704/3693/250 -f 2718/3694/253 2725/3692/249 2711/3691/252 -f 2717/3695/254 2710/3696/248 2725/3697/249 -f 2725/3697/249 2724/3698/255 2717/3695/254 -f 2708/3677/244 2716/3699/256 2715/3700/257 -f 2706/3680/246 2714/3701/258 2713/3702/259 -f 2711/3691/252 2705/3703/251 2712/3704/260 -f 2709/3705/245 2717/3695/254 2716/3699/256 -f 2714/3701/258 2708/3677/244 2715/3700/257 -f 2712/3704/260 2706/3680/246 2713/3702/259 -f 2712/3704/260 2720/3706/261 2719/3707/262 -f 2722/3708/263 2716/3699/256 2723/3709/264 -f 2720/3706/261 2714/3701/258 2721/3710/265 -f 2718/3694/253 2712/3704/260 2719/3707/262 -f 2723/3709/264 2717/3695/254 2724/3698/255 -f 2714/3701/258 2722/3708/263 2721/3710/265 -f 2737/3711/258 2729/3712/263 2730/3713/265 -f 2728/3714/264 2734/3715/254 2727/3716/255 -f 2733/3717/253 2739/3718/260 2732/3719/262 -f 2731/3720/261 2737/3711/258 2730/3713/265 -f 2729/3712/263 2735/3721/256 2728/3714/264 -f 2739/3718/260 2731/3720/261 2732/3719/262 -f 2739/3718/260 2745/3722/246 2738/3723/259 -f 2737/3711/258 2743/3724/244 2736/3725/257 -f 2742/3726/245 2734/3715/254 2735/3721/256 -f 2740/3727/252 2746/3728/251 2739/3718/260 -f 2745/3722/246 2737/3711/258 2738/3723/259 -f 2743/3724/244 2735/3721/256 2736/3725/257 -f 2726/3729/249 2727/3716/255 2734/3715/254 -f 2734/3715/254 2741/3730/248 2726/3729/249 -f 2733/3717/253 2726/3731/249 2740/3727/252 -f 2740/3727/252 2726/3731/249 2747/3732/250 -f 2746/3733/251 2753/3734/240 2745/3722/246 -f 2744/3735/247 2751/3736/239 2743/3724/244 -f 2742/3737/245 2749/3738/233 2741/3739/248 -f 2726/3740/249 2755/3741/231 2747/3742/250 -f 2747/3742/250 2754/3743/243 2746/3733/251 -f 2741/3739/248 2748/3744/225 2726/3745/249 -f 2745/3722/246 2752/3746/242 2744/3735/247 -f 2743/3724/244 2750/3747/241 2742/3737/245 -f 2755/3748/231 2761/3749/238 2754/3750/243 -f 2753/3734/240 2759/3751/237 2752/3746/242 -f 2751/3736/239 2757/3752/235 2750/3753/241 -f 2754/3750/243 2760/3754/236 2753/3734/240 -f 2751/3736/239 2759/3751/237 2758/3755/234 -f 2749/3756/233 2757/3752/235 2756/3757/232 -f 2760/3754/236 2768/3758/216 2767/3759/218 -f 2758/3755/234 2766/3760/222 2765/3761/219 -f 2757/3752/235 2763/3762/223 2756/3757/232 -f 2762/3763/230 2768/3758/216 2761/3749/238 -f 2760/3754/236 2766/3760/222 2759/3751/237 -f 2758/3755/234 2764/3764/220 2757/3752/235 -f 2749/3756/233 2756/3757/232 2748/3765/225 -f 2756/3757/232 2763/3762/223 2748/3765/225 -f 2748/3766/225 2762/3763/230 2755/3748/231 -f 2762/3763/230 2748/3766/225 2769/3767/226 -f 2766/3760/222 2773/3768/229 2765/3761/219 -f 2764/3769/220 2771/3770/228 2763/3771/223 -f 2748/3772/225 2777/3773/227 2769/3774/226 -f 2769/3774/226 2776/3775/212 2768/3776/216 -f 2763/3771/223 2770/3777/224 2748/3778/225 -f 2767/3759/218 2774/3779/221 2766/3760/222 -f 2765/3761/219 2772/3780/215 2764/3769/220 -f 2768/3776/216 2775/3781/217 2767/3759/218 -f 2683/3640/216 2675/3652/212 2676/3641/217 -f 2686/3643/219 2678/3656/229 2679/3644/215 -f 2684/3642/218 2676/3641/217 2677/3646/221 -f 2688/3648/223 2680/3655/228 2681/3649/224 -f 2682/3651/226 2674/3654/227 2675/3652/212 -f 2703/3653/225 2681/3782/224 2674/3654/227 -f 2687/3645/220 2679/3644/215 2680/3655/228 -f 2685/3647/222 2677/3646/221 2678/3656/229 -f 2693/3665/234 2686/3643/219 2687/3666/220 -f 2691/3668/236 2684/3642/218 2685/3647/222 -f 2689/3657/230 2682/3659/226 2683/3670/216 -f 2694/3667/235 2687/3666/220 2688/3662/223 -f 2693/3665/234 2692/3669/237 2685/3647/222 -f 2690/3671/238 2683/3670/216 2684/3642/218 -f 2702/3664/233 2701/3674/241 2694/3667/235 -f 2700/3672/239 2699/3675/242 2692/3669/237 -f 2698/3673/240 2697/3676/243 2690/3671/238 -f 2700/3672/239 2693/3665/234 2694/3667/235 -f 2698/3673/240 2691/3668/236 2692/3669/237 -f 2697/3676/243 2696/3660/231 2689/3657/230 -f 2708/3677/244 2700/3672/239 2701/3678/241 -f 2706/3680/246 2698/3673/240 2699/3675/242 -f 2710/3682/248 2702/3690/233 2703/3683/225 -f 2704/3685/250 2696/3689/231 2697/3686/243 -f 2725/3688/249 2703/3783/225 2696/3689/231 -f 2709/3679/245 2701/3678/241 2702/3690/233 -f 2707/3681/247 2699/3675/242 2700/3672/239 -f 2705/3687/251 2697/3686/243 2698/3673/240 -f 2708/3677/244 2709/3705/245 2716/3699/256 -f 2706/3680/246 2707/3681/247 2714/3701/258 -f 2711/3691/252 2704/3693/250 2705/3703/251 -f 2709/3705/245 2710/3696/248 2717/3695/254 -f 2714/3701/258 2707/3681/247 2708/3677/244 -f 2712/3704/260 2705/3703/251 2706/3680/246 -f 2712/3704/260 2713/3702/259 2720/3706/261 -f 2722/3708/263 2715/3700/257 2716/3699/256 -f 2720/3706/261 2713/3702/259 2714/3701/258 -f 2718/3694/253 2711/3691/252 2712/3704/260 -f 2723/3709/264 2716/3699/256 2717/3695/254 -f 2714/3701/258 2715/3700/257 2722/3708/263 -f 2737/3711/258 2736/3725/257 2729/3712/263 -f 2728/3714/264 2735/3721/256 2734/3715/254 -f 2733/3717/253 2740/3727/252 2739/3718/260 -f 2731/3720/261 2738/3723/259 2737/3711/258 -f 2729/3712/263 2736/3725/257 2735/3721/256 -f 2739/3718/260 2738/3723/259 2731/3720/261 -f 2739/3718/260 2746/3728/251 2745/3722/246 -f 2737/3711/258 2744/3735/247 2743/3724/244 -f 2742/3726/245 2741/3730/248 2734/3715/254 -f 2740/3727/252 2747/3732/250 2746/3728/251 -f 2745/3722/246 2744/3735/247 2737/3711/258 -f 2743/3724/244 2742/3726/245 2735/3721/256 -f 2746/3733/251 2754/3743/243 2753/3734/240 -f 2744/3735/247 2752/3746/242 2751/3736/239 -f 2742/3737/245 2750/3747/241 2749/3738/233 -f 2726/3740/249 2748/3784/225 2755/3741/231 -f 2747/3742/250 2755/3741/231 2754/3743/243 -f 2741/3739/248 2749/3738/233 2748/3744/225 -f 2745/3722/246 2753/3734/240 2752/3746/242 -f 2743/3724/244 2751/3736/239 2750/3747/241 -f 2755/3748/231 2762/3763/230 2761/3749/238 -f 2753/3734/240 2760/3754/236 2759/3751/237 -f 2751/3736/239 2758/3755/234 2757/3752/235 -f 2754/3750/243 2761/3749/238 2760/3754/236 -f 2751/3736/239 2752/3746/242 2759/3751/237 -f 2749/3756/233 2750/3753/241 2757/3752/235 -f 2760/3754/236 2761/3749/238 2768/3758/216 -f 2758/3755/234 2759/3751/237 2766/3760/222 -f 2757/3752/235 2764/3764/220 2763/3762/223 -f 2762/3763/230 2769/3767/226 2768/3758/216 -f 2760/3754/236 2767/3759/218 2766/3760/222 -f 2758/3755/234 2765/3761/219 2764/3764/220 -f 2766/3760/222 2774/3779/221 2773/3768/229 -f 2764/3769/220 2772/3780/215 2771/3770/228 -f 2748/3772/225 2770/3785/224 2777/3773/227 -f 2769/3774/226 2777/3773/227 2776/3775/212 -f 2763/3771/223 2771/3770/228 2770/3777/224 -f 2767/3759/218 2775/3781/217 2774/3779/221 -f 2765/3761/219 2773/3768/229 2772/3780/215 -f 2768/3776/216 2776/3775/212 2775/3781/217 -o Strong_Pivot -v 0.750000 1.500000 -2.750000 -v 0.250000 1.500000 -2.750000 -v 0.250000 1.500000 -3.250000 -v 0.750000 1.500000 -3.250000 -v 0.250000 3.500000 -2.750000 +f 1993/3077/357 1994/3078/357 1995/3079/357 +f 1996/3080/357 1997/3081/357 1998/3082/357 +f 1999/3083/358 2000/3084/358 2001/3085/358 +f 1997/3081/359 2001/3085/359 2002/3086/359 +f 2003/3087/360 2004/3088/360 2005/3089/360 +f 2002/3090/361 2006/3091/361 2003/3092/361 +f 2005/3093/362 1999/3094/362 1997/3095/362 +f 2000/3096/361 2007/3097/361 2008/3098/361 +f 2001/3099/358 2008/3098/358 2006/3091/358 +f 2006/3100/358 2009/3101/358 2004/3088/358 +f 2004/3102/358 2010/3103/358 1999/3094/358 +f 2011/3104/357 2005/3105/357 1996/3080/357 +f 2009/3106/362 2012/3107/362 2010/3103/362 +f 2010/3108/359 2013/3109/359 2000/3084/359 +f 2008/3110/360 2014/3111/360 2009/3101/360 +f 2015/3112/357 2003/3113/357 2011/3104/357 +f 1998/3082/357 2002/3086/357 2015/3112/357 +f 2016/3114/363 1996/3080/363 1998/3082/363 +f 2017/3115/364 2011/3104/364 1996/3080/364 +f 2018/3116/365 2015/3112/365 2011/3104/365 +f 2019/3117/366 1998/3082/366 2015/3112/366 +f 2020/3118/361 2021/3119/361 2022/3120/361 +f 2023/3121/357 2024/3122/357 2025/3123/357 +f 2026/3124/359 2023/3121/359 2027/3125/359 +f 2025/3123/362 2027/3126/362 2023/3121/362 +f 2022/3120/363 2026/3124/363 2020/3118/363 +f 2022/3127/360 2021/3128/360 2028/3129/360 +f 2029/3130/361 2030/3131/361 2031/3132/361 +f 2032/3133/360 2033/3134/360 2034/3135/360 +f 2035/3136/362 2032/3133/362 2034/3137/362 +f 2036/3138/359 2037/3139/359 2035/3140/359 +f 2038/3141/357 2029/3130/357 2032/3133/357 +f 2039/3142/358 2040/3143/358 2041/3144/358 +f 2040/3145/362 2042/3146/362 2041/3147/362 +f 2043/3148/357 2044/3149/357 2042/3146/357 +f 2039/3150/361 2045/3151/361 2046/3152/361 +f 2047/3153/362 2048/3154/362 2049/3155/362 +f 2041/3156/360 2044/3149/360 2039/3157/360 +f 2046/3158/359 2043/3148/359 2040/3159/359 +f 2050/3160/362 2051/3161/362 2052/3162/362 +f 2053/3163/359 2054/3164/359 2055/3165/359 +f 2056/3166/359 2057/3167/359 2050/3160/359 +f 2058/3168/361 2059/3169/361 2053/3163/361 +f 2060/3170/361 2061/3171/361 2056/3166/361 +f 2062/3172/360 2063/3173/360 2064/3174/360 +f 2065/3175/360 2066/3176/360 2067/3177/360 +f 2068/3178/362 2069/3179/362 2062/3172/362 +f 2070/3180/362 2071/3181/362 2065/3175/362 +f 2072/3182/359 2073/3183/359 2068/3178/359 +f 2074/3184/359 2075/3185/359 2070/3180/359 +f 2064/3174/361 2076/3186/361 2072/3187/361 +f 2077/3188/360 2078/3189/360 2058/3168/360 +f 2067/3190/361 2079/3191/361 2074/3184/361 +f 2052/3192/360 2080/3193/360 2060/3170/360 +f 2055/3194/362 2081/3195/362 2077/3188/362 +f 2082/3196/361 2083/3197/361 2084/3198/361 +f 2085/3199/359 2086/3200/359 2087/3201/359 +f 2088/3202/360 2089/3203/360 2090/3204/360 +f 2091/3205/358 2092/3206/358 2093/3207/358 +f 2092/3208/362 2094/3209/362 2093/3210/362 +f 2095/3211/357 2096/3212/357 2094/3209/357 +f 2091/3213/361 2097/3214/361 2098/3215/361 +f 2099/3216/362 2100/3217/362 2101/3218/362 +f 2093/3219/360 2096/3212/360 2091/3220/360 +f 2098/3221/359 2095/3211/359 2092/3222/359 +f 2102/3223/362 2103/3224/362 2104/3225/362 +f 2105/3226/359 2106/3227/359 2107/3228/359 +f 2108/3229/359 2109/3230/359 2102/3223/359 +f 2110/3231/361 2111/3232/361 2105/3226/361 +f 2112/3233/361 2113/3234/361 2108/3229/361 +f 2114/3235/360 2115/3236/360 2116/3237/360 +f 2117/3238/360 2118/3239/360 2119/3240/360 +f 2120/3241/362 2121/3242/362 2114/3235/362 +f 2122/3243/362 2123/3244/362 2117/3238/362 +f 2124/3245/359 2125/3246/359 2120/3241/359 +f 2126/3247/359 2127/3248/359 2122/3243/359 +f 2116/3237/361 2128/3249/361 2124/3250/361 +f 2129/3251/360 2130/3252/360 2110/3231/360 +f 2119/3253/361 2131/3254/361 2126/3247/361 +f 2104/3255/360 2132/3256/360 2112/3233/360 +f 2107/3257/362 2133/3258/362 2129/3251/362 +f 2134/3259/361 2135/3260/361 2136/3261/361 +f 2137/3262/359 2138/3263/359 2139/3264/359 +f 2140/3265/360 2141/3266/360 2142/3267/360 +f 2143/3268/358 2144/3269/358 2145/3270/358 +f 2144/3271/362 2146/3272/362 2145/3273/362 +f 2147/3274/357 2148/3275/357 2146/3272/357 +f 2143/3276/361 2149/3277/361 2150/3278/361 +f 2151/3279/362 2152/3280/362 2153/3281/362 +f 2145/3282/360 2148/3275/360 2143/3283/360 +f 2150/3284/359 2147/3274/359 2144/3285/359 +f 2154/3286/362 2155/3287/362 2156/3288/362 +f 2157/3289/359 2158/3290/359 2159/3291/359 +f 2160/3292/359 2161/3293/359 2154/3286/359 +f 2162/3294/361 2163/3295/361 2157/3289/361 +f 2164/3296/361 2165/3297/361 2160/3292/361 +f 2166/3298/360 2167/3299/360 2168/3300/360 +f 2169/3301/360 2170/3302/360 2171/3303/360 +f 2172/3304/362 2173/3305/362 2166/3298/362 +f 2174/3306/362 2175/3307/362 2169/3301/362 +f 2176/3308/359 2177/3309/359 2172/3304/359 +f 2178/3310/359 2179/3311/359 2174/3306/359 +f 2168/3300/361 2180/3312/361 2176/3313/361 +f 2181/3314/360 2182/3315/360 2162/3294/360 +f 2171/3316/361 2183/3317/361 2178/3310/361 +f 2156/3318/360 2184/3319/360 2164/3296/360 +f 2159/3320/362 2185/3321/362 2181/3314/362 +f 2186/3322/361 2187/3323/361 2188/3324/361 +f 2189/3325/359 2190/3326/359 2191/3327/359 +f 2192/3328/360 2193/3329/360 2194/3330/360 +f 2195/3331/358 2196/3332/358 2197/3333/358 +f 2196/3334/362 2198/3335/362 2197/3336/362 +f 2199/3337/357 2200/3338/357 2198/3335/357 +f 2195/3339/361 2201/3340/361 2202/3341/361 +f 2203/3342/362 2204/3343/362 2205/3344/362 +f 2197/3345/360 2200/3338/360 2195/3346/360 +f 2202/3347/359 2199/3337/359 2196/3348/359 +f 2206/3349/362 2207/3350/362 2208/3351/362 +f 2209/3352/359 2210/3353/359 2211/3354/359 +f 2212/3355/359 2213/3356/359 2206/3349/359 +f 2214/3357/361 2215/3358/361 2209/3352/361 +f 2216/3359/361 2217/3360/361 2212/3355/361 +f 2218/3361/360 2219/3362/360 2220/3363/360 +f 2221/3364/360 2222/3365/360 2223/3366/360 +f 2224/3367/362 2225/3368/362 2218/3361/362 +f 2226/3369/362 2227/3370/362 2221/3364/362 +f 2228/3371/359 2229/3372/359 2224/3367/359 +f 2230/3373/359 2231/3374/359 2226/3369/359 +f 2220/3363/361 2232/3375/361 2228/3376/361 +f 2233/3377/360 2234/3378/360 2214/3357/360 +f 2223/3379/361 2235/3380/361 2230/3373/361 +f 2208/3381/360 2236/3382/360 2216/3359/360 +f 2211/3383/362 2237/3384/362 2233/3377/362 +f 2238/3385/361 2239/3386/361 2240/3387/361 +f 2241/3388/359 2242/3389/359 2243/3390/359 +f 2244/3391/360 2245/3392/360 2246/3393/360 +f 2247/3394/367 2248/3395/367 2249/3396/367 +f 2250/3397/368 2251/3398/368 2252/3399/368 +f 2253/3400/358 2254/3401/358 2255/3402/358 +f 2256/3403/369 2254/3404/369 2257/3405/369 +f 2258/3406/357 2256/3403/357 2259/3407/357 +f 2259/3407/370 2257/3408/370 2253/3409/370 +f 2260/3410/358 2261/3411/358 2262/3412/358 +f 2263/3413/357 2264/3414/357 2265/3415/357 +f 2260/3416/371 2266/3417/371 2267/3418/371 +f 2265/3415/372 2260/3419/372 2262/3420/372 +f 2255/3421/360 2268/3422/360 2269/3423/360 +f 2261/3424/359 2270/3425/359 2271/3426/359 +f 2255/3427/372 2272/3428/372 2258/3406/372 +f 2261/3429/370 2266/3417/370 2263/3413/370 +f 2273/3430/362 2259/3431/362 2253/3432/362 +f 2274/3433/361 2265/3434/361 2262/3435/361 +f 2261/3436/358 2273/3437/358 2255/3438/358 +f 2275/3439/357 2263/3440/357 2276/3441/357 +f 2271/3426/370 2275/3442/370 2273/3443/370 +f 2269/3423/372 2276/3444/372 2274/3445/372 +f 2277/3446/372 2278/3447/372 2279/3448/372 +f 2280/3449/361 2281/3450/361 2282/3451/361 +f 2283/3452/370 2284/3453/370 2285/3454/370 +f 2284/3455/357 2286/3456/357 2278/3457/357 +f 2287/3458/358 2285/3459/358 2288/3460/358 +f 2289/3461/361 2290/3462/361 2291/3463/361 +f 2292/3464/362 2293/3465/362 2294/3466/362 +f 2294/3466/360 2295/3467/360 2296/3468/360 +f 2296/3469/361 2297/3470/361 2298/3471/361 +f 2299/3472/362 2300/3473/362 2301/3474/362 +f 2301/3474/360 2302/3475/360 2303/3476/360 +f 2282/3451/359 2304/3477/359 2305/3478/359 +f 2306/3479/359 2307/3480/359 2299/3472/359 +f 2303/3481/361 2308/3482/361 2306/3479/361 +f 2309/3483/360 2310/3484/360 2289/3485/360 +f 2311/3486/360 2312/3487/360 2280/3488/360 +f 2291/3463/359 2313/3489/359 2314/3490/359 +f 2314/3490/362 2315/3491/362 2309/3483/362 +f 2305/3478/362 2316/3492/362 2311/3486/362 +f 2298/3471/359 2317/3493/359 2292/3464/359 +f 2318/3494/372 2319/3495/372 2320/3496/372 +f 2321/3497/370 2322/3498/370 2323/3499/370 +f 2324/3500/369 2325/3501/369 2326/3502/369 +f 2327/3503/371 2328/3504/371 2329/3505/371 +f 2279/3506/361 2330/3507/361 2331/3508/361 +f 2285/3509/362 2332/3510/362 2333/3511/362 +f 2287/3512/370 2334/3513/370 2286/3514/370 +f 2288/3515/372 2335/3516/372 2336/3517/372 +f 2287/3518/359 2337/3519/359 2283/3452/359 +f 2288/3520/360 2338/3521/360 2277/3446/360 +f 2339/3522/358 2340/3523/358 2341/3524/358 +f 2342/3525/357 2343/3526/357 2344/3527/357 +f 2345/3528/370 2342/3529/370 2340/3530/370 +f 2346/3531/372 2344/3532/372 2347/3533/372 +f 2347/3534/361 2348/3535/361 2349/3536/361 +f 2340/3537/362 2350/3538/362 2351/3539/362 +f 2349/3540/371 2343/3526/371 2339/3541/371 +f 2351/3542/369 2352/3543/369 2341/3544/369 +f 2339/3541/359 2353/3545/359 2345/3528/359 +f 2341/3544/360 2354/3546/360 2346/3531/360 +f 2330/3547/372 2355/3548/372 2331/3549/372 +f 2355/3550/371 2334/3513/371 2356/3551/371 +f 2286/3514/357 2357/3552/357 2330/3547/357 +f 2355/3553/358 2287/3554/358 2331/3555/358 +f 2332/3556/370 2358/3557/370 2333/3558/370 +f 2336/3517/357 2359/3559/357 2332/3556/357 +f 2359/3559/369 2360/3560/369 2358/3561/369 +f 2333/3562/358 2360/3563/358 2288/3564/358 +f 2361/3565/359 2362/3566/359 2363/3567/359 +f 2364/3568/360 2365/3569/360 2366/3570/360 +f 2367/3571/361 2364/3568/361 2362/3566/361 +f 2363/3567/362 2365/3572/362 2361/3565/362 +f 2361/3565/358 2368/3573/358 2367/3571/358 +f 2362/3566/357 2366/3574/357 2363/3567/357 +f 2369/3575/357 2370/3576/357 2371/3577/357 +f 2372/3578/359 2369/3575/359 2373/3579/359 +f 2374/3580/360 2370/3576/360 2375/3581/360 +f 2375/3582/361 2376/3583/361 2372/3584/361 +f 2373/3585/362 2371/3577/362 2374/3586/362 +f 2377/3587/361 2378/3588/361 2379/3589/361 +f 2378/3588/373 2380/3590/373 2381/3591/373 +f 2382/3592/360 2383/3593/360 2384/3594/360 +f 2380/3590/362 2385/3595/362 2381/3591/362 +f 2382/3592/374 2386/3596/374 2387/3597/374 +f 2388/3598/375 2383/3599/375 2389/3600/375 +f 2390/3601/376 2379/3589/376 2385/3602/376 +f 2387/3597/359 2391/3603/359 2388/3598/359 +f 2392/3604/359 2393/3605/359 2394/3606/359 +f 2395/3607/360 2396/3608/360 2397/3609/360 +f 2397/3609/377 2393/3605/377 2398/3610/377 +f 2392/3604/378 2399/3611/378 2395/3612/378 +f 2400/3613/379 2401/3614/379 2402/3615/379 +f 2403/3616/370 2402/3615/370 2404/3617/370 +f 2405/3618/380 2404/3617/380 2406/3619/380 +f 2407/3620/372 2406/3619/372 2401/3621/372 +f 2408/3622/371 2409/3623/371 2410/3624/371 +f 2411/3625/381 2412/3626/381 2413/3627/381 +f 2414/3628/382 2415/3629/382 2416/3630/382 +f 2417/3631/370 2418/3632/370 2419/3633/370 +f 2420/3634/372 2421/3635/372 2422/3636/372 +f 2423/3637/371 2424/3638/371 2425/3639/371 +f 2426/3640/369 2427/3641/369 2428/3642/369 +f 2429/3643/361 2430/3644/361 2431/3645/361 +f 2432/3646/362 2433/3647/362 2434/3648/362 +f 2435/3649/360 2436/3650/360 2437/3651/360 +f 2438/3652/359 2439/3653/359 2440/3654/359 +f 2441/3655/361 2442/3656/361 2443/3657/361 +f 2444/3658/362 2445/3659/362 2446/3660/362 +f 2447/3661/360 2448/3662/360 2449/3663/360 +f 2450/3664/359 2451/3665/359 2452/3666/359 +f 2453/3667/361 2454/3668/361 2455/3669/361 +f 2456/3670/362 2457/3671/362 2458/3672/362 +f 2459/3673/360 2460/3674/360 2461/3675/360 +f 2462/3676/359 2463/3677/359 2464/3678/359 +f 2465/3679/361 2466/3680/361 2467/3681/361 +f 2468/3682/362 2469/3683/362 2470/3684/362 +f 2471/3685/360 2472/3686/360 2473/3687/360 +f 2474/3688/359 2475/3689/359 2476/3690/359 +f 2477/3691/369 2478/3692/369 2479/3693/369 +f 2480/3694/372 2477/3691/372 2409/3623/372 +f 2410/3624/370 2478/3695/370 2408/3622/370 +f 2408/3622/358 2481/3696/358 2480/3694/358 +f 2409/3623/357 2479/3697/357 2410/3624/357 +f 2482/3698/357 2483/3699/357 2484/3700/357 +f 2485/3701/371 2482/3698/371 2486/3702/371 +f 2487/3703/369 2483/3699/369 2488/3704/369 +f 2488/3705/372 2489/3706/372 2485/3707/372 +f 2486/3708/370 2484/3700/370 2487/3709/370 +f 2490/3710/372 2491/3711/372 2492/3712/372 +f 2491/3711/383 2493/3713/383 2494/3714/383 +f 2495/3715/369 2496/3716/369 2497/3717/369 +f 2493/3713/370 2498/3718/370 2494/3714/370 +f 2495/3715/384 2499/3719/384 2500/3720/384 +f 2501/3721/385 2496/3722/385 2502/3723/385 +f 2503/3724/386 2492/3712/386 2498/3725/386 +f 2500/3720/371 2504/3726/371 2501/3721/371 +f 2505/3727/371 2506/3728/371 2507/3729/371 +f 2508/3730/369 2509/3731/369 2510/3732/369 +f 2510/3732/387 2506/3728/387 2511/3733/387 +f 2505/3727/388 2512/3734/388 2508/3735/388 +f 2513/3736/370 2514/3737/370 2515/3738/370 +f 2516/3739/372 2517/3740/372 2518/3741/372 +f 2519/3742/371 2516/3739/371 2514/3737/371 +f 2515/3738/369 2517/3743/369 2513/3736/369 +f 2513/3736/358 2520/3744/358 2519/3742/358 +f 2515/3738/357 2516/3745/357 2518/3746/357 +f 2521/3747/357 2522/3748/357 2523/3749/357 +f 2524/3750/370 2521/3747/370 2525/3751/370 +f 2526/3752/372 2522/3748/372 2527/3753/372 +f 2527/3754/371 2528/3755/371 2524/3756/371 +f 2525/3757/369 2523/3749/369 2526/3758/369 +f 2529/3759/371 2530/3760/371 2531/3761/371 +f 2530/3760/389 2532/3762/389 2533/3763/389 +f 2534/3764/372 2535/3765/372 2536/3766/372 +f 2532/3762/369 2537/3767/369 2533/3763/369 +f 2534/3764/390 2538/3768/390 2539/3769/390 +f 2540/3770/391 2535/3771/391 2541/3772/391 +f 2542/3773/392 2531/3761/392 2537/3774/392 +f 2539/3769/370 2543/3775/370 2540/3770/370 +f 2544/3776/370 2545/3777/370 2546/3778/370 +f 2547/3779/372 2548/3780/372 2549/3781/372 +f 2550/3782/393 2548/3780/393 2545/3777/393 +f 2544/3776/394 2551/3783/394 2547/3784/394 +f 2552/3785/360 2553/3786/360 2554/3787/360 +f 2555/3788/359 2556/3789/359 2557/3790/359 +f 2558/3791/362 2555/3788/362 2553/3786/362 +f 2554/3787/361 2556/3792/361 2552/3785/361 +f 2552/3785/358 2559/3793/358 2558/3791/358 +f 2553/3786/357 2557/3794/357 2554/3787/357 +f 2560/3795/357 2561/3796/357 2562/3797/357 +f 2563/3798/360 2560/3795/360 2564/3799/360 +f 2565/3800/359 2561/3796/359 2566/3801/359 +f 2566/3802/362 2567/3803/362 2563/3804/362 +f 2564/3805/361 2562/3797/361 2565/3806/361 +f 2568/3807/362 2569/3808/362 2570/3809/362 +f 2569/3808/395 2571/3810/395 2572/3811/395 +f 2573/3812/359 2574/3813/359 2575/3814/359 +f 2571/3810/361 2576/3815/361 2572/3811/361 +f 2573/3812/378 2577/3816/378 2578/3817/378 +f 2579/3818/377 2574/3819/377 2580/3820/377 +f 2576/3821/396 2568/3807/396 2570/3809/396 +f 2578/3817/360 2581/3822/360 2579/3818/360 +f 2582/3823/360 2583/3824/360 2584/3825/360 +f 2585/3826/359 2586/3827/359 2587/3828/359 +f 2587/3828/375 2583/3824/375 2588/3829/375 +f 2582/3823/374 2589/3830/374 2585/3831/374 +f 2590/3832/372 2591/3833/372 2592/3834/372 +f 2593/3835/370 2594/3836/370 2595/3837/370 +f 2596/3838/369 2593/3835/369 2591/3833/369 +f 2592/3834/371 2594/3839/371 2590/3832/371 +f 2590/3832/358 2597/3840/358 2596/3838/358 +f 2592/3834/357 2593/3841/357 2595/3842/357 +f 2598/3843/357 2599/3844/357 2600/3845/357 +f 2601/3846/372 2598/3843/372 2602/3847/372 +f 2603/3848/370 2599/3844/370 2604/3849/370 +f 2604/3850/369 2605/3851/369 2601/3852/369 +f 2602/3853/371 2600/3845/371 2603/3854/371 +f 2606/3855/369 2607/3856/369 2608/3857/369 +f 2607/3856/397 2609/3858/397 2610/3859/397 +f 2611/3860/370 2612/3861/370 2613/3862/370 +f 2609/3858/371 2614/3863/371 2610/3859/371 +f 2611/3860/394 2615/3864/394 2616/3865/394 +f 2617/3866/393 2612/3867/393 2618/3868/393 +f 2614/3869/398 2606/3855/398 2608/3857/398 +f 2616/3865/372 2619/3870/372 2617/3866/372 +f 2620/3871/372 2621/3872/372 2622/3873/372 +f 2623/3874/370 2624/3875/370 2625/3876/370 +f 2626/3877/391 2624/3875/391 2621/3872/391 +f 2620/3871/390 2627/3878/390 2623/3879/390 +f 2628/3880/369 2629/3881/369 2630/3882/369 +f 2631/3883/371 2632/3884/371 2633/3885/371 +f 2634/3886/370 2631/3883/370 2629/3881/370 +f 2630/3882/372 2632/3887/372 2628/3880/372 +f 2628/3880/358 2635/3888/358 2634/3886/358 +f 2629/3881/357 2633/3889/357 2630/3882/357 +f 2636/3890/371 2637/3891/371 2638/3892/371 +f 2636/3890/388 2639/3893/388 2640/3894/388 +f 2641/3895/387 2637/3896/387 2642/3897/387 +f 2640/3894/369 2643/3898/369 2641/3895/369 +f 2644/3899/369 2645/3900/369 2646/3901/369 +f 2647/3902/371 2648/3903/371 2649/3904/371 +f 2649/3904/385 2645/3900/385 2650/3905/385 +f 2644/3899/384 2651/3906/384 2647/3907/384 +f 1993/3077/357 2652/3908/357 1994/3078/357 +f 1996/3080/357 2005/3105/357 1997/3081/357 +f 1999/3083/358 2010/3108/358 2000/3084/358 +f 1997/3081/359 1999/3083/359 2001/3085/359 +f 2003/3087/360 2006/3100/360 2004/3088/360 +f 2002/3090/361 2001/3099/361 2006/3091/361 +f 2005/3093/362 2004/3102/362 1999/3094/362 +f 2000/3096/361 2013/3909/361 2007/3097/361 +f 2001/3099/358 2000/3096/358 2008/3098/358 +f 2006/3100/358 2008/3110/358 2009/3101/358 +f 2004/3102/358 2009/3106/358 2010/3103/358 +f 2011/3104/357 2003/3113/357 2005/3105/357 +f 2009/3106/362 2014/3910/362 2012/3107/362 +f 2010/3108/359 2012/3911/359 2013/3109/359 +f 2008/3110/360 2007/3912/360 2014/3111/360 +f 2015/3112/357 2002/3086/357 2003/3113/357 +f 1998/3082/357 1997/3081/357 2002/3086/357 +f 2016/3114/363 2017/3115/363 1996/3080/363 +f 2017/3115/364 2018/3116/364 2011/3104/364 +f 2018/3116/365 2019/3117/365 2015/3112/365 +f 2019/3117/366 2016/3114/366 1998/3082/366 +f 2020/3118/361 2653/3913/361 2021/3119/361 +f 2023/3121/357 2026/3124/357 2024/3122/357 +f 2653/3914/359 2020/3915/359 2027/3125/359 +f 2020/3915/359 2026/3124/359 2027/3125/359 +f 2025/3123/362 2028/3916/362 2027/3126/362 +f 2022/3120/363 2024/3122/363 2026/3124/363 +f 2028/3129/360 2025/3123/360 2024/3122/360 +f 2024/3122/360 2022/3127/360 2028/3129/360 +f 2031/3132/361 2654/3917/361 2655/3918/361 +f 2655/3918/361 2033/3919/361 2031/3132/361 +f 2033/3919/361 2029/3130/361 2031/3132/361 +f 2032/3133/360 2029/3130/360 2033/3134/360 +f 2035/3136/362 2037/3139/362 2032/3133/362 +f 2035/3140/359 2656/3920/359 2036/3138/359 +f 2656/3920/359 2657/3921/359 2036/3138/359 +f 2036/3138/359 2658/3922/359 2037/3139/359 +f 2037/3139/357 2658/3922/357 2038/3141/357 +f 2038/3141/357 2030/3131/357 2029/3130/357 +f 2032/3133/357 2037/3139/357 2038/3141/357 +f 2039/3142/358 2046/3923/358 2040/3143/358 +f 2040/3145/362 2043/3148/362 2042/3146/362 +f 2043/3148/357 2045/3151/357 2044/3149/357 +f 2039/3150/361 2044/3149/361 2045/3151/361 +f 2047/3153/362 2659/3924/362 2048/3154/362 +f 2041/3156/360 2042/3146/360 2044/3149/360 +f 2046/3158/359 2045/3151/359 2043/3148/359 +f 2050/3160/362 2057/3167/362 2051/3161/362 +f 2053/3163/359 2059/3169/359 2054/3164/359 +f 2056/3166/359 2061/3171/359 2057/3167/359 +f 2058/3168/361 2078/3189/361 2059/3169/361 +f 2060/3170/361 2080/3193/361 2061/3171/361 +f 2062/3172/360 2069/3179/360 2063/3173/360 +f 2065/3175/360 2071/3181/360 2066/3176/360 +f 2068/3178/362 2073/3183/362 2069/3179/362 +f 2070/3180/362 2075/3185/362 2071/3181/362 +f 2072/3182/359 2076/3925/359 2073/3183/359 +f 2074/3184/359 2079/3191/359 2075/3185/359 +f 2064/3174/361 2063/3173/361 2076/3186/361 +f 2077/3188/360 2081/3195/360 2078/3189/360 +f 2067/3190/361 2066/3926/361 2079/3191/361 +f 2052/3192/360 2051/3927/360 2080/3193/360 +f 2055/3194/362 2054/3928/362 2081/3195/362 +f 2082/3196/361 2660/3929/361 2083/3197/361 +f 2085/3199/359 2661/3930/359 2086/3200/359 +f 2088/3202/360 2662/3931/360 2089/3203/360 +f 2091/3205/358 2098/3932/358 2092/3206/358 +f 2092/3208/362 2095/3211/362 2094/3209/362 +f 2095/3211/357 2097/3214/357 2096/3212/357 +f 2091/3213/361 2096/3212/361 2097/3214/361 +f 2099/3216/362 2663/3933/362 2100/3217/362 +f 2093/3219/360 2094/3209/360 2096/3212/360 +f 2098/3221/359 2097/3214/359 2095/3211/359 +f 2102/3223/362 2109/3230/362 2103/3224/362 +f 2105/3226/359 2111/3232/359 2106/3227/359 +f 2108/3229/359 2113/3234/359 2109/3230/359 +f 2110/3231/361 2130/3252/361 2111/3232/361 +f 2112/3233/361 2132/3256/361 2113/3234/361 +f 2114/3235/360 2121/3242/360 2115/3236/360 +f 2117/3238/360 2123/3244/360 2118/3239/360 +f 2120/3241/362 2125/3246/362 2121/3242/362 +f 2122/3243/362 2127/3248/362 2123/3244/362 +f 2124/3245/359 2128/3934/359 2125/3246/359 +f 2126/3247/359 2131/3254/359 2127/3248/359 +f 2116/3237/361 2115/3236/361 2128/3249/361 +f 2129/3251/360 2133/3258/360 2130/3252/360 +f 2119/3253/361 2118/3935/361 2131/3254/361 +f 2104/3255/360 2103/3936/360 2132/3256/360 +f 2107/3257/362 2106/3937/362 2133/3258/362 +f 2134/3259/361 2664/3938/361 2135/3260/361 +f 2137/3262/359 2665/3939/359 2138/3263/359 +f 2140/3265/360 2666/3940/360 2141/3266/360 +f 2143/3268/358 2150/3941/358 2144/3269/358 +f 2144/3271/362 2147/3274/362 2146/3272/362 +f 2147/3274/357 2149/3277/357 2148/3275/357 +f 2143/3276/361 2148/3275/361 2149/3277/361 +f 2151/3279/362 2667/3942/362 2152/3280/362 +f 2145/3282/360 2146/3272/360 2148/3275/360 +f 2150/3284/359 2149/3277/359 2147/3274/359 +f 2154/3286/362 2161/3293/362 2155/3287/362 +f 2157/3289/359 2163/3295/359 2158/3290/359 +f 2160/3292/359 2165/3297/359 2161/3293/359 +f 2162/3294/361 2182/3315/361 2163/3295/361 +f 2164/3296/361 2184/3319/361 2165/3297/361 +f 2166/3298/360 2173/3305/360 2167/3299/360 +f 2169/3301/360 2175/3307/360 2170/3302/360 +f 2172/3304/362 2177/3309/362 2173/3305/362 +f 2174/3306/362 2179/3311/362 2175/3307/362 +f 2176/3308/359 2180/3943/359 2177/3309/359 +f 2178/3310/359 2183/3317/359 2179/3311/359 +f 2168/3300/361 2167/3299/361 2180/3312/361 +f 2181/3314/360 2185/3321/360 2182/3315/360 +f 2171/3316/361 2170/3944/361 2183/3317/361 +f 2156/3318/360 2155/3945/360 2184/3319/360 +f 2159/3320/362 2158/3946/362 2185/3321/362 +f 2186/3322/361 2668/3947/361 2187/3323/361 +f 2189/3325/359 2669/3948/359 2190/3326/359 +f 2192/3328/360 2670/3949/360 2193/3329/360 +f 2195/3331/358 2202/3950/358 2196/3332/358 +f 2196/3334/362 2199/3337/362 2198/3335/362 +f 2199/3337/357 2201/3340/357 2200/3338/357 +f 2195/3339/361 2200/3338/361 2201/3340/361 +f 2203/3342/362 2671/3951/362 2204/3343/362 +f 2197/3345/360 2198/3335/360 2200/3338/360 +f 2202/3347/359 2201/3340/359 2199/3337/359 +f 2206/3349/362 2213/3356/362 2207/3350/362 +f 2209/3352/359 2215/3358/359 2210/3353/359 +f 2212/3355/359 2217/3360/359 2213/3356/359 +f 2214/3357/361 2234/3378/361 2215/3358/361 +f 2216/3359/361 2236/3382/361 2217/3360/361 +f 2218/3361/360 2225/3368/360 2219/3362/360 +f 2221/3364/360 2227/3370/360 2222/3365/360 +f 2224/3367/362 2229/3372/362 2225/3368/362 +f 2226/3369/362 2231/3374/362 2227/3370/362 +f 2228/3371/359 2232/3952/359 2229/3372/359 +f 2230/3373/359 2235/3380/359 2231/3374/359 +f 2220/3363/361 2219/3362/361 2232/3375/361 +f 2233/3377/360 2237/3384/360 2234/3378/360 +f 2223/3379/361 2222/3953/361 2235/3380/361 +f 2208/3381/360 2207/3954/360 2236/3382/360 +f 2211/3383/362 2210/3955/362 2237/3384/362 +f 2238/3385/361 2672/3956/361 2239/3386/361 +f 2241/3388/359 2673/3957/359 2242/3389/359 +f 2244/3391/360 2674/3958/360 2245/3392/360 +f 2253/3400/358 2257/3959/358 2254/3401/358 +f 2256/3403/369 2272/3428/369 2254/3404/369 +f 2258/3406/357 2272/3428/357 2256/3403/357 +f 2259/3407/370 2256/3403/370 2257/3408/370 +f 2260/3410/358 2267/3960/358 2261/3411/358 +f 2263/3413/357 2266/3417/357 2264/3414/357 +f 2260/3416/371 2264/3414/371 2266/3417/371 +f 2265/3415/372 2264/3414/372 2260/3419/372 +f 2255/3421/360 2258/3961/360 2268/3422/360 +f 2261/3424/359 2263/3440/359 2270/3425/359 +f 2255/3427/372 2254/3962/372 2272/3428/372 +f 2261/3429/370 2267/3963/370 2266/3417/370 +f 2273/3430/362 2275/3439/362 2259/3431/362 +f 2274/3433/361 2276/3441/361 2265/3434/361 +f 2255/3438/358 2269/3964/358 2274/3965/358 +f 2274/3965/358 2262/3966/358 2261/3436/358 +f 2261/3436/358 2271/3967/358 2273/3437/358 +f 2273/3437/358 2253/3968/358 2255/3438/358 +f 2255/3438/358 2274/3965/358 2261/3436/358 +f 2276/3441/357 2268/3422/357 2258/3961/357 +f 2258/3961/357 2259/3431/357 2275/3439/357 +f 2275/3439/357 2270/3425/357 2263/3440/357 +f 2263/3440/357 2265/3434/357 2276/3441/357 +f 2276/3441/357 2258/3961/357 2275/3439/357 +f 2271/3426/370 2270/3425/370 2275/3442/370 +f 2269/3423/372 2268/3422/372 2276/3444/372 +f 2277/3446/372 2338/3521/372 2278/3447/372 +f 2280/3449/361 2312/3969/361 2281/3450/361 +f 2283/3452/370 2337/3519/370 2284/3453/370 +f 2278/3457/357 2338/3521/357 2336/3970/357 +f 2336/3970/357 2332/3510/357 2284/3455/357 +f 2284/3455/357 2337/3519/357 2286/3456/357 +f 2286/3456/357 2330/3507/357 2278/3457/357 +f 2278/3457/357 2336/3970/357 2284/3455/357 +f 2288/3460/358 2277/3971/358 2279/3972/358 +f 2279/3972/358 2331/3973/358 2287/3458/358 +f 2287/3458/358 2283/3974/358 2285/3459/358 +f 2285/3459/358 2333/3975/358 2288/3460/358 +f 2288/3460/358 2279/3972/358 2287/3458/358 +f 2289/3461/361 2310/3976/361 2290/3462/361 +f 2292/3464/362 2317/3493/362 2293/3465/362 +f 2294/3466/360 2293/3465/360 2295/3467/360 +f 2296/3469/361 2295/3977/361 2297/3470/361 +f 2299/3472/362 2307/3480/362 2300/3473/362 +f 2301/3474/360 2300/3473/360 2302/3475/360 +f 2282/3451/359 2281/3450/359 2304/3477/359 +f 2306/3479/359 2308/3482/359 2307/3480/359 +f 2303/3481/361 2302/3978/361 2308/3482/361 +f 2309/3483/360 2315/3491/360 2310/3484/360 +f 2311/3486/360 2316/3492/360 2312/3487/360 +f 2291/3463/359 2290/3462/359 2313/3489/359 +f 2314/3490/362 2313/3489/362 2315/3491/362 +f 2305/3478/362 2304/3477/362 2316/3492/362 +f 2298/3471/359 2297/3470/359 2317/3493/359 +f 2318/3494/372 2675/3979/372 2319/3495/372 +f 2321/3497/370 2676/3980/370 2322/3498/370 +f 2324/3500/369 2677/3981/369 2325/3501/369 +f 2327/3503/371 2678/3982/371 2328/3504/371 +f 2279/3506/361 2278/3457/361 2330/3507/361 +f 2285/3509/362 2284/3455/362 2332/3510/362 +f 2287/3512/370 2356/3983/370 2334/3513/370 +f 2288/3515/372 2360/3984/372 2335/3516/372 +f 2287/3518/359 2286/3456/359 2337/3519/359 +f 2288/3520/360 2336/3970/360 2338/3521/360 +f 2341/3524/358 2346/3985/358 2347/3986/358 +f 2347/3986/358 2349/3987/358 2339/3522/358 +f 2339/3522/358 2345/3988/358 2340/3523/358 +f 2340/3523/358 2351/3989/358 2341/3524/358 +f 2341/3524/358 2347/3986/358 2339/3522/358 +f 2344/3527/357 2354/3546/357 2352/3543/357 +f 2352/3543/357 2350/3538/357 2342/3525/357 +f 2342/3525/357 2353/3545/357 2343/3526/357 +f 2343/3526/357 2348/3535/357 2344/3527/357 +f 2344/3527/357 2352/3543/357 2342/3525/357 +f 2345/3528/370 2353/3545/370 2342/3529/370 +f 2346/3531/372 2354/3546/372 2344/3532/372 +f 2347/3534/361 2344/3527/361 2348/3535/361 +f 2340/3537/362 2342/3525/362 2350/3538/362 +f 2349/3540/371 2348/3990/371 2343/3526/371 +f 2351/3542/369 2350/3991/369 2352/3543/369 +f 2339/3541/359 2343/3526/359 2353/3545/359 +f 2341/3544/360 2352/3543/360 2354/3546/360 +f 2330/3547/372 2357/3552/372 2355/3548/372 +f 2355/3550/371 2357/3552/371 2334/3513/371 +f 2286/3514/357 2334/3513/357 2357/3552/357 +f 2355/3553/358 2356/3992/358 2287/3554/358 +f 2332/3556/370 2359/3559/370 2358/3557/370 +f 2336/3517/357 2335/3516/357 2359/3559/357 +f 2359/3559/369 2335/3516/369 2360/3560/369 +f 2333/3562/358 2358/3993/358 2360/3563/358 +f 2361/3565/359 2367/3571/359 2362/3566/359 +f 2364/3568/360 2368/3994/360 2365/3569/360 +f 2367/3571/361 2368/3994/361 2364/3568/361 +f 2363/3567/362 2366/3995/362 2365/3572/362 +f 2361/3565/358 2365/3996/358 2368/3573/358 +f 2362/3566/357 2364/3997/357 2366/3574/357 +f 2369/3575/357 2376/3583/357 2370/3576/357 +f 2372/3578/359 2376/3583/359 2369/3575/359 +f 2374/3580/360 2371/3577/360 2370/3576/360 +f 2375/3582/361 2370/3576/361 2376/3583/361 +f 2373/3585/362 2369/3575/362 2371/3577/362 +f 2377/3587/361 2679/3998/361 2378/3588/361 +f 2378/3588/373 2679/3998/373 2380/3590/373 +f 2382/3592/360 2389/3999/360 2383/3593/360 +f 2380/3590/362 2390/4000/362 2385/3595/362 +f 2382/3592/374 2384/3594/374 2386/3596/374 +f 2388/3598/375 2391/3603/375 2383/3599/375 +f 2390/3601/376 2377/3587/376 2379/3589/376 +f 2387/3597/359 2386/3596/359 2391/3603/359 +f 2392/3604/359 2398/3610/359 2393/3605/359 +f 2395/3607/360 2399/4001/360 2396/3608/360 +f 2397/3609/377 2396/3608/377 2393/3605/377 +f 2392/3604/378 2394/3606/378 2399/3611/378 +f 2400/3613/379 2407/4002/379 2401/3614/379 +f 2403/3616/370 2400/3613/370 2402/3615/370 +f 2405/3618/380 2403/3616/380 2404/3617/380 +f 2407/3620/372 2405/3618/372 2406/3619/372 +f 2408/3622/371 2480/3694/371 2409/3623/371 +f 2417/3631/370 2680/4003/370 2418/3632/370 +f 2420/3634/372 2681/4004/372 2421/3635/372 +f 2423/3637/371 2682/4005/371 2424/3638/371 +f 2426/3640/369 2683/4006/369 2427/3641/369 +f 2429/3643/361 2684/4007/361 2430/3644/361 +f 2432/3646/362 2685/4008/362 2433/3647/362 +f 2435/3649/360 2686/4009/360 2436/3650/360 +f 2438/3652/359 2687/4010/359 2439/3653/359 +f 2441/3655/361 2688/4011/361 2442/3656/361 +f 2444/3658/362 2689/4012/362 2445/3659/362 +f 2447/3661/360 2690/4013/360 2448/3662/360 +f 2450/3664/359 2691/4014/359 2451/3665/359 +f 2453/3667/361 2692/4015/361 2454/3668/361 +f 2456/3670/362 2693/4016/362 2457/3671/362 +f 2459/3673/360 2694/4017/360 2460/3674/360 +f 2462/3676/359 2695/4018/359 2463/3677/359 +f 2465/3679/361 2696/4019/361 2466/3680/361 +f 2468/3682/362 2697/4020/362 2469/3683/362 +f 2471/3685/360 2698/4021/360 2472/3686/360 +f 2474/3688/359 2699/4022/359 2475/3689/359 +f 2477/3691/369 2481/4023/369 2478/3692/369 +f 2480/3694/372 2481/4023/372 2477/3691/372 +f 2410/3624/370 2479/4024/370 2478/3695/370 +f 2408/3622/358 2478/4025/358 2481/3696/358 +f 2409/3623/357 2477/4026/357 2479/3697/357 +f 2482/3698/357 2489/3706/357 2483/3699/357 +f 2485/3701/371 2489/3706/371 2482/3698/371 +f 2487/3703/369 2484/3700/369 2483/3699/369 +f 2488/3705/372 2483/3699/372 2489/3706/372 +f 2486/3708/370 2482/3698/370 2484/3700/370 +f 2490/3710/372 2700/4027/372 2491/3711/372 +f 2491/3711/383 2700/4027/383 2493/3713/383 +f 2495/3715/369 2502/4028/369 2496/3716/369 +f 2493/3713/370 2503/4029/370 2498/3718/370 +f 2495/3715/384 2497/3717/384 2499/3719/384 +f 2501/3721/385 2504/3726/385 2496/3722/385 +f 2503/3724/386 2490/3710/386 2492/3712/386 +f 2500/3720/371 2499/3719/371 2504/3726/371 +f 2505/3727/371 2511/3733/371 2506/3728/371 +f 2508/3730/369 2512/4030/369 2509/3731/369 +f 2510/3732/387 2509/3731/387 2506/3728/387 +f 2505/3727/388 2507/3729/388 2512/3734/388 +f 2513/3736/370 2519/3742/370 2514/3737/370 +f 2516/3739/372 2520/4031/372 2517/3740/372 +f 2519/3742/371 2520/4031/371 2516/3739/371 +f 2515/3738/369 2518/4032/369 2517/3743/369 +f 2513/3736/358 2517/4033/358 2520/3744/358 +f 2515/3738/357 2514/3737/357 2516/3745/357 +f 2521/3747/357 2528/3755/357 2522/3748/357 +f 2524/3750/370 2528/3755/370 2521/3747/370 +f 2526/3752/372 2523/3749/372 2522/3748/372 +f 2527/3754/371 2522/3748/371 2528/3755/371 +f 2525/3757/369 2521/3747/369 2523/3749/369 +f 2529/3759/371 2701/4034/371 2530/3760/371 +f 2530/3760/389 2701/4034/389 2532/3762/389 +f 2534/3764/372 2541/4035/372 2535/3765/372 +f 2532/3762/369 2542/4036/369 2537/3767/369 +f 2534/3764/390 2536/3766/390 2538/3768/390 +f 2540/3770/391 2543/3775/391 2535/3771/391 +f 2542/3773/392 2529/3759/392 2531/3761/392 +f 2539/3769/370 2538/3768/370 2543/3775/370 +f 2544/3776/370 2550/3782/370 2545/3777/370 +f 2547/3779/372 2551/4037/372 2548/3780/372 +f 2550/3782/393 2549/3781/393 2548/3780/393 +f 2544/3776/394 2546/3778/394 2551/3783/394 +f 2552/3785/360 2558/3791/360 2553/3786/360 +f 2555/3788/359 2559/4038/359 2556/3789/359 +f 2558/3791/362 2559/4038/362 2555/3788/362 +f 2554/3787/361 2557/4039/361 2556/3792/361 +f 2552/3785/358 2556/4040/358 2559/3793/358 +f 2553/3786/357 2555/4041/357 2557/3794/357 +f 2560/3795/357 2567/3803/357 2561/3796/357 +f 2563/3798/360 2567/3803/360 2560/3795/360 +f 2565/3800/359 2562/3797/359 2561/3796/359 +f 2566/3802/362 2561/3796/362 2567/3803/362 +f 2564/3805/361 2560/3795/361 2562/3797/361 +f 2568/3807/362 2702/4042/362 2569/3808/362 +f 2569/3808/395 2702/4042/395 2571/3810/395 +f 2573/3812/359 2580/4043/359 2574/3813/359 +f 2571/3810/361 2703/4044/361 2576/3815/361 +f 2573/3812/378 2575/3814/378 2577/3816/378 +f 2579/3818/377 2581/3822/377 2574/3819/377 +f 2576/3821/396 2703/4045/396 2568/3807/396 +f 2578/3817/360 2577/3816/360 2581/3822/360 +f 2582/3823/360 2588/3829/360 2583/3824/360 +f 2585/3826/359 2589/4046/359 2586/3827/359 +f 2587/3828/375 2586/3827/375 2583/3824/375 +f 2582/3823/374 2584/3825/374 2589/3830/374 +f 2590/3832/372 2596/3838/372 2591/3833/372 +f 2593/3835/370 2597/4047/370 2594/3836/370 +f 2596/3838/369 2597/4047/369 2593/3835/369 +f 2592/3834/371 2595/4048/371 2594/3839/371 +f 2590/3832/358 2594/4049/358 2597/3840/358 +f 2592/3834/357 2591/3833/357 2593/3841/357 +f 2598/3843/357 2605/3851/357 2599/3844/357 +f 2601/3846/372 2605/3851/372 2598/3843/372 +f 2603/3848/370 2600/3845/370 2599/3844/370 +f 2604/3850/369 2599/3844/369 2605/3851/369 +f 2602/3853/371 2598/3843/371 2600/3845/371 +f 2606/3855/369 2704/4050/369 2607/3856/369 +f 2607/3856/397 2704/4050/397 2609/3858/397 +f 2611/3860/370 2618/4051/370 2612/3861/370 +f 2609/3858/371 2705/4052/371 2614/3863/371 +f 2611/3860/394 2613/3862/394 2615/3864/394 +f 2617/3866/393 2619/3870/393 2612/3867/393 +f 2614/3869/398 2705/4053/398 2606/3855/398 +f 2616/3865/372 2615/3864/372 2619/3870/372 +f 2620/3871/372 2626/3877/372 2621/3872/372 +f 2623/3874/370 2627/4054/370 2624/3875/370 +f 2626/3877/391 2625/3876/391 2624/3875/391 +f 2620/3871/390 2622/3873/390 2627/3878/390 +f 2628/3880/369 2634/3886/369 2629/3881/369 +f 2631/3883/371 2635/4055/371 2632/3884/371 +f 2634/3886/370 2635/4055/370 2631/3883/370 +f 2630/3882/372 2633/4056/372 2632/3887/372 +f 2628/3880/358 2632/4057/358 2635/3888/358 +f 2629/3881/357 2631/4058/357 2633/3889/357 +f 2636/3890/371 2642/4059/371 2637/3891/371 +f 2636/3890/388 2638/3892/388 2639/3893/388 +f 2641/3895/387 2643/3898/387 2637/3896/387 +f 2640/3894/369 2639/3893/369 2643/3898/369 +f 2644/3899/369 2650/3905/369 2645/3900/369 +f 2647/3902/371 2651/4060/371 2648/3903/371 +f 2649/3904/385 2648/3903/385 2645/3900/385 +f 2644/3899/384 2646/3901/384 2651/3906/384 +o Atlas_Erector +v 0.750000 3.500000 -4.250000 +v 1.250000 3.500000 -3.750000 +v 0.750000 3.500000 -3.750000 +v -1.250000 3.500000 -4.250000 +v -0.750000 3.500000 -3.750000 +v -1.250000 3.500000 -3.750000 v 0.750000 3.500000 -2.750000 -v 0.750000 3.500000 -3.250000 -v 0.250000 3.500000 -3.250000 -v -0.250000 1.500000 -2.750000 -v -0.750000 1.500000 -2.750000 -v -0.750000 1.500000 -3.250000 -v -0.250000 1.500000 -3.250000 +v 1.250000 3.500000 -2.250000 +v 0.750000 3.500000 -2.250000 +v -1.250000 3.500000 -2.750000 +v -0.750000 3.500000 -2.250000 +v -1.250000 3.500000 -2.250000 +v 1.250000 14.750000 -3.749999 +v 0.750000 14.750000 -4.250000 +v 0.750000 14.750000 -3.749999 +v -0.750000 14.750000 -3.749999 +v -1.250000 14.750000 -4.250000 +v -1.250000 14.750000 -3.749999 +v 1.250000 14.750000 -2.249999 +v 0.750000 14.750000 -2.749999 +v 0.750000 14.750000 -2.249999 +v -0.750000 14.750000 -2.249999 +v -1.250000 14.750000 -2.749999 +v -1.250000 14.750000 -2.249999 +v 1.250000 3.500000 -4.250000 +v 1.250000 3.500000 -2.750000 +v 1.250000 14.750000 -4.250000 +v 1.250000 14.750000 -2.749999 +v -0.750000 3.500000 -4.250000 v -0.750000 3.500000 -2.750000 -v -0.250000 3.500000 -2.750000 -v -0.250000 3.500000 -3.250000 -v -0.750000 3.500000 -3.250000 -v 0.312500 3.500000 -2.812500 -v 0.687500 3.500000 -2.812500 -v 0.312500 3.500000 -3.187500 -v 0.687500 3.500000 -3.187500 -v 0.312500 4.500000 -2.812500 -v 0.687500 4.500000 -2.812500 -v 0.312500 4.500000 -3.187500 -v 0.687500 4.500000 -3.187500 -v -0.687500 3.500000 -2.812500 -v -0.312500 3.500000 -2.812500 -v -0.687500 3.500000 -3.187500 -v -0.312500 3.500000 -3.187500 -v -0.687500 4.500000 -2.812500 -v -0.312500 4.500000 -2.812500 -v -0.687500 4.500000 -3.187500 -v -0.312500 4.500000 -3.187500 -vt 0.794872 0.224719 -vt 0.820513 0.179775 -vt 0.820513 0.224719 -vt 0.897436 0.000000 -vt 0.871795 0.179775 -vt 0.871795 0.000000 -vt 0.820513 0.000000 -vt 0.794872 0.179775 -vt 0.794872 0.000000 -vt 0.846154 0.000000 -vt 0.846154 0.179775 -vt 0.794872 0.224719 -vt 0.820513 0.179775 -vt 0.820513 0.224719 -vt 0.897436 0.000000 -vt 0.871795 0.179775 -vt 0.871795 0.000000 -vt 0.820513 0.000000 -vt 0.794872 0.179775 -vt 0.794872 0.000000 -vt 0.846154 0.000000 -vt 0.846154 0.179775 -vt 0.839744 0.269663 -vt 0.820513 0.179775 -vt 0.839744 0.179775 -vt 0.878205 0.269663 -vt 0.858974 0.179775 -vt 0.878205 0.179775 -vt 0.897436 0.269663 -vt 0.897436 0.179775 -vt 0.858974 0.269663 -vt 0.839744 0.269663 -vt 0.820513 0.179775 -vt 0.839744 0.179775 -vt 0.878205 0.269663 -vt 0.858974 0.179775 -vt 0.878205 0.179775 -vt 0.897436 0.269663 -vt 0.897436 0.179775 -vt 0.858974 0.269663 -vt 0.897436 0.179775 -vt 0.897436 0.179775 -vt 0.820513 0.269663 -vt 0.820513 0.269663 -vn 0.0000 1.0000 0.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.0000 1.0000 -s off -f 2815/3786/266 2817/3787/266 2814/3788/266 -f 2813/3789/267 2815/3790/267 2810/3791/267 -f 2812/3792/268 2816/3793/268 2813/3794/268 -f 2811/3795/269 2817/3787/269 2812/3792/269 -f 2810/3791/270 2814/3796/270 2811/3795/270 -f 2823/3797/266 2825/3798/266 2822/3799/266 -f 2821/3800/267 2823/3801/267 2818/3802/267 -f 2820/3803/268 2824/3804/268 2821/3805/268 -f 2819/3806/269 2825/3798/269 2820/3803/269 -f 2818/3802/270 2822/3807/270 2819/3806/270 -f 2832/3808/268 2829/3809/268 2828/3810/268 -f 2831/3811/270 2826/3812/270 2827/3813/270 -f 2833/3814/267 2827/3813/267 2829/3815/267 -f 2830/3816/269 2828/3810/269 2826/3812/269 -f 2840/3817/268 2837/3818/268 2836/3819/268 -f 2839/3820/270 2834/3821/270 2835/3822/270 -f 2841/3823/267 2835/3822/267 2837/3824/267 -f 2838/3825/269 2836/3819/269 2834/3821/269 -f 2815/3786/266 2816/3793/266 2817/3787/266 -f 2813/3789/267 2816/3826/267 2815/3790/267 -f 2812/3792/268 2817/3787/268 2816/3793/268 -f 2811/3795/269 2814/3796/269 2817/3787/269 -f 2810/3791/270 2815/3790/270 2814/3796/270 -f 2823/3797/266 2824/3804/266 2825/3798/266 -f 2821/3800/267 2824/3827/267 2823/3801/267 -f 2820/3803/268 2825/3798/268 2824/3804/268 -f 2819/3806/269 2822/3807/269 2825/3798/269 -f 2818/3802/270 2823/3801/270 2822/3807/270 -f 2832/3808/268 2833/3828/268 2829/3809/268 -f 2831/3811/270 2830/3816/270 2826/3812/270 -f 2833/3814/267 2831/3811/267 2827/3813/267 -f 2830/3816/269 2832/3808/269 2828/3810/269 -f 2840/3817/268 2841/3829/268 2837/3818/268 -f 2839/3820/270 2838/3825/270 2834/3821/270 -f 2841/3823/267 2839/3820/267 2835/3822/267 -f 2838/3825/269 2840/3817/269 2836/3819/269 -o Strong_Erector -v 0.250000 3.500000 -2.750000 -v 0.750000 3.500000 -2.750000 -v 0.750000 3.500000 -3.250000 -v 0.250000 3.500000 -3.250000 -v -0.750000 3.500000 -2.750000 -v -0.250000 3.500000 -2.750000 -v -0.250000 3.500000 -3.250000 -v -0.750000 3.500000 -3.250000 -v 0.250000 10.000000 -2.750000 -v 0.750000 10.000000 -2.750000 -v 0.750000 10.000000 -3.250000 -v 0.250000 10.000000 -3.250000 -v -0.750000 10.000000 -2.750000 -v -0.250000 10.000000 -2.750000 -v -0.250000 10.000000 -3.250000 -v -0.750000 10.000000 -3.250000 -v 0.250000 9.000000 -1.000000 -v 0.250000 9.000000 -3.500000 -v -0.250000 9.000000 -1.000000 -v -0.250000 9.000000 -3.500000 -v 0.250000 8.500000 -3.500000 -v 0.250000 8.500000 -1.000000 -v -0.250000 8.500000 -1.000000 -v -0.250000 8.500000 -3.500000 -v 0.375000 9.125000 -1.000000 -v -0.375000 9.125000 -1.000000 -v 0.375000 8.375000 -1.000000 -v -0.375000 8.375000 -1.000000 -v 0.375000 9.125000 -0.750000 -v -0.375000 9.125000 -0.750000 -v 0.375000 8.375000 -0.750000 -v -0.375000 8.375000 -0.750000 -v -0.375000 3.875000 -0.750000 -v 0.375000 3.875000 -0.750000 -v -0.375000 4.625000 -0.750000 -v 0.375000 4.625000 -0.750000 -v -0.375000 3.875000 -1.000000 -v 0.375000 3.875000 -1.000000 -v -0.375000 4.625000 -1.000000 -v 0.375000 4.625000 -1.000000 -v -0.250000 4.000000 -3.500000 -v -0.250000 4.000000 -1.000000 -v 0.250000 4.000000 -1.000000 -v 0.250000 4.000000 -3.500000 -v -0.250000 4.500000 -3.500000 -v -0.250000 4.500000 -1.000000 -v 0.250000 4.500000 -3.500000 -v 0.250000 4.500000 -1.000000 -v 0.250000 7.000000 -2.750000 -v 0.750000 7.000000 -2.750000 -v -0.750000 7.000000 -2.750000 -v -0.250000 7.000000 -2.750000 -v 0.250000 6.500000 -2.750000 -v 0.750000 6.500000 -2.750000 -v -0.750000 6.500000 -2.750000 -v -0.250000 6.500000 -2.750000 -v 0.250000 7.000000 -1.250000 -v 0.750000 7.000000 -1.250000 -v -0.750000 7.000000 -1.250000 -v -0.250000 7.000000 -1.250000 -v 0.250000 6.500000 -1.250000 -v 0.750000 6.500000 -1.250000 -v -0.750000 6.500000 -1.250000 -v -0.250000 6.500000 -1.250000 -v 0.750000 7.000000 -1.250000 -v -0.750000 7.000000 -1.250000 -v 0.750000 6.500000 -1.250000 -v -0.750000 6.500000 -1.250000 -v -0.750000 7.000000 -0.750000 -v -0.750000 6.500000 -0.750000 -v 0.750000 6.500000 -0.750000 -v 0.750000 7.000000 -0.750000 -v -1.250000 7.000000 -0.750000 -v -1.250000 6.500000 -0.750000 -v 1.250000 6.500000 -0.750000 -v 1.250000 7.000000 -0.750000 -v -0.750000 7.000000 0.750000 -v -0.750000 6.500000 0.750000 -v 0.750000 6.500000 0.750000 -v 0.750000 7.000000 0.750000 -v -1.250000 7.000000 0.750000 -v -1.250000 6.500000 0.750000 -v 1.250000 6.500000 0.750000 -v 1.250000 7.000000 0.750000 -vt 0.820513 0.269663 -vt 0.794872 0.224719 -vt 0.820513 0.224719 -vt 0.820513 0.269663 -vt 0.794872 0.224719 -vt 0.820513 0.224719 -vt 0.794872 0.898876 -vt 0.820513 0.853933 -vt 0.820513 0.898876 -vt 0.794872 0.898876 -vt 0.820513 0.853933 -vt 0.820513 0.898876 -vt 0.897436 0.269663 -vt 0.871795 0.853933 -vt 0.871795 0.269663 -vt 0.794872 0.853933 -vt 0.794872 0.269663 -vt 0.897436 0.269663 -vt 0.871795 0.853933 -vt 0.871795 0.269663 -vt 0.794872 0.853933 -vt 0.794872 0.269663 -vt 0.846154 0.269663 -vt 0.846154 0.853933 -vt 0.846154 0.269663 -vt 0.846154 0.853933 -vt 0.544872 0.921348 -vt 0.416667 0.966292 -vt 0.416667 0.921348 -vt 0.416667 0.921348 -vt 0.544872 0.966292 -vt 0.416667 0.966292 -vt 0.410256 0.910112 -vt 0.544872 0.921348 -vt 0.416667 0.966292 -vt 0.416667 0.921348 -vt 0.570513 0.966292 -vt 0.544872 0.966292 -vt 0.416667 0.966292 -vt 0.544872 0.921348 -vt 0.544872 0.966292 -vt 0.410256 0.977528 -vt 0.397436 0.910112 -vt 0.410256 0.910112 -vt 0.410256 0.910112 -vt 0.416667 0.921348 -vt 0.410256 0.910112 -vt 0.397436 0.977528 -vt 0.358974 0.910112 -vt 0.397436 0.910112 -vt 0.410256 0.977528 -vt 0.410256 0.977528 -vt 0.397436 0.910112 -vt 0.410256 0.977528 -vt 0.397436 0.910112 -vt 0.410256 0.977528 -vt 0.397436 0.910112 -vt 0.410256 0.910112 -vt 0.410256 0.977528 -vt 0.397436 0.910112 -vt 0.410256 0.910112 -vt 0.410256 0.977528 -vt 0.397436 0.910112 -vt 0.410256 0.910112 -vt 0.397436 0.977528 -vt 0.358974 0.910112 -vt 0.416667 0.966292 -vt 0.416667 0.921348 -vt 0.416667 0.966292 -vt 0.416667 0.921348 -vt 0.416667 0.966292 -vt 0.410256 0.910112 -vt 0.416667 0.921348 -vt 0.410256 0.977528 -vt 0.397436 0.910112 -vt 0.544872 0.921348 -vt 0.544872 0.966292 -vt 0.544872 0.921348 -vt 0.570513 0.966292 -vt 0.544872 0.966292 -vt 0.544872 0.921348 -vt 0.416667 0.966292 -vt 0.416667 0.921348 -vt 0.544872 0.966292 -vt 1.000000 0.134831 -vt 0.974359 -0.000000 -vt 1.000000 -0.000000 -vt 0.923077 0.134831 +v -0.750000 14.750000 -4.250000 +v -0.750000 14.750000 -2.749999 +v 0.750000 12.750000 -2.750000 +v -0.750000 12.750000 -2.250000 +v 0.750000 12.750000 -2.250000 +v -0.750000 12.250000 -2.250000 +v 0.750000 12.250000 -2.750000 +v 0.750000 12.250000 -2.250000 +v -0.750000 12.250000 -2.750000 +v -0.750000 12.750000 -2.750000 +v 0.625000 12.250000 -1.375000 +v -0.625000 12.750000 -1.374999 +v 0.625000 12.750000 -1.374999 +v -0.625000 12.750000 -1.124999 +v 0.625000 12.250000 -1.125000 +v 0.625000 12.750000 -1.124999 +v 1.125000 12.249999 -0.624999 +v -0.625000 12.250000 -1.125000 +v -0.625000 12.250000 -1.375000 +v 1.375000 12.749999 -0.624999 +v 1.375000 12.249999 -0.624999 +v -1.375000 12.249999 -0.624999 +v -1.375000 12.749999 0.250001 +v -1.375000 12.749999 -0.624999 +v -1.125000 12.749999 0.250001 +v -1.125000 12.249999 -0.624999 +v -1.125000 12.749999 -0.624999 +v -1.375000 12.249999 0.250001 +v -1.125000 12.249999 0.250001 +v 1.375000 12.249999 0.250001 +v 1.375000 12.749999 0.250001 +v 1.125000 12.749999 -0.624999 +v 1.125000 12.249999 0.250001 +v 1.125000 12.749999 0.250001 +v 0.750000 12.750000 -4.250000 +v -0.750000 12.750000 -3.750000 +v 0.750000 12.750000 -3.750000 +v -0.750000 12.250000 -3.750000 +v 0.750000 12.250000 -4.250000 +v 0.750000 12.250000 -3.750000 +v -0.750000 12.250000 -4.250000 +v -0.750000 12.750000 -4.250000 +v 0.562500 12.312500 -1.374999 +v 0.562500 12.687500 -3.750000 +v 0.562500 12.687500 -1.374999 +v 0.187500 12.687500 -1.374999 +v 0.187500 12.312500 -3.750000 +v 0.187500 12.312500 -1.374999 +v 0.187500 12.687500 -3.750000 +v 0.562500 12.312500 -3.750000 +v -0.187500 12.312500 -1.374999 +v -0.187500 12.687500 -3.750000 +v -0.187500 12.687500 -1.374999 +v -0.562500 12.687500 -1.374999 +v -0.562500 12.312500 -3.750000 +v -0.562500 12.312500 -1.374999 +v -0.562500 12.687500 -3.750000 +v -0.187500 12.312500 -3.750000 +v 0.750000 8.750000 -2.750000 +v -0.750000 8.750000 -2.250000 +v 0.750000 8.750000 -2.250000 +v -0.750000 8.250000 -2.250000 +v 0.750000 8.250000 -2.750000 +v 0.750000 8.250000 -2.250000 +v -0.750000 8.250000 -2.750000 +v -0.750000 8.750000 -2.750000 +v 0.625000 8.250000 -1.625000 +v -0.625000 8.750000 -1.625000 +v 0.625000 8.750000 -1.625000 +v -0.625000 8.750000 -1.375000 +v 0.625000 8.250000 -1.375000 +v 0.625000 8.750000 -1.375000 +v 1.125000 8.249999 -0.875000 +v -0.625000 8.250000 -1.375000 +v -0.625000 8.250000 -1.625000 +v 1.375000 8.749999 -0.875000 +v 1.375000 8.249999 -0.875000 +v -1.375000 8.249999 -0.875000 +v -1.375000 8.749999 0.250000 +v -1.375000 8.749999 -0.875000 +v -1.125000 8.749999 0.250000 +v -1.125000 8.249999 -0.875000 +v -1.125000 8.749999 -0.875000 +v -1.375000 8.249999 0.250000 +v -1.125000 8.249999 0.250000 +v 1.375000 8.249999 0.250000 +v 1.375000 8.749999 0.250000 +v 1.125000 8.749999 -0.875000 +v 1.125000 8.249999 0.250000 +v 1.125000 8.749999 0.250000 +v 0.750000 8.750000 -4.250000 +v -0.750000 8.750000 -3.750000 +v 0.750000 8.750000 -3.750000 +v -0.750000 8.250000 -3.750000 +v 0.750000 8.250000 -4.250000 +v 0.750000 8.250000 -3.750000 +v -0.750000 8.250000 -4.250000 +v -0.750000 8.750000 -4.250000 +v 0.562500 8.312500 -1.625000 +v 0.562500 8.687500 -3.750000 +v 0.562500 8.687500 -1.625000 +v 0.187500 8.687500 -1.625000 +v 0.187500 8.312500 -3.750000 +v 0.187500 8.312500 -1.625000 +v 0.187500 8.687500 -3.750000 +v 0.562500 8.312500 -3.750000 +v -0.187500 8.312500 -1.625000 +v -0.187500 8.687500 -3.750000 +v -0.187500 8.687500 -1.625000 +v -0.562500 8.687500 -1.625000 +v -0.562500 8.312500 -3.750000 +v -0.562500 8.312500 -1.625000 +v -0.562500 8.687500 -3.750000 +v -0.187500 8.312500 -3.750000 +v 0.750000 4.750000 -2.750000 +v -0.750000 4.750000 -2.250000 +v 0.750000 4.750000 -2.250000 +v -0.750000 4.250000 -2.250000 +v 0.750000 4.250000 -2.750000 +v 0.750000 4.250000 -2.250000 +v -0.750000 4.250000 -2.750000 +v -0.750000 4.750000 -2.750000 +v 0.625000 4.250000 -1.875000 +v -0.625000 4.750000 -1.875000 +v 0.625000 4.750000 -1.875000 +v -0.625000 4.750000 -1.625000 +v 0.625000 4.250000 -1.625000 +v 0.625000 4.750000 -1.625000 +v 1.125000 4.249999 -1.125000 +v -0.625000 4.250000 -1.625000 +v -0.625000 4.250000 -1.875000 +v 1.375000 4.749999 -1.125000 +v 1.375000 4.249999 -1.125000 +v -1.375000 4.249999 -1.125000 +v -1.375000 4.749999 0.250000 +v -1.375000 4.749999 -1.125000 +v -1.125000 4.749999 0.250000 +v -1.125000 4.249999 -1.125000 +v -1.125000 4.749999 -1.125000 +v -1.375000 4.249999 0.250000 +v -1.125000 4.249999 0.250000 +v 1.375000 4.249999 0.250000 +v 1.375000 4.749999 0.250000 +v 1.125000 4.749999 -1.125000 +v 1.125000 4.249999 0.250000 +v 1.125000 4.749999 0.250000 +v 0.750000 4.750000 -4.250000 +v -0.750000 4.750000 -3.750000 +v 0.750000 4.750000 -3.750000 +v -0.750000 4.250000 -3.750000 +v 0.750000 4.250000 -4.250000 +v 0.750000 4.250000 -3.750000 +v -0.750000 4.250000 -4.250000 +v -0.750000 4.750000 -4.250000 +v 0.562500 4.312500 -1.875000 +v 0.562500 4.687500 -3.750000 +v 0.562500 4.687500 -1.875000 +v 0.187500 4.687500 -1.875000 +v 0.187500 4.312500 -3.750000 +v 0.187500 4.312500 -1.875000 +v 0.187500 4.687500 -3.750000 +v 0.562500 4.312500 -3.750000 +v -0.187500 4.312500 -1.875000 +v -0.187500 4.687500 -3.750000 +v -0.187500 4.687500 -1.875000 +v -0.562500 4.687500 -1.875000 +v -0.562500 4.312500 -3.750000 +v -0.562500 4.312500 -1.875000 +v -0.562500 4.687500 -3.750000 +v -0.187500 4.312500 -3.750000 +v 0.750000 11.750000 -4.062500 +v -0.750000 10.750000 -4.062500 +v 0.750000 12.250000 -4.062500 +v 0.750000 10.250000 -4.062500 +v -0.750000 9.250000 -4.062500 +v 0.750000 10.750000 -4.062500 +v 0.750000 10.750000 -3.937500 +v -0.750000 11.750000 -3.937500 +v -0.750000 12.250000 -3.937500 +v 0.750000 9.250000 -3.937500 +v -0.750000 10.250000 -3.937500 +v -0.750000 10.750000 -3.937500 +v 0.750000 7.750000 -4.062500 +v -0.750000 6.750000 -4.062500 +v 0.750000 8.250000 -4.062500 +v 0.750000 6.250000 -4.062500 +v -0.750000 5.250000 -4.062500 +v 0.750000 6.750000 -4.062500 +v 0.750000 6.750000 -3.937500 +v -0.750000 7.750000 -3.937500 +v -0.750000 8.250000 -3.937500 +v 0.750000 5.250000 -3.937500 +v -0.750000 6.250000 -3.937500 +v -0.750000 6.750000 -3.937500 +v -0.750000 10.750000 -2.562500 +v 0.750000 11.750000 -2.562500 +v 0.750000 12.250000 -2.562500 +v -0.750000 9.250000 -2.562500 +v 0.750000 10.250000 -2.562500 +v 0.750000 10.750000 -2.562500 +v 0.750000 10.750000 -2.437500 +v -0.750000 11.750000 -2.437500 +v 0.750000 10.250000 -2.437500 +v 0.750000 9.250000 -2.437500 +v -0.750000 10.250000 -2.437500 +v 0.750000 8.750000 -2.437500 +v -0.750000 6.750000 -2.562500 +v 0.750000 7.750000 -2.562500 +v 0.750000 8.250000 -2.562500 +v -0.750000 5.250000 -2.562500 +v 0.750000 6.250000 -2.562500 +v 0.750000 6.750000 -2.562500 +v 0.750000 6.750000 -2.437500 +v -0.750000 7.750000 -2.437500 +v 0.750000 6.250000 -2.437500 +v 0.750000 5.250000 -2.437500 +v -0.750000 6.250000 -2.437500 +v 0.750000 4.750000 -2.437500 +v 0.750000 14.250000 -4.062500 +v -0.750000 13.250000 -4.062500 +v 0.750000 14.750000 -4.062500 +v 0.750000 13.250000 -3.937500 +v -0.750000 14.250000 -3.937499 +v -0.750000 14.750000 -3.937499 +v -0.750000 13.250000 -2.562500 +v 0.750000 14.250000 -2.562499 +v 0.750000 14.750000 -2.562499 +v 0.750000 13.250000 -2.437500 +v -0.750000 14.250000 -2.437499 +v 0.750000 12.750000 -2.437500 +v 1.062500 14.250000 -2.749999 +v 1.062500 13.250000 -3.750000 +v 1.062500 14.750000 -2.749999 +v 0.937500 13.250000 -2.750000 +v 0.937500 14.250000 -3.749999 +v 0.937500 14.750000 -3.749999 +v 1.062500 11.750000 -2.750000 +v 1.062500 10.750000 -3.750000 +v 1.062500 12.250000 -2.750000 +v 0.937500 10.750000 -2.750000 +v 0.937500 11.750000 -3.750000 +v 0.937500 12.250000 -3.750000 +v 1.062500 10.250000 -2.750000 +v 1.062500 9.250000 -3.750000 +v 1.062500 10.750000 -2.750000 +v 0.937500 9.250000 -2.750000 +v 0.937500 10.250000 -3.750000 +v 0.937500 10.750000 -3.750000 +v 1.062500 7.750000 -2.750000 +v 1.062500 6.750000 -3.750000 +v 1.062500 8.250000 -2.750000 +v 0.937500 6.750000 -2.750000 +v 0.937500 7.750000 -3.750000 +v 0.937500 8.250000 -3.750000 +v 1.062500 6.250000 -2.750000 +v 1.062500 5.250000 -3.750000 +v 1.062500 6.750000 -2.750000 +v 0.937500 5.250000 -2.750000 +v 0.937500 6.250000 -3.750000 +v 0.937500 6.750000 -3.750000 +v -0.937500 13.250000 -3.750000 +v -0.937500 14.250000 -2.749999 +v -0.937500 14.750000 -2.749999 +v -1.062500 13.250000 -2.750000 +v -1.062500 14.250000 -3.749999 +v -1.062500 12.750000 -2.750000 +v -0.937500 10.750000 -3.750000 +v -0.937500 11.750000 -2.750000 +v -0.937500 12.250000 -2.750000 +v -1.062500 10.750000 -2.750000 +v -1.062500 11.750000 -3.750000 +v -1.062500 10.250000 -2.750000 +v -0.937500 9.250000 -3.750000 +v -0.937500 10.250000 -2.750000 +v -0.937500 10.750000 -2.750000 +v -1.062500 9.250000 -2.750000 +v -1.062500 10.250000 -3.750000 +v -1.062500 8.750000 -2.750000 +v -0.937500 6.750000 -3.750000 +v -0.937500 7.750000 -2.750000 +v -0.937500 8.250000 -2.750000 +v -1.062500 6.750000 -2.750000 +v -1.062500 7.750000 -3.750000 +v -1.062500 6.250000 -2.750000 +v -0.937500 5.250000 -3.750000 +v -0.937500 6.250000 -2.750000 +v -0.937500 6.750000 -2.750000 +v -1.062500 5.250000 -2.750000 +v -1.062500 6.250000 -3.750000 +v -1.062500 4.750000 -2.750000 +v -0.750000 10.750000 -4.062500 +v 0.750000 11.750000 -4.062500 +v 0.750000 12.250000 -4.062500 +v -0.750000 9.250000 -4.062500 +v 0.750000 10.250000 -4.062500 +v 0.750000 10.750000 -4.062500 +v 0.750000 10.750000 -3.937500 +v -0.750000 11.750000 -3.937500 +v 0.750000 10.250000 -3.937500 +v 0.750000 9.250000 -3.937500 +v -0.750000 10.250000 -3.937500 +v 0.750000 8.750000 -3.937500 +v -0.750000 6.750000 -4.062500 +v 0.750000 7.750000 -4.062500 +v 0.750000 8.250000 -4.062500 +v -0.750000 5.250000 -4.062500 +v 0.750000 6.250000 -4.062500 +v 0.750000 6.750000 -4.062500 +v 0.750000 6.750000 -3.937500 +v -0.750000 7.750000 -3.937500 +v 0.750000 6.250000 -3.937500 +v 0.750000 5.250000 -3.937500 +v -0.750000 6.250000 -3.937500 +v 0.750000 4.750000 -3.937500 +v 0.750000 11.750000 -2.562500 +v -0.750000 10.750000 -2.562500 +v 0.750000 12.250000 -2.562500 +v 0.750000 10.250000 -2.562500 +v -0.750000 9.250000 -2.562500 +v 0.750000 10.750000 -2.562500 +v 0.750000 10.750000 -2.437500 +v -0.750000 11.750000 -2.437500 +v -0.750000 12.250000 -2.437500 +v 0.750000 9.250000 -2.437500 +v -0.750000 10.250000 -2.437500 +v -0.750000 10.750000 -2.437500 +v 0.750000 7.750000 -2.562500 +v -0.750000 6.750000 -2.562500 +v 0.750000 8.250000 -2.562500 +v 0.750000 6.250000 -2.562500 +v -0.750000 5.250000 -2.562500 +v 0.750000 6.750000 -2.562500 +v 0.750000 6.750000 -2.437500 +v -0.750000 7.750000 -2.437500 +v -0.750000 8.250000 -2.437500 +v 0.750000 5.250000 -2.437500 +v -0.750000 6.250000 -2.437500 +v -0.750000 6.750000 -2.437500 +v -0.750000 13.250000 -4.062500 +v 0.750000 14.250000 -4.062500 +v 0.750000 14.750000 -4.062500 +v 0.750000 13.250000 -3.937500 +v -0.750000 14.250000 -3.937499 +v 0.750000 12.750000 -3.937500 +v 0.750000 14.250000 -2.562499 +v -0.750000 13.250000 -2.562500 +v 0.750000 14.750000 -2.562499 +v 0.750000 13.250000 -2.437500 +v -0.750000 14.250000 -2.437499 +v -0.750000 14.750000 -2.437499 +v 1.062500 13.250000 -3.750000 +v 1.062500 14.250000 -2.749999 +v 1.062500 14.750000 -2.749999 +v 0.937500 13.250000 -2.750000 +v 0.937500 14.250000 -3.749999 +v 0.937500 12.750000 -2.750000 +v 1.062500 10.750000 -3.750000 +v 1.062500 11.750000 -2.750000 +v 1.062500 12.250000 -2.750000 +v 0.937500 10.750000 -2.750000 +v 0.937500 11.750000 -3.750000 +v 0.937500 10.250000 -2.750000 +v 1.062500 9.250000 -3.750000 +v 1.062500 10.250000 -2.750000 +v 1.062500 10.750000 -2.750000 +v 0.937500 9.250000 -2.750000 +v 0.937500 10.250000 -3.750000 +v 0.937500 8.750000 -2.750000 +v 1.062500 6.750000 -3.750000 +v 1.062500 7.750000 -2.750000 +v 1.062500 8.250000 -2.750000 +v 0.937500 6.750000 -2.750000 +v 0.937500 7.750000 -3.750000 +v 0.937500 6.250000 -2.750000 +v 1.062500 5.250000 -3.750000 +v 1.062500 6.250000 -2.750000 +v 1.062500 6.750000 -2.750000 +v 0.937500 5.250000 -2.750000 +v 0.937500 6.250000 -3.750000 +v 0.937500 4.750000 -2.750000 +v -0.937500 14.250000 -2.749999 +v -0.937500 13.250000 -3.750000 +v -0.937500 14.750000 -2.749999 +v -1.062500 13.250000 -2.750000 +v -1.062500 14.250000 -3.749999 +v -1.062500 14.750000 -3.749999 +v -0.937500 11.750000 -2.750000 +v -0.937500 10.750000 -3.750000 +v -0.937500 12.250000 -2.750000 +v -1.062500 10.750000 -2.750000 +v -1.062500 11.750000 -3.750000 +v -1.062500 12.250000 -3.750000 +v -0.937500 10.250000 -2.750000 +v -0.937500 9.250000 -3.750000 +v -0.937500 10.750000 -2.750000 +v -1.062500 9.250000 -2.750000 +v -1.062500 10.250000 -3.750000 +v -1.062500 10.750000 -3.750000 +v -0.937500 7.750000 -2.750000 +v -0.937500 6.750000 -3.750000 +v -0.937500 8.250000 -2.750000 +v -1.062500 6.750000 -2.750000 +v -1.062500 7.750000 -3.750000 +v -1.062500 8.250000 -3.750000 +v -0.937500 6.250000 -2.750000 +v -0.937500 5.250000 -3.750000 +v -0.937500 6.750000 -2.750000 +v -1.062500 5.250000 -2.750000 +v -1.062500 6.250000 -3.750000 +v -1.062500 6.750000 -3.750000 +v -0.750000 10.250000 -4.062500 +v -0.750000 8.750000 -4.062500 +v 0.750000 10.250000 -3.937500 +v 0.750000 8.750000 -3.937500 +v -0.750000 6.250000 -4.062500 +v -0.750000 4.750000 -4.062500 +v 0.750000 6.250000 -3.937500 +v 0.750000 4.750000 -3.937500 +v -0.750000 10.250000 -2.562500 +v -0.750000 8.750000 -2.562500 +v -0.750000 12.250000 -2.437500 +v -0.750000 10.750000 -2.437500 +v -0.750000 6.250000 -2.562500 +v -0.750000 4.750000 -2.562500 +v -0.750000 8.250000 -2.437500 +v -0.750000 6.750000 -2.437500 +v -0.750000 12.750000 -4.062500 +v 0.750000 12.750000 -3.937500 +v -0.750000 12.750000 -2.562500 +v -0.750000 14.750000 -2.437499 +v 1.062500 12.750000 -3.750000 +v 0.937500 12.750000 -2.750000 +v 1.062500 10.250000 -3.750000 +v 0.937500 10.250000 -2.750000 +v 1.062500 8.750000 -3.750000 +v 0.937500 8.750000 -2.750000 +v 1.062500 6.250000 -3.750000 +v 0.937500 6.250000 -2.750000 +v 1.062500 4.750000 -3.750000 +v 0.937500 4.750000 -2.750000 +v -0.937500 12.750000 -3.750000 +v -1.062500 14.750000 -3.749999 +v -0.937500 10.250000 -3.750000 +v -1.062500 12.250000 -3.750000 +v -0.937500 8.750000 -3.750000 +v -1.062500 10.750000 -3.750000 +v -0.937500 6.250000 -3.750000 +v -1.062500 8.250000 -3.750000 +v -0.937500 4.750000 -3.750000 +v -1.062500 6.750000 -3.750000 +v -0.750000 10.250000 -4.062500 +v -0.750000 8.750000 -4.062500 +v -0.750000 12.250000 -3.937500 +v -0.750000 10.750000 -3.937500 +v -0.750000 6.250000 -4.062500 +v -0.750000 4.750000 -4.062500 +v -0.750000 8.250000 -3.937500 +v -0.750000 6.750000 -3.937500 +v -0.750000 10.250000 -2.562500 +v -0.750000 8.750000 -2.562500 +v 0.750000 10.250000 -2.437500 +v 0.750000 8.750000 -2.437500 +v -0.750000 6.250000 -2.562500 +v -0.750000 4.750000 -2.562500 +v 0.750000 6.250000 -2.437500 +v 0.750000 4.750000 -2.437500 +v -0.750000 12.750000 -4.062500 +v -0.750000 14.750000 -3.937499 +v -0.750000 12.750000 -2.562500 +v 0.750000 12.750000 -2.437500 +v 1.062500 12.750000 -3.750000 +v 0.937500 14.750000 -3.749999 +v 1.062500 10.250000 -3.750000 +v 0.937500 12.250000 -3.750000 +v 1.062500 8.750000 -3.750000 +v 0.937500 10.750000 -3.750000 +v 1.062500 6.250000 -3.750000 +v 0.937500 8.250000 -3.750000 +v 1.062500 4.750000 -3.750000 +v 0.937500 6.750000 -3.750000 +v -0.937500 12.750000 -3.750000 +v -1.062500 12.750000 -2.750000 +v -0.937500 10.250000 -3.750000 +v -1.062500 10.250000 -2.750000 +v -0.937500 8.750000 -3.750000 +v -1.062500 8.750000 -2.750000 +v -0.937500 6.250000 -3.750000 +v -1.062500 6.250000 -2.750000 +v -0.937500 4.750000 -3.750000 +v -1.062500 4.750000 -2.750000 +vt 0.923077 0.032258 vt 0.897436 -0.000000 -vt 0.923077 0.000000 -vt 0.948718 -0.000000 -vt 0.923077 0.134831 -vt 0.923077 0.000000 -vt 0.974359 0.134831 -vt 0.974359 0.134831 -vt 0.948718 -0.000000 -vt 0.974359 -0.000000 -vt 1.000000 0.134831 -vt 1.000000 -0.000000 +vt 0.923077 -0.000000 +vt 0.923077 0.032258 vt 0.897436 -0.000000 -vt 0.948718 0.494382 -vt 0.974359 0.359551 -vt 0.974359 0.494382 -vt 0.897436 0.359551 -vt 0.923077 0.494382 -vt 0.897436 0.494382 -vt 0.923077 0.359551 -vt 0.948718 0.359551 -vt 0.923077 0.314607 -vt 0.948718 0.179775 -vt 0.948718 0.314607 -vt 1.000000 0.494382 -vt 1.000000 0.539326 -vt 0.974359 0.674157 -vt 0.974359 0.539326 -vt 1.000000 0.359551 -vt 1.000000 0.314607 -vt 0.923077 0.314607 -vt 1.000000 0.539326 -vt 0.923077 0.539326 -vt 0.974359 0.134831 -vt 0.948718 0.134831 -vt 0.948718 0.719101 -vt 0.974359 0.719101 -vt 0.897436 0.314607 -vt 0.923077 0.179775 -vt 0.948718 0.539326 -vt 0.923077 0.674157 -vt 0.923077 0.539326 -vt 0.948718 0.674157 -vt 0.974359 0.314607 -vt 1.000000 0.179775 -vt 1.000000 0.314607 -vt 0.974359 0.179775 -vt 0.897436 0.674157 -vt 0.897436 0.539326 -vt 0.897436 0.853933 -vt 0.897436 0.853933 -vt 0.544872 0.921348 -vt 0.544872 0.966292 -vt 0.570513 0.921348 -vt 0.397436 0.977528 -vt 0.358974 0.977528 -vt 0.397436 0.977528 -vt 0.397436 0.977528 -vt 0.397436 0.977528 -vt 0.397436 0.977528 -vt 0.358974 0.977528 -vt 0.397436 0.977528 -vt 0.570513 0.921348 -vt 0.544872 0.966292 -vt 0.544872 0.921348 -vt 0.897436 0.134831 -vt 0.948718 0.134831 -vt 0.948718 0.134831 -vt 0.897436 0.134831 -vt 1.000000 0.674157 -vt 0.897436 0.179775 +vt 0.923077 -0.000000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.923077 0.032258 +vt 0.897436 -0.000000 +vt 0.923077 -0.000000 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.897436 0.790323 +vt 0.923077 0.758065 +vt 0.923077 0.790323 +vt 0.974359 0.032258 +vt 0.948718 0.758065 +vt 0.948718 0.032258 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 0.974359 0.032258 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.948718 0.032258 +vt 0.948718 0.032258 +vt 0.974359 0.032258 +vt 0.948718 0.758065 +vt 0.974359 0.032258 +vt 0.948718 0.758065 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 1.000000 0.032258 +vt 0.974359 0.758065 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.948718 0.032258 +vt 0.897436 0.758065 +vt 0.897436 0.032258 +vt 0.948718 0.758065 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.448718 0.822581 +vt 0.512821 0.854839 +vt 0.448718 0.854839 +vt 0.275641 0.919355 +vt 0.211538 0.951613 +vt 0.211538 0.919355 +vt 0.512821 0.854839 +vt 0.538462 0.903226 +vt 0.512821 0.870968 +vt 0.448718 0.870968 +vt 0.448718 0.854839 +vt 0.384615 0.854839 +vt 0.410256 0.903226 +vt 0.384615 0.903226 +vt 0.448718 0.870968 +vt 0.576923 0.903226 +vt 0.551282 0.959677 +vt 0.551282 0.903226 +vt 0.346154 0.919355 +vt 0.301282 0.951613 +vt 0.301282 0.919355 +vt 0.384615 0.951613 +vt 0.371795 0.919355 +vt 0.384615 0.919355 +vt 0.410256 0.903226 +vt 0.423077 0.959677 +vt 0.410256 0.959677 +vt 0.538462 0.903226 +vt 0.384615 0.959677 +vt 0.410256 0.959677 +vt 0.185897 0.919355 +vt 0.141026 0.951613 +vt 0.141026 0.919355 +vt 0.551282 0.959677 +vt 0.551282 0.903226 +vt 0.102564 0.919355 +vt 0.115385 0.951613 +vt 0.102564 0.951613 +vt 0.423077 0.959677 +vt 0.275641 0.951613 +vt 0.512821 0.870968 +vt 0.576923 0.854839 +vt 0.551282 0.854839 +vt 0.423077 0.903226 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.794872 0.846774 +vt 0.814103 0.693548 +vt 0.814103 0.846774 +vt 0.833333 0.846774 +vt 0.852564 0.693548 +vt 0.852564 0.846774 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.846774 +vt 0.794872 0.846774 +vt 0.814103 0.693548 +vt 0.814103 0.846774 +vt 0.833333 0.846774 +vt 0.852564 0.693548 +vt 0.852564 0.846774 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.846774 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.448718 0.822581 +vt 0.512821 0.854839 +vt 0.448718 0.854839 +vt 0.275641 0.919355 +vt 0.211538 0.951613 +vt 0.211538 0.919355 +vt 0.512821 0.854839 +vt 0.538462 0.903226 +vt 0.512821 0.870968 +vt 0.448718 0.870968 +vt 0.448718 0.854839 +vt 0.384615 0.854839 +vt 0.410256 0.903226 +vt 0.384615 0.903226 +vt 0.448718 0.870968 +vt 0.576923 0.903226 +vt 0.551282 0.975806 +vt 0.551282 0.903226 +vt 0.358974 0.919355 +vt 0.301282 0.951613 +vt 0.301282 0.919355 +vt 0.384615 0.951613 +vt 0.371795 0.919355 +vt 0.384615 0.919355 +vt 0.410256 0.903226 +vt 0.423077 0.975806 +vt 0.410256 0.975806 +vt 0.538462 0.903226 +vt 0.384615 0.975806 +vt 0.410256 0.975806 +vt 0.185897 0.919355 +vt 0.128205 0.951613 +vt 0.128205 0.919355 +vt 0.551282 0.975806 +vt 0.551282 0.903226 +vt 0.102564 0.919355 +vt 0.115385 0.951613 +vt 0.102564 0.951613 +vt 0.423077 0.975806 +vt 0.275641 0.951613 +vt 0.512821 0.870968 +vt 0.576923 0.854839 +vt 0.551282 0.854839 +vt 0.423077 0.903226 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.794872 0.830645 +vt 0.814103 0.693548 +vt 0.814103 0.830645 +vt 0.833333 0.830645 +vt 0.852564 0.693548 +vt 0.852564 0.830645 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.830645 +vt 0.794872 0.830645 +vt 0.814103 0.693548 +vt 0.814103 0.830645 +vt 0.833333 0.830645 +vt 0.852564 0.693548 +vt 0.852564 0.830645 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.830645 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.448718 0.822581 +vt 0.512821 0.854839 +vt 0.448718 0.854839 +vt 0.275641 0.919355 +vt 0.211538 0.951613 +vt 0.211538 0.919355 +vt 0.512821 0.854839 +vt 0.538462 0.903226 +vt 0.512821 0.870968 +vt 0.448718 0.870968 +vt 0.448718 0.854839 +vt 0.384615 0.854839 +vt 0.410256 0.903226 +vt 0.384615 0.903226 +vt 0.448718 0.870968 +vt 0.576923 0.903226 +vt 0.551282 0.991935 +vt 0.551282 0.903226 +vt 0.371795 0.919355 +vt 0.301282 0.951613 +vt 0.301282 0.919355 +vt 0.384615 0.951613 +vt 0.384615 0.919355 +vt 0.410256 0.903226 +vt 0.423077 0.991935 +vt 0.410256 0.991935 +vt 0.538462 0.903226 +vt 0.384615 0.991935 +vt 0.410256 0.991935 +vt 0.185897 0.919355 +vt 0.115385 0.951613 +vt 0.115385 0.919355 +vt 0.551282 0.991935 +vt 0.551282 0.903226 +vt 0.102564 0.919355 +vt 0.102564 0.951613 +vt 0.423077 0.991935 +vt 0.275641 0.951613 +vt 0.512821 0.870968 +vt 0.576923 0.854839 +vt 0.551282 0.854839 +vt 0.423077 0.903226 +vt 0.897436 0.854839 +vt 0.974359 0.887097 +vt 0.897436 0.887097 +vt 0.974359 0.790323 +vt 0.897436 0.822581 +vt 0.897436 0.790323 +vt 0.974359 0.822581 +vt 0.974359 0.854839 +vt 0.897436 0.919355 +vt 0.794872 0.814516 +vt 0.814103 0.693548 +vt 0.814103 0.814516 +vt 0.833333 0.814516 +vt 0.852564 0.693548 +vt 0.852564 0.814516 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.814516 +vt 0.794872 0.814516 +vt 0.814103 0.693548 +vt 0.814103 0.814516 +vt 0.833333 0.814516 +vt 0.852564 0.693548 +vt 0.852564 0.814516 +vt 0.833333 0.693548 +vt 0.871795 0.693548 +vt 0.871795 0.814516 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.790323 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.974359 0.919355 +vt 0.512821 0.822581 +vt 0.410256 0.854839 +vt 0.576923 0.959677 +vt 0.346154 0.951613 +vt 0.371795 0.951613 +vt 0.423077 0.903226 +vt 0.538462 0.959677 +vt 0.185897 0.951613 +vt 0.538462 0.959677 +vt 0.115385 0.919355 +vt 0.974359 0.919355 +vt 0.794872 0.693548 +vt 0.794872 0.693548 +vt 0.974359 0.919355 +vt 0.512821 0.822581 +vt 0.410256 0.854839 +vt 0.576923 0.975806 +vt 0.358974 0.951613 +vt 0.371795 0.951613 +vt 0.423077 0.903226 +vt 0.538462 0.975806 +vt 0.185897 0.951613 +vt 0.538462 0.975806 +vt 0.115385 0.919355 +vt 0.974359 0.919355 +vt 0.794872 0.693548 +vt 0.794872 0.693548 +vt 0.974359 0.919355 +vt 0.512821 0.822581 +vt 0.410256 0.854839 +vt 0.576923 0.991935 +vt 0.371795 0.951613 +vt 0.423077 0.903226 +vt 0.538462 0.991935 +vt 0.185897 0.951613 +vt 0.538462 0.991935 +vt 0.974359 0.919355 +vt 0.794872 0.693548 +vt 0.794872 0.693548 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 0.948718 0.758065 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.758065 +vt 1.000000 0.790323 +vt 0.948718 0.758065 +vt 1.000000 0.758065 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.987179 0.758065 +vt 0.987179 0.790323 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 +vt 0.948718 0.758065 +vt 0.987179 0.758065 vn 0.0000 -1.0000 0.0000 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.0000 1.0000 vn 0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 -0.7071 -s off -f 2845/3830/271 2843/3831/271 2842/3832/271 -f 2849/3833/271 2847/3834/271 2846/3835/271 -f 2851/3836/272 2853/3837/272 2850/3838/272 -f 2855/3839/272 2857/3840/272 2854/3841/272 -f 2848/3842/273 2855/3843/273 2847/3844/273 -f 2849/3833/274 2856/3845/274 2848/3846/274 -f 2844/3847/273 2851/3848/273 2843/3849/273 -f 2845/3830/274 2852/3850/274 2844/3851/274 -f 2846/3852/275 2857/3840/275 2849/3833/275 -f 2847/3844/276 2854/3853/276 2846/3852/276 -f 2842/3854/275 2853/3837/275 2845/3830/275 -f 2843/3849/276 2850/3855/276 2842/3854/276 -f 2859/3856/272 2860/3857/272 2858/3858/272 -f 2864/3859/271 2862/3860/271 2863/3861/271 -f 2860/3857/274 2866/3862/274 2858/3858/274 -f 2861/3863/275 2864/3864/275 2860/3865/275 -f 2859/3856/274 2865/3866/274 2861/3867/274 -f 2858/3868/273 2862/3869/273 2859/3870/273 -f 2869/3871/275 2871/3872/275 2867/3873/275 -f 2864/3864/274 2867/3873/274 2860/3865/274 -f 2858/3868/274 2868/3874/274 2863/3875/274 -f 2863/3861/274 2869/3876/274 2864/3859/274 -f 2871/3877/276 2872/3878/276 2870/3879/276 -f 2867/3880/272 2870/3879/272 2866/3862/272 -f 2866/3881/273 2872/3882/273 2868/3874/273 -f 2868/3883/271 2873/3884/271 2869/3876/271 -f 2879/3885/271 2874/3886/271 2878/3887/271 -f 2881/3888/273 2875/3889/273 2879/3890/273 -f 2880/3891/272 2877/3892/272 2881/3893/272 -f 2876/3894/276 2875/3895/276 2877/3892/276 -f 2884/3896/274 2878/3887/274 2883/3897/274 -f 2889/3898/274 2879/3890/274 2884/3899/274 -f 2883/3900/274 2880/3901/274 2887/3902/274 -f 2878/3903/275 2876/3904/275 2880/3901/275 -f 2889/3898/273 2885/3905/273 2888/3906/273 -f 2888/3907/274 2882/3908/274 2886/3909/274 -f 2886/3910/275 2883/3900/275 2887/3902/275 -f 2887/3911/274 2881/3893/274 2889/3912/274 -f 2883/3897/271 2885/3913/271 2884/3896/271 -f 2888/3907/272 2887/3911/272 2889/3912/272 -f 2903/3914/271 2894/3915/271 2895/3916/271 -f 2901/3917/273 2897/3918/273 2893/3919/273 -f 2890/3920/272 2899/3921/272 2891/3922/272 -f 2902/3923/275 2890/3920/275 2894/3915/275 -f 2904/3924/275 2892/3925/275 2896/3926/275 -f 2905/3927/271 2896/3926/271 2897/3928/271 -f 2892/3925/272 2901/3917/272 2893/3919/272 -f 2899/3921/273 2895/3929/273 2891/3922/273 -f 2907/3930/274 2908/3931/274 2909/3932/274 -f 2912/3933/276 2910/3934/276 2911/3935/276 -f 2907/3930/272 2913/3936/272 2906/3937/272 -f 2913/3938/272 2925/3939/272 2917/3940/272 -f 2908/3931/271 2911/3941/271 2909/3932/271 -f 2911/3942/271 2923/3943/271 2915/3944/271 -f 2912/3945/271 2908/3931/271 2916/3946/271 -f 2913/3936/272 2917/3947/272 2906/3937/272 -f 2917/3940/277 2908/3931/277 2906/3937/277 -f 2911/3941/271 2915/3948/271 2909/3932/271 -f 2910/3934/272 2907/3930/272 2914/3949/272 -f 2915/3944/278 2907/3930/278 2909/3932/278 -f 2920/3950/276 2925/3939/276 2921/3951/276 -f 2918/3952/276 2923/3943/276 2919/3953/276 -f 2912/3954/275 2921/3955/275 2913/3938/275 -f 2914/3956/272 2918/3957/272 2910/3958/272 -f 2915/3944/275 2922/3959/275 2914/3956/275 -f 2916/3960/271 2920/3961/271 2912/3962/271 -f 2917/3940/273 2924/3963/273 2916/3960/273 -f 2910/3958/273 2919/3964/273 2911/3965/273 -f 2845/3830/271 2844/3851/271 2843/3831/271 -f 2849/3833/271 2848/3846/271 2847/3834/271 -f 2851/3836/272 2852/3850/272 2853/3837/272 -f 2855/3839/272 2856/3845/272 2857/3840/272 -f 2848/3842/273 2856/3966/273 2855/3843/273 -f 2849/3833/274 2857/3840/274 2856/3845/274 -f 2844/3847/273 2852/3967/273 2851/3848/273 -f 2845/3830/274 2853/3837/274 2852/3850/274 -f 2846/3852/275 2854/3853/275 2857/3840/275 -f 2847/3844/276 2855/3843/276 2854/3853/276 -f 2842/3854/275 2850/3855/275 2853/3837/275 -f 2843/3849/276 2851/3848/276 2850/3855/276 -f 2859/3856/272 2861/3867/272 2860/3857/272 -f 2864/3859/271 2865/3968/271 2862/3860/271 -f 2860/3857/274 2867/3880/274 2866/3862/274 -f 2861/3863/275 2865/3969/275 2864/3864/275 -f 2859/3856/274 2862/3970/274 2865/3866/274 -f 2858/3868/273 2863/3875/273 2862/3869/273 -f 2869/3871/275 2873/3971/275 2871/3872/275 -f 2864/3864/274 2869/3871/274 2867/3873/274 -f 2858/3868/274 2866/3881/274 2868/3874/274 -f 2863/3861/274 2868/3883/274 2869/3876/274 -f 2871/3877/276 2873/3972/276 2872/3878/276 -f 2867/3880/272 2871/3877/272 2870/3879/272 -f 2866/3881/273 2870/3973/273 2872/3882/273 -f 2868/3883/271 2872/3974/271 2873/3884/271 -f 2879/3885/271 2875/3975/271 2874/3886/271 -f 2881/3888/273 2877/3976/273 2875/3889/273 -f 2880/3891/272 2876/3894/272 2877/3892/272 -f 2876/3894/276 2874/3977/276 2875/3895/276 -f 2884/3896/274 2879/3885/274 2878/3887/274 -f 2889/3898/274 2881/3888/274 2879/3890/274 -f 2883/3900/274 2878/3903/274 2880/3901/274 -f 2878/3903/275 2874/3978/275 2876/3904/275 -f 2889/3898/273 2884/3899/273 2885/3905/273 -f 2888/3907/274 2885/3979/274 2882/3908/274 -f 2886/3910/275 2882/3980/275 2883/3900/275 -f 2887/3911/274 2880/3891/274 2881/3893/274 -f 2883/3897/271 2882/3981/271 2885/3913/271 -f 2888/3907/272 2886/3909/272 2887/3911/272 -f 2903/3914/271 2902/3923/271 2894/3915/271 -f 2901/3917/273 2905/3982/273 2897/3918/273 -f 2890/3920/272 2898/3983/272 2899/3921/272 -f 2902/3923/275 2898/3983/275 2890/3920/275 -f 2904/3924/275 2900/3984/275 2892/3925/275 -f 2905/3927/271 2904/3924/271 2896/3926/271 -f 2892/3925/272 2900/3984/272 2901/3917/272 -f 2899/3921/273 2903/3985/273 2895/3929/273 -f 2907/3930/274 2906/3937/274 2908/3931/274 -f 2912/3933/276 2913/3936/276 2910/3934/276 -f 2907/3930/272 2910/3934/272 2913/3936/272 -f 2913/3938/272 2921/3955/272 2925/3939/272 -f 2908/3931/271 2912/3945/271 2911/3941/271 -f 2911/3942/271 2919/3986/271 2923/3943/271 -f 2917/3940/277 2916/3960/277 2908/3931/277 -f 2915/3944/278 2914/3956/278 2907/3930/278 -f 2920/3950/276 2924/3963/276 2925/3939/276 -f 2918/3952/276 2922/3959/276 2923/3943/276 -f 2912/3954/275 2920/3987/275 2921/3955/275 -f 2914/3956/272 2922/3959/272 2918/3957/272 -f 2915/3944/275 2923/3943/275 2922/3959/275 -f 2916/3960/271 2924/3963/271 2920/3961/271 -f 2917/3940/273 2925/3939/273 2924/3963/273 -f 2910/3958/273 2918/3957/273 2919/3964/273 -o Micro_Rope -v -0.187500 5.250000 1.375000 -v -0.275888 5.213388 1.375000 -v -0.312500 5.125000 1.375000 -v -0.275888 5.036612 1.375000 -v -0.187500 5.000000 1.375000 -v -0.099112 5.036612 1.375000 -v -0.062500 5.125000 1.375000 -v -0.099112 5.213388 1.375000 -v -0.187500 5.250000 0.125000 -v -0.275888 5.213388 0.125000 -v -0.312500 5.125000 0.125000 -v -0.275888 5.036612 0.125000 -v -0.187500 5.000000 0.125000 -v -0.099112 5.036612 0.125000 -v -0.062500 5.125000 0.125000 -v -0.099112 5.213388 0.125000 -v 0.187500 4.250000 1.375000 -v 0.099112 4.213388 1.375000 -v 0.062500 4.125000 1.375000 -v 0.099112 4.036612 1.375000 -v 0.187500 4.000000 1.375000 -v 0.275888 4.036612 1.375000 -v 0.312500 4.125000 1.375000 -v 0.275888 4.213388 1.375000 -v 0.187500 4.250000 0.125000 -v 0.099112 4.213388 0.125000 -v 0.062500 4.125000 0.125000 -v 0.099112 4.036612 0.125000 -v 0.187500 4.000000 0.125000 -v 0.275888 4.036612 0.125000 -v 0.312500 4.125000 0.125000 -v 0.275888 4.213388 0.125000 -vt 0.711111 0.896552 -vt 0.700000 0.724138 -vt 0.711111 0.724138 -vt 0.722222 0.896552 -vt 0.722222 0.724138 -vt 0.744444 0.896552 -vt 0.733333 0.724138 -vt 0.744444 0.724138 -vt 0.677778 0.896552 -vt 0.666667 0.724138 -vt 0.677778 0.724138 -vt 0.700000 0.896552 -vt 0.688889 0.724138 -vt 0.733333 0.896552 -vt 0.755556 0.896552 -vt 0.755556 0.724138 -vt 0.688889 0.896552 -vt 0.711111 0.896552 -vt 0.700000 0.724138 -vt 0.711111 0.724138 -vt 0.722222 0.896552 -vt 0.722222 0.724138 -vt 0.744444 0.896552 -vt 0.733333 0.724138 -vt 0.744444 0.724138 -vt 0.677778 0.896552 -vt 0.666667 0.724138 -vt 0.677778 0.724138 -vt 0.700000 0.896552 -vt 0.688889 0.724138 -vt 0.733333 0.896552 -vt 0.755556 0.896552 -vt 0.755556 0.724138 -vt 0.688889 0.896552 -vt 0.666667 0.896552 -vt 0.666667 0.896552 -vn 0.0000 1.0000 0.0000 -vn -0.7071 0.7071 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 1.0000 0.0000 0.0000 -vn -0.7071 -0.7071 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -s 1 -f 2934/3988/279 2927/3989/280 2926/3990/279 -f 2941/3991/281 2926/3990/279 2933/3992/281 -f 2939/3993/282 2932/3994/283 2931/3995/282 -f 2937/3996/284 2930/3997/285 2929/3998/284 -f 2935/3999/280 2928/4000/286 2927/3989/280 -f 2940/4001/283 2933/3992/281 2932/3994/283 -f 2938/4002/285 2931/3995/282 2930/4003/285 -f 2936/4004/286 2929/3998/284 2928/4000/286 -f 2950/4005/279 2943/4006/280 2942/4007/279 -f 2957/4008/281 2942/4007/279 2949/4009/281 -f 2955/4010/282 2948/4011/283 2947/4012/282 -f 2953/4013/284 2946/4014/285 2945/4015/284 -f 2951/4016/280 2944/4017/286 2943/4006/280 -f 2956/4018/283 2949/4009/281 2948/4011/283 -f 2954/4019/285 2947/4012/282 2946/4020/285 -f 2952/4021/286 2945/4015/284 2944/4017/286 -f 2934/3988/279 2935/3999/280 2927/3989/280 -f 2941/3991/281 2934/3988/279 2926/3990/279 -f 2939/3993/282 2940/4001/283 2932/3994/283 -f 2937/3996/284 2938/4022/285 2930/3997/285 -f 2935/3999/280 2936/4004/286 2928/4000/286 -f 2940/4001/283 2941/3991/281 2933/3992/281 -f 2938/4002/285 2939/3993/282 2931/3995/282 -f 2936/4004/286 2937/3996/284 2929/3998/284 -f 2950/4005/279 2951/4016/280 2943/4006/280 -f 2957/4008/281 2950/4005/279 2942/4007/279 -f 2955/4010/282 2956/4018/283 2948/4011/283 -f 2953/4013/284 2954/4023/285 2946/4014/285 -f 2951/4016/280 2952/4021/286 2944/4017/286 -f 2956/4018/283 2957/4008/281 2949/4009/281 -f 2954/4019/285 2955/4010/282 2947/4012/282 -f 2952/4021/286 2953/4013/284 2945/4015/284 -o Micro_Pivot -v -0.125000 1.250000 -1.375000 -v 0.125000 1.250000 -1.375000 -v -0.125000 1.250000 -1.625000 -v 0.125000 1.250000 -1.625000 -v -0.125000 3.250000 -1.625000 -v -0.125000 3.250000 -1.375000 -v 0.125000 3.250000 -1.375000 -v 0.125000 3.250000 -1.625000 -v -0.062500 3.250000 -1.437500 -v 0.062500 3.250000 -1.437500 -v -0.062500 3.250000 -1.562500 -v 0.062500 3.250000 -1.562500 -v -0.062500 4.250000 -1.562500 -v -0.062500 4.250000 -1.437500 -v 0.062500 4.250000 -1.437500 -v 0.062500 4.250000 -1.562500 -vt 0.755556 0.310345 -vt 0.777778 0.275862 -vt 0.777778 0.310345 -vt 0.844444 -0.000000 -vt 0.822222 0.275862 -vt 0.822222 -0.000000 -vt 0.800000 -0.000000 -vt 0.777778 -0.000000 -vt 0.755556 0.275862 -vt 0.755556 -0.000000 -vt 0.800000 0.275862 -vt 0.788889 0.275862 -vt 0.777778 0.413793 -vt 0.777778 0.275862 -vt 0.811111 0.275862 -vt 0.800000 0.413793 -vt 0.800000 0.275862 -vt 0.822222 0.275862 -vt 0.811111 0.413793 -vt 0.788889 0.413793 -vt 0.844444 0.275862 -vt 0.822222 0.413793 -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 -s off -f 2964/4024/287 2962/4025/287 2963/4026/287 -f 2961/4027/288 2964/4028/288 2959/4029/288 -f 2958/4030/289 2962/4025/289 2960/4031/289 -f 2960/4031/290 2965/4032/290 2961/4033/290 -f 2959/4029/291 2963/4034/291 2958/4030/291 -f 2968/4035/290 2973/4036/290 2969/4037/290 -f 2967/4038/291 2971/4039/291 2966/4040/291 -f 2969/4041/288 2972/4042/288 2967/4038/288 -f 2966/4040/289 2970/4043/289 2968/4035/289 -f 2964/4024/287 2965/4032/287 2962/4025/287 -f 2961/4027/288 2965/4044/288 2964/4028/288 -f 2958/4030/289 2963/4034/289 2962/4025/289 -f 2960/4031/290 2962/4025/290 2965/4032/290 -f 2959/4029/291 2964/4028/291 2963/4034/291 -f 2968/4035/290 2970/4043/290 2973/4036/290 -f 2967/4038/291 2972/4042/291 2971/4039/291 -f 2969/4041/288 2973/4045/288 2972/4042/288 -f 2966/4040/289 2971/4039/289 2970/4043/289 -o Micro_Erector -v -0.125000 3.250000 -1.625000 -v -0.125000 3.250000 -1.375000 -v 0.125000 3.250000 -1.375000 -v 0.125000 3.250000 -1.625000 -v -0.125000 6.000000 -1.625000 -v -0.125000 6.250000 -1.375000 -v 0.125000 6.250000 -1.375000 -v 0.125000 6.000000 -1.625000 -v -0.125000 6.250000 -1.375000 -v 0.125000 6.250000 -1.375000 -v -0.125000 6.000000 -1.375000 -v 0.125000 6.000000 -1.375000 -v -0.125000 6.250000 -0.625000 -v 0.125000 6.250000 -0.625000 -v -0.125000 6.000000 -0.625000 -v 0.125000 6.000000 -0.625000 -v 0.375000 6.250000 -0.125000 -v 0.625000 6.250000 -0.125000 -v 0.375000 6.000000 -0.125000 -v 0.625000 6.000000 -0.125000 -v 0.375000 6.250000 0.375000 -v 0.625000 6.250000 0.125000 -v 0.375000 6.000000 0.375000 -v 0.625000 6.000000 0.125000 -v -0.625000 6.250000 -0.125000 -v -0.375000 6.250000 -0.125000 -v -0.625000 6.000000 -0.125000 -v -0.375000 6.000000 -0.125000 -v -0.625000 6.250000 0.125000 -v -0.375000 6.250000 0.375000 -v -0.625000 6.000000 0.125000 -v -0.375000 6.000000 0.375000 -v -0.125000 6.250000 -0.375000 -v 0.125000 6.250000 -0.375000 -v -0.125000 6.000000 -0.375000 -v 0.125000 6.000000 -0.375000 -v 0.000000 6.250000 -0.625000 -v 0.000000 6.000000 -0.625000 -v 0.000000 5.500000 -1.375000 -v 0.000000 5.250000 -1.375000 -v 0.000000 5.000000 -1.375000 -v 0.000000 4.750000 -1.375000 -v 0.000000 4.250000 -0.625000 -v 0.000000 4.000000 -0.625000 -v 0.125000 4.000000 -0.375000 -v -0.125000 4.000000 -0.375000 -v 0.125000 4.250000 -0.375000 -v -0.125000 4.250000 -0.375000 -v -0.375000 4.000000 0.375000 -v -0.625000 4.000000 0.125000 -v -0.375000 4.250000 0.375000 -v -0.625000 4.250000 0.125000 -v -0.375000 4.000000 -0.125000 -v -0.625000 4.000000 -0.125000 -v -0.375000 4.250000 -0.125000 -v -0.625000 4.250000 -0.125000 -v 0.625000 4.000000 0.125000 -v 0.375000 4.000000 0.375000 -v 0.625000 4.250000 0.125000 -v 0.375000 4.250000 0.375000 -v 0.625000 4.000000 -0.125000 -v 0.375000 4.000000 -0.125000 -v 0.625000 4.250000 -0.125000 -v 0.375000 4.250000 -0.125000 -v 0.125000 4.000000 -0.625000 -v -0.125000 4.000000 -0.625000 -v 0.125000 4.250000 -0.625000 -v -0.125000 4.250000 -0.625000 -v 0.125000 4.000000 -1.375000 -v -0.125000 4.000000 -1.375000 -v 0.125000 4.250000 -1.375000 -v -0.125000 4.250000 -1.375000 -v 0.000000 6.250000 -0.625000 -v 0.000000 6.000000 -0.625000 -v 0.000000 5.500000 -1.375000 -v 0.000000 5.250000 -1.375000 -v 0.000000 5.000000 -1.375000 -v 0.000000 4.750000 -1.375000 -v 0.000000 4.250000 -0.625000 -v 0.000000 4.000000 -0.625000 -vt 0.800000 0.448276 -vt 0.777778 0.413793 -vt 0.800000 0.413793 -vt 0.777778 0.862069 -vt 0.800000 0.827586 -vt 0.800000 0.862069 -vt 0.777778 0.827586 -vt 0.777778 0.448276 -vt 0.844444 0.448276 -vt 0.822222 0.862069 -vt 0.822222 0.448276 -vt 0.755556 0.448276 -vt 0.755556 0.862069 -vt 0.866667 0.172414 -vt 0.911111 0.137931 -vt 0.888889 0.172414 -vt 1.000000 0.172414 -vt 0.977778 0.103448 -vt 1.000000 0.103448 -vt 0.866667 -0.000000 -vt 0.844444 0.103448 -vt 0.844444 -0.000000 -vt 0.933333 0.000000 -vt 0.911111 0.103448 -vt 0.911111 0.000000 -vt 1.000000 -0.000000 -vt 0.977778 -0.000000 -vt 0.933333 -0.000000 -vt 0.911111 0.103448 -vt 0.911111 -0.000000 -vt 0.866667 0.241379 -vt 0.844444 0.206897 -vt 0.866667 0.206897 -vt 0.955556 0.172414 -vt 0.977778 0.206897 -vt 0.955556 0.241379 -vt 0.866667 0.172414 -vt 0.844444 0.172414 -vt 0.888889 0.172414 -vt 0.844444 0.310345 -vt 0.866667 0.310345 -vt 0.955556 0.172414 -vt 0.933333 0.103448 -vt 0.977778 0.172414 -vt 0.977778 0.206897 -vt 1.000000 0.241379 -vt 0.977778 0.241379 -vt 0.866667 0.206897 -vt 0.977778 0.310345 -vt 1.000000 0.310345 -vt 0.955556 0.241379 -vt 0.933333 0.137931 -vt 0.911111 0.172414 -vt 0.911111 0.137931 -vt 0.933333 0.103448 -vt 1.000000 0.344828 -vt 0.866667 0.344828 -vt 0.866667 0.103448 -vt 0.933333 0.137931 -vt 0.977778 0.172414 -vt 0.444444 0.000000 -vt 0.511111 0.034483 -vt 0.444444 0.034483 -vt 0.444444 0.034483 -vt 0.511111 0.000000 -vt 0.511111 0.034483 -vt 0.933333 0.103448 -vt 0.911111 0.137931 -vt 0.911111 0.103448 -vt 0.933333 0.137931 -vt 0.911111 0.172414 -vt 0.911111 0.137931 -vt 1.000000 0.172414 -vt 0.977778 0.206897 -vt 0.977778 0.172414 -vt 0.955556 0.172414 -vt 0.955556 0.241379 -vt 0.977778 0.310345 -vt 1.000000 0.241379 -vt 1.000000 0.310345 -vt 0.888889 0.172414 -vt 0.866667 0.206897 -vt 0.866667 0.172414 -vt 0.977778 0.241379 -vt 0.933333 0.103448 -vt 0.844444 0.310345 -vt 0.866667 0.241379 -vt 0.866667 0.310345 -vt 0.888889 0.172414 -vt 0.866667 0.206897 -vt 0.866667 0.172414 -vt 0.844444 0.206897 -vt 0.844444 0.172414 -vt 0.955556 0.172414 -vt 0.977778 0.206897 -vt 0.955556 0.241379 -vt 0.933333 -0.000000 -vt 0.911111 -0.000000 -vt 1.000000 -0.000000 -vt 0.977778 0.103448 -vt 0.977778 -0.000000 -vt 0.933333 0.000000 -vt 0.911111 0.103448 -vt 0.911111 0.000000 -vt 0.866667 -0.000000 -vt 0.844444 0.103448 -vt 0.844444 -0.000000 -vt 1.000000 0.103448 -vt 0.511111 0.034483 -vt 0.444444 0.000000 -vt 0.444444 0.034483 -vt 0.511111 0.000000 -vt 0.444444 0.034483 -vt 0.511111 0.034483 -vt 1.000000 0.344828 -vt 0.866667 0.344828 -vt 0.866667 0.103448 -vt 0.933333 0.137931 -vt 0.977778 0.172414 -vt 0.844444 0.862069 -vt 0.844444 0.241379 -vt 0.888889 0.241379 -vt 1.000000 0.206897 -vt 0.888889 0.241379 -vt 0.933333 0.172414 -vt 0.977778 0.344828 -vt 0.844444 0.344828 -vt 0.511111 0.000000 -vt 0.444444 -0.000000 -vt 0.933333 0.172414 -vt 1.000000 0.206897 -vt 0.888889 0.241379 -vt 0.844444 0.241379 -vt 0.888889 0.241379 -vt 0.511111 0.000000 -vt 0.444444 -0.000000 -vt 0.977778 0.344828 -vt 0.844444 0.344828 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.7071 0.0000 -0.7071 -vn 0.0000 1.0000 0.0000 +vn -0.7071 -0.0000 0.7071 vn 0.7071 0.0000 0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 s off -f 2974/4046/292 2976/4047/292 2975/4048/292 -f 2980/4049/293 2978/4050/293 2979/4051/293 -f 2974/4046/294 2981/4052/294 2977/4053/294 -f 2976/4054/295 2979/4055/295 2975/4056/295 -f 2976/4057/296 2981/4052/296 2980/4058/296 -f 2975/4056/297 2978/4050/297 2974/4046/297 -f 3000/4059/292 3008/4060/292 3001/4061/292 -f 3000/4062/298 2986/4063/298 2988/4064/298 -f 2983/4065/296 2989/4066/296 2985/4067/296 -f 2982/4068/299 2987/4069/299 2983/4070/299 -f 2984/4071/297 2986/4063/297 2982/4072/297 -f 2985/4073/292 2988/4074/292 2984/4075/292 -f 2994/4076/300 2997/4077/300 2995/4078/300 -f 2992/4079/292 2997/4080/292 2996/4081/292 -f 2991/4082/296 2997/4077/296 2993/4083/296 -f 2990/4084/299 2995/4078/299 2991/4082/299 -f 2992/4085/297 2994/4076/297 2990/4086/297 -f 2999/4087/299 2986/4088/299 2998/4089/299 -f 3002/4090/301 3005/4091/301 3003/4092/301 -f 3001/4061/292 3004/4093/292 3000/4059/292 -f 2999/4094/296 3005/4091/296 3001/4095/296 -f 2999/4087/299 3002/4090/299 3003/4096/299 -f 3000/4062/297 3002/4090/297 2998/4089/297 -f 3006/4097/295 3009/4098/295 3007/4099/295 -f 2989/4100/292 3008/4060/292 2988/4074/292 -f 3008/4101/300 2999/4094/300 3001/4095/300 -f 2986/4088/299 3007/4099/299 2987/4069/299 -f 3007/4102/301 2992/4085/301 2990/4086/301 -f 2991/4082/299 3007/4099/299 2990/4084/299 -f 2991/4082/302 2989/4066/302 2987/4103/302 -f 3009/4104/292 2993/4105/292 2992/4079/292 -f 3011/4106/296 3012/4107/296 3010/4108/296 -f 3016/4109/296 3015/4110/296 3014/4111/296 -f 3038/4112/292 3019/4113/292 3039/4114/292 -f 3021/4115/295 3018/4116/295 3020/4117/295 -f 3027/4118/297 3025/4119/297 3029/4120/297 -f 3028/4121/299 3025/4119/299 3024/4122/299 -f 3028/4123/296 3022/4124/296 3026/4125/296 -f 3026/4126/292 3023/4127/292 3027/4128/292 -f 3025/4119/301 3022/4124/301 3024/4129/301 -f 3028/4121/299 3041/4130/299 3029/4120/299 -f 3035/4131/297 3033/4132/297 3037/4133/297 -f 3037/4134/299 3032/4135/299 3036/4136/299 -f 3036/4136/296 3030/4137/296 3034/4138/296 -f 3035/4139/292 3030/4140/292 3031/4141/292 -f 3033/4132/300 3030/4137/300 3032/4135/300 -f 3042/4142/292 3039/4114/292 3043/4143/292 -f 3043/4144/297 3041/4145/297 3045/4146/297 -f 3045/4147/299 3040/4148/299 3044/4149/299 -f 3044/4150/296 3038/4151/296 3042/4152/296 -f 3027/4118/298 3041/4145/298 3039/4153/298 -f 3027/4128/292 3019/4113/292 3026/4126/292 -f 3048/4154/297 3047/4155/297 3046/4156/297 -f 3051/4157/297 3052/4158/297 3050/4159/297 -f 3019/4160/300 3028/4123/300 3026/4125/300 -f 3041/4130/299 3020/4117/299 3040/4148/299 -f 3020/4161/301 3035/4131/301 3037/4133/301 -f 3036/4136/299 3020/4117/299 3037/4134/299 -f 3036/4136/302 3038/4151/302 3040/4162/302 -f 3018/4163/292 3034/4164/292 3035/4139/292 -f 2974/4046/292 2977/4053/292 2976/4047/292 -f 2980/4049/293 2981/4052/293 2978/4050/293 -f 2974/4046/294 2978/4050/294 2981/4052/294 -f 2976/4054/295 2980/4165/295 2979/4055/295 -f 2976/4057/296 2977/4053/296 2981/4052/296 -f 2975/4056/297 2979/4055/297 2978/4050/297 -f 3000/4059/292 2988/4074/292 3008/4060/292 -f 3000/4062/298 2998/4089/298 2986/4063/298 -f 2983/4065/296 2987/4103/296 2989/4066/296 -f 2982/4068/299 2986/4088/299 2987/4069/299 -f 2984/4071/297 2988/4064/297 2986/4063/297 -f 2985/4073/292 2989/4100/292 2988/4074/292 -f 2994/4076/300 2996/4166/300 2997/4077/300 -f 2992/4079/292 2993/4105/292 2997/4080/292 -f 2991/4082/296 2995/4078/296 2997/4077/296 -f 2990/4084/299 2994/4167/299 2995/4078/299 -f 2992/4085/297 2996/4166/297 2994/4076/297 -f 2999/4087/299 3006/4097/299 2986/4088/299 -f 3002/4090/301 3004/4168/301 3005/4091/301 -f 3001/4061/292 3005/4169/292 3004/4093/292 -f 2999/4094/296 3003/4092/296 3005/4091/296 -f 2999/4087/299 2998/4089/299 3002/4090/299 -f 3000/4062/297 3004/4168/297 3002/4090/297 -f 3006/4097/295 3008/4170/295 3009/4098/295 -f 2989/4100/292 3009/4104/292 3008/4060/292 -f 3008/4101/300 3006/4171/300 2999/4094/300 -f 2986/4088/299 3006/4097/299 3007/4099/299 -f 3007/4102/301 3009/4172/301 2992/4085/301 -f 2991/4082/299 2987/4069/299 3007/4099/299 -f 2991/4082/302 2993/4083/302 2989/4066/302 -f 3009/4104/292 2989/4100/292 2993/4105/292 -f 3011/4106/296 3013/4173/296 3012/4107/296 -f 3016/4109/296 3017/4174/296 3015/4110/296 -f 3038/4112/292 3018/4163/292 3019/4113/292 -f 3021/4115/295 3019/4175/295 3018/4116/295 -f 3027/4118/297 3023/4176/297 3025/4119/297 -f 3028/4121/299 3029/4120/299 3025/4119/299 -f 3028/4123/296 3024/4129/296 3022/4124/296 -f 3026/4126/292 3022/4177/292 3023/4127/292 -f 3025/4119/301 3023/4176/301 3022/4124/301 -f 3028/4121/299 3021/4115/299 3041/4130/299 -f 3035/4131/297 3031/4178/297 3033/4132/297 -f 3037/4134/299 3033/4179/299 3032/4135/299 -f 3036/4136/296 3032/4135/296 3030/4137/296 -f 3035/4139/292 3034/4164/292 3030/4140/292 -f 3033/4132/300 3031/4178/300 3030/4137/300 -f 3042/4142/292 3038/4112/292 3039/4114/292 -f 3043/4144/297 3039/4153/297 3041/4145/297 -f 3045/4147/299 3041/4130/299 3040/4148/299 -f 3044/4150/296 3040/4162/296 3038/4151/296 -f 3027/4118/298 3029/4120/298 3041/4145/298 -f 3027/4128/292 3039/4114/292 3019/4113/292 -f 3048/4154/297 3049/4180/297 3047/4155/297 -f 3051/4157/297 3053/4181/297 3052/4158/297 -f 3019/4160/300 3021/4182/300 3028/4123/300 -f 3041/4130/299 3021/4115/299 3020/4117/299 -f 3020/4161/301 3018/4183/301 3035/4131/301 -f 3036/4136/299 3040/4148/299 3020/4117/299 -f 3036/4136/302 3034/4138/302 3038/4151/302 -f 3018/4163/292 3038/4112/292 3034/4164/292 -o Micro_Pad -v -1.250000 2.000000 1.250000 -v 1.250000 2.000000 1.250000 -v -1.250000 2.000000 -1.250000 -v 1.250000 2.000000 -1.250000 -v -1.250000 1.500000 -1.250000 -v -1.250000 1.500000 1.250000 -v 1.250000 1.500000 1.250000 -v 1.250000 1.500000 -1.250000 -v -0.500000 2.000000 0.500000 -v 0.500000 2.000000 0.500000 -v -0.500000 2.000000 -0.500000 -v 0.500000 2.000000 -0.500000 -v -0.500000 1.500000 0.500000 -v 0.500000 1.500000 0.500000 -v -0.500000 1.500000 -0.500000 -v 0.500000 1.500000 -0.500000 -v -0.500000 2.000000 0.500000 -v 0.500000 2.000000 0.500000 -v -0.500000 2.000000 -0.500000 -v 0.500000 2.000000 -0.500000 -v 1.250000 1.500000 -1.250000 -v 1.250000 1.000000 -1.250000 -v 0.250000 1.500000 -1.250000 -v 0.500000 1.000000 -1.250000 -v 1.250000 1.500000 -0.250000 -v 1.250000 1.000000 -0.500000 -v 0.500000 1.500000 -0.500000 -v 0.500000 1.000000 -0.500000 -v 0.500000 1.250000 -1.250000 -v 1.250000 1.250000 -0.500000 -v 0.500000 1.250000 -0.500000 -v 0.250000 1.500000 -0.500000 -v 0.500000 1.500000 -0.250000 -v -0.500000 1.000000 -1.250000 -v 0.500000 1.000000 -1.250000 -v -0.500000 1.000000 -1.750000 -v 0.500000 1.000000 -1.750000 -v -0.500000 1.500000 -1.750000 -v -0.500000 1.500000 -1.250000 -v 0.500000 1.500000 -1.250000 -v 0.500000 1.500000 -1.750000 -v -0.875000 1.000000 2.000000 -v -0.625000 1.000000 2.000000 -v -0.875000 1.000000 1.750000 -v -0.625000 1.000000 1.750000 -v 0.625000 1.000000 2.000000 -v 0.875000 1.000000 2.000000 -v 0.625000 1.000000 1.750000 -v 0.875000 1.000000 1.750000 -v -0.875000 2.000000 1.000000 -v -0.625000 2.000000 1.000000 -v -0.875000 2.000000 0.750000 -v -0.625000 2.000000 0.750000 -v 0.625000 2.000000 1.000000 -v 0.875000 2.000000 1.000000 -v 0.625000 2.000000 0.750000 -v 0.875000 2.000000 0.750000 -v -0.875000 8.000000 1.750000 -v -0.875000 8.000000 2.000000 -v -0.625000 8.000000 2.000000 -v -0.625000 8.000000 1.750000 -v 0.625000 8.000000 1.750000 -v 0.625000 8.000000 2.000000 -v 0.875000 8.000000 2.000000 -v 0.875000 8.000000 1.750000 -v -0.875000 8.000000 0.750000 -v -0.875000 8.000000 1.000000 -v -0.625000 8.000000 1.000000 -v -0.625000 8.000000 0.750000 -v 0.625000 8.000000 0.750000 -v 0.625000 8.000000 1.000000 -v 0.875000 8.000000 1.000000 -v 0.875000 8.000000 0.750000 -v -0.625000 1.000000 1.875000 -v 0.625000 1.000000 1.875000 -v -0.625000 8.000000 1.875000 -v 0.625000 8.000000 1.875000 -v -0.625000 2.000000 0.875000 -v 0.625000 2.000000 0.875000 -v -0.625000 8.000000 0.875000 -v 0.625000 8.000000 0.875000 -v 0.750000 1.000000 1.750000 -v 0.750000 8.000000 1.750000 -v 0.750000 1.000000 1.000000 -v 0.750000 8.000000 1.000000 -v -0.750000 1.000000 1.750000 -v -0.750000 8.000000 1.750000 -v -0.750000 1.000000 1.000000 -v -0.750000 8.000000 1.000000 -v -0.312500 1.000000 1.625000 -v -0.062500 1.000000 1.625000 -v -0.312500 1.000000 1.375000 -v -0.062500 1.000000 1.375000 -v 0.062500 1.000000 1.625000 -v 0.312500 1.000000 1.625000 -v 0.062500 1.000000 1.375000 -v 0.312500 1.000000 1.375000 -v -0.312500 6.000000 1.375000 -v -0.312500 6.000000 1.625000 -v -0.062500 6.000000 1.625000 -v -0.062500 6.000000 1.375000 -v 0.062500 6.000000 1.375000 -v 0.062500 6.000000 1.625000 -v 0.312500 6.000000 1.625000 -v 0.312500 6.000000 1.375000 -v -1.250000 1.500000 1.250000 -v -1.250000 1.000000 1.250000 -v -0.250000 1.500000 1.250000 -v -0.500000 1.000000 1.250000 -v -1.250000 1.500000 0.250000 -v -1.250000 1.000000 0.500000 -v -0.500000 1.500000 0.500000 -v -0.500000 1.000000 0.500000 -v -0.500000 1.250000 1.250000 -v -1.250000 1.250000 0.500000 -v -0.500000 1.250000 0.500000 -v -0.250000 1.500000 0.500000 -v -0.500000 1.500000 0.250000 -v -1.250000 1.500000 -1.250000 -v -1.250000 1.000000 -1.250000 -v -1.250000 1.500000 -0.250000 -v -1.250000 1.000000 -0.500000 -v -0.250000 1.500000 -1.250000 -v -0.500000 1.000000 -1.250000 -v -0.500000 1.500000 -0.500000 -v -0.500000 1.000000 -0.500000 -v -1.250000 1.250000 -0.500000 -v -0.500000 1.250000 -1.250000 -v -0.500000 1.250000 -0.500000 -v -0.500000 1.500000 -0.250000 -v -0.250000 1.500000 -0.500000 -v 1.250000 1.500000 1.250000 -v 1.250000 1.000000 1.250000 -v 1.250000 1.500000 0.250000 -v 1.250000 1.000000 0.500000 -v 0.250000 1.500000 1.250000 -v 0.500000 1.000000 1.250000 -v 0.500000 1.500000 0.500000 -v 0.500000 1.000000 0.500000 -v 1.250000 1.250000 0.500000 -v 0.500000 1.250000 1.250000 -v 0.500000 1.250000 0.500000 -v 0.500000 1.500000 0.250000 -v 0.250000 1.500000 0.500000 -v -0.625000 1.000000 1.875000 -v 0.625000 1.000000 1.875000 -v -0.625000 8.000000 1.875000 -v 0.625000 8.000000 1.875000 -v -0.625000 2.000000 0.875000 -v 0.625000 2.000000 0.875000 -v -0.625000 8.000000 0.875000 -v 0.625000 8.000000 0.875000 -v 0.750000 1.000000 1.750000 -v 0.750000 8.000000 1.750000 -v 0.750000 1.000000 1.000000 -v 0.750000 8.000000 1.000000 -v -0.750000 1.000000 1.750000 -v -0.750000 8.000000 1.750000 -v -0.750000 1.000000 1.000000 -v -0.750000 8.000000 1.000000 -vt 0.066667 0.655172 -vt 0.222222 0.758621 -vt 0.000000 0.758621 -vt 0.066667 0.517241 -vt 0.000000 0.413793 -vt 0.222222 0.344828 -vt 0.222222 0.413793 -vt 0.000000 0.413793 -vt 0.222222 0.344828 -vt 0.222222 0.413793 -vt 0.000000 0.413793 -vt 0.222222 0.344828 -vt 0.222222 0.413793 -vt -0.000000 0.413793 -vt 0.222222 0.344828 -vt 0.222222 0.413793 -vt 0.066667 0.172414 -vt 0.155556 0.241379 -vt 0.066667 0.241379 -vt 0.155556 0.655172 -vt 0.155556 0.517241 -vt 0.000000 -0.000000 -vt 0.066667 0.241379 -vt 0.000000 0.344828 -vt 0.155556 0.241379 -vt 0.155556 0.103448 -vt 0.222222 -0.000000 -vt 0.066667 0.103448 -vt 0.066667 0.517241 -vt 0.155556 0.655172 -vt 0.066667 0.655172 -vt 0.066667 0.172414 -vt 0.155556 0.241379 -vt 0.066667 0.241379 -vt 0.066667 0.172414 -vt 0.155556 0.241379 -vt 0.066667 0.241379 -vt 0.066667 0.172414 -vt 0.155556 0.241379 -vt 0.066667 0.241379 -vt 0.088889 0.758621 -vt 0.155556 0.758621 -vt 0.155556 0.793103 -vt 0.022222 0.827586 -vt 0.088889 0.862069 -vt 0.022222 0.862069 -vt 0.088889 0.827586 -vt 0.000000 0.827586 -vt 0.022222 0.793103 -vt 0.088889 0.896552 -vt 0.155556 0.862069 -vt 0.088889 0.827586 -vt 0.155556 0.827586 -vt 0.155556 0.793103 -vt 0.177778 0.758621 -vt 0.177778 0.793103 -vt 0.200000 0.793103 -vt 0.088889 0.896552 -vt 0.155556 0.896552 -vt 0.888889 0.655172 -vt 0.933333 0.793103 -vt 0.888889 0.793103 -vt 0.888889 0.862069 -vt 0.933333 0.862069 -vt 0.977778 0.793103 -vt 0.933333 0.655172 -vt 0.977778 0.655172 -vt 0.844444 0.655172 -vt 0.844444 0.793103 -vt 0.933333 0.586207 -vt 0.888889 0.586207 -vt 0.577778 0.965517 -vt 0.600000 1.000000 -vt 0.577778 1.000000 -vt 0.577778 0.965517 -vt 0.600000 1.000000 -vt 0.577778 1.000000 -vt 0.577778 0.965517 -vt 0.600000 1.000000 -vt 0.577778 1.000000 -vt 0.577778 0.965517 -vt 0.600000 1.000000 -vt 0.577778 1.000000 -vt 0.600000 0.137931 -vt 0.577778 0.137931 -vt 0.622222 0.000000 -vt 0.600000 0.965517 -vt 0.600000 0.000000 -vt 0.622222 0.137931 -vt 0.600000 0.965517 -vt 0.644444 0.000000 -vt 0.622222 0.965517 -vt 0.622222 0.000000 -vt 0.644444 0.137931 -vt 0.622222 0.965517 -vt 0.622222 0.137931 -vt 0.666667 0.000000 -vt 0.644444 0.965517 -vt 0.666667 0.137931 -vt 0.644444 0.965517 -vt 0.600000 0.000000 -vt 0.577778 0.000000 -vt 0.600000 0.137931 -vt 0.577778 0.137931 -vt 0.600000 0.965517 -vt 0.644444 0.000000 -vt 0.622222 0.965517 -vt 0.600000 0.965517 -vt 0.644444 0.137931 -vt 0.622222 0.965517 -vt 0.666667 0.000000 -vt 0.644444 0.965517 -vt 0.666667 0.137931 -vt 0.644444 0.965517 -vt 0.577778 0.000000 -vt 0.222222 0.965517 -vt 0.333333 -0.000000 -vt 0.333333 0.965517 -vt 0.511111 0.965517 -vt 0.400000 0.137931 -vt 0.511111 0.137931 -vt 0.333333 0.000000 -vt 0.400000 0.965517 -vt 0.333333 0.965517 -vt 0.511111 0.965517 -vt 0.577778 0.000000 -vt 0.577778 0.965517 -vt 0.666667 0.689655 -vt 0.688889 0.724138 -vt 0.666667 0.724138 -vt 0.666667 0.689655 -vt 0.688889 0.724138 -vt 0.666667 0.724138 -vt 0.688889 0.000000 -vt 0.666667 0.000000 -vt 0.733333 0.000000 -vt 0.711111 0.689655 -vt 0.711111 0.000000 -vt 0.711111 0.000000 -vt 0.688889 0.689655 -vt 0.688889 0.000000 -vt 0.755556 0.000000 -vt 0.733333 0.689655 -vt 0.733333 0.000000 -vt 0.688889 0.689655 -vt 0.755556 0.000000 -vt 0.733333 0.689655 -vt 0.666667 0.000000 -vt 0.711111 0.689655 -vt 0.088889 0.758621 -vt 0.155556 0.758621 -vt 0.155556 0.793103 -vt 0.022222 0.827586 -vt 0.088889 0.862069 -vt 0.022222 0.862069 -vt 0.088889 0.827586 -vt 0.000000 0.827586 -vt 0.022222 0.793103 -vt 0.022222 0.896552 -vt 0.088889 0.896552 -vt 0.155556 0.862069 -vt 0.088889 0.827586 -vt 0.155556 0.827586 -vt 0.155556 0.793103 -vt 0.177778 0.758621 -vt 0.177778 0.793103 -vt 0.200000 0.793103 -vt 0.088889 0.896552 -vt 0.155556 0.896552 -vt 0.088889 0.758621 -vt 0.155556 0.758621 -vt 0.155556 0.793103 -vt 0.022222 0.827586 -vt 0.088889 0.862069 -vt 0.022222 0.862069 -vt 0.088889 0.827586 -vt 0.000000 0.827586 -vt 0.022222 0.793103 -vt 0.022222 0.896552 -vt 0.088889 0.896552 -vt 0.155556 0.862069 -vt 0.088889 0.827586 -vt 0.155556 0.827586 -vt 0.155556 0.793103 -vt 0.177778 0.758621 -vt 0.177778 0.793103 -vt 0.200000 0.793103 -vt 0.088889 0.896552 -vt 0.155556 0.896552 -vt 0.088889 0.758621 -vt 0.155556 0.758621 -vt 0.155556 0.793103 -vt 0.022222 0.827586 -vt 0.088889 0.862069 -vt 0.022222 0.862069 -vt 0.088889 0.827586 -vt 0.000000 0.827586 -vt 0.022222 0.793103 -vt 0.088889 0.896552 -vt 0.155556 0.862069 -vt 0.088889 0.827586 -vt 0.155556 0.827586 -vt 0.155556 0.793103 -vt 0.177778 0.758621 -vt 0.177778 0.793103 -vt 0.200000 0.793103 -vt 0.088889 0.896552 -vt 0.155556 0.896552 -vt 0.333333 -0.000000 -vt 0.222222 0.965517 -vt 0.333333 0.965517 -vt 0.400000 0.137931 -vt 0.511111 0.965517 -vt 0.511111 0.137931 -vt 0.400000 0.965517 -vt 0.333333 0.000000 -vt 0.333333 0.965517 -vt 0.577778 0.000000 -vt 0.511111 0.965517 -vt 0.577778 0.965517 -vt 0.000000 0.344828 -vt 0.000000 0.344828 -vt -0.000000 0.344828 -vt 0.155556 0.172414 -vt 0.155556 0.517241 -vt 0.155556 0.172414 -vt 0.155556 0.172414 -vt 0.155556 0.172414 -vt 0.177778 0.827586 -vt 0.022222 0.758621 -vt 0.022222 0.896552 -vt 0.666667 0.965517 -vt 0.666667 0.965517 -vt 0.666667 0.965517 -vt 0.666667 0.965517 -vt 0.222222 0.000000 -vt 0.400000 0.965517 -vt 0.400000 0.000000 -vt 0.511111 0.000000 -vt 0.755556 0.689655 -vt 0.755556 0.689655 -vt 0.177778 0.827586 -vt 0.022222 0.758621 -vt 0.177778 0.827586 -vt 0.022222 0.758621 -vt 0.177778 0.827586 -vt 0.022222 0.758621 -vt 0.022222 0.896552 -vt 0.222222 0.000000 -vt 0.400000 0.965517 -vt 0.400000 0.000000 -vt 0.511111 0.000000 -vn 0.0000 1.0000 0.0000 +f 2706/4061/399 2707/4062/399 2708/4063/399 +f 2709/4064/399 2710/4065/399 2711/4066/399 +f 2712/4067/399 2713/4068/399 2714/4069/399 +f 2715/4070/399 2716/4071/399 2717/4072/399 +f 2718/4073/400 2719/4074/400 2720/4075/400 +f 2721/4076/400 2722/4077/400 2723/4078/400 +f 2724/4079/400 2725/4080/400 2726/4081/400 +f 2727/4082/400 2728/4083/400 2729/4084/400 +f 2713/4085/401 2726/4086/401 2714/4087/401 +f 2730/4088/402 2718/4089/402 2707/4090/402 +f 2731/4091/402 2724/4092/402 2713/4085/402 +f 2706/4061/403 2732/4093/403 2730/4094/403 +f 2712/4067/403 2733/4095/403 2731/4096/403 +f 2711/4097/404 2722/4077/404 2709/4064/404 +f 2717/4098/404 2728/4083/404 2715/4070/404 +f 2710/4099/401 2723/4100/401 2711/4097/401 +f 2716/4101/401 2729/4102/401 2717/4098/401 +f 2734/4103/402 2721/4104/402 2710/4099/402 +f 2735/4105/402 2727/4106/402 2716/4101/402 +f 2709/4064/403 2736/4107/403 2734/4108/403 +f 2708/4109/404 2719/4074/404 2706/4061/404 +f 2715/4070/403 2737/4110/403 2735/4111/403 +f 2714/4087/404 2725/4080/404 2712/4067/404 +f 2707/4090/401 2720/4112/401 2708/4109/401 +f 2738/4113/400 2739/4114/400 2740/4115/400 +f 2741/4116/399 2742/4117/399 2743/4118/399 +f 2738/4113/403 2744/4119/403 2745/4120/403 +f 2739/4114/401 2743/4121/401 2740/4115/401 +f 2746/4122/403 2747/4123/403 2748/4124/403 +f 2749/4125/401 2750/4126/401 2751/4127/401 +f 2746/4128/399 2752/4129/399 2750/4130/399 +f 2746/4128/399 2753/4131/399 2754/4132/399 +f 2746/4133/405 2755/4134/405 2756/4135/405 +f 2747/4123/400 2751/4136/400 2748/4124/400 +f 2757/4137/404 2758/4138/404 2759/4139/404 +f 2760/4140/402 2761/4141/402 2762/4142/402 +f 2763/4143/401 2760/4144/401 2758/4145/401 +f 2757/4146/399 2764/4147/399 2763/4148/399 +f 2751/4136/400 2755/4134/400 2748/4124/400 +f 2758/4138/400 2762/4149/400 2759/4139/400 +f 2765/4150/402 2755/4134/402 2766/4151/402 +f 2767/4152/404 2768/4153/404 2769/4154/404 +f 2750/4126/406 2767/4152/406 2751/4127/406 +f 2765/4155/399 2752/4129/399 2756/4156/399 +f 2766/4157/401 2768/4158/401 2765/4159/401 +f 2755/4134/400 2769/4160/400 2766/4151/400 +f 2753/4161/407 2762/4142/407 2761/4141/407 +f 2747/4123/400 2762/4149/400 2749/4162/400 +f 2754/4163/408 2759/4139/408 2747/4164/408 +f 2761/4165/399 2754/4132/399 2753/4131/399 +f 2770/4166/400 2771/4167/400 2772/4168/400 +f 2773/4169/399 2774/4170/399 2775/4171/399 +f 2770/4166/403 2776/4172/403 2777/4173/403 +f 2771/4167/401 2775/4174/401 2772/4168/401 +f 2778/4175/402 2779/4176/402 2780/4177/402 +f 2781/4178/404 2782/4179/404 2783/4180/404 +f 2780/4177/400 2784/4181/400 2781/4178/400 +f 2783/4180/399 2785/4182/399 2778/4183/399 +f 2786/4184/402 2787/4185/402 2788/4186/402 +f 2789/4187/404 2790/4188/404 2791/4189/404 +f 2788/4186/400 2792/4190/400 2789/4187/400 +f 2791/4189/399 2793/4191/399 2786/4192/399 +f 2794/4193/400 2795/4194/400 2796/4195/400 +f 2797/4196/399 2798/4197/399 2799/4198/399 +f 2794/4193/403 2800/4199/403 2801/4200/403 +f 2795/4194/401 2799/4201/401 2796/4195/401 +f 2802/4202/403 2803/4203/403 2804/4204/403 +f 2805/4205/401 2806/4206/401 2807/4207/401 +f 2802/4208/399 2808/4209/399 2806/4210/399 +f 2802/4208/399 2809/4211/399 2810/4212/399 +f 2802/4213/405 2811/4214/405 2812/4215/405 +f 2803/4203/400 2807/4216/400 2804/4204/400 +f 2813/4217/404 2814/4218/404 2815/4219/404 +f 2816/4220/402 2817/4221/402 2818/4222/402 +f 2819/4223/401 2816/4224/401 2814/4225/401 +f 2813/4226/399 2820/4227/399 2819/4228/399 +f 2807/4216/400 2811/4214/400 2804/4204/400 +f 2814/4218/400 2818/4229/400 2815/4219/400 +f 2821/4230/402 2811/4214/402 2822/4231/402 +f 2823/4232/404 2824/4233/404 2825/4234/404 +f 2806/4206/406 2823/4232/406 2807/4207/406 +f 2821/4235/399 2808/4209/399 2812/4236/399 +f 2822/4237/401 2824/4238/401 2821/4239/401 +f 2811/4214/400 2825/4240/400 2822/4231/400 +f 2809/4241/407 2818/4222/407 2817/4221/407 +f 2803/4203/400 2818/4229/400 2805/4242/400 +f 2810/4243/408 2815/4219/408 2803/4244/408 +f 2817/4245/399 2810/4212/399 2809/4211/399 +f 2826/4246/400 2827/4247/400 2828/4248/400 +f 2829/4249/399 2830/4250/399 2831/4251/399 +f 2826/4246/403 2832/4252/403 2833/4253/403 +f 2827/4247/401 2831/4254/401 2828/4248/401 +f 2834/4255/402 2835/4256/402 2836/4257/402 +f 2837/4258/404 2838/4259/404 2839/4260/404 +f 2836/4257/400 2840/4261/400 2837/4258/400 +f 2839/4260/399 2841/4262/399 2834/4263/399 +f 2842/4264/402 2843/4265/402 2844/4266/402 +f 2845/4267/404 2846/4268/404 2847/4269/404 +f 2844/4266/400 2848/4270/400 2845/4267/400 +f 2847/4269/399 2849/4271/399 2842/4272/399 +f 2850/4273/400 2851/4274/400 2852/4275/400 +f 2853/4276/399 2854/4277/399 2855/4278/399 +f 2850/4273/403 2856/4279/403 2857/4280/403 +f 2851/4274/401 2855/4281/401 2852/4275/401 +f 2858/4282/403 2859/4283/403 2860/4284/403 +f 2861/4285/401 2862/4286/401 2863/4287/401 +f 2858/4288/399 2864/4289/399 2862/4290/399 +f 2858/4288/399 2865/4291/399 2866/4292/399 +f 2858/4293/405 2867/4294/405 2868/4295/405 +f 2859/4283/400 2863/4296/400 2860/4284/400 +f 2869/4297/404 2870/4298/404 2871/4299/404 +f 2872/4300/402 2873/4301/402 2874/4302/402 +f 2875/4303/401 2872/4300/401 2870/4304/401 +f 2869/4305/399 2876/4306/399 2875/4307/399 +f 2863/4296/400 2867/4294/400 2860/4284/400 +f 2870/4298/400 2874/4308/400 2871/4299/400 +f 2877/4309/402 2867/4294/402 2878/4310/402 +f 2879/4311/404 2880/4312/404 2881/4313/404 +f 2862/4286/406 2879/4311/406 2863/4287/406 +f 2877/4314/399 2864/4289/399 2868/4315/399 +f 2878/4316/401 2880/4312/401 2877/4317/401 +f 2867/4294/400 2881/4318/400 2878/4310/400 +f 2865/4319/407 2874/4302/407 2873/4301/407 +f 2859/4283/400 2874/4308/400 2861/4320/400 +f 2866/4321/408 2871/4299/408 2859/4322/408 +f 2873/4323/399 2866/4292/399 2865/4291/399 +f 2882/4324/400 2883/4325/400 2884/4326/400 +f 2885/4327/399 2886/4328/399 2887/4329/399 +f 2882/4324/403 2888/4330/403 2889/4331/403 +f 2883/4325/401 2887/4332/401 2884/4326/401 +f 2890/4333/402 2891/4334/402 2892/4335/402 +f 2893/4336/404 2894/4337/404 2895/4338/404 +f 2892/4335/400 2896/4339/400 2893/4336/400 +f 2895/4338/399 2897/4340/399 2890/4341/399 +f 2898/4342/402 2899/4343/402 2900/4344/402 +f 2901/4345/404 2902/4346/404 2903/4347/404 +f 2900/4344/400 2904/4348/400 2901/4345/400 +f 2903/4347/399 2905/4349/399 2898/4350/399 +f 2906/4351/403 2907/4352/403 2908/4353/403 +f 2909/4354/403 2910/4355/403 2911/4356/403 +f 2912/4357/403 2913/4358/403 2914/4359/403 +f 2915/4360/403 2916/4361/403 2917/4362/403 +f 2918/4363/403 2919/4364/403 2920/4365/403 +f 2921/4366/403 2922/4367/403 2923/4368/403 +f 2924/4369/403 2925/4370/403 2926/4371/403 +f 2927/4372/403 2928/4373/403 2929/4374/403 +f 2930/4375/401 2931/4376/401 2932/4377/401 +f 2933/4378/401 2934/4379/401 2935/4380/401 +f 2936/4381/401 2937/4382/401 2938/4383/401 +f 2939/4384/401 2940/4385/401 2941/4386/401 +f 2942/4387/401 2943/4388/401 2944/4389/401 +f 2945/4390/401 2946/4391/401 2947/4392/401 +f 2948/4393/401 2949/4394/401 2950/4395/401 +f 2951/4396/401 2952/4397/401 2953/4398/401 +f 2954/4399/403 2955/4400/403 2956/4401/403 +f 2957/4402/403 2958/4403/403 2959/4404/403 +f 2960/4405/401 2961/4406/401 2962/4407/401 +f 2963/4408/401 2964/4409/401 2965/4410/401 +f 2966/4411/402 2967/4412/402 2968/4413/402 +f 2969/4414/402 2970/4415/402 2971/4416/402 +f 2972/4417/402 2973/4418/402 2974/4419/402 +f 2975/4420/402 2976/4421/402 2977/4422/402 +f 2978/4423/402 2979/4424/402 2980/4425/402 +f 2981/4426/402 2982/4427/402 2983/4428/402 +f 2984/4429/402 2985/4430/402 2986/4431/402 +f 2987/4432/402 2988/4433/402 2989/4434/402 +f 2990/4435/402 2991/4436/402 2992/4437/402 +f 2993/4438/402 2994/4439/402 2995/4440/402 +f 2996/4441/404 2997/4442/404 2998/4443/404 +f 2999/4444/404 3000/4445/404 3001/4446/404 +f 3002/4447/404 3003/4448/404 3004/4449/404 +f 3005/4450/404 3006/4451/404 3007/4452/404 +f 3008/4453/404 3009/4454/404 3010/4455/404 +f 3011/4456/404 3012/4457/404 3013/4458/404 +f 3014/4459/404 3015/4460/404 3016/4461/404 +f 3017/4462/404 3018/4463/404 3019/4464/404 +f 3020/4465/404 3021/4466/404 3022/4467/404 +f 3023/4468/404 3024/4469/404 3025/4470/404 +f 3026/4471/401 3027/4472/401 3028/4473/401 +f 3029/4474/401 3030/4475/401 3031/4476/401 +f 3032/4477/401 3033/4478/401 3034/4479/401 +f 3035/4480/401 3036/4481/401 3037/4482/401 +f 3038/4483/401 3039/4484/401 3040/4485/401 +f 3041/4486/401 3042/4487/401 3043/4488/401 +f 3044/4489/401 3045/4490/401 3046/4491/401 +f 3047/4492/401 3048/4493/401 3049/4494/401 +f 3050/4495/403 3051/4496/403 3052/4497/403 +f 3053/4498/403 3054/4499/403 3055/4500/403 +f 3056/4501/403 3057/4502/403 3058/4503/403 +f 3059/4504/403 3060/4505/403 3061/4506/403 +f 3062/4507/403 3063/4508/403 3064/4509/403 +f 3065/4510/403 3066/4511/403 3067/4512/403 +f 3068/4513/403 3069/4514/403 3070/4515/403 +f 3071/4516/403 3072/4517/403 3073/4518/403 +f 3074/4519/401 3075/4520/401 3076/4521/401 +f 3077/4522/401 3078/4523/401 3079/4524/401 +f 3080/4525/403 3081/4526/403 3082/4527/403 +f 3083/4528/403 3084/4529/403 3085/4530/403 +f 3086/4531/404 3087/4532/404 3088/4533/404 +f 3089/4534/404 3090/4535/404 3091/4536/404 +f 3092/4537/404 3093/4538/404 3094/4539/404 +f 3095/4540/404 3096/4541/404 3097/4542/404 +f 3098/4543/404 3099/4544/404 3100/4545/404 +f 3101/4546/404 3102/4547/404 3103/4548/404 +f 3104/4549/404 3105/4550/404 3106/4551/404 +f 3107/4552/404 3108/4553/404 3109/4554/404 +f 3110/4555/404 3111/4556/404 3112/4557/404 +f 3113/4558/404 3114/4559/404 3115/4560/404 +f 3116/4561/402 3117/4562/402 3118/4563/402 +f 3119/4564/402 3120/4565/402 3121/4566/402 +f 3122/4567/402 3123/4568/402 3124/4569/402 +f 3125/4570/402 3126/4571/402 3127/4572/402 +f 3128/4573/402 3129/4574/402 3130/4575/402 +f 3131/4576/402 3132/4577/402 3133/4578/402 +f 3134/4579/402 3135/4580/402 3136/4581/402 +f 3137/4582/402 3138/4583/402 3139/4584/402 +f 3140/4585/402 3141/4586/402 3142/4587/402 +f 3143/4588/402 3144/4589/402 3145/4590/402 +f 2706/4061/399 2730/4094/399 2707/4062/399 +f 2709/4064/399 2734/4108/399 2710/4065/399 +f 2712/4067/399 2731/4096/399 2713/4068/399 +f 2715/4070/399 2735/4111/399 2716/4071/399 +f 2718/4073/400 2732/4093/400 2719/4074/400 +f 2721/4076/400 2736/4107/400 2722/4077/400 +f 2724/4079/400 2733/4095/400 2725/4080/400 +f 2727/4082/400 2737/4110/400 2728/4083/400 +f 2713/4085/401 2724/4092/401 2726/4086/401 +f 2730/4088/402 2732/4591/402 2718/4089/402 +f 2731/4091/402 2733/4592/402 2724/4092/402 +f 2706/4061/403 2719/4074/403 2732/4093/403 +f 2712/4067/403 2725/4080/403 2733/4095/403 +f 2711/4097/404 2723/4100/404 2722/4077/404 +f 2717/4098/404 2729/4102/404 2728/4083/404 +f 2710/4099/401 2721/4104/401 2723/4100/401 +f 2716/4101/401 2727/4106/401 2729/4102/401 +f 2734/4103/402 2736/4593/402 2721/4104/402 +f 2735/4105/402 2737/4594/402 2727/4106/402 +f 2709/4064/403 2722/4077/403 2736/4107/403 +f 2708/4109/404 2720/4112/404 2719/4074/404 +f 2715/4070/403 2728/4083/403 2737/4110/403 +f 2714/4087/404 2726/4086/404 2725/4080/404 +f 2707/4090/401 2718/4089/401 2720/4112/401 +f 2738/4113/400 2745/4120/400 2739/4114/400 +f 2741/4116/399 2744/4119/399 2742/4117/399 +f 2738/4113/403 2742/4117/403 2744/4119/403 +f 2739/4114/401 2741/4595/401 2743/4121/401 +f 2746/4122/403 2754/4596/403 2747/4123/403 +f 2749/4125/401 2753/4161/401 2750/4126/401 +f 2746/4128/399 2756/4156/399 2752/4129/399 +f 2746/4128/399 2750/4130/399 2753/4131/399 +f 2746/4133/405 2748/4597/405 2755/4134/405 +f 2747/4123/400 2749/4162/400 2751/4136/400 +f 2757/4137/404 2763/4598/404 2758/4138/404 +f 2760/4140/402 2764/4599/402 2761/4141/402 +f 2763/4143/401 2764/4600/401 2760/4144/401 +f 2757/4146/399 2761/4165/399 2764/4147/399 +f 2751/4136/400 2767/4601/400 2755/4134/400 +f 2758/4138/400 2760/4602/400 2762/4149/400 +f 2765/4150/402 2756/4135/402 2755/4134/402 +f 2767/4152/404 2752/4603/404 2768/4153/404 +f 2750/4126/406 2752/4603/406 2767/4152/406 +f 2765/4155/399 2768/4604/399 2752/4129/399 +f 2766/4157/401 2769/4605/401 2768/4158/401 +f 2755/4134/400 2767/4601/400 2769/4160/400 +f 2753/4161/407 2749/4125/407 2762/4142/407 +f 2747/4123/400 2759/4139/400 2762/4149/400 +f 2754/4163/408 2757/4137/408 2759/4139/408 +f 2761/4165/399 2757/4146/399 2754/4132/399 +f 2770/4166/400 2777/4173/400 2771/4167/400 +f 2773/4169/399 2776/4172/399 2774/4170/399 +f 2770/4166/403 2774/4170/403 2776/4172/403 +f 2771/4167/401 2773/4606/401 2775/4174/401 +f 2778/4175/402 2785/4607/402 2779/4176/402 +f 2781/4178/404 2784/4181/404 2782/4179/404 +f 2780/4177/400 2779/4176/400 2784/4181/400 +f 2783/4180/399 2782/4179/399 2785/4182/399 +f 2786/4184/402 2793/4608/402 2787/4185/402 +f 2789/4187/404 2792/4190/404 2790/4188/404 +f 2788/4186/400 2787/4185/400 2792/4190/400 +f 2791/4189/399 2790/4188/399 2793/4191/399 +f 2794/4193/400 2801/4200/400 2795/4194/400 +f 2797/4196/399 2800/4199/399 2798/4197/399 +f 2794/4193/403 2798/4197/403 2800/4199/403 +f 2795/4194/401 2797/4609/401 2799/4201/401 +f 2802/4202/403 2810/4610/403 2803/4203/403 +f 2805/4205/401 2809/4241/401 2806/4206/401 +f 2802/4208/399 2812/4236/399 2808/4209/399 +f 2802/4208/399 2806/4210/399 2809/4211/399 +f 2802/4213/405 2804/4611/405 2811/4214/405 +f 2803/4203/400 2805/4242/400 2807/4216/400 +f 2813/4217/404 2819/4612/404 2814/4218/404 +f 2816/4220/402 2820/4613/402 2817/4221/402 +f 2819/4223/401 2820/4614/401 2816/4224/401 +f 2813/4226/399 2817/4245/399 2820/4227/399 +f 2807/4216/400 2823/4615/400 2811/4214/400 +f 2814/4218/400 2816/4616/400 2818/4229/400 +f 2821/4230/402 2812/4215/402 2811/4214/402 +f 2823/4232/404 2808/4617/404 2824/4233/404 +f 2806/4206/406 2808/4617/406 2823/4232/406 +f 2821/4235/399 2824/4618/399 2808/4209/399 +f 2822/4237/401 2825/4619/401 2824/4238/401 +f 2811/4214/400 2823/4615/400 2825/4240/400 +f 2809/4241/407 2805/4205/407 2818/4222/407 +f 2803/4203/400 2815/4219/400 2818/4229/400 +f 2810/4243/408 2813/4217/408 2815/4219/408 +f 2817/4245/399 2813/4226/399 2810/4212/399 +f 2826/4246/400 2833/4253/400 2827/4247/400 +f 2829/4249/399 2832/4252/399 2830/4250/399 +f 2826/4246/403 2830/4250/403 2832/4252/403 +f 2827/4247/401 2829/4620/401 2831/4254/401 +f 2834/4255/402 2841/4621/402 2835/4256/402 +f 2837/4258/404 2840/4261/404 2838/4259/404 +f 2836/4257/400 2835/4256/400 2840/4261/400 +f 2839/4260/399 2838/4259/399 2841/4262/399 +f 2842/4264/402 2849/4622/402 2843/4265/402 +f 2845/4267/404 2848/4270/404 2846/4268/404 +f 2844/4266/400 2843/4265/400 2848/4270/400 +f 2847/4269/399 2846/4268/399 2849/4271/399 +f 2850/4273/400 2857/4280/400 2851/4274/400 +f 2853/4276/399 2856/4279/399 2854/4277/399 +f 2850/4273/403 2854/4277/403 2856/4279/403 +f 2851/4274/401 2853/4623/401 2855/4281/401 +f 2858/4282/403 2866/4624/403 2859/4283/403 +f 2861/4285/401 2865/4319/401 2862/4286/401 +f 2858/4288/399 2868/4315/399 2864/4289/399 +f 2858/4288/399 2862/4290/399 2865/4291/399 +f 2858/4293/405 2860/4625/405 2867/4294/405 +f 2859/4283/400 2861/4320/400 2863/4296/400 +f 2869/4297/404 2875/4626/404 2870/4298/404 +f 2872/4300/402 2876/4627/402 2873/4301/402 +f 2875/4303/401 2876/4627/401 2872/4300/401 +f 2869/4305/399 2873/4323/399 2876/4306/399 +f 2863/4296/400 2879/4628/400 2867/4294/400 +f 2870/4298/400 2872/4629/400 2874/4308/400 +f 2877/4309/402 2868/4295/402 2867/4294/402 +f 2879/4311/404 2864/4630/404 2880/4312/404 +f 2862/4286/406 2864/4630/406 2879/4311/406 +f 2877/4314/399 2880/4631/399 2864/4289/399 +f 2878/4316/401 2881/4313/401 2880/4312/401 +f 2867/4294/400 2879/4628/400 2881/4318/400 +f 2865/4319/407 2861/4285/407 2874/4302/407 +f 2859/4283/400 2871/4299/400 2874/4308/400 +f 2866/4321/408 2869/4297/408 2871/4299/408 +f 2873/4323/399 2869/4305/399 2866/4292/399 +f 2882/4324/400 2889/4331/400 2883/4325/400 +f 2885/4327/399 2888/4330/399 2886/4328/399 +f 2882/4324/403 2886/4328/403 2888/4330/403 +f 2883/4325/401 2885/4632/401 2887/4332/401 +f 2890/4333/402 2897/4633/402 2891/4334/402 +f 2893/4336/404 2896/4339/404 2894/4337/404 +f 2892/4335/400 2891/4334/400 2896/4339/400 +f 2895/4338/399 2894/4337/399 2897/4340/399 +f 2898/4342/402 2905/4634/402 2899/4343/402 +f 2901/4345/404 2904/4348/404 2902/4346/404 +f 2900/4344/400 2899/4343/400 2904/4348/400 +f 2903/4347/399 2902/4346/399 2905/4349/399 +f 2906/4351/403 3146/4635/403 2907/4352/403 +f 2909/4354/403 3147/4636/403 2910/4355/403 +f 2912/4357/403 3148/4637/403 2913/4358/403 +f 2915/4360/403 3149/4638/403 2916/4361/403 +f 2918/4363/403 3150/4639/403 2919/4364/403 +f 2921/4366/403 3151/4640/403 2922/4367/403 +f 2924/4369/403 3152/4641/403 2925/4370/403 +f 2927/4372/403 3153/4642/403 2928/4373/403 +f 2930/4375/401 3154/4643/401 2931/4376/401 +f 2933/4378/401 3155/4644/401 2934/4379/401 +f 2936/4381/401 3156/4645/401 2937/4382/401 +f 2939/4384/401 3157/4646/401 2940/4385/401 +f 2942/4387/401 3158/4647/401 2943/4388/401 +f 2945/4390/401 3159/4648/401 2946/4391/401 +f 2948/4393/401 3160/4649/401 2949/4394/401 +f 2951/4396/401 3161/4650/401 2952/4397/401 +f 2954/4399/403 3162/4651/403 2955/4400/403 +f 2957/4402/403 3163/4652/403 2958/4403/403 +f 2960/4405/401 3164/4653/401 2961/4406/401 +f 2963/4408/401 3165/4654/401 2964/4409/401 +f 2966/4411/402 3166/4655/402 2967/4412/402 +f 2969/4414/402 3167/4656/402 2970/4415/402 +f 2972/4417/402 3168/4657/402 2973/4418/402 +f 2975/4420/402 3169/4658/402 2976/4421/402 +f 2978/4423/402 3170/4659/402 2979/4424/402 +f 2981/4426/402 3171/4660/402 2982/4427/402 +f 2984/4429/402 3172/4661/402 2985/4430/402 +f 2987/4432/402 3173/4662/402 2988/4433/402 +f 2990/4435/402 3174/4663/402 2991/4436/402 +f 2993/4438/402 3175/4664/402 2994/4439/402 +f 2996/4441/404 3176/4665/404 2997/4442/404 +f 2999/4444/404 3177/4666/404 3000/4445/404 +f 3002/4447/404 3178/4667/404 3003/4448/404 +f 3005/4450/404 3179/4668/404 3006/4451/404 +f 3008/4453/404 3180/4669/404 3009/4454/404 +f 3011/4456/404 3181/4670/404 3012/4457/404 +f 3014/4459/404 3182/4671/404 3015/4460/404 +f 3017/4462/404 3183/4672/404 3018/4463/404 +f 3020/4465/404 3184/4673/404 3021/4466/404 +f 3023/4468/404 3185/4674/404 3024/4469/404 +f 3026/4471/401 3186/4675/401 3027/4472/401 +f 3029/4474/401 3187/4676/401 3030/4475/401 +f 3032/4477/401 3188/4677/401 3033/4478/401 +f 3035/4480/401 3189/4678/401 3036/4481/401 +f 3038/4483/401 3190/4679/401 3039/4484/401 +f 3041/4486/401 3191/4680/401 3042/4487/401 +f 3044/4489/401 3192/4681/401 3045/4490/401 +f 3047/4492/401 3193/4682/401 3048/4493/401 +f 3050/4495/403 3194/4683/403 3051/4496/403 +f 3053/4498/403 3195/4684/403 3054/4499/403 +f 3056/4501/403 3196/4685/403 3057/4502/403 +f 3059/4504/403 3197/4686/403 3060/4505/403 +f 3062/4507/403 3198/4687/403 3063/4508/403 +f 3065/4510/403 3199/4688/403 3066/4511/403 +f 3068/4513/403 3200/4689/403 3069/4514/403 +f 3071/4516/403 3201/4690/403 3072/4517/403 +f 3074/4519/401 3202/4691/401 3075/4520/401 +f 3077/4522/401 3203/4692/401 3078/4523/401 +f 3080/4525/403 3204/4693/403 3081/4526/403 +f 3083/4528/403 3205/4694/403 3084/4529/403 +f 3086/4531/404 3206/4695/404 3087/4532/404 +f 3089/4534/404 3207/4696/404 3090/4535/404 +f 3092/4537/404 3208/4697/404 3093/4538/404 +f 3095/4540/404 3209/4698/404 3096/4541/404 +f 3098/4543/404 3210/4699/404 3099/4544/404 +f 3101/4546/404 3211/4700/404 3102/4547/404 +f 3104/4549/404 3212/4701/404 3105/4550/404 +f 3107/4552/404 3213/4702/404 3108/4553/404 +f 3110/4555/404 3214/4703/404 3111/4556/404 +f 3113/4558/404 3215/4704/404 3114/4559/404 +f 3116/4561/402 3216/4705/402 3117/4562/402 +f 3119/4564/402 3217/4706/402 3120/4565/402 +f 3122/4567/402 3218/4707/402 3123/4568/402 +f 3125/4570/402 3219/4708/402 3126/4571/402 +f 3128/4573/402 3220/4709/402 3129/4574/402 +f 3131/4576/402 3221/4710/402 3132/4577/402 +f 3134/4579/402 3222/4711/402 3135/4580/402 +f 3137/4582/402 3223/4712/402 3138/4583/402 +f 3140/4585/402 3224/4713/402 3141/4586/402 +f 3143/4588/402 3225/4714/402 3144/4589/402 +o Atlas_Pivot +v 1.187500 4.500000 -4.187500 +v 1.187500 3.500000 -3.812500 +v 1.187500 3.500000 -4.187500 +v 1.187500 4.500000 -3.812500 +v 0.812500 3.500000 -3.812500 +v 0.750000 2.000000 -2.750000 +v 1.250000 2.000000 -2.250000 +v 0.750000 2.000000 -2.250000 +v -1.250000 2.000000 -2.750000 +v -0.750000 2.000000 -2.250000 +v -1.250000 2.000000 -2.250000 +v 1.250000 3.500000 -3.750000 +v 0.750000 3.500000 -4.250000 +v 0.750000 3.500000 -3.750000 +v -0.750000 3.500000 -3.750000 +v -1.250000 3.500000 -4.250000 +v -1.250000 3.500000 -3.750000 +v -0.750000 1.500000 -3.750000 +v -1.250000 1.500000 -3.750000 +v 0.750000 1.500000 -4.250000 +v 1.250000 3.500000 -4.250000 +v 1.250000 1.500000 -4.250000 +v 1.250000 1.500000 -3.750000 +v 0.750000 1.500000 -3.750000 +v -0.750000 1.500000 -4.250000 +v -1.250000 1.500000 -4.250000 +v -0.750000 3.500000 -4.250000 +v 1.250000 3.500000 -2.250000 +v 0.750000 3.500000 -2.750000 +v 0.750000 3.500000 -2.250000 +v -0.750000 3.500000 -2.250000 +v -1.250000 3.500000 -2.750000 +v -1.250000 3.500000 -2.250000 +v -0.750000 2.000000 -2.750000 +v 1.250000 2.000000 -2.750000 +v -0.750000 3.500000 -2.750000 +v 1.250000 3.500000 -2.750000 +v 0.812500 4.500000 -3.812500 +v 0.812500 3.500000 -4.187500 +v 0.812500 4.500000 -4.187500 +v 1.187500 4.500000 -2.687500 +v 1.187500 3.500000 -2.312500 +v 1.187500 3.500000 -2.687500 +v 1.187500 4.500000 -2.312500 +v 0.812500 3.500000 -2.312500 +v 0.812500 4.500000 -2.312500 +v 0.812500 3.500000 -2.687500 +v 0.812500 4.500000 -2.687500 +v -0.812500 4.500000 -4.187500 +v -0.812500 3.500000 -3.812500 +v -0.812500 3.500000 -4.187500 +v -0.812500 4.500000 -3.812500 +v -1.187500 3.500000 -3.812500 +v -1.187500 4.500000 -3.812500 +v -1.187500 3.500000 -4.187500 +v -1.187500 4.500000 -4.187500 +v -0.812500 4.500000 -2.687500 +v -0.812500 3.500000 -2.312500 +v -0.812500 3.500000 -2.687500 +v -0.812500 4.500000 -2.312500 +v -1.187500 3.500000 -2.312500 +v -1.187500 4.500000 -2.312500 +v -1.187500 3.500000 -2.687500 +v -1.187500 4.500000 -2.687500 +v 1.000000 2.500000 -2.750000 +v 1.000000 3.000000 -3.750000 +v 1.000000 3.000000 -2.750000 +v -1.000000 3.000000 -3.750000 +v -1.000000 2.500000 -2.750000 +v -1.000000 3.000000 -2.750000 +v 0.750000 2.500000 -4.000000 +v -0.750000 3.000000 -4.000000 +v 0.750000 3.000000 -4.000000 +v -0.750000 3.000000 -2.500000 +v 0.750000 2.500000 -2.500000 +v 0.750000 3.000000 -2.500000 +v 1.000000 3.000000 -3.750000 +v 1.000000 2.500000 -2.750000 +v 1.000000 3.000000 -2.750000 +v -1.000000 2.500000 -2.750000 +v -1.000000 3.000000 -3.750000 +v -1.000000 3.000000 -2.750000 +v -0.750000 3.000000 -4.000000 +v 0.750000 2.500000 -4.000000 +v 0.750000 3.000000 -4.000000 +v 0.750000 2.500000 -2.500000 +v -0.750000 3.000000 -2.500000 +v 0.750000 3.000000 -2.500000 +v 1.000000 2.500000 -3.750000 +v -1.000000 2.500000 -3.750000 +v -0.750000 2.500000 -4.000000 +v -0.750000 2.500000 -2.500000 +v 1.000000 2.500000 -3.750000 +v -1.000000 2.500000 -3.750000 +v -0.750000 2.500000 -4.000000 +v -0.750000 2.500000 -2.500000 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.692308 0.870968 +vt 0.717949 0.903226 +vt 0.692308 0.903226 +vt 0.692308 0.870968 +vt 0.717949 0.903226 +vt 0.692308 0.903226 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.769231 0.709677 +vt 0.743590 0.838710 +vt 0.743590 0.709677 +vt 0.717949 0.709677 +vt 0.692308 0.838710 +vt 0.692308 0.709677 +vt 0.769231 0.709677 +vt 0.743590 0.838710 +vt 0.743590 0.709677 +vt 0.794872 0.709677 +vt 0.769231 0.838710 +vt 0.717949 0.709677 +vt 0.794872 0.709677 +vt 0.769231 0.838710 +vt 0.692308 0.838710 +vt 0.692308 0.709677 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.692308 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.794872 0.741935 +vt 0.769231 0.838710 +vt 0.769231 0.741935 +vt 0.743590 0.741935 +vt 0.717949 0.741935 +vt 0.794872 0.741935 +vt 0.769231 0.838710 +vt 0.769231 0.741935 +vt 0.743590 0.741935 +vt 0.717949 0.741935 +vt 0.692308 0.838710 +vt 0.692308 0.741935 +vt 0.743590 0.838710 +vt 0.692308 0.838710 +vt 0.692308 0.741935 +vt 0.743590 0.838710 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.769231 0.967742 +vt 0.750000 0.903226 +vt 0.769231 0.903226 +vt 0.750000 0.967742 +vt 0.730769 0.903226 +vt 0.730769 0.967742 +vt 0.711538 0.903226 +vt 0.711538 0.967742 +vt 0.692308 0.903226 +vt 0.743590 0.870968 +vt 0.794872 0.903226 +vt 0.743590 0.903226 +vt 0.743590 0.903226 +vt 0.794872 0.870968 +vt 0.794872 0.903226 +vt 0.717949 0.838710 +vt 0.794872 0.870968 +vt 0.717949 0.870968 +vt 0.717949 0.870968 +vt 0.794872 0.838710 +vt 0.794872 0.870968 +vt 0.794872 0.903226 +vt 0.743590 0.870968 +vt 0.743590 0.903226 +vt 0.794872 0.870968 +vt 0.743590 0.903226 +vt 0.794872 0.903226 +vt 0.794872 0.870968 +vt 0.717949 0.838710 +vt 0.717949 0.870968 +vt 0.794872 0.838710 +vt 0.717949 0.870968 +vt 0.794872 0.870968 +vt 0.717949 0.870968 +vt 0.717949 0.870968 +vt 0.794872 0.838710 +vt 0.794872 0.838710 +vt 0.794872 0.838710 +vt 0.794872 0.838710 +vt 0.692308 0.967742 +vt 0.692308 0.967742 +vt 0.692308 0.967742 +vt 0.692308 0.967742 +vt 0.794872 0.870968 +vt 0.743590 0.870968 +vt 0.794872 0.838710 +vt 0.717949 0.838710 +vt 0.794872 0.870968 +vt 0.743590 0.870968 +vt 0.794872 0.838710 +vt 0.717949 0.838710 vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 -1.0000 0.0000 -vn -0.7071 -0.7071 0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.7071 -0.7071 -0.0000 -vn -0.0000 -0.7071 -0.7071 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 s off -f 3062/4184/303 3056/4185/303 3054/4186/303 -f 3063/4187/303 3054/4186/303 3055/4188/303 -f 3055/4188/304 3061/4189/304 3057/4190/304 -f 3056/4191/305 3059/4192/305 3054/4193/305 -f 3057/4194/306 3058/4195/306 3056/4196/306 -f 3054/4197/307 3060/4198/307 3055/4199/307 -f 3066/4200/304 3064/4201/304 3062/4202/304 -f 3064/4203/303 3057/4190/303 3056/4185/303 -f 3065/4204/303 3055/4188/303 3057/4190/303 -f 3059/4205/308 3067/4206/308 3060/4207/308 -f 3060/4207/308 3069/4208/308 3061/4189/308 -f 3061/4189/308 3068/4209/308 3058/4210/308 -f 3058/4210/308 3066/4211/308 3059/4205/308 -f 3071/4212/303 3072/4213/303 3070/4214/303 -f 3068/4215/307 3065/4216/307 3064/4217/307 -f 3069/4218/305 3063/4219/305 3065/4220/305 -f 3067/4221/306 3062/4222/306 3063/4223/306 -f 3075/4224/306 3077/4225/306 3082/4226/306 -f 3077/4227/305 3084/4228/305 3082/4229/305 -f 3074/4230/304 3078/4231/304 3083/4232/304 -f 3085/4233/309 3082/4229/309 3084/4228/309 -f 3083/4234/307 3081/4235/307 3079/4236/307 -f 3085/4237/307 3084/4238/307 3080/4239/307 -f 3084/4238/305 3086/4240/305 3080/4239/305 -f 3086/4241/310 3083/4234/310 3078/4242/310 -f 3093/4243/303 3091/4244/303 3092/4245/303 -f 3087/4246/305 3091/4244/305 3089/4247/305 -f 3089/4248/306 3094/4249/306 3090/4250/306 -f 3088/4251/307 3092/4245/307 3087/4252/307 -f 3090/4253/304 3093/4243/304 3088/4254/304 -f 3113/4255/303 3111/4256/303 3112/4257/303 -f 3117/4258/303 3115/4259/303 3116/4260/303 -f 3121/4261/303 3119/4262/303 3120/4263/303 -f 3125/4264/303 3123/4265/303 3124/4266/303 -f 3106/4267/304 3121/4261/304 3104/4268/304 -f 3097/4269/306 3114/4270/306 3098/4271/306 -f 3105/4272/306 3122/4273/306 3106/4267/306 -f 3099/4274/305 3115/4275/305 3101/4276/305 -f 3107/4277/305 3123/4278/305 3109/4279/305 -f 3100/4280/307 3116/4281/307 3099/4274/307 -f 3108/4282/307 3124/4283/307 3107/4277/307 -f 3102/4284/304 3117/4258/304 3100/4285/304 -f 3110/4286/304 3125/4264/304 3108/4287/304 -f 3101/4276/306 3118/4288/306 3102/4284/306 -f 3095/4289/305 3111/4290/305 3097/4269/305 -f 3109/4279/306 3126/4291/306 3110/4286/306 -f 3103/4292/305 3119/4293/305 3105/4272/305 -f 3096/4294/307 3112/4295/307 3095/4289/307 -f 3104/4296/307 3120/4297/307 3103/4292/307 -f 3098/4271/304 3113/4255/304 3096/4298/304 -f 3129/4299/307 3128/4300/307 3130/4301/307 -f 3133/4302/306 3132/4303/306 3131/4304/306 -f 3135/4305/304 3138/4306/304 3136/4307/304 -f 3142/4308/305 3139/4309/305 3140/4310/305 -f 3153/4311/303 3151/4312/303 3152/4313/303 -f 3157/4314/303 3155/4315/303 3156/4316/303 -f 3146/4317/304 3153/4311/304 3144/4318/304 -f 3143/4319/305 3151/4320/305 3145/4321/305 -f 3149/4322/306 3158/4323/306 3150/4324/306 -f 3148/4325/307 3156/4326/307 3147/4327/307 -f 3145/4321/306 3154/4328/306 3146/4317/306 -f 3144/4329/307 3152/4330/307 3143/4319/307 -f 3150/4324/304 3157/4314/304 3148/4331/304 -f 3147/4327/305 3155/4332/305 3149/4322/305 -f 3160/4333/307 3162/4334/307 3167/4335/307 -f 3162/4336/304 3169/4337/304 3167/4338/304 -f 3159/4339/305 3163/4340/305 3168/4341/305 -f 3161/4342/311 3169/4337/311 3170/4343/311 -f 3168/4344/306 3166/4345/306 3164/4346/306 -f 3170/4347/306 3169/4348/306 3165/4349/306 -f 3169/4348/304 3171/4350/304 3165/4349/304 -f 3171/4351/312 3168/4344/312 3163/4352/312 -f 3173/4353/305 3175/4354/305 3180/4355/305 -f 3175/4356/307 3182/4357/307 3180/4358/307 -f 3172/4359/306 3176/4360/306 3181/4361/306 -f 3174/4362/310 3182/4357/310 3183/4363/310 -f 3181/4364/304 3179/4365/304 3177/4366/304 -f 3183/4367/304 3182/4368/304 3178/4369/304 -f 3182/4368/307 3184/4370/307 3178/4369/307 -f 3184/4371/311 3181/4364/311 3176/4372/311 -f 3186/4373/304 3188/4374/304 3193/4375/304 -f 3188/4376/306 3195/4377/306 3193/4378/306 -f 3185/4379/307 3189/4380/307 3194/4381/307 -f 3196/4382/312 3193/4378/312 3195/4377/312 -f 3194/4383/305 3192/4384/305 3190/4385/305 -f 3196/4386/305 3195/4387/305 3191/4388/305 -f 3195/4387/306 3197/4389/306 3191/4388/306 -f 3197/4390/309 3194/4383/309 3189/4391/309 -f 3199/4392/306 3200/4393/306 3201/4394/306 -f 3203/4395/307 3204/4396/307 3202/4397/307 -f 3209/4398/305 3206/4399/305 3207/4400/305 -f 3210/4401/304 3213/4402/304 3211/4403/304 -f 3062/4184/303 3064/4203/303 3056/4185/303 -f 3063/4187/303 3062/4184/303 3054/4186/303 -f 3055/4188/304 3060/4207/304 3061/4189/304 -f 3056/4191/305 3058/4404/305 3059/4192/305 -f 3057/4194/306 3061/4405/306 3058/4195/306 -f 3054/4197/307 3059/4406/307 3060/4198/307 -f 3066/4200/304 3068/4407/304 3064/4201/304 -f 3064/4203/303 3065/4204/303 3057/4190/303 -f 3065/4204/303 3063/4187/303 3055/4188/303 -f 3059/4205/308 3066/4211/308 3067/4206/308 -f 3060/4207/308 3067/4206/308 3069/4208/308 -f 3061/4189/308 3069/4208/308 3068/4209/308 -f 3058/4210/308 3068/4209/308 3066/4211/308 -f 3071/4212/303 3073/4408/303 3072/4213/303 -f 3068/4215/307 3069/4409/307 3065/4216/307 -f 3069/4218/305 3067/4410/305 3063/4219/305 -f 3067/4221/306 3066/4411/306 3062/4222/306 -f 3076/4412/306 3074/4230/306 3082/4226/306 -f 3074/4230/306 3075/4224/306 3082/4226/306 -f 3077/4227/305 3081/4235/305 3084/4228/305 -f 3079/4413/304 3075/4224/304 3083/4232/304 -f 3075/4224/304 3074/4230/304 3083/4232/304 -f 3085/4233/309 3076/4414/309 3082/4229/309 -f 3083/4234/307 3084/4228/307 3081/4235/307 -f 3086/4241/310 3084/4228/310 3083/4234/310 -f 3093/4243/303 3094/4249/303 3091/4244/303 -f 3087/4246/305 3092/4245/305 3091/4244/305 -f 3089/4248/306 3091/4244/306 3094/4249/306 -f 3088/4251/307 3093/4243/307 3092/4245/307 -f 3090/4253/304 3094/4249/304 3093/4243/304 -f 3113/4255/303 3114/4270/303 3111/4256/303 -f 3117/4258/303 3118/4288/303 3115/4259/303 -f 3121/4261/303 3122/4273/303 3119/4262/303 -f 3125/4264/303 3126/4291/303 3123/4265/303 -f 3106/4267/304 3122/4273/304 3121/4261/304 -f 3097/4269/306 3111/4290/306 3114/4270/306 -f 3105/4272/306 3119/4293/306 3122/4273/306 -f 3099/4274/305 3116/4281/305 3115/4275/305 -f 3107/4277/305 3124/4283/305 3123/4278/305 -f 3100/4280/307 3117/4415/307 3116/4281/307 -f 3108/4282/307 3125/4416/307 3124/4283/307 -f 3102/4284/304 3118/4288/304 3117/4258/304 -f 3110/4286/304 3126/4291/304 3125/4264/304 -f 3101/4276/306 3115/4275/306 3118/4288/306 -f 3095/4289/305 3112/4295/305 3111/4290/305 -f 3109/4279/306 3123/4278/306 3126/4291/306 -f 3103/4292/305 3120/4297/305 3119/4293/305 -f 3096/4294/307 3113/4417/307 3112/4295/307 -f 3104/4296/307 3121/4418/307 3120/4297/307 -f 3098/4271/304 3114/4270/304 3113/4255/304 -f 3129/4299/307 3127/4419/307 3128/4300/307 -f 3133/4302/306 3134/4420/306 3132/4303/306 -f 3135/4305/304 3137/4421/304 3138/4306/304 -f 3142/4308/305 3141/4422/305 3139/4309/305 -f 3153/4311/303 3154/4328/303 3151/4312/303 -f 3157/4314/303 3158/4323/303 3155/4315/303 -f 3146/4317/304 3154/4328/304 3153/4311/304 -f 3143/4319/305 3152/4330/305 3151/4320/305 -f 3149/4322/306 3155/4332/306 3158/4323/306 -f 3148/4325/307 3157/4423/307 3156/4326/307 -f 3145/4321/306 3151/4320/306 3154/4328/306 -f 3144/4329/307 3153/4424/307 3152/4330/307 -f 3150/4324/304 3158/4323/304 3157/4314/304 -f 3147/4327/305 3156/4326/305 3155/4332/305 -f 3161/4425/307 3159/4339/307 3167/4335/307 -f 3159/4339/307 3160/4333/307 3167/4335/307 -f 3162/4336/304 3166/4345/304 3169/4337/304 -f 3164/4426/305 3160/4333/305 3168/4341/305 -f 3160/4333/305 3159/4339/305 3168/4341/305 -f 3161/4342/311 3167/4338/311 3169/4337/311 -f 3168/4344/306 3169/4337/306 3166/4345/306 -f 3171/4351/312 3169/4337/312 3168/4344/312 -f 3174/4427/305 3172/4359/305 3180/4355/305 -f 3172/4359/305 3173/4353/305 3180/4355/305 -f 3175/4356/307 3179/4365/307 3182/4357/307 -f 3177/4428/306 3173/4353/306 3181/4361/306 -f 3173/4353/306 3172/4359/306 3181/4361/306 -f 3174/4362/310 3180/4358/310 3182/4357/310 -f 3181/4364/304 3182/4357/304 3179/4365/304 -f 3184/4371/311 3182/4357/311 3181/4364/311 -f 3187/4429/304 3185/4379/304 3193/4375/304 -f 3185/4379/304 3186/4373/304 3193/4375/304 -f 3188/4376/306 3192/4384/306 3195/4377/306 -f 3190/4430/307 3186/4373/307 3194/4381/307 -f 3186/4373/307 3185/4379/307 3194/4381/307 -f 3196/4382/312 3187/4431/312 3193/4378/312 -f 3194/4383/305 3195/4377/305 3192/4384/305 -f 3197/4390/309 3195/4377/309 3194/4383/309 -f 3199/4392/306 3198/4432/306 3200/4393/306 -f 3203/4395/307 3205/4433/307 3204/4396/307 -f 3209/4398/305 3208/4434/305 3206/4399/305 -f 3210/4401/304 3212/4435/304 3213/4402/304 -o V2_Pad -v -0.500000 2.000000 0.500000 +f 3226/4715/409 3227/4716/409 3228/4717/409 +f 3229/4718/410 3230/4719/410 3227/4716/410 +f 3231/4720/411 3232/4721/411 3233/4722/411 +f 3234/4723/411 3235/4724/411 3236/4725/411 +f 3237/4726/412 3238/4727/412 3239/4728/412 +f 3240/4729/412 3241/4730/412 3242/4731/412 +f 3243/4732/410 3242/4733/410 3244/4734/410 +f 3245/4735/413 3246/4736/413 3247/4737/413 +f 3248/4738/410 3239/4739/410 3249/4740/410 +f 3250/4741/409 3240/4742/409 3243/4732/409 +f 3244/4734/414 3241/4730/414 3251/4743/414 +f 3247/4744/409 3237/4745/409 3248/4738/409 +f 3249/4740/414 3238/4727/414 3245/4735/414 +f 3251/4743/413 3252/4746/413 3250/4747/413 +f 3253/4748/412 3254/4749/412 3255/4750/412 +f 3256/4751/412 3257/4752/412 3258/4753/412 +f 3259/4754/409 3256/4755/409 3235/4756/409 +f 3236/4757/414 3257/4752/414 3234/4758/414 +f 3260/4759/409 3253/4760/409 3232/4761/409 +f 3233/4762/414 3254/4749/414 3231/4763/414 +f 3234/4758/413 3261/4764/413 3259/4765/413 +f 3235/4756/410 3258/4766/410 3236/4757/410 +f 3231/4763/413 3262/4767/413 3260/4768/413 +f 3232/4761/410 3255/4769/410 3233/4762/410 +f 3263/4770/414 3264/4771/414 3230/4719/414 +f 3265/4772/413 3228/4773/413 3264/4771/413 +f 3266/4774/409 3267/4775/409 3268/4776/409 +f 3269/4777/410 3270/4778/410 3267/4775/410 +f 3271/4779/414 3272/4780/414 3270/4778/414 +f 3273/4781/413 3268/4782/413 3272/4780/413 +f 3274/4783/409 3275/4784/409 3276/4785/409 +f 3277/4786/410 3278/4787/410 3275/4784/410 +f 3279/4788/414 3280/4789/414 3278/4787/414 +f 3281/4790/413 3276/4791/413 3280/4789/413 +f 3282/4792/409 3283/4793/409 3284/4794/409 +f 3285/4795/410 3286/4796/410 3283/4793/410 +f 3287/4797/414 3288/4798/414 3286/4796/414 +f 3289/4799/413 3284/4800/413 3288/4798/413 +f 3290/4801/409 3291/4802/409 3292/4803/409 +f 3293/4804/414 3294/4805/414 3295/4806/414 +f 3296/4807/413 3297/4808/413 3298/4809/413 +f 3299/4810/410 3300/4811/410 3301/4812/410 +f 3302/4813/414 3303/4814/414 3304/4815/414 +f 3305/4816/409 3306/4817/409 3307/4818/409 +f 3308/4819/410 3309/4820/410 3310/4821/410 +f 3311/4822/413 3312/4823/413 3313/4824/413 +f 3226/4715/409 3229/4718/409 3227/4716/409 +f 3229/4718/410 3263/4770/410 3230/4719/410 +f 3231/4720/411 3260/4825/411 3232/4721/411 +f 3234/4723/411 3259/4826/411 3235/4724/411 +f 3237/4726/412 3246/4736/412 3238/4727/412 +f 3240/4729/412 3252/4746/412 3241/4730/412 +f 3243/4732/410 3240/4742/410 3242/4733/410 +f 3245/4735/413 3238/4727/413 3246/4736/413 +f 3248/4738/410 3237/4745/410 3239/4739/410 +f 3250/4741/409 3252/4827/409 3240/4742/409 +f 3244/4734/414 3242/4733/414 3241/4730/414 +f 3247/4744/409 3246/4828/409 3237/4745/409 +f 3249/4740/414 3239/4739/414 3238/4727/414 +f 3251/4743/413 3241/4730/413 3252/4746/413 +f 3253/4748/412 3262/4767/412 3254/4749/412 +f 3256/4751/412 3261/4764/412 3257/4752/412 +f 3259/4754/409 3261/4829/409 3256/4755/409 +f 3236/4757/414 3258/4766/414 3257/4752/414 +f 3260/4759/409 3262/4830/409 3253/4760/409 +f 3233/4762/414 3255/4769/414 3254/4749/414 +f 3234/4758/413 3257/4752/413 3261/4764/413 +f 3235/4756/410 3256/4755/410 3258/4766/410 +f 3231/4763/413 3254/4749/413 3262/4767/413 +f 3232/4761/410 3253/4760/410 3255/4769/410 +f 3263/4770/414 3265/4772/414 3264/4771/414 +f 3265/4772/413 3226/4831/413 3228/4773/413 +f 3266/4774/409 3269/4777/409 3267/4775/409 +f 3269/4777/410 3271/4779/410 3270/4778/410 +f 3271/4779/414 3273/4781/414 3272/4780/414 +f 3273/4781/413 3266/4832/413 3268/4782/413 +f 3274/4783/409 3277/4786/409 3275/4784/409 +f 3277/4786/410 3279/4788/410 3278/4787/410 +f 3279/4788/414 3281/4790/414 3280/4789/414 +f 3281/4790/413 3274/4833/413 3276/4791/413 +f 3282/4792/409 3285/4795/409 3283/4793/409 +f 3285/4795/410 3287/4797/410 3286/4796/410 +f 3287/4797/414 3289/4799/414 3288/4798/414 +f 3289/4799/413 3282/4834/413 3284/4800/413 +f 3290/4801/409 3314/4835/409 3291/4802/409 +f 3293/4804/414 3315/4836/414 3294/4805/414 +f 3296/4807/413 3316/4837/413 3297/4808/413 +f 3299/4810/410 3317/4838/410 3300/4811/410 +f 3302/4813/414 3318/4839/414 3303/4814/414 +f 3305/4816/409 3319/4840/409 3306/4817/409 +f 3308/4819/410 3320/4841/410 3309/4820/410 +f 3311/4822/413 3321/4842/413 3312/4823/413 +o Atlas_Rope +v -1.585786 16.750000 1.409011 +v -1.762563 16.250000 1.939341 +v -1.939340 16.250000 1.762564 +v -2.292893 11.000000 2.116117 +v -2.116117 16.250000 1.939341 +v -2.116117 11.000000 2.292893 +v -1.939340 16.250000 2.116118 +v -2.292893 11.000000 2.469671 +v -2.469670 11.000000 2.292893 +v -1.055456 17.000000 0.878681 +v -0.878680 16.750000 0.701904 +v -1.055456 16.750000 0.878681 +v -1.585786 17.000000 1.409011 +v -1.409010 16.750000 1.585787 +v -0.878680 17.000000 1.055457 +v -0.878680 16.750000 1.055457 +v -1.409010 17.000000 1.585787 +v -0.701903 16.750000 0.878681 +v -0.878680 15.250000 0.701904 +v -0.348350 14.250000 0.171574 +v -1.055456 15.250000 0.878681 +v -0.701903 15.250000 0.878681 +v -0.878680 15.250000 1.055457 +v -0.171573 14.250000 -0.005203 +v -0.171573 14.250000 0.348351 +v 0.005204 14.250000 0.171574 +vt 0.897436 0.395161 +vt 0.884615 0.346774 +vt 0.897436 0.346774 +vt 0.846154 -0.000000 +vt 0.858974 0.338710 +vt 0.846154 0.338710 +vt 0.884615 -0.000000 +vt 0.871795 0.338710 +vt 0.871795 -0.000000 +vt 0.858974 -0.000000 +vt 0.897436 -0.000000 +vt 0.884615 0.338710 +vt 0.858974 0.451613 +vt 0.846154 0.467742 +vt 0.846154 0.451613 +vt 0.858974 0.403226 +vt 0.846154 0.346774 +vt 0.884615 0.395161 +vt 0.871795 0.451613 +vt 0.897436 0.403226 +vt 0.884615 0.451613 +vt 0.884615 0.403226 +vt 0.871795 0.403226 +vt 0.871795 0.467742 +vt 0.884615 0.532258 +vt 0.897436 0.467742 +vt 0.897436 0.532258 +vt 0.884615 0.629032 +vt 0.897436 0.629032 +vt 0.871795 0.629032 +vt 0.858974 0.629032 +vt 0.871795 0.532258 +vt 0.846154 0.629032 +vt 0.858974 0.532258 +vt 0.884615 0.467742 +vt 0.858974 0.467742 +vt 0.871795 0.467742 +vt 0.846154 0.532258 +vt 0.897436 0.338710 +vt 0.846154 0.403226 +vt 0.846154 0.395161 +vt 0.897436 0.451613 +vt 0.884615 0.467742 +vt 0.858974 0.467742 +vt 0.846154 0.467742 +vn 0.5000 -0.7071 -0.5000 +vn -0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.7039 0.0948 0.7039 +vn 0.7039 -0.0948 -0.7039 +vn -0.5000 0.7071 0.5000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 0.7071 -0.5000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.5000 -0.7071 0.5000 +s off +f 3322/4843/415 3323/4844/415 3324/4845/415 +f 3325/4846/416 3326/4847/416 3324/4848/416 +f 3327/4849/417 3328/4850/417 3329/4851/417 +f 3329/4851/418 3326/4847/418 3330/4852/418 +f 3325/4853/419 3323/4854/419 3327/4849/419 +f 3331/4855/416 3332/4856/416 3333/4857/416 +f 3334/4858/416 3324/4859/416 3326/4847/416 +f 3328/4850/420 3334/4858/420 3326/4847/420 +f 3335/4860/417 3328/4850/417 3323/4844/417 +f 3334/4858/421 3336/4861/421 3331/4855/421 +f 3322/4862/422 3337/4863/422 3335/4864/422 +f 3337/4863/417 3336/4861/417 3338/4865/417 +f 3339/4866/423 3331/4855/423 3336/4861/423 +f 3340/4867/416 3341/4868/416 3342/4869/416 +f 3332/4870/416 3342/4869/416 3333/4871/416 +f 3339/4872/424 3340/4867/424 3332/4870/424 +f 3337/4873/417 3343/4874/417 3339/4872/417 +f 3333/4875/425 3344/4876/425 3337/4873/425 +f 3343/4874/423 3345/4877/423 3340/4867/423 +f 3343/4874/417 3346/4878/417 3347/4879/417 +f 3342/4880/426 3346/4878/426 3344/4876/426 +f 3322/4843/415 3335/4860/415 3323/4844/415 +f 3325/4846/416 3330/4852/416 3326/4847/416 +f 3327/4849/417 3323/4854/417 3328/4850/417 +f 3329/4851/418 3328/4850/418 3326/4847/418 +f 3325/4853/419 3324/4881/419 3323/4854/419 +f 3333/4857/416 3322/4882/416 3334/4858/416 +f 3334/4858/416 3331/4855/416 3333/4857/416 +f 3334/4858/416 3322/4883/416 3324/4859/416 +f 3328/4850/420 3338/4865/420 3334/4858/420 +f 3335/4860/417 3338/4865/417 3328/4850/417 +f 3334/4858/421 3338/4865/421 3336/4861/421 +f 3322/4862/422 3333/4884/422 3337/4863/422 +f 3338/4865/417 3335/4864/417 3337/4863/417 +f 3337/4863/417 3339/4885/417 3336/4861/417 +f 3339/4866/423 3332/4886/423 3331/4855/423 +f 3340/4867/416 3345/4877/416 3341/4868/416 +f 3332/4870/416 3340/4867/416 3342/4869/416 +f 3339/4872/424 3343/4874/424 3340/4867/424 +f 3337/4873/417 3344/4876/417 3343/4874/417 +f 3333/4875/425 3342/4880/425 3344/4876/425 +f 3343/4874/423 3347/4879/423 3345/4877/423 +f 3343/4874/417 3344/4876/417 3346/4878/417 +f 3342/4880/426 3341/4887/426 3346/4878/426 +o ABM_Pad v 0.500000 2.000000 0.500000 -v 0.500000 2.000000 -0.500000 -v -0.500000 2.000000 -0.500000 -v -1.500000 1.500000 -1.500000 -v 1.500000 1.500000 -1.500000 -v -1.500000 1.500000 -2.000000 -v 1.500000 1.500000 -2.000000 -v -1.500000 1.000000 -2.000000 -v 1.500000 1.000000 -2.000000 -v -1.500000 1.000000 -1.500000 -v 1.500000 1.000000 -1.500000 -v -1.500000 2.000000 1.500000 -v 1.500000 2.000000 1.500000 -v -1.500000 2.000000 -1.500000 -v 1.500000 2.000000 -1.500000 -v -0.500000 2.000000 0.500000 -v 0.500000 2.000000 0.500000 -v 0.500000 2.000000 -0.500000 -v -0.500000 2.000000 -0.500000 -v 0.500000 1.750000 -0.500000 +v -1.000000 2.000000 1.000000 +v 1.000000 2.000000 1.000000 +v -1.000000 1.750000 1.000000 v 0.500000 1.750000 0.500000 -v -0.500000 1.750000 -0.500000 +v 1.000000 1.750000 1.000000 +v -0.500000 2.000000 0.500000 +v -1.000000 2.000000 -1.000000 +v -0.500000 2.000000 -0.500000 +v 1.000000 2.000000 -1.000000 +v 0.500000 2.000000 -0.500000 +v -1.000000 1.750000 -1.000000 v -0.500000 1.750000 0.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 0.750000 1.125000 1.250000 -v 1.250000 1.125000 1.250000 -v 0.750000 1.125000 0.750000 -v 1.250000 1.125000 0.750000 -v 0.750000 1.625000 1.250000 -v 1.250000 1.625000 1.250000 -v 0.750000 1.625000 0.750000 -v 1.250000 1.625000 0.750000 -v 0.625000 1.000000 1.375000 -v 1.375000 1.000000 1.375000 -v 0.625000 1.000000 0.625000 -v 1.375000 1.000000 0.625000 -v 0.625000 1.125000 1.375000 -v 1.375000 1.125000 1.375000 -v 0.625000 1.125000 0.625000 -v 1.375000 1.125000 0.625000 -v 0.625000 1.625000 1.375000 -v 1.375000 1.625000 1.375000 -v 0.625000 1.625000 0.625000 -v 1.375000 1.625000 0.625000 -v 0.625000 1.750000 1.375000 -v 1.375000 1.750000 1.375000 -v 0.625000 1.750000 0.625000 -v 1.375000 1.750000 0.625000 -v -0.250000 1.000000 2.250000 -v 0.250000 1.000000 2.250000 -v -0.250000 1.000000 1.750000 -v 0.250000 1.000000 1.750000 -v -0.250000 10.000000 1.750000 -v -0.250000 10.000000 2.250000 -v 0.250000 10.000000 2.250000 -v 0.250000 10.000000 1.750000 -v 4.000000 2.750000 1.500000 -v 3.750000 2.750000 1.500000 -v 3.750000 2.750000 1.750000 -v 4.000000 2.750000 1.750000 -v 0.750001 2.000000 1.500000 -v 3.750000 2.000000 1.500000 -v 0.750001 1.500000 1.633975 -v 3.750000 1.500000 1.633975 -v 0.750001 1.133975 2.000000 -v 3.750000 1.133975 2.000000 -v 0.750001 1.000000 2.500000 -v 3.750000 1.000000 2.500000 -v 0.750001 1.133975 3.000000 -v 3.750000 1.133975 3.000000 -v 0.750001 1.500000 3.366025 -v 3.750000 1.500000 3.366025 -v 0.750001 2.000000 3.500000 -v 3.750000 2.000000 3.500000 -v 0.750001 2.500000 3.366025 -v 3.750000 2.500000 3.366025 -v 0.750001 2.866026 3.000000 -v 3.750000 2.866026 3.000000 -v 0.750001 3.000000 2.500000 -v 3.750000 3.000000 2.500000 -v 0.750001 2.866026 2.000000 -v 3.750000 2.866026 2.000000 -v 0.750001 2.500001 1.633975 -v 3.750000 2.500001 1.633975 -v 4.000000 1.000000 1.750000 -v 3.750000 1.000000 1.750000 -v 3.750000 1.000000 1.500000 -v 4.000000 1.000000 1.500000 -v 4.000000 1.250000 1.500000 -v 3.750000 1.250000 1.500000 -v 3.750000 1.250000 1.750000 -v 4.000000 1.250000 1.750000 -v 4.000000 1.250000 3.500000 -v 3.750000 1.250000 3.500000 -v 3.750000 1.250000 3.250000 -v 4.000000 1.250000 3.250000 -v 4.000000 1.000000 3.250000 -v 3.750000 1.000000 3.250000 -v 3.750000 1.000000 3.500000 -v 4.000000 1.000000 3.500000 -v 0.750000 1.000000 1.750000 +v 1.000000 1.750000 -1.000000 +v -0.500000 1.750000 -0.500000 +v 0.500000 1.750000 -0.500000 +v -0.500000 2.000000 0.500000 +v 0.500000 2.000000 -0.500000 +v -0.500000 2.000000 -0.500000 +v 0.937500 1.750000 0.937500 +v 0.937500 1.000000 0.562500 +v 0.937500 1.750000 0.562500 +v 0.562500 1.750000 0.562500 +v 0.562500 1.000000 0.937500 +v 0.562500 1.750000 0.937500 +v 0.562500 1.000000 0.562500 +v 0.937500 1.000000 0.937500 +v -0.500000 1.000000 -1.750000 +v 0.500000 1.375000 -1.750000 +v 0.500000 1.000000 -1.750000 +v 0.500000 1.500000 -1.375000 +v -0.500000 1.500000 -1.625000 +v -0.500000 1.500000 -1.375000 +v 0.500000 1.000000 -1.250000 +v -0.500000 1.375000 -1.250000 +v -0.500000 1.000000 -1.250000 +v 0.500000 1.500000 -1.625000 +v 0.500000 1.375000 -1.250000 +v -0.500000 1.375000 -1.750000 +v 0.750000 1.000000 -0.562500 +v 0.750000 1.750000 0.562500 +v 0.750000 1.000000 0.562500 +v 1.000000 11.000000 1.750000 +v 0.500000 11.000000 1.250000 +v 0.500000 11.000000 1.750000 +v -0.500000 11.000000 1.750000 +v -1.000000 11.000000 1.250000 +v -1.000000 11.000000 1.750000 +v 1.000000 1.000000 1.750000 v 0.500000 1.000000 1.750000 -v 0.500000 1.000000 1.500000 -v 0.750000 1.000000 1.500000 -v 0.750000 1.250000 1.500000 -v 0.500000 1.250000 1.500000 -v 0.500000 1.250000 1.750000 -v 0.750000 1.250000 1.750000 -v 0.750000 1.250000 3.500000 -v 0.500000 1.250000 3.500000 -v 0.500000 1.250000 3.250000 -v 0.750000 1.250000 3.250000 -v 0.750000 1.000000 3.250000 -v 0.500000 1.000000 3.250000 -v 0.500000 1.000000 3.500000 -v 0.750000 1.000000 3.500000 -v 4.000000 3.000000 1.500000 -v 3.750000 3.000000 1.500000 -v 3.750000 3.000000 1.750000 -v 4.000000 3.000000 1.750000 -v 4.000000 3.000000 3.500000 -v 3.750000 3.000000 3.500000 -v 3.750000 3.000000 3.250000 -v 4.000000 3.000000 3.250000 -v 4.000000 2.750000 3.250000 -v 3.750000 2.750000 3.250000 -v 3.750000 2.750000 3.500000 -v 4.000000 2.750000 3.500000 -v 0.750000 2.750000 1.750000 -v 0.500000 2.750000 1.750000 -v 0.500000 2.750000 1.500000 -v 0.750000 2.750000 1.500000 -v 0.750000 3.000000 1.500000 -v 0.500000 3.000000 1.500000 -v 0.500000 3.000000 1.750000 -v 0.750000 3.000000 1.750000 -v 0.750000 3.000000 3.500000 -v 0.500000 3.000000 3.500000 -v 0.500000 3.000000 3.250000 -v 0.750000 3.000000 3.250000 -v 0.750000 2.750000 3.250000 -v 0.500000 2.750000 3.250000 -v 0.500000 2.750000 3.500000 -v 0.750000 2.750000 3.500000 -v 4.000000 1.000000 1.750000 -v 4.000000 1.000000 3.250000 -v 3.875000 1.000000 1.750000 -v 3.875000 1.000000 3.250000 -v 4.000000 1.125000 1.750000 -v 4.000000 1.125000 3.250000 -v 3.875000 1.125000 1.750000 -v 3.875000 1.125000 3.250000 -v 0.625000 1.000000 1.750000 -v 0.625000 1.000000 3.250000 -v 0.500000 1.000000 1.750000 -v 0.500000 1.000000 3.250000 -v 0.625000 1.125000 1.750000 -v 0.625000 1.125000 3.250000 -v 0.500000 1.125000 1.750000 -v 0.500000 1.125000 3.250000 -v 4.000000 2.875000 1.750000 -v 4.000000 2.875000 3.250000 -v 3.875000 2.875000 1.750000 -v 3.875000 2.875000 3.250000 -v 4.000000 3.000000 1.750000 -v 4.000000 3.000000 3.250000 -v 3.875000 3.000000 1.750000 -v 3.875000 3.000000 3.250000 -v 0.625000 2.875000 1.750000 -v 0.625000 2.875000 3.250000 -v 0.500000 2.875000 1.750000 -v 0.500000 2.875000 3.250000 -v 0.625000 3.000000 1.750000 -v 0.625000 3.000000 3.250000 -v 0.500000 3.000000 1.750000 -v 0.500000 3.000000 3.250000 -v 4.000000 2.750000 1.500000 -v 4.000000 1.250000 1.500000 -v 3.875000 2.750000 1.500000 -v 3.875000 1.250000 1.500000 -v 4.000000 2.750000 1.625000 -v 4.000000 1.250000 1.625000 -v 3.875000 2.750000 1.625000 -v 3.875000 1.250000 1.625000 -v 0.625000 2.750000 1.500000 -v 0.625000 1.250000 1.500000 -v 0.500000 2.750000 1.500000 -v 0.500000 1.250000 1.500000 -v 0.625000 2.750000 1.625000 -v 0.625000 1.250000 1.625000 -v 0.500000 2.750000 1.625000 -v 0.500000 1.250000 1.625000 -v 4.000000 2.750000 3.375000 -v 4.000000 1.250000 3.375000 -v 3.875000 2.750000 3.375000 -v 3.875000 1.250000 3.375000 -v 4.000000 2.750000 3.500000 -v 4.000000 1.250000 3.500000 -v 3.875000 2.750000 3.500000 -v 3.875000 1.250000 3.500000 -v 0.625000 2.750000 3.375000 -v 0.625000 1.250000 3.375000 -v 0.500000 2.750000 3.375000 -v 0.500000 1.250000 3.375000 -v 0.625000 2.750000 3.500000 -v 0.625000 1.250000 3.500000 -v 0.500000 2.750000 3.500000 -v 0.500000 1.250000 3.500000 -v 3.750000 1.000000 3.500000 -v 0.750000 1.000000 3.500000 -v 3.750000 1.000000 3.375000 -v 0.750000 1.000000 3.375000 -v 3.750000 1.125000 3.500000 -v 0.750000 1.125000 3.500000 -v 3.750000 1.125000 3.375000 -v 0.750000 1.125000 3.375000 -v 3.750000 2.875000 3.500000 -v 0.750000 2.875000 3.500000 -v 3.750000 2.875000 3.375000 -v 0.750000 2.875000 3.375000 -v 3.750000 3.000000 3.500000 -v 0.750000 3.000000 3.500000 -v 3.750000 3.000000 3.375000 -v 0.750000 3.000000 3.375000 -v 3.750000 1.000000 1.625000 -v 0.750000 1.000000 1.625000 -v 3.750000 1.000000 1.500000 -v 0.750000 1.000000 1.500000 -v 3.750000 1.125000 1.625000 -v 0.750000 1.125000 1.625000 -v 3.750000 1.125000 1.500000 -v 0.750000 1.125000 1.500000 -v 3.750000 2.875000 1.625000 -v 0.750000 2.875000 1.625000 -v 3.750000 2.875000 1.500000 -v 0.750000 2.875000 1.500000 -v 3.750000 3.000000 1.625000 -v 0.750000 3.000000 1.625000 -v 3.750000 3.000000 1.500000 -v 0.750000 3.000000 1.500000 -v 4.000000 1.625000 1.850481 -v 4.000000 2.000000 1.750000 -v 4.000000 1.350481 2.125000 -v 4.000000 1.250000 2.500000 -v 4.000000 1.350481 2.875000 -v 4.000000 1.625000 3.149519 -v 4.000000 2.000000 3.250000 -v 4.000000 2.375000 3.149519 -v 4.000000 2.649519 2.875000 -v 4.000000 2.750000 2.500000 -v 4.000000 2.649520 2.125000 -v 4.000000 2.375001 1.850481 -v 0.500001 2.000000 1.750000 -v 0.500001 1.625000 1.850481 -v 0.500001 1.350481 2.125000 -v 0.500001 1.250000 2.500000 -v 0.500001 1.350481 2.875000 -v 0.500001 1.625000 3.149519 -v 0.500001 2.000000 3.250000 -v 0.500001 2.375000 3.149519 -v 0.500001 2.649519 2.875000 -v 0.500001 2.750000 2.500000 -v 0.500001 2.649520 2.125000 -v 0.500001 2.375001 1.850481 -v 0.750000 1.125000 -0.750000 -v 1.250000 1.125000 -0.750000 -v 0.750000 1.125000 -1.250000 -v 1.250000 1.125000 -1.250000 -v 0.750000 1.625000 -0.750000 -v 1.250000 1.625000 -0.750000 -v 0.750000 1.625000 -1.250000 -v 1.250000 1.625000 -1.250000 -v 0.625000 1.000000 -0.625000 -v 1.375000 1.000000 -0.625000 -v 0.625000 1.000000 -1.375000 -v 1.375000 1.000000 -1.375000 -v 0.625000 1.125000 -0.625000 -v 1.375000 1.125000 -0.625000 -v 0.625000 1.125000 -1.375000 -v 1.375000 1.125000 -1.375000 -v 0.625000 1.625000 -0.625000 -v 1.375000 1.625000 -0.625000 -v 0.625000 1.625000 -1.375000 -v 1.375000 1.625000 -1.375000 -v 0.625000 1.750000 -0.625000 -v 1.375000 1.750000 -0.625000 -v 0.625000 1.750000 -1.375000 -v 1.375000 1.750000 -1.375000 -v -1.250000 1.125000 1.250000 -v -0.750000 1.125000 1.250000 -v -1.250000 1.125000 0.750000 -v -0.750000 1.125000 0.750000 -v -1.250000 1.625000 1.250000 -v -0.750000 1.625000 1.250000 -v -1.250000 1.625000 0.750000 -v -0.750000 1.625000 0.750000 -v -1.375000 1.000000 1.375000 -v -0.625000 1.000000 1.375000 -v -1.375000 1.000000 0.625000 -v -0.625000 1.000000 0.625000 -v -1.375000 1.125000 1.375000 -v -0.625000 1.125000 1.375000 -v -1.375000 1.125000 0.625000 -v -0.625000 1.125000 0.625000 -v -1.375000 1.625000 1.375000 -v -0.625000 1.625000 1.375000 -v -1.375000 1.625000 0.625000 -v -0.625000 1.625000 0.625000 -v -1.375000 1.750000 1.375000 -v -0.625000 1.750000 1.375000 -v -1.375000 1.750000 0.625000 -v -0.625000 1.750000 0.625000 -v -1.250000 1.125000 -0.750000 -v -0.750000 1.125000 -0.750000 -v -1.250000 1.125000 -1.250000 -v -0.750000 1.125000 -1.250000 -v -1.250000 1.625000 -0.750000 -v -0.750000 1.625000 -0.750000 -v -1.250000 1.625000 -1.250000 -v -0.750000 1.625000 -1.250000 -v -1.375000 1.000000 -0.625000 -v -0.625000 1.000000 -0.625000 -v -1.375000 1.000000 -1.375000 -v -0.625000 1.000000 -1.375000 -v -1.375000 1.125000 -0.625000 -v -0.625000 1.125000 -0.625000 -v -1.375000 1.125000 -1.375000 -v -0.625000 1.125000 -1.375000 -v -1.375000 1.625000 -0.625000 -v -0.625000 1.625000 -0.625000 -v -1.375000 1.625000 -1.375000 -v -0.625000 1.625000 -1.375000 -v -1.375000 1.750000 -0.625000 -v -0.625000 1.750000 -0.625000 -v -1.375000 1.750000 -1.375000 -v -0.625000 1.750000 -1.375000 -vt 0.265306 0.763158 -vt 0.510204 0.710526 -vt 0.510204 0.763158 -vt 0.265306 0.815789 -vt 0.510204 0.815789 -vt 0.265306 0.710526 -vt 0.510204 0.657895 -vt 0.224490 0.710526 -vt 0.224490 0.763158 -vt 0.551020 0.710526 -vt 0.551020 0.763158 -vt 0.244898 0.552632 -vt 0.163265 0.342105 -vt 0.244898 0.447368 -vt 0.408163 0.342105 -vt 0.326531 0.447368 -vt 0.408163 0.657895 -vt 0.326531 0.552632 -vt 0.163265 0.657895 -vt 0.326531 0.447368 -vt 0.244898 0.552632 -vt 0.244898 0.447368 -vt 0.163265 0.315789 -vt 0.244898 0.105263 -vt 0.244898 0.210526 -vt 0.408163 0.315789 -vt 0.326531 0.210526 -vt 0.408163 -0.000000 -vt 0.326531 0.105263 -vt 0.163265 -0.000000 -vt 0.244898 0.210526 -vt 0.326531 0.184211 -vt 0.326531 0.210526 -vt 0.163265 0.342105 -vt 0.408163 0.315789 -vt 0.408163 0.342105 -vt 0.244898 0.210526 -vt 0.326531 0.184211 -vt 0.326531 0.210526 -vt 0.244898 0.210526 -vt 0.326531 0.184211 -vt 0.326531 0.210526 -vt 0.163265 0.342105 -vt 0.408163 0.315789 -vt 0.408163 0.342105 -vt 0.163265 0.342105 -vt 0.408163 0.315789 -vt 0.408163 0.342105 -vt 0.244898 0.210526 -vt 0.326531 0.184211 -vt 0.326531 0.210526 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.163265 0.671053 -vt 0.224490 0.750000 -vt 0.163265 0.750000 -vt 0.224490 0.657895 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.163265 0.802632 -vt 0.224490 0.802632 -vt 0.040816 0.947368 -vt 0.081633 1.000000 -vt 0.040816 1.000000 -vt 0.081633 0.000000 -vt 0.040816 0.000000 -vt 0.163265 0.000000 -vt 0.122449 0.947368 -vt 0.122449 0.000000 -vt 0.081633 0.947368 -vt 0.000000 0.947368 +v -0.500000 1.000000 1.250000 +v -0.500000 1.000000 1.750000 +v -1.000000 1.000000 1.750000 +v -1.000000 1.000000 1.250000 +v 1.000000 1.000000 1.250000 +v 0.500000 1.000000 1.250000 +v -0.500000 11.000000 1.250000 +v 1.000000 11.000000 1.250000 +v -0.500000 10.750000 1.562500 +v 0.500000 10.250000 1.562500 +v 0.500000 10.000000 1.562500 +v 0.500000 1.750000 1.437500 +v -0.500000 1.250000 1.437500 +v 0.500000 2.000000 1.437500 +v -0.500000 1.750000 1.562500 +v 0.500000 1.250000 1.562500 +v 0.500000 1.000000 1.562500 +v -0.500000 4.750000 1.562500 +v 0.500000 4.250000 1.562500 +v 0.500000 4.000000 1.562500 +v 0.500000 4.750000 1.437500 +v -0.500000 4.250000 1.437500 +v 0.500000 5.000000 1.437500 +v -0.500000 2.500000 1.562500 +v 0.500000 2.000000 1.562500 +v 0.500000 1.750000 1.562500 +v 0.500000 2.500000 1.437500 +v -0.500000 2.000000 1.437500 +v 0.500000 2.750000 1.437500 +v 0.500000 3.250000 1.437500 +v -0.500000 2.750000 1.437500 +v 0.500000 3.500000 1.437500 +v -0.500000 3.250000 1.562500 +v 0.500000 2.750000 1.562500 +v 0.500000 2.500000 1.562500 +v 0.500000 4.000000 1.437500 +v -0.500000 3.500000 1.437500 +v 0.500000 4.250000 1.437500 +v -0.500000 4.000000 1.562500 +v 0.500000 3.500000 1.562500 +v 0.500000 3.250000 1.562500 +v -0.500000 7.000000 1.562500 +v 0.500000 6.500000 1.562500 +v 0.500000 6.250000 1.562500 +v 0.500000 7.000000 1.437500 +v -0.500000 6.500000 1.437500 +v 0.500000 7.250000 1.437500 +v 0.500000 10.750000 1.437500 +v -0.500000 10.250000 1.437500 +v 0.500000 11.000000 1.437500 +v -0.500000 6.250000 1.562500 +v 0.500000 5.750000 1.562500 +v 0.500000 5.500000 1.562500 +v 0.500000 6.250000 1.437500 +v -0.500000 5.750000 1.437500 +v 0.500000 6.500000 1.437500 +v 0.500000 5.500000 1.437500 +v -0.500000 5.000000 1.437500 +v 0.500000 5.750000 1.437500 +v -0.500000 5.500000 1.562500 +v 0.500000 5.000000 1.562500 +v 0.500000 4.750000 1.562500 +v 0.500000 7.750000 1.437500 +v -0.500000 7.250000 1.437500 +v 0.500000 8.000000 1.437500 +v -0.500000 7.750000 1.562500 +v 0.500000 7.250000 1.562500 +v 0.500000 7.000000 1.562500 +v -0.500000 8.500000 1.562500 +v 0.500000 8.000000 1.562500 +v 0.500000 7.750000 1.562500 +v 0.500000 8.500000 1.437500 +v -0.500000 8.000000 1.437500 +v 0.500000 8.750000 1.437500 +v 0.500000 9.250000 1.437500 +v -0.500000 8.750000 1.437500 +v 0.500000 9.500000 1.437500 +v -0.500000 9.250000 1.562500 +v 0.500000 8.750000 1.562500 +v 0.500000 8.500000 1.562500 +v 0.500000 10.000000 1.437500 +v -0.500000 9.500000 1.437500 +v 0.500000 10.250000 1.437500 +v -0.500000 10.000000 1.562500 +v 0.500000 9.500000 1.562500 +v 0.500000 9.250000 1.562500 +v -0.937500 1.000000 3.937500 +v -0.937500 2.812500 1.750000 +v -0.937500 1.000000 3.562500 +v -0.562500 1.000000 3.937500 +v -0.937500 3.187500 1.750000 +v -0.562500 2.812500 1.750000 +v -0.562500 1.000000 3.562500 +v -0.562500 3.187500 1.750000 +v 0.562500 1.000000 3.937500 +v 0.562500 2.812500 1.750000 +v 0.562500 1.000000 3.562500 +v 0.937500 1.000000 3.937500 +v 0.562500 3.187500 1.750000 +v 0.937500 2.812500 1.750000 +v 0.937500 1.000000 3.562500 +v 0.937500 3.187500 1.750000 +v -0.500000 10.750000 1.562500 +v 0.500000 10.250000 1.562500 +v -0.500000 11.000000 1.562500 +v 0.500000 1.750000 1.437500 +v -0.500000 1.250000 1.437500 +v -0.500000 1.000000 1.437500 +v -0.500000 1.750000 1.562500 +v 0.500000 1.250000 1.562500 +v -0.500000 2.000000 1.562500 +v -0.500000 4.750000 1.562500 +v 0.500000 4.250000 1.562500 +v -0.500000 5.000000 1.562500 +v 0.500000 4.750000 1.437500 +v -0.500000 4.250000 1.437500 +v -0.500000 4.000000 1.437500 +v -0.500000 2.500000 1.562500 +v 0.500000 2.000000 1.562500 +v -0.500000 2.750000 1.562500 +v 0.500000 2.500000 1.437500 +v -0.500000 2.000000 1.437500 +v -0.500000 1.750000 1.437500 +v 0.500000 3.250000 1.437500 +v -0.500000 2.750000 1.437500 +v -0.500000 2.500000 1.437500 +v -0.500000 3.250000 1.562500 +v 0.500000 2.750000 1.562500 +v -0.500000 3.500000 1.562500 +v 0.500000 4.000000 1.437500 +v -0.500000 3.500000 1.437500 +v -0.500000 3.250000 1.437500 +v -0.500000 4.000000 1.562500 +v 0.500000 3.500000 1.562500 +v -0.500000 4.250000 1.562500 +v -0.500000 7.000000 1.562500 +v 0.500000 6.500000 1.562500 +v -0.500000 7.250000 1.562500 +v 0.500000 7.000000 1.437500 +v -0.500000 6.500000 1.437500 +v -0.500000 6.250000 1.437500 +v 0.500000 10.750000 1.437500 +v -0.500000 10.250000 1.437500 +v -0.500000 10.000000 1.437500 +v -0.500000 6.250000 1.562500 +v 0.500000 5.750000 1.562500 +v -0.500000 6.500000 1.562500 +v 0.500000 6.250000 1.437500 +v -0.500000 5.750000 1.437500 +v -0.500000 5.500000 1.437500 +v 0.500000 5.500000 1.437500 +v -0.500000 5.000000 1.437500 +v -0.500000 4.750000 1.437500 +v -0.500000 5.500000 1.562500 +v 0.500000 5.000000 1.562500 +v -0.500000 5.750000 1.562500 +v 0.500000 7.750000 1.437500 +v -0.500000 7.250000 1.437500 +v -0.500000 7.000000 1.437500 +v -0.500000 7.750000 1.562500 +v 0.500000 7.250000 1.562500 +v -0.500000 8.000000 1.562500 +v -0.500000 8.500000 1.562500 +v 0.500000 8.000000 1.562500 +v -0.500000 8.750000 1.562500 +v 0.500000 8.500000 1.437500 +v -0.500000 8.000000 1.437500 +v -0.500000 7.750000 1.437500 +v 0.500000 9.250000 1.437500 +v -0.500000 8.750000 1.437500 +v -0.500000 8.500000 1.437500 +v -0.500000 9.250000 1.562500 +v 0.500000 8.750000 1.562500 +v -0.500000 9.500000 1.562500 +v 0.500000 10.000000 1.437500 +v -0.500000 9.500000 1.437500 +v -0.500000 9.250000 1.437500 +v -0.500000 10.000000 1.562500 +v 0.500000 9.500000 1.562500 +v -0.500000 10.250000 1.562500 +v 0.937500 1.750000 -0.562500 +v 0.937500 1.000000 -0.937500 +v 0.937500 1.750000 -0.937500 +v 0.562500 1.750000 -0.937500 +v 0.562500 1.000000 -0.562500 +v 0.562500 1.750000 -0.562500 +v 0.562500 1.000000 -0.937500 +v 0.937500 1.000000 -0.562500 +v -0.562500 1.750000 0.937500 +v -0.562500 1.000000 0.562500 +v -0.562500 1.750000 0.562500 +v -0.937500 1.750000 0.562500 +v -0.937500 1.000000 0.937500 +v -0.937500 1.750000 0.937500 +v -0.937500 1.000000 0.562500 +v -0.562500 1.000000 0.937500 +v -0.562500 1.750000 -0.562500 +v -0.562500 1.000000 -0.937500 +v -0.562500 1.750000 -0.937500 +v -0.937500 1.750000 -0.937500 +v -0.937500 1.000000 -0.562500 +v -0.937500 1.750000 -0.562500 +v -0.937500 1.000000 -0.937500 +v -0.562500 1.000000 -0.562500 +v -0.750000 1.000000 0.562500 +v -0.750000 1.750000 -0.562500 +v -0.750000 1.000000 -0.562500 +v -0.562500 1.000000 -0.750000 +v 0.562500 1.750000 -0.750000 +v 0.562500 1.000000 -0.750000 +v 0.562500 1.000000 0.750000 +v -0.562500 1.750000 0.750000 +v -0.562500 1.000000 0.750000 +v 0.500000 2.000000 0.500000 +v 0.750000 1.750000 -0.562500 +v -0.500000 11.000000 1.562500 +v -0.500000 1.000000 1.437500 +v -0.500000 2.000000 1.562500 +v -0.500000 5.000000 1.562500 +v -0.500000 4.000000 1.437500 +v -0.500000 2.750000 1.562500 +v -0.500000 1.750000 1.437500 +v -0.500000 2.500000 1.437500 +v -0.500000 3.500000 1.562500 +v -0.500000 3.250000 1.437500 +v -0.500000 4.250000 1.562500 +v -0.500000 7.250000 1.562500 +v -0.500000 6.250000 1.437500 +v -0.500000 10.000000 1.437500 +v -0.500000 6.500000 1.562500 +v -0.500000 5.500000 1.437500 +v -0.500000 4.750000 1.437500 +v -0.500000 5.750000 1.562500 +v -0.500000 7.000000 1.437500 +v -0.500000 8.000000 1.562500 +v -0.500000 8.750000 1.562500 +v -0.500000 7.750000 1.437500 +v -0.500000 8.500000 1.437500 +v -0.500000 9.500000 1.562500 +v -0.500000 9.250000 1.437500 +v -0.500000 10.250000 1.562500 +v 0.500000 10.000000 1.562500 +v 0.500000 2.000000 1.437500 +v 0.500000 1.000000 1.562500 +v 0.500000 4.000000 1.562500 +v 0.500000 5.000000 1.437500 +v 0.500000 1.750000 1.562500 +v 0.500000 2.750000 1.437500 +v 0.500000 3.500000 1.437500 +v 0.500000 2.500000 1.562500 +v 0.500000 4.250000 1.437500 +v 0.500000 3.250000 1.562500 +v 0.500000 6.250000 1.562500 +v 0.500000 7.250000 1.437500 +v 0.500000 11.000000 1.437500 +v 0.500000 5.500000 1.562500 +v 0.500000 6.500000 1.437500 +v 0.500000 5.750000 1.437500 +v 0.500000 4.750000 1.562500 +v 0.500000 8.000000 1.437500 +v 0.500000 7.000000 1.562500 +v 0.500000 7.750000 1.562500 +v 0.500000 8.750000 1.437500 +v 0.500000 9.500000 1.437500 +v 0.500000 8.500000 1.562500 +v 0.500000 10.250000 1.437500 +v 0.500000 9.250000 1.562500 +v -0.750000 1.750000 0.562500 +v -0.562500 1.750000 -0.750000 +v 0.562500 1.750000 0.750000 +vt 0.083333 0.250000 +vt 0.000000 0.386364 +vt 0.000000 0.204545 vt 0.000000 0.000000 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.500000 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.500000 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.500000 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.765306 0.315789 -vt 0.775510 0.315789 -vt 0.765306 0.473684 -vt 0.755102 0.315789 -vt 0.785714 0.473684 -vt 0.785714 0.315789 -vt 0.795918 0.473684 -vt 0.785714 0.473684 -vt 0.775510 0.315789 -vt 0.785714 0.315789 -vt 0.775510 0.473684 -vt 0.765306 0.315789 -vt 0.795918 0.473684 -vt 0.755102 0.315789 -vt 0.765306 0.473684 -vt 0.755102 0.473684 -vt 0.765306 0.473684 -vt 0.755102 0.315789 -vt 0.765306 0.315789 -vt 0.795918 0.473684 -vt 0.785714 0.315789 -vt 0.795918 0.315789 -vt 0.775510 0.473684 -vt 0.775510 0.315789 -vt 0.785714 0.473684 -vt 0.795918 0.473684 -vt 0.785714 0.315789 -vt 0.795918 0.315789 -vt 0.785714 0.473684 -vt 0.775510 0.315789 -vt 0.755102 0.315789 -vt 0.765306 0.473684 -vt 0.755102 0.473684 -vt 0.765306 0.315789 -vt 0.775510 0.473684 -vt 0.775510 0.315789 -vt 0.785714 0.473684 -vt 0.775510 0.473684 -vt 0.785714 0.315789 -vt 0.795918 0.473684 -vt 0.765306 0.315789 -vt 0.765306 0.473684 -vt 0.755102 0.315789 -vt 0.765306 0.315789 -vt 0.775510 0.473684 -vt 0.765306 0.473684 -vt 0.775510 0.315789 -vt 0.785714 0.473684 -vt 0.755102 0.315789 -vt 0.795918 0.473684 -vt 0.785714 0.315789 -vt 0.795918 0.315789 -vt 0.785714 0.315789 -vt 0.795918 0.473684 -vt 0.785714 0.473684 -vt 0.755102 0.315789 -vt 0.765306 0.473684 -vt 0.755102 0.473684 -vt 0.775510 0.315789 -vt 0.775510 0.473684 -vt 0.765306 0.315789 -vt 0.755102 0.315789 -vt 0.765306 0.473684 -vt 0.755102 0.473684 -vt 0.765306 0.315789 -vt 0.775510 0.473684 -vt 0.795918 0.473684 -vt 0.785714 0.315789 -vt 0.795918 0.315789 -vt 0.785714 0.473684 -vt 0.775510 0.315789 -vt 0.724490 0.631579 -vt 0.734694 0.315789 -vt 0.734694 0.631579 -vt 0.714286 0.631579 -vt 0.724490 0.315789 -vt 0.744898 0.315789 -vt 0.755102 0.631579 -vt 0.744898 0.631579 -vt 0.714286 0.631579 -vt 0.724490 0.315789 -vt 0.724490 0.631579 -vt 0.744898 0.631579 -vt 0.755102 0.315789 -vt 0.755102 0.631579 -vt 0.734694 0.315789 -vt 0.734694 0.631579 -vt 0.734694 0.631579 -vt 0.744898 0.315789 -vt 0.744898 0.631579 -vt 0.724490 0.631579 -vt 0.734694 0.315789 -vt 0.755102 0.315789 -vt 0.714286 0.315789 -vt 0.714286 0.631579 -vt 0.744898 0.631579 -vt 0.755102 0.315789 -vt 0.755102 0.631579 -vt 0.734694 0.631579 -vt 0.744898 0.315789 -vt 0.724490 0.315789 -vt 0.714286 0.631579 -vt 0.714286 0.315789 -vt 0.724490 0.631579 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.163265 0.671053 -vt 0.224490 0.750000 -vt 0.163265 0.750000 -vt 0.224490 0.657895 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.163265 0.802632 -vt 0.224490 0.802632 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.163265 0.671053 -vt 0.224490 0.750000 -vt 0.163265 0.750000 -vt 0.224490 0.657895 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.163265 0.802632 -vt 0.224490 0.802632 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.214286 0.750000 -vt 0.173469 0.802632 -vt 0.173469 0.750000 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.163265 0.671053 -vt 0.224490 0.750000 -vt 0.163265 0.750000 -vt 0.224490 0.657895 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.657895 -vt 0.163265 0.671053 -vt 0.163265 0.657895 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.224490 0.881579 -vt 0.163265 0.894737 -vt 0.163265 0.881579 -vt 0.163265 0.802632 -vt 0.224490 0.802632 -vt 0.265306 0.657895 -vt 0.326531 0.552632 -vt 0.244898 0.184211 -vt 0.163265 0.315789 -vt 0.244898 0.184211 -vt 0.244898 0.184211 -vt 0.163265 0.315789 -vt 0.163265 0.315789 -vt 0.244898 0.184211 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.224490 0.894737 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.894737 -vt 0.224490 0.894737 -vt 0.224490 0.894737 -vt 0.163265 0.947368 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.500000 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.755102 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.500000 -vt 0.775510 0.473684 -vt 0.775510 0.473684 -vt 0.755102 0.473684 -vt 0.795918 0.315789 -vt 0.795918 0.315789 -vt 0.755102 0.473684 -vt 0.795918 0.315789 -vt 0.755102 0.473684 -vt 0.755102 0.473684 -vt 0.795918 0.315789 -vt 0.714286 0.315789 -vt 0.755102 0.315789 -vt 0.714286 0.315789 -vt 0.744898 0.315789 -vt 0.724490 0.315789 -vt 0.755102 0.631579 -vt 0.734694 0.315789 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.224490 0.894737 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.894737 -vt 0.224490 0.894737 -vt 0.224490 0.894737 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.224490 0.894737 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.894737 -vt 0.224490 0.894737 -vt 0.224490 0.894737 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.214286 0.802632 -vt 0.224490 0.894737 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.671053 -vt 0.224490 0.894737 -vt 0.224490 0.894737 -vt 0.224490 0.894737 -vt 0.683673 0.473684 -vt 0.438776 0.526316 -vt 0.438776 0.473684 -vt 0.683673 0.526316 -vt 0.438776 0.578947 -vt 0.683673 0.578947 -vt 0.438776 0.631579 -vt 0.683673 -0.000000 -vt 0.438776 0.052632 -vt 0.438776 -0.000000 -vt 0.683673 0.052632 -vt 0.438776 0.105263 -vt 0.683673 0.105263 -vt 0.438776 0.157895 -vt 0.683673 0.157895 -vt 0.438776 0.210526 -vt 0.683673 0.210526 -vt 0.438776 0.263158 -vt 0.683673 0.263158 -vt 0.438776 0.315789 -vt 0.683673 0.315789 -vt 0.438776 0.368421 -vt 0.714286 0.256579 -vt 0.683673 0.368421 -vt 0.438776 0.421053 -vt 0.683673 0.421053 -vt 0.408163 0.151316 -vt 0.408163 0.111842 -vt 0.745408 0.011716 -vt 0.805612 0.011716 -vt 0.805612 0.146179 -vt 0.714286 0.164474 -vt 0.714286 0.203947 -vt 0.714286 0.151316 -vt 0.714286 0.098684 -vt 0.714286 0.046053 -vt 0.714286 0.427632 -vt 0.714286 0.467105 -vt 0.714286 0.519737 -vt 0.683673 0.631579 -vt 0.714286 0.585526 -vt 0.714286 0.625000 -vt 0.714286 0.375000 -vt 0.714286 0.414474 -vt 0.714286 0.532895 -vt 0.714286 0.572368 -vt 0.714286 0.322368 -vt 0.714286 0.361842 -vt 0.714286 0.309211 -vt 0.775510 0.159210 -vt 0.827649 0.275658 -vt 0.723372 0.275658 -vt 0.408163 0.059211 -vt 0.408163 0.046053 -vt 0.408163 0.006579 -vt 0.408163 0.467105 -vt 0.408163 0.427632 -vt 0.408163 0.519737 -vt 0.408163 0.480263 -vt 0.408163 0.585526 -vt 0.408163 0.375000 -vt 0.408163 0.532895 -vt 0.408163 0.322368 -vt 0.408163 0.309211 -vt 0.408163 0.269737 -vt 0.408163 0.217105 -vt 0.408163 0.164474 -vt 0.714286 0.217105 -vt 0.827649 0.040131 -vt 0.835715 0.078947 -vt 0.827649 0.117763 -vt 0.775510 0.156579 -vt 0.745408 0.146179 -vt 0.723372 0.117763 -vt 0.715306 0.078947 -vt 0.723372 0.040131 -vt 0.775510 0.001315 -vt 0.714286 0.111842 -vt 0.714286 0.059211 -vt 0.714286 0.006579 -vt 0.714286 0.480263 -vt 0.714286 0.269737 -vt 0.715306 0.236842 -vt 0.723372 0.198026 -vt 0.745408 0.169611 -vt 0.805612 0.169611 -vt 0.827649 0.198026 -vt 0.835715 0.236842 -vt 0.805612 0.304073 -vt 0.775510 0.314474 -vt 0.745408 0.304073 -vt 0.408163 0.098684 -vt 0.408163 0.625000 -vt 0.408163 0.414474 -vt 0.408163 0.572368 -vt 0.408163 0.361842 -vt 0.408163 0.256579 -vt 0.408163 0.203947 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.3620 0.0000 -0.9322 -vn -0.3620 -0.4661 -0.8073 -vn -0.3620 0.0000 -0.9322 -vn 0.3620 -0.4661 -0.8073 -vn -0.3620 -0.8073 -0.4661 -vn 0.3620 -0.8073 -0.4661 -vn -0.3620 -0.9322 0.0000 -vn 0.3620 -0.9322 0.0000 -vn -0.3620 -0.8073 0.4661 -vn 0.3620 -0.8073 0.4661 -vn -0.3620 -0.4661 0.8073 -vn 0.3620 -0.4661 0.8073 -vn -0.3620 0.0000 0.9322 -vn 0.3620 0.0000 0.9322 -vn -0.3620 0.4661 0.8073 -vn 0.3620 0.4661 0.8073 -vn -0.3620 0.8073 0.4661 -vn 0.3620 0.8073 0.4661 -vn -0.3620 0.9322 0.0000 -vn 0.3620 0.9322 0.0000 -vn -0.3620 0.8073 -0.4661 -vn 0.9007 0.3762 0.2172 -vn 0.3620 0.8073 -0.4661 -vn -0.3620 0.4661 -0.8073 -vn 0.3620 0.4661 -0.8073 -vn -0.9007 0.0000 0.4343 -vn -0.9007 -0.2172 0.3762 -vn 0.9007 -0.3762 0.2172 -vn 0.9007 -0.3762 -0.2172 -vn 0.9007 0.3762 -0.2172 -vn 0.9007 0.0000 0.4343 -vn 0.9007 0.2172 0.3762 -vn 0.9007 -0.2172 0.3762 -vn 0.9007 0.2172 -0.3762 -vn 0.9007 0.0000 -0.4343 -vn 0.9007 -0.2172 -0.3762 -vn 0.9007 -0.4343 0.0000 -vn 0.9007 0.4343 0.0000 -vn -0.9007 -0.4343 0.0000 -vn -0.9007 0.2172 0.3762 -vn -0.9007 0.2172 -0.3762 -vn -0.9007 -0.3762 0.2172 -vn -0.9007 0.0000 -0.4343 -vn -0.9007 -0.2172 -0.3762 -vn -0.9007 -0.3762 -0.2172 -vn -0.9007 0.3762 -0.2172 -vn -0.9007 0.4343 0.0000 -vn -0.9007 0.3762 0.2172 -s off -f 3219/4436/313 3220/4437/313 3218/4438/313 -f 3225/4439/314 3218/4438/314 3224/4440/314 -f 3221/4441/315 3222/4442/315 3220/4437/315 -f 3223/4443/316 3219/4436/316 3225/4444/316 -f 3218/4438/317 3222/4445/317 3224/4446/317 -f 3214/4447/313 3227/4448/313 3215/4449/313 -f 3215/4449/313 3229/4450/313 3216/4451/313 -f 3216/4451/313 3228/4452/313 3217/4453/313 -f 3217/4453/313 3226/4454/313 3214/4447/313 -f 3232/4455/313 3230/4456/313 3231/4457/313 -f 3240/4458/318 3237/4459/318 3235/4460/318 -f 3241/4461/318 3235/4460/318 3234/4462/318 -f 3238/4463/318 3234/4462/318 3236/4464/318 -f 3239/4465/318 3236/4464/318 3237/4459/318 -f 3216/4466/317 3235/4467/317 3215/4468/317 -f 3227/4448/316 3241/4461/316 3229/4450/316 -f 3228/4469/317 3239/4470/317 3226/4471/317 -f 3215/4472/315 3237/4473/315 3214/4474/315 -f 3214/4475/316 3236/4476/316 3217/4477/316 -f 3229/4478/315 3238/4479/315 3228/4480/315 -f 3226/4481/314 3240/4482/314 3227/4483/314 -f 3217/4484/314 3234/4485/314 3216/4486/314 -f 3244/4487/315 3249/4488/315 3245/4489/315 -f 3243/4490/314 3246/4491/314 3242/4492/314 -f 3245/4493/316 3247/4494/316 3243/4495/316 -f 3242/4496/317 3248/4497/317 3244/4498/317 -f 3261/4499/316 3263/4500/316 3259/4501/316 -f 3255/4502/313 3256/4503/313 3254/4504/313 -f 3253/4505/316 3255/4502/316 3251/4506/316 -f 3250/4507/317 3256/4508/317 3252/4509/317 -f 3252/4510/315 3257/4511/315 3253/4512/315 -f 3251/4513/314 3254/4514/314 3250/4515/314 -f 3258/4516/317 3264/4517/317 3260/4518/317 -f 3260/4519/315 3265/4520/315 3261/4521/315 -f 3259/4522/314 3262/4523/314 3258/4524/314 -f 3261/4499/318 3258/4525/318 3260/4526/318 -f 3272/4527/313 3270/4528/313 3271/4529/313 -f 3269/4530/316 3272/4527/316 3267/4531/316 -f 3266/4532/317 3270/4533/317 3268/4534/317 -f 3268/4534/315 3273/4535/315 3269/4530/315 -f 3267/4531/314 3271/4536/314 3266/4537/314 -f 3276/4538/318 3274/4539/318 3277/4540/318 -f 3303/4541/318 3305/4542/318 3302/4543/318 -f 3306/4544/313 3308/4545/313 3309/4546/313 -f 3309/4547/314 3303/4548/314 3302/4549/314 -f 3308/4545/317 3304/4550/317 3303/4551/317 -f 3307/4552/315 3305/4542/315 3304/4553/315 -f 3306/4554/316 3302/4555/316 3305/4542/316 -f 3313/4556/316 3317/4557/316 3314/4558/316 -f 3312/4559/315 3314/4560/315 3315/4561/315 -f 3311/4562/317 3315/4563/317 3316/4564/317 -f 3310/4565/314 3316/4566/314 3317/4557/314 -f 3313/4567/313 3311/4568/313 3310/4569/313 -f 3316/4570/318 3314/4571/318 3317/4557/318 -f 3319/4572/318 3321/4573/318 3318/4574/318 -f 3322/4575/313 3324/4576/313 3325/4577/313 -f 3325/4577/314 3319/4578/314 3318/4579/314 -f 3324/4580/317 3320/4581/317 3319/4582/317 -f 3323/4583/315 3321/4584/315 3320/4581/315 -f 3322/4585/316 3318/4586/316 3321/4587/316 -f 3329/4588/316 3333/4589/316 3330/4590/316 -f 3328/4591/315 3330/4592/315 3331/4593/315 -f 3327/4594/317 3331/4595/317 3332/4596/317 -f 3326/4597/314 3332/4596/314 3333/4598/314 -f 3329/4588/313 3327/4599/313 3326/4600/313 -f 3332/4596/318 3330/4601/318 3333/4602/318 -f 3334/4603/313 3336/4604/313 3337/4605/313 -f 3337/4606/314 3276/4538/314 3277/4607/314 -f 3336/4608/317 3275/4609/317 3276/4538/317 -f 3335/4610/315 3274/4611/315 3275/4612/315 -f 3334/4603/316 3277/4613/316 3274/4614/316 -f 3341/4615/316 3345/4616/316 3342/4617/316 -f 3340/4618/315 3342/4619/315 3343/4620/315 -f 3339/4621/317 3343/4620/317 3344/4622/317 -f 3338/4623/314 3344/4624/314 3345/4625/314 -f 3341/4626/313 3339/4627/313 3338/4623/313 -f 3344/4628/318 3342/4629/318 3345/4630/318 -f 3347/4631/318 3349/4632/318 3346/4633/318 -f 3350/4634/313 3352/4635/313 3353/4636/313 -f 3353/4637/314 3347/4638/314 3346/4633/314 -f 3352/4639/317 3348/4640/317 3347/4641/317 -f 3351/4642/315 3349/4643/315 3348/4644/315 -f 3350/4645/316 3346/4633/316 3349/4646/316 -f 3357/4647/316 3361/4648/316 3358/4649/316 -f 3356/4650/315 3358/4649/315 3359/4651/315 -f 3355/4652/317 3359/4653/317 3360/4654/317 -f 3354/4655/314 3360/4656/314 3361/4657/314 -f 3357/4658/313 3355/4652/313 3354/4659/313 -f 3360/4660/318 3358/4649/318 3361/4661/318 -f 3363/4662/318 3364/4663/318 3362/4664/318 -f 3365/4665/317 3368/4666/317 3364/4663/317 -f 3362/4664/316 3367/4667/316 3363/4662/316 -f 3366/4668/313 3369/4669/313 3367/4667/313 -f 3371/4670/318 3372/4671/318 3370/4672/318 -f 3373/4673/317 3376/4674/317 3372/4671/317 -f 3370/4672/316 3375/4675/316 3371/4670/316 -f 3374/4676/313 3377/4677/313 3375/4678/313 -f 3379/4679/318 3380/4680/318 3378/4681/318 -f 3381/4682/317 3384/4683/317 3380/4684/317 -f 3378/4681/316 3383/4685/316 3379/4679/316 -f 3382/4686/313 3385/4687/313 3383/4685/313 -f 3387/4688/318 3388/4689/318 3386/4690/318 -f 3389/4691/317 3392/4692/317 3388/4689/317 -f 3386/4693/316 3391/4694/316 3387/4695/316 -f 3390/4696/313 3393/4697/313 3391/4694/313 -f 3395/4698/315 3396/4699/315 3394/4700/315 -f 3397/4701/317 3400/4702/317 3396/4699/317 -f 3394/4700/316 3399/4703/316 3395/4698/316 -f 3398/4704/314 3401/4705/314 3399/4703/314 -f 3403/4706/315 3404/4707/315 3402/4708/315 -f 3405/4709/317 3408/4710/317 3404/4707/317 -f 3402/4708/316 3407/4711/316 3403/4706/316 -f 3406/4712/314 3409/4713/314 3407/4714/314 -f 3411/4715/315 3412/4716/315 3410/4717/315 -f 3413/4718/317 3416/4719/317 3412/4720/317 -f 3410/4717/316 3415/4721/316 3411/4715/316 -f 3414/4722/314 3417/4723/314 3415/4721/314 -f 3419/4724/315 3420/4725/315 3418/4726/315 -f 3421/4727/317 3424/4728/317 3420/4725/317 -f 3418/4729/316 3423/4730/316 3419/4731/316 -f 3422/4732/314 3425/4733/314 3423/4730/314 -f 3429/4734/318 3426/4735/318 3427/4736/318 -f 3433/4737/315 3428/4738/315 3429/4734/315 -f 3430/4739/314 3427/4736/314 3426/4735/314 -f 3430/4739/313 3433/4740/313 3431/4741/313 -f 3437/4742/318 3434/4743/318 3435/4744/318 -f 3441/4745/315 3436/4746/315 3437/4747/315 -f 3438/4748/314 3435/4744/314 3434/4743/314 -f 3438/4748/313 3441/4745/313 3439/4749/313 -f 3445/4750/318 3442/4751/318 3443/4752/318 -f 3449/4753/315 3444/4754/315 3445/4750/315 -f 3446/4755/314 3443/4752/314 3442/4751/314 -f 3446/4756/313 3449/4753/313 3447/4757/313 -f 3453/4758/318 3450/4759/318 3451/4760/318 -f 3457/4761/315 3452/4762/315 3453/4758/315 -f 3454/4763/314 3451/4764/314 3450/4765/314 -f 3454/4763/313 3457/4761/313 3455/4766/313 -f 3484/4767/315 3489/4768/315 3485/4769/315 -f 3483/4770/314 3486/4771/314 3482/4772/314 -f 3485/4773/316 3487/4774/316 3483/4775/316 -f 3482/4776/317 3488/4777/317 3484/4778/317 -f 3501/4779/316 3503/4780/316 3499/4781/316 -f 3495/4782/313 3496/4783/313 3494/4784/313 -f 3493/4785/316 3495/4782/316 3491/4786/316 -f 3490/4787/317 3496/4788/317 3492/4789/317 -f 3492/4790/315 3497/4791/315 3493/4792/315 -f 3491/4793/314 3494/4794/314 3490/4795/314 -f 3498/4796/317 3504/4797/317 3500/4798/317 -f 3500/4799/315 3505/4800/315 3501/4801/315 -f 3499/4802/314 3502/4803/314 3498/4804/314 -f 3501/4779/318 3498/4805/318 3500/4806/318 -f 3508/4807/315 3513/4808/315 3509/4809/315 -f 3507/4810/314 3510/4811/314 3506/4812/314 -f 3509/4813/316 3511/4814/316 3507/4815/316 -f 3506/4816/317 3512/4817/317 3508/4818/317 -f 3525/4819/316 3527/4820/316 3523/4821/316 -f 3519/4822/313 3520/4823/313 3518/4824/313 -f 3517/4825/316 3519/4822/316 3515/4826/316 -f 3514/4827/317 3520/4828/317 3516/4829/317 -f 3516/4830/315 3521/4831/315 3517/4832/315 -f 3515/4833/314 3518/4834/314 3514/4835/314 -f 3522/4836/317 3528/4837/317 3524/4838/317 -f 3524/4839/315 3529/4840/315 3525/4841/315 -f 3523/4842/314 3526/4843/314 3522/4844/314 -f 3525/4819/318 3522/4845/318 3524/4846/318 -f 3532/4847/315 3537/4848/315 3533/4849/315 -f 3531/4850/314 3534/4851/314 3530/4852/314 -f 3533/4853/316 3535/4854/316 3531/4855/316 -f 3530/4856/317 3536/4857/317 3532/4858/317 -f 3549/4859/316 3551/4860/316 3547/4861/316 -f 3543/4862/313 3544/4863/313 3542/4864/313 -f 3541/4865/316 3543/4862/316 3539/4866/316 -f 3538/4867/317 3544/4868/317 3540/4869/317 -f 3540/4870/315 3545/4871/315 3541/4872/315 -f 3539/4873/314 3542/4874/314 3538/4875/314 -f 3546/4876/317 3552/4877/317 3548/4878/317 -f 3548/4879/315 3553/4880/315 3549/4881/315 -f 3547/4882/314 3550/4883/314 3546/4884/314 -f 3549/4859/318 3546/4885/318 3548/4886/318 -f 3219/4436/313 3221/4441/313 3220/4437/313 -f 3225/4439/314 3219/4436/314 3218/4438/314 -f 3221/4441/315 3223/4887/315 3222/4442/315 -f 3223/4443/316 3221/4441/316 3219/4436/316 -f 3218/4438/317 3220/4437/317 3222/4445/317 -f 3214/4447/313 3226/4454/313 3227/4448/313 -f 3215/4449/313 3227/4448/313 3229/4450/313 -f 3216/4451/313 3229/4450/313 3228/4452/313 -f 3217/4453/313 3228/4452/313 3226/4454/313 -f 3232/4455/313 3233/4888/313 3230/4456/313 -f 3240/4458/318 3239/4465/318 3237/4459/318 -f 3241/4461/318 3240/4458/318 3235/4460/318 -f 3238/4463/318 3241/4461/318 3234/4462/318 -f 3239/4465/318 3238/4463/318 3236/4464/318 -f 3216/4466/317 3234/4889/317 3235/4467/317 -f 3227/4448/316 3240/4458/316 3241/4461/316 -f 3228/4469/317 3238/4890/317 3239/4470/317 -f 3215/4472/315 3235/4891/315 3237/4473/315 -f 3214/4475/316 3237/4892/316 3236/4476/316 -f 3229/4478/315 3241/4893/315 3238/4479/315 -f 3226/4481/314 3239/4894/314 3240/4482/314 -f 3217/4484/314 3236/4895/314 3234/4485/314 -f 3244/4487/315 3248/4896/315 3249/4488/315 -f 3243/4490/314 3247/4897/314 3246/4491/314 -f 3245/4493/316 3249/4898/316 3247/4494/316 -f 3242/4496/317 3246/4899/317 3248/4497/317 -f 3261/4499/316 3265/4900/316 3263/4500/316 -f 3255/4502/313 3257/4901/313 3256/4503/313 -f 3253/4505/316 3257/4901/316 3255/4502/316 -f 3250/4507/317 3254/4902/317 3256/4508/317 -f 3252/4510/315 3256/4903/315 3257/4511/315 -f 3251/4513/314 3255/4904/314 3254/4514/314 -f 3258/4516/317 3262/4905/317 3264/4517/317 -f 3260/4519/315 3264/4906/315 3265/4520/315 -f 3259/4522/314 3263/4907/314 3262/4523/314 -f 3261/4499/318 3259/4501/318 3258/4525/318 -f 3272/4527/313 3273/4535/313 3270/4528/313 -f 3269/4530/316 3273/4535/316 3272/4527/316 -f 3266/4532/317 3271/4908/317 3270/4533/317 -f 3268/4534/315 3270/4533/315 3273/4535/315 -f 3267/4531/314 3272/4527/314 3271/4536/314 -f 3276/4538/318 3275/4909/318 3274/4539/318 -f 3303/4541/318 3304/4910/318 3305/4542/318 -f 3306/4544/313 3307/4911/313 3308/4545/313 -f 3309/4547/314 3308/4545/314 3303/4548/314 -f 3308/4545/317 3307/4912/317 3304/4550/317 -f 3307/4552/315 3306/4913/315 3305/4542/315 -f 3306/4554/316 3309/4914/316 3302/4555/316 -f 3313/4556/316 3310/4915/316 3317/4557/316 -f 3312/4559/315 3313/4916/315 3314/4560/315 -f 3311/4562/317 3312/4559/317 3315/4563/317 -f 3310/4565/314 3311/4917/314 3316/4566/314 -f 3313/4567/313 3312/4559/313 3311/4568/313 -f 3316/4570/318 3315/4918/318 3314/4571/318 -f 3319/4572/318 3320/4581/318 3321/4573/318 -f 3322/4575/313 3323/4919/313 3324/4576/313 -f 3325/4577/314 3324/4920/314 3319/4578/314 -f 3324/4580/317 3323/4921/317 3320/4581/317 -f 3323/4583/315 3322/4922/315 3321/4584/315 -f 3322/4585/316 3325/4577/316 3318/4586/316 -f 3329/4588/316 3326/4923/316 3333/4589/316 -f 3328/4591/315 3329/4588/315 3330/4592/315 -f 3327/4594/317 3328/4924/317 3331/4595/317 -f 3326/4597/314 3327/4925/314 3332/4596/314 -f 3329/4588/313 3328/4926/313 3327/4599/313 -f 3332/4596/318 3331/4927/318 3330/4601/318 -f 3334/4603/313 3335/4928/313 3336/4604/313 -f 3337/4606/314 3336/4929/314 3276/4538/314 -f 3336/4608/317 3335/4930/317 3275/4609/317 -f 3335/4610/315 3334/4603/315 3274/4611/315 -f 3334/4603/316 3337/4931/316 3277/4613/316 -f 3341/4615/316 3338/4623/316 3345/4616/316 -f 3340/4618/315 3341/4932/315 3342/4619/315 -f 3339/4621/317 3340/4933/317 3343/4620/317 -f 3338/4623/314 3339/4934/314 3344/4624/314 -f 3341/4626/313 3340/4935/313 3339/4627/313 -f 3344/4628/318 3343/4620/318 3342/4629/318 -f 3347/4631/318 3348/4936/318 3349/4632/318 -f 3350/4634/313 3351/4642/313 3352/4635/313 -f 3353/4637/314 3352/4937/314 3347/4638/314 -f 3352/4639/317 3351/4642/317 3348/4640/317 -f 3351/4642/315 3350/4938/315 3349/4643/315 -f 3350/4645/316 3353/4939/316 3346/4633/316 -f 3357/4647/316 3354/4940/316 3361/4648/316 -f 3356/4650/315 3357/4941/315 3358/4649/315 -f 3355/4652/317 3356/4942/317 3359/4653/317 -f 3354/4655/314 3355/4652/314 3360/4656/314 -f 3357/4658/313 3356/4943/313 3355/4652/313 -f 3360/4660/318 3359/4944/318 3358/4649/318 -f 3363/4662/318 3365/4665/318 3364/4663/318 -f 3365/4665/317 3369/4945/317 3368/4666/317 -f 3362/4664/316 3366/4668/316 3367/4667/316 -f 3366/4668/313 3368/4946/313 3369/4669/313 -f 3371/4670/318 3373/4673/318 3372/4671/318 -f 3373/4673/317 3377/4677/317 3376/4674/317 -f 3370/4672/316 3374/4947/316 3375/4675/316 -f 3374/4676/313 3376/4674/313 3377/4677/313 -f 3379/4679/318 3381/4948/318 3380/4680/318 -f 3381/4682/317 3385/4687/317 3384/4683/317 -f 3378/4681/316 3382/4686/316 3383/4685/316 -f 3382/4686/313 3384/4683/313 3385/4687/313 -f 3387/4688/318 3389/4691/318 3388/4689/318 -f 3389/4691/317 3393/4697/317 3392/4692/317 -f 3386/4693/316 3390/4696/316 3391/4694/316 -f 3390/4696/313 3392/4692/313 3393/4697/313 -f 3395/4698/315 3397/4701/315 3396/4699/315 -f 3397/4701/317 3401/4949/317 3400/4702/317 -f 3394/4700/316 3398/4704/316 3399/4703/316 -f 3398/4704/314 3400/4950/314 3401/4705/314 -f 3403/4706/315 3405/4709/315 3404/4707/315 -f 3405/4709/317 3409/4713/317 3408/4710/317 -f 3402/4708/316 3406/4951/316 3407/4711/316 -f 3406/4712/314 3408/4710/314 3409/4713/314 -f 3411/4715/315 3413/4952/315 3412/4716/315 -f 3413/4718/317 3417/4723/317 3416/4719/317 -f 3410/4717/316 3414/4722/316 3415/4721/316 -f 3414/4722/314 3416/4719/314 3417/4723/314 -f 3419/4724/315 3421/4727/315 3420/4725/315 -f 3421/4727/317 3425/4733/317 3424/4728/317 -f 3418/4729/316 3422/4732/316 3423/4730/316 -f 3422/4732/314 3424/4728/314 3425/4733/314 -f 3429/4734/318 3428/4738/318 3426/4735/318 -f 3433/4737/315 3432/4953/315 3428/4738/315 -f 3430/4739/314 3431/4741/314 3427/4736/314 -f 3430/4739/313 3432/4954/313 3433/4740/313 -f 3437/4742/318 3436/4955/318 3434/4743/318 -f 3441/4745/315 3440/4956/315 3436/4746/315 -f 3438/4748/314 3439/4749/314 3435/4744/314 -f 3438/4748/313 3440/4956/313 3441/4745/313 -f 3445/4750/318 3444/4754/318 3442/4751/318 -f 3449/4753/315 3448/4957/315 3444/4754/315 -f 3446/4755/314 3447/4958/314 3443/4752/314 -f 3446/4756/313 3448/4957/313 3449/4753/313 -f 3453/4758/318 3452/4762/318 3450/4759/318 -f 3457/4761/315 3456/4959/315 3452/4762/315 -f 3454/4763/314 3455/4766/314 3451/4764/314 -f 3454/4763/313 3456/4959/313 3457/4761/313 -f 3484/4767/315 3488/4960/315 3489/4768/315 -f 3483/4770/314 3487/4961/314 3486/4771/314 -f 3485/4773/316 3489/4962/316 3487/4774/316 -f 3482/4776/317 3486/4963/317 3488/4777/317 -f 3501/4779/316 3505/4964/316 3503/4780/316 -f 3495/4782/313 3497/4965/313 3496/4783/313 -f 3493/4785/316 3497/4965/316 3495/4782/316 -f 3490/4787/317 3494/4966/317 3496/4788/317 -f 3492/4790/315 3496/4967/315 3497/4791/315 -f 3491/4793/314 3495/4968/314 3494/4794/314 -f 3498/4796/317 3502/4969/317 3504/4797/317 -f 3500/4799/315 3504/4970/315 3505/4800/315 -f 3499/4802/314 3503/4971/314 3502/4803/314 -f 3501/4779/318 3499/4781/318 3498/4805/318 -f 3508/4807/315 3512/4972/315 3513/4808/315 -f 3507/4810/314 3511/4973/314 3510/4811/314 -f 3509/4813/316 3513/4974/316 3511/4814/316 -f 3506/4816/317 3510/4975/317 3512/4817/317 -f 3525/4819/316 3529/4976/316 3527/4820/316 -f 3519/4822/313 3521/4977/313 3520/4823/313 -f 3517/4825/316 3521/4977/316 3519/4822/316 -f 3514/4827/317 3518/4978/317 3520/4828/317 -f 3516/4830/315 3520/4979/315 3521/4831/315 -f 3515/4833/314 3519/4980/314 3518/4834/314 -f 3522/4836/317 3526/4981/317 3528/4837/317 -f 3524/4839/315 3528/4982/315 3529/4840/315 -f 3523/4842/314 3527/4983/314 3526/4843/314 -f 3525/4819/318 3523/4821/318 3522/4845/318 -f 3532/4847/315 3536/4984/315 3537/4848/315 -f 3531/4850/314 3535/4985/314 3534/4851/314 -f 3533/4853/316 3537/4986/316 3535/4854/316 -f 3530/4856/317 3534/4987/317 3536/4857/317 -f 3549/4859/316 3553/4988/316 3551/4860/316 -f 3543/4862/313 3545/4989/313 3544/4863/313 -f 3541/4865/316 3545/4989/316 3543/4862/316 -f 3538/4867/317 3542/4990/317 3544/4868/317 -f 3540/4870/315 3544/4991/315 3545/4871/315 -f 3539/4873/314 3543/4992/314 3542/4874/314 -f 3546/4876/317 3550/4993/317 3552/4877/317 -f 3548/4879/315 3552/4994/315 3553/4880/315 -f 3547/4882/314 3551/4995/314 3550/4883/314 -f 3549/4859/318 3547/4861/318 3546/4885/318 -s 1 -f 3279/4996/319 3280/4997/320 3278/4998/321 -f 3281/4999/322 3282/5000/323 3280/4997/320 -f 3283/5001/324 3284/5002/325 3282/5000/323 -f 3285/5003/326 3286/5004/327 3284/5005/325 -f 3287/5006/328 3288/5007/329 3286/5004/327 -f 3289/5008/330 3290/5009/331 3288/5007/329 -f 3291/5010/332 3292/5011/333 3290/5009/331 -f 3293/5012/334 3294/5013/335 3292/5011/333 -f 3295/5014/336 3296/5015/337 3294/5013/335 -f 3297/5016/338 3298/5017/339 3296/5015/337 -f 3293/5012/334 3466/5018/340 3295/5014/336 -f 3299/5019/341 3300/5020/342 3298/5017/339 -f 3301/5021/343 3278/4998/321 3300/5020/342 -f 3288/5007/329 3476/5022/344 3475/5023/345 -f 3462/5024/346 3460/5025/347 3468/5026/348 -f 3293/5012/334 3464/5027/349 3465/5028/350 -f 3289/5008/330 3464/5029/349 3291/5010/332 -f 3287/5006/328 3463/5030/351 3289/5008/330 -f 3285/5003/326 3462/5031/346 3287/5006/328 -f 3279/4996/319 3469/5032/352 3459/5033/353 -f 3279/4996/319 3458/5034/354 3281/4999/322 -f 3285/5035/326 3460/5036/347 3461/5037/355 -f 3301/5021/343 3468/5038/348 3469/5039/352 -f 3283/5001/324 3458/5040/354 3460/5041/347 -f 3299/5019/341 3467/5042/356 3468/5043/348 -f 3295/5014/336 3467/5044/356 3297/5016/338 -f 3473/5045/357 3477/5046/358 3481/5047/359 -f 3288/5007/329 3474/5048/360 3286/5004/327 -f 3284/5005/325 3474/5049/360 3473/5050/357 -f 3300/5020/342 3470/5051/361 3481/5052/359 -f 3278/4998/321 3471/5053/362 3470/5054/361 -f 3284/5002/325 3472/5055/363 3282/5000/323 -f 3300/5020/342 3480/5056/364 3298/5017/339 -f 3282/5000/323 3471/5057/362 3280/4997/320 -f 3298/5017/339 3479/5058/365 3296/5015/337 -f 3294/5013/335 3479/5059/365 3478/5060/366 -f 3294/5013/335 3477/5061/358 3292/5011/333 -f 3292/5011/333 3476/5062/344 3290/5009/331 -f 3279/4996/319 3281/4999/322 3280/4997/320 -f 3281/4999/322 3283/5001/324 3282/5000/323 -f 3283/5001/324 3285/5035/326 3284/5002/325 -f 3285/5003/326 3287/5006/328 3286/5004/327 -f 3287/5006/328 3289/5008/330 3288/5007/329 -f 3289/5008/330 3291/5010/332 3290/5009/331 -f 3291/5010/332 3293/5012/334 3292/5011/333 -f 3293/5012/334 3295/5014/336 3294/5013/335 -f 3295/5014/336 3297/5016/338 3296/5015/337 -f 3297/5016/338 3299/5019/341 3298/5017/339 -f 3293/5012/334 3465/5063/350 3466/5018/340 -f 3299/5019/341 3301/5021/343 3300/5020/342 -f 3301/5021/343 3279/4996/319 3278/4998/321 -f 3288/5007/329 3290/5009/331 3476/5022/344 -f 3460/5025/347 3458/5064/354 3459/5065/353 -f 3459/5065/353 3469/5066/352 3460/5025/347 -f 3469/5066/352 3468/5026/348 3460/5025/347 -f 3468/5026/348 3467/5067/356 3466/5068/340 -f 3466/5068/340 3465/5069/350 3468/5026/348 -f 3465/5069/350 3464/5070/349 3468/5026/348 -f 3464/5070/349 3463/5071/351 3462/5024/346 -f 3462/5024/346 3461/5072/355 3460/5025/347 -f 3464/5070/349 3462/5024/346 3468/5026/348 -f 3293/5012/334 3291/5010/332 3464/5027/349 -f 3289/5008/330 3463/5073/351 3464/5029/349 -f 3287/5006/328 3462/5074/346 3463/5030/351 -f 3285/5003/326 3461/5075/355 3462/5031/346 -f 3279/4996/319 3301/5021/343 3469/5032/352 -f 3279/4996/319 3459/5076/353 3458/5034/354 -f 3285/5035/326 3283/5001/324 3460/5036/347 -f 3301/5021/343 3299/5019/341 3468/5038/348 -f 3283/5001/324 3281/4999/322 3458/5040/354 -f 3299/5019/341 3297/5016/338 3467/5042/356 -f 3295/5014/336 3466/5077/340 3467/5044/356 -f 3481/5047/359 3470/5078/361 3471/5079/362 -f 3471/5079/362 3472/5080/363 3481/5047/359 -f 3472/5080/363 3473/5045/357 3481/5047/359 -f 3473/5045/357 3474/5081/360 3475/5082/345 -f 3475/5082/345 3476/5083/344 3477/5046/358 -f 3477/5046/358 3478/5084/366 3479/5085/365 -f 3479/5085/365 3480/5086/364 3477/5046/358 -f 3480/5086/364 3481/5047/359 3477/5046/358 -f 3473/5045/357 3475/5082/345 3477/5046/358 -f 3288/5007/329 3475/5087/345 3474/5048/360 -f 3284/5005/325 3286/5004/327 3474/5049/360 -f 3300/5020/342 3278/4998/321 3470/5051/361 -f 3278/4998/321 3280/4997/320 3471/5053/362 -f 3284/5002/325 3473/5088/357 3472/5055/363 -f 3300/5020/342 3481/5089/359 3480/5056/364 -f 3282/5000/323 3472/5090/363 3471/5057/362 -f 3298/5017/339 3480/5091/364 3479/5058/365 -f 3294/5013/335 3296/5015/337 3479/5059/365 -f 3294/5013/335 3478/5092/366 3477/5061/358 -f 3292/5011/333 3477/5093/358 3476/5062/344 -o V2_Rope -v 0.000000 9.000000 1.750000 -v 0.000000 8.875000 1.750000 -v 0.000000 9.000000 0.000000 -v 0.000000 8.875000 0.000000 -v 0.000000 8.875000 1.375000 -v 0.000000 8.750000 1.375000 -v 0.000000 8.875000 0.375000 -v 0.000000 8.750000 0.375000 -v 0.312500 2.062500 1.937500 -v 0.268306 2.062500 1.955806 -v 0.250000 2.062500 2.000000 -v 0.268306 2.062500 2.044194 -v 0.312500 2.062500 2.062500 -v 0.356694 2.062500 2.044194 -v 0.375000 2.062500 2.000000 -v 0.356694 2.062500 1.955806 -v 0.330806 2.018306 1.937500 -v 0.299556 1.987056 1.955806 -v 0.286612 1.974112 2.000000 -v 0.299556 1.987056 2.044194 -v 0.330806 2.018306 2.062500 -v 0.362056 2.049556 2.044194 -v 0.362056 2.049556 1.955806 -v 0.375000 2.000000 1.937500 -v 0.375000 1.955806 1.955806 -v 0.375000 1.937500 2.000000 -v 0.375000 1.955806 2.044194 -v 0.375000 2.000000 2.062500 -v 0.375000 2.044194 2.044194 -v 0.375000 2.044194 1.955806 -v 0.500000 2.062500 2.000000 -v 0.500000 2.000000 1.937500 -v 0.500000 1.955806 1.955806 -v 0.500000 1.937500 2.000000 -v 0.500000 1.955806 2.044194 -v 0.500000 2.000000 2.062500 -v 0.500000 2.044194 2.044194 -v 0.500000 2.044194 1.955806 -v 0.312500 5.312500 1.937500 -v 0.268306 5.312500 1.955806 -v 0.250000 5.312500 2.000000 -v 0.268306 5.312500 2.044194 -v 0.312500 5.312500 2.062500 -v 0.356694 5.312500 2.044194 -v 0.375000 5.312500 2.000000 -v 0.356694 5.312500 1.955806 -v 0.312500 4.625000 2.000000 -v 0.268306 4.606694 2.000000 -v 0.250000 4.562500 2.000000 -v 0.268306 4.518306 2.000000 -v 0.312500 4.500000 2.000000 -v 0.356694 4.518306 2.000000 -v 0.375000 4.562500 2.000000 -v 0.356694 4.606694 2.000000 -v 0.312500 4.625000 0.250000 -v 0.268306 4.606694 0.250000 -v 0.250000 4.562500 0.250000 -v 0.268306 4.518306 0.250000 -v 0.312500 4.500000 0.250000 -v 0.356694 4.518306 0.250000 -v 0.375000 4.562500 0.250000 -v 0.356694 4.606694 0.250000 -v 0.268306 5.325444 1.950444 -v 0.250000 5.356694 1.981694 -v 0.268306 5.387944 2.012944 -v 0.312500 5.400888 2.025888 -v 0.356694 5.387944 2.012944 -v 0.375000 5.356694 1.981694 -v 0.356694 5.325444 1.950444 -v 0.268306 5.330806 1.937500 -v 0.250000 5.375000 1.937500 -v 0.268306 5.419194 1.937500 -v 0.312500 5.437500 1.937500 -v 0.356694 5.419194 1.937500 -v 0.375000 5.375000 1.937500 -v 0.356694 5.330806 1.937500 -v 0.312500 5.312500 0.187500 -v 0.268306 5.330806 0.187500 -v 0.250000 5.375000 0.187500 -v 0.268306 5.419194 0.187500 -v 0.312500 5.437500 0.187500 -v 0.356694 5.419194 0.187500 -v 0.375000 5.375000 0.187500 -v 0.356694 5.330806 0.187500 -v 0.000000 9.000000 1.750000 -v 0.000000 8.875000 1.750000 -v 0.000000 9.000000 0.000000 -v 0.000000 8.875000 0.000000 -v 0.000000 8.875000 1.375000 -v 0.000000 8.750000 1.375000 -v 0.000000 8.875000 0.375000 -v 0.000000 8.750000 0.375000 -vt 0.408163 0.631579 -vt 0.438776 0.644737 -vt 0.408163 0.644737 -vt 0.520408 0.644737 -vt 0.551020 0.631579 -vt 0.551020 0.644737 -vt 0.438776 0.631579 -vt 0.408163 0.631579 -vt 0.438776 0.644737 -vt 0.438776 0.631579 -vt 0.551020 0.631579 -vt 0.520408 0.644737 -vt 0.551020 0.644737 -vt 0.520408 0.631579 -vt 0.408163 0.644737 -vt 0.520408 0.631579 -vt 0.816327 0.342105 -vt 0.821429 0.335526 -vt 0.821429 0.342105 -vt 0.806122 0.342105 -vt 0.811224 0.335526 -vt 0.811224 0.342105 -vt 0.795918 0.342105 -vt 0.801020 0.335526 -vt 0.801020 0.342105 -vt 0.836735 0.342105 -vt 0.831633 0.335526 -vt 0.836735 0.335526 -vt 0.816327 0.335526 -vt 0.806122 0.335526 -vt 0.836735 0.328947 -vt 0.816327 0.328947 -vt 0.801020 0.328947 -vt 0.806122 0.328947 -vt 0.821429 0.328947 -vt 0.811224 0.328947 -vt 0.795918 0.328947 -vt 0.826531 0.335526 -vt 0.831633 0.342105 -vt 0.831633 0.328947 -vt 0.826531 0.315789 -vt 0.831633 0.315789 -vt 0.836735 0.315789 -vt 0.826531 0.328947 -vt 0.816327 0.315789 -vt 0.801020 0.315789 -vt 0.806122 0.315789 -vt 0.821429 0.315789 -vt 0.811224 0.315789 -vt 0.826531 0.684211 -vt 0.826531 0.342105 -vt 0.816327 0.684211 -vt 0.806122 0.684211 -vt 0.795918 0.684211 -vt 0.831633 0.684211 -vt 0.821429 0.684211 -vt 0.811224 0.684211 -vt 0.801020 0.684211 -vt 0.806122 0.828947 -vt 0.801020 0.697368 -vt 0.806122 0.697368 -vt 0.816327 0.828947 -vt 0.811224 0.697368 -vt 0.816327 0.697368 -vt 0.821429 0.828947 -vt 0.821429 0.697368 -vt 0.831633 0.828947 -vt 0.826531 0.697368 -vt 0.831633 0.697368 -vt 0.801020 0.828947 -vt 0.795918 0.697368 -vt 0.811224 0.828947 -vt 0.826531 0.828947 -vt 0.836735 0.828947 -vt 0.836735 0.697368 -vt 0.821429 0.690789 -vt 0.811224 0.690789 -vt 0.801020 0.690789 -vt 0.831633 0.690789 -vt 0.826531 0.690789 -vt 0.816327 0.690789 -vt 0.806122 0.690789 -vt 0.806122 0.697368 -vt 0.801020 0.697368 -vt 0.826531 0.697368 -vt 0.816327 0.697368 -vt 0.811224 0.697368 -vt 0.821429 0.697368 -vt 0.795918 0.690789 -vt 0.836735 0.690789 -vt 0.831633 0.697368 -vt 0.836735 0.828947 -vt 0.831633 0.828947 -vt 0.826531 0.828947 -vt 0.795918 0.828947 -vt 0.795918 0.697368 -vt 0.816327 0.828947 -vt 0.806122 0.828947 -vt 0.821429 0.828947 -vt 0.811224 0.828947 -vt 0.801020 0.828947 -vt 0.795918 0.335526 -vt 0.795918 0.315789 -vt 0.836735 0.684211 -vt 0.795918 0.828947 -vt 0.836735 0.697368 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.0473 -0.0196 0.9987 -vn 0.4617 0.4617 0.7573 -vn 0.6737 0.1363 0.7263 -vn -0.9824 -0.1866 0.0000 -vn -0.5293 -0.5293 0.6630 -vn -0.7194 -0.1447 0.6794 -vn -0.0473 -0.0196 -0.9987 -vn -0.5293 -0.5293 -0.6630 -vn -0.7194 -0.1447 -0.6794 -vn 0.4617 0.4617 -0.7573 -vn -0.0670 -0.0670 -0.9955 -vn -0.0670 -0.0670 0.9955 -vn -0.7071 -0.7071 0.0000 -vn -0.0196 -0.0473 -0.9987 -vn -0.0196 -0.0473 0.9987 -vn -0.1447 -0.7194 -0.6794 -vn -0.1866 -0.9824 0.0000 -vn 0.1363 0.6737 0.7263 -vn -0.1447 -0.7194 0.6794 -vn 0.7071 0.7071 0.0000 -vn 0.6737 0.1363 -0.7263 -vn 0.1363 0.6737 -0.7263 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.9987 0.0196 0.0473 -vn 0.0000 0.1866 0.9824 -vn -0.9987 0.0196 0.0473 -vn 0.7263 -0.1363 -0.6737 -vn 0.6794 0.1447 0.7194 -vn -0.6794 0.1447 0.7194 -vn -0.7263 -0.1363 -0.6737 -vn -0.7071 0.7071 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 0.6630 0.5293 0.5293 -vn -0.6630 0.5293 0.5293 -vn -0.7573 -0.4617 -0.4617 -vn 0.7573 -0.4617 -0.4617 -vn 0.9955 0.0670 0.0670 -vn -0.9955 0.0670 0.0670 -vn -0.9987 0.0473 0.0196 -vn -0.7263 -0.6737 -0.1363 -vn 0.9987 0.0473 0.0196 -vn 0.0000 0.9824 0.1866 -vn -0.6794 0.7194 0.1447 -vn 0.6794 0.7194 0.1447 -vn 0.7263 -0.6737 -0.1363 -s off -f 3555/5094/367 3558/5095/367 3554/5096/367 -f 3560/5097/367 3557/5098/367 3556/5099/367 -f 3559/5100/367 3560/5097/367 3558/5095/367 -f 3639/5101/368 3642/5102/368 3643/5103/368 -f 3641/5104/368 3644/5105/368 3640/5106/368 -f 3644/5105/368 3643/5103/368 3642/5102/368 -f 3555/5094/367 3559/5100/367 3558/5095/367 -f 3560/5097/367 3561/5107/367 3557/5098/367 -f 3559/5100/367 3561/5107/367 3560/5097/367 -f 3639/5101/368 3638/5108/368 3642/5102/368 -f 3641/5104/368 3645/5109/368 3644/5105/368 -f 3644/5105/368 3645/5109/368 3643/5103/368 -s 1 -f 3566/5110/369 3575/5111/370 3567/5112/371 -f 3564/5113/372 3573/5114/373 3565/5115/374 -f 3562/5116/375 3571/5117/376 3563/5118/377 -f 3562/5119/375 3576/5120/378 3570/5121/379 -f 3566/5110/369 3573/5114/373 3574/5122/380 -f 3563/5118/377 3572/5123/381 3564/5113/372 -f 3576/5120/378 3577/5124/382 3570/5121/379 -f 3573/5114/373 3581/5125/383 3574/5122/380 -f 3572/5123/381 3578/5126/384 3579/5127/385 -f 3575/5111/370 3581/5125/383 3582/5128/386 -f 3572/5123/381 3580/5129/387 3573/5114/373 -f 3571/5117/376 3577/5130/382 3578/5126/384 -f 3567/5112/371 3575/5111/370 3568/5131/388 -f 3575/5111/370 3582/5128/386 3568/5131/388 -f 3568/5131/388 3576/5120/378 3569/5132/389 -f 3576/5120/378 3568/5131/388 3583/5133/390 -f 3583/5133/390 3584/5134/391 3591/5135/392 -f 3583/5133/390 3585/5136/393 3577/5124/382 -f 3582/5128/386 3584/5134/391 3568/5137/388 -f 3580/5129/387 3589/5138/394 3581/5125/383 -f 3579/5127/385 3586/5139/395 3587/5140/396 -f 3581/5125/383 3590/5141/397 3582/5128/386 -f 3579/5127/385 3588/5142/398 3580/5129/387 -f 3577/5130/382 3586/5139/395 3578/5126/384 -f 3569/5132/389 3598/5143/399 3568/5144/388 -f 3567/5112/371 3596/5145/400 3566/5110/369 -f 3565/5115/374 3594/5146/401 3564/5113/372 -f 3563/5118/377 3592/5147/395 3562/5116/375 -f 3562/5119/375 3599/5148/402 3569/5132/389 -f 3568/5144/388 3597/5149/403 3567/5112/371 -f 3566/5110/369 3595/5150/404 3565/5115/374 -f 3564/5113/372 3593/5151/405 3563/5118/377 -f 3610/5152/368 3603/5153/381 3602/5154/368 -f 3608/5155/391 3601/5156/406 3600/5157/391 -f 3615/5158/388 3600/5157/391 3607/5159/388 -f 3613/5160/407 3606/5161/367 3605/5162/407 -f 3611/5163/381 3604/5164/396 3603/5153/381 -f 3609/5165/406 3602/5154/368 3601/5156/406 -f 3614/5166/367 3607/5159/388 3606/5161/367 -f 3612/5167/396 3605/5162/407 3604/5168/396 -f 3598/5143/399 3620/5169/408 3597/5149/403 -f 3596/5145/400 3618/5170/409 3595/5150/404 -f 3594/5146/401 3616/5171/410 3593/5151/405 -f 3598/5143/399 3622/5172/411 3621/5173/412 -f 3597/5149/403 3619/5174/397 3596/5145/400 -f 3594/5146/401 3618/5170/409 3617/5175/413 -f 3616/5171/410 3624/5176/414 3623/5177/415 -f 3622/5172/411 3628/5178/416 3621/5173/412 -f 3620/5169/408 3626/5179/417 3619/5174/397 -f 3617/5175/413 3625/5180/418 3624/5176/414 -f 3620/5169/408 3628/5178/416 3627/5181/419 -f 3618/5170/409 3626/5179/417 3625/5180/418 -f 3593/5151/405 3616/5171/410 3592/5182/395 -f 3616/5171/410 3623/5177/415 3592/5182/395 -f 3599/5148/402 3592/5183/395 3622/5172/411 -f 3622/5172/411 3592/5183/395 3629/5184/420 -f 3629/5184/420 3630/5185/396 3637/5186/407 -f 3629/5184/420 3636/5187/367 3628/5178/416 -f 3623/5177/415 3630/5188/396 3592/5189/395 -f 3627/5181/419 3634/5190/391 3626/5179/417 -f 3625/5180/418 3632/5191/368 3624/5176/414 -f 3628/5178/416 3635/5192/388 3627/5181/419 -f 3626/5179/417 3633/5193/406 3625/5180/418 -f 3623/5177/415 3632/5191/368 3631/5194/381 -f 3566/5110/369 3574/5122/380 3575/5111/370 -f 3564/5113/372 3572/5123/381 3573/5114/373 -f 3562/5116/375 3570/5195/379 3571/5117/376 -f 3562/5119/375 3569/5132/389 3576/5120/378 -f 3566/5110/369 3565/5115/374 3573/5114/373 -f 3563/5118/377 3571/5117/376 3572/5123/381 -f 3576/5120/378 3583/5133/390 3577/5124/382 -f 3573/5114/373 3580/5129/387 3581/5125/383 -f 3572/5123/381 3571/5117/376 3578/5126/384 -f 3575/5111/370 3574/5122/380 3581/5125/383 -f 3572/5123/381 3579/5127/385 3580/5129/387 -f 3571/5117/376 3570/5195/379 3577/5130/382 -f 3583/5133/390 3568/5137/388 3584/5134/391 -f 3583/5133/390 3591/5135/392 3585/5136/393 -f 3582/5128/386 3590/5141/397 3584/5134/391 -f 3580/5129/387 3588/5142/398 3589/5138/394 -f 3579/5127/385 3578/5126/384 3586/5139/395 -f 3581/5125/383 3589/5138/394 3590/5141/397 -f 3579/5127/385 3587/5140/396 3588/5142/398 -f 3577/5130/382 3585/5196/393 3586/5139/395 -f 3569/5132/389 3599/5148/402 3598/5143/399 -f 3567/5112/371 3597/5149/403 3596/5145/400 -f 3565/5115/374 3595/5150/404 3594/5146/401 -f 3563/5118/377 3593/5151/405 3592/5147/395 -f 3562/5119/375 3592/5197/395 3599/5148/402 -f 3568/5144/388 3598/5143/399 3597/5149/403 -f 3566/5110/369 3596/5145/400 3595/5150/404 -f 3564/5113/372 3594/5146/401 3593/5151/405 -f 3610/5152/368 3611/5163/381 3603/5153/381 -f 3608/5155/391 3609/5165/406 3601/5156/406 -f 3615/5158/388 3608/5155/391 3600/5157/391 -f 3613/5160/407 3614/5166/367 3606/5161/367 -f 3611/5163/381 3612/5198/396 3604/5164/396 -f 3609/5165/406 3610/5152/368 3602/5154/368 -f 3614/5166/367 3615/5158/388 3607/5159/388 -f 3612/5167/396 3613/5160/407 3605/5162/407 -f 3598/5143/399 3621/5173/412 3620/5169/408 -f 3596/5145/400 3619/5174/397 3618/5170/409 -f 3594/5146/401 3617/5175/413 3616/5171/410 -f 3598/5143/399 3599/5148/402 3622/5172/411 -f 3597/5149/403 3620/5169/408 3619/5174/397 -f 3594/5146/401 3595/5150/404 3618/5170/409 -f 3616/5171/410 3617/5175/413 3624/5176/414 -f 3622/5172/411 3629/5184/420 3628/5178/416 -f 3620/5169/408 3627/5181/419 3626/5179/417 -f 3617/5175/413 3618/5170/409 3625/5180/418 -f 3620/5169/408 3621/5173/412 3628/5178/416 -f 3618/5170/409 3619/5174/397 3626/5179/417 -f 3629/5184/420 3592/5199/395 3630/5185/396 -f 3629/5184/420 3637/5186/407 3636/5187/367 -f 3623/5177/415 3631/5194/381 3630/5188/396 -f 3627/5181/419 3635/5192/388 3634/5190/391 -f 3625/5180/418 3633/5193/406 3632/5191/368 -f 3628/5178/416 3636/5187/367 3635/5192/388 -f 3626/5179/417 3634/5190/391 3633/5193/406 -f 3623/5177/415 3624/5176/414 3632/5191/368 -o V2_Pivot -v 0.500000 1.250000 -1.625000 -v 0.750000 1.250000 -1.625000 -v 0.500000 1.250000 -1.875000 -v 0.750000 1.250000 -1.875000 -v 0.500000 2.750000 -1.875000 -v 0.500000 2.750000 -1.625000 -v 0.750000 2.750000 -1.625000 -v 0.750000 2.750000 -1.875000 -v -0.750000 1.250000 -1.625000 -v -0.500000 1.250000 -1.625000 -v -0.750000 1.250000 -1.875000 -v -0.500000 1.250000 -1.875000 -v -0.750000 2.750000 -1.875000 -v -0.750000 2.750000 -1.625000 -v -0.500000 2.750000 -1.625000 -v -0.500000 2.750000 -1.875000 -v 0.562500 2.750000 -1.687500 -v 0.687500 2.750000 -1.687500 -v 0.562500 2.750000 -1.812500 -v 0.687500 2.750000 -1.812500 -v 0.562500 3.750000 -1.812500 -v 0.562500 3.750000 -1.687500 -v 0.687500 3.750000 -1.687500 -v 0.687500 3.750000 -1.812500 -v -0.687500 2.750000 -1.687500 -v -0.562500 2.750000 -1.687500 -v -0.687500 2.750000 -1.812500 -v -0.562500 2.750000 -1.812500 -v -0.687500 3.750000 -1.812500 -v -0.687500 3.750000 -1.687500 -v -0.562500 3.750000 -1.687500 -v -0.562500 3.750000 -1.812500 -vt 0.836735 0.184211 -vt 0.857143 0.157895 -vt 0.857143 0.184211 -vt 0.918367 -0.000000 -vt 0.897959 0.157895 -vt 0.897959 -0.000000 -vt 0.877551 -0.000000 -vt 0.857143 -0.000000 -vt 0.836735 0.157895 -vt 0.836735 -0.000000 -vt 0.877551 0.157895 -vt 0.836735 0.184211 -vt 0.857143 0.157895 -vt 0.857143 0.184211 -vt 0.918367 -0.000000 -vt 0.897959 0.157895 -vt 0.897959 -0.000000 -vt 0.877551 -0.000000 -vt 0.857143 -0.000000 -vt 0.836735 0.157895 -vt 0.836735 -0.000000 -vt 0.877551 0.157895 -vt 0.897959 0.157895 -vt 0.887755 0.263158 -vt 0.887755 0.157895 -vt 0.877551 0.157895 -vt 0.867347 0.263158 -vt 0.867347 0.157895 -vt 0.857143 0.263158 -vt 0.857143 0.157895 -vt 0.877551 0.263158 -vt 0.897959 0.157895 -vt 0.887755 0.263158 -vt 0.887755 0.157895 -vt 0.877551 0.157895 -vt 0.867347 0.263158 -vt 0.867347 0.157895 -vt 0.857143 0.263158 -vt 0.857143 0.157895 -vt 0.877551 0.263158 -vt 0.918367 0.157895 -vt 0.918367 0.157895 -vt 0.897959 0.263158 -vt 0.897959 0.263158 -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 -s off -f 3652/5200/421 3650/5201/421 3651/5202/421 -f 3649/5203/422 3652/5204/422 3647/5205/422 -f 3646/5206/423 3650/5201/423 3648/5207/423 -f 3648/5207/424 3653/5208/424 3649/5209/424 -f 3647/5205/425 3651/5210/425 3646/5206/425 -f 3660/5211/421 3658/5212/421 3659/5213/421 -f 3657/5214/422 3660/5215/422 3655/5216/422 -f 3654/5217/423 3658/5212/423 3656/5218/423 -f 3656/5218/424 3661/5219/424 3657/5220/424 -f 3655/5216/425 3659/5221/425 3654/5217/425 -f 3665/5222/422 3668/5223/422 3663/5224/422 -f 3662/5225/423 3666/5226/423 3664/5227/423 -f 3664/5227/424 3669/5228/424 3665/5229/424 -f 3663/5224/425 3667/5230/425 3662/5225/425 -f 3673/5231/422 3676/5232/422 3671/5233/422 -f 3670/5234/423 3674/5235/423 3672/5236/423 -f 3672/5236/424 3677/5237/424 3673/5238/424 -f 3671/5233/425 3675/5239/425 3670/5234/425 -f 3652/5200/421 3653/5208/421 3650/5201/421 -f 3649/5203/422 3653/5240/422 3652/5204/422 -f 3646/5206/423 3651/5210/423 3650/5201/423 -f 3648/5207/424 3650/5201/424 3653/5208/424 -f 3647/5205/425 3652/5204/425 3651/5210/425 -f 3660/5211/421 3661/5219/421 3658/5212/421 -f 3657/5214/422 3661/5241/422 3660/5215/422 -f 3654/5217/423 3659/5221/423 3658/5212/423 -f 3656/5218/424 3658/5212/424 3661/5219/424 -f 3655/5216/425 3660/5215/425 3659/5221/425 -f 3665/5222/422 3669/5242/422 3668/5223/422 -f 3662/5225/423 3667/5230/423 3666/5226/423 -f 3664/5227/424 3666/5226/424 3669/5228/424 -f 3663/5224/425 3668/5223/425 3667/5230/425 -f 3673/5231/422 3677/5243/422 3676/5232/422 -f 3670/5234/423 3675/5239/423 3674/5235/423 -f 3672/5236/424 3674/5235/424 3677/5237/424 -f 3671/5233/425 3676/5232/425 3675/5239/425 -o V2_Erector -v 0.500000 2.750000 -1.875000 -v 0.500000 2.750000 -1.625000 -v 0.750000 2.750000 -1.625000 -v 0.750000 2.750000 -1.875000 -v -0.750000 2.750000 -1.875000 -v -0.750000 2.750000 -1.625000 -v -0.500000 2.750000 -1.625000 -v -0.500000 2.750000 -1.875000 -v 0.500000 7.750000 -1.875000 -v 0.500000 7.750000 -1.625000 -v 0.750000 7.750000 -1.625000 -v 0.750000 7.750000 -1.875000 -v -0.750000 7.750000 -1.875000 -v -0.750000 7.750000 -1.625000 -v -0.500000 7.750000 -1.625000 -v -0.500000 7.750000 -1.875000 -v 0.500000 4.250000 -0.125000 -v 0.500000 4.250000 0.125000 -v 0.750000 4.250000 0.125000 -v 0.750000 4.250000 -0.125000 -v -0.750000 4.250000 -0.125000 -v -0.750000 4.250000 0.125000 -v -0.500000 4.250000 0.125000 -v -0.500000 4.250000 -0.125000 -v 0.500000 7.750000 -0.125000 -v 0.500000 7.750000 0.125000 -v 0.750000 7.750000 0.125000 -v 0.750000 7.750000 -0.125000 -v -0.750000 7.750000 -0.125000 -v -0.750000 7.750000 0.125000 -v -0.500000 7.750000 0.125000 -v -0.500000 7.750000 -0.125000 -v -0.250000 7.250000 -0.625000 -v 0.250000 7.250000 -0.625000 -v -0.250000 7.250000 -0.375000 -v 0.250000 7.250000 -0.375000 -v -0.500000 7.250000 -0.125000 -v -0.750000 7.250000 -0.125000 -v 0.750000 7.250000 -0.125000 -v 0.500000 7.250000 -0.125000 -v 0.500000 5.000000 -0.125000 -v 0.750000 5.000000 -0.125000 -v -0.750000 5.000000 -0.125000 -v -0.500000 5.000000 -0.125000 -v 0.250000 5.000000 -0.375000 -v -0.250000 5.000000 -0.375000 -v 0.250000 5.000000 -0.625000 -v -0.250000 5.000000 -0.625000 -v 0.500000 4.750000 -0.125000 -v 0.750000 4.750000 -0.125000 -v -0.750000 4.750000 -0.125000 -v -0.500000 4.750000 -0.125000 -v 0.250000 4.750000 -0.375000 -v -0.250000 4.750000 -0.375000 -v 0.250000 4.750000 -0.625000 -v -0.250000 4.750000 -0.625000 -v 0.500000 7.625000 -0.125000 -v 0.750000 7.625000 -0.125000 -v 0.500000 7.375000 -0.125000 -v 0.750000 7.375000 -0.125000 -v 0.500000 7.625000 -1.625000 -v 0.750000 7.625000 -1.625000 -v 0.500000 7.375000 -1.625000 -v 0.750000 7.375000 -1.625000 -v -0.750000 7.625000 -0.125000 -v -0.500000 7.625000 -0.125000 -v -0.750000 7.375000 -0.125000 -v -0.500000 7.375000 -0.125000 -v -0.750000 7.625000 -1.625000 -v -0.500000 7.625000 -1.625000 -v -0.750000 7.375000 -1.625000 -v -0.500000 7.375000 -1.625000 -v 0.500000 4.625000 -0.125000 -v 0.750000 4.625000 -0.125000 -v 0.500000 4.375000 -0.125000 -v 0.750000 4.375000 -0.125000 -v 0.500000 4.625000 -1.625000 -v 0.750000 4.625000 -1.625000 -v 0.500000 4.375000 -1.625000 -v 0.750000 4.375000 -1.625000 -v -0.750000 4.625000 -0.125000 -v -0.500000 4.625000 -0.125000 -v -0.750000 4.375000 -0.125000 -v -0.500000 4.375000 -0.125000 -v -0.750000 4.625000 -1.625000 -v -0.500000 4.625000 -1.625000 -v -0.750000 4.375000 -1.625000 -v -0.500000 4.375000 -1.625000 -v 0.500000 6.125000 -0.125000 -v 0.750000 6.125000 -0.125000 -v 0.500000 5.875000 -0.125000 -v 0.750000 5.875000 -0.125000 -v 0.500000 6.125000 -1.625000 -v 0.750000 6.125000 -1.625000 -v 0.500000 5.875000 -1.625000 -v 0.750000 5.875000 -1.625000 -v -0.750000 6.125000 -0.125000 -v -0.500000 6.125000 -0.125000 -v -0.750000 5.875000 -0.125000 -v -0.500000 5.875000 -0.125000 -v -0.750000 6.125000 -1.625000 -v -0.500000 6.125000 -1.625000 -v -0.750000 5.875000 -1.625000 -v -0.500000 5.875000 -1.625000 -v 0.500000 7.375000 -1.812500 -v 0.500000 7.125000 -1.812500 -v -0.500000 7.375000 -1.687500 -v -0.500000 7.125000 -1.687500 -v -0.500000 6.375000 -1.812500 -v -0.500000 6.125000 -1.812500 -v 0.500000 6.375000 -1.687500 -v 0.500000 6.125000 -1.687500 -v 0.500000 5.875000 -1.812500 -v 0.500000 5.625000 -1.812500 -v -0.500000 5.875000 -1.687500 -v -0.500000 5.625000 -1.687500 -v -0.500000 4.875000 -1.812500 -v -0.500000 4.625000 -1.812500 -v 0.500000 4.875000 -1.687500 -v 0.500000 4.625000 -1.687500 -v 0.500000 4.375000 -1.812500 -v 0.500000 4.125000 -1.812500 -v -0.500000 4.375000 -1.687500 -v -0.500000 4.125000 -1.687500 -v -0.500000 3.375000 -1.812500 -v -0.500000 3.125000 -1.812500 -v 0.500000 3.375000 -1.687500 -v 0.500000 3.125000 -1.687500 -v 0.500000 7.000000 -0.125000 -v 0.750000 7.000000 -0.125000 -v -0.750000 7.000000 -0.125000 -v -0.500000 7.000000 -0.125000 -v 0.250000 7.000000 -0.375000 -v -0.250000 7.000000 -0.375000 -v 0.250000 7.000000 -0.625000 -v -0.250000 7.000000 -0.625000 -v 0.500000 7.375000 -1.812500 -v 0.500000 7.125000 -1.812500 -v -0.500000 7.375000 -1.687500 -v -0.500000 7.125000 -1.687500 -v -0.500000 6.375000 -1.812500 -v -0.500000 6.125000 -1.812500 -v 0.500000 6.375000 -1.687500 -v 0.500000 6.125000 -1.687500 -v 0.500000 5.875000 -1.812500 -v 0.500000 5.625000 -1.812500 -v -0.500000 5.875000 -1.687500 -v -0.500000 5.625000 -1.687500 -v -0.500000 4.875000 -1.812500 -v -0.500000 4.625000 -1.812500 -v 0.500000 4.875000 -1.687500 -v 0.500000 4.625000 -1.687500 -v 0.500000 4.375000 -1.812500 -v 0.500000 4.125000 -1.812500 -v -0.500000 4.375000 -1.687500 -v -0.500000 4.125000 -1.687500 -v -0.500000 3.375000 -1.812500 -v -0.500000 3.125000 -1.812500 -v 0.500000 3.375000 -1.687500 -v 0.500000 3.125000 -1.687500 -vt 0.918367 0.421053 -vt 0.938776 0.394737 -vt 0.938776 0.421053 -vt 0.918367 0.421053 -vt 0.938776 0.394737 -vt 0.938776 0.421053 -vt 0.938776 0.026316 -vt 0.918367 -0.000000 -vt 0.938776 -0.000000 -vt 0.938776 0.026316 -vt 0.918367 -0.000000 -vt 0.938776 -0.000000 -vt 0.857143 0.263158 -vt 0.836735 0.236842 -vt 0.857143 0.236842 -vt 0.857143 0.263158 -vt 0.836735 0.236842 -vt 0.857143 0.236842 -vt 0.836735 0.815789 -vt 0.857143 0.789474 -vt 0.857143 0.815789 -vt 0.836735 0.815789 -vt 0.857143 0.789474 -vt 0.857143 0.815789 -vt 0.918367 0.263158 -vt 0.897959 0.789474 -vt 0.897959 0.263158 -vt 0.877551 0.263158 -vt 0.918367 0.263158 -vt 0.897959 0.789474 -vt 0.897959 0.263158 -vt 0.877551 0.263158 -vt 0.836735 0.789474 -vt 0.836735 0.263158 -vt 0.877551 0.789474 -vt 0.836735 0.789474 -vt 0.836735 0.263158 -vt 0.877551 0.789474 -vt 1.000000 0.026316 -vt 0.979592 0.394737 -vt 0.979592 0.026316 -vt 0.959184 0.026316 -vt 1.000000 0.026316 -vt 0.979592 0.394737 -vt 0.979592 0.026316 -vt 0.959184 0.026316 -vt 0.918367 0.394737 -vt 0.918367 0.026316 -vt 0.959184 0.394737 -vt 0.918367 0.394737 -vt 0.918367 0.026316 -vt 0.959184 0.394737 -vt 0.653061 0.763158 -vt 0.632653 0.710526 -vt 0.673469 0.763158 -vt 0.551020 0.763158 -vt 0.591837 0.736842 -vt 0.571429 0.763158 -vt 0.591837 0.710526 -vt 0.632653 0.710526 -vt 0.591837 0.736842 -vt 0.591837 0.710526 -vt 0.551020 0.763158 -vt 0.571429 0.763158 -vt 0.653061 0.763158 -vt 0.673469 0.763158 -vt 0.632653 0.763158 -vt 0.591837 0.789474 -vt 0.591837 0.763158 -vt 0.673469 0.684211 -vt 0.673469 0.710526 -vt 0.571429 0.789474 -vt 0.632653 0.684211 -vt 0.632653 0.789474 -vt 0.551020 0.710526 -vt 0.591149 0.684899 -vt 0.551020 0.631579 -vt 0.591837 0.657895 -vt 0.632653 0.657895 -vt 0.653061 0.631579 -vt 0.918367 0.421053 -vt 0.938776 0.578947 -vt 0.918367 0.578947 -vt 0.979592 0.421053 -vt 1.000000 0.578947 -vt 0.979592 0.578947 -vt 0.959184 0.421053 -vt 0.959184 0.578947 -vt 0.918367 0.421053 -vt 0.938776 0.578947 -vt 0.918367 0.578947 -vt 0.979592 0.421053 -vt 1.000000 0.578947 -vt 0.979592 0.578947 -vt 0.959184 0.421053 -vt 0.959184 0.578947 -vt 0.918367 0.421053 -vt 0.938776 0.578947 -vt 0.918367 0.578947 -vt 0.979592 0.421053 -vt 1.000000 0.578947 -vt 0.979592 0.578947 -vt 0.959184 0.421053 -vt 0.959184 0.578947 -vt 0.918367 0.421053 -vt 0.938776 0.578947 -vt 0.918367 0.578947 -vt 0.979592 0.421053 -vt 1.000000 0.578947 -vt 0.979592 0.578947 -vt 0.959184 0.421053 -vt 0.959184 0.578947 -vt 0.918367 0.421053 -vt 0.938776 0.578947 -vt 0.918367 0.578947 -vt 0.979592 0.421053 -vt 1.000000 0.578947 -vt 0.979592 0.578947 -vt 0.959184 0.421053 -vt 0.959184 0.578947 -vt 0.918367 0.421053 -vt 0.938776 0.578947 -vt 0.918367 0.578947 -vt 0.979592 0.421053 -vt 1.000000 0.578947 -vt 0.979592 0.578947 -vt 0.959184 0.421053 -vt 0.959184 0.578947 -vt 0.918367 0.578947 -vt 1.000000 0.605263 -vt 0.918367 0.605263 -vt 1.000000 0.578947 -vt 0.918367 0.605263 -vt 0.918367 0.578947 -vt 0.918367 0.578947 -vt 1.000000 0.605263 -vt 0.918367 0.605263 -vt 1.000000 0.578947 -vt 0.918367 0.605263 -vt 0.918367 0.578947 -vt 0.918367 0.578947 -vt 1.000000 0.605263 -vt 0.918367 0.605263 -vt 1.000000 0.578947 -vt 0.918367 0.605263 -vt 0.918367 0.578947 -vt 0.632653 0.763158 -vt 0.591837 0.789474 -vt 0.591837 0.763158 -vt 0.673469 0.684211 -vt 0.673469 0.710526 -vt 0.571429 0.789474 -vt 0.632653 0.684211 -vt 0.632653 0.789474 -vt 0.551020 0.710526 -vt 0.591149 0.684899 -vt 0.551020 0.631579 -vt 0.591837 0.657895 -vt 0.632653 0.657895 -vt 0.653061 0.631579 -vt 1.000000 0.605263 -vt 0.918367 0.578947 -vt 0.918367 0.605263 -vt 1.000000 0.578947 -vt 0.918367 0.605263 -vt 1.000000 0.605263 -vt 1.000000 0.605263 -vt 0.918367 0.578947 -vt 0.918367 0.605263 -vt 1.000000 0.578947 -vt 0.918367 0.605263 -vt 1.000000 0.605263 -vt 1.000000 0.605263 -vt 0.918367 0.578947 -vt 0.918367 0.605263 -vt 1.000000 0.578947 -vt 0.918367 0.605263 -vt 1.000000 0.605263 -vt 0.918367 0.789474 -vt 0.918367 0.789474 -vt 1.000000 0.394737 -vt 1.000000 0.394737 -vt 0.632653 0.736842 -vt 0.632653 0.736842 -vt 0.653061 0.789474 -vt 0.551020 0.684211 -vt 0.571429 0.631579 -vt 0.673469 0.631579 -vt 0.938776 0.421053 -vt 1.000000 0.421053 -vt 0.938776 0.421053 -vt 1.000000 0.421053 -vt 0.938776 0.421053 -vt 1.000000 0.421053 -vt 0.938776 0.421053 -vt 1.000000 0.421053 -vt 0.938776 0.421053 -vt 1.000000 0.421053 -vt 0.938776 0.421053 -vt 1.000000 0.421053 -vt 1.000000 0.578947 -vt 1.000000 0.605263 -vt 1.000000 0.578947 -vt 1.000000 0.605263 -vt 1.000000 0.578947 -vt 1.000000 0.605263 -vt 0.653061 0.789474 -vt 0.551020 0.684211 -vt 0.571429 0.631579 -vt 0.673469 0.631579 -vt 1.000000 0.578947 -vt 0.918367 0.578947 -vt 1.000000 0.578947 -vt 0.918367 0.578947 -vt 1.000000 0.578947 -vt 0.918367 0.578947 -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.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 -s off -f 3708/5244/426 3706/5245/426 3707/5246/426 -f 3704/5247/426 3702/5248/426 3703/5249/426 -f 3698/5250/427 3700/5251/427 3699/5252/427 -f 3694/5253/427 3696/5254/427 3695/5255/427 -f 3678/5256/427 3680/5257/427 3679/5258/427 -f 3682/5259/427 3684/5260/427 3683/5261/427 -f 3688/5262/426 3686/5263/426 3687/5264/426 -f 3692/5265/426 3690/5266/426 3691/5267/426 -f 3685/5268/428 3692/5269/428 3684/5270/428 -f 3683/5271/429 3690/5266/429 3682/5259/429 -f 3681/5272/428 3688/5273/428 3680/5274/428 -f 3679/5275/429 3686/5263/429 3678/5256/429 -f 3682/5259/430 3693/5276/430 3685/5277/430 -f 3684/5270/431 3691/5278/431 3683/5271/431 -f 3678/5256/430 3689/5279/430 3681/5280/430 -f 3680/5274/431 3687/5281/431 3679/5275/431 -f 3701/5282/428 3708/5283/428 3700/5284/428 -f 3699/5285/429 3706/5245/429 3698/5250/429 -f 3697/5286/428 3704/5287/428 3696/5288/428 -f 3695/5289/429 3702/5248/429 3694/5253/429 -f 3698/5250/430 3709/5290/430 3701/5291/430 -f 3700/5284/431 3707/5292/431 3699/5285/431 -f 3694/5253/430 3705/5293/430 3697/5294/430 -f 3696/5288/431 3703/5295/431 3695/5289/431 -f 3714/5296/426 3710/5297/426 3715/5298/426 -f 3716/5299/426 3713/5300/426 3717/5301/426 -f 3710/5297/426 3713/5300/426 3711/5302/426 -f 3725/5303/426 3722/5304/426 3724/5305/426 -f 3719/5306/426 3722/5304/426 3718/5307/426 -f 3721/5308/426 3725/5303/426 3720/5309/426 -f 3723/5310/431 3730/5311/431 3722/5312/431 -f 3725/5303/432 3728/5313/432 3720/5314/432 -f 3722/5312/433 3726/5315/433 3718/5307/433 -f 3724/5305/430 3733/5316/430 3725/5303/430 -f 3721/5308/434 3731/5317/434 3723/5310/434 -f 3719/5318/435 3732/5319/435 3724/5305/435 -f 3727/5320/427 3730/5321/427 3732/5319/427 -f 3733/5316/427 3730/5321/427 3731/5322/427 -f 3729/5323/427 3733/5316/427 3731/5322/427 -f 3741/5324/428 3735/5325/428 3737/5326/428 -f 3740/5327/427 3737/5328/427 3736/5329/427 -f 3738/5330/429 3736/5329/429 3734/5331/429 -f 3735/5325/426 3738/5330/426 3734/5331/426 -f 3749/5332/428 3743/5333/428 3745/5334/428 -f 3748/5335/427 3745/5336/427 3744/5337/427 -f 3746/5338/429 3744/5337/429 3742/5339/429 -f 3743/5333/426 3746/5338/426 3742/5339/426 -f 3757/5340/428 3751/5341/428 3753/5342/428 -f 3756/5343/427 3753/5344/427 3752/5345/427 -f 3754/5346/429 3752/5345/429 3750/5347/429 -f 3751/5341/426 3754/5346/426 3750/5347/426 -f 3765/5348/428 3759/5349/428 3761/5350/428 -f 3764/5351/427 3761/5352/427 3760/5353/427 -f 3762/5354/429 3760/5353/429 3758/5355/429 -f 3759/5349/426 3762/5354/426 3758/5355/426 -f 3773/5356/428 3767/5357/428 3769/5358/428 -f 3772/5359/427 3769/5360/427 3768/5361/427 -f 3770/5362/429 3768/5361/429 3766/5363/429 -f 3767/5357/426 3770/5362/426 3766/5363/426 -f 3781/5364/428 3775/5365/428 3777/5366/428 -f 3780/5367/427 3777/5368/427 3776/5369/427 -f 3778/5370/429 3776/5369/429 3774/5371/429 -f 3775/5365/426 3778/5370/426 3774/5371/426 -f 3783/5372/430 3786/5373/430 3782/5374/430 -f 3785/5375/430 3788/5376/430 3789/5377/430 -f 3791/5378/430 3794/5379/430 3790/5380/430 -f 3793/5381/430 3796/5382/430 3797/5383/430 -f 3799/5384/430 3802/5385/430 3798/5386/430 -f 3801/5387/430 3804/5388/430 3805/5389/430 -f 3712/5390/431 3810/5391/431 3713/5392/431 -f 3710/5297/432 3808/5393/432 3715/5394/432 -f 3713/5392/433 3806/5395/433 3717/5301/433 -f 3711/5302/430 3813/5396/430 3710/5297/430 -f 3714/5296/434 3811/5397/434 3712/5390/434 -f 3716/5398/435 3812/5399/435 3711/5302/435 -f 3807/5400/427 3810/5401/427 3812/5399/427 -f 3813/5396/427 3810/5401/427 3811/5402/427 -f 3809/5403/427 3813/5396/427 3811/5402/427 -f 3818/5404/431 3815/5405/431 3814/5406/431 -f 3817/5407/431 3820/5408/431 3816/5409/431 -f 3826/5410/431 3823/5411/431 3822/5412/431 -f 3825/5413/431 3828/5414/431 3824/5415/431 -f 3834/5416/431 3831/5417/431 3830/5418/431 -f 3833/5419/431 3836/5420/431 3832/5421/431 -f 3708/5244/426 3709/5290/426 3706/5245/426 -f 3704/5247/426 3705/5293/426 3702/5248/426 -f 3698/5250/427 3701/5291/427 3700/5251/427 -f 3694/5253/427 3697/5294/427 3696/5254/427 -f 3678/5256/427 3681/5280/427 3680/5257/427 -f 3682/5259/427 3685/5277/427 3684/5260/427 -f 3688/5262/426 3689/5279/426 3686/5263/426 -f 3692/5265/426 3693/5276/426 3690/5266/426 -f 3685/5268/428 3693/5422/428 3692/5269/428 -f 3683/5271/429 3691/5278/429 3690/5266/429 -f 3681/5272/428 3689/5423/428 3688/5273/428 -f 3679/5275/429 3687/5281/429 3686/5263/429 -f 3682/5259/430 3690/5266/430 3693/5276/430 -f 3684/5270/431 3692/5269/431 3691/5278/431 -f 3678/5256/430 3686/5263/430 3689/5279/430 -f 3680/5274/431 3688/5273/431 3687/5281/431 -f 3701/5282/428 3709/5424/428 3708/5283/428 -f 3699/5285/429 3707/5292/429 3706/5245/429 -f 3697/5286/428 3705/5425/428 3704/5287/428 -f 3695/5289/429 3703/5295/429 3702/5248/429 -f 3698/5250/430 3706/5245/430 3709/5290/430 -f 3700/5284/431 3708/5283/431 3707/5292/431 -f 3694/5253/430 3702/5248/430 3705/5293/430 -f 3696/5288/431 3704/5287/431 3703/5295/431 -f 3714/5296/426 3712/5426/426 3710/5297/426 -f 3716/5299/426 3711/5302/426 3713/5300/426 -f 3710/5297/426 3712/5426/426 3713/5300/426 -f 3725/5303/426 3723/5427/426 3722/5304/426 -f 3719/5306/426 3724/5305/426 3722/5304/426 -f 3721/5308/426 3723/5427/426 3725/5303/426 -f 3723/5310/431 3731/5317/431 3730/5311/431 -f 3725/5303/432 3733/5316/432 3728/5313/432 -f 3722/5312/433 3730/5311/433 3726/5315/433 -f 3724/5305/430 3732/5319/430 3733/5316/430 -f 3721/5308/434 3729/5428/434 3731/5317/434 -f 3719/5318/435 3727/5429/435 3732/5319/435 -f 3727/5320/427 3726/5430/427 3730/5321/427 -f 3733/5316/427 3732/5319/427 3730/5321/427 -f 3729/5323/427 3728/5431/427 3733/5316/427 -f 3741/5324/428 3739/5432/428 3735/5325/428 -f 3740/5327/427 3741/5433/427 3737/5328/427 -f 3738/5330/429 3740/5327/429 3736/5329/429 -f 3735/5325/426 3739/5432/426 3738/5330/426 -f 3749/5332/428 3747/5434/428 3743/5333/428 -f 3748/5335/427 3749/5435/427 3745/5336/427 -f 3746/5338/429 3748/5335/429 3744/5337/429 -f 3743/5333/426 3747/5434/426 3746/5338/426 -f 3757/5340/428 3755/5436/428 3751/5341/428 -f 3756/5343/427 3757/5437/427 3753/5344/427 -f 3754/5346/429 3756/5343/429 3752/5345/429 -f 3751/5341/426 3755/5436/426 3754/5346/426 -f 3765/5348/428 3763/5438/428 3759/5349/428 -f 3764/5351/427 3765/5439/427 3761/5352/427 -f 3762/5354/429 3764/5351/429 3760/5353/429 -f 3759/5349/426 3763/5438/426 3762/5354/426 -f 3773/5356/428 3771/5440/428 3767/5357/428 -f 3772/5359/427 3773/5441/427 3769/5360/427 -f 3770/5362/429 3772/5359/429 3768/5361/429 -f 3767/5357/426 3771/5440/426 3770/5362/426 -f 3781/5364/428 3779/5442/428 3775/5365/428 -f 3780/5367/427 3781/5443/427 3777/5368/427 -f 3778/5370/429 3780/5367/429 3776/5369/429 -f 3775/5365/426 3779/5442/426 3778/5370/426 -f 3783/5372/430 3787/5444/430 3786/5373/430 -f 3785/5375/430 3784/5445/430 3788/5376/430 -f 3791/5378/430 3795/5446/430 3794/5379/430 -f 3793/5381/430 3792/5447/430 3796/5382/430 -f 3799/5384/430 3803/5448/430 3802/5385/430 -f 3801/5387/430 3800/5449/430 3804/5388/430 -f 3712/5390/431 3811/5397/431 3810/5391/431 -f 3710/5297/432 3813/5396/432 3808/5393/432 -f 3713/5392/433 3810/5391/433 3806/5395/433 -f 3711/5302/430 3812/5399/430 3813/5396/430 -f 3714/5296/434 3809/5450/434 3811/5397/434 -f 3716/5398/435 3807/5451/435 3812/5399/435 -f 3807/5400/427 3806/5452/427 3810/5401/427 -f 3813/5396/427 3812/5399/427 3810/5401/427 -f 3809/5403/427 3808/5453/427 3813/5396/427 -f 3818/5404/431 3819/5454/431 3815/5405/431 -f 3817/5407/431 3821/5455/431 3820/5408/431 -f 3826/5410/431 3827/5456/431 3823/5411/431 -f 3825/5413/431 3829/5457/431 3828/5414/431 -f 3834/5416/431 3835/5458/431 3831/5417/431 -f 3833/5419/431 3837/5459/431 3836/5420/431 -o Pad -v -4.500000 0.000000 4.500000 -v 4.500000 0.000000 4.500000 -v -4.500000 0.000000 -4.500000 -v 4.500000 0.000000 -4.500000 -v -4.500000 1.000000 4.500000 -v 4.500000 1.000000 4.500000 -v -4.500000 1.000000 -4.500000 -v 4.500000 1.000000 -4.500000 -v -4.500000 0.000000 0.500000 -v 4.500000 0.000000 0.500000 -v -4.500000 1.000000 0.500000 -v 4.500000 1.000000 0.500000 -v 4.500000 0.000000 -0.500000 -v -4.500000 0.000000 -0.500000 -v 4.500000 1.000000 -0.500000 -v -4.500000 1.000000 -0.500000 -v -4.500000 1.000000 0.500000 -v 4.500000 1.000000 0.500000 -v 4.500000 1.000000 -0.500000 -v -4.500000 1.000000 -0.500000 -v 0.500000 1.000000 0.500000 -v 0.500000 1.000000 -0.500000 -v -0.500000 1.000000 0.500000 -v -0.500000 1.000000 -0.500000 -v 4.500000 0.750000 0.500000 -v 0.500000 0.750000 0.500000 -v 4.500000 1.000000 0.250000 -v 0.500000 1.000000 0.250000 -v 4.500000 1.000000 -0.250000 -v 0.500000 1.000000 -0.250000 -v 4.500000 0.750000 -0.500000 -v 0.500000 0.750000 -0.500000 -v 4.500000 1.000000 0.500000 -v 0.500000 1.000000 0.500000 -v 4.500000 1.000000 -0.500000 -v 0.500000 1.000000 -0.500000 -v -4.500000 1.000000 -0.500000 -v -0.500000 1.000000 -0.500000 -v -4.500000 1.000000 0.500000 -v -0.500000 1.000000 0.500000 -v -4.500000 0.750000 -0.500000 -v -0.500000 0.750000 -0.500000 -v -4.500000 1.000000 -0.250000 -v -0.500000 1.000000 -0.250000 -v -4.500000 1.000000 0.250000 -v -0.500000 1.000000 0.250000 -v -4.500000 0.750000 0.500000 -v -0.500000 0.750000 0.500000 -v -0.500000 0.000000 0.500000 -v 0.500000 0.000000 0.500000 -v -0.500000 0.000000 -0.500000 -v 0.500000 0.000000 -0.500000 -v 0.000000 0.500000 0.500000 -v 0.000000 0.500000 -0.500000 -vt 0.000000 0.473684 -vt 0.400000 0.526316 -vt 0.000000 0.526316 -vt 0.900000 0.526316 -vt 0.000000 0.473684 -vt 0.900000 0.473684 -vt 0.400000 1.000000 -vt 0.000000 1.000000 -vt 0.900000 0.473684 -vt -0.000000 0.526316 -vt -0.000000 0.473684 -vt 0.900000 0.473684 -vt -0.000000 0.526316 -vt -0.000000 0.473684 -vt 0.900000 0.526316 -vt 0.500000 0.473684 -vt 0.900000 0.473684 -vt 0.000000 0.000000 -vt 0.400000 0.473684 -vt 0.900000 0.526316 -vt -0.000000 0.473684 -vt 0.900000 0.473684 -vt 0.900000 0.526316 -vt 0.500000 0.473684 -vt 0.900000 0.473684 -vt 0.000000 0.473684 -vt 0.400000 0.526316 -vt 0.000000 0.526316 -vt 0.900000 1.000000 -vt 0.500000 0.526316 -vt 0.500000 0.000000 -vt 0.900000 0.000000 -vt 0.500000 0.736842 -vt 0.400000 0.526316 -vt 0.500000 0.526316 -vt 0.400000 1.000000 -vt 0.500000 0.789474 -vt 0.500000 1.000000 -vt 0.925000 0.539474 -vt 0.900000 0.750000 -vt 0.900000 0.539474 -vt 0.975000 0.539474 -vt 0.925000 0.750000 -vt 1.000000 0.539474 -vt 0.975000 0.750000 -vt 1.000000 0.763158 -vt 1.000000 0.776316 -vt 0.975000 0.776316 -vt 0.900000 0.763158 -vt 0.925000 0.776316 -vt 0.900000 0.776316 -vt 1.000000 0.763158 -vt 0.975000 0.750000 -vt 1.000000 0.750000 -vt 0.900000 0.763158 -vt 0.900000 0.750000 -vt 0.925000 0.750000 -vt 0.900000 0.526316 -vt 0.925000 0.539474 -vt 0.900000 0.539474 -vt 1.000000 0.526316 -vt 1.000000 0.539474 -vt 0.975000 0.539474 -vt 0.900000 1.000000 -vt 0.900000 0.986842 -vt 0.925000 0.986842 -vt 1.000000 1.000000 -vt 0.975000 0.986842 -vt 1.000000 0.986842 -vt 1.000000 0.776316 -vt 0.975000 0.986842 -vt 0.975000 0.776316 -vt 0.925000 0.986842 -vt 0.925000 0.776316 -vt 0.900000 0.986842 -vt 0.900000 0.776316 -vt 0.900000 0.473684 -vt 1.000000 0.500000 -vt 0.900000 0.500000 -vt 1.000000 0.526316 -vt 0.900000 0.526316 -vt 1.000000 0.473684 -vt 0.900000 0.421053 -vt 1.000000 0.421053 -vt 0.000000 0.526316 -vt 0.900000 0.526316 -vt 0.900000 0.526316 -vt 0.500000 0.526316 -vt 0.400000 0.000000 -vt -0.000000 0.526316 -vt 0.400000 0.473684 -vt 0.500000 1.000000 -vt 0.400000 0.736842 -vt 0.400000 0.789474 -vt 1.000000 0.750000 -vt 1.000000 0.986842 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.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 -0.7071 -0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.7071 0.7071 0.0000 -vn -0.7071 0.7071 0.0000 -s off -f 3839/5460/436 3849/5461/436 3843/5462/436 -f 3848/5463/437 3847/5464/437 3846/5465/437 -f 3843/5462/438 3848/5466/438 3842/5467/438 -f 3840/5468/437 3845/5469/437 3841/5470/437 -f 3839/5471/439 3842/5472/439 3838/5473/439 -f 3842/5474/440 3846/5475/440 3838/5476/440 -f 3838/5477/441 3847/5478/441 3839/5460/441 -f 3852/5479/439 3851/5480/439 3850/5481/439 -f 3845/5482/436 3850/5483/436 3841/5484/436 -f 3840/5485/440 3853/5486/440 3844/5487/440 -f 3844/5488/438 3852/5489/438 3845/5482/438 -f 3841/5484/441 3851/5490/441 3840/5491/441 -f 3859/5492/438 3855/5493/438 3856/5494/438 -f 3854/5495/438 3861/5496/438 3857/5497/438 -f 3865/5498/442 3862/5499/442 3863/5500/442 -f 3867/5501/441 3864/5502/441 3865/5498/441 -f 3869/5503/443 3866/5504/443 3867/5501/443 -f 3884/5505/440 3876/5506/440 3882/5507/440 -f 3878/5508/440 3880/5509/440 3874/5510/440 -f 3862/5511/436 3864/5512/436 3870/5513/436 -f 3868/5514/436 3872/5515/436 3866/5516/436 -f 3869/5517/440 3867/5518/440 3873/5519/440 -f 3863/5520/440 3871/5521/440 3865/5522/440 -f 3879/5523/436 3875/5524/436 3881/5525/436 -f 3885/5526/436 3883/5527/436 3877/5528/436 -f 3878/5529/443 3881/5530/443 3880/5531/443 -f 3880/5531/441 3883/5532/441 3882/5533/441 -f 3882/5533/442 3885/5534/442 3884/5535/442 -f 3887/5536/444 3891/5537/444 3890/5538/444 -f 3890/5538/445 3888/5539/445 3886/5540/445 -f 3889/5541/441 3886/5542/441 3888/5543/441 -f 3839/5460/436 3847/5478/436 3849/5461/436 -f 3848/5463/437 3849/5544/437 3847/5464/437 -f 3843/5462/438 3849/5461/438 3848/5466/438 -f 3840/5468/437 3844/5545/437 3845/5469/437 -f 3839/5471/439 3843/5546/439 3842/5472/439 -f 3842/5474/440 3848/5547/440 3846/5475/440 -f 3838/5477/441 3846/5548/441 3847/5478/441 -f 3852/5479/439 3853/5549/439 3851/5480/439 -f 3845/5482/436 3852/5489/436 3850/5483/436 -f 3840/5485/440 3851/5550/440 3853/5486/440 -f 3844/5488/438 3853/5551/438 3852/5489/438 -f 3841/5484/441 3850/5483/441 3851/5490/441 -f 3859/5492/438 3858/5552/438 3855/5493/438 -f 3854/5495/438 3860/5553/438 3861/5496/438 -f 3865/5498/442 3864/5502/442 3862/5499/442 -f 3867/5501/441 3866/5504/441 3864/5502/441 -f 3869/5503/443 3868/5554/443 3866/5504/443 -f 3878/5529/443 3879/5555/443 3881/5530/443 -f 3880/5531/441 3881/5530/441 3883/5532/441 -f 3882/5533/442 3883/5532/442 3885/5534/442 -f 3887/5536/444 3889/5541/444 3891/5537/444 -f 3890/5538/445 3891/5537/445 3888/5539/445 -f 3889/5541/441 3887/5536/441 3886/5542/441 -o Micro_Missile -v 0.324760 3.500000 -0.187500 -v 0.156250 3.500000 -0.270633 -v 0.270633 3.500000 -0.156250 -v 0.187500 3.500000 -0.324759 -v 0.000000 3.500000 -0.312500 -v -0.187500 3.500000 -0.324760 -v 0.000000 3.500000 -0.375000 -v -0.324760 3.500000 -0.187500 -v -0.156250 3.500000 -0.270633 -v -0.375000 3.500000 0.000000 -v -0.270633 3.500000 -0.156250 -v -0.324760 3.500000 0.187500 -v -0.312500 3.500000 0.000000 -v -0.187500 3.500000 0.324760 -v -0.270633 3.500000 0.156250 -v 0.000000 3.500000 0.375000 -v -0.156250 3.500000 0.270633 -v 0.156250 3.500000 0.270633 -v 0.000000 3.500000 0.312500 -v 0.187500 3.500000 0.324760 -v 0.270633 3.500000 0.156250 -v 0.375000 3.500000 0.000000 -v 0.324759 3.500000 0.187500 -v 0.312500 3.500000 0.000000 -v 0.312500 3.750000 0.000000 -v 0.324759 3.750000 0.187500 -v 0.270633 3.750000 0.156250 -v 0.270633 3.750000 -0.156250 -v 0.375000 3.750000 0.000000 -v 0.156250 3.750000 -0.270633 -v 0.324760 3.750000 -0.187500 -v 0.000000 3.750000 -0.312500 -v 0.187500 3.750000 -0.324759 -v -0.156250 3.750000 -0.270633 -v 0.000000 3.750000 -0.375000 -v -0.324760 3.750000 -0.187500 -v -0.187500 3.750000 -0.324760 -v -0.270633 3.750000 -0.156250 -v -0.375000 3.750000 0.000000 -v -0.270633 3.750000 0.156250 -v -0.312500 3.750000 0.000000 -v -0.156250 3.750000 0.270633 -v -0.324760 3.750000 0.187500 -v 0.000000 3.750000 0.375000 -v -0.187500 3.750000 0.324760 -v 0.156250 3.750000 0.270633 -v 0.000000 3.750000 0.312500 -v 0.187500 3.750000 0.324760 -v 0.312500 4.750000 0.000000 -v 0.324759 4.750000 0.187500 -v 0.270633 4.750000 0.156250 -v 0.270633 4.750000 -0.156250 -v 0.375000 4.750000 0.000000 -v 0.156250 4.750000 -0.270633 -v 0.324760 4.750000 -0.187500 -v 0.000000 4.750000 -0.312500 -v 0.187500 4.750000 -0.324759 -v -0.156250 4.750000 -0.270633 -v 0.000000 4.750000 -0.375000 -v -0.324760 4.750000 -0.187500 -v -0.187500 4.750000 -0.324760 -v -0.270633 4.750000 -0.156250 -v -0.375000 4.750000 0.000000 -v -0.270633 4.750000 0.156250 -v -0.312500 4.750000 0.000000 -v -0.156250 4.750000 0.270633 -v -0.324760 4.750000 0.187500 -v 0.000000 4.750000 0.375000 -v -0.187500 4.750000 0.324760 -v 0.156250 4.750000 0.270633 -v 0.000000 4.750000 0.312500 -v 0.187500 4.750000 0.324760 -v 0.312500 5.750000 0.000000 -v 0.324759 5.750000 0.187500 -v 0.270633 5.750000 0.156250 -v 0.270633 5.750000 -0.156250 -v 0.375000 5.750000 0.000000 -v 0.156250 5.750000 -0.270633 -v 0.324760 5.750000 -0.187500 -v 0.000000 5.750000 -0.312500 -v 0.187500 5.750000 -0.324759 -v -0.156250 5.750000 -0.270633 -v 0.000000 5.750000 -0.375000 -v -0.324760 5.750000 -0.187500 -v -0.187500 5.750000 -0.324760 -v -0.270633 5.750000 -0.156250 -v -0.375000 5.750000 0.000000 -v -0.270633 5.750000 0.156250 -v -0.312500 5.750000 0.000000 -v -0.156250 5.750000 0.270633 -v -0.324760 5.750000 0.187500 -v 0.000000 5.750000 0.375000 -v -0.187500 5.750000 0.324760 -v 0.156250 5.750000 0.270633 -v 0.000000 5.750000 0.312500 -v 0.187500 5.750000 0.324760 -v 0.375000 4.500000 0.000000 -v 0.270633 4.500000 0.156250 -v 0.324759 4.500000 0.187500 -v 0.324760 4.500000 -0.187500 -v 0.312500 4.500000 0.000000 -v 0.156250 4.500000 -0.270633 -v 0.270633 4.500000 -0.156250 -v 0.187500 4.500000 -0.324759 -v 0.000000 4.500000 -0.312500 -v -0.187500 4.500000 -0.324760 -v 0.000000 4.500000 -0.375000 -v -0.324760 4.500000 -0.187500 -v -0.156250 4.500000 -0.270633 -v -0.375000 4.500000 0.000000 -v -0.270633 4.500000 -0.156250 -v -0.324760 4.500000 0.187500 -v -0.312500 4.500000 0.000000 -v -0.187500 4.500000 0.324760 -v -0.270633 4.500000 0.156250 -v 0.000000 4.500000 0.375000 -v -0.156250 4.500000 0.270633 -v 0.156250 4.500000 0.270633 -v 0.000000 4.500000 0.312500 -v 0.187500 4.500000 0.324760 -v 0.375000 5.500000 0.000000 -v 0.270633 5.500000 0.156250 -v 0.324759 5.500000 0.187500 -v 0.324760 5.500000 -0.187500 -v 0.312500 5.500000 0.000000 -v 0.156250 5.500000 -0.270633 -v 0.270633 5.500000 -0.156250 -v 0.187500 5.500000 -0.324759 -v 0.000000 5.500000 -0.312500 -v -0.187500 5.500000 -0.324760 -v 0.000000 5.500000 -0.375000 -v -0.324760 5.500000 -0.187500 -v -0.156250 5.500000 -0.270633 -v -0.375000 5.500000 0.000000 -v -0.270633 5.500000 -0.156250 -v -0.324760 5.500000 0.187500 -v -0.312500 5.500000 0.000000 -v -0.187500 5.500000 0.324760 -v -0.270633 5.500000 0.156250 -v 0.000000 5.500000 0.375000 -v -0.156250 5.500000 0.270633 -v 0.156250 5.500000 0.270633 -v 0.000000 5.500000 0.312500 -v 0.187500 5.500000 0.324760 -v -0.530330 2.031250 -0.530330 -v -0.154680 2.031250 -0.198874 -v -0.198874 2.031250 -0.154680 -v -0.154680 3.531250 -0.198874 -v -0.530330 3.031250 -0.530330 -v -0.198874 3.531250 -0.154680 -v 0.530330 3.031250 0.530330 -v 0.154680 2.031250 0.198874 -v 0.530330 2.031250 0.530330 -v 0.198874 2.031250 0.154680 -v 0.154680 3.531250 0.198874 -v 0.198874 3.531250 0.154680 -v -0.530330 2.031250 0.530330 -v -0.198874 2.031250 0.154680 -v -0.154680 2.031250 0.198874 -v -0.198874 3.531250 0.154680 -v -0.530330 3.031250 0.530330 -v -0.154680 3.531250 0.198874 -v 0.530330 3.031250 -0.530330 -v 0.198874 2.031250 -0.154680 -v 0.530330 2.031250 -0.530330 -v 0.154680 2.031250 -0.198874 -v 0.198874 3.531250 -0.154680 -v 0.154680 3.531250 -0.198874 -v 0.000000 2.000000 0.250000 -v 0.187500 2.000000 0.324760 -v 0.000000 2.000000 0.375000 -v 0.125000 2.000000 0.216506 -v 0.324759 2.000000 0.187500 -v 0.216506 2.000000 0.125000 -v 0.375000 2.000000 0.000000 -v 0.250000 2.000000 0.000000 -v 0.324760 2.000000 -0.187500 -v 0.125000 2.000000 -0.216506 -v 0.187500 2.000000 -0.324759 -v 0.000000 2.000000 -0.375000 -v 0.000000 2.000000 -0.250000 -v -0.187500 2.000000 -0.324760 -v -0.125000 2.000000 -0.216506 -v -0.324760 2.000000 -0.187500 -v -0.216506 2.000000 -0.125000 -v -0.375000 2.000000 0.000000 -v -0.250000 2.000000 0.000000 -v -0.324760 2.000000 0.187500 -v -0.216506 2.000000 0.125000 -v -0.187500 2.000000 0.324760 -v -0.125000 2.000000 0.216506 -v 0.216506 2.000000 -0.125000 -v 0.324760 6.500000 -0.187500 -v 0.000000 6.500000 -0.375000 -v 0.187500 6.500000 0.324760 -v -0.324760 6.500000 0.187500 -v 0.187500 6.500000 -0.324759 -v -0.187500 6.500000 -0.324760 -v 0.324759 6.500000 0.187500 -v -0.187500 6.500000 0.324760 -v -0.324760 6.500000 -0.187500 -v 0.375000 6.500000 0.000000 -v 0.000000 6.500000 0.375000 -v -0.375000 6.500000 0.000000 -v -0.164063 6.750000 0.284165 -v -0.284165 6.750000 -0.164062 -v 0.284165 6.750000 -0.164062 -v 0.328125 6.750000 0.000000 -v 0.000000 6.750000 0.328125 -v -0.284165 6.750000 0.164063 -v -0.328125 6.750000 0.000000 -v 0.000000 6.750000 -0.328125 -v 0.284165 6.750000 0.164063 -v 0.164062 6.750000 0.284165 -v 0.164063 6.750000 -0.284164 -v -0.164062 6.750000 -0.284165 -v 0.000000 7.000000 0.000000 -v 0.000000 2.500000 0.000000 -v 0.385000 4.937500 0.000000 -v 0.334759 5.312500 0.187500 -v 0.334759 4.937500 0.187500 -v 0.334760 4.937500 -0.187500 -v 0.385000 5.312500 0.000000 -v -0.385000 4.937500 0.000000 -v -0.334760 5.312500 -0.187500 -v -0.334760 4.937500 -0.187500 -v -0.334760 4.937500 0.187500 -v -0.385000 5.312500 0.000000 -v 0.334760 5.312500 -0.187500 -v -0.334760 5.312500 0.187500 -vt 0.576923 0.354167 -vt 0.634615 0.364583 -vt 0.576923 0.364583 -vt 0.634615 0.354167 -vt 0.692308 0.364583 -vt 0.057692 0.354167 -vt 0.000000 0.364583 -vt 0.000000 0.354167 -vt 0.115385 0.354167 -vt 0.057692 0.364583 -vt 0.173077 0.354167 -vt 0.115385 0.364583 -vt 0.230769 0.354167 -vt 0.173077 0.364583 -vt 0.288462 0.354167 -vt 0.230769 0.364583 -vt 0.346154 0.354167 -vt 0.288462 0.364583 -vt 0.403846 0.364583 -vt 0.346154 0.364583 -vt 0.403846 0.354167 -vt 0.461538 0.364583 -vt 0.519231 0.354167 -vt 0.461538 0.354167 -vt 0.519231 0.364583 -vt 0.519231 0.406250 -vt 0.461538 0.416667 -vt 0.461538 0.406250 -vt 0.576923 0.406250 -vt 0.519231 0.416667 -vt 0.634615 0.406250 -vt 0.576923 0.416667 -vt 0.692308 0.406250 -vt 0.634615 0.416667 -vt 0.057692 0.406250 -vt 0.000000 0.416667 -vt 0.000000 0.406250 -vt 0.115385 0.416667 -vt 0.057692 0.416667 -vt 0.115385 0.406250 -vt 0.173077 0.416667 -vt 0.230769 0.406250 -vt 0.173077 0.406250 -vt 0.288462 0.406250 -vt 0.230769 0.416667 -vt 0.346154 0.416667 -vt 0.288462 0.416667 -vt 0.403846 0.406250 -vt 0.346154 0.406250 -vt 0.403846 0.416667 -vt 0.519231 0.593750 -vt 0.461538 0.604167 -vt 0.461538 0.593750 -vt 0.576923 0.593750 -vt 0.519231 0.604167 -vt 0.634615 0.593750 -vt 0.576923 0.604167 -vt 0.692308 0.593750 -vt 0.634615 0.604167 -vt 0.057692 0.593750 -vt 0.000000 0.604167 -vt 0.000000 0.593750 -vt 0.115385 0.604167 -vt 0.057692 0.604167 -vt 0.115385 0.593750 -vt 0.173077 0.604167 -vt 0.230769 0.593750 -vt 0.173077 0.593750 -vt 0.288462 0.593750 -vt 0.230769 0.604167 -vt 0.346154 0.604167 -vt 0.288462 0.604167 -vt 0.403846 0.593750 -vt 0.346154 0.593750 -vt 0.403846 0.604167 -vt 0.519231 0.781250 -vt 0.461538 0.791667 -vt 0.461538 0.781250 -vt 0.576923 0.781250 -vt 0.519231 0.791667 -vt 0.634615 0.781250 -vt 0.576923 0.791667 -vt 0.692308 0.781250 -vt 0.634615 0.791667 -vt 0.057692 0.781250 -vt 0.000000 0.791667 -vt 0.000000 0.781250 -vt 0.115385 0.791667 -vt 0.057692 0.791667 -vt 0.115385 0.781250 -vt 0.173077 0.791667 -vt 0.230769 0.781250 -vt 0.173077 0.781250 -vt 0.288462 0.781250 -vt 0.230769 0.791667 -vt 0.346154 0.791667 -vt 0.288462 0.791667 -vt 0.403846 0.781250 -vt 0.346154 0.781250 -vt 0.403846 0.791667 -vt 0.519231 0.541667 -vt 0.461538 0.552083 -vt 0.461538 0.541667 -vt 0.576923 0.541667 -vt 0.519231 0.552083 -vt 0.634615 0.552083 -vt 0.576923 0.552083 -vt 0.634615 0.541667 -vt 0.692308 0.552083 -vt 0.057692 0.541667 -vt 0.000000 0.552083 -vt 0.000000 0.541667 -vt 0.115385 0.541667 -vt 0.057692 0.552083 -vt 0.173077 0.541667 -vt 0.115385 0.552083 -vt 0.230769 0.541667 -vt 0.173077 0.552083 -vt 0.288462 0.541667 -vt 0.230769 0.552083 -vt 0.346154 0.541667 -vt 0.288462 0.552083 -vt 0.403846 0.552083 -vt 0.346154 0.552083 -vt 0.403846 0.541667 -vt 0.519231 0.729167 -vt 0.461538 0.739583 -vt 0.461538 0.729167 -vt 0.576923 0.729167 -vt 0.519231 0.739583 -vt 0.634615 0.739583 -vt 0.576923 0.739583 -vt 0.634615 0.729167 -vt 0.692308 0.739583 -vt 0.057692 0.729167 -vt 0.000000 0.739583 -vt 0.000000 0.729167 -vt 0.115385 0.729167 -vt 0.057692 0.739583 -vt 0.173077 0.729167 -vt 0.115385 0.739583 -vt 0.230769 0.729167 -vt 0.173077 0.739583 -vt 0.288462 0.729167 -vt 0.230769 0.739583 -vt 0.346154 0.729167 -vt 0.288462 0.739583 -vt 0.403846 0.739583 -vt 0.346154 0.739583 -vt 0.403846 0.729167 -vt 0.846154 0.000000 -vt 0.692308 0.010417 -vt 0.692308 0.000000 -vt 0.692308 0.260417 -vt 0.846154 0.270833 -vt 0.692308 0.270833 -vt 0.692308 0.010417 -vt 0.846154 0.177083 -vt 0.846154 0.010417 -vt 0.846154 0.177083 -vt 0.692308 0.010417 -vt 0.846154 0.010417 -vt 0.692308 0.010417 -vt 0.692308 0.260417 -vt 0.846154 0.270833 -vt 0.692308 0.270833 -vt 0.846154 0.000000 -vt 0.692308 0.000000 -vt 0.846154 0.000000 -vt 0.692308 0.010417 -vt 0.692308 0.000000 -vt 0.692308 0.260417 -vt 0.846154 0.270833 -vt 0.692308 0.270833 -vt 0.692308 0.010417 -vt 0.846154 0.177083 -vt 0.846154 0.010417 -vt 0.846154 0.177083 -vt 0.692308 0.010417 -vt 0.846154 0.010417 -vt 0.692308 0.010417 -vt 0.692308 0.260417 -vt 0.846154 0.270833 -vt 0.692308 0.270833 -vt 0.846154 0.000000 -vt 0.692308 0.000000 -vt 0.346154 0.083333 -vt 0.403846 0.104167 -vt 0.346154 0.104167 -vt 0.403846 0.083333 -vt 0.461538 0.104167 -vt 0.461538 0.083333 -vt 0.519231 0.104167 -vt 0.519231 0.083333 -vt 0.576923 0.104167 -vt 0.615385 0.083333 -vt 0.634615 0.104167 -vt 0.634615 0.083333 -vt 0.692308 0.104167 -vt 0.000000 0.083333 -vt 0.057692 0.104167 -vt 0.000000 0.104167 -vt 0.057692 0.083333 -vt 0.115385 0.104167 -vt 0.115385 0.083333 -vt 0.173077 0.104167 -vt 0.173077 0.083333 -vt 0.230769 0.104167 -vt 0.230769 0.083333 -vt 0.288462 0.104167 -vt 0.288462 0.083333 -vt 0.692308 0.354167 -vt 0.692308 0.416667 -vt 0.692308 0.604167 -vt 0.692308 0.791667 -vt 0.692308 0.541667 -vt 0.692308 0.729167 -vt 0.692308 0.260417 -vt 0.692308 0.260417 -vt 0.692308 0.260417 -vt 0.692308 0.260417 -vt 0.384615 0.083333 -vt 0.442308 0.083333 -vt 0.500000 0.083333 -vt 0.557692 0.083333 -vt 0.576923 0.083333 -vt 0.673077 0.083333 -vt 0.038462 0.083333 -vt 0.096154 0.083333 -vt 0.153846 0.083333 -vt 0.211538 0.083333 -vt 0.269231 0.083333 -vt 0.326923 0.083333 -vt 0.576923 0.916667 -vt 0.000000 0.916667 -vt 0.403846 0.916667 -vt 0.230769 0.916667 -vt 0.634615 0.916667 -vt 0.057692 0.916667 -vt 0.461538 0.916667 -vt 0.288462 0.916667 -vt 0.115385 0.916667 -vt 0.519231 0.916667 -vt 0.346154 0.916667 -vt 0.173077 0.916667 -vt 0.288462 0.958333 -vt 0.115385 0.958333 -vt 0.557692 0.958333 -vt 0.519231 0.958333 -vt 0.346154 0.958333 -vt 0.211538 0.958333 -vt 0.173077 0.958333 -vt 0.576923 0.958333 -vt 0.000000 0.958333 -vt 0.442308 0.958333 -vt 0.403846 0.958333 -vt 0.230769 0.958333 -vt 0.692308 0.916667 -vt 0.634615 0.958333 -vt 0.057692 0.958333 -vt 0.461538 0.958333 -vt 0.038462 0.958333 -vt 0.019231 1.000000 -vt 0.096154 0.958333 -vt 0.076923 1.000000 -vt 0.153846 0.958333 -vt 0.134615 1.000000 -vt 0.192308 1.000000 -vt 0.269231 0.958333 -vt 0.250000 1.000000 -vt 0.326923 0.958333 -vt 0.307692 1.000000 -vt 0.384615 0.958333 -vt 0.365385 1.000000 -vt 0.423077 1.000000 -vt 0.500000 0.958333 -vt 0.480769 1.000000 -vt 0.538462 1.000000 -vt 0.615385 0.958333 -vt 0.596154 1.000000 -vt 0.673077 0.958333 -vt 0.653846 1.000000 -vt 0.019231 0.000000 -vt 0.653846 0.000000 -vt 0.596154 0.000000 -vt 0.538462 0.000000 -vt 0.480769 0.000000 -vt 0.423077 0.000000 -vt 0.365385 0.000000 -vt 0.307692 0.000000 -vt 0.250000 0.000000 -vt 0.192308 0.000000 -vt 0.134615 0.000000 -vt 0.076923 0.000000 -vt 0.846154 0.270833 -vt 0.692308 0.437500 -vt 0.692308 0.270833 -vt 1.000000 0.270833 -vt 0.846154 0.437500 -vt 0.846154 0.270833 -vt 0.692308 0.437500 -vt 0.692308 0.270833 -vt 1.000000 0.270833 -vt 0.846154 0.437500 -vt 1.000000 0.437500 -vt 1.000000 0.437500 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.5000 0.7071 -0.5000 -vn -0.7498 -0.0000 0.6616 -vn 0.6616 0.0000 -0.7498 -vn -0.6616 -0.0000 0.7498 -vn 0.7498 0.0000 -0.6616 -vn 0.5000 0.7071 0.5000 -vn -0.5000 0.7071 0.5000 -vn 0.6616 -0.0000 0.7498 -vn -0.7498 0.0000 -0.6616 -vn 0.7498 0.0000 0.6616 -vn -0.6616 0.0000 -0.7498 -vn 0.5000 0.7071 -0.5000 -vn 0.8660 0.0000 -0.5000 -vn 1.0000 0.0000 0.0000 -vn 0.5000 -0.0000 0.8660 -vn 0.0000 -0.0000 1.0000 -vn -0.8660 -0.0000 0.5000 -vn -1.0000 -0.0000 0.0000 -vn 0.5000 0.0000 -0.8660 -vn -0.5000 0.0000 -0.8660 -vn 0.0000 0.0000 -1.0000 -vn 0.8660 -0.0000 0.5000 -vn -0.5000 -0.0000 0.8660 -vn -0.8660 0.0000 -0.5000 -vn 0.8624 0.0912 -0.4979 -vn 0.0000 0.0912 -0.9958 -vn 0.4979 0.0912 0.8624 -vn -0.8624 0.0912 0.4979 -vn 0.4979 0.0912 -0.8624 -vn -0.4979 0.0912 -0.8624 -vn 0.8624 0.0912 0.4979 -vn -0.4979 0.0912 0.8624 -vn -0.8624 0.0912 -0.4979 -vn 0.9958 0.0912 0.0000 -vn 0.0000 0.0912 0.9958 -vn -0.9958 0.0912 -0.0000 -vn -0.4330 0.5000 0.7500 -vn -0.7500 0.5000 -0.4330 -vn 0.7500 0.5000 -0.4330 -vn 0.8660 0.5000 0.0000 -vn 0.0000 0.5000 0.8660 -vn -0.7500 0.5000 0.4330 -vn -0.8660 0.5000 -0.0000 -vn 0.0000 0.5000 -0.8660 -vn 0.7500 0.5000 0.4330 -vn 0.4330 0.5000 0.7500 -vn 0.4330 0.5000 -0.7500 -vn -0.4330 0.5000 -0.7500 -vn 0.4472 -0.4472 0.7746 -vn 0.0000 -0.4472 0.8944 -vn -0.4472 -0.4472 0.7746 -vn -0.7746 -0.4472 0.4472 -vn -0.8944 -0.4472 0.0000 -vn -0.7746 -0.4472 -0.4472 -vn -0.4472 -0.4472 -0.7746 -vn 0.0000 -0.4472 -0.8944 -vn 0.4472 -0.4472 -0.7746 -vn 0.7746 -0.4472 -0.4472 -vn 0.8944 -0.4472 0.0000 -vn 0.7746 -0.4472 0.4472 -vn 0.9659 -0.0000 0.2588 -vn 0.9659 0.0000 -0.2588 -vn -0.9659 0.0000 -0.2588 -vn -0.9659 0.0000 0.2588 -s off -f 3892/5556/446 3893/5557/446 3894/5558/446 -f 3895/5559/446 3896/5560/446 3893/5557/446 -f 3897/5561/446 3896/5562/446 3898/5563/446 -f 3899/5564/446 3900/5565/446 3897/5561/446 -f 3901/5566/446 3902/5567/446 3899/5564/446 -f 3903/5568/446 3904/5569/446 3901/5566/446 -f 3905/5570/446 3906/5571/446 3903/5568/446 -f 3907/5572/446 3908/5573/446 3905/5570/446 -f 3907/5572/446 3909/5574/446 3910/5575/446 -f 3911/5576/446 3912/5577/446 3909/5574/446 -f 3913/5578/446 3912/5577/446 3914/5579/446 -f 3892/5556/446 3915/5580/446 3913/5578/446 -f 3916/5581/447 3917/5582/447 3918/5583/447 -f 3919/5584/447 3920/5585/447 3916/5581/447 -f 3921/5586/447 3922/5587/447 3919/5584/447 -f 3923/5588/447 3924/5589/447 3921/5586/447 -f 3925/5590/447 3926/5591/447 3923/5592/447 -f 3925/5590/447 3927/5593/447 3928/5594/447 -f 3929/5595/447 3930/5596/447 3927/5593/447 -f 3931/5597/447 3930/5596/447 3932/5598/447 -f 3933/5599/447 3934/5600/447 3931/5597/447 -f 3933/5599/447 3935/5601/447 3936/5602/447 -f 3937/5603/447 3935/5601/447 3938/5604/447 -f 3918/5583/447 3939/5605/447 3937/5603/447 -f 3940/5606/447 3941/5607/447 3942/5608/447 -f 3943/5609/447 3944/5610/447 3940/5606/447 -f 3945/5611/447 3946/5612/447 3943/5609/447 -f 3947/5613/447 3948/5614/447 3945/5611/447 -f 3949/5615/447 3950/5616/447 3947/5617/447 -f 3949/5615/447 3951/5618/447 3952/5619/447 -f 3953/5620/447 3954/5621/447 3951/5618/447 -f 3955/5622/447 3954/5621/447 3956/5623/447 -f 3957/5624/447 3958/5625/447 3955/5622/447 -f 3957/5624/447 3959/5626/447 3960/5627/447 -f 3961/5628/447 3959/5626/447 3962/5629/447 -f 3942/5608/447 3963/5630/447 3961/5628/447 -f 3964/5631/447 3965/5632/447 3966/5633/447 -f 3967/5634/447 3968/5635/447 3964/5631/447 -f 3969/5636/447 3970/5637/447 3967/5634/447 -f 3971/5638/447 3972/5639/447 3969/5636/447 -f 3973/5640/447 3974/5641/447 3971/5642/447 -f 3973/5640/447 3975/5643/447 3976/5644/447 -f 3977/5645/447 3978/5646/447 3975/5643/447 -f 3979/5647/447 3978/5646/447 3980/5648/447 -f 3981/5649/447 3982/5650/447 3979/5647/447 -f 3981/5649/447 3983/5651/447 3984/5652/447 -f 3985/5653/447 3983/5651/447 3986/5654/447 -f 3966/5633/447 3987/5655/447 3985/5653/447 -f 3988/5656/446 3989/5657/446 3990/5658/446 -f 3991/5659/446 3992/5660/446 3988/5656/446 -f 3991/5659/446 3993/5661/446 3994/5662/446 -f 3995/5663/446 3996/5664/446 3993/5661/446 -f 3997/5665/446 3996/5666/446 3998/5667/446 -f 3999/5668/446 4000/5669/446 3997/5665/446 -f 4001/5670/446 4002/5671/446 3999/5668/446 -f 4003/5672/446 4004/5673/446 4001/5670/446 -f 4005/5674/446 4006/5675/446 4003/5672/446 -f 4007/5676/446 4008/5677/446 4005/5674/446 -f 4007/5676/446 4009/5678/446 4010/5679/446 -f 4011/5680/446 3989/5657/446 4009/5678/446 -f 4012/5681/446 4013/5682/446 4014/5683/446 -f 4015/5684/446 4016/5685/446 4012/5681/446 -f 4015/5684/446 4017/5686/446 4018/5687/446 -f 4019/5688/446 4020/5689/446 4017/5686/446 -f 4021/5690/446 4020/5691/446 4022/5692/446 -f 4023/5693/446 4024/5694/446 4021/5690/446 -f 4025/5695/446 4026/5696/446 4023/5693/446 -f 4027/5697/446 4028/5698/446 4025/5695/446 -f 4029/5699/446 4030/5700/446 4027/5697/446 -f 4031/5701/446 4032/5702/446 4029/5699/446 -f 4031/5701/446 4033/5703/446 4034/5704/446 -f 4035/5705/446 4013/5682/446 4033/5703/446 -f 4036/5706/447 4037/5707/447 4038/5708/447 -f 4039/5709/448 4040/5710/448 4041/5711/448 -f 4038/5712/449 4040/5713/449 4036/5714/449 -f 4040/5713/450 4037/5707/450 4036/5714/450 -f 4042/5715/451 4043/5716/451 4044/5717/451 -f 4045/5718/452 4042/5715/452 4044/5717/452 -f 4046/5719/453 4042/5720/453 4047/5721/453 -f 4044/5722/447 4043/5716/447 4045/5723/447 -f 4048/5724/447 4049/5725/447 4050/5726/447 -f 4051/5727/454 4052/5728/454 4053/5729/454 -f 4050/5730/455 4052/5731/455 4048/5732/455 -f 4052/5731/456 4049/5725/456 4048/5732/456 -f 4054/5733/457 4055/5734/457 4056/5735/457 -f 4057/5736/458 4054/5733/458 4056/5735/458 -f 4058/5737/459 4054/5738/459 4059/5739/459 -f 4056/5740/447 4055/5734/447 4057/5741/447 -f 4060/5742/447 4061/5743/447 4062/5744/447 -f 4063/5745/447 4064/5746/447 4061/5743/447 -f 4065/5747/447 4066/5748/447 4064/5746/447 -f 4067/5749/447 4068/5750/447 4066/5748/447 -f 4068/5750/447 4069/5751/447 4070/5752/447 -f 4069/5753/447 4071/5754/447 4070/5752/447 -f 4072/5755/447 4073/5756/447 4071/5757/447 -f 4074/5758/447 4075/5759/447 4073/5756/447 -f 4076/5760/447 4077/5761/447 4075/5759/447 -f 4078/5762/447 4079/5763/447 4077/5761/447 -f 4080/5764/447 4081/5765/447 4079/5763/447 -f 4082/5766/447 4062/5744/447 4081/5765/447 -f 3892/5556/446 3895/5559/446 3893/5557/446 -f 3895/5559/446 3898/5767/446 3896/5560/446 -f 3897/5561/446 3900/5565/446 3896/5562/446 -f 3899/5564/446 3902/5567/446 3900/5565/446 -f 3901/5566/446 3904/5569/446 3902/5567/446 -f 3903/5568/446 3906/5571/446 3904/5569/446 -f 3905/5570/446 3908/5573/446 3906/5571/446 -f 3907/5572/446 3910/5575/446 3908/5573/446 -f 3907/5572/446 3911/5576/446 3909/5574/446 -f 3911/5576/446 3914/5579/446 3912/5577/446 -f 3913/5578/446 3915/5580/446 3912/5577/446 -f 3892/5556/446 3894/5558/446 3915/5580/446 -f 3916/5581/447 3920/5585/447 3917/5582/447 -f 3919/5584/447 3922/5587/447 3920/5585/447 -f 3921/5586/447 3924/5589/447 3922/5587/447 -f 3923/5588/447 3926/5768/447 3924/5589/447 -f 3925/5590/447 3928/5594/447 3926/5591/447 -f 3925/5590/447 3929/5595/447 3927/5593/447 -f 3929/5595/447 3932/5598/447 3930/5596/447 -f 3931/5597/447 3934/5600/447 3930/5596/447 -f 3933/5599/447 3936/5602/447 3934/5600/447 -f 3933/5599/447 3938/5604/447 3935/5601/447 -f 3937/5603/447 3939/5605/447 3935/5601/447 -f 3918/5583/447 3917/5582/447 3939/5605/447 -f 3940/5606/447 3944/5610/447 3941/5607/447 -f 3943/5609/447 3946/5612/447 3944/5610/447 -f 3945/5611/447 3948/5614/447 3946/5612/447 -f 3947/5613/447 3950/5769/447 3948/5614/447 -f 3949/5615/447 3952/5619/447 3950/5616/447 -f 3949/5615/447 3953/5620/447 3951/5618/447 -f 3953/5620/447 3956/5623/447 3954/5621/447 -f 3955/5622/447 3958/5625/447 3954/5621/447 -f 3957/5624/447 3960/5627/447 3958/5625/447 -f 3957/5624/447 3962/5629/447 3959/5626/447 -f 3961/5628/447 3963/5630/447 3959/5626/447 -f 3942/5608/447 3941/5607/447 3963/5630/447 -f 3964/5631/447 3968/5635/447 3965/5632/447 -f 3967/5634/447 3970/5637/447 3968/5635/447 -f 3969/5636/447 3972/5639/447 3970/5637/447 -f 3971/5638/447 3974/5770/447 3972/5639/447 -f 3973/5640/447 3976/5644/447 3974/5641/447 -f 3973/5640/447 3977/5645/447 3975/5643/447 -f 3977/5645/447 3980/5648/447 3978/5646/447 -f 3979/5647/447 3982/5650/447 3978/5646/447 -f 3981/5649/447 3984/5652/447 3982/5650/447 -f 3981/5649/447 3986/5654/447 3983/5651/447 -f 3985/5653/447 3987/5655/447 3983/5651/447 -f 3966/5633/447 3965/5632/447 3987/5655/447 -f 3988/5656/446 3992/5660/446 3989/5657/446 -f 3991/5659/446 3994/5662/446 3992/5660/446 -f 3991/5659/446 3995/5663/446 3993/5661/446 -f 3995/5663/446 3998/5771/446 3996/5664/446 -f 3997/5665/446 4000/5669/446 3996/5666/446 -f 3999/5668/446 4002/5671/446 4000/5669/446 -f 4001/5670/446 4004/5673/446 4002/5671/446 -f 4003/5672/446 4006/5675/446 4004/5673/446 -f 4005/5674/446 4008/5677/446 4006/5675/446 -f 4007/5676/446 4010/5679/446 4008/5677/446 -f 4007/5676/446 4011/5680/446 4009/5678/446 -f 4011/5680/446 3990/5658/446 3989/5657/446 -f 4012/5681/446 4016/5685/446 4013/5682/446 -f 4015/5684/446 4018/5687/446 4016/5685/446 -f 4015/5684/446 4019/5688/446 4017/5686/446 -f 4019/5688/446 4022/5772/446 4020/5689/446 -f 4021/5690/446 4024/5694/446 4020/5691/446 -f 4023/5693/446 4026/5696/446 4024/5694/446 -f 4025/5695/446 4028/5698/446 4026/5696/446 -f 4027/5697/446 4030/5700/446 4028/5698/446 -f 4029/5699/446 4032/5702/446 4030/5700/446 -f 4031/5701/446 4034/5704/446 4032/5702/446 -f 4031/5701/446 4035/5705/446 4033/5703/446 -f 4035/5705/446 4014/5683/446 4013/5682/446 -f 4038/5712/449 4041/5773/449 4040/5713/449 -f 4040/5713/450 4039/5709/450 4037/5707/450 -f 4042/5715/451 4046/5719/451 4043/5716/451 -f 4045/5718/452 4047/5774/452 4042/5715/452 -f 4050/5730/455 4053/5775/455 4052/5731/455 -f 4052/5731/456 4051/5727/456 4049/5725/456 -f 4054/5733/457 4058/5737/457 4055/5734/457 -f 4057/5736/458 4059/5776/458 4054/5733/458 -f 4060/5742/447 4063/5777/447 4061/5743/447 -f 4063/5745/447 4065/5778/447 4064/5746/447 -f 4065/5747/447 4067/5779/447 4066/5748/447 -f 4067/5749/447 4083/5780/447 4068/5750/447 -f 4068/5750/447 4083/5781/447 4069/5751/447 -f 4069/5753/447 4072/5782/447 4071/5754/447 -f 4072/5755/447 4074/5783/447 4073/5756/447 -f 4074/5758/447 4076/5784/447 4075/5759/447 -f 4076/5760/447 4078/5785/447 4077/5761/447 -f 4078/5762/447 4080/5786/447 4079/5763/447 -f 4080/5764/447 4082/5787/447 4081/5765/447 -f 4082/5766/447 4060/5788/447 4062/5744/447 -s 1 -f 4068/5750/460 3913/5578/461 4066/5748/461 -f 4061/5743/462 3907/5572/463 4062/5744/463 -f 4079/5763/464 3901/5566/465 4077/5761/465 -f 4070/5752/466 3892/5556/460 4068/5750/460 -f 4073/5756/467 3898/5563/468 4071/5757/468 -f 4064/5746/469 3911/5576/462 4061/5743/462 -f 4081/5765/470 3903/5568/464 4079/5763/464 -f 4071/5754/468 3895/5559/466 4070/5752/466 -f 4075/5759/471 3897/5561/467 4073/5756/467 -f 4066/5748/461 3914/5579/469 4064/5746/469 -f 4062/5744/463 3905/5570/470 4081/5765/470 -f 4077/5761/465 3899/5564/471 4075/5759/471 -f 3912/5577/469 3937/5603/462 3909/5574/462 -f 3908/5573/470 3931/5597/464 3906/5571/464 -f 3896/5560/468 3921/5586/466 3893/5557/466 -f 3902/5567/471 3925/5590/467 3900/5565/467 -f 3915/5580/461 3918/5583/469 3912/5577/469 -f 3910/5575/463 3933/5599/470 3908/5573/470 -f 3904/5569/465 3929/5595/471 3902/5567/471 -f 3894/5558/460 3916/5581/461 3915/5580/461 -f 3909/5574/462 3938/5604/463 3910/5575/463 -f 3906/5571/464 3932/5598/465 3904/5569/465 -f 3893/5557/466 3919/5584/460 3894/5558/460 -f 3900/5565/467 3923/5592/468 3896/5562/468 -f 3924/5589/466 3991/5659/460 3922/5587/460 -f 3928/5594/467 3998/5667/468 3926/5591/468 -f 3917/5582/469 4011/5680/462 3939/5605/462 -f 3936/5602/470 4003/5672/464 3934/5600/464 -f 3926/5768/468 3995/5663/466 3924/5589/466 -f 3927/5593/471 3997/5665/467 3928/5594/467 -f 3920/5585/461 3990/5658/469 3917/5582/469 -f 3935/5601/463 4005/5674/470 3936/5602/470 -f 3930/5596/465 3999/5668/471 3927/5593/471 -f 3922/5587/460 3988/5656/461 3920/5585/461 -f 3939/5605/462 4007/5676/463 3935/5601/463 -f 3934/5600/464 4001/5670/465 3930/5596/465 -f 3989/5657/469 3961/5628/462 4009/5678/462 -f 4008/5677/470 3955/5622/464 4006/5675/464 -f 3996/5664/468 3945/5611/466 3993/5661/466 -f 4002/5671/471 3949/5615/467 4000/5669/467 -f 3992/5660/461 3942/5608/469 3989/5657/469 -f 4010/5679/463 3957/5624/470 4008/5677/470 -f 4004/5673/465 3953/5620/471 4002/5671/471 -f 3994/5662/460 3940/5606/461 3992/5660/461 -f 4009/5678/462 3962/5629/463 4010/5679/463 -f 4006/5675/464 3956/5623/465 4004/5673/465 -f 3993/5661/466 3943/5609/460 3994/5662/460 -f 4000/5669/467 3947/5617/468 3996/5666/468 -f 3948/5614/466 4015/5684/460 3946/5612/460 -f 3952/5619/467 4022/5692/468 3950/5616/468 -f 3941/5607/469 4035/5705/462 3963/5630/462 -f 3960/5627/470 4027/5697/464 3958/5625/464 -f 3950/5769/468 4019/5688/466 3948/5614/466 -f 3951/5618/471 4021/5690/467 3952/5619/467 -f 3944/5610/461 4014/5683/469 3941/5607/469 -f 3959/5626/463 4029/5699/470 3960/5627/470 -f 3954/5621/465 4023/5693/471 3951/5618/471 -f 3946/5612/460 4012/5681/461 3944/5610/461 -f 3963/5630/462 4031/5701/463 3959/5626/463 -f 3958/5625/464 4025/5695/465 3954/5621/465 -f 4013/5682/469 3985/5653/462 4033/5703/462 -f 4032/5702/470 3979/5647/464 4030/5700/464 -f 4020/5689/468 3969/5636/466 4017/5686/466 -f 4026/5696/471 3973/5640/467 4024/5694/467 -f 4016/5685/461 3966/5633/469 4013/5682/469 -f 4034/5704/463 3981/5649/470 4032/5702/470 -f 4028/5698/465 3977/5645/471 4026/5696/471 -f 4018/5687/460 3964/5631/461 4016/5685/461 -f 4033/5703/462 3986/5654/463 4034/5704/463 -f 4030/5700/464 3980/5648/465 4028/5698/465 -f 4017/5686/466 3967/5634/460 4018/5687/460 -f 4024/5694/467 3971/5642/468 4020/5691/468 -f 3972/5639/466 4084/5789/472 3970/5637/460 -f 3976/5644/467 4085/5790/473 3974/5641/468 -f 3965/5632/469 4086/5791/474 3987/5655/462 -f 3984/5652/470 4087/5792/475 3982/5650/464 -f 3974/5770/468 4088/5793/476 3972/5639/466 -f 3975/5643/471 4089/5794/477 3976/5644/467 -f 3968/5635/461 4090/5795/478 3965/5632/469 -f 3983/5651/463 4091/5796/479 3984/5652/470 -f 3978/5646/465 4092/5797/480 3975/5643/471 -f 3970/5637/460 4093/5798/481 3968/5635/461 -f 3987/5655/462 4094/5799/482 3983/5651/463 -f 3982/5650/464 4095/5800/483 3978/5646/465 -f 4094/5799/482 4096/5801/484 4091/5796/479 -f 4095/5800/483 4097/5802/485 4092/5797/480 -f 4093/5798/481 4098/5803/486 4099/5804/487 -f 4086/5791/474 4100/5805/488 4094/5799/482 -f 4095/5800/483 4101/5806/489 4102/5807/490 -f 4088/5793/476 4098/5808/486 4084/5789/472 -f 4089/5794/477 4103/5809/491 4085/5790/473 -f 4086/5791/474 4104/5810/492 4105/5811/493 -f 4091/5796/479 4101/5812/489 4087/5792/475 -f 4085/5813/473 4106/5814/494 4088/5793/476 -f 4092/5797/480 4107/5815/495 4089/5794/477 -f 4093/5798/481 4104/5816/492 4090/5795/478 -f 4103/5809/491 4107/5817/495 4108/5818/446 -f 4107/5815/495 4097/5819/485 4108/5820/446 -f 4097/5802/485 4102/5821/490 4108/5822/446 -f 4102/5807/490 4101/5806/489 4108/5823/446 -f 4101/5812/489 4096/5824/484 4108/5825/446 -f 4096/5801/484 4100/5826/488 4108/5827/446 -f 4100/5805/488 4105/5828/493 4108/5829/446 -f 4105/5811/493 4104/5810/492 4108/5830/446 -f 4104/5816/492 4099/5831/487 4108/5832/446 -f 4099/5804/487 4098/5803/486 4108/5833/446 -f 4098/5808/486 4106/5834/494 4108/5835/446 -f 4106/5814/494 4103/5836/491 4108/5837/446 -f 4074/5783/496 4072/5755/497 4109/5838/447 -f 4072/5782/497 4069/5753/498 4109/5839/447 -f 4069/5751/498 4083/5781/499 4109/5840/447 -f 4083/5780/499 4067/5749/500 4109/5841/447 -f 4067/5779/500 4065/5747/501 4109/5842/447 -f 4065/5778/501 4063/5745/502 4109/5843/447 -f 4063/5777/502 4060/5742/503 4109/5844/447 -f 4060/5788/503 4082/5766/504 4109/5845/447 -f 4082/5787/504 4080/5764/505 4109/5846/447 -f 4080/5786/505 4078/5762/506 4109/5847/447 -f 4078/5785/506 4076/5760/507 4109/5848/447 -f 4076/5784/507 4074/5758/496 4109/5849/447 -f 4110/5850/461 4111/5851/508 4112/5852/508 -f 4113/5853/509 4114/5854/461 4110/5850/461 -f 4115/5855/465 4116/5856/510 4117/5857/510 -f 4118/5858/511 4119/5859/465 4115/5855/465 -f 4068/5750/460 3892/5556/460 3913/5578/461 -f 4061/5743/462 3911/5576/462 3907/5572/463 -f 4079/5763/464 3903/5568/464 3901/5566/465 -f 4070/5752/466 3895/5559/466 3892/5556/460 -f 4073/5756/467 3897/5561/467 3898/5563/468 -f 4064/5746/469 3914/5579/469 3911/5576/462 -f 4081/5765/470 3905/5570/470 3903/5568/464 -f 4071/5754/468 3898/5767/468 3895/5559/466 -f 4075/5759/471 3899/5564/471 3897/5561/467 -f 4066/5748/461 3913/5578/461 3914/5579/469 -f 4062/5744/463 3907/5572/463 3905/5570/470 -f 4077/5761/465 3901/5566/465 3899/5564/471 -f 3912/5577/469 3918/5583/469 3937/5603/462 -f 3908/5573/470 3933/5599/470 3931/5597/464 -f 3896/5560/468 3923/5588/468 3921/5586/466 -f 3902/5567/471 3929/5595/471 3925/5590/467 -f 3915/5580/461 3916/5581/461 3918/5583/469 -f 3910/5575/463 3938/5604/463 3933/5599/470 -f 3904/5569/465 3932/5598/465 3929/5595/471 -f 3894/5558/460 3919/5584/460 3916/5581/461 -f 3909/5574/462 3937/5603/462 3938/5604/463 -f 3906/5571/464 3931/5597/464 3932/5598/465 -f 3893/5557/466 3921/5586/466 3919/5584/460 -f 3900/5565/467 3925/5590/467 3923/5592/468 -f 3924/5589/466 3995/5663/466 3991/5659/460 -f 3928/5594/467 3997/5665/467 3998/5667/468 -f 3917/5582/469 3990/5658/469 4011/5680/462 -f 3936/5602/470 4005/5674/470 4003/5672/464 -f 3926/5768/468 3998/5771/468 3995/5663/466 -f 3927/5593/471 3999/5668/471 3997/5665/467 -f 3920/5585/461 3988/5656/461 3990/5658/469 -f 3935/5601/463 4007/5676/463 4005/5674/470 -f 3930/5596/465 4001/5670/465 3999/5668/471 -f 3922/5587/460 3991/5659/460 3988/5656/461 -f 3939/5605/462 4011/5680/462 4007/5676/463 -f 3934/5600/464 4003/5672/464 4001/5670/465 -f 3989/5657/469 3942/5608/469 3961/5628/462 -f 4008/5677/470 3957/5624/470 3955/5622/464 -f 3996/5664/468 3947/5613/468 3945/5611/466 -f 4002/5671/471 3953/5620/471 3949/5615/467 -f 3992/5660/461 3940/5606/461 3942/5608/469 -f 4010/5679/463 3962/5629/463 3957/5624/470 -f 4004/5673/465 3956/5623/465 3953/5620/471 -f 3994/5662/460 3943/5609/460 3940/5606/461 -f 4009/5678/462 3961/5628/462 3962/5629/463 -f 4006/5675/464 3955/5622/464 3956/5623/465 -f 3993/5661/466 3945/5611/466 3943/5609/460 -f 4000/5669/467 3949/5615/467 3947/5617/468 -f 3948/5614/466 4019/5688/466 4015/5684/460 -f 3952/5619/467 4021/5690/467 4022/5692/468 -f 3941/5607/469 4014/5683/469 4035/5705/462 -f 3960/5627/470 4029/5699/470 4027/5697/464 -f 3950/5769/468 4022/5772/468 4019/5688/466 -f 3951/5618/471 4023/5693/471 4021/5690/467 -f 3944/5610/461 4012/5681/461 4014/5683/469 -f 3959/5626/463 4031/5701/463 4029/5699/470 -f 3954/5621/465 4025/5695/465 4023/5693/471 -f 3946/5612/460 4015/5684/460 4012/5681/461 -f 3963/5630/462 4035/5705/462 4031/5701/463 -f 3958/5625/464 4027/5697/464 4025/5695/465 -f 4013/5682/469 3966/5633/469 3985/5653/462 -f 4032/5702/470 3981/5649/470 3979/5647/464 -f 4020/5689/468 3971/5638/468 3969/5636/466 -f 4026/5696/471 3977/5645/471 3973/5640/467 -f 4016/5685/461 3964/5631/461 3966/5633/469 -f 4034/5704/463 3986/5654/463 3981/5649/470 -f 4028/5698/465 3980/5648/465 3977/5645/471 -f 4018/5687/460 3967/5634/460 3964/5631/461 -f 4033/5703/462 3985/5653/462 3986/5654/463 -f 4030/5700/464 3979/5647/464 3980/5648/465 -f 4017/5686/466 3969/5636/466 3967/5634/460 -f 4024/5694/467 3973/5640/467 3971/5642/468 -f 3972/5639/466 4088/5793/476 4084/5789/472 -f 3976/5644/467 4089/5794/477 4085/5790/473 -f 3965/5632/469 4090/5795/478 4086/5791/474 -f 3984/5652/470 4091/5796/479 4087/5792/475 -f 3974/5770/468 4085/5813/473 4088/5793/476 -f 3975/5643/471 4092/5797/480 4089/5794/477 -f 3968/5635/461 4093/5798/481 4090/5795/478 -f 3983/5651/463 4094/5799/482 4091/5796/479 -f 3978/5646/465 4095/5800/483 4092/5797/480 -f 3970/5637/460 4084/5789/472 4093/5798/481 -f 3987/5655/462 4086/5791/474 4094/5799/482 -f 3982/5650/464 4087/5792/475 4095/5800/483 -f 4094/5799/482 4100/5826/488 4096/5801/484 -f 4095/5800/483 4102/5821/490 4097/5802/485 -f 4093/5798/481 4084/5789/472 4098/5803/486 -f 4086/5791/474 4105/5828/493 4100/5805/488 -f 4095/5800/483 4087/5792/475 4101/5806/489 -f 4088/5793/476 4106/5834/494 4098/5808/486 -f 4089/5794/477 4107/5817/495 4103/5809/491 -f 4086/5791/474 4090/5795/478 4104/5810/492 -f 4091/5796/479 4096/5824/484 4101/5812/489 -f 4085/5813/473 4103/5836/491 4106/5814/494 -f 4092/5797/480 4097/5819/485 4107/5815/495 -f 4093/5798/481 4099/5831/487 4104/5816/492 -f 4110/5850/461 4114/5854/461 4111/5851/508 -f 4113/5853/509 4120/5860/509 4114/5854/461 -f 4115/5855/465 4119/5859/465 4116/5856/510 -f 4118/5858/511 4121/5861/511 4119/5859/465 -o ABM_Missile -v -0.176777 3.500000 -0.176777 -v 0.176777 3.500000 -0.176777 -v 0.176777 3.500000 0.176777 -v 0.154329 2.250000 -0.019030 -v 0.161612 2.250000 -0.161612 -v 0.202165 2.250000 -0.134515 -v 0.250000 2.250000 0.000000 -v 0.250000 2.250000 -0.125000 -v 0.297835 2.250000 -0.134515 -v 0.345671 2.250000 -0.019030 -v 0.338388 2.250000 -0.161612 -v 0.426777 2.250000 -0.073223 -v 0.480970 2.250000 -0.154329 -v 0.365485 2.250000 -0.202165 -v 0.500000 2.250000 -0.250000 -v 0.375000 2.250000 -0.250000 -v 0.480970 2.250000 -0.345671 -v 0.365485 2.250000 -0.297835 -v 0.338388 2.250000 -0.338388 -v 0.426777 2.250000 -0.426777 -v 0.345671 2.250000 -0.480970 -v 0.297835 2.250000 -0.365485 -v 0.250000 2.250000 -0.500000 -v 0.250000 2.250000 -0.375000 -v 0.202165 2.250000 -0.365485 -v 0.154329 2.250000 -0.480970 -v 0.161612 2.250000 -0.338388 -v 0.073223 2.250000 -0.426777 -v 0.000000 2.250000 -0.250000 -v 0.134515 2.250000 -0.202165 -v 0.019030 2.250000 -0.154329 -v 0.019030 2.250000 -0.345671 -v 0.134515 2.250000 -0.297835 -v 0.073223 2.250000 -0.073223 -v 0.125000 2.250000 -0.250000 -v 0.426777 2.000000 -0.426777 -v 0.426777 2.000000 -0.073223 -v 0.073223 2.000000 -0.073223 -v -0.031250 8.000000 -0.125000 -v 0.000000 6.500000 -0.875000 -v -0.031250 6.000000 -0.125000 -v 0.000000 7.500000 -0.875000 -v 0.031250 6.000000 -0.125000 -v 0.031250 8.000000 -0.125000 -v 0.031250 2.500000 -0.125000 -v -0.031250 2.500000 -0.125000 -v 0.000000 2.500000 -1.125000 -v 0.031250 4.500000 -0.125000 -v 0.000000 4.000000 -1.125000 -v -0.031250 4.500000 -0.125000 -v -0.062500 7.750000 -0.875000 -v 0.031250 7.750000 -0.820873 -v 0.031250 7.750000 -0.929127 -v 0.062500 6.250000 -0.875000 -v 0.031250 6.250000 -0.820873 -v -0.031250 6.250000 -0.820873 -v -0.154329 2.250000 0.019030 -v -0.161612 2.250000 0.161612 -v -0.202165 2.250000 0.134515 -v -0.250000 2.250000 0.000000 -v -0.250000 2.250000 0.125000 -v -0.297835 2.250000 0.134515 -v -0.345671 2.250000 0.019030 -v -0.338388 2.250000 0.161612 -v -0.426777 2.250000 0.073223 -v -0.480970 2.250000 0.154329 -v -0.365485 2.250000 0.202165 -v -0.500000 2.250000 0.250000 -v -0.375000 2.250000 0.250000 -v -0.480970 2.250000 0.345671 -v -0.365485 2.250000 0.297835 -v -0.338388 2.250000 0.338388 -v -0.426777 2.250000 0.426777 -v -0.345671 2.250000 0.480970 -v -0.297835 2.250000 0.365485 -v -0.250000 2.250000 0.500000 -v -0.250000 2.250000 0.375000 -v -0.202164 2.250000 0.365485 -v -0.154329 2.250000 0.480970 -v -0.161612 2.250000 0.338388 -v -0.073223 2.250000 0.426777 -v 0.000000 2.250000 0.250000 -v -0.134515 2.250000 0.202165 -v -0.019030 2.250000 0.154329 -v -0.019030 2.250000 0.345671 -v -0.134515 2.250000 0.297835 -v -0.073223 2.250000 0.073223 -v -0.125000 2.250000 0.250000 -v -0.426777 2.000000 0.073223 -v -0.250000 2.000000 0.000000 -v -0.073223 2.000000 0.073223 -v -0.031250 2.500000 0.125000 -v 0.031250 2.500000 0.125000 -v 0.000000 2.500000 1.125000 -v -0.031250 4.500000 0.125000 -v 0.000000 4.000000 1.125000 -v 0.031250 4.500000 0.125000 -v -0.019030 2.250000 -0.154329 -v -0.161612 2.250000 -0.161612 -v -0.134515 2.250000 -0.202165 -v 0.000000 2.250000 -0.250000 -v -0.125000 2.250000 -0.250000 -v -0.134515 2.250000 -0.297835 -v -0.019030 2.250000 -0.345671 -v -0.161612 2.250000 -0.338388 -v -0.073223 2.250000 -0.426777 -v -0.154329 2.250000 -0.480970 -v -0.202165 2.250000 -0.365485 -v -0.250000 2.250000 -0.500000 -v -0.250000 2.250000 -0.375000 -v -0.345671 2.250000 -0.480970 -v -0.297835 2.250000 -0.365485 -v -0.338388 2.250000 -0.338388 -v -0.426777 2.250000 -0.426777 -v -0.480970 2.250000 -0.345671 -v -0.365485 2.250000 -0.297835 -v -0.375000 2.250000 -0.250000 -v -0.500000 2.250000 -0.250000 -v -0.365485 2.250000 -0.202164 -v -0.480970 2.250000 -0.154329 -v -0.338388 2.250000 -0.161612 -v -0.426777 2.250000 -0.073223 -v -0.250000 2.250000 0.000000 -v -0.202165 2.250000 -0.134515 -v -0.154329 2.250000 -0.019030 -v -0.345671 2.250000 -0.019030 -v -0.297835 2.250000 -0.134515 -v -0.073223 2.250000 -0.073223 -v -0.250000 2.250000 -0.125000 -v -0.426777 2.000000 -0.426777 -v -0.073223 2.000000 -0.426777 -v -0.073223 2.000000 -0.073223 -v -0.125000 2.500000 -0.031250 -v -0.125000 2.500000 0.031250 -v -1.125000 2.500000 0.000000 -v -0.125000 4.500000 -0.031250 -v -1.125000 4.000000 0.000000 -v -0.125000 4.500000 0.031250 -v 0.019030 2.250000 0.154329 -v 0.161612 2.250000 0.161612 -v 0.134515 2.250000 0.202165 -v 0.000000 2.250000 0.250000 -v 0.125000 2.250000 0.250000 -v 0.134515 2.250000 0.297835 -v 0.019030 2.250000 0.345671 -v 0.161612 2.250000 0.338388 -v 0.073223 2.250000 0.426777 -v 0.154329 2.250000 0.480970 -v 0.202165 2.250000 0.365485 -v 0.250000 2.250000 0.500000 -v 0.250000 2.250000 0.375000 -v 0.345671 2.250000 0.480970 -v 0.297835 2.250000 0.365485 -v 0.338388 2.250000 0.338388 -v 0.426777 2.250000 0.426777 -v 0.480970 2.250000 0.345671 -v 0.365485 2.250000 0.297835 -v 0.500000 2.250000 0.250000 -v 0.375000 2.250000 0.250000 -v 0.365485 2.250000 0.202164 -v 0.480970 2.250000 0.154329 -v 0.338388 2.250000 0.161612 -v 0.426777 2.250000 0.073223 -v 0.250000 2.250000 0.000000 -v 0.202165 2.250000 0.134515 -v 0.154329 2.250000 0.019030 -v 0.345671 2.250000 0.019030 -v 0.297835 2.250000 0.134515 -v 0.073223 2.250000 0.073223 -v 0.250000 2.250000 0.125000 -v 0.426777 2.000000 0.426777 -v 0.073223 2.000000 0.426777 -v 0.073223 2.000000 0.073223 -v 0.125000 2.500000 0.031250 -v 0.125000 2.500000 -0.031250 -v 1.125000 2.500000 0.000000 -v 0.125000 4.500000 0.031250 -v 1.125000 4.000000 0.000000 -v 0.125000 4.500000 -0.031250 -v 0.031250 8.000000 0.125000 -v 0.000000 6.500000 0.875000 -v 0.031250 6.000000 0.125000 -v 0.000000 7.500000 0.875000 -v -0.031250 6.000000 0.125000 -v -0.031250 8.000000 0.125000 -v -0.062500 7.750000 0.875000 -v -0.031250 7.750000 0.929127 -v 0.062500 7.750000 0.875000 -v -0.062500 6.250000 0.875000 -v -0.031250 6.250000 0.820873 -v 0.031250 6.250000 0.820873 -v -0.125000 8.000000 0.031250 -v -0.875000 6.500000 0.000000 -v -0.125000 6.000000 0.031250 -v -0.875000 7.500000 0.000000 -v -0.125000 6.000000 -0.031250 -v -0.125000 8.000000 -0.031250 -v -0.875000 7.750000 0.062500 -v -0.820873 7.750000 -0.031250 -v -0.929127 7.750000 -0.031250 -v -0.875000 6.250000 -0.062500 -v -0.820873 6.250000 -0.031250 -v -0.820873 6.250000 0.031250 -v 0.125000 6.000000 -0.031250 -v 0.875000 7.500000 0.000000 -v 0.875000 6.500000 0.000000 -v 0.125000 6.000000 0.031250 -v 0.125000 8.000000 0.031250 -v 0.125000 8.000000 -0.031250 -v 0.875000 7.750000 -0.062500 -v 0.820873 7.750000 0.031250 -v 0.929127 7.750000 0.031250 -v 0.875000 6.250000 0.062500 -v 0.820873 6.250000 0.031250 -v 0.820873 6.250000 -0.031250 -v -0.095671 3.500000 -0.230970 -v 0.000000 3.500000 -0.250000 -v 0.095671 3.500000 -0.230970 -v 0.230970 3.500000 -0.095671 -v 0.250000 3.500000 0.000000 -v 0.230970 3.500000 0.095671 -v 0.095671 3.500000 0.230970 -v 0.000000 3.500000 0.250000 -v -0.095671 3.500000 0.230970 -v -0.176777 3.500000 0.176777 -v -0.230970 3.500000 0.095671 -v -0.250000 3.500000 0.000000 -v -0.230970 3.500000 -0.095671 -v 0.019030 2.000000 -0.154329 -v 0.000000 2.000000 -0.250000 -v 0.019030 2.000000 -0.345671 -v 0.073223 2.000000 -0.426777 -v 0.154329 2.000000 -0.480970 -v 0.250000 2.000000 -0.500000 -v 0.345671 2.000000 -0.480970 -v 0.480970 2.000000 -0.345671 -v 0.500000 2.000000 -0.250000 -v 0.480970 2.000000 -0.154329 -v 0.345671 2.000000 -0.019030 -v 0.250000 2.000000 0.000000 -v 0.154329 2.000000 -0.019030 -v -0.031250 7.750000 -0.929127 -v -0.031250 7.750000 -0.820873 -v 0.062500 7.750000 -0.875000 -v -0.062500 6.250000 -0.875000 -v -0.031250 6.250000 -0.929127 -v 0.031250 6.250000 -0.929127 -v -0.019030 2.000000 0.154329 -v 0.000000 2.000000 0.250000 -v -0.019030 2.000000 0.345671 -v -0.073223 2.000000 0.426777 -v -0.154329 2.000000 0.480970 -v -0.250000 2.000000 0.500000 -v -0.345671 2.000000 0.480970 -v -0.426777 2.000000 0.426777 -v -0.480970 2.000000 0.345671 -v -0.500000 2.000000 0.250000 -v -0.480970 2.000000 0.154329 -v -0.345671 2.000000 0.019030 -v -0.154329 2.000000 0.019030 -v -0.154329 2.000000 -0.019030 -v -0.250000 2.000000 0.000000 -v -0.345671 2.000000 -0.019030 -v -0.426777 2.000000 -0.073223 -v -0.480970 2.000000 -0.154329 -v -0.500000 2.000000 -0.250000 -v -0.480970 2.000000 -0.345671 -v -0.345671 2.000000 -0.480970 -v -0.250000 2.000000 -0.500000 -v -0.154329 2.000000 -0.480970 -v -0.019030 2.000000 -0.345671 -v 0.000000 2.000000 -0.250000 -v -0.019030 2.000000 -0.154329 -v 0.154329 2.000000 0.019030 -v 0.250000 2.000000 0.000000 -v 0.345671 2.000000 0.019030 -v 0.426777 2.000000 0.073223 -v 0.480970 2.000000 0.154329 -v 0.500000 2.000000 0.250000 -v 0.480970 2.000000 0.345671 -v 0.345671 2.000000 0.480970 -v 0.250000 2.000000 0.500000 -v 0.154329 2.000000 0.480970 -v 0.019030 2.000000 0.345671 -v 0.000000 2.000000 0.250000 -v 0.019030 2.000000 0.154329 -v 0.031250 7.750000 0.929127 -v 0.031250 7.750000 0.820873 -v -0.031250 7.750000 0.820873 -v 0.062500 6.250000 0.875000 -v 0.031250 6.250000 0.929127 -v -0.031250 6.250000 0.929127 -v -0.929127 7.750000 0.031250 -v -0.820873 7.750000 0.031250 -v -0.875000 7.750000 -0.062500 -v -0.875000 6.250000 0.062500 -v -0.929127 6.250000 0.031250 -v -0.929127 6.250000 -0.031250 -v 0.929127 7.750000 -0.031250 -v 0.820873 7.750000 -0.031250 -v 0.875000 7.750000 0.062500 -v 0.875000 6.250000 -0.062500 -v 0.929127 6.250000 -0.031250 -v 0.929127 6.250000 0.031250 -v 0.143506 9.000000 -0.346455 -v 0.000000 9.000000 -0.375000 -v 0.000000 10.500000 0.000000 -v 0.265165 9.000000 -0.265165 -v 0.346455 9.000000 -0.143506 -v 0.375000 9.000000 0.000000 -v 0.346455 9.000000 0.143506 -v 0.265165 9.000000 0.265165 -v 0.143506 9.000000 0.346455 -v 0.000000 9.000000 0.375000 -v -0.143506 9.000000 0.346455 -v -0.265165 9.000000 0.265165 -v -0.346455 9.000000 0.143506 -v -0.375000 9.000000 0.000000 -v -0.346455 9.000000 -0.143506 -v -0.265165 9.000000 -0.265165 -v -0.143506 9.000000 -0.346455 -v -0.375000 7.500000 0.000000 -v 0.375000 7.500000 0.000000 -v -0.346455 7.500000 0.143506 -v 0.346455 7.500000 -0.143506 -v -0.265165 7.500000 0.265165 -v 0.265165 7.500000 -0.265165 -v -0.143506 7.500000 0.346455 -v 0.143506 7.500000 -0.346455 -v 0.000000 7.500000 0.375000 -v -0.143506 7.500000 -0.346455 -v 0.000000 7.500000 -0.375000 -v 0.143506 7.500000 0.346455 -v -0.265165 7.500000 -0.265165 -v 0.265165 7.500000 0.265165 -v -0.346455 7.500000 -0.143506 -v 0.346455 7.500000 0.143506 -v 0.095671 6.500000 0.230970 -v -0.176777 6.500000 -0.176777 -v 0.176777 6.500000 0.176777 -v -0.230970 6.500000 -0.095671 -v 0.230970 6.500000 0.095671 -v -0.250000 6.500000 0.000000 -v 0.250000 6.500000 0.000000 -v -0.230970 6.500000 0.095671 -v 0.230970 6.500000 -0.095671 -v -0.176777 6.500000 0.176777 -v 0.176777 6.500000 -0.176777 -v -0.095671 6.500000 0.230970 -v 0.095671 6.500000 -0.230970 -v 0.000000 6.500000 0.250000 -v -0.095671 6.500000 -0.230970 -v 0.000000 6.500000 -0.250000 -v 0.019030 3.500000 -0.154329 -v 0.480970 3.500000 -0.345671 -v 0.073223 3.500000 -0.073223 -v 0.426777 3.500000 -0.426777 -v 0.154329 3.500000 -0.019030 -v 0.345671 3.500000 -0.480970 -v 0.250000 3.500000 0.000000 -v 0.250000 3.500000 -0.500000 -v 0.345671 3.500000 -0.019030 -v 0.154329 3.500000 -0.480970 -v 0.426777 3.500000 -0.073223 -v 0.073223 3.500000 -0.426777 -v 0.480970 3.500000 -0.154329 -v 0.000000 3.500000 -0.250000 -v 0.019030 3.500000 -0.345671 -v 0.500000 3.500000 -0.250000 -v 0.125000 4.500000 -0.125000 -v -0.019030 3.500000 0.154329 -v -0.480970 3.500000 0.345671 -v -0.073223 3.500000 0.073223 -v -0.426777 3.500000 0.426777 -v -0.154329 3.500000 0.019030 -v -0.345671 3.500000 0.480970 -v -0.250000 3.500000 0.000000 -v -0.250000 3.500000 0.500000 -v -0.345671 3.500000 0.019030 -v -0.154329 3.500000 0.480970 -v -0.426777 3.500000 0.073223 -v -0.073223 3.500000 0.426777 -v -0.480970 3.500000 0.154329 -v 0.000000 3.500000 0.250000 -v -0.019030 3.500000 0.345671 -v -0.500000 3.500000 0.250000 -v -0.125000 4.500000 0.125000 -v -0.154329 3.500000 -0.019030 -v -0.345671 3.500000 -0.480970 -v -0.073223 3.500000 -0.073223 -v -0.426777 3.500000 -0.426777 -v -0.019030 3.500000 -0.154329 -v -0.480970 3.500000 -0.345671 -v 0.000000 3.500000 -0.250000 -v -0.500000 3.500000 -0.250000 -v -0.019030 3.500000 -0.345671 -v -0.480970 3.500000 -0.154329 -v -0.073223 3.500000 -0.426777 -v -0.426777 3.500000 -0.073223 -v -0.154329 3.500000 -0.480970 -v -0.250000 3.500000 0.000000 -v -0.345671 3.500000 -0.019030 -v -0.250000 3.500000 -0.500000 -v -0.125000 4.500000 -0.125000 -v 0.154329 3.500000 0.019030 -v 0.345671 3.500000 0.480970 -v 0.073223 3.500000 0.073223 -v 0.426777 3.500000 0.426777 -v 0.019030 3.500000 0.154329 -v 0.480970 3.500000 0.345671 -v 0.000000 3.500000 0.250000 -v 0.500000 3.500000 0.250000 -v 0.019030 3.500000 0.345671 -v 0.480970 3.500000 0.154329 -v 0.073223 3.500000 0.426777 -v 0.426777 3.500000 0.073223 -v 0.154329 3.500000 0.480970 -v 0.250000 3.500000 0.000000 -v 0.345671 3.500000 0.019030 -v 0.250000 3.500000 0.500000 -v 0.125000 4.500000 0.125000 -vt 0.720253 0.439829 -vt 0.720253 0.488743 -vt 0.648168 0.488743 -vt 0.447368 0.053571 -vt 0.421053 0.035714 -vt 0.434211 0.035714 -vt 0.473684 0.053571 -vt 0.447368 0.035714 -vt 0.460526 0.035714 -vt 0.486842 0.035714 -vt 0.500000 0.053571 -vt 0.513158 0.035714 -vt 0.526316 0.053571 -vt 0.552632 0.053571 -vt 0.526316 0.035714 -vt 0.539474 0.035714 -vt 0.578947 0.053571 -vt 0.552632 0.035714 -vt 0.565789 0.035714 -vt 0.605263 0.053571 -vt 0.578947 0.035714 -vt 0.592105 0.035714 -vt 0.618421 0.035714 -vt 0.631579 0.053571 -vt 0.657895 0.053571 -vt 0.631579 0.035714 -vt 0.644737 0.035714 -vt 0.684211 0.053571 -vt 0.657895 0.035714 -vt 0.671053 0.035714 -vt 0.697368 0.035714 -vt 0.710526 0.053571 -vt 0.723684 0.035714 -vt 0.736842 0.053571 -vt 0.789474 0.053571 -vt 0.802632 0.035714 -vt 0.815789 0.053571 -vt 0.763158 0.053571 -vt 0.736842 0.035714 -vt 0.750000 0.035714 -vt 0.828947 0.035714 -vt 0.842105 0.053571 -vt 0.776316 0.035714 -vt 0.684211 0.570302 -vt 0.633240 0.535715 -vt 0.684211 0.501127 -vt 0.842105 0.294643 -vt 1.000000 0.080357 -vt 0.842105 0.008929 -vt 1.000000 0.223214 -vt 0.842105 0.008929 -vt 0.842105 0.294643 -vt 1.000000 0.294643 -vt 0.842105 0.303571 -vt 0.842105 -0.000000 -vt 1.000000 0.008929 -vt 0.631579 0.580357 -vt 0.631579 0.571429 -vt 0.842105 0.580357 -vt 0.631579 0.875000 -vt 0.842105 0.875000 -vt 0.631579 0.883929 -vt 0.842105 0.803571 -vt 0.631579 0.580357 -vt 0.921712 0.330357 -vt 0.940460 0.323013 -vt 0.940460 0.337702 -vt 0.946709 0.312500 -vt 0.940460 0.319845 -vt 0.927961 0.319845 -vt 0.447368 0.053571 -vt 0.421053 0.035714 -vt 0.434211 0.035714 -vt 0.473684 0.053571 -vt 0.447368 0.035714 -vt 0.460526 0.035714 -vt 0.486842 0.035714 -vt 0.500000 0.053571 -vt 0.513158 0.035714 -vt 0.526316 0.053571 -vt 0.552632 0.053571 -vt 0.526316 0.035714 -vt 0.539474 0.035714 -vt 0.578947 0.053571 -vt 0.552632 0.035714 -vt 0.565789 0.035714 -vt 0.605263 0.053571 -vt 0.578947 0.035714 -vt 0.592105 0.035714 -vt 0.618421 0.035714 -vt 0.631579 0.053571 -vt 0.657895 0.053571 -vt 0.631579 0.035714 -vt 0.644737 0.035714 -vt 0.684211 0.053571 -vt 0.657895 0.035714 -vt 0.671053 0.035714 -vt 0.697368 0.035714 -vt 0.710526 0.053571 -vt 0.723684 0.035714 -vt 0.736842 0.053571 -vt 0.789474 0.053571 -vt 0.802632 0.035714 -vt 0.815789 0.053571 -vt 0.763158 0.053571 -vt 0.736842 0.035714 -vt 0.750000 0.035714 -vt 0.828947 0.035714 -vt 0.842105 0.053571 -vt 0.776316 0.035714 -vt 0.633240 0.535715 -vt 0.648169 0.511257 -vt 0.684211 0.501127 -vt 0.631579 0.580357 -vt 0.631579 0.571429 -vt 0.842105 0.580357 -vt 0.631579 0.875000 -vt 0.842105 0.875000 -vt 0.631579 0.883929 -vt 0.842105 0.803571 -vt 0.631579 0.580357 -vt 0.447368 0.053571 -vt 0.421053 0.035714 -vt 0.434211 0.035714 -vt 0.473684 0.053571 -vt 0.447368 0.035714 -vt 0.460526 0.035714 -vt 0.486842 0.035714 -vt 0.500000 0.053571 -vt 0.513158 0.035714 -vt 0.526316 0.053571 -vt 0.552632 0.053571 -vt 0.526316 0.035714 -vt 0.539474 0.035714 -vt 0.578947 0.053571 -vt 0.552632 0.035714 -vt 0.565789 0.035714 -vt 0.605263 0.053571 -vt 0.578947 0.035714 -vt 0.592105 0.035714 -vt 0.618421 0.035714 -vt 0.631579 0.053571 -vt 0.657895 0.053571 -vt 0.631579 0.035714 -vt 0.644737 0.035714 -vt 0.671053 0.035714 -vt 0.684211 0.053571 -vt 0.697368 0.035714 -vt 0.710526 0.053571 -vt 0.723684 0.035714 -vt 0.736842 0.053571 -vt 0.789474 0.053571 -vt 0.802632 0.035714 -vt 0.815789 0.053571 -vt 0.763158 0.053571 -vt 0.736842 0.035714 -vt 0.750000 0.035714 -vt 0.828947 0.035714 -vt 0.842105 0.053571 -vt 0.776316 0.035714 -vt 0.684211 0.570302 -vt 0.633240 0.535715 -vt 0.684211 0.501127 -vt 0.631579 0.580357 -vt 0.631579 0.571429 -vt 0.842105 0.580357 -vt 0.631579 0.875000 -vt 0.842105 0.875000 -vt 0.631579 0.883929 -vt 0.842105 0.803571 -vt 0.631579 0.580357 -vt 0.447368 0.053571 -vt 0.421053 0.035714 -vt 0.434211 0.035714 -vt 0.473684 0.053571 -vt 0.447368 0.035714 -vt 0.460526 0.035714 -vt 0.486842 0.035714 -vt 0.500000 0.053571 -vt 0.513158 0.035714 -vt 0.526316 0.053571 -vt 0.552632 0.053571 -vt 0.526316 0.035714 -vt 0.539474 0.035714 -vt 0.578947 0.053571 -vt 0.552632 0.035714 -vt 0.565789 0.035714 -vt 0.605263 0.053571 -vt 0.578947 0.035714 -vt 0.592105 0.035714 -vt 0.618421 0.035714 -vt 0.631579 0.053571 -vt 0.657895 0.053571 -vt 0.631579 0.035714 -vt 0.644737 0.035714 -vt 0.684211 0.053571 -vt 0.657895 0.035714 -vt 0.671053 0.035714 -vt 0.697368 0.035714 -vt 0.710526 0.053571 -vt 0.723684 0.035714 -vt 0.736842 0.053571 -vt 0.789474 0.053571 -vt 0.802632 0.035714 -vt 0.815789 0.053571 -vt 0.763158 0.053571 -vt 0.736842 0.035714 -vt 0.750000 0.035714 -vt 0.828947 0.035714 -vt 0.842105 0.053571 -vt 0.763158 0.035714 -vt 0.776316 0.035714 -vt 0.684211 0.570302 -vt 0.633240 0.535715 -vt 0.684211 0.501127 -vt 0.631579 0.580357 -vt 0.631579 0.571429 -vt 0.842105 0.580357 -vt 0.631579 0.875000 -vt 0.842105 0.875000 -vt 0.631579 0.883929 -vt 0.842105 0.803571 -vt 0.631579 0.580357 -vt 0.842105 0.294643 -vt 1.000000 0.080357 -vt 0.842105 0.008929 -vt 1.000000 0.223214 -vt 0.842105 0.008929 -vt 0.842105 0.294643 -vt 1.000000 0.294643 -vt 0.842105 0.303571 -vt 0.842105 -0.000000 -vt 1.000000 0.008929 -vt 0.946709 0.330357 -vt 0.940460 0.337702 -vt 0.921712 0.330357 -vt 0.946709 0.312500 -vt 0.940460 0.319845 -vt 0.927961 0.319845 -vt 0.842105 0.294643 -vt 1.000000 0.080357 -vt 0.842105 0.008929 -vt 1.000000 0.223214 -vt 0.842105 0.008929 -vt 0.842105 0.294643 -vt 1.000000 0.294643 -vt 0.842105 0.303571 -vt 0.842105 -0.000000 -vt 1.000000 0.008929 -vt 0.921712 0.330357 -vt 0.940460 0.323013 -vt 0.940460 0.337702 -vt 0.946709 0.312500 -vt 0.940460 0.319845 -vt 0.927961 0.319845 -vt 0.842105 0.008929 -vt 1.000000 0.223214 -vt 1.000000 0.080357 -vt 0.842105 0.008929 -vt 0.842105 0.294643 -vt 1.000000 0.294643 -vt 0.842105 0.303571 -vt 0.842105 -0.000000 -vt 1.000000 0.008929 -vt 0.921712 0.330357 -vt 0.940460 0.323013 -vt 0.940460 0.337702 -vt 0.946709 0.312500 -vt 0.940460 0.319845 -vt 0.927961 0.319845 -vt 0.731302 0.451050 -vt 0.735182 0.464286 -vt 0.731302 0.477522 -vt 0.703716 0.496241 -vt 0.684211 0.498873 -vt 0.664705 0.496241 -vt 0.637119 0.477522 -vt 0.633239 0.464286 -vt 0.637119 0.451050 -vt 0.648169 0.439829 -vt 0.664705 0.432331 -vt 0.684211 0.429698 -vt 0.703716 0.432331 -vt 0.421053 0.053571 -vt 0.473684 0.035714 -vt 0.500000 0.035714 -vt 0.605263 0.035714 -vt 0.684211 0.035714 -vt 0.710526 0.035714 -vt 0.789474 0.035714 -vt 0.815789 0.035714 -vt 0.763158 0.035714 -vt 0.703717 0.503760 -vt 0.720253 0.511257 -vt 0.731302 0.522478 -vt 0.735182 0.535715 -vt 0.731302 0.548951 -vt 0.720253 0.560172 -vt 0.703717 0.567669 -vt 0.664705 0.567669 -vt 0.648169 0.560172 -vt 0.637119 0.548951 -vt 0.637119 0.522478 -vt 0.648169 0.511257 -vt 0.664705 0.503760 -vt 0.631579 0.875000 -vt 0.927961 0.337702 -vt 0.927961 0.323013 -vt 0.946709 0.330357 -vt 0.921712 0.312500 -vt 0.927962 0.305155 -vt 0.940460 0.305155 -vt 0.421053 0.053571 -vt 0.473684 0.035714 -vt 0.500000 0.035714 -vt 0.605263 0.035714 -vt 0.684211 0.035714 -vt 0.710526 0.035714 -vt 0.789474 0.035714 -vt 0.815789 0.035714 -vt 0.763158 0.035714 -vt 0.703717 0.503760 -vt 0.720253 0.511257 -vt 0.731302 0.522478 -vt 0.735182 0.535715 -vt 0.731302 0.548951 -vt 0.720253 0.560172 -vt 0.703717 0.567669 -vt 0.684211 0.570302 -vt 0.664705 0.567669 -vt 0.648169 0.560172 -vt 0.637119 0.548951 -vt 0.637119 0.522478 -vt 0.664705 0.503760 -vt 0.631579 0.875000 -vt 0.421053 0.053571 -vt 0.473684 0.035714 -vt 0.500000 0.035714 -vt 0.605263 0.035714 -vt 0.657895 0.035714 -vt 0.684211 0.035714 -vt 0.710526 0.035714 -vt 0.789474 0.035714 -vt 0.815789 0.035714 -vt 0.763158 0.035714 -vt 0.703717 0.503760 -vt 0.720253 0.511257 -vt 0.731302 0.522478 -vt 0.735182 0.535715 -vt 0.731302 0.548951 -vt 0.720253 0.560172 -vt 0.703717 0.567669 -vt 0.664705 0.567669 -vt 0.648169 0.560172 -vt 0.637119 0.548951 -vt 0.637119 0.522478 -vt 0.648169 0.511257 -vt 0.664705 0.503760 -vt 0.631579 0.875000 -vt 0.421053 0.053571 -vt 0.473684 0.035714 -vt 0.500000 0.035714 -vt 0.605263 0.035714 -vt 0.684211 0.035714 -vt 0.710526 0.035714 -vt 0.789474 0.035714 -vt 0.815789 0.035714 -vt 0.703717 0.503760 -vt 0.720253 0.511257 -vt 0.731302 0.522478 -vt 0.735182 0.535715 -vt 0.731302 0.548951 -vt 0.720253 0.560172 -vt 0.703717 0.567669 -vt 0.664705 0.567669 -vt 0.648169 0.560172 -vt 0.637119 0.548951 -vt 0.637119 0.522478 -vt 0.648169 0.511257 -vt 0.664705 0.503760 -vt 0.631579 0.875000 -vt 0.927961 0.337702 -vt 0.927961 0.323013 -vt 0.940460 0.323013 -vt 0.921712 0.312500 -vt 0.927962 0.305155 -vt 0.940460 0.305155 -vt 0.927961 0.337702 -vt 0.927961 0.323013 -vt 0.946709 0.330357 -vt 0.921712 0.312500 -vt 0.927962 0.305155 -vt 0.940460 0.305155 -vt 0.842105 0.294643 -vt 0.927961 0.337702 -vt 0.927961 0.323013 -vt 0.946709 0.330357 -vt 0.921712 0.312500 -vt 0.927962 0.305155 -vt 0.940460 0.305155 -vt 0.434211 0.785714 -vt 0.473684 0.785714 -vt 0.447368 1.000000 -vt 0.394737 0.785714 -vt 0.407895 1.000000 -vt 0.355263 0.785714 -vt 0.368421 1.000000 -vt 0.315789 0.785714 -vt 0.328947 1.000000 -vt 0.276316 0.785714 -vt 0.289474 1.000000 -vt 0.236842 0.785714 -vt 0.250000 1.000000 -vt 0.197368 0.785714 -vt 0.210526 1.000000 -vt 0.157895 0.785714 -vt 0.171053 1.000000 -vt 0.131579 1.000000 -vt 0.118421 0.785714 -vt 0.078947 0.785714 -vt 0.092105 1.000000 -vt 0.039474 0.785714 -vt 0.052632 1.000000 -vt 0.000000 0.785714 -vt 0.013158 1.000000 -vt 0.592105 0.785714 -vt 0.631579 0.785714 -vt 0.605263 1.000000 -vt 0.552632 0.785714 -vt 0.565789 1.000000 -vt 0.513158 0.785714 -vt 0.526316 1.000000 -vt 0.486842 1.000000 -vt 0.631579 0.571429 -vt 0.315789 0.571429 -vt 0.039474 0.571429 -vt 0.355263 0.571429 -vt 0.078947 0.571429 -vt 0.394737 0.571429 -vt 0.118421 0.571429 -vt 0.434211 0.571429 -vt 0.157895 0.571429 -vt 0.513158 0.571429 -vt 0.473684 0.571429 -vt 0.197368 0.571429 -vt 0.552632 0.571429 -vt 0.236842 0.571429 -vt 0.592105 0.571429 -vt 0.276316 0.571429 -vt 0.184211 0.428571 -vt 0.539474 0.428571 -vt 0.223684 0.428571 -vt 0.578947 0.428571 -vt 0.263158 0.428571 -vt 0.618421 0.428571 -vt 0.302632 0.428571 -vt 0.000000 0.571429 -vt 0.026316 0.428571 -vt 0.342105 0.428571 -vt 0.065789 0.428571 -vt 0.381579 0.428571 -vt 0.105263 0.428571 -vt 0.421053 0.428571 -vt 0.144737 0.428571 -vt 0.500000 0.428571 -vt 0.460526 0.428571 -vt 0.236842 0.428571 -vt 0.263158 -0.000000 -vt 0.263158 0.428571 -vt 0.052632 0.428571 -vt 0.078947 -0.000000 -vt 0.078947 0.428571 -vt 0.289474 -0.000000 -vt 0.289474 0.428571 -vt 0.105263 -0.000000 -vt 0.105263 0.428571 -vt 0.315789 0.428571 -vt 0.342105 -0.000000 -vt 0.342105 0.428571 -vt 0.315789 -0.000000 -vt 0.131579 -0.000000 -vt 0.131579 0.428571 -vt 0.368421 -0.000000 -vt 0.368421 0.428571 -vt 0.157895 -0.000000 -vt 0.157895 0.428571 -vt 0.394737 -0.000000 -vt 0.394737 0.428571 -vt 0.184211 -0.000000 -vt 0.184211 0.428571 -vt 0.421053 -0.000000 -vt 0.421053 0.428571 -vt 0.210526 -0.000000 -vt 0.210526 0.428571 -vt 0.000000 0.428571 -vt 0.026316 -0.000000 -vt 0.236842 -0.000000 -vt 0.052632 -0.000000 -vt 0.815789 0.232143 -vt 0.605263 0.232143 -vt 0.421053 0.232143 -vt 0.631579 0.232143 -vt 0.447368 0.232143 -vt 0.657895 0.232143 -vt 0.473684 0.232143 -vt 0.684211 0.232143 -vt 0.500000 0.232143 -vt 0.710526 0.232143 -vt 0.526316 0.232143 -vt 0.736842 0.232143 -vt 0.552632 0.232143 -vt 0.789474 0.232143 -vt 0.763158 0.232143 -vt 0.578947 0.232143 -vt 0.671053 0.375000 -vt 0.644737 0.375000 -vt 0.618421 0.375000 -vt 0.592105 0.375000 -vt 0.565789 0.375000 -vt 0.539474 0.375000 -vt 0.513158 0.375000 -vt 0.486842 0.375000 -vt 0.460526 0.375000 -vt 0.434211 0.375000 -vt 0.842105 0.232143 -vt 0.828947 0.375000 -vt 0.802632 0.375000 -vt 0.776316 0.375000 -vt 0.750000 0.375000 -vt 0.723684 0.375000 -vt 0.697368 0.375000 -vt 0.605263 -0.000000 -vt 0.631579 -0.000000 -vt 0.657895 -0.000000 -vt 0.684211 -0.000000 -vt 0.710526 -0.000000 -vt 0.736842 -0.000000 -vt 0.789474 -0.000000 -vt 0.815789 -0.000000 -vt 0.763158 -0.000000 -vt 0.842105 -0.000000 -vt 0.421053 -0.000000 -vt 0.447368 -0.000000 -vt 0.473684 -0.000000 -vt 0.500000 -0.000000 -vt 0.526316 -0.000000 -vt 0.552632 -0.000000 -vt 0.578947 -0.000000 -vt 0.907895 0.517857 -vt 0.894737 0.303571 -vt 0.907895 0.303571 -vt 0.894737 0.517857 -vt 0.881579 0.303571 -vt 0.881579 0.517857 -vt 0.868421 0.303571 -vt 0.868421 0.517857 -vt 0.855263 0.303571 -vt 0.855263 0.517857 -vt 0.842105 0.303571 -vt 0.921053 0.517857 -vt 0.921053 0.303571 -vt 0.815789 0.232143 -vt 0.605263 0.232143 -vt 0.421053 0.232143 -vt 0.631579 0.232143 -vt 0.447368 0.232143 -vt 0.657895 0.232143 -vt 0.473684 0.232143 -vt 0.684211 0.232143 -vt 0.500000 0.232143 -vt 0.710526 0.232143 -vt 0.526316 0.232143 -vt 0.736842 0.232143 -vt 0.552632 0.232143 -vt 0.789474 0.232143 -vt 0.763158 0.232143 -vt 0.578947 0.232143 -vt 0.671053 0.375000 -vt 0.644737 0.375000 -vt 0.618421 0.375000 -vt 0.592105 0.375000 -vt 0.565789 0.375000 -vt 0.539474 0.375000 -vt 0.513158 0.375000 -vt 0.486842 0.375000 -vt 0.460526 0.375000 -vt 0.434211 0.375000 -vt 0.842105 0.232143 -vt 0.828947 0.375000 -vt 0.802632 0.375000 -vt 0.776316 0.375000 -vt 0.750000 0.375000 -vt 0.723684 0.375000 -vt 0.697368 0.375000 -vt 0.605263 -0.000000 -vt 0.631579 -0.000000 -vt 0.657895 -0.000000 -vt 0.684211 -0.000000 -vt 0.710526 -0.000000 -vt 0.736842 -0.000000 -vt 0.815789 -0.000000 -vt 0.763158 -0.000000 -vt 0.842105 -0.000000 -vt 0.789474 -0.000000 -vt 0.447368 -0.000000 -vt 0.473684 -0.000000 -vt 0.500000 -0.000000 -vt 0.526316 -0.000000 -vt 0.552632 -0.000000 -vt 0.578947 -0.000000 -vt 0.815789 0.232143 -vt 0.605263 0.232143 -vt 0.421053 0.232143 -vt 0.631579 0.232143 -vt 0.447368 0.232143 -vt 0.657895 0.232143 -vt 0.473684 0.232143 -vt 0.684211 0.232143 -vt 0.500000 0.232143 -vt 0.710526 0.232143 -vt 0.526316 0.232143 -vt 0.736842 0.232143 -vt 0.552632 0.232143 -vt 0.789474 0.232143 -vt 0.763158 0.232143 -vt 0.578947 0.232143 -vt 0.671053 0.375000 -vt 0.644737 0.375000 -vt 0.618421 0.375000 -vt 0.592105 0.375000 -vt 0.565789 0.375000 -vt 0.539474 0.375000 -vt 0.513158 0.375000 -vt 0.486842 0.375000 -vt 0.460526 0.375000 -vt 0.434211 0.375000 -vt 0.842105 0.232143 -vt 0.828947 0.375000 -vt 0.802632 0.375000 -vt 0.776316 0.375000 -vt 0.750000 0.375000 -vt 0.723684 0.375000 -vt 0.697368 0.375000 -vt 0.631579 -0.000000 -vt 0.657895 -0.000000 -vt 0.684211 -0.000000 -vt 0.710526 -0.000000 -vt 0.736842 -0.000000 -vt 0.815789 -0.000000 -vt 0.763158 -0.000000 -vt 0.842105 -0.000000 -vt 0.789474 -0.000000 -vt 0.421053 -0.000000 -vt 0.447368 -0.000000 -vt 0.473684 -0.000000 -vt 0.500000 -0.000000 -vt 0.526316 -0.000000 -vt 0.552632 -0.000000 -vt 0.578947 -0.000000 -vt 0.605263 -0.000000 -vt 0.815789 0.232143 -vt 0.605263 0.232143 -vt 0.421053 0.232143 -vt 0.631579 0.232143 -vt 0.447368 0.232143 -vt 0.657895 0.232143 -vt 0.473684 0.232143 -vt 0.684211 0.232143 -vt 0.500000 0.232143 -vt 0.710526 0.232143 -vt 0.526316 0.232143 -vt 0.736842 0.232143 -vt 0.552632 0.232143 -vt 0.789474 0.232143 -vt 0.763158 0.232143 -vt 0.578947 0.232143 -vt 0.671053 0.375000 -vt 0.644737 0.375000 -vt 0.618421 0.375000 -vt 0.592105 0.375000 -vt 0.565789 0.375000 -vt 0.539474 0.375000 -vt 0.513158 0.375000 -vt 0.486842 0.375000 -vt 0.460526 0.375000 -vt 0.434211 0.375000 -vt 0.842105 0.232143 -vt 0.828947 0.375000 -vt 0.802632 0.375000 -vt 0.776316 0.375000 -vt 0.750000 0.375000 -vt 0.723684 0.375000 -vt 0.697368 0.375000 -vt 0.605263 -0.000000 -vt 0.631579 -0.000000 -vt 0.657895 -0.000000 -vt 0.684211 -0.000000 -vt 0.710526 -0.000000 -vt 0.736842 -0.000000 -vt 0.815789 -0.000000 -vt 0.763158 -0.000000 -vt 0.842105 -0.000000 -vt 0.789474 -0.000000 -vt 0.421053 -0.000000 -vt 0.447368 -0.000000 -vt 0.473684 -0.000000 -vt 0.500000 -0.000000 -vt 0.526316 -0.000000 -vt 0.552632 -0.000000 -vt 0.578947 -0.000000 -vt 0.907895 0.517857 -vt 0.894737 0.303571 -vt 0.907895 0.303571 -vt 0.894737 0.517857 -vt 0.881579 0.303571 -vt 0.881579 0.517857 -vt 0.868421 0.303571 -vt 0.868421 0.517857 -vt 0.855263 0.303571 -vt 0.855263 0.517857 -vt 0.842105 0.303571 -vt 0.921053 0.517857 -vt 0.921053 0.303571 -vt 0.907895 0.517857 -vt 0.894737 0.303571 -vt 0.907895 0.303571 -vt 0.894737 0.517857 -vt 0.881579 0.303571 -vt 0.881579 0.517857 -vt 0.868421 0.303571 -vt 0.868421 0.517857 -vt 0.855263 0.303571 -vt 0.855263 0.517857 -vt 0.842105 0.303571 -vt 0.921053 0.517857 -vt 0.921053 0.303571 -vt 0.907895 0.517857 -vt 0.894737 0.303571 -vt 0.907895 0.303571 -vt 0.894737 0.517857 -vt 0.881579 0.303571 -vt 0.881579 0.517857 -vt 0.868421 0.303571 -vt 0.868421 0.517857 -vt 0.855263 0.303571 -vt 0.855263 0.517857 -vt 0.842105 0.303571 -vt 0.921053 0.517857 -vt 0.921053 0.303571 -vt 0.157895 0.428571 -vt 0.513158 0.428571 -vt 0.197368 0.428571 -vt 0.552632 0.428571 -vt 0.236842 0.428571 -vt 0.592105 0.428571 -vt 0.276316 0.428571 -vt 0.315789 0.428571 -vt 0.039474 0.428571 -vt 0.355263 0.428571 -vt 0.078947 0.428571 -vt 0.394737 0.428571 -vt 0.118421 0.428571 -vt 0.473684 0.428571 -vt 0.434211 0.428571 -vt 0.000000 -0.000000 -vt 0.842105 0.517857 -vt 0.421053 -0.000000 -vt 0.842105 0.517857 -vt 0.842105 0.517857 -vt 0.842105 0.517857 -vn 0.0000 -1.0000 0.0000 -vn -0.9991 0.0000 -0.0416 -vn 0.9991 0.0000 -0.0416 -vn 0.0000 0.8321 -0.5547 -vn 0.0000 -0.8321 -0.5547 -vn 0.0000 0.8944 -0.4472 -vn 0.9995 0.0000 -0.0312 -vn -0.9995 0.0000 -0.0312 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.8944 0.4472 -vn -0.9995 -0.0000 0.0312 -vn 0.9995 -0.0000 0.0312 -vn -0.4472 0.8944 0.0000 -vn -0.0312 0.0000 -0.9995 -vn -0.0312 -0.0000 0.9995 -vn 0.4472 0.8944 0.0000 -vn 0.0312 -0.0000 0.9995 -vn 0.0312 0.0000 -0.9995 -vn 0.9991 -0.0000 0.0416 -vn -0.9991 -0.0000 0.0416 -vn 0.0000 0.8321 0.5547 -vn 0.0000 -0.8321 0.5547 -vn -0.0416 -0.0000 0.9991 -vn -0.0416 0.0000 -0.9991 -vn -0.5547 0.8321 0.0000 -vn -0.5547 -0.8321 0.0000 -vn 0.0416 0.0000 -0.9991 -vn 0.0416 -0.0000 0.9991 -vn 0.5547 0.8321 0.0000 -vn 0.5547 -0.8321 0.0000 -vn 0.3713 0.2425 -0.8963 -vn 0.0000 0.2425 -0.9701 -vn 0.6860 0.2425 -0.6860 -vn 0.8963 0.2425 -0.3713 -vn 0.9701 0.2425 -0.0000 -vn 0.8963 0.2425 0.3713 -vn 0.6860 0.2425 0.6860 -vn 0.3713 0.2425 0.8963 -vn 0.0000 0.2425 0.9701 -vn -0.3713 0.2425 0.8963 -vn -0.6860 0.2425 0.6860 -vn -0.8963 0.2425 0.3713 -vn -0.9701 0.2425 -0.0000 -vn -0.8963 0.2425 -0.3713 -vn -0.6860 0.2425 -0.6860 -vn -0.3713 0.2425 -0.8963 -vn -0.9239 0.0000 -0.3827 -vn -1.0000 -0.0000 -0.0000 -vn 0.9239 0.0000 0.3827 -vn 1.0000 -0.0000 0.0000 -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.3827 0.0000 -0.9239 -vn -0.0000 -0.0000 1.0000 -vn -0.0000 0.0000 -1.0000 -vn -0.3827 0.0000 -0.9239 -vn 0.3827 -0.0000 0.9239 -vn -0.7071 0.0000 -0.7071 -vn 0.7071 -0.0000 0.7071 -vn 0.0000 -0.1240 0.9923 -vn 0.3797 -0.1240 0.9167 -vn -0.3797 -0.1240 -0.9167 -vn -0.7016 -0.1240 -0.7016 -vn 0.7016 -0.1240 0.7016 -vn -0.9167 -0.1240 -0.3797 -vn 0.9167 -0.1240 0.3797 -vn -0.9923 -0.1240 0.0000 -vn 0.9923 -0.1240 -0.0000 -vn -0.9167 -0.1240 0.3797 -vn 0.9167 -0.1240 -0.3797 -vn -0.7016 -0.1240 0.7016 -vn 0.7016 -0.1240 -0.7016 -vn -0.3797 -0.1240 0.9167 -vn 0.3797 -0.1240 -0.9167 -vn 0.0000 -0.1240 -0.9923 -vn 0.0127 0.3525 -0.9357 -vn -0.1164 0.9864 0.1164 -vn 0.3598 0.3824 -0.8511 -vn 0.6504 0.3925 -0.6504 -vn 0.8511 0.3824 -0.3598 -vn 0.9357 0.3525 -0.0127 -vn 0.8863 0.3053 0.3484 -vn 0.6991 0.2457 0.6714 -vn 0.3936 0.1823 0.9010 -vn 0.0149 0.1259 0.9919 -vn -0.3736 0.0869 0.9235 -vn -0.7052 0.0730 0.7052 -vn -0.9235 0.0869 0.3736 -vn -0.9919 0.1259 -0.0149 -vn -0.9010 0.1823 -0.3936 -vn -0.6714 0.2457 -0.6991 -vn -0.3484 0.3053 -0.8863 -vn 0.6325 0.4472 -0.6325 -vn 0.8263 0.4472 -0.3423 -vn 0.3423 0.4472 -0.8263 -vn 0.0000 0.4472 -0.8944 -vn -0.3423 0.4472 -0.8263 -vn -0.6325 0.4472 -0.6325 -vn -0.8263 0.4472 0.3423 -vn -0.8944 0.4472 0.0000 -vn -0.8263 0.4472 -0.3423 -vn -0.6325 0.4472 0.6325 -vn -0.3423 0.4472 0.8263 -vn -0.0000 0.4472 0.8944 -vn 0.3423 0.4472 0.8263 -vn 0.6325 0.4472 0.6325 -vn 0.8263 0.4472 0.3423 -vn 0.8944 0.4472 0.0000 -vn -0.5000 0.0000 -0.8660 -vn 0.5000 0.0000 -0.8660 -vn 0.5000 -0.0000 0.8660 -vn -0.5000 -0.0000 0.8660 -vn -0.0127 0.3525 0.9357 -vn 0.1164 0.9864 -0.1164 -vn -0.3598 0.3824 0.8511 -vn -0.6504 0.3925 0.6504 -vn -0.8511 0.3824 0.3598 -vn -0.9357 0.3525 0.0127 -vn -0.8863 0.3053 -0.3484 -vn -0.6991 0.2457 -0.6714 -vn -0.3936 0.1823 -0.9010 -vn -0.0149 0.1259 -0.9919 -vn 0.3736 0.0869 -0.9235 -vn 0.7052 0.0730 -0.7052 -vn 0.9235 0.0869 -0.3736 -vn 0.9919 0.1259 0.0149 -vn 0.9010 0.1823 0.3936 -vn 0.6714 0.2457 0.6991 -vn 0.3484 0.3053 0.8863 -vn -0.9357 0.3525 -0.0127 -vn 0.1164 0.9864 0.1164 -vn -0.8511 0.3824 -0.3598 -vn -0.6504 0.3925 -0.6504 -vn -0.3598 0.3824 -0.8511 -vn -0.0127 0.3525 -0.9357 -vn 0.3484 0.3053 -0.8863 -vn 0.6714 0.2457 -0.6991 -vn 0.9010 0.1823 -0.3936 -vn 0.9919 0.1259 -0.0149 -vn 0.9235 0.0869 0.3736 -vn 0.7052 0.0730 0.7052 -vn 0.3736 0.0869 0.9235 -vn -0.0149 0.1259 0.9919 -vn -0.3936 0.1823 0.9010 -vn -0.6991 0.2457 0.6714 -vn -0.8863 0.3053 0.3484 -vn 0.9357 0.3525 0.0127 -vn -0.1164 0.9864 -0.1164 -vn 0.8511 0.3824 0.3598 -vn 0.6504 0.3925 0.6504 -vn 0.3598 0.3824 0.8511 -vn 0.0127 0.3525 0.9357 -vn -0.3484 0.3053 0.8863 -vn -0.6714 0.2457 0.6991 -vn -0.9010 0.1823 0.3936 -vn -0.9919 0.1259 0.0149 -vn -0.9235 0.0869 -0.3736 -vn -0.7052 0.0730 -0.7052 -vn -0.3736 0.0869 -0.9235 -vn 0.0149 0.1259 -0.9919 -vn 0.3936 0.1823 -0.9010 -vn 0.6991 0.2457 -0.6714 -vn 0.8863 0.3053 -0.3484 -vn -0.8660 0.0000 0.5000 -vn -0.8660 0.0000 -0.5000 -vn 0.8660 -0.0000 -0.5000 -vn 0.8660 -0.0000 0.5000 -s off -f 4122/5862/512 4123/5863/512 4124/5864/512 -f 4125/5865/512 4126/5866/512 4127/5867/512 -f 4128/5868/512 4127/5869/512 4129/5870/512 -f 4128/5868/512 4130/5871/512 4131/5872/512 -f 4131/5872/512 4132/5873/512 4133/5874/512 -f 4134/5875/512 4132/5876/512 4135/5877/512 -f 4136/5878/512 4135/5879/512 4137/5880/512 -f 4138/5881/512 4137/5882/512 4139/5883/512 -f 4138/5881/512 4140/5884/512 4141/5885/512 -f 4142/5886/512 4140/5887/512 4143/5888/512 -f 4144/5889/512 4143/5890/512 4145/5891/512 -f 4144/5889/512 4146/5892/512 4147/5893/512 -f 4147/5893/512 4148/5894/512 4149/5895/512 -f 4150/5896/512 4151/5897/512 4152/5898/512 -f 4153/5899/512 4148/5900/512 4154/5901/512 -f 4152/5898/512 4126/5902/512 4155/5903/512 -f 4153/5899/512 4156/5904/512 4150/5896/512 -f 4157/5905/512 4158/5906/512 4159/5907/512 -f 4160/5908/513 4161/5909/513 4162/5910/513 -f 4163/5911/514 4164/5912/514 4161/5909/514 -f 4165/5913/515 4163/5914/515 4160/5915/515 -f 4164/5912/516 4162/5916/516 4161/5917/516 -f 4166/5918/512 4167/5919/512 4168/5920/512 -f 4169/5921/517 4170/5922/517 4171/5923/517 -f 4170/5924/518 4166/5918/518 4168/5920/518 -f 4167/5925/519 4170/5924/519 4168/5920/519 -f 4172/5926/520 4173/5927/520 4174/5928/520 -f 4175/5929/512 4176/5930/512 4177/5931/512 -f 4178/5932/512 4179/5933/512 4180/5934/512 -f 4181/5935/512 4180/5936/512 4182/5937/512 -f 4181/5935/512 4183/5938/512 4184/5939/512 -f 4184/5939/512 4185/5940/512 4186/5941/512 -f 4187/5942/512 4185/5943/512 4188/5944/512 -f 4189/5945/512 4188/5946/512 4190/5947/512 -f 4191/5948/512 4190/5949/512 4192/5950/512 -f 4191/5948/512 4193/5951/512 4194/5952/512 -f 4195/5953/512 4193/5954/512 4196/5955/512 -f 4197/5956/512 4196/5957/512 4198/5958/512 -f 4197/5956/512 4199/5959/512 4200/5960/512 -f 4200/5960/512 4201/5961/512 4202/5962/512 -f 4203/5963/512 4204/5964/512 4205/5965/512 -f 4206/5966/512 4201/5967/512 4207/5968/512 -f 4205/5965/512 4179/5969/512 4208/5970/512 -f 4206/5966/512 4209/5971/512 4203/5963/512 -f 4210/5972/512 4211/5973/512 4212/5974/512 -f 4213/5975/512 4214/5976/512 4215/5977/512 -f 4216/5978/521 4217/5979/521 4218/5980/521 -f 4217/5981/522 4213/5975/522 4215/5977/522 -f 4214/5982/523 4217/5981/523 4215/5977/523 -f 4219/5983/512 4220/5984/512 4221/5985/512 -f 4222/5986/512 4221/5987/512 4223/5988/512 -f 4222/5986/512 4224/5989/512 4225/5990/512 -f 4225/5990/512 4226/5991/512 4227/5992/512 -f 4228/5993/512 4226/5994/512 4229/5995/512 -f 4230/5996/512 4229/5997/512 4231/5998/512 -f 4232/5999/512 4231/6000/512 4233/6001/512 -f 4232/5999/512 4234/6002/512 4235/6003/512 -f 4236/6004/512 4234/6005/512 4237/6006/512 -f 4236/6004/512 4238/6007/512 4239/6008/512 -f 4239/6008/512 4240/6009/512 4241/6010/512 -f 4241/6010/512 4242/6011/512 4243/6012/512 -f 4244/6013/512 4245/6014/512 4246/6015/512 -f 4247/6016/512 4242/6017/512 4248/6018/512 -f 4246/6015/512 4220/6019/512 4249/6020/512 -f 4247/6016/512 4250/6021/512 4244/6013/512 -f 4251/6022/512 4252/6023/512 4253/6024/512 -f 4254/6025/512 4255/6026/512 4256/6027/512 -f 4257/6028/524 4258/6029/524 4259/6030/524 -f 4258/6031/525 4254/6025/525 4256/6027/525 -f 4255/6032/526 4258/6031/526 4256/6027/526 -f 4260/6033/512 4261/6034/512 4262/6035/512 -f 4263/6036/512 4262/6037/512 4264/6038/512 -f 4263/6036/512 4265/6039/512 4266/6040/512 -f 4266/6040/512 4267/6041/512 4268/6042/512 -f 4269/6043/512 4267/6044/512 4270/6045/512 -f 4271/6046/512 4270/6047/512 4272/6048/512 -f 4273/6049/512 4272/6050/512 4274/6051/512 -f 4273/6049/512 4275/6052/512 4276/6053/512 -f 4277/6054/512 4275/6055/512 4278/6056/512 -f 4279/6057/512 4278/6058/512 4280/6059/512 -f 4279/6057/512 4281/6060/512 4282/6061/512 -f 4282/6061/512 4283/6062/512 4284/6063/512 -f 4285/6064/512 4286/6065/512 4287/6066/512 -f 4288/6067/512 4283/6068/512 4289/6069/512 -f 4287/6066/512 4261/6070/512 4290/6071/512 -f 4285/6064/512 4289/6072/512 4291/6073/512 -f 4292/6074/512 4293/6075/512 4294/6076/512 -f 4295/6077/512 4296/6078/512 4297/6079/512 -f 4298/6080/527 4299/6081/527 4300/6082/527 -f 4299/6083/528 4295/6077/528 4297/6079/528 -f 4296/6084/529 4299/6083/529 4297/6079/529 -f 4301/6085/530 4302/6086/530 4303/6087/530 -f 4304/6088/531 4305/6089/531 4302/6086/531 -f 4306/6090/532 4304/6091/532 4301/6092/532 -f 4305/6089/533 4303/6093/533 4302/6094/533 -f 4307/6095/520 4308/6096/520 4309/6097/520 -f 4310/6098/512 4311/6099/512 4312/6100/512 -f 4313/6101/534 4314/6102/534 4315/6103/534 -f 4316/6104/535 4317/6105/535 4314/6102/535 -f 4318/6106/536 4316/6107/536 4313/6108/536 -f 4317/6105/537 4315/6109/537 4314/6110/537 -f 4319/6111/520 4320/6112/520 4321/6113/520 -f 4322/6114/512 4323/6115/512 4324/6116/512 -f 4325/6117/538 4326/6118/538 4327/6119/538 -f 4326/6118/539 4328/6120/539 4327/6119/539 -f 4329/6121/540 4326/6122/540 4330/6123/540 -f 4328/6120/541 4325/6124/541 4327/6125/541 -f 4331/6126/520 4332/6127/520 4333/6128/520 -f 4334/6129/512 4335/6130/512 4336/6131/512 -f 4122/5862/512 4337/6132/512 4338/6133/512 -f 4338/6133/512 4339/6134/512 4122/5862/512 -f 4339/6134/512 4123/5863/512 4122/5862/512 -f 4123/5863/512 4340/6135/512 4341/6136/512 -f 4341/6136/512 4342/6137/512 4124/5864/512 -f 4124/5864/512 4343/6138/512 4344/6139/512 -f 4344/6139/512 4345/6140/512 4346/6141/512 -f 4346/6141/512 4347/6142/512 4122/5862/512 -f 4347/6142/512 4348/6143/512 4122/5862/512 -f 4348/6143/512 4349/6144/512 4122/5862/512 -f 4123/5863/512 4341/6136/512 4124/5864/512 -f 4124/5864/512 4344/6139/512 4122/5862/512 -f 4344/6139/512 4346/6141/512 4122/5862/512 -f 4125/5865/512 4155/6145/512 4126/5866/512 -f 4128/5868/512 4125/5865/512 4127/5869/512 -f 4128/5868/512 4129/6146/512 4130/5871/512 -f 4131/5872/512 4130/6147/512 4132/5873/512 -f 4134/5875/512 4133/5874/512 4132/5876/512 -f 4136/5878/512 4134/5875/512 4135/5879/512 -f 4138/5881/512 4136/5878/512 4137/5882/512 -f 4138/5881/512 4139/6148/512 4140/5884/512 -f 4142/5886/512 4141/5885/512 4140/5887/512 -f 4144/5889/512 4142/5886/512 4143/5890/512 -f 4144/5889/512 4145/6149/512 4146/5892/512 -f 4147/5893/512 4146/6150/512 4148/5894/512 -f 4150/5896/512 4156/6151/512 4151/5897/512 -f 4153/5899/512 4149/5895/512 4148/5900/512 -f 4152/5898/512 4151/6152/512 4126/5902/512 -f 4153/5899/512 4154/6153/512 4156/5904/512 -f 4159/5907/512 4350/6154/512 4351/6155/512 -f 4351/6155/512 4352/6156/512 4159/5907/512 -f 4352/6156/512 4353/6157/512 4159/5907/512 -f 4353/6157/512 4354/6158/512 4355/6159/512 -f 4355/6159/512 4356/6160/512 4157/5905/512 -f 4157/5905/512 4357/6161/512 4158/5906/512 -f 4357/6161/512 4358/6162/512 4158/5906/512 -f 4358/6162/512 4359/6163/512 4158/5906/512 -f 4158/5906/512 4360/6164/512 4361/6165/512 -f 4361/6165/512 4362/6166/512 4159/5907/512 -f 4353/6157/512 4355/6159/512 4159/5907/512 -f 4355/6159/512 4157/5905/512 4159/5907/512 -f 4158/5906/512 4361/6165/512 4159/5907/512 -f 4160/5908/513 4163/5911/513 4161/5909/513 -f 4163/5911/514 4165/5913/514 4164/5912/514 -f 4170/5924/518 4169/5921/518 4166/5918/518 -f 4167/5925/519 4171/6167/519 4170/5924/519 -f 4174/5928/520 4363/6168/520 4172/5926/520 -f 4172/5926/520 4364/6169/520 4173/5927/520 -f 4173/5927/520 4365/6170/520 4174/5928/520 -f 4177/5931/512 4366/6171/512 4367/6172/512 -f 4367/6172/512 4368/6173/512 4177/5931/512 -f 4368/6173/512 4175/5929/512 4177/5931/512 -f 4178/5932/512 4208/6174/512 4179/5933/512 -f 4181/5935/512 4178/5932/512 4180/5936/512 -f 4181/5935/512 4182/6175/512 4183/5938/512 -f 4184/5939/512 4183/6176/512 4185/5940/512 -f 4187/5942/512 4186/5941/512 4185/5943/512 -f 4189/5945/512 4187/5942/512 4188/5946/512 -f 4191/5948/512 4189/5945/512 4190/5949/512 -f 4191/5948/512 4192/6177/512 4193/5951/512 -f 4195/5953/512 4194/5952/512 4193/5954/512 -f 4197/5956/512 4195/5953/512 4196/5957/512 -f 4197/5956/512 4198/6178/512 4199/5959/512 -f 4200/5960/512 4199/6179/512 4201/5961/512 -f 4203/5963/512 4209/6180/512 4204/5964/512 -f 4206/5966/512 4202/5962/512 4201/5967/512 -f 4205/5965/512 4204/6181/512 4179/5969/512 -f 4206/5966/512 4207/6182/512 4209/5971/512 -f 4212/5974/512 4369/6183/512 4370/6184/512 -f 4370/6184/512 4371/6185/512 4372/6186/512 -f 4372/6186/512 4373/6187/512 4374/6188/512 -f 4374/6188/512 4375/6189/512 4376/6190/512 -f 4376/6190/512 4377/6191/512 4378/6192/512 -f 4378/6192/512 4379/6193/512 4210/5972/512 -f 4210/5972/512 4380/6194/512 4211/5973/512 -f 4211/5973/512 4381/6195/512 4212/5974/512 -f 4212/5974/512 4370/6184/512 4376/6190/512 -f 4370/6184/512 4372/6186/512 4376/6190/512 -f 4372/6186/512 4374/6188/512 4376/6190/512 -f 4376/6190/512 4378/6192/512 4212/5974/512 -f 4378/6192/512 4210/5972/512 4212/5974/512 -f 4217/5981/522 4216/5978/522 4213/5975/522 -f 4214/5982/523 4218/6196/523 4217/5981/523 -f 4219/5983/512 4249/6197/512 4220/5984/512 -f 4222/5986/512 4219/5983/512 4221/5987/512 -f 4222/5986/512 4223/6198/512 4224/5989/512 -f 4225/5990/512 4224/6199/512 4226/5991/512 -f 4228/5993/512 4227/5992/512 4226/5994/512 -f 4230/5996/512 4228/5993/512 4229/5997/512 -f 4232/5999/512 4230/5996/512 4231/6000/512 -f 4232/5999/512 4233/6200/512 4234/6002/512 -f 4236/6004/512 4235/6003/512 4234/6005/512 -f 4236/6004/512 4237/6201/512 4238/6007/512 -f 4239/6008/512 4238/6202/512 4240/6009/512 -f 4241/6010/512 4240/6203/512 4242/6011/512 -f 4244/6013/512 4250/6204/512 4245/6014/512 -f 4247/6016/512 4243/6012/512 4242/6017/512 -f 4246/6015/512 4245/6205/512 4220/6019/512 -f 4247/6016/512 4248/6206/512 4250/6021/512 -f 4253/6024/512 4382/6207/512 4383/6208/512 -f 4383/6208/512 4384/6209/512 4385/6210/512 -f 4385/6210/512 4386/6211/512 4387/6212/512 -f 4387/6212/512 4388/6213/512 4251/6022/512 -f 4251/6022/512 4389/6214/512 4252/6023/512 -f 4389/6214/512 4390/6215/512 4252/6023/512 -f 4390/6215/512 4391/6216/512 4252/6023/512 -f 4252/6023/512 4392/6217/512 4393/6218/512 -f 4393/6218/512 4394/6219/512 4253/6024/512 -f 4253/6024/512 4383/6208/512 4385/6210/512 -f 4385/6210/512 4387/6212/512 4253/6024/512 -f 4387/6212/512 4251/6022/512 4253/6024/512 -f 4252/6023/512 4393/6218/512 4253/6024/512 -f 4258/6031/525 4257/6028/525 4254/6025/525 -f 4255/6032/526 4259/6220/526 4258/6031/526 -f 4260/6033/512 4290/6221/512 4261/6034/512 -f 4263/6036/512 4260/6033/512 4262/6037/512 -f 4263/6036/512 4264/6222/512 4265/6039/512 -f 4266/6040/512 4265/6223/512 4267/6041/512 -f 4269/6043/512 4268/6042/512 4267/6044/512 -f 4271/6046/512 4269/6043/512 4270/6047/512 -f 4273/6049/512 4271/6046/512 4272/6050/512 -f 4273/6049/512 4274/6224/512 4275/6052/512 -f 4277/6054/512 4276/6053/512 4275/6055/512 -f 4279/6057/512 4277/6054/512 4278/6058/512 -f 4279/6057/512 4280/6225/512 4281/6060/512 -f 4282/6061/512 4281/6226/512 4283/6062/512 -f 4285/6064/512 4291/6227/512 4286/6065/512 -f 4288/6067/512 4284/6063/512 4283/6068/512 -f 4287/6066/512 4286/6228/512 4261/6070/512 -f 4285/6064/512 4288/6067/512 4289/6072/512 -f 4294/6076/512 4395/6229/512 4396/6230/512 -f 4396/6230/512 4397/6231/512 4294/6076/512 -f 4397/6231/512 4398/6232/512 4294/6076/512 -f 4398/6232/512 4399/6233/512 4400/6234/512 -f 4400/6234/512 4401/6235/512 4292/6074/512 -f 4292/6074/512 4402/6236/512 4293/6075/512 -f 4402/6236/512 4403/6237/512 4293/6075/512 -f 4403/6237/512 4404/6238/512 4293/6075/512 -f 4293/6075/512 4405/6239/512 4406/6240/512 -f 4406/6240/512 4407/6241/512 4294/6076/512 -f 4398/6232/512 4400/6234/512 4294/6076/512 -f 4400/6234/512 4292/6074/512 4294/6076/512 -f 4293/6075/512 4406/6240/512 4294/6076/512 -f 4299/6083/528 4298/6080/528 4295/6077/528 -f 4296/6084/529 4300/6242/529 4299/6083/529 -f 4301/6085/530 4304/6088/530 4302/6086/530 -f 4304/6088/531 4306/6090/531 4305/6089/531 -f 4308/6096/520 4408/6243/520 4309/6097/520 -f 4309/6097/520 4409/6244/520 4410/6245/520 -f 4410/6245/520 4307/6095/520 4309/6097/520 -f 4312/6100/512 4411/6246/512 4412/6247/512 -f 4412/6247/512 4413/6248/512 4312/6100/512 -f 4413/6248/512 4310/6098/512 4312/6100/512 -f 4313/6101/534 4316/6104/534 4314/6102/534 -f 4316/6104/535 4318/6106/535 4317/6105/535 -f 4321/6113/520 4414/6249/520 4319/6111/520 -f 4319/6111/520 4415/6250/520 4320/6112/520 -f 4320/6112/520 4416/6251/520 4321/6113/520 -f 4324/6116/512 4417/6252/512 4418/6253/512 -f 4418/6253/512 4419/6254/512 4324/6116/512 -f 4419/6254/512 4322/6114/512 4324/6116/512 -f 4325/6117/538 4330/6255/538 4326/6118/538 -f 4326/6118/539 4329/6121/539 4328/6120/539 -f 4333/6128/520 4420/6256/520 4331/6126/520 -f 4331/6126/520 4421/6257/520 4332/6127/520 -f 4332/6127/520 4422/6258/520 4333/6128/520 -f 4336/6131/512 4423/6259/512 4424/6260/512 -f 4424/6260/512 4425/6261/512 4336/6131/512 -f 4425/6261/512 4334/6129/512 4336/6131/512 -s 1 -f 4426/6262/542 4427/6263/543 4428/6264/520 -f 4429/6265/544 4426/6262/542 4428/6266/520 -f 4430/6267/545 4429/6265/544 4428/6268/520 -f 4431/6269/546 4430/6267/545 4428/6270/520 -f 4432/6271/547 4431/6269/546 4428/6272/520 -f 4433/6273/548 4432/6271/547 4428/6274/520 -f 4434/6275/549 4433/6273/548 4428/6276/520 -f 4435/6277/550 4434/6275/549 4428/6278/520 -f 4435/6277/550 4428/6279/520 4436/6280/551 -f 4437/6281/552 4436/6280/551 4428/6282/520 -f 4438/6283/553 4437/6281/552 4428/6284/520 -f 4439/6285/554 4438/6283/553 4428/6286/520 -f 4440/6287/555 4439/6288/554 4428/6289/520 -f 4441/6290/556 4440/6287/555 4428/6291/520 -f 4442/6292/557 4441/6290/556 4428/6293/520 -f 4427/6263/543 4442/6292/557 4428/6294/520 -f 4440/6287/558 4443/6295/559 4439/6288/559 -f 4432/6271/560 4444/6296/561 4431/6269/561 -f 4439/6285/559 4445/6297/562 4438/6283/562 -f 4431/6269/561 4446/6298/563 4430/6267/563 -f 4438/6283/562 4447/6299/564 4437/6281/564 -f 4430/6267/563 4448/6300/565 4429/6265/565 -f 4437/6281/564 4449/6301/566 4436/6280/566 -f 4429/6265/565 4450/6302/567 4426/6262/567 -f 4436/6280/566 4451/6303/568 4435/6277/568 -f 4427/6263/569 4452/6304/570 4442/6292/570 -f 4426/6262/567 4453/6305/569 4427/6263/569 -f 4435/6277/568 4454/6306/571 4434/6275/571 -f 4442/6292/570 4455/6307/572 4441/6290/572 -f 4434/6275/571 4456/6308/573 4433/6273/573 -f 4441/6290/572 4457/6309/558 4440/6287/558 -f 4433/6273/573 4458/6310/560 4432/6271/560 -f 4451/6303/574 4459/6311/575 4454/6306/575 -f 4452/6304/576 4460/6312/577 4455/6307/577 -f 4454/6306/575 4461/6313/578 4456/6308/578 -f 4455/6307/577 4462/6314/579 4457/6309/579 -f 4456/6308/578 4463/6315/580 4458/6310/580 -f 4457/6309/579 4464/6316/581 4443/6295/581 -f 4458/6310/580 4465/6317/582 4444/6296/582 -f 4443/6318/581 4466/6319/583 4445/6297/583 -f 4444/6296/582 4467/6320/584 4446/6298/584 -f 4445/6297/583 4468/6321/585 4447/6299/585 -f 4446/6298/584 4469/6322/586 4448/6300/586 -f 4447/6299/585 4470/6323/587 4449/6301/587 -f 4448/6300/586 4471/6324/588 4450/6302/588 -f 4449/6301/587 4472/6325/574 4451/6303/574 -f 4453/6305/589 4473/6326/576 4452/6304/576 -f 4450/6302/588 4474/6327/589 4453/6305/589 -f 4467/6328/563 4123/6329/565 4469/6330/565 -f 4468/6331/564 4345/6332/566 4470/6333/566 -f 4469/6330/565 4339/6334/567 4471/6335/567 -f 4470/6333/566 4344/6336/568 4472/6337/568 -f 4474/6338/569 4337/6339/570 4473/6340/570 -f 4471/6335/567 4338/6341/569 4474/6338/569 -f 4472/6337/568 4343/6342/571 4459/6343/571 -f 4473/6340/570 4122/6344/572 4460/6345/572 -f 4459/6343/571 4124/6346/573 4461/6347/573 -f 4460/6345/572 4349/6348/558 4462/6349/558 -f 4461/6347/573 4342/6350/560 4463/6351/560 -f 4462/6349/558 4348/6352/559 4464/6353/559 -f 4463/6351/560 4341/6354/561 4465/6355/561 -f 4464/6356/559 4347/6357/562 4466/6319/562 -f 4465/6355/561 4340/6358/563 4467/6328/563 -f 4466/6319/562 4346/6359/564 4468/6331/564 -f 4155/5903/564 4475/6360/562 4152/5898/562 -f 4141/5885/565 4476/6361/563 4138/5881/563 -f 4125/5865/566 4477/6362/564 4155/6145/564 -f 4142/5886/567 4478/6363/565 4141/5885/565 -f 4128/5868/568 4479/6364/566 4125/5865/566 -f 4144/5889/569 4480/6365/567 4142/5886/567 -f 4131/5872/571 4481/6366/568 4128/5868/568 -f 4147/5893/570 4482/6367/569 4144/5889/569 -f 4133/5874/573 4483/6368/571 4131/5872/571 -f 4149/5895/572 4484/6369/570 4147/5893/570 -f 4134/5875/560 4485/6370/573 4133/5874/573 -f 4153/5899/558 4486/6371/572 4149/5895/572 -f 4136/5878/561 4487/6372/560 4134/5875/560 -f 4152/5898/562 4488/6373/559 4150/5896/559 -f 4150/5896/559 4489/6374/558 4153/5899/558 -f 4138/5881/563 4490/6375/561 4136/5878/561 -f 4482/6367/590 4491/6376/591 4480/6365/592 -f 4478/6363/593 4480/6365/592 4491/6377/591 -f 4476/6361/594 4478/6363/593 4491/6378/591 -f 4490/6375/595 4476/6361/594 4491/6379/591 -f 4487/6372/596 4490/6375/595 4491/6380/591 -f 4485/6370/597 4487/6372/596 4491/6381/591 -f 4483/6368/598 4485/6370/597 4491/6382/591 -f 4481/6366/599 4483/6368/598 4491/6383/591 -f 4479/6364/600 4481/6366/599 4491/6384/591 -f 4477/6362/601 4479/6364/600 4491/6385/591 -f 4475/6360/602 4477/6386/601 4491/6387/591 -f 4488/6373/603 4475/6360/602 4491/6388/591 -f 4489/6374/604 4488/6373/603 4491/6389/591 -f 4486/6371/605 4489/6374/604 4491/6390/591 -f 4484/6369/606 4486/6371/605 4491/6391/591 -f 4482/6367/590 4484/6369/606 4491/6392/591 -f 4140/5884/607 4357/6393/608 4157/6394/607 -f 4140/5887/607 4356/6395/609 4143/5888/609 -f 4143/5890/609 4355/6396/610 4145/5891/610 -f 4145/6149/610 4354/6397/611 4146/5892/611 -f 4148/5894/612 4354/6397/611 4353/6398/612 -f 4151/5897/613 4351/6399/614 4350/6400/613 -f 4148/5900/612 4352/6401/615 4154/5901/615 -f 4151/6152/613 4159/6402/616 4126/5902/616 -f 4154/6153/615 4351/6399/614 4156/5904/614 -f 4127/5867/617 4159/6403/616 4362/6404/617 -f 4127/5869/617 4361/6405/618 4129/5870/618 -f 4129/6146/618 4360/6406/619 4130/5871/619 -f 4130/6147/619 4158/6407/620 4132/5873/620 -f 4132/5876/620 4359/6408/621 4135/5877/621 -f 4135/5879/621 4358/6409/622 4137/5880/622 -f 4137/5882/622 4357/6393/608 4139/5883/608 -f 4172/6410/559 4367/6411/623 4366/6412/559 -f 4363/6413/623 4368/6414/624 4367/6411/623 -f 4174/6415/624 4175/6416/561 4368/6414/624 -f 4365/6417/561 4176/6418/625 4175/6416/561 -f 4173/6419/625 4177/6420/626 4176/6418/625 -f 4364/6421/626 4366/6412/559 4177/6422/626 -f 4208/5970/565 4492/6423/563 4205/5965/563 -f 4194/5952/564 4493/6424/562 4191/5948/562 -f 4178/5932/567 4494/6425/565 4208/6174/565 -f 4195/5953/566 4495/6426/564 4194/5952/564 -f 4181/5935/569 4496/6427/567 4178/5932/567 -f 4197/5956/568 4497/6428/566 4195/5953/566 -f 4184/5939/570 4498/6429/569 4181/5935/569 -f 4200/5960/571 4499/6430/568 4197/5956/568 -f 4186/5941/572 4500/6431/570 4184/5939/570 -f 4202/5962/573 4501/6432/571 4200/5960/571 -f 4187/5942/558 4502/6433/572 4186/5941/572 -f 4206/5966/560 4503/6434/573 4202/5962/573 -f 4189/5945/559 4504/6435/558 4187/5942/558 -f 4205/5965/563 4505/6436/561 4203/5963/561 -f 4203/5963/561 4506/6437/560 4206/5966/560 -f 4191/5948/562 4507/6438/559 4189/5945/559 -f 4499/6430/627 4508/6439/628 4497/6428/629 -f 4495/6426/630 4497/6428/629 4508/6440/628 -f 4493/6424/631 4495/6426/630 4508/6441/628 -f 4507/6438/632 4493/6424/631 4508/6442/628 -f 4504/6435/633 4507/6438/632 4508/6443/628 -f 4502/6433/634 4504/6435/633 4508/6444/628 -f 4500/6431/635 4502/6433/634 4508/6445/628 -f 4498/6429/636 4500/6431/635 4508/6446/628 -f 4496/6427/637 4498/6429/636 4508/6447/628 -f 4494/6425/638 4496/6427/637 4508/6448/628 -f 4492/6423/639 4494/6449/638 4508/6450/628 -f 4505/6436/640 4492/6423/639 4508/6451/628 -f 4506/6437/641 4505/6436/640 4508/6452/628 -f 4503/6434/642 4506/6437/641 4508/6453/628 -f 4501/6432/643 4503/6434/642 4508/6454/628 -f 4499/6430/627 4501/6432/643 4508/6455/628 -f 4193/5951/616 4377/6456/613 4376/6457/616 -f 4193/5954/616 4375/6458/617 4196/5955/617 -f 4196/5957/617 4374/6459/618 4198/5958/618 -f 4199/5959/619 4374/6459/618 4373/6460/619 -f 4201/5961/620 4373/6460/619 4372/6461/620 -f 4209/6180/622 4369/6462/608 4204/5964/608 -f 4201/5967/620 4371/6463/621 4207/5968/621 -f 4179/5969/607 4369/6462/608 4212/6464/607 -f 4207/6182/621 4370/6465/622 4209/5971/622 -f 4179/5933/607 4381/6466/609 4180/5934/609 -f 4180/5936/609 4211/6467/610 4182/5937/610 -f 4182/6175/610 4380/6468/611 4183/5938/611 -f 4183/6176/611 4210/6469/612 4185/5940/612 -f 4185/5943/612 4379/6470/615 4188/5944/615 -f 4188/5946/615 4378/6471/614 4190/5947/614 -f 4190/5949/614 4377/6456/613 4192/5950/613 -f 4249/6020/573 4509/6472/571 4246/6015/571 -f 4235/6003/572 4510/6473/570 4232/5999/570 -f 4219/5983/560 4511/6474/573 4249/6197/573 -f 4236/6004/558 4512/6475/572 4235/6003/572 -f 4222/5986/561 4513/6476/560 4219/5983/560 -f 4239/6008/559 4514/6477/558 4236/6004/558 -f 4225/5990/563 4515/6478/561 4222/5986/561 -f 4241/6010/562 4516/6479/559 4239/6008/559 -f 4227/5992/565 4517/6480/563 4225/5990/563 -f 4243/6012/564 4518/6481/562 4241/6010/562 -f 4228/5993/567 4519/6482/565 4227/5992/565 -f 4247/6016/566 4520/6483/564 4243/6012/564 -f 4230/5996/569 4521/6484/567 4228/5993/567 -f 4246/6015/571 4522/6485/568 4244/6013/568 -f 4244/6013/568 4523/6486/566 4247/6016/566 -f 4232/5999/570 4524/6487/569 4230/5996/569 -f 4516/6479/644 4525/6488/645 4514/6477/646 -f 4512/6475/647 4514/6477/646 4525/6489/645 -f 4510/6473/648 4512/6475/647 4525/6490/645 -f 4524/6487/649 4510/6473/648 4525/6491/645 -f 4521/6484/650 4524/6487/649 4525/6492/645 -f 4519/6482/651 4521/6484/650 4525/6493/645 -f 4517/6480/652 4519/6482/651 4525/6494/645 -f 4515/6478/653 4517/6480/652 4525/6495/645 -f 4513/6476/654 4515/6478/653 4525/6496/645 -f 4511/6474/655 4513/6476/654 4525/6497/645 -f 4509/6472/656 4511/6498/655 4525/6499/645 -f 4522/6485/657 4509/6472/656 4525/6500/645 -f 4523/6486/658 4522/6485/657 4525/6501/645 -f 4520/6483/659 4523/6486/658 4525/6502/645 -f 4518/6481/660 4520/6483/659 4525/6503/645 -f 4516/6479/644 4518/6481/660 4525/6504/645 -f 4233/6200/611 4251/6505/612 4234/6002/612 -f 4234/6005/612 4388/6506/615 4237/6006/615 -f 4237/6201/615 4387/6507/614 4238/6007/614 -f 4238/6202/614 4386/6508/613 4240/6009/613 -f 4242/6011/616 4386/6508/613 4385/6509/616 -f 4250/6204/618 4382/6510/619 4245/6014/619 -f 4242/6017/616 4384/6511/617 4248/6018/617 -f 4245/6205/619 4253/6512/620 4220/6019/620 -f 4248/6206/617 4383/6513/618 4250/6021/618 -f 4221/5985/621 4253/6514/620 4394/6515/621 -f 4221/5987/621 4393/6516/622 4223/5988/622 -f 4223/6198/622 4392/6517/608 4224/5989/608 -f 4224/6199/608 4252/6518/607 4226/5991/607 -f 4226/5994/607 4391/6519/609 4229/5995/609 -f 4229/5997/609 4390/6520/610 4231/5998/610 -f 4231/6000/610 4389/6521/611 4233/6001/611 -f 4290/6071/572 4526/6522/570 4287/6066/570 -f 4276/6053/573 4527/6523/571 4273/6049/571 -f 4260/6033/558 4528/6524/572 4290/6221/572 -f 4277/6054/560 4529/6525/573 4276/6053/573 -f 4263/6036/559 4530/6526/558 4260/6033/558 -f 4279/6057/561 4531/6527/560 4277/6054/560 -f 4266/6040/562 4532/6528/559 4263/6036/559 -f 4282/6061/563 4533/6529/561 4279/6057/561 -f 4268/6042/564 4534/6530/562 4266/6040/562 -f 4284/6063/565 4535/6531/563 4282/6061/563 -f 4269/6043/566 4536/6532/564 4268/6042/564 -f 4288/6067/567 4537/6533/565 4284/6063/565 -f 4271/6046/568 4538/6534/566 4269/6043/566 -f 4287/6066/570 4539/6535/569 4285/6064/569 -f 4285/6064/569 4540/6536/567 4288/6067/567 -f 4273/6049/571 4541/6537/568 4271/6046/568 -f 4533/6529/661 4542/6538/662 4531/6527/663 -f 4529/6525/664 4531/6527/663 4542/6539/662 -f 4527/6523/665 4529/6525/664 4542/6540/662 -f 4541/6537/666 4527/6523/665 4542/6541/662 -f 4538/6534/667 4541/6537/666 4542/6542/662 -f 4536/6532/668 4538/6534/667 4542/6543/662 -f 4534/6530/669 4536/6532/668 4542/6544/662 -f 4532/6528/670 4534/6530/669 4542/6545/662 -f 4530/6526/671 4532/6528/670 4542/6546/662 -f 4528/6524/672 4530/6526/671 4542/6547/662 -f 4526/6522/673 4528/6548/672 4542/6549/662 -f 4539/6535/674 4526/6522/673 4542/6550/662 -f 4540/6536/675 4539/6535/674 4542/6551/662 -f 4537/6533/676 4540/6536/675 4542/6552/662 -f 4535/6531/677 4537/6533/676 4542/6553/662 -f 4533/6529/661 4535/6531/677 4542/6554/662 -f 4275/6052/620 4402/6555/619 4292/6556/620 -f 4275/6055/620 4401/6557/621 4278/6056/621 -f 4278/6058/621 4400/6558/622 4280/6059/622 -f 4281/6060/608 4400/6558/622 4399/6559/608 -f 4281/6226/608 4398/6560/607 4283/6062/607 -f 4291/6227/610 4395/6561/611 4286/6065/611 -f 4289/6069/609 4398/6560/607 4397/6562/609 -f 4261/6070/612 4395/6561/611 4294/6563/612 -f 4289/6072/609 4396/6564/610 4291/6073/610 -f 4262/6035/615 4294/6565/612 4407/6566/615 -f 4262/6037/615 4406/6567/614 4264/6038/614 -f 4265/6039/613 4406/6567/614 4405/6568/613 -f 4265/6223/613 4293/6569/616 4267/6041/616 -f 4267/6044/616 4404/6570/617 4270/6045/617 -f 4270/6047/617 4403/6571/618 4272/6048/618 -f 4272/6050/618 4402/6555/619 4274/6051/619 -f 4309/6572/561 4412/6573/625 4411/6574/561 -f 4408/6575/625 4413/6576/626 4412/6573/625 -f 4308/6577/626 4310/6578/559 4413/6576/626 -f 4307/6579/559 4311/6580/623 4310/6578/559 -f 4410/6581/623 4312/6582/624 4311/6580/623 -f 4409/6583/624 4411/6574/561 4312/6584/624 -f 4319/6585/568 4418/6586/678 4417/6587/568 -f 4414/6588/678 4419/6589/679 4418/6586/678 -f 4321/6590/679 4322/6591/569 4419/6589/679 -f 4416/6592/569 4323/6593/680 4322/6591/569 -f 4320/6594/680 4324/6595/681 4323/6593/680 -f 4415/6596/681 4417/6587/568 4324/6597/681 -f 4331/6598/569 4424/6599/680 4423/6600/569 -f 4420/6601/680 4425/6602/681 4424/6599/680 -f 4333/6603/681 4334/6604/568 4425/6602/681 -f 4422/6605/568 4335/6606/678 4334/6604/568 -f 4332/6607/678 4336/6608/679 4335/6606/678 -f 4421/6609/679 4423/6600/569 4336/6610/679 -f 4440/6287/558 4457/6309/558 4443/6295/559 -f 4432/6271/560 4458/6310/560 4444/6296/561 -f 4439/6285/559 4443/6318/559 4445/6297/562 -f 4431/6269/561 4444/6296/561 4446/6298/563 -f 4438/6283/562 4445/6297/562 4447/6299/564 -f 4430/6267/563 4446/6298/563 4448/6300/565 -f 4437/6281/564 4447/6299/564 4449/6301/566 -f 4429/6265/565 4448/6300/565 4450/6302/567 -f 4436/6280/566 4449/6301/566 4451/6303/568 -f 4427/6263/569 4453/6305/569 4452/6304/570 -f 4426/6262/567 4450/6302/567 4453/6305/569 -f 4435/6277/568 4451/6303/568 4454/6306/571 -f 4442/6292/570 4452/6304/570 4455/6307/572 -f 4434/6275/571 4454/6306/571 4456/6308/573 -f 4441/6290/572 4455/6307/572 4457/6309/558 -f 4433/6273/573 4456/6308/573 4458/6310/560 -f 4451/6303/574 4472/6611/574 4459/6311/575 -f 4452/6304/576 4473/6612/576 4460/6312/577 -f 4454/6306/575 4459/6613/575 4461/6313/578 -f 4455/6307/577 4460/6614/577 4462/6314/579 -f 4456/6308/578 4461/6615/578 4463/6315/580 -f 4457/6309/579 4462/6616/579 4464/6316/581 -f 4458/6310/580 4463/6617/580 4465/6317/582 -f 4443/6318/581 4464/6356/581 4466/6319/583 -f 4444/6296/582 4465/6618/582 4467/6320/584 -f 4445/6297/583 4466/6619/583 4468/6321/585 -f 4446/6298/584 4467/6620/584 4469/6322/586 -f 4447/6299/585 4468/6621/585 4470/6323/587 -f 4448/6300/586 4469/6622/586 4471/6324/588 -f 4449/6301/587 4470/6623/587 4472/6325/574 -f 4453/6305/589 4474/6624/589 4473/6326/576 -f 4450/6302/588 4471/6625/588 4474/6327/589 -f 4467/6328/563 4340/6358/563 4123/6329/565 -f 4468/6331/564 4346/6359/564 4345/6332/566 -f 4469/6330/565 4123/6329/565 4339/6334/567 -f 4470/6333/566 4345/6332/566 4344/6336/568 -f 4474/6338/569 4338/6341/569 4337/6339/570 -f 4471/6335/567 4339/6334/567 4338/6341/569 -f 4472/6337/568 4344/6336/568 4343/6342/571 -f 4473/6340/570 4337/6339/570 4122/6344/572 -f 4459/6343/571 4343/6342/571 4124/6346/573 -f 4460/6345/572 4122/6344/572 4349/6348/558 -f 4461/6347/573 4124/6346/573 4342/6350/560 -f 4462/6349/558 4349/6348/558 4348/6352/559 -f 4463/6351/560 4342/6350/560 4341/6354/561 -f 4464/6356/559 4348/6626/559 4347/6357/562 -f 4465/6355/561 4341/6354/561 4340/6358/563 -f 4466/6319/562 4347/6357/562 4346/6359/564 -f 4155/5903/564 4477/6386/564 4475/6360/562 -f 4141/5885/565 4478/6363/565 4476/6361/563 -f 4125/5865/566 4479/6364/566 4477/6362/564 -f 4142/5886/567 4480/6365/567 4478/6363/565 -f 4128/5868/568 4481/6366/568 4479/6364/566 -f 4144/5889/569 4482/6367/569 4480/6365/567 -f 4131/5872/571 4483/6368/571 4481/6366/568 -f 4147/5893/570 4484/6369/570 4482/6367/569 -f 4133/5874/573 4485/6370/573 4483/6368/571 -f 4149/5895/572 4486/6371/572 4484/6369/570 -f 4134/5875/560 4487/6372/560 4485/6370/573 -f 4153/5899/558 4489/6374/558 4486/6371/572 -f 4136/5878/561 4490/6375/561 4487/6372/560 -f 4152/5898/562 4475/6360/562 4488/6373/559 -f 4150/5896/559 4488/6373/559 4489/6374/558 -f 4138/5881/563 4476/6361/563 4490/6375/561 -f 4140/5884/607 4139/6148/608 4357/6393/608 -f 4140/5887/607 4157/6394/607 4356/6395/609 -f 4143/5890/609 4356/6395/609 4355/6396/610 -f 4145/6149/610 4355/6396/610 4354/6397/611 -f 4148/5894/612 4146/6150/611 4354/6397/611 -f 4151/5897/613 4156/6151/614 4351/6399/614 -f 4148/5900/612 4353/6398/612 4352/6401/615 -f 4151/6152/613 4350/6400/613 4159/6402/616 -f 4154/6153/615 4352/6401/615 4351/6399/614 -f 4127/5867/617 4126/5866/616 4159/6403/616 -f 4127/5869/617 4362/6404/617 4361/6405/618 -f 4129/6146/618 4361/6405/618 4360/6406/619 -f 4130/6147/619 4360/6406/619 4158/6407/620 -f 4132/5876/620 4158/6407/620 4359/6408/621 -f 4135/5879/621 4359/6408/621 4358/6409/622 -f 4137/5882/622 4358/6409/622 4357/6393/608 -f 4172/6410/559 4363/6413/623 4367/6411/623 -f 4363/6413/623 4174/6415/624 4368/6414/624 -f 4174/6415/624 4365/6417/561 4175/6416/561 -f 4365/6417/561 4173/6419/625 4176/6418/625 -f 4173/6419/625 4364/6627/626 4177/6420/626 -f 4364/6421/626 4172/6410/559 4366/6412/559 -f 4208/5970/565 4494/6449/565 4492/6423/563 -f 4194/5952/564 4495/6426/564 4493/6424/562 -f 4178/5932/567 4496/6427/567 4494/6425/565 -f 4195/5953/566 4497/6428/566 4495/6426/564 -f 4181/5935/569 4498/6429/569 4496/6427/567 -f 4197/5956/568 4499/6430/568 4497/6428/566 -f 4184/5939/570 4500/6431/570 4498/6429/569 -f 4200/5960/571 4501/6432/571 4499/6430/568 -f 4186/5941/572 4502/6433/572 4500/6431/570 -f 4202/5962/573 4503/6434/573 4501/6432/571 -f 4187/5942/558 4504/6435/558 4502/6433/572 -f 4206/5966/560 4506/6437/560 4503/6434/573 -f 4189/5945/559 4507/6438/559 4504/6435/558 -f 4205/5965/563 4492/6423/563 4505/6436/561 -f 4203/5963/561 4505/6436/561 4506/6437/560 -f 4191/5948/562 4493/6424/562 4507/6438/559 -f 4193/5951/616 4192/6177/613 4377/6456/613 -f 4193/5954/616 4376/6457/616 4375/6458/617 -f 4196/5957/617 4375/6458/617 4374/6459/618 -f 4199/5959/619 4198/6178/618 4374/6459/618 -f 4201/5961/620 4199/6179/619 4373/6460/619 -f 4209/6180/622 4370/6465/622 4369/6462/608 -f 4201/5967/620 4372/6461/620 4371/6463/621 -f 4179/5969/607 4204/6181/608 4369/6462/608 -f 4207/6182/621 4371/6463/621 4370/6465/622 -f 4179/5933/607 4212/6628/607 4381/6466/609 -f 4180/5936/609 4381/6466/609 4211/6467/610 -f 4182/6175/610 4211/6467/610 4380/6468/611 -f 4183/6176/611 4380/6468/611 4210/6469/612 -f 4185/5943/612 4210/6469/612 4379/6470/615 -f 4188/5946/615 4379/6470/615 4378/6471/614 -f 4190/5949/614 4378/6471/614 4377/6456/613 -f 4249/6020/573 4511/6498/573 4509/6472/571 -f 4235/6003/572 4512/6475/572 4510/6473/570 -f 4219/5983/560 4513/6476/560 4511/6474/573 -f 4236/6004/558 4514/6477/558 4512/6475/572 -f 4222/5986/561 4515/6478/561 4513/6476/560 -f 4239/6008/559 4516/6479/559 4514/6477/558 -f 4225/5990/563 4517/6480/563 4515/6478/561 -f 4241/6010/562 4518/6481/562 4516/6479/559 -f 4227/5992/565 4519/6482/565 4517/6480/563 -f 4243/6012/564 4520/6483/564 4518/6481/562 -f 4228/5993/567 4521/6484/567 4519/6482/565 -f 4247/6016/566 4523/6486/566 4520/6483/564 -f 4230/5996/569 4524/6487/569 4521/6484/567 -f 4246/6015/571 4509/6472/571 4522/6485/568 -f 4244/6013/568 4522/6485/568 4523/6486/566 -f 4232/5999/570 4510/6473/570 4524/6487/569 -f 4233/6200/611 4389/6521/611 4251/6505/612 -f 4234/6005/612 4251/6505/612 4388/6506/615 -f 4237/6201/615 4388/6506/615 4387/6507/614 -f 4238/6202/614 4387/6507/614 4386/6508/613 -f 4242/6011/616 4240/6203/613 4386/6508/613 -f 4250/6204/618 4383/6513/618 4382/6510/619 -f 4242/6017/616 4385/6509/616 4384/6511/617 -f 4245/6205/619 4382/6510/619 4253/6512/620 -f 4248/6206/617 4384/6511/617 4383/6513/618 -f 4221/5985/621 4220/5984/620 4253/6514/620 -f 4221/5987/621 4394/6515/621 4393/6516/622 -f 4223/6198/622 4393/6516/622 4392/6517/608 -f 4224/6199/608 4392/6517/608 4252/6518/607 -f 4226/5994/607 4252/6518/607 4391/6519/609 -f 4229/5997/609 4391/6519/609 4390/6520/610 -f 4231/6000/610 4390/6520/610 4389/6521/611 -f 4290/6071/572 4528/6548/572 4526/6522/570 -f 4276/6053/573 4529/6525/573 4527/6523/571 -f 4260/6033/558 4530/6526/558 4528/6524/572 -f 4277/6054/560 4531/6527/560 4529/6525/573 -f 4263/6036/559 4532/6528/559 4530/6526/558 -f 4279/6057/561 4533/6529/561 4531/6527/560 -f 4266/6040/562 4534/6530/562 4532/6528/559 -f 4282/6061/563 4535/6531/563 4533/6529/561 -f 4268/6042/564 4536/6532/564 4534/6530/562 -f 4284/6063/565 4537/6533/565 4535/6531/563 -f 4269/6043/566 4538/6534/566 4536/6532/564 -f 4288/6067/567 4540/6536/567 4537/6533/565 -f 4271/6046/568 4541/6537/568 4538/6534/566 -f 4287/6066/570 4526/6522/570 4539/6535/569 -f 4285/6064/569 4539/6535/569 4540/6536/567 -f 4273/6049/571 4527/6523/571 4541/6537/568 -f 4275/6052/620 4274/6224/619 4402/6555/619 -f 4275/6055/620 4292/6556/620 4401/6557/621 -f 4278/6058/621 4401/6557/621 4400/6558/622 -f 4281/6060/608 4280/6225/622 4400/6558/622 -f 4281/6226/608 4399/6559/608 4398/6560/607 -f 4291/6227/610 4396/6564/610 4395/6561/611 -f 4289/6069/609 4283/6068/607 4398/6560/607 -f 4261/6070/612 4286/6228/611 4395/6561/611 -f 4289/6072/609 4397/6562/609 4396/6564/610 -f 4262/6035/615 4261/6034/612 4294/6565/612 -f 4262/6037/615 4407/6566/615 4406/6567/614 -f 4265/6039/613 4264/6222/614 4406/6567/614 -f 4265/6223/613 4405/6568/613 4293/6569/616 -f 4267/6044/616 4293/6569/616 4404/6570/617 -f 4270/6047/617 4404/6570/617 4403/6571/618 -f 4272/6050/618 4403/6571/618 4402/6555/619 -f 4309/6572/561 4408/6575/625 4412/6573/625 -f 4408/6575/625 4308/6577/626 4413/6576/626 -f 4308/6577/626 4307/6579/559 4310/6578/559 -f 4307/6579/559 4410/6581/623 4311/6580/623 -f 4410/6581/623 4409/6629/624 4312/6582/624 -f 4409/6583/624 4309/6572/561 4411/6574/561 -f 4319/6585/568 4414/6588/678 4418/6586/678 -f 4414/6588/678 4321/6590/679 4419/6589/679 -f 4321/6590/679 4416/6592/569 4322/6591/569 -f 4416/6592/569 4320/6594/680 4323/6593/680 -f 4320/6594/680 4415/6630/681 4324/6595/681 -f 4415/6596/681 4319/6585/568 4417/6587/568 -f 4331/6598/569 4420/6601/680 4424/6599/680 -f 4420/6601/680 4333/6603/681 4425/6602/681 -f 4333/6603/681 4422/6605/568 4334/6604/568 -f 4422/6605/568 4332/6607/678 4335/6606/678 -f 4332/6607/678 4421/6631/679 4336/6608/679 -f 4421/6609/679 4331/6598/569 4423/6600/569 -o Huge_Missile -v 0.923880 8.500000 0.382684 -v 0.618718 8.500000 0.618719 -v 0.808395 8.500000 0.334848 -v -0.707107 8.500000 -0.707107 -v -0.808395 8.500000 -0.334848 -v -0.923880 8.500000 -0.382683 -v 0.382683 8.500000 0.923880 -v 0.707107 8.500000 0.707107 -v -0.382683 8.500000 -0.923880 -v -0.618718 8.500000 -0.618719 -v 0.000000 8.500000 0.875000 -v 0.334848 8.500000 0.808394 -v 0.000000 8.500000 -1.000000 -v 0.334848 8.500000 -0.808395 -v 0.000000 8.500000 -0.875000 -v -0.334848 8.500000 -0.808394 -v -0.382683 8.500000 0.923880 -v 0.000000 8.500000 1.000000 -v 0.707107 8.500000 -0.707107 -v 0.382683 8.500000 -0.923880 -v -0.707107 8.500000 0.707107 -v -0.334848 8.500000 0.808394 -v 0.808394 8.500000 -0.334848 -v 0.618718 8.500000 -0.618719 -v -0.923880 8.500000 0.382684 -v -0.618718 8.500000 0.618719 -v 0.923879 8.500000 -0.382684 -v 0.875000 8.500000 0.000000 -v -1.000000 8.500000 0.000000 -v -0.808395 8.500000 0.334848 -v 1.000000 8.500000 0.000000 -v 0.265165 2.000000 -0.359835 -v -0.265165 2.000000 -0.359835 -v -0.265165 2.000000 -0.890165 -v -0.875000 8.500000 0.000000 -v 1.000000 8.250000 0.000000 -v 0.808395 8.250000 0.334848 -v 0.923880 8.250000 0.382684 -v 0.923879 8.250000 -0.382684 -v 0.875000 8.250000 0.000000 -v 0.707107 8.250000 -0.707107 -v 0.808394 8.250000 -0.334848 -v 0.382683 8.250000 -0.923880 -v 0.618718 8.250000 -0.618719 -v 0.000000 8.250000 -1.000000 -v 0.334848 8.250000 -0.808395 -v -0.382683 8.250000 -0.923880 -v 0.000000 8.250000 -0.875000 -v -0.618718 8.250000 -0.618719 -v -0.334848 8.250000 -0.808394 -v -0.707107 8.250000 -0.707107 -v -0.808395 8.250000 -0.334848 -v -0.923880 8.250000 -0.382683 -v -0.875000 8.250000 0.000000 -v -1.000000 8.250000 0.000000 -v -0.808395 8.250000 0.334848 -v -0.923880 8.250000 0.382684 -v -0.618718 8.250000 0.618719 -v -0.382683 8.250000 0.923880 -v -0.707107 8.250000 0.707107 -v 0.000000 8.250000 0.875000 -v -0.334848 8.250000 0.808394 -v 0.382683 8.250000 0.923880 -v 0.000000 8.250000 1.000000 -v 0.707107 8.250000 0.707107 -v 0.334848 8.250000 0.808394 -v 0.618718 8.250000 0.618719 -v -0.883883 2.500000 -0.883883 -v 0.883883 2.500000 -0.883884 -v 0.883883 2.500000 0.883884 -v 1.502602 2.375000 -1.502602 -v 0.839689 2.375000 -0.751301 -v 0.751301 2.375000 -0.839689 -v 0.839689 5.375000 -0.751301 -v 1.502602 3.375000 -1.502602 -v 0.751301 5.375000 -0.839689 -v 0.265165 2.000000 0.890165 -v -0.265165 2.000000 0.890165 -v -0.265165 2.000000 0.359835 -v 0.890165 2.000000 0.265165 -v 0.359835 2.000000 0.265165 -v 0.359835 2.000000 -0.265165 -v -0.359835 2.000000 0.265165 -v -0.890165 2.000000 0.265165 -v -0.890165 2.000000 -0.265165 -v -1.502602 2.375000 1.502602 -v -0.839689 2.375000 0.751301 -v -0.751301 2.375000 0.839689 -v -0.839689 5.375000 0.751301 -v -1.502602 3.375000 1.502602 -v -0.751301 5.375000 0.839689 -v -1.502602 2.375000 -1.502602 -v -0.751301 2.375000 -0.839689 -v -0.839689 2.375000 -0.751301 -v -0.751301 5.375000 -0.839689 -v -1.502602 3.375000 -1.502602 -v -0.839689 5.375000 -0.751301 -v 1.502602 2.375000 1.502601 -v 0.751301 2.375000 0.839689 -v 0.839689 2.375000 0.751301 -v 0.751301 5.375000 0.839689 -v 1.502602 3.375000 1.502601 -v 0.839689 5.375000 0.751301 -v -0.143506 2.000000 -0.971455 -v 0.265165 2.000000 -0.890165 -v 0.000000 2.000000 -1.000000 -v 0.143506 2.000000 -0.971455 -v 0.346455 2.000000 -0.768507 -v 0.375000 2.000000 -0.625000 -v 0.346455 2.000000 -0.481493 -v 0.143506 2.000000 -0.278545 -v 0.000000 2.000000 -0.250000 -v -0.143506 2.000000 -0.278545 -v -0.346455 2.000000 -0.481494 -v -0.375000 2.000000 -0.625000 -v -0.346455 2.000000 -0.768506 -v -0.478354 2.500000 -1.154850 -v 0.000000 2.500000 -1.250000 -v 0.478354 2.500000 -1.154850 -v 1.154849 2.500000 -0.478354 -v 1.250000 2.500000 0.000000 -v 1.154849 2.500000 0.478354 -v 0.478354 2.500000 1.154850 -v 0.000000 2.500000 1.250000 -v -0.478354 2.500000 1.154850 -v -0.883883 2.500000 0.883883 -v -1.154849 2.500000 0.478354 -v -1.250000 2.500000 0.000000 -v -1.154849 2.500000 -0.478354 -v -0.143506 2.000000 0.278545 -v 0.265165 2.000000 0.359835 -v 0.000000 2.000000 0.250000 -v 0.143506 2.000000 0.278545 -v 0.346455 2.000000 0.481493 -v 0.375000 2.000000 0.625000 -v 0.346455 2.000000 0.768507 -v 0.143506 2.000000 0.971455 -v 0.000000 2.000000 1.000000 -v -0.143506 2.000000 0.971455 -v -0.346455 2.000000 0.768506 -v -0.375000 2.000000 0.625000 -v -0.346455 2.000000 0.481494 -v 0.481494 2.000000 -0.346455 -v 0.890165 2.000000 -0.265165 -v 0.625000 2.000000 -0.375000 -v 0.768506 2.000000 -0.346455 -v 0.971455 2.000000 -0.143507 -v 1.000000 2.000000 0.000000 -v 0.971455 2.000000 0.143507 -v 0.768506 2.000000 0.346455 -v 0.625000 2.000000 0.375000 -v 0.481494 2.000000 0.346455 -v 0.278545 2.000000 0.143506 -v 0.250000 2.000000 0.000000 -v 0.278545 2.000000 -0.143506 -v -0.768506 2.000000 -0.346455 -v -0.359835 2.000000 -0.265165 -v -0.625000 2.000000 -0.375000 -v -0.481494 2.000000 -0.346455 -v -0.278545 2.000000 -0.143507 -v -0.250000 2.000000 0.000000 -v -0.278545 2.000000 0.143507 -v -0.481494 2.000000 0.346455 -v -0.625000 2.000000 0.375000 -v -0.768506 2.000000 0.346455 -v -0.971455 2.000000 0.143506 -v -1.000000 2.000000 0.000000 -v -0.971455 2.000000 -0.143506 -v -1.250000 7.250000 0.000000 -v -1.154849 7.250000 0.478354 -v -0.707107 11.500000 -0.707107 -v -0.334848 13.000000 -0.808394 -v -0.382683 11.500000 -0.923880 -v 0.707107 11.500000 0.707107 -v 0.334848 13.000000 0.808394 -v 0.382683 11.500000 0.923880 -v -0.923880 11.500000 -0.382683 -v -0.618718 13.000000 -0.618719 -v 0.923880 11.500000 0.382684 -v 0.618718 13.000000 0.618719 -v -1.000000 11.500000 0.000000 -v -0.808395 13.000000 -0.334848 -v 0.875000 13.000000 0.000000 -v 0.808395 13.000000 0.334848 -v -0.923880 11.500000 0.382684 -v -0.875000 13.000000 0.000000 -v 0.923879 11.500000 -0.382684 -v 1.000000 11.500000 0.000000 -v -0.707107 11.500000 0.707107 -v -0.808395 13.000000 0.334848 -v 0.707107 11.500000 -0.707107 -v 0.808394 13.000000 -0.334848 -v -0.382683 11.500000 0.923880 -v -0.618718 13.000000 0.618719 -v 0.382683 11.500000 -0.923880 -v 0.618718 13.000000 -0.618719 -v 0.000000 11.500000 1.000000 -v -0.334848 13.000000 0.808394 -v 0.000000 13.000000 -0.875000 -v 0.000000 11.500000 -1.000000 -v 0.334848 13.000000 -0.808395 -v 0.000000 13.000000 0.875000 -v 1.154849 7.250000 0.478354 -v 1.250000 7.250000 0.000000 -v 0.000000 15.499999 0.000001 -v -1.154849 7.250000 -0.478354 -v 0.883883 7.250000 0.883884 -v -0.883883 7.250000 -0.883883 -v 0.478354 7.250000 1.154850 -v -0.478354 7.250000 -1.154850 -v 0.000000 7.250000 1.250000 -v 0.478354 7.250000 -1.154850 -v 0.000000 7.250000 -1.250000 -v -0.478354 7.250000 1.154850 -v 0.883883 7.250000 -0.883884 -v 0.346455 2.250000 -0.481493 -v 0.176777 2.500000 -0.448223 -v 0.265165 2.250000 -0.359835 -v 0.143506 2.250000 -0.278545 -v 0.095671 2.500000 -0.394030 -v 0.000000 2.500000 -0.375000 -v 0.000000 2.250000 -0.250000 -v -0.143506 2.250000 -0.278545 -v -0.095671 2.500000 -0.394030 -v -0.176777 2.500000 -0.448223 -v -0.265165 2.250000 -0.359835 -v -0.230970 2.500000 -0.529329 -v -0.346455 2.250000 -0.481494 -v -0.250000 2.500000 -0.625000 -v -0.375000 2.250000 -0.625000 -v -0.230970 2.500000 -0.720671 -v -0.346455 2.250000 -0.768506 -v -0.176777 2.500000 -0.801777 -v -0.265165 2.250000 -0.890165 -v -0.143506 2.250000 -0.971455 -v -0.095671 2.500000 -0.855970 -v 0.000000 2.500000 -0.875000 -v 0.000000 2.250000 -1.000000 -v 0.095671 2.500000 -0.855970 -v 0.143506 2.250000 -0.971455 -v 0.176777 2.500000 -0.801777 -v 0.265165 2.250000 -0.890165 -v 0.346455 2.250000 -0.768507 -v 0.230970 2.500000 -0.720671 -v 0.375000 2.250000 -0.625000 -v 0.250000 2.500000 -0.625000 -v 0.230970 2.500000 -0.529329 -v 1.154849 7.250000 -0.478354 -v -0.883883 7.250000 0.883883 -v 0.717107 9.313000 -0.717107 -v 0.392683 10.500000 -0.933880 -v 0.717107 10.500000 -0.717107 -v 0.933879 9.313000 -0.392684 -v 0.933879 10.500000 -0.392684 -v 1.010000 9.313000 -0.010000 -v 1.010000 10.500000 -0.010000 -v 0.346455 2.250000 0.768507 -v 0.176777 2.500000 0.801777 -v 0.265165 2.250000 0.890165 -v 0.143506 2.250000 0.971455 -v 0.095671 2.500000 0.855970 -v 0.000000 2.500000 0.875000 -v 0.000000 2.250000 1.000000 -v -0.143506 2.250000 0.971455 -v -0.095671 2.500000 0.855970 -v -0.176777 2.500000 0.801777 -v -0.265165 2.250000 0.890165 -v -0.230970 2.500000 0.720671 -v -0.346455 2.250000 0.768506 -v -0.250000 2.500000 0.625000 -v -0.375000 2.250000 0.625000 -v -0.346455 2.250000 0.481494 -v -0.230970 2.500000 0.529329 -v -0.176777 2.500000 0.448223 -v -0.265165 2.250000 0.359835 -v -0.143506 2.250000 0.278545 -v -0.095671 2.500000 0.394030 -v 0.000000 2.250000 0.250000 -v 0.000000 2.500000 0.375000 -v 0.095671 2.500000 0.394030 -v 0.143506 2.250000 0.278545 -v 0.265165 2.250000 0.359835 -v 0.176777 2.500000 0.448223 -v 0.346455 2.250000 0.481493 -v 0.230970 2.500000 0.529329 -v 0.375000 2.250000 0.625000 -v 0.250000 2.500000 0.625000 -v 0.230970 2.500000 0.720671 -v 0.971455 2.250000 0.143507 -v 0.801777 2.500000 0.176777 -v 0.890165 2.250000 0.265165 -v 0.768506 2.250000 0.346455 -v 0.720671 2.500000 0.230970 -v 0.625000 2.500000 0.250000 -v 0.625000 2.250000 0.375000 -v 0.481494 2.250000 0.346455 -v 0.529329 2.500000 0.230970 -v 0.448223 2.500000 0.176777 -v 0.359835 2.250000 0.265165 -v 0.394030 2.500000 0.095671 -v 0.278545 2.250000 0.143506 -v 0.375000 2.500000 0.000000 -v 0.250000 2.250000 0.000000 -v 0.278545 2.250000 -0.143506 -v 0.394030 2.500000 -0.095671 -v 0.448223 2.500000 -0.176777 -v 0.359835 2.250000 -0.265165 -v 0.481494 2.250000 -0.346455 -v 0.529329 2.500000 -0.230970 -v 0.625000 2.500000 -0.250000 -v 0.625000 2.250000 -0.375000 -v 0.720671 2.500000 -0.230970 -v 0.768506 2.250000 -0.346455 -v 0.801777 2.500000 -0.176777 -v 0.890165 2.250000 -0.265165 -v 0.971455 2.250000 -0.143507 -v 0.855970 2.500000 -0.095671 -v 1.000000 2.250000 0.000000 -v 0.875000 2.500000 0.000000 -v 0.855970 2.500000 0.095671 -v -0.278545 2.250000 0.143507 -v -0.448223 2.500000 0.176777 -v -0.359835 2.250000 0.265165 -v -0.481494 2.250000 0.346455 -v -0.529329 2.500000 0.230970 -v -0.625000 2.500000 0.250000 -v -0.625000 2.250000 0.375000 -v -0.768506 2.250000 0.346455 -v -0.720671 2.500000 0.230970 -v -0.801777 2.500000 0.176777 -v -0.890165 2.250000 0.265165 -v -0.855970 2.500000 0.095671 -v -0.971455 2.250000 0.143506 -v -0.875000 2.500000 0.000000 -v -1.000000 2.250000 0.000000 -v -0.971455 2.250000 -0.143506 -v -0.855970 2.500000 -0.095671 -v -0.801777 2.500000 -0.176777 -v -0.890165 2.250000 -0.265165 -v -0.768506 2.250000 -0.346455 -v -0.720671 2.500000 -0.230970 -v -0.625000 2.500000 -0.250000 -v -0.625000 2.250000 -0.375000 -v -0.529329 2.500000 -0.230970 -v -0.481494 2.250000 -0.346455 -v -0.448223 2.500000 -0.176777 -v -0.359835 2.250000 -0.265165 -v -0.278545 2.250000 -0.143507 -v -0.394030 2.500000 -0.095671 -v -0.250000 2.250000 0.000000 -v -0.375000 2.500000 0.000000 -v -0.394030 2.500000 0.095671 -v -0.717106 9.313000 0.717107 -v -0.392683 10.500000 0.933880 -v -0.717106 10.500000 0.717107 -v -0.933879 9.313000 0.392684 -v -0.933879 10.500000 0.392684 -v -1.010000 9.313000 0.010000 -v -1.010000 10.500000 0.010000 -v 0.392683 9.313000 -0.933880 -v -0.392683 9.313000 0.933880 -vt 0.291667 0.471698 -vt 0.250000 0.462264 -vt 0.291667 0.462264 -vt 0.583333 0.471698 -vt 0.625000 0.462264 -vt 0.625000 0.471698 -vt 0.208333 0.471698 -vt 0.250000 0.471698 -vt 0.541667 0.471698 -vt 0.583333 0.462264 -vt 0.166667 0.462264 -vt 0.208333 0.462264 -vt 0.500000 0.471698 -vt 0.458333 0.462264 -vt 0.500000 0.462264 -vt 0.541667 0.462264 -vt 0.125000 0.471698 -vt 0.166667 0.471698 -vt 0.416667 0.471698 -vt 0.458333 0.471698 -vt 0.083333 0.471698 -vt 0.125000 0.462264 -vt 0.375000 0.462264 -vt 0.416667 0.462264 -vt 0.041667 0.471698 -vt 0.083333 0.462264 -vt 0.375000 0.471698 -vt 0.333333 0.462264 -vt -0.000000 0.471698 -vt 0.041667 0.462264 -vt 0.333333 0.471698 -vt 0.678877 0.708687 -vt 0.678877 0.668671 -vt 0.737790 0.668671 -vt 0.666667 0.462264 -vt 0.666667 0.471698 -vt 0.333333 0.433962 -vt 0.291667 0.443396 -vt 0.291667 0.433962 -vt 0.375000 0.433962 -vt 0.333333 0.443396 -vt 0.416667 0.433962 -vt 0.375000 0.443396 -vt 0.458333 0.433962 -vt 0.416667 0.443396 -vt 0.500000 0.433962 -vt 0.458333 0.443396 -vt 0.541667 0.433962 -vt 0.500000 0.443396 -vt 0.583333 0.443396 -vt 0.541667 0.443396 -vt 0.583333 0.433962 -vt 0.625000 0.443396 -vt 0.625000 0.433962 -vt 0.666667 0.443396 -vt 0.000000 0.433962 -vt 0.041667 0.443396 -vt 0.000000 0.443396 -vt 0.041667 0.433962 -vt 0.083333 0.443396 -vt 0.125000 0.433962 -vt 0.083333 0.433962 -vt 0.166667 0.443396 -vt 0.125000 0.443396 -vt 0.208333 0.433962 -vt 0.166667 0.433962 -vt 0.250000 0.433962 -vt 0.208333 0.443396 -vt 0.250000 0.443396 -vt 0.903652 0.461671 -vt 0.903652 0.594933 -vt 0.707459 0.594933 -vt 1.000000 0.004717 -vt 0.888889 0.004717 -vt 0.888889 -0.000000 -vt 0.888889 0.231132 -vt 1.000000 0.231132 -vt 0.888889 0.235849 -vt 1.000000 0.080189 -vt 0.888889 0.004717 -vt 0.678877 0.708687 -vt 0.678877 0.668671 -vt 0.737790 0.668671 -vt 0.678877 0.708687 -vt 0.678877 0.668671 -vt 0.737790 0.668671 -vt 0.678877 0.708687 -vt 0.678877 0.668671 -vt 0.737790 0.668671 -vt 1.000000 0.004717 -vt 0.888889 0.004717 -vt 0.888889 -0.000000 -vt 0.888889 0.231132 -vt 1.000000 0.231132 -vt 0.888889 0.235849 -vt 1.000000 0.080189 -vt 0.888889 0.004717 -vt 1.000000 0.004717 -vt 0.888889 0.004717 -vt 0.888889 -0.000000 -vt 0.888889 0.231132 -vt 1.000000 0.231132 -vt 0.888889 0.235849 -vt 1.000000 0.080189 -vt 0.888889 0.004717 -vt 1.000000 0.004717 -vt 0.888889 0.004717 -vt 0.888889 -0.000000 -vt 0.888889 0.231132 -vt 1.000000 0.231132 -vt 0.888889 0.235849 -vt 1.000000 0.080189 -vt 0.888889 0.004717 -vt 0.000000 0.462264 -vt 0.746820 0.677851 -vt 0.737790 0.708687 -vt 0.749991 0.688679 -vt 0.746820 0.699508 -vt 0.724275 0.714821 -vt 0.708333 0.716975 -vt 0.692392 0.714821 -vt 0.669847 0.699508 -vt 0.666676 0.688679 -vt 0.669847 0.677851 -vt 0.692392 0.662537 -vt 0.708333 0.660383 -vt 0.724275 0.662537 -vt 0.666667 0.433962 -vt 0.933724 0.492241 -vt 0.944284 0.528302 -vt 0.933724 0.564363 -vt 0.858645 0.615360 -vt 0.805556 0.622533 -vt 0.752466 0.615360 -vt 0.677387 0.564362 -vt 0.666827 0.528302 -vt 0.677387 0.492241 -vt 0.707459 0.461671 -vt 0.752466 0.441244 -vt 0.805556 0.434071 -vt 0.858645 0.441244 -vt 0.888889 0.231132 -vt 0.746820 0.677851 -vt 0.737790 0.708687 -vt 0.749991 0.688679 -vt 0.746820 0.699508 -vt 0.724275 0.714821 -vt 0.708333 0.716975 -vt 0.692392 0.714821 -vt 0.669847 0.699508 -vt 0.666676 0.688679 -vt 0.669847 0.677851 -vt 0.692392 0.662537 -vt 0.708333 0.660383 -vt 0.724275 0.662537 -vt 0.746820 0.677851 -vt 0.737790 0.708687 -vt 0.749991 0.688679 -vt 0.746820 0.699508 -vt 0.724275 0.714821 -vt 0.708333 0.716975 -vt 0.692392 0.714821 -vt 0.669847 0.699508 -vt 0.666676 0.688679 -vt 0.669847 0.677851 -vt 0.692392 0.662537 -vt 0.708333 0.660383 -vt 0.724275 0.662537 -vt 0.746820 0.677851 -vt 0.737790 0.708687 -vt 0.749991 0.688679 -vt 0.746820 0.699508 -vt 0.724275 0.714821 -vt 0.708333 0.716975 -vt 0.692392 0.714821 -vt 0.669847 0.699508 -vt 0.666676 0.688679 -vt 0.669847 0.677851 -vt 0.692392 0.662537 -vt 0.708333 0.660383 -vt 0.724275 0.662537 -vt 0.888889 0.231132 -vt 0.888889 0.231132 -vt 0.888889 0.231132 -vt -0.000000 0.358491 -vt 0.055556 0.000000 -vt 0.055556 0.358491 -vt 0.583333 0.698113 -vt 0.541667 0.811321 -vt 0.541667 0.698113 -vt 0.250000 0.698113 -vt 0.208333 0.811321 -vt 0.208333 0.698113 -vt 0.625000 0.698113 -vt 0.583333 0.811321 -vt 0.291667 0.698113 -vt 0.250000 0.811321 -vt 0.666667 0.698113 -vt 0.625000 0.811321 -vt 0.326389 0.811321 -vt 0.291667 0.811321 -vt 0.041667 0.698113 -vt 0.000000 0.811321 -vt -0.000000 0.698113 -vt 0.375000 0.698113 -vt 0.333333 0.811321 -vt 0.333333 0.698113 -vt 0.083333 0.698113 -vt 0.041667 0.811321 -vt 0.416667 0.698113 -vt 0.375000 0.811321 -vt 0.125000 0.698113 -vt 0.083333 0.811321 -vt 0.458333 0.698113 -vt 0.416667 0.811321 -vt 0.166667 0.698113 -vt 0.125000 0.811321 -vt 0.500000 0.811321 -vt 0.500000 0.698113 -vt 0.458333 0.811321 -vt 0.166667 0.811321 -vt 0.388889 0.358491 -vt 0.444444 0.000000 -vt 0.444444 0.358491 -vt 0.576389 0.811321 -vt 0.562500 1.000000 -vt 0.618056 0.811321 -vt 0.604167 1.000000 -vt 0.659722 0.811321 -vt 0.645833 1.000000 -vt 0.034722 0.811321 -vt 0.020833 1.000000 -vt 0.076389 0.811321 -vt 0.062500 1.000000 -vt 0.118056 0.811321 -vt 0.104167 1.000000 -vt 0.159722 0.811321 -vt 0.145833 1.000000 -vt 0.194444 0.811321 -vt 0.187500 1.000000 -vt 0.243056 0.811321 -vt 0.229167 1.000000 -vt 0.284722 0.811321 -vt 0.270833 1.000000 -vt 0.312500 1.000000 -vt 0.368056 0.811321 -vt 0.354167 1.000000 -vt 0.409722 0.811321 -vt 0.395833 1.000000 -vt 0.451389 0.811321 -vt 0.437500 1.000000 -vt 0.493056 0.811321 -vt 0.479167 1.000000 -vt 0.534722 0.811321 -vt 0.520833 1.000000 -vt 0.833333 0.358491 -vt 0.888889 0.000000 -vt 0.888889 0.358491 -vt 0.333333 0.358491 -vt 0.388889 -0.000000 -vt 0.777778 0.358491 -vt 0.833333 0.000000 -vt 0.277778 0.358491 +vt 0.083333 0.136364 +vt 0.000000 0.181818 +vt 0.083333 0.340909 +vt 0.333333 0.386364 +vt 0.250000 0.340909 +vt 0.333333 0.204545 +vt 0.250000 0.250000 vt 0.333333 -0.000000 -vt 0.722222 0.358491 -vt 0.777778 0.000000 -vt 0.222222 0.358491 -vt 0.277778 0.000000 -vt 0.611111 0.358491 +vt 0.083333 0.045455 +vt 0.333333 0.181818 +vt 0.250000 0.045455 +vt 0.250000 0.136364 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt -0.000000 0.204545 +vt 0.333333 0.181818 +vt 0.333333 0.204545 +vt -0.000000 0.204545 +vt 0.333333 0.181818 +vt 0.333333 0.204545 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt 0.083333 0.136364 +vt 0.250000 0.113636 +vt 0.250000 0.136364 +vt -0.000000 0.204545 +vt 0.333333 0.181818 +vt 0.333333 0.204545 +vt 0.083333 0.340909 +vt 0.250000 0.250000 +vt 0.250000 0.340909 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.208333 0.954545 +vt 0.145833 0.863636 +vt 0.208333 0.863636 +vt 0.083333 0.863636 +vt 0.125000 0.954545 +vt 0.083333 0.954545 +vt 0.000000 0.863636 +vt 0.062500 0.954545 +vt 0.000000 0.954545 +vt 0.125000 0.863636 +vt 0.062500 0.852273 +vt 0.062500 0.863636 +vt 0.145833 0.954545 +vt 0.145833 0.965909 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.333333 0.909091 +vt 0.416667 0.954545 +vt 0.333333 0.954545 +vt 0.333333 0.909091 +vt 0.416667 0.954545 +vt 0.333333 0.954545 vt 0.666667 0.000000 -vt 0.666667 0.358491 -vt 0.729167 0.000000 -vt 0.166667 0.358491 -vt 0.222222 -0.000000 -vt 0.555556 0.358491 -vt 0.611111 0.000000 -vt 0.708333 0.641509 -vt 0.694444 0.660377 -vt 0.694444 0.641509 -vt 0.680556 0.641509 -vt 0.680556 0.660377 -vt 0.666667 0.660377 -vt 0.666667 0.641509 -vt 0.875000 0.641509 -vt 0.888889 0.660377 -vt 0.875000 0.660377 -vt 0.861111 0.660377 -vt 0.861111 0.641509 -vt 0.847222 0.660377 -vt 0.847222 0.641509 -vt 0.833333 0.660377 -vt 0.833333 0.641509 -vt 0.819444 0.660377 -vt 0.819444 0.641509 -vt 0.805556 0.660377 -vt 0.805556 0.641509 -vt 0.791667 0.641509 -vt 0.791667 0.660377 -vt 0.777778 0.660377 -vt 0.777778 0.641509 -vt 0.763889 0.660377 -vt 0.763889 0.641509 -vt 0.750000 0.660377 -vt 0.750000 0.641509 -vt 0.736111 0.641509 -vt 0.736111 0.660377 -vt 0.722222 0.641509 -vt 0.722222 0.660377 -vt 0.819444 0.622642 -vt 0.805556 0.622642 -vt 0.694444 0.622642 -vt 0.680556 0.622642 -vt 0.791667 0.622642 -vt 0.666667 0.622642 -vt 0.777778 0.622642 -vt 0.763889 0.622642 -vt 0.888889 0.622642 -vt 0.875000 0.622642 -vt 0.750000 0.622642 -vt 0.861111 0.622642 -vt 0.736111 0.622642 -vt 0.847222 0.622642 -vt 0.722222 0.622642 -vt 0.833333 0.622642 -vt 0.708333 0.622642 -vt 0.708333 0.660377 -vt 0.555556 0.433962 -vt 0.611111 0.433962 +vt 0.583333 0.909091 +vt 0.583333 0.000000 +vt 0.416667 -0.000000 +vt 0.333333 -0.000000 +vt 0.583333 0.000000 +vt 0.500000 0.909091 vt 0.500000 0.000000 -vt 0.500000 0.358491 -vt 0.166667 0.433962 -vt 0.111111 0.358491 -vt 0.500000 0.433962 -vt 0.055556 0.433962 -vt 0.111111 0.433962 -vt 0.444444 0.433962 -vt 0.833333 0.433962 -vt 0.888889 0.433962 -vt 0.333333 0.433962 -vt 0.388889 0.433962 -vt 0.777778 0.433962 -vt 0.722222 0.433962 -vt 0.222222 0.433962 -vt 0.277778 0.433962 -vt 0.666667 0.433962 -vt 0.166667 -0.000000 -vt 0.555556 -0.000000 -vt 0.111111 -0.000000 -vt 0.847222 0.716981 -vt 0.937500 0.900943 -vt 0.847222 0.900943 -vt 0.756944 0.716981 -vt 0.756944 0.900943 -vt 0.666667 0.716981 -vt 0.666667 0.900943 -vt 0.708333 0.641509 -vt 0.694444 0.660377 -vt 0.694444 0.641509 -vt 0.680556 0.641509 -vt 0.680556 0.660377 -vt 0.666667 0.660377 -vt 0.666667 0.641509 -vt 0.875000 0.641509 -vt 0.888889 0.660377 -vt 0.875000 0.660377 -vt 0.861111 0.660377 -vt 0.861111 0.641509 -vt 0.847222 0.660377 -vt 0.847222 0.641509 -vt 0.833333 0.660377 -vt 0.833333 0.641509 -vt 0.819444 0.641509 -vt 0.819444 0.660377 -vt 0.805556 0.660377 -vt 0.805556 0.641509 -vt 0.791667 0.641509 -vt 0.791667 0.660377 -vt 0.777778 0.641509 -vt 0.777778 0.660377 -vt 0.763889 0.660377 -vt 0.763889 0.641509 -vt 0.750000 0.641509 -vt 0.750000 0.660377 -vt 0.736111 0.641509 -vt 0.736111 0.660377 -vt 0.722222 0.641509 -vt 0.722222 0.660377 -vt 0.819444 0.622642 -vt 0.805556 0.622642 -vt 0.694444 0.622642 -vt 0.680556 0.622642 -vt 0.791667 0.622642 -vt 0.666667 0.622642 -vt 0.777778 0.622642 -vt 0.763889 0.622642 -vt 0.888889 0.622642 -vt 0.875000 0.622642 -vt 0.750000 0.622642 -vt 0.861111 0.622642 -vt 0.736111 0.622642 -vt 0.847222 0.622642 -vt 0.722222 0.622642 -vt 0.833333 0.622642 -vt 0.708333 0.622642 -vt 0.708333 0.660377 -vt 0.708333 0.641509 -vt 0.694444 0.660377 -vt 0.694444 0.641509 -vt 0.680556 0.641509 -vt 0.680556 0.660377 -vt 0.666667 0.660377 -vt 0.666667 0.641509 -vt 0.875000 0.641509 -vt 0.888889 0.660377 -vt 0.875000 0.660377 -vt 0.861111 0.660377 -vt 0.861111 0.641509 -vt 0.847222 0.660377 -vt 0.847222 0.641509 -vt 0.833333 0.660377 -vt 0.833333 0.641509 -vt 0.819444 0.641509 -vt 0.819444 0.660377 -vt 0.805556 0.660377 -vt 0.805556 0.641509 -vt 0.791667 0.641509 -vt 0.791667 0.660377 -vt 0.777778 0.660377 -vt 0.777778 0.641509 -vt 0.763889 0.660377 -vt 0.763889 0.641509 -vt 0.750000 0.660377 -vt 0.750000 0.641509 -vt 0.736111 0.641509 -vt 0.736111 0.660377 -vt 0.722222 0.641509 -vt 0.722222 0.660377 -vt 0.819444 0.622642 -vt 0.805556 0.622642 -vt 0.694444 0.622642 -vt 0.680556 0.622642 -vt 0.791667 0.622642 -vt 0.666667 0.622642 -vt 0.777778 0.622642 -vt 0.763889 0.622642 -vt 0.888889 0.622642 -vt 0.875000 0.622642 -vt 0.750000 0.622642 -vt 0.861111 0.622642 -vt 0.736111 0.622642 -vt 0.847222 0.622642 -vt 0.722222 0.622642 -vt 0.833333 0.622642 -vt 0.708333 0.622642 -vt 0.708333 0.660377 -vt 0.708333 0.641509 -vt 0.694444 0.660377 -vt 0.694444 0.641509 -vt 0.680556 0.641509 -vt 0.680556 0.660377 -vt 0.666667 0.660377 -vt 0.666667 0.641509 -vt 0.875000 0.641509 -vt 0.888889 0.660377 -vt 0.875000 0.660377 -vt 0.861111 0.660377 -vt 0.861111 0.641509 -vt 0.847222 0.660377 -vt 0.847222 0.641509 -vt 0.833333 0.660377 -vt 0.833333 0.641509 -vt 0.819444 0.641509 -vt 0.819444 0.660377 -vt 0.805556 0.660377 -vt 0.805556 0.641509 -vt 0.791667 0.641509 -vt 0.791667 0.660377 -vt 0.777778 0.660377 -vt 0.777778 0.641509 -vt 0.763889 0.660377 -vt 0.763889 0.641509 -vt 0.750000 0.660377 -vt 0.750000 0.641509 -vt 0.736111 0.641509 -vt 0.736111 0.660377 -vt 0.722222 0.641509 -vt 0.722222 0.660377 -vt 0.819444 0.622642 -vt 0.805556 0.622642 -vt 0.694444 0.622642 -vt 0.680556 0.622642 -vt 0.791667 0.622642 -vt 0.666667 0.622642 -vt 0.777778 0.622642 -vt 0.763889 0.622642 -vt 0.888889 0.622642 -vt 0.875000 0.622642 -vt 0.750000 0.622642 -vt 0.861111 0.622642 -vt 0.736111 0.622642 -vt 0.847222 0.622642 -vt 0.722222 0.622642 -vt 0.833333 0.622642 -vt 0.708333 0.622642 -vt 0.708333 0.660377 -vt 0.847222 0.716981 -vt 0.937500 0.900943 -vt 0.847222 0.900943 -vt 0.756944 0.716981 -vt 0.756944 0.900943 -vt 0.666667 0.716981 -vt 0.666667 0.900943 -vt 0.000000 0.000000 -vt 0.888889 0.641509 -vt 0.937500 0.716981 -vt 0.888889 0.641509 -vt 0.888889 0.641509 -vt 0.888889 0.641509 -vt 0.937500 0.716981 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.6325 0.4472 -0.6325 -vn 0.7498 -0.0000 0.6616 -vn -0.6616 0.0000 -0.7498 -vn -0.6325 0.4472 0.6325 -vn -0.7498 0.0000 -0.6616 -vn 0.6616 -0.0000 0.7498 -vn -0.6325 0.4472 -0.6325 -vn 0.6616 0.0000 -0.7498 -vn -0.7498 -0.0000 0.6616 -vn 0.6325 0.4472 0.6325 -vn -0.6616 0.0000 0.7498 -vn 0.7498 0.0000 -0.6616 -vn -1.0000 0.0000 0.0000 -vn -0.9239 -0.0000 0.3827 -vn -0.7047 0.0830 -0.7047 -vn -0.3814 0.0830 -0.9207 -vn 0.7047 0.0830 0.7047 -vn 0.3814 0.0830 0.9207 -vn -0.9207 0.0830 -0.3814 -vn 0.9207 0.0830 0.3814 -vn -0.9965 0.0830 0.0000 -vn 0.9965 0.0830 -0.0000 -vn -0.9207 0.0830 0.3814 -vn 0.9207 0.0830 -0.3814 -vn -0.7047 0.0830 0.7047 -vn 0.7047 0.0830 -0.7047 -vn -0.3814 0.0830 0.9207 -vn 0.3814 0.0830 -0.9207 -vn -0.0000 0.0830 0.9965 -vn -0.0000 0.0830 -0.9965 -vn 0.9239 -0.0000 0.3827 -vn 1.0000 -0.0000 -0.0000 -vn -0.3612 0.3304 -0.8720 -vn -0.6674 0.3304 -0.6674 -vn -0.8720 0.3304 -0.3612 -vn -0.9439 0.3304 -0.0000 -vn -0.8720 0.3304 0.3612 -vn -0.6674 0.3304 0.6674 -vn -0.3612 0.3304 0.8720 -vn 0.0000 0.3304 0.9439 -vn 0.3612 0.3304 0.8720 -vn 0.6674 0.3304 0.6674 -vn 0.8720 0.3304 0.3612 -vn 0.9439 0.3304 -0.0000 -vn 0.8720 0.3304 -0.3612 -vn 0.6674 0.3304 -0.6674 -vn 0.3612 0.3304 -0.8720 -vn -0.0000 0.3304 -0.9439 -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.3827 0.0000 -0.9239 -vn 0.0000 -0.0000 1.0000 -vn 0.3827 0.0000 -0.9239 -vn 0.0000 0.0000 -1.0000 -vn -0.3827 -0.0000 0.9239 -vn 0.7071 0.0000 -0.7071 -vn 0.8263 0.4472 0.3423 -vn 0.3423 0.4472 0.8263 -vn 0.0000 0.4472 0.8944 -vn -0.3423 0.4472 0.8263 -vn -0.8263 0.4472 0.3423 -vn -0.8944 0.4472 0.0000 -vn -0.8263 0.4472 -0.3423 -vn -0.3423 0.4472 -0.8263 -vn -0.0000 0.4472 -0.8944 -vn 0.3423 0.4472 -0.8263 -vn 0.8263 0.4472 -0.3423 -vn 0.8944 0.4472 0.0000 -vn -0.7071 0.0000 0.7071 -vn 0.9239 0.0000 -0.3827 -vn 0.6860 0.2425 -0.6860 -vn 0.3713 0.2425 -0.8963 -vn -0.3713 0.2425 0.8963 -vn -0.6860 0.2425 0.6860 -vn 0.8963 0.2425 -0.3713 -vn -0.8963 0.2425 0.3713 -vn 0.9701 0.2425 -0.0000 -vn -0.9701 0.2425 -0.0000 -vn 0.8963 0.2425 0.3713 -vn -0.8963 0.2425 -0.3713 -vn 0.6860 0.2425 0.6860 -vn -0.6860 0.2425 -0.6860 -vn 0.3713 0.2425 0.8963 -vn -0.3713 0.2425 -0.8963 -vn -0.0000 0.2425 0.9701 -vn 0.0000 0.2425 -0.9701 -vn 0.5556 0.0000 -0.8315 -vn 0.9808 0.0000 -0.1951 -vn -0.5556 -0.0000 0.8315 -vn -0.9808 -0.0000 0.1951 -s off -f 4543/6632/682 4544/6633/682 4545/6634/682 -f 4546/6635/682 4547/6636/682 4548/6637/682 -f 4549/6638/682 4544/6633/682 4550/6639/682 -f 4551/6640/682 4552/6641/682 4546/6635/682 -f 4549/6638/682 4553/6642/682 4554/6643/682 -f 4555/6644/682 4556/6645/682 4557/6646/682 -f 4551/6640/682 4557/6646/682 4558/6647/682 -f 4559/6648/682 4553/6642/682 4560/6649/682 -f 4561/6650/682 4556/6645/682 4562/6651/682 -f 4563/6652/682 4564/6653/682 4559/6648/682 -f 4561/6650/682 4565/6654/682 4566/6655/682 -f 4567/6656/682 4568/6657/682 4563/6652/682 -f 4569/6658/682 4570/6659/682 4565/6654/682 -f 4571/6660/682 4572/6661/682 4567/6656/682 -f 4573/6662/682 4545/6634/682 4570/6659/682 -f 4574/6663/682 4575/6664/682 4576/6665/682 -f 4548/6637/682 4577/6666/682 4571/6667/682 -f 4578/6668/683 4579/6669/683 4580/6670/683 -f 4581/6671/683 4582/6672/683 4578/6668/683 -f 4583/6673/683 4584/6674/683 4581/6671/683 -f 4585/6675/683 4586/6676/683 4583/6673/683 -f 4587/6677/683 4588/6678/683 4585/6675/683 -f 4589/6679/683 4590/6680/683 4587/6677/683 -f 4589/6679/683 4591/6681/683 4592/6682/683 -f 4593/6683/683 4594/6684/683 4591/6681/683 -f 4595/6685/683 4596/6686/683 4594/6684/683 -f 4597/6687/683 4598/6688/683 4596/6689/683 -f 4599/6690/683 4600/6691/683 4598/6688/683 -f 4601/6692/683 4600/6691/683 4602/6693/683 -f 4601/6692/683 4603/6694/683 4604/6695/683 -f 4605/6696/683 4603/6694/683 4606/6697/683 -f 4607/6698/683 4608/6699/683 4605/6696/683 -f 4580/6670/683 4609/6700/683 4607/6698/683 -f 4610/6701/682 4611/6702/682 4612/6703/682 -f 4613/6704/682 4614/6705/682 4615/6706/682 -f 4616/6707/684 4617/6708/684 4618/6709/684 -f 4614/6705/685 4617/6710/685 4616/6707/685 -f 4615/6711/686 4617/6710/686 4613/6704/686 -f 4619/6712/682 4620/6713/682 4621/6714/682 -f 4622/6715/682 4623/6716/682 4624/6717/682 -f 4625/6718/682 4626/6719/682 4627/6720/682 -f 4628/6721/682 4629/6722/682 4630/6723/682 -f 4631/6724/687 4632/6725/687 4633/6726/687 -f 4629/6722/688 4632/6727/688 4631/6724/688 -f 4630/6728/689 4632/6727/689 4628/6721/689 -f 4634/6729/682 4635/6730/682 4636/6731/682 -f 4637/6732/690 4638/6733/690 4639/6734/690 -f 4635/6730/691 4638/6735/691 4637/6732/691 -f 4636/6736/692 4638/6735/692 4634/6729/692 -f 4640/6737/682 4641/6738/682 4642/6739/682 -f 4643/6740/693 4644/6741/693 4645/6742/693 -f 4641/6738/694 4644/6743/694 4643/6740/694 -f 4642/6744/695 4644/6743/695 4640/6737/695 -f 4543/6632/682 4550/6639/682 4544/6633/682 -f 4546/6635/682 4552/6641/682 4547/6636/682 -f 4549/6638/682 4554/6643/682 4544/6633/682 -f 4551/6640/682 4558/6647/682 4552/6641/682 -f 4549/6638/682 4560/6649/682 4553/6642/682 -f 4555/6644/682 4562/6651/682 4556/6645/682 -f 4551/6640/682 4555/6644/682 4557/6646/682 -f 4559/6648/682 4564/6653/682 4553/6642/682 -f 4561/6650/682 4566/6655/682 4556/6645/682 -f 4563/6652/682 4568/6657/682 4564/6653/682 -f 4561/6650/682 4569/6658/682 4565/6654/682 -f 4567/6656/682 4572/6661/682 4568/6657/682 -f 4569/6658/682 4573/6662/682 4570/6659/682 -f 4571/6660/682 4577/6745/682 4572/6661/682 -f 4573/6662/682 4543/6632/682 4545/6634/682 -f 4576/6665/682 4646/6746/682 4647/6747/682 -f 4646/6746/682 4648/6748/682 4647/6747/682 -f 4648/6748/682 4649/6749/682 4647/6747/682 -f 4647/6747/682 4650/6750/682 4651/6751/682 -f 4651/6751/682 4652/6752/682 4574/6663/682 -f 4574/6663/682 4653/6753/682 4575/6664/682 -f 4653/6753/682 4654/6754/682 4575/6664/682 -f 4654/6754/682 4655/6755/682 4575/6664/682 -f 4575/6664/682 4656/6756/682 4657/6757/682 -f 4657/6757/682 4658/6758/682 4575/6664/682 -f 4658/6758/682 4576/6665/682 4575/6664/682 -f 4647/6747/682 4651/6751/682 4576/6665/682 -f 4651/6751/682 4574/6663/682 4576/6665/682 -f 4548/6637/682 4547/6636/682 4577/6666/682 -f 4578/6668/683 4582/6672/683 4579/6669/683 -f 4581/6671/683 4584/6674/683 4582/6672/683 -f 4583/6673/683 4586/6676/683 4584/6674/683 -f 4585/6675/683 4588/6678/683 4586/6676/683 -f 4587/6677/683 4590/6680/683 4588/6678/683 -f 4589/6679/683 4592/6682/683 4590/6680/683 -f 4589/6679/683 4593/6683/683 4591/6681/683 -f 4593/6683/683 4595/6685/683 4594/6684/683 -f 4595/6685/683 4597/6759/683 4596/6686/683 -f 4597/6687/683 4599/6690/683 4598/6688/683 -f 4599/6690/683 4602/6693/683 4600/6691/683 -f 4601/6692/683 4604/6695/683 4600/6691/683 -f 4601/6692/683 4606/6697/683 4603/6694/683 -f 4605/6696/683 4608/6699/683 4603/6694/683 -f 4607/6698/683 4609/6700/683 4608/6699/683 -f 4580/6670/683 4579/6669/683 4609/6700/683 -f 4610/6701/682 4659/6760/682 4660/6761/682 -f 4660/6761/682 4661/6762/682 4610/6701/682 -f 4661/6762/682 4611/6702/682 4610/6701/682 -f 4611/6702/682 4662/6763/682 4663/6764/682 -f 4663/6764/682 4664/6765/682 4612/6703/682 -f 4612/6703/682 4665/6766/682 4666/6767/682 -f 4666/6767/682 4667/6768/682 4668/6769/682 -f 4668/6769/682 4669/6770/682 4670/6771/682 -f 4670/6771/682 4671/6772/682 4610/6701/682 -f 4611/6702/682 4663/6764/682 4612/6703/682 -f 4612/6703/682 4666/6767/682 4610/6701/682 -f 4666/6767/682 4668/6769/682 4610/6701/682 -f 4668/6769/682 4670/6771/682 4610/6701/682 -f 4614/6705/685 4613/6704/685 4617/6710/685 -f 4615/6711/686 4618/6773/686 4617/6710/686 -f 4621/6714/682 4672/6774/682 4673/6775/682 -f 4672/6774/682 4674/6776/682 4673/6775/682 -f 4674/6776/682 4675/6777/682 4673/6775/682 -f 4673/6775/682 4676/6778/682 4677/6779/682 -f 4677/6779/682 4678/6780/682 4619/6712/682 -f 4619/6712/682 4679/6781/682 4620/6713/682 -f 4679/6781/682 4680/6782/682 4620/6713/682 -f 4680/6782/682 4681/6783/682 4620/6713/682 -f 4620/6713/682 4682/6784/682 4683/6785/682 -f 4683/6785/682 4684/6786/682 4620/6713/682 -f 4684/6786/682 4621/6714/682 4620/6713/682 -f 4673/6775/682 4677/6779/682 4621/6714/682 -f 4677/6779/682 4619/6712/682 4621/6714/682 -f 4624/6717/682 4685/6787/682 4686/6788/682 -f 4685/6787/682 4687/6789/682 4686/6788/682 -f 4687/6789/682 4688/6790/682 4686/6788/682 -f 4686/6788/682 4689/6791/682 4690/6792/682 -f 4690/6792/682 4691/6793/682 4622/6715/682 -f 4622/6715/682 4692/6794/682 4623/6716/682 -f 4692/6794/682 4693/6795/682 4623/6716/682 -f 4693/6795/682 4694/6796/682 4623/6716/682 -f 4623/6716/682 4695/6797/682 4696/6798/682 -f 4696/6798/682 4697/6799/682 4623/6716/682 -f 4697/6799/682 4624/6717/682 4623/6716/682 -f 4686/6788/682 4690/6792/682 4624/6717/682 -f 4690/6792/682 4622/6715/682 4624/6717/682 -f 4627/6720/682 4698/6800/682 4699/6801/682 -f 4698/6800/682 4700/6802/682 4699/6801/682 -f 4700/6802/682 4701/6803/682 4699/6801/682 -f 4699/6801/682 4702/6804/682 4703/6805/682 -f 4703/6805/682 4704/6806/682 4625/6718/682 -f 4625/6718/682 4705/6807/682 4626/6719/682 -f 4705/6807/682 4706/6808/682 4626/6719/682 -f 4706/6808/682 4707/6809/682 4626/6719/682 -f 4626/6719/682 4708/6810/682 4709/6811/682 -f 4709/6811/682 4710/6812/682 4626/6719/682 -f 4710/6812/682 4627/6720/682 4626/6719/682 -f 4699/6801/682 4703/6805/682 4627/6720/682 -f 4703/6805/682 4625/6718/682 4627/6720/682 -f 4629/6722/688 4628/6721/688 4632/6727/688 -f 4630/6728/689 4633/6813/689 4632/6727/689 -f 4635/6730/691 4634/6729/691 4638/6735/691 -f 4636/6736/692 4639/6814/692 4638/6735/692 -f 4641/6738/694 4640/6737/694 4644/6743/694 -f 4642/6744/695 4645/6815/695 4644/6743/695 -s 1 -f 4711/6816/696 4669/6817/697 4712/6818/697 -f 4713/6819/698 4714/6820/699 4715/6821/699 -f 4716/6822/700 4717/6823/701 4718/6824/701 -f 4719/6825/702 4720/6826/698 4713/6819/698 -f 4721/6827/703 4722/6828/700 4716/6822/700 -f 4723/6829/704 4724/6830/702 4719/6825/702 -f 4721/6827/703 4725/6831/705 4726/6832/703 -f 4727/6833/706 4728/6834/704 4723/6835/704 -f 4729/6836/707 4725/6837/705 4730/6838/705 -f 4731/6839/708 4732/6840/706 4727/6833/706 -f 4733/6841/709 4734/6842/707 4729/6836/707 -f 4735/6843/710 4736/6844/708 4731/6839/708 -f 4737/6845/711 4738/6846/709 4733/6841/709 -f 4739/6847/712 4740/6848/710 4735/6843/710 -f 4715/6821/699 4741/6849/713 4742/6850/713 -f 4742/6850/713 4743/6851/711 4737/6845/711 -f 4718/6824/701 4744/6852/712 4739/6847/712 -f 4745/6853/714 4663/6854/715 4746/6855/715 -f 4714/6820/716 4720/6856/717 4747/6857/683 -f 4720/6826/717 4724/6858/718 4747/6859/683 -f 4724/6830/718 4728/6860/719 4747/6861/683 -f 4728/6834/719 4732/6862/720 4747/6863/683 -f 4732/6840/720 4736/6864/721 4747/6865/683 -f 4736/6844/721 4740/6866/722 4747/6867/683 -f 4740/6848/722 4744/6868/723 4747/6869/683 -f 4744/6852/723 4717/6870/724 4747/6871/683 -f 4717/6823/724 4722/6872/725 4747/6873/683 -f 4722/6828/725 4726/6874/726 4747/6875/683 -f 4726/6832/726 4725/6831/727 4747/6876/683 -f 4725/6837/727 4734/6877/728 4747/6878/683 -f 4734/6842/728 4738/6879/729 4747/6880/683 -f 4738/6846/729 4743/6881/730 4747/6882/683 -f 4743/6851/730 4741/6883/731 4747/6884/683 -f 4741/6849/731 4714/6885/716 4747/6886/683 -f 4748/6887/732 4670/6888/696 4711/6889/696 -f 4749/6890/733 4664/6891/714 4745/6853/714 -f 4750/6892/734 4671/6893/732 4748/6887/732 -f 4751/6894/735 4612/6895/733 4749/6890/733 -f 4752/6896/736 4610/6897/734 4750/6892/734 -f 4753/6898/737 4665/6899/735 4751/6894/735 -f 4754/6900/738 4660/6901/739 4755/6902/739 -f 4755/6902/739 4659/6903/736 4752/6896/736 -f 4756/6904/740 4666/6905/737 4753/6898/737 -f 4757/6906/741 4661/6907/738 4754/6900/738 -f 4758/6908/742 4759/6909/693 4760/6910/693 -f 4761/6911/743 4759/6909/693 4762/6912/743 -f 4761/6911/743 4763/6913/744 4764/6914/744 -f 4765/6915/745 4763/6916/744 4766/6917/745 -f 4765/6915/745 4767/6918/687 4768/6919/687 -f 4768/6919/687 4769/6920/746 4770/6921/746 -f 4770/6921/746 4771/6922/747 4772/6923/747 -f 4772/6923/747 4773/6924/748 4774/6925/748 -f 4774/6925/748 4775/6926/690 4776/6927/690 -f 4777/6928/749 4775/6926/690 4778/6929/749 -f 4777/6928/749 4779/6930/750 4780/6931/750 -f 4780/6931/750 4781/6932/751 4782/6933/751 -f 4782/6933/751 4783/6934/684 4784/6935/684 -f 4785/6936/752 4783/6934/684 4786/6937/752 -f 4787/6938/753 4786/6937/752 4788/6939/753 -f 4658/6940/732 4776/6927/734 4576/6941/734 -f 4574/6942/733 4761/6911/735 4653/6943/735 -f 4576/6941/734 4777/6928/736 4646/6944/736 -f 4653/6943/735 4764/6914/737 4654/6945/737 -f 4648/6946/739 4782/6933/738 4649/6947/738 -f 4646/6944/736 4780/6931/739 4648/6946/739 -f 4654/6948/737 4765/6915/740 4655/6949/740 -f 4649/6947/738 4784/6935/741 4647/6950/741 -f 4655/6949/740 4768/6919/754 4575/6951/754 -f 4647/6950/741 4785/6936/755 4650/6952/755 -f 4575/6951/754 4770/6921/697 4656/6953/697 -f 4650/6952/755 4787/6938/715 4651/6954/715 -f 4656/6953/697 4772/6923/696 4657/6955/696 -f 4651/6954/715 4758/6908/714 4652/6956/714 -f 4657/6955/696 4774/6925/732 4658/6940/732 -f 4652/6956/714 4760/6910/733 4574/6942/733 -f 4787/6938/753 4789/6957/742 4758/6908/742 -f 4583/6958/756 4754/6900/757 4585/6959/757 -f 4746/6855/715 4662/6960/755 4790/6961/755 -f 4558/6647/736 4591/6681/734 4552/6641/734 -f 4554/6643/735 4609/6700/733 4544/6633/733 -f 4552/6641/734 4594/6684/732 4547/6636/732 -f 4544/6633/733 4579/6669/714 4545/6634/714 -f 4547/6636/732 4596/6686/696 4577/6666/696 -f 4545/6634/714 4582/6672/715 4570/6659/715 -f 4577/6745/696 4598/6688/697 4572/6661/697 -f 4570/6659/715 4584/6674/755 4565/6654/755 -f 4572/6661/697 4600/6691/754 4568/6657/754 -f 4565/6654/755 4586/6676/741 4566/6655/741 -f 4568/6657/754 4604/6695/740 4564/6653/740 -f 4566/6655/741 4588/6678/738 4556/6645/738 -f 4564/6653/740 4603/6694/737 4553/6642/737 -f 4557/6646/739 4592/6682/736 4558/6647/736 -f 4556/6645/738 4590/6680/739 4557/6646/739 -f 4553/6642/737 4608/6699/735 4554/6643/735 -f 4601/6962/758 4791/6963/759 4756/6904/758 -f 4581/6964/760 4757/6906/756 4583/6958/756 -f 4599/6965/761 4791/6963/759 4602/6966/759 -f 4578/6967/762 4790/6961/760 4581/6964/760 -f 4599/6965/761 4711/6816/763 4712/6818/761 -f 4578/6967/762 4745/6853/764 4746/6855/762 -f 4595/6968/765 4711/6889/763 4597/6969/763 -f 4607/6970/766 4745/6853/764 4580/6971/764 -f 4593/6972/767 4748/6887/765 4595/6968/765 -f 4607/6970/766 4751/6894/768 4749/6890/766 -f 4589/6973/769 4750/6892/767 4593/6972/767 -f 4606/6974/770 4751/6894/768 4605/6975/768 -f 4587/6976/771 4754/6900/757 4755/6902/771 -f 4587/6976/771 4752/6896/769 4589/6973/769 -f 4601/6962/758 4753/6898/770 4606/6974/770 -f 4791/6963/754 4667/6977/740 4756/6904/740 -f 4790/6961/755 4611/6978/741 4757/6906/741 -f 4712/6818/697 4668/6979/754 4791/6963/754 -f 4543/6632/714 4730/6838/715 4721/6827/714 -f 4573/6662/715 4729/6836/755 4730/6838/715 -f 4569/6658/755 4733/6841/741 4729/6836/755 -f 4561/6650/741 4737/6845/738 4733/6841/741 -f 4562/6651/738 4742/6850/739 4737/6845/738 -f 4555/6644/739 4715/6821/736 4742/6850/739 -f 4551/6640/736 4713/6819/734 4715/6821/736 -f 4546/6635/734 4719/6825/732 4713/6819/734 -f 4548/6637/732 4723/6829/696 4719/6825/732 -f 4571/6660/696 4727/6833/697 4723/6835/696 -f 4567/6656/697 4731/6839/754 4727/6833/697 -f 4563/6652/754 4735/6843/740 4731/6839/754 -f 4559/6648/740 4739/6847/737 4735/6843/740 -f 4560/6649/737 4718/6824/735 4739/6847/737 -f 4549/6638/735 4716/6822/733 4718/6824/735 -f 4550/6639/733 4721/6827/714 4716/6822/733 -f 4792/6980/741 4793/6981/772 4794/6982/741 -f 4795/6983/755 4794/6982/741 4796/6984/755 -f 4797/6985/773 4796/6984/755 4798/6986/773 -f 4799/6987/742 4800/6988/693 4801/6989/693 -f 4802/6990/743 4800/6988/693 4803/6991/743 -f 4802/6990/743 4804/6992/744 4805/6993/744 -f 4806/6994/745 4804/6995/744 4807/6996/745 -f 4806/6994/745 4808/6997/687 4809/6998/687 -f 4809/6998/687 4810/6999/746 4811/7000/746 -f 4811/7000/746 4812/7001/747 4813/7002/747 -f 4814/7003/748 4812/7001/747 4815/7004/748 -f 4814/7003/748 4816/7005/690 4817/7006/690 -f 4818/7007/749 4816/7005/690 4819/7008/749 -f 4820/7009/750 4819/7008/749 4821/7010/750 -f 4820/7009/750 4822/7011/751 4823/7012/751 -f 4824/7013/684 4822/7011/751 4825/7014/684 -f 4826/7015/752 4825/7014/684 4827/7016/752 -f 4828/7017/753 4827/7016/752 4829/7018/753 -f 4684/7019/732 4817/7006/734 4621/7020/734 -f 4619/7021/733 4802/6990/735 4679/7022/735 -f 4621/7020/734 4818/7007/736 4672/7023/736 -f 4679/7022/735 4805/6993/737 4680/7024/737 -f 4674/7025/739 4823/7012/738 4675/7026/738 -f 4672/7023/736 4820/7009/739 4674/7025/739 -f 4680/7027/737 4806/6994/740 4681/7028/740 -f 4675/7026/738 4824/7013/741 4673/7029/741 -f 4681/7028/740 4809/6998/754 4620/7030/754 -f 4673/7029/741 4826/7015/755 4676/7031/755 -f 4620/7030/754 4811/7000/697 4682/7032/697 -f 4676/7031/755 4828/7017/715 4677/7033/715 -f 4682/7032/697 4813/7002/696 4683/7034/696 -f 4677/7033/715 4799/6987/714 4678/7035/714 -f 4683/7034/696 4814/7003/732 4684/7019/732 -f 4678/7035/714 4801/6989/733 4619/7021/733 -f 4828/7017/753 4830/7036/742 4799/6987/742 -f 4831/7037/742 4832/7038/693 4833/7039/693 -f 4834/7040/743 4832/7038/693 4835/7041/743 -f 4834/7040/743 4836/7042/744 4837/7043/744 -f 4838/7044/745 4836/7045/744 4839/7046/745 -f 4838/7044/745 4840/7047/687 4841/7048/687 -f 4841/7048/687 4842/7049/746 4843/7050/746 -f 4843/7050/746 4844/7051/747 4845/7052/747 -f 4846/7053/748 4844/7051/747 4847/7054/748 -f 4846/7053/748 4848/7055/690 4849/7056/690 -f 4850/7057/749 4848/7055/690 4851/7058/749 -f 4850/7057/749 4852/7059/750 4853/7060/750 -f 4853/7060/750 4854/7061/751 4855/7062/751 -f 4855/7062/751 4856/7063/684 4857/7064/684 -f 4858/7065/752 4856/7063/684 4859/7066/752 -f 4860/7067/753 4859/7066/752 4861/7068/753 -f 4697/7069/732 4849/7056/734 4624/7070/734 -f 4622/7071/733 4834/7040/735 4692/7072/735 -f 4624/7070/734 4850/7057/736 4685/7073/736 -f 4692/7072/735 4837/7043/737 4693/7074/737 -f 4687/7075/739 4855/7062/738 4688/7076/738 -f 4685/7073/736 4853/7060/739 4687/7075/739 -f 4693/7077/737 4838/7044/740 4694/7078/740 -f 4688/7076/738 4857/7064/741 4686/7079/741 -f 4694/7078/740 4841/7048/754 4623/7080/754 -f 4686/7079/741 4858/7065/755 4689/7081/755 -f 4623/7080/754 4843/7050/697 4695/7082/697 -f 4689/7081/755 4860/7067/715 4690/7083/715 -f 4695/7082/697 4845/7052/696 4696/7084/696 -f 4690/7083/715 4831/7037/714 4691/7085/714 -f 4696/7084/696 4846/7053/732 4697/7069/732 -f 4691/7085/714 4833/7039/733 4622/7071/733 -f 4860/7067/753 4862/7086/742 4831/7037/742 -f 4863/7087/742 4864/7088/693 4865/7089/693 -f 4866/7090/743 4864/7088/693 4867/7091/743 -f 4866/7090/743 4868/7092/744 4869/7093/744 -f 4870/7094/745 4868/7095/744 4871/7096/745 -f 4870/7094/745 4872/7097/687 4873/7098/687 -f 4873/7098/687 4874/7099/746 4875/7100/746 -f 4875/7100/746 4876/7101/747 4877/7102/747 -f 4878/7103/748 4876/7101/747 4879/7104/748 -f 4878/7103/748 4880/7105/690 4881/7106/690 -f 4882/7107/749 4880/7105/690 4883/7108/749 -f 4882/7107/749 4884/7109/750 4885/7110/750 -f 4885/7110/750 4886/7111/751 4887/7112/751 -f 4887/7112/751 4888/7113/684 4889/7114/684 -f 4890/7115/752 4888/7113/684 4891/7116/752 -f 4892/7117/753 4891/7116/752 4893/7118/753 -f 4710/7119/732 4881/7106/734 4627/7120/734 -f 4625/7121/733 4866/7090/735 4705/7122/735 -f 4627/7120/734 4882/7107/736 4698/7123/736 -f 4705/7122/735 4869/7093/737 4706/7124/737 -f 4700/7125/739 4887/7112/738 4701/7126/738 -f 4698/7123/736 4885/7110/739 4700/7125/739 -f 4706/7127/737 4870/7094/740 4707/7128/740 -f 4701/7126/738 4889/7114/741 4699/7129/741 -f 4707/7128/740 4873/7098/754 4626/7130/754 -f 4699/7129/741 4890/7115/755 4702/7131/755 -f 4626/7130/754 4875/7100/697 4708/7132/697 -f 4702/7131/755 4892/7117/715 4703/7133/715 -f 4708/7132/697 4877/7102/696 4709/7134/696 -f 4703/7133/715 4863/7087/714 4704/7135/714 -f 4709/7134/696 4878/7103/732 4710/7119/732 -f 4704/7135/714 4865/7089/733 4625/7121/733 -f 4892/7117/753 4894/7136/742 4863/7087/742 -f 4895/7137/754 4896/7138/774 4897/7139/754 -f 4898/7140/697 4897/7139/754 4899/7141/697 -f 4900/7142/775 4899/7141/697 4901/7143/775 -f 4711/6816/696 4670/7144/696 4669/6817/697 -f 4713/6819/698 4720/6856/698 4714/6820/699 -f 4716/6822/700 4722/6872/700 4717/6823/701 -f 4719/6825/702 4724/6858/702 4720/6826/698 -f 4721/6827/703 4726/6874/703 4722/6828/700 -f 4723/6829/704 4728/6860/704 4724/6830/702 -f 4721/6827/703 4730/6838/705 4725/6831/705 -f 4727/6833/706 4732/6862/706 4728/6834/704 -f 4729/6836/707 4734/6877/707 4725/6837/705 -f 4731/6839/708 4736/6864/708 4732/6840/706 -f 4733/6841/709 4738/6879/709 4734/6842/707 -f 4735/6843/710 4740/6866/710 4736/6844/708 -f 4737/6845/711 4743/6881/711 4738/6846/709 -f 4739/6847/712 4744/6868/712 4740/6848/710 -f 4715/6821/699 4714/6885/699 4741/6849/713 -f 4742/6850/713 4741/6883/713 4743/6851/711 -f 4718/6824/701 4717/6870/701 4744/6852/712 -f 4745/6853/714 4664/6891/714 4663/6854/715 -f 4748/6887/732 4671/6893/732 4670/6888/696 -f 4749/6890/733 4612/6895/733 4664/6891/714 -f 4750/6892/734 4610/6897/734 4671/6893/732 -f 4751/6894/735 4665/6899/735 4612/6895/733 -f 4752/6896/736 4659/6903/736 4610/6897/734 -f 4753/6898/737 4666/6905/737 4665/6899/735 -f 4754/6900/738 4661/6907/738 4660/6901/739 -f 4755/6902/739 4660/6901/739 4659/6903/736 -f 4756/6904/740 4667/6977/740 4666/6905/737 -f 4757/6906/741 4611/6978/741 4661/6907/738 -f 4758/6908/742 4789/6957/742 4759/6909/693 -f 4761/6911/743 4760/6910/693 4759/6909/693 -f 4761/6911/743 4762/6912/743 4763/6913/744 -f 4765/6915/745 4764/7145/744 4763/6916/744 -f 4765/6915/745 4766/6917/745 4767/6918/687 -f 4768/6919/687 4767/6918/687 4769/6920/746 -f 4770/6921/746 4769/6920/746 4771/6922/747 -f 4772/6923/747 4771/6922/747 4773/6924/748 -f 4774/6925/748 4773/6924/748 4775/6926/690 -f 4777/6928/749 4776/6927/690 4775/6926/690 -f 4777/6928/749 4778/6929/749 4779/6930/750 -f 4780/6931/750 4779/6930/750 4781/6932/751 -f 4782/6933/751 4781/6932/751 4783/6934/684 -f 4785/6936/752 4784/6935/684 4783/6934/684 -f 4787/6938/753 4785/6936/752 4786/6937/752 -f 4658/6940/732 4774/6925/732 4776/6927/734 -f 4574/6942/733 4760/6910/733 4761/6911/735 -f 4576/6941/734 4776/6927/734 4777/6928/736 -f 4653/6943/735 4761/6911/735 4764/6914/737 -f 4648/6946/739 4780/6931/739 4782/6933/738 -f 4646/6944/736 4777/6928/736 4780/6931/739 -f 4654/6948/737 4764/7145/737 4765/6915/740 -f 4649/6947/738 4782/6933/738 4784/6935/741 -f 4655/6949/740 4765/6915/740 4768/6919/754 -f 4647/6950/741 4784/6935/741 4785/6936/755 -f 4575/6951/754 4768/6919/754 4770/6921/697 -f 4650/6952/755 4785/6936/755 4787/6938/715 -f 4656/6953/697 4770/6921/697 4772/6923/696 -f 4651/6954/715 4787/6938/715 4758/6908/714 -f 4657/6955/696 4772/6923/696 4774/6925/732 -f 4652/6956/714 4758/6908/714 4760/6910/733 -f 4787/6938/753 4788/6939/753 4789/6957/742 -f 4583/6958/756 4757/6906/756 4754/6900/757 -f 4746/6855/715 4663/6854/715 4662/6960/755 -f 4558/6647/736 4592/6682/736 4591/6681/734 -f 4554/6643/735 4608/6699/735 4609/6700/733 -f 4552/6641/734 4591/6681/734 4594/6684/732 -f 4544/6633/733 4609/6700/733 4579/6669/714 -f 4547/6636/732 4594/6684/732 4596/6686/696 -f 4545/6634/714 4579/6669/714 4582/6672/715 -f 4577/6745/696 4596/6689/696 4598/6688/697 -f 4570/6659/715 4582/6672/715 4584/6674/755 -f 4572/6661/697 4598/6688/697 4600/6691/754 -f 4565/6654/755 4584/6674/755 4586/6676/741 -f 4568/6657/754 4600/6691/754 4604/6695/740 -f 4566/6655/741 4586/6676/741 4588/6678/738 -f 4564/6653/740 4604/6695/740 4603/6694/737 -f 4557/6646/739 4590/6680/739 4592/6682/736 -f 4556/6645/738 4588/6678/738 4590/6680/739 -f 4553/6642/737 4603/6694/737 4608/6699/735 -f 4601/6962/758 4602/6966/759 4791/6963/759 -f 4581/6964/760 4790/6961/760 4757/6906/756 -f 4599/6965/761 4712/6818/761 4791/6963/759 -f 4578/6967/762 4746/6855/762 4790/6961/760 -f 4599/6965/761 4597/6687/763 4711/6816/763 -f 4578/6967/762 4580/6971/764 4745/6853/764 -f 4595/6968/765 4748/6887/765 4711/6889/763 -f 4607/6970/766 4749/6890/766 4745/6853/764 -f 4593/6972/767 4750/6892/767 4748/6887/765 -f 4607/6970/766 4605/6975/768 4751/6894/768 -f 4589/6973/769 4752/6896/769 4750/6892/767 -f 4606/6974/770 4753/6898/770 4751/6894/768 -f 4587/6976/771 4585/6959/757 4754/6900/757 -f 4587/6976/771 4755/6902/771 4752/6896/769 -f 4601/6962/758 4756/6904/758 4753/6898/770 -f 4791/6963/754 4668/6979/754 4667/6977/740 -f 4790/6961/755 4662/6960/755 4611/6978/741 -f 4712/6818/697 4669/6817/697 4668/6979/754 -f 4543/6632/714 4573/6662/715 4730/6838/715 -f 4573/6662/715 4569/6658/755 4729/6836/755 -f 4569/6658/755 4561/6650/741 4733/6841/741 -f 4561/6650/741 4562/6651/738 4737/6845/738 -f 4562/6651/738 4555/6644/739 4742/6850/739 -f 4555/6644/739 4551/6640/736 4715/6821/736 -f 4551/6640/736 4546/6635/734 4713/6819/734 -f 4546/6635/734 4548/6637/732 4719/6825/732 -f 4548/6637/732 4571/6667/696 4723/6829/696 -f 4571/6660/696 4567/6656/697 4727/6833/697 -f 4567/6656/697 4563/6652/754 4731/6839/754 -f 4563/6652/754 4559/6648/740 4735/6843/740 -f 4559/6648/740 4560/6649/737 4739/6847/737 -f 4560/6649/737 4549/6638/735 4718/6824/735 -f 4549/6638/735 4550/6639/733 4716/6822/733 -f 4550/6639/733 4543/6632/714 4721/6827/714 -f 4792/6980/741 4902/7146/772 4793/6981/772 -f 4795/6983/755 4792/6980/741 4794/6982/741 -f 4797/6985/773 4795/6983/755 4796/6984/755 -f 4799/6987/742 4830/7036/742 4800/6988/693 -f 4802/6990/743 4801/6989/693 4800/6988/693 -f 4802/6990/743 4803/6991/743 4804/6992/744 -f 4806/6994/745 4805/7147/744 4804/6995/744 -f 4806/6994/745 4807/6996/745 4808/6997/687 -f 4809/6998/687 4808/6997/687 4810/6999/746 -f 4811/7000/746 4810/6999/746 4812/7001/747 -f 4814/7003/748 4813/7002/747 4812/7001/747 -f 4814/7003/748 4815/7004/748 4816/7005/690 -f 4818/7007/749 4817/7006/690 4816/7005/690 -f 4820/7009/750 4818/7007/749 4819/7008/749 -f 4820/7009/750 4821/7010/750 4822/7011/751 -f 4824/7013/684 4823/7012/751 4822/7011/751 -f 4826/7015/752 4824/7013/684 4825/7014/684 -f 4828/7017/753 4826/7015/752 4827/7016/752 -f 4684/7019/732 4814/7003/732 4817/7006/734 -f 4619/7021/733 4801/6989/733 4802/6990/735 -f 4621/7020/734 4817/7006/734 4818/7007/736 -f 4679/7022/735 4802/6990/735 4805/6993/737 -f 4674/7025/739 4820/7009/739 4823/7012/738 -f 4672/7023/736 4818/7007/736 4820/7009/739 -f 4680/7027/737 4805/7147/737 4806/6994/740 -f 4675/7026/738 4823/7012/738 4824/7013/741 -f 4681/7028/740 4806/6994/740 4809/6998/754 -f 4673/7029/741 4824/7013/741 4826/7015/755 -f 4620/7030/754 4809/6998/754 4811/7000/697 -f 4676/7031/755 4826/7015/755 4828/7017/715 -f 4682/7032/697 4811/7000/697 4813/7002/696 -f 4677/7033/715 4828/7017/715 4799/6987/714 -f 4683/7034/696 4813/7002/696 4814/7003/732 -f 4678/7035/714 4799/6987/714 4801/6989/733 -f 4828/7017/753 4829/7018/753 4830/7036/742 -f 4831/7037/742 4862/7086/742 4832/7038/693 -f 4834/7040/743 4833/7039/693 4832/7038/693 -f 4834/7040/743 4835/7041/743 4836/7042/744 -f 4838/7044/745 4837/7148/744 4836/7045/744 -f 4838/7044/745 4839/7046/745 4840/7047/687 -f 4841/7048/687 4840/7047/687 4842/7049/746 -f 4843/7050/746 4842/7049/746 4844/7051/747 -f 4846/7053/748 4845/7052/747 4844/7051/747 -f 4846/7053/748 4847/7054/748 4848/7055/690 -f 4850/7057/749 4849/7056/690 4848/7055/690 -f 4850/7057/749 4851/7058/749 4852/7059/750 -f 4853/7060/750 4852/7059/750 4854/7061/751 -f 4855/7062/751 4854/7061/751 4856/7063/684 -f 4858/7065/752 4857/7064/684 4856/7063/684 -f 4860/7067/753 4858/7065/752 4859/7066/752 -f 4697/7069/732 4846/7053/732 4849/7056/734 -f 4622/7071/733 4833/7039/733 4834/7040/735 -f 4624/7070/734 4849/7056/734 4850/7057/736 -f 4692/7072/735 4834/7040/735 4837/7043/737 -f 4687/7075/739 4853/7060/739 4855/7062/738 -f 4685/7073/736 4850/7057/736 4853/7060/739 -f 4693/7077/737 4837/7148/737 4838/7044/740 -f 4688/7076/738 4855/7062/738 4857/7064/741 -f 4694/7078/740 4838/7044/740 4841/7048/754 -f 4686/7079/741 4857/7064/741 4858/7065/755 -f 4623/7080/754 4841/7048/754 4843/7050/697 -f 4689/7081/755 4858/7065/755 4860/7067/715 -f 4695/7082/697 4843/7050/697 4845/7052/696 -f 4690/7083/715 4860/7067/715 4831/7037/714 -f 4696/7084/696 4845/7052/696 4846/7053/732 -f 4691/7085/714 4831/7037/714 4833/7039/733 -f 4860/7067/753 4861/7068/753 4862/7086/742 -f 4863/7087/742 4894/7136/742 4864/7088/693 -f 4866/7090/743 4865/7089/693 4864/7088/693 -f 4866/7090/743 4867/7091/743 4868/7092/744 -f 4870/7094/745 4869/7149/744 4868/7095/744 -f 4870/7094/745 4871/7096/745 4872/7097/687 -f 4873/7098/687 4872/7097/687 4874/7099/746 -f 4875/7100/746 4874/7099/746 4876/7101/747 -f 4878/7103/748 4877/7102/747 4876/7101/747 -f 4878/7103/748 4879/7104/748 4880/7105/690 -f 4882/7107/749 4881/7106/690 4880/7105/690 -f 4882/7107/749 4883/7108/749 4884/7109/750 -f 4885/7110/750 4884/7109/750 4886/7111/751 -f 4887/7112/751 4886/7111/751 4888/7113/684 -f 4890/7115/752 4889/7114/684 4888/7113/684 -f 4892/7117/753 4890/7115/752 4891/7116/752 -f 4710/7119/732 4878/7103/732 4881/7106/734 -f 4625/7121/733 4865/7089/733 4866/7090/735 -f 4627/7120/734 4881/7106/734 4882/7107/736 -f 4705/7122/735 4866/7090/735 4869/7093/737 -f 4700/7125/739 4885/7110/739 4887/7112/738 -f 4698/7123/736 4882/7107/736 4885/7110/739 -f 4706/7127/737 4869/7149/737 4870/7094/740 -f 4701/7126/738 4887/7112/738 4889/7114/741 -f 4707/7128/740 4870/7094/740 4873/7098/754 -f 4699/7129/741 4889/7114/741 4890/7115/755 -f 4626/7130/754 4873/7098/754 4875/7100/697 -f 4702/7131/755 4890/7115/755 4892/7117/715 -f 4708/7132/697 4875/7100/697 4877/7102/696 -f 4703/7133/715 4892/7117/715 4863/7087/714 -f 4709/7134/696 4877/7102/696 4878/7103/732 -f 4704/7135/714 4863/7087/714 4865/7089/733 -f 4892/7117/753 4893/7118/753 4894/7136/742 -f 4895/7137/754 4903/7150/774 4896/7138/774 -f 4898/7140/697 4895/7137/754 4897/7139/754 -f 4900/7142/775 4898/7140/697 4899/7141/697 -o Strong_Missile -v 0.866138 2.750000 0.358766 -v 0.750000 2.750000 0.000000 -v 0.937500 2.750000 0.000000 -v 0.692910 2.750000 -0.287013 -v 0.866138 2.750000 -0.358765 -v 0.662913 2.750000 -0.662913 -v 0.530329 2.750000 -0.530331 -v 0.358766 2.750000 -0.866137 -v 0.287012 2.750000 -0.692910 -v 0.000000 2.750000 -0.937500 -v 0.000000 2.750000 -0.750000 -v -0.358766 2.750000 -0.866137 -v -0.287013 2.750000 -0.692910 -v -0.662913 2.750000 -0.662913 -v -0.692910 2.750000 -0.287013 -v -0.866138 2.750000 -0.358765 -v -0.937500 2.750000 0.000000 -v -0.692910 2.750000 0.287013 -v -0.866138 2.750000 0.358766 -v -0.530329 2.750000 0.530330 -v -0.662913 2.750000 0.662913 -v -0.358766 2.750000 0.866138 -v -0.287013 2.750000 0.692910 -v 0.000000 2.750000 0.937500 -v 0.287013 2.750000 0.692910 -v 0.358766 2.750000 0.866138 -v 0.662913 2.750000 0.662913 -v 0.530329 2.750000 0.530331 -v -0.530329 2.000000 -0.530329 -v 0.530329 2.000000 -0.530331 -v 0.530329 2.000000 0.530331 -v 1.328476 8.750000 -1.328476 -v 0.499836 8.375000 -0.566127 -v 0.499836 9.125000 -0.566127 -v 0.566127 8.375000 -0.499836 -v 0.566127 9.125000 -0.499836 -v 1.328476 8.375000 -1.328476 -v 1.328478 8.750000 1.328477 -v 0.566127 8.375000 0.499836 -v 0.566127 9.125000 0.499836 -v 0.499836 8.375000 0.566127 -v 0.499836 9.125000 0.566127 -v 1.328478 8.375000 1.328477 -v 1.325826 4.250000 1.325825 -v 0.563477 2.375000 0.497184 -v 0.563477 5.375000 0.497184 -v 0.497184 2.375000 0.563475 -v 0.497184 5.375000 0.563475 -v 1.325826 2.375000 1.325824 -v -0.563477 2.375000 -0.497184 -v -1.325826 2.375000 -1.325824 -v -0.497184 2.375000 -0.563475 -v -1.325826 4.250000 -1.325824 -v -0.563477 5.375000 -0.497184 -v -0.497184 5.375000 -0.563475 -v 1.325824 4.250000 -1.325824 -v 0.497184 2.375000 -0.563475 -v 0.497184 5.375000 -0.563475 -v 0.563475 2.375000 -0.497184 -v 0.563475 5.375000 -0.497184 -v 1.325824 2.375000 -1.325824 -v -0.566127 8.375000 -0.499836 -v -1.328476 8.375000 -1.328476 -v -0.499836 8.375000 -0.566127 -v -1.328476 8.750000 -1.328476 -v -0.566127 9.125000 -0.499836 -v -0.499836 9.125000 -0.566127 -v -0.497184 2.375000 0.563477 -v -1.325824 2.375000 1.325824 -v -0.563475 2.375000 0.497184 -v -1.325824 4.250000 1.325825 -v -0.497184 5.375000 0.563477 -v -0.563475 5.375000 0.497184 -v -0.499836 8.375000 0.566127 -v -1.328476 8.375000 1.328477 -v -0.566127 8.375000 0.499836 -v -1.328476 8.750000 1.328477 -v -0.499836 9.125000 0.566127 -v -0.566127 9.125000 0.499836 -v 0.692910 2.750000 0.287013 -v -0.530329 2.750000 -0.530329 -v -0.750000 2.750000 0.000000 -v 0.000000 2.750000 0.750000 -v -0.287013 2.000000 -0.692910 -v 0.000000 2.000000 -0.750000 -v 0.287012 2.000000 -0.692910 -v 0.692910 2.000000 -0.287013 -v 0.750000 2.000000 0.000000 -v 0.692910 2.000000 0.287013 -v 0.287013 2.000000 0.692910 -v 0.000000 2.000000 0.750000 -v -0.287013 2.000000 0.692910 -v -0.530329 2.000000 0.530329 -v -0.692910 2.000000 0.287013 -v -0.750000 2.000000 0.000000 -v -0.692910 2.000000 -0.287013 -v -0.662913 8.187500 -0.662913 -v -0.361636 9.312500 -0.873066 -v -0.358766 8.187500 -0.866137 -v 0.662913 8.187500 0.662913 -v 0.361635 9.312500 0.873066 -v 0.358766 8.187500 0.866138 -v -0.866138 8.187500 -0.358765 -v -0.668216 9.312500 -0.668215 -v 0.866138 8.187500 0.358766 -v 0.668216 9.312500 0.668216 -v -0.937500 8.187500 0.000000 -v -0.873066 9.312500 -0.361636 -v 0.937500 8.187500 0.000000 -v 0.873066 9.312500 0.361637 -v -0.866138 8.187500 0.358766 -v -0.945000 9.312500 0.000000 -v 0.866138 8.187500 -0.358765 -v 0.945000 9.312500 0.000000 -v -0.662913 8.187500 0.662913 -v -0.873066 9.312500 0.361637 -v 0.662913 8.187500 -0.662913 -v 0.873066 9.312500 -0.361636 -v -0.358766 8.187500 0.866138 -v -0.668216 9.312500 0.668216 -v 0.358766 8.187500 -0.866137 -v 0.668216 9.312500 -0.668215 -v 0.000000 8.187500 0.937500 -v -0.361636 9.312500 0.873066 -v 0.000000 9.312500 -0.945000 -v 0.000000 8.187500 -0.937500 -v 0.361635 9.312500 -0.873066 -v 0.000000 9.312500 0.945000 -v -0.287013 9.500000 0.692910 -v 0.000000 9.500000 -0.750000 -v 0.287012 9.500000 -0.692910 -v 0.000000 9.500000 0.750000 -v -0.287013 9.500000 -0.692910 -v 0.287013 9.500000 0.692910 -v -0.530329 9.500000 -0.530329 -v 0.692910 9.500000 0.287013 -v 0.530329 9.500000 0.530331 -v -0.692910 9.500000 -0.287013 -v -0.750000 9.500000 0.000000 -v 0.692910 9.500000 -0.287013 -v 0.750000 9.500000 0.000000 -v -0.692910 9.500000 0.287013 -v -0.530329 9.500000 0.530330 -v 0.530329 9.500000 -0.530331 -v 0.530329 8.000000 0.530331 -v 0.000000 11.000000 0.000000 -v 0.692910 8.000000 0.287013 -v 0.750000 8.000000 0.000000 -v 0.692910 8.000000 -0.287013 -v 0.530329 8.000000 -0.530331 -v 0.000000 8.000000 -0.750000 -v -0.287013 8.000000 -0.692910 -v -0.530329 8.000000 -0.530329 -v -0.692910 8.000000 -0.287013 -v -0.750000 8.000000 0.000000 -v -0.692910 8.000000 0.287013 -v -0.530329 8.000000 0.530330 -v -0.287013 8.000000 0.692910 -v 0.000000 8.000000 0.750000 -v 0.287013 8.000000 0.692910 -v -0.530329 7.250000 -0.530329 -v 0.530329 7.250000 0.530331 -v -0.692910 7.250000 -0.287013 -v 0.692910 7.250000 0.287013 -v -0.750000 7.250000 0.000000 -v 0.750000 7.250000 0.000000 -v -0.692910 7.250000 0.287013 -v 0.692910 7.250000 -0.287013 -v -0.530329 7.250000 0.530330 -v 0.530329 7.250000 -0.530331 -v -0.287013 7.250000 0.692910 -v 0.287012 7.250000 -0.692910 -v 0.287012 8.000000 -0.692910 -v 0.000000 7.250000 0.750000 -v -0.287013 7.250000 -0.692910 -v 0.000000 7.250000 -0.750000 -v 0.287013 7.250000 0.692910 -v -0.358766 5.750000 0.866138 -v 0.358766 5.750000 -0.866137 -v 0.000000 5.750000 0.937500 -v -0.358766 5.750000 -0.866137 -v 0.000000 5.750000 -0.937500 -v 0.358766 5.750000 0.866138 -v -0.662913 5.750000 -0.662913 -v 0.662913 5.750000 0.662913 -v -0.866138 5.750000 -0.358765 -v 0.866138 5.750000 0.358766 -v -0.937500 5.750000 0.000000 -v 0.937500 5.750000 0.000000 -v -0.866138 5.750000 0.358766 -v 0.866138 5.750000 -0.358765 -v -0.662913 5.750000 0.662913 -v 0.662913 5.750000 -0.662913 -vt 0.350000 0.102041 -vt 0.387500 0.081633 -vt 0.400000 0.102041 -vt 0.437500 0.081633 -vt 0.450000 0.102041 -vt 0.450000 0.081633 -vt 0.500000 0.102041 -vt 0.500000 0.081633 -vt 0.550000 0.102041 -vt 0.550000 0.081633 -vt 0.600000 0.102041 -vt 0.600000 0.081633 -vt 0.650000 0.102041 -vt 0.650000 0.081633 -vt 0.700000 0.102041 -vt 0.737500 0.081633 -vt 0.750000 0.102041 -vt 0.750000 0.081633 -vt 0.800000 0.102041 -vt 0.000000 0.102041 -vt 0.037500 0.081633 -vt 0.050000 0.102041 -vt 0.087500 0.081633 -vt 0.100000 0.102041 -vt 0.100000 0.081633 -vt 0.150000 0.102041 -vt 0.150000 0.081633 -vt 0.200000 0.102041 -vt 0.237500 0.081633 -vt 0.250000 0.102041 -vt 0.250000 0.081633 -vt 0.300000 0.102041 -vt 0.300000 0.081633 -vt 0.970508 0.024075 -vt 0.970508 0.139190 -vt 0.829492 0.139190 -vt 0.950000 0.561224 -vt 0.800000 0.520408 -vt 0.800000 0.602041 -vt 0.800000 0.520408 -vt 0.800000 0.602041 -vt 0.950000 0.602041 -vt 0.800000 0.612245 -vt 0.800000 0.510204 -vt 0.950000 0.520408 -vt 0.950000 0.561224 -vt 0.800000 0.520408 -vt 0.800000 0.602041 -vt 0.800000 0.520408 -vt 0.800000 0.602041 -vt 0.950000 0.602041 -vt 0.800000 0.612245 -vt 0.800000 0.510204 -vt 0.950000 0.520408 -vt 0.950000 0.377551 -vt 0.800000 0.173469 -vt 0.800000 0.500000 -vt 0.800000 0.173469 -vt 0.800000 0.500000 -vt 0.950000 0.500000 -vt 0.800000 0.510204 -vt 0.800000 0.163265 -vt 0.950000 0.173469 -vt 0.800000 0.163265 -vt 0.950000 0.173469 -vt 0.800000 0.173469 -vt 0.950000 0.500000 -vt 0.800000 0.510204 -vt 0.800000 0.500000 -vt 0.950000 0.377551 -vt 0.800000 0.173469 -vt 0.800000 0.500000 -vt 0.950000 0.377551 -vt 0.800000 0.173469 -vt 0.800000 0.500000 -vt 0.800000 0.173469 -vt 0.800000 0.500000 -vt 0.950000 0.500000 -vt 0.800000 0.510204 -vt 0.800000 0.163265 -vt 0.950000 0.173469 -vt 0.800000 0.510204 -vt 0.950000 0.520408 -vt 0.800000 0.520408 -vt 0.950000 0.602041 -vt 0.800000 0.612245 -vt 0.800000 0.602041 -vt 0.950000 0.561224 -vt 0.800000 0.520408 -vt 0.800000 0.602041 -vt 0.800000 0.163265 -vt 0.950000 0.173469 -vt 0.800000 0.173469 -vt 0.950000 0.500000 -vt 0.800000 0.510204 -vt 0.800000 0.500000 -vt 0.950000 0.377551 -vt 0.800000 0.173469 -vt 0.800000 0.500000 -vt 0.800000 0.510204 -vt 0.950000 0.520408 -vt 0.800000 0.520408 -vt 0.950000 0.602041 -vt 0.800000 0.612245 -vt 0.800000 0.602041 -vt 0.950000 0.561224 -vt 0.800000 0.520408 -vt 0.800000 0.602041 -vt 0.350000 0.081633 -vt 0.400000 0.081633 -vt 0.487500 0.081633 -vt 0.537500 0.081633 -vt 0.587500 0.081633 -vt 0.637500 0.081633 -vt 0.687500 0.081633 -vt 0.700000 0.081633 -vt 0.787500 0.081633 -vt 0.000000 0.081633 -vt 0.050000 0.081633 -vt 0.137500 0.081633 -vt 0.187500 0.081633 -vt 0.200000 0.081633 -vt 0.287500 0.081633 -vt 0.337500 0.081633 -vt 0.992123 0.050483 -vt 0.999714 0.081633 -vt 0.992123 0.112783 -vt 0.938159 0.156836 -vt 0.900000 0.163032 -vt 0.861841 0.156836 -vt 0.807876 0.112783 -vt 0.800286 0.081633 -vt 0.807877 0.050483 -vt 0.829492 0.024075 -vt 0.861841 0.006430 -vt 0.900000 0.000234 -vt 0.938159 0.006430 -vt 0.700000 0.693878 -vt 0.650000 0.816327 -vt 0.650000 0.693878 -vt 0.300000 0.693878 -vt 0.250000 0.816327 -vt 0.250000 0.693878 -vt 0.750000 0.693878 -vt 0.700000 0.816327 -vt 0.350000 0.693878 -vt 0.300000 0.816327 -vt 0.800000 0.693878 -vt 0.750000 0.816327 -vt 0.400000 0.693878 -vt 0.350000 0.816327 -vt 0.050000 0.693878 -vt 0.000000 0.816327 -vt -0.000000 0.693878 -vt 0.450000 0.693878 -vt 0.400000 0.816327 -vt 0.100000 0.693878 -vt 0.050000 0.816327 -vt 0.500000 0.693878 -vt 0.450000 0.816327 -vt 0.150000 0.693878 -vt 0.100000 0.816327 -vt 0.550000 0.693878 -vt 0.500000 0.816327 -vt 0.200000 0.693878 -vt 0.150000 0.816327 -vt 0.600000 0.816327 -vt 0.600000 0.693878 -vt 0.550000 0.816327 -vt 0.200000 0.816327 -vt 0.150000 0.836735 -vt 0.600000 0.836735 -vt 0.550000 0.836735 -vt 0.200000 0.836735 -vt 0.650000 0.836735 -vt 0.250000 0.836735 -vt 0.700000 0.836735 -vt 0.337500 0.836735 -vt 0.300000 0.836735 -vt 0.800000 0.816327 -vt 0.750000 0.836735 -vt 0.350000 0.836735 -vt -0.000000 0.836735 -vt 0.437500 0.836735 -vt 0.400000 0.836735 -vt 0.050000 0.836735 -vt 0.450000 0.836735 -vt 0.100000 0.836735 -vt 0.500000 0.836735 -vt 0.300000 0.673469 -vt 0.687500 0.836735 -vt 0.662500 1.000000 -vt 0.737500 0.836735 -vt 0.712500 1.000000 -vt 0.787500 0.836735 -vt 0.762500 1.000000 -vt 0.037500 0.836735 -vt 0.012500 1.000000 -vt 0.087500 0.836735 +vt 0.416667 -0.000000 +vt 0.333333 -0.000000 +vt 0.500000 0.909091 +vt 0.500000 0.000000 +vt 0.416667 0.909091 +vt 0.666667 0.000000 +vt 0.583333 0.909091 +vt 0.416667 0.909091 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt -0.000000 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt -0.000000 0.522727 +vt 0.062500 0.545455 +vt 0.000000 0.784091 +vt -0.000000 0.579545 +vt 0.125000 0.545455 +vt 0.062500 0.818182 +vt 0.250000 0.579545 +vt 0.187500 0.784091 +vt 0.187500 0.579545 +vt 0.125000 0.818182 +vt 0.062500 0.545455 +vt 0.000000 0.784091 +vt -0.000000 0.579545 +vt 0.125000 0.545455 +vt 0.062500 0.818182 +vt 0.250000 0.579545 +vt 0.187500 0.784091 +vt 0.187500 0.579545 +vt 0.125000 0.818182 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt -0.000000 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.000000 0.545455 +vt 0.166667 0.545455 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.125000 0.454545 +vt 0.187500 0.386364 +vt 0.187500 0.454545 +vt -0.000000 0.454545 +vt 0.062500 0.386364 +vt 0.062500 0.454545 +vt 0.250000 0.386364 +vt 0.250000 0.454545 +vt 0.125000 0.386364 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.187500 0.454545 +vt 0.000000 0.522727 +vt 0.000000 0.454545 +vt 0.083333 0.113636 +vt 0.083333 0.113636 +vt -0.000000 0.181818 +vt -0.000000 0.181818 +vt 0.083333 0.113636 +vt 0.083333 0.113636 +vt -0.000000 0.181818 +vt 0.083333 0.250000 +vt -0.000000 0.386364 +vt 0.062500 0.818182 +vt 0.145833 0.818182 +vt 0.145833 0.852273 +vt 0.145833 1.000000 vt 0.062500 1.000000 -vt 0.137500 0.836735 -vt 0.112500 1.000000 -vt 0.187500 0.836735 -vt 0.162500 1.000000 -vt 0.237500 0.836735 -vt 0.212500 1.000000 -vt 0.287500 0.836735 -vt 0.262500 1.000000 -vt 0.312500 1.000000 -vt 0.387500 0.836735 -vt 0.362500 1.000000 -vt 0.412500 1.000000 -vt 0.487500 0.836735 -vt 0.462500 1.000000 -vt 0.537500 0.836735 -vt 0.512500 1.000000 -vt 0.587500 0.836735 -vt 0.562500 1.000000 -vt 0.637500 0.836735 -vt 0.612500 1.000000 -vt 0.350000 0.673469 -vt 0.400000 0.673469 -vt 0.450000 0.673469 -vt 0.500000 0.673469 -vt 0.587500 0.673469 -vt 0.600000 0.673469 -vt 0.650000 0.673469 -vt 0.700000 0.673469 -vt 0.750000 0.673469 -vt 0.000000 0.673469 -vt 0.050000 0.673469 -vt 0.100000 0.673469 -vt 0.150000 0.673469 -vt 0.200000 0.673469 -vt 0.250000 0.673469 -vt 0.687500 0.591837 -vt 0.687500 0.673469 -vt 0.287500 0.591837 -vt 0.287500 0.673469 -vt 0.737500 0.591837 -vt 0.737500 0.673469 -vt 0.337500 0.591837 -vt 0.337500 0.673469 -vt 0.787500 0.591837 -vt 0.787500 0.673469 -vt 0.387500 0.591837 -vt 0.387500 0.673469 -vt 0.037500 0.591837 -vt 0.037500 0.673469 -vt 0.437500 0.591837 -vt 0.437500 0.673469 -vt 0.087500 0.591837 -vt 0.087500 0.673469 -vt 0.487500 0.591837 -vt 0.487500 0.673469 -vt 0.137500 0.591837 -vt 0.137500 0.673469 -vt 0.537500 0.591837 -vt 0.537500 0.673469 -vt 0.187500 0.591837 -vt 0.187500 0.673469 -vt 0.637500 0.591837 -vt 0.637500 0.673469 -vt 0.550000 0.673469 -vt 0.587500 0.591837 -vt 0.237500 0.591837 -vt 0.237500 0.673469 -vt 0.100000 0.591837 -vt 0.150000 0.428571 -vt 0.500000 0.591837 -vt 0.550000 0.428571 -vt 0.150000 0.591837 -vt 0.200000 0.428571 -vt 0.600000 0.591837 -vt 0.650000 0.428571 -vt 0.550000 0.591837 -vt 0.600000 0.428571 -vt 0.250000 0.428571 -vt 0.650000 0.591837 -vt 0.700000 0.428571 -vt 0.250000 0.591837 -vt 0.300000 0.428571 -vt 0.700000 0.591837 -vt 0.750000 0.428571 -vt 0.300000 0.591837 -vt 0.350000 0.428571 -vt 0.750000 0.591837 -vt 0.800000 0.428571 -vt 0.350000 0.591837 -vt 0.400000 0.428571 -vt -0.000000 0.591837 -vt 0.050000 0.428571 -vt 0.400000 0.591837 -vt 0.450000 0.428571 -vt 0.050000 0.591837 -vt 0.100000 0.428571 -vt 0.450000 0.591837 -vt 0.500000 0.428571 -vt 0.000000 0.428571 -vt 0.537500 -0.000000 -vt 0.187500 0.000000 -vt 0.637500 0.000000 -vt 0.587500 0.000000 -vt 0.237500 0.000000 -vt 0.687500 0.000000 -vt 0.287500 0.000000 -vt 0.737500 -0.000000 -vt 0.337500 0.000000 -vt 0.787500 -0.000000 -vt 0.387500 0.000000 -vt 0.037500 -0.000000 -vt 0.437500 0.000000 -vt 0.087500 -0.000000 -vt 0.487500 0.000000 -vt 0.137500 0.000000 -vt 0.200000 0.591837 -vt 0.500000 -0.000000 -vt 0.150000 0.000000 -vt 0.600000 0.000000 -vt 0.550000 0.000000 -vt 0.200000 -0.000000 -vt 0.650000 0.000000 -vt 0.250000 -0.000000 -vt 0.700000 0.000000 -vt 0.300000 -0.000000 -vt 0.750000 0.000000 -vt 0.350000 -0.000000 -vt -0.000000 0.000000 -vt 0.400000 -0.000000 -vt 0.050000 -0.000000 -vt 0.450000 0.000000 -vt 0.100000 0.000000 -vn 0.0000 -1.0000 0.0000 -vn -0.6771 0.0000 -0.7359 -vn 0.7359 0.0000 0.6771 -vn 0.2236 0.9487 -0.2236 -vn 0.7359 0.0000 -0.6771 -vn -0.6771 0.0000 0.7359 -vn 0.2236 0.9487 0.2236 -vn 0.5000 0.7071 0.5000 -vn -0.5000 0.7071 -0.5000 -vn 0.6771 0.0000 -0.7359 -vn -0.7359 -0.0000 0.6771 -vn 0.5000 0.7071 -0.5000 -vn -0.2236 0.9487 -0.2236 -vn -0.5000 0.7071 0.5000 -vn -0.7359 0.0000 -0.6771 -vn 0.6771 -0.0000 0.7359 -vn -0.2236 0.9487 0.2236 -vn -0.7071 -0.0067 -0.7071 -vn -0.3827 -0.0067 -0.9239 -vn 0.7071 -0.0067 0.7071 -vn 0.3827 -0.0067 0.9239 -vn -0.9239 -0.0067 -0.3827 -vn 0.9239 -0.0067 0.3827 -vn -1.0000 -0.0067 -0.0000 -vn 1.0000 -0.0067 0.0000 -vn -0.9239 -0.0067 0.3827 -vn 0.9239 -0.0067 -0.3827 -vn -0.7071 -0.0067 0.7071 -vn 0.7071 -0.0067 -0.7071 -vn -0.3827 -0.0067 0.9239 -vn 0.3827 -0.0067 -0.9239 -vn -0.0000 -0.0067 1.0000 -vn 0.0000 -0.0067 -1.0000 -vn 0.0000 0.7208 0.6931 -vn -0.2652 0.7208 0.6403 -vn -0.2652 0.7208 -0.6403 -vn 0.0000 0.7208 -0.6931 -vn 0.2652 0.7208 -0.6403 -vn 0.2652 0.7208 -0.6404 -vn 0.2652 0.7208 0.6404 -vn -0.4901 0.7208 -0.4901 -vn 0.4901 0.7208 0.4901 -vn -0.6403 0.7208 -0.2652 -vn 0.6403 0.7208 0.2652 -vn -0.6931 0.7208 0.0000 -vn 0.6931 0.7208 0.0000 -vn -0.6403 0.7208 0.2652 -vn 0.6403 0.7208 -0.2652 -vn -0.4901 0.7208 0.4901 -vn 0.4901 0.7208 -0.4901 -vn 0.5000 -0.7071 0.5000 -vn 0.6533 -0.7071 0.2706 -vn -0.3423 0.4472 -0.8263 -vn -0.6325 0.4472 -0.6325 -vn 0.0000 1.0000 -0.0000 -vn -0.8263 0.4472 -0.3423 -vn -0.8944 0.4472 0.0000 -vn -0.8263 0.4472 0.3423 -vn -0.6325 0.4472 0.6325 -vn -0.3423 0.4472 0.8263 -vn 0.0000 0.4472 0.8944 -vn 0.3423 0.4472 0.8263 -vn 0.6325 0.4472 0.6325 -vn 0.8263 0.4472 0.3423 -vn 0.8944 0.4472 0.0000 -vn 0.8263 0.4472 -0.3423 -vn 0.6325 0.4472 -0.6325 -vn 0.3423 0.4472 -0.8263 -vn 0.0000 0.4472 -0.8944 -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 -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.3827 0.0000 -0.9239 -vn -0.7071 0.0000 -0.7071 -vn 0.3827 0.0000 0.9239 -vn 0.7071 0.0000 0.7071 -vn -0.9239 0.0000 -0.3827 -vn 0.9239 -0.0000 0.3827 -vn -1.0000 -0.0000 0.0000 -vn 1.0000 0.0000 -0.0000 -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.3827 0.0000 -0.9239 -vn -0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn -0.7016 0.1240 0.7016 -vn -0.3797 0.1240 0.9167 -vn 0.7016 0.1240 -0.7016 -vn 0.3797 0.1240 -0.9167 -vn 0.0000 0.1240 0.9923 -vn 0.0000 0.1240 -0.9923 -vn -0.3797 0.1240 -0.9167 -vn 0.3797 0.1240 0.9167 -vn -0.7016 0.1240 -0.7016 -vn 0.7016 0.1240 0.7016 -vn -0.9167 0.1240 -0.3797 -vn 0.9167 0.1240 0.3797 -vn -0.9923 0.1240 -0.0000 -vn 0.9923 0.1240 -0.0000 -vn -0.9167 0.1240 0.3797 -vn 0.9167 0.1240 -0.3797 -s off -f 4904/7151/776 4905/7152/776 4906/7153/776 -f 4906/7153/776 4907/7154/776 4908/7155/776 -f 4907/7156/776 4909/7157/776 4908/7155/776 -f 4910/7158/776 4911/7159/776 4909/7157/776 -f 4912/7160/776 4913/7161/776 4911/7159/776 -f 4914/7162/776 4915/7163/776 4913/7161/776 -f 4916/7164/776 4917/7165/776 4915/7163/776 -f 4917/7165/776 4918/7166/776 4919/7167/776 -f 4918/7168/776 4920/7169/776 4919/7167/776 -f 4920/7170/776 4921/7171/776 4922/7172/776 -f 4922/7172/776 4923/7173/776 4924/7174/776 -f 4923/7175/776 4925/7176/776 4924/7174/776 -f 4926/7177/776 4927/7178/776 4925/7176/776 -f 4927/7178/776 4928/7179/776 4929/7180/776 -f 4928/7181/776 4930/7182/776 4929/7180/776 -f 4931/7183/776 4904/7151/776 4930/7182/776 -f 4932/7184/776 4933/7185/776 4934/7186/776 -f 4935/7187/777 4936/7188/777 4937/7189/777 -f 4938/7190/778 4935/7187/778 4939/7191/778 -f 4935/7192/779 4937/7193/779 4939/7191/779 -f 4936/7194/776 4940/7195/776 4938/7190/776 -f 4941/7196/780 4942/7197/780 4943/7198/780 -f 4944/7199/781 4941/7196/781 4945/7200/781 -f 4941/7201/782 4943/7202/782 4945/7200/782 -f 4942/7203/776 4946/7204/776 4944/7199/776 -f 4947/7205/780 4948/7206/780 4949/7207/780 -f 4950/7208/781 4947/7205/781 4951/7209/781 -f 4947/7210/783 4949/7211/783 4951/7209/783 -f 4948/7212/776 4952/7213/776 4950/7208/776 -f 4953/7214/776 4954/7215/776 4955/7216/776 -f 4956/7217/784 4957/7218/784 4958/7219/784 -f 4955/7216/785 4956/7220/785 4958/7219/785 -f 4956/7220/786 4953/7221/786 4957/7222/786 -f 4959/7223/777 4960/7224/777 4961/7225/777 -f 4962/7226/778 4959/7223/778 4963/7227/778 -f 4959/7228/787 4961/7229/787 4963/7227/787 -f 4960/7230/776 4964/7231/776 4962/7226/776 -f 4965/7232/776 4966/7233/776 4967/7234/776 -f 4968/7235/788 4969/7236/788 4970/7237/788 -f 4967/7234/785 4968/7238/785 4970/7237/785 -f 4968/7238/786 4965/7239/786 4969/7240/786 -f 4971/7241/776 4972/7242/776 4973/7243/776 -f 4974/7244/789 4975/7245/789 4976/7246/789 -f 4973/7243/790 4974/7247/790 4976/7246/790 -f 4974/7247/791 4971/7248/791 4975/7249/791 -f 4977/7250/776 4978/7251/776 4979/7252/776 -f 4980/7253/792 4981/7254/792 4982/7255/792 -f 4979/7252/790 4980/7256/790 4982/7255/790 -f 4980/7256/791 4977/7257/791 4981/7258/791 -f 4904/7151/776 4983/7259/776 4905/7152/776 -f 4906/7153/776 4905/7260/776 4907/7154/776 -f 4907/7156/776 4910/7261/776 4909/7157/776 -f 4910/7158/776 4912/7262/776 4911/7159/776 -f 4912/7160/776 4914/7263/776 4913/7161/776 -f 4914/7162/776 4916/7264/776 4915/7163/776 -f 4916/7164/776 4984/7265/776 4917/7165/776 -f 4917/7165/776 4984/7266/776 4918/7166/776 -f 4918/7168/776 4985/7267/776 4920/7169/776 -f 4920/7170/776 4985/7268/776 4921/7171/776 -f 4922/7172/776 4921/7269/776 4923/7173/776 -f 4923/7175/776 4926/7270/776 4925/7176/776 -f 4926/7177/776 4986/7271/776 4927/7178/776 -f 4927/7178/776 4986/7272/776 4928/7179/776 -f 4928/7181/776 4931/7273/776 4930/7182/776 -f 4931/7183/776 4983/7274/776 4904/7151/776 -f 4932/7184/776 4987/7275/776 4988/7276/776 -f 4988/7276/776 4989/7277/776 4933/7185/776 -f 4933/7185/776 4990/7278/776 4991/7279/776 -f 4991/7279/776 4992/7280/776 4934/7186/776 -f 4934/7186/776 4993/7281/776 4994/7282/776 -f 4994/7282/776 4995/7283/776 4996/7284/776 -f 4996/7284/776 4997/7285/776 4998/7286/776 -f 4998/7286/776 4999/7287/776 4996/7284/776 -f 4999/7287/776 4932/7184/776 4996/7284/776 -f 4932/7184/776 4988/7276/776 4933/7185/776 -f 4933/7185/776 4991/7279/776 4934/7186/776 -f 4934/7186/776 4994/7282/776 4932/7184/776 -f 4994/7282/776 4996/7284/776 4932/7184/776 -f 4935/7187/777 4940/7195/777 4936/7188/777 -f 4938/7190/778 4940/7195/778 4935/7187/778 -f 4941/7196/780 4946/7204/780 4942/7197/780 -f 4944/7199/781 4946/7204/781 4941/7196/781 -f 4947/7205/780 4952/7213/780 4948/7206/780 -f 4950/7208/781 4952/7213/781 4947/7205/781 -f 4955/7216/785 4954/7215/785 4956/7220/785 -f 4956/7220/786 4954/7215/786 4953/7221/786 -f 4959/7223/777 4964/7231/777 4960/7224/777 -f 4962/7226/778 4964/7231/778 4959/7223/778 -f 4967/7234/785 4966/7233/785 4968/7238/785 -f 4968/7238/786 4966/7233/786 4965/7239/786 -f 4973/7243/790 4972/7242/790 4974/7247/790 -f 4974/7247/791 4972/7242/791 4971/7248/791 -f 4979/7252/790 4978/7251/790 4980/7256/790 -f 4980/7256/791 4978/7251/791 4977/7257/791 -s 1 -f 5000/7288/793 5001/7289/794 5002/7290/794 -f 5003/7291/795 5004/7292/796 5005/7293/796 -f 5006/7294/797 5007/7295/793 5000/7288/793 -f 5008/7296/798 5009/7297/795 5003/7291/795 -f 5010/7298/799 5011/7299/797 5006/7294/797 -f 5012/7300/800 5013/7301/798 5008/7296/798 -f 5014/7302/801 5015/7303/799 5010/7304/799 -f 5016/7305/802 5017/7306/800 5012/7300/800 -f 5018/7307/803 5019/7308/801 5014/7302/801 -f 5020/7309/804 5021/7310/802 5016/7305/802 -f 5022/7311/805 5023/7312/803 5018/7307/803 -f 5024/7313/806 5025/7314/804 5020/7309/804 -f 5026/7315/807 5027/7316/805 5022/7311/805 -f 5002/7290/794 5028/7317/808 5029/7318/808 -f 5029/7318/808 5030/7319/806 5024/7313/806 -f 5005/7293/796 5031/7320/807 5026/7315/807 -f 5031/7320/809 5032/7321/810 5027/7316/810 -f 5001/7289/811 5033/7322/812 5028/7317/812 -f 5028/7317/812 5034/7323/813 5030/7319/814 -f 5004/7292/815 5035/7324/809 5031/7320/809 -f 5007/7295/816 5036/7325/811 5001/7289/811 -f 5009/7297/817 5037/7326/815 5004/7292/815 -f 5011/7299/818 5038/7327/816 5007/7295/816 -f 5009/7297/817 5039/7328/819 5040/7329/817 -f 5015/7330/820 5041/7331/818 5011/7299/818 -f 5017/7306/821 5039/7332/819 5013/7301/819 -f 5019/7308/822 5042/7333/820 5015/7303/820 -f 5017/7306/821 5043/7334/823 5044/7335/821 -f 5023/7312/824 5045/7336/822 5019/7308/822 -f 5025/7314/825 5043/7337/823 5021/7310/823 -f 5027/7316/810 5046/7338/824 5023/7312/824 -f 5030/7319/814 5047/7339/825 5025/7314/825 -f 5048/7340/826 5008/7296/827 5003/7291/826 -f 5036/7325/828 5038/7341/829 5049/7342/830 -f 5038/7327/829 5041/7343/831 5049/7344/830 -f 5041/7331/831 5042/7345/832 5049/7346/830 -f 5042/7333/832 5045/7347/833 5049/7348/830 -f 5045/7336/833 5046/7349/834 5049/7350/830 -f 5046/7338/834 5032/7351/835 5049/7352/830 -f 5032/7321/835 5035/7353/836 5049/7354/830 -f 5035/7324/836 5037/7355/837 5049/7356/830 -f 5037/7326/837 5040/7357/838 5049/7358/830 -f 5040/7329/838 5039/7328/839 5049/7359/830 -f 5039/7332/839 5044/7360/840 5049/7361/830 -f 5044/7335/840 5043/7334/841 5049/7362/830 -f 5043/7337/841 5047/7363/842 5049/7364/830 -f 5047/7339/842 5034/7365/843 5049/7366/830 -f 5034/7323/843 5033/7367/844 5049/7368/830 -f 5033/7322/844 5036/7369/828 5049/7370/830 -f 5050/7371/827 5012/7300/845 5008/7296/827 -f 5051/7372/845 5016/7305/846 5012/7300/845 -f 5052/7373/846 5020/7309/847 5016/7305/846 -f 5053/7374/847 5024/7313/848 5020/7309/847 -f 5024/7313/848 5054/7375/849 5029/7318/849 -f 5054/7376/849 5002/7290/850 5029/7318/849 -f 5055/7377/850 5000/7288/851 5002/7290/850 -f 5056/7378/851 5006/7294/852 5000/7288/851 -f 5057/7379/852 5010/7298/853 5006/7294/852 -f 5058/7380/853 5014/7302/854 5010/7304/853 -f 5059/7381/854 5018/7307/855 5014/7302/854 -f 5060/7382/855 5022/7311/856 5018/7307/855 -f 5061/7383/856 5026/7315/857 5022/7311/856 -f 5062/7384/857 5005/7293/858 5026/7315/857 -f 5063/7385/858 5003/7291/826 5005/7293/858 -f 5055/7377/859 5064/7386/860 5056/7387/860 -f 5063/7385/861 5065/7388/862 5048/7389/862 -f 5056/7378/860 5066/7390/863 5057/7391/863 -f 5048/7340/862 5067/7392/864 5050/7393/864 -f 5057/7379/863 5068/7394/865 5058/7395/865 -f 5050/7371/864 5069/7396/866 5051/7397/866 -f 5058/7380/865 5070/7398/867 5059/7399/867 -f 5051/7372/866 5071/7400/868 5052/7401/868 -f 5059/7381/867 5072/7402/869 5060/7403/869 -f 5052/7373/868 5073/7404/870 5053/7405/870 -f 5060/7382/869 5074/7406/871 5061/7407/871 -f 5053/7374/870 5075/7408/872 5076/7409/872 -f 5061/7383/871 5077/7410/873 5062/7411/873 -f 5054/7376/874 5078/7412/859 5055/7413/859 -f 5076/7414/872 5079/7415/874 5054/7375/874 -f 5062/7384/873 5080/7416/861 5063/7417/861 -f 5072/7418/875 5081/7419/876 5074/7406/876 -f 5073/7420/877 5082/7421/878 5075/7408/878 -f 5074/7422/876 5083/7423/879 5077/7410/879 -f 5079/7424/880 5084/7425/881 5078/7412/881 -f 5075/7426/878 5085/7427/880 5079/7415/880 -f 5080/7416/882 5083/7423/879 5086/7428/882 -f 5078/7429/881 5087/7430/883 5064/7386/883 -f 5080/7431/882 5088/7432/884 5065/7388/884 -f 5064/7433/883 5089/7434/885 5066/7390/885 -f 5065/7435/884 5090/7436/886 5067/7392/886 -f 5066/7437/885 5091/7438/887 5068/7394/887 -f 5067/7439/886 5092/7440/888 5069/7396/888 -f 5068/7441/887 5093/7442/889 5070/7398/889 -f 5069/7443/888 5094/7444/890 5071/7400/890 -f 5070/7445/889 5095/7446/875 5072/7402/875 -f 5071/7447/890 5096/7448/877 5073/7404/877 -f 5090/7436/864 4906/7153/866 5092/7440/866 -f 5091/7449/865 4922/7172/867 5093/7442/867 -f 5092/7440/866 4908/7155/868 5094/7444/868 -f 5093/7442/867 4924/7174/869 5095/7446/869 -f 5094/7444/868 4909/7157/870 5096/7448/870 -f 5095/7446/869 4925/7176/871 5081/7419/871 -f 5096/7448/870 4911/7159/872 5082/7421/872 -f 5081/7419/871 4927/7178/873 5083/7423/873 -f 5085/7427/874 4915/7163/859 5084/7425/859 -f 5082/7421/872 4913/7161/874 5085/7427/874 -f 5083/7423/873 4929/7180/861 5086/7428/861 -f 5084/7425/859 4917/7165/860 5087/7430/860 -f 5086/7428/861 4930/7182/862 5088/7432/862 -f 5087/7430/860 4919/7167/863 5089/7434/863 -f 5088/7432/862 4904/7151/864 5090/7436/864 -f 5089/7434/863 4920/7169/865 5091/7438/865 -f 4910/7158/870 4989/7450/872 4912/7262/872 -f 4926/7177/871 4994/7451/873 4986/7271/873 -f 4914/7162/874 4987/7452/859 4916/7264/859 -f 4912/7160/872 4988/7453/874 4914/7263/874 -f 4986/7272/873 4993/7454/861 4928/7179/861 -f 4916/7164/859 4932/7455/860 4984/7265/860 -f 4928/7181/861 4934/7456/862 4931/7273/862 -f 4984/7266/860 4999/7457/863 4918/7166/863 -f 4931/7183/862 4992/7458/864 4983/7274/864 -f 4918/7168/863 4998/7459/865 4985/7267/865 -f 4983/7259/864 4991/7460/866 4905/7152/866 -f 4985/7268/865 4997/7461/867 4921/7171/867 -f 4905/7260/866 4990/7462/868 4907/7154/868 -f 4921/7269/867 4996/7463/869 4923/7173/869 -f 4907/7156/868 4933/7464/870 4910/7261/870 -f 4923/7175/869 4995/7465/871 4926/7270/871 -f 5000/7288/793 5007/7295/793 5001/7289/794 -f 5003/7291/795 5009/7297/795 5004/7292/796 -f 5006/7294/797 5011/7299/797 5007/7295/793 -f 5008/7296/798 5013/7301/798 5009/7297/795 -f 5010/7298/799 5015/7330/799 5011/7299/797 -f 5012/7300/800 5017/7306/800 5013/7301/798 -f 5014/7302/801 5019/7308/801 5015/7303/799 -f 5016/7305/802 5021/7310/802 5017/7306/800 -f 5018/7307/803 5023/7312/803 5019/7308/801 -f 5020/7309/804 5025/7314/804 5021/7310/802 -f 5022/7311/805 5027/7316/805 5023/7312/803 -f 5024/7313/806 5030/7319/806 5025/7314/804 -f 5026/7315/807 5031/7320/807 5027/7316/805 -f 5002/7290/794 5001/7289/794 5028/7317/808 -f 5029/7318/808 5028/7317/808 5030/7319/806 -f 5005/7293/796 5004/7292/796 5031/7320/807 -f 5031/7320/809 5035/7353/809 5032/7321/810 -f 5001/7289/811 5036/7369/811 5033/7322/812 -f 5028/7317/812 5033/7367/812 5034/7323/813 -f 5004/7292/815 5037/7355/815 5035/7324/809 -f 5007/7295/816 5038/7341/816 5036/7325/811 -f 5009/7297/817 5040/7357/817 5037/7326/815 -f 5011/7299/818 5041/7343/818 5038/7327/816 -f 5009/7297/817 5013/7301/819 5039/7328/819 -f 5015/7330/820 5042/7345/820 5041/7331/818 -f 5017/7306/821 5044/7360/821 5039/7332/819 -f 5019/7308/822 5045/7347/822 5042/7333/820 -f 5017/7306/821 5021/7310/823 5043/7334/823 -f 5023/7312/824 5046/7349/824 5045/7336/822 -f 5025/7314/825 5047/7363/825 5043/7337/823 -f 5027/7316/810 5032/7351/810 5046/7338/824 -f 5030/7319/814 5034/7365/813 5047/7339/825 -f 5048/7340/826 5050/7393/827 5008/7296/827 -f 5050/7371/827 5051/7397/845 5012/7300/845 -f 5051/7372/845 5052/7401/846 5016/7305/846 -f 5052/7373/846 5053/7405/847 5020/7309/847 -f 5053/7374/847 5076/7409/848 5024/7313/848 -f 5024/7313/848 5076/7414/848 5054/7375/849 -f 5054/7376/849 5055/7413/850 5002/7290/850 -f 5055/7377/850 5056/7387/851 5000/7288/851 -f 5056/7378/851 5057/7391/852 5006/7294/852 -f 5057/7379/852 5058/7395/853 5010/7298/853 -f 5058/7380/853 5059/7399/854 5014/7302/854 -f 5059/7381/854 5060/7403/855 5018/7307/855 -f 5060/7382/855 5061/7407/856 5022/7311/856 -f 5061/7383/856 5062/7411/857 5026/7315/857 -f 5062/7384/857 5063/7417/858 5005/7293/858 -f 5063/7385/858 5048/7389/826 5003/7291/826 -f 5055/7377/859 5078/7429/859 5064/7386/860 -f 5063/7385/861 5080/7431/861 5065/7388/862 -f 5056/7378/860 5064/7433/860 5066/7390/863 -f 5048/7340/862 5065/7435/862 5067/7392/864 -f 5057/7379/863 5066/7437/863 5068/7394/865 -f 5050/7371/864 5067/7439/864 5069/7396/866 -f 5058/7380/865 5068/7441/865 5070/7398/867 -f 5051/7372/866 5069/7443/866 5071/7400/868 -f 5059/7381/867 5070/7445/867 5072/7402/869 -f 5052/7373/868 5071/7447/868 5073/7404/870 -f 5060/7382/869 5072/7418/869 5074/7406/871 -f 5053/7374/870 5073/7420/870 5075/7408/872 -f 5061/7383/871 5074/7422/871 5077/7410/873 -f 5054/7376/874 5079/7424/874 5078/7412/859 -f 5076/7414/872 5075/7426/872 5079/7415/874 -f 5062/7384/873 5077/7466/873 5080/7416/861 -f 5072/7418/875 5095/7446/875 5081/7419/876 -f 5073/7420/877 5096/7448/877 5082/7421/878 -f 5074/7422/876 5081/7419/876 5083/7423/879 -f 5079/7424/880 5085/7427/880 5084/7425/881 -f 5075/7426/878 5082/7421/878 5085/7427/880 -f 5080/7416/882 5077/7466/879 5083/7423/879 -f 5078/7429/881 5084/7425/881 5087/7430/883 -f 5080/7431/882 5086/7428/882 5088/7432/884 -f 5064/7433/883 5087/7430/883 5089/7434/885 -f 5065/7435/884 5088/7432/884 5090/7436/886 -f 5066/7437/885 5089/7434/885 5091/7438/887 -f 5067/7439/886 5090/7436/886 5092/7440/888 -f 5068/7441/887 5091/7449/887 5093/7442/889 -f 5069/7443/888 5092/7440/888 5094/7444/890 -f 5070/7445/889 5093/7442/889 5095/7446/875 -f 5071/7447/890 5094/7444/890 5096/7448/877 -f 5090/7436/864 4904/7151/864 4906/7153/866 -f 5091/7449/865 4920/7170/865 4922/7172/867 -f 5092/7440/866 4906/7153/866 4908/7155/868 -f 5093/7442/867 4922/7172/867 4924/7174/869 -f 5094/7444/868 4908/7155/868 4909/7157/870 -f 5095/7446/869 4924/7174/869 4925/7176/871 -f 5096/7448/870 4909/7157/870 4911/7159/872 -f 5081/7419/871 4925/7176/871 4927/7178/873 -f 5085/7427/874 4913/7161/874 4915/7163/859 -f 5082/7421/872 4911/7159/872 4913/7161/874 -f 5083/7423/873 4927/7178/873 4929/7180/861 -f 5084/7425/859 4915/7163/859 4917/7165/860 -f 5086/7428/861 4929/7180/861 4930/7182/862 -f 5087/7430/860 4917/7165/860 4919/7167/863 -f 5088/7432/862 4930/7182/862 4904/7151/864 -f 5089/7434/863 4919/7167/863 4920/7169/865 -f 4910/7158/870 4933/7467/870 4989/7450/872 -f 4926/7177/871 4995/7468/871 4994/7451/873 -f 4914/7162/874 4988/7469/874 4987/7452/859 -f 4912/7160/872 4989/7470/872 4988/7453/874 -f 4986/7272/873 4994/7471/873 4993/7454/861 -f 4916/7164/859 4987/7472/859 4932/7455/860 -f 4928/7181/861 4993/7473/861 4934/7456/862 -f 4984/7266/860 4932/7474/860 4999/7457/863 -f 4931/7183/862 4934/7475/862 4992/7458/864 -f 4918/7168/863 4999/7476/863 4998/7459/865 -f 4983/7259/864 4992/7477/864 4991/7460/866 -f 4985/7268/865 4998/7478/865 4997/7461/867 -f 4905/7260/866 4991/7479/866 4990/7462/868 -f 4921/7269/867 4997/7480/867 4996/7463/869 -f 4907/7156/868 4990/7481/868 4933/7464/870 -f 4923/7175/869 4996/7482/869 4995/7465/871 -o V2_Missile -v 0.265165 2.500000 -0.265165 -v 0.265165 2.500000 0.265165 -v -0.265165 2.500000 0.265165 -v 0.729204 3.500000 -0.773398 -v 0.773398 2.000000 -0.729204 -v 0.729204 2.000000 -0.773398 -v -0.773398 3.500000 -0.729204 -v -0.729204 2.000000 -0.773398 -v -0.773398 2.000000 -0.729204 -v -0.198874 2.500000 -0.243068 -v -0.596621 2.000000 -0.552427 -v -0.552427 2.000000 -0.596621 -v 0.243068 2.500000 -0.198874 -v 0.552427 2.000000 -0.596621 -v 0.596621 2.000000 -0.552427 -v -0.729204 3.500000 -0.773398 -v 0.773398 3.500000 -0.729204 -v -0.243068 2.500000 -0.198874 -v 0.198874 2.500000 -0.243068 -v -0.243068 4.500000 -0.198874 -v -0.198874 4.500000 -0.243068 -v 0.198874 4.500000 -0.243068 -v 0.243068 4.500000 -0.198874 -v -0.243068 4.500000 0.198874 -v -0.729204 3.500000 0.773398 -v -0.198874 4.500000 0.243068 -v -0.552427 2.000000 0.596621 -v -0.773398 2.000000 0.729204 -v -0.596621 2.000000 0.552427 -v -0.729204 2.000000 0.773398 -v -0.198874 2.500000 0.243068 -v -0.773398 3.500000 0.729204 -v -0.243068 2.500000 0.198874 -v 0.729204 3.500000 0.773398 -v 0.243068 4.500000 0.198874 -v 0.198874 4.500000 0.243068 -v 0.552427 2.000000 0.596621 -v 0.773398 2.000000 0.729204 -v 0.729204 2.000000 0.773398 -v 0.773398 3.500000 0.729204 -v 0.243068 2.500000 0.198874 -v 0.198874 2.500000 0.243068 -v -0.265165 2.500000 -0.265165 -v -0.143506 2.500000 -0.346455 -v 0.000000 2.500000 -0.375000 -v 0.143506 2.500000 -0.346455 -v 0.346455 2.500000 -0.143506 -v 0.375000 2.500000 0.000000 -v 0.346455 2.500000 0.143506 -v 0.143506 2.500000 0.346455 -v 0.000000 2.500000 0.375000 -v -0.143506 2.500000 0.346455 -v -0.346455 2.500000 0.143506 -v -0.375000 2.500000 0.000000 -v -0.346455 2.500000 -0.143506 -v 0.596621 2.000000 0.552427 -v 0.353553 3.500000 0.353553 -v 0.191342 6.000000 0.461940 -v 0.191342 3.500000 0.461940 -v -0.461940 3.500000 -0.191342 -v -0.353553 6.000000 -0.353553 -v -0.353553 3.500000 -0.353553 -v 0.461940 3.500000 0.191342 -v 0.353553 6.000000 0.353554 -v -0.500000 3.500000 0.000000 -v -0.461940 6.000000 -0.191342 -v 0.500000 3.500000 0.000000 -v 0.461940 6.000000 0.191342 -v -0.461940 3.500000 0.191342 -v -0.500000 6.000000 0.000000 -v 0.461940 3.500000 -0.191342 -v 0.500000 6.000000 0.000000 -v -0.353553 3.500000 0.353553 -v -0.461940 6.000000 0.191342 -v 0.353553 3.500000 -0.353554 -v 0.461940 6.000000 -0.191342 -v -0.191342 3.500000 0.461940 -v -0.353553 6.000000 0.353553 -v 0.191341 3.500000 -0.461940 -v 0.353553 6.000000 -0.353554 -v 0.000000 6.000000 0.500000 -v -0.191342 6.000000 0.461940 -v -0.191342 3.500000 -0.461940 -v 0.000000 6.000000 -0.500000 -v 0.000000 3.500000 -0.500000 -v 0.191341 6.000000 -0.461940 -v 0.000000 3.500000 0.500000 -v -0.191342 6.000000 -0.461940 -v 0.000000 7.500000 -0.375000 -v 0.143506 7.500000 -0.346455 -v 0.000000 7.500000 0.375000 -v -0.265165 7.500000 -0.265165 -v -0.143506 7.500000 -0.346455 -v 0.265165 7.500000 0.265165 -v 0.143506 7.500000 0.346455 -v -0.375000 7.500000 0.000000 -v -0.346455 7.500000 -0.143506 -v 0.375000 7.500000 0.000000 -v 0.346455 7.500000 0.143506 -v -0.265165 7.500000 0.265165 -v -0.346455 7.500000 0.143506 -v 0.346455 7.500000 -0.143506 -v 0.265165 7.500000 -0.265165 -v -0.143506 7.500000 0.346455 -v 0.000000 9.000000 0.000000 -vt 0.954652 0.411214 -vt 0.954652 0.492632 -vt 0.815840 0.492632 -vt 0.803279 0.240385 -vt 0.786885 0.009615 -vt 0.803279 0.009615 -vt 0.803279 0.750000 -vt 0.786885 0.519231 -vt 0.803279 0.519231 -vt 1.000000 0.509615 -vt 0.868852 0.519231 -vt 0.868852 0.509615 -vt 1.000000 -0.000000 -vt 0.868852 0.009615 -vt 0.868852 -0.000000 -vt 0.803279 0.750000 -vt 1.000000 0.596154 -vt 0.803279 0.519231 -vt 0.803279 0.240385 -vt 1.000000 0.086538 -vt 0.803279 0.009615 -vt 1.000000 0.596154 -vt 1.000000 0.086538 -vt 0.803279 0.509615 -vt 0.786885 0.750000 -vt 0.803279 0.903846 -vt 0.786885 0.903846 -vt 0.803279 0.000000 -vt 0.786885 0.240385 -vt 0.803279 0.394231 -vt 0.786885 0.394231 -vt 0.786885 0.394231 -vt 0.803279 0.240385 -vt 0.803279 0.394231 -vt 0.868852 0.009615 -vt 0.803279 0.000000 -vt 0.868852 -0.000000 -vt 0.803279 0.009615 -vt 1.000000 0.086538 -vt 0.803279 0.240385 -vt 1.000000 0.086538 -vt 0.803279 0.009615 -vt 1.000000 -0.000000 -vt 0.786885 0.009615 -vt 0.786885 0.750000 -vt 0.803279 0.903846 -vt 0.786885 0.903846 -vt 0.868852 0.509615 -vt 0.803279 0.519231 -vt 0.803279 0.509615 -vt 0.803279 0.750000 -vt 1.000000 0.596154 -vt 0.803279 0.750000 -vt 1.000000 0.596154 -vt 0.803279 0.519231 -vt 1.000000 0.519231 -vt 1.000000 0.509615 -vt 0.786885 0.519231 -vt 0.815840 0.411214 -vt 0.847684 0.398734 -vt 0.885246 0.394352 -vt 0.922808 0.398734 -vt 0.975929 0.429891 -vt 0.983401 0.451923 -vt 0.975929 0.473955 -vt 0.922808 0.505112 -vt 0.885246 0.509494 -vt 0.847684 0.505112 -vt 0.794563 0.473955 -vt 0.787091 0.451923 -vt 0.794563 0.429891 -vt 1.000000 0.519231 -vt 1.000000 0.009615 -vt 1.000000 0.903846 -vt 0.868852 0.519231 -vt 1.000000 0.394231 -vt 0.868852 0.009615 -vt 1.000000 0.903846 -vt 1.000000 0.394231 -vt 0.786885 0.240385 -vt 1.000000 0.394231 -vt 1.000000 0.394231 -vt 0.868852 0.009615 -vt 1.000000 0.009615 -vt 0.868852 0.519231 -vt 1.000000 0.903846 -vt 1.000000 0.903846 -vt 0.868852 0.519231 -vt 0.295082 0.153846 -vt 0.245902 0.538462 -vt 0.245902 0.153846 -vt 0.737705 0.153846 -vt 0.688525 0.538462 -vt 0.688525 0.153846 -vt 0.344262 0.153846 -vt 0.295082 0.538462 -vt 0.786885 0.153846 -vt 0.737705 0.538462 -vt 0.393443 0.153846 -vt 0.344262 0.538462 -vt 0.049180 0.153846 -vt -0.000000 0.538462 -vt -0.000000 0.153846 -vt 0.442623 0.153846 -vt 0.393443 0.538462 -vt 0.098361 0.153846 -vt 0.049180 0.538462 -vt 0.491803 0.153846 -vt 0.442623 0.538462 -vt 0.147541 0.153846 -vt 0.098361 0.538462 -vt 0.540984 0.153846 -vt 0.491803 0.538462 -vt 0.196721 0.538462 -vt 0.147541 0.538462 -vt 0.639344 0.153846 -vt 0.590164 0.538462 -vt 0.590164 0.153846 -vt 0.540984 0.538462 -vt 0.196721 0.153846 -vt 0.639344 0.538462 -vt 0.573770 0.769231 -vt 0.540984 0.769231 -vt 0.196721 0.769231 -vt 0.672131 0.769231 -vt 0.639344 0.769231 -vt 0.278689 0.769231 -vt 0.245902 0.769231 -vt 0.688525 0.769231 -vt 0.295082 0.769231 -vt 0.770492 0.769231 -vt 0.737705 0.769231 -vt 0.377049 0.769231 -vt 0.344262 0.769231 -vt -0.000000 0.769231 -vt 0.393443 0.769231 -vt 0.081967 0.769231 -vt 0.049180 0.769231 -vt 0.442623 0.769231 -vt 0.098361 0.769231 -vt 0.491803 0.769231 -vt 0.147541 0.769231 -vt 0.590164 0.769231 -vt 0.655738 1.000000 -vt 0.721311 0.769231 -vt 0.704918 1.000000 -vt 0.754098 1.000000 -vt 0.032787 0.769231 -vt 0.016393 1.000000 -vt 0.065574 1.000000 -vt 0.131148 0.769231 -vt 0.114754 1.000000 -vt 0.180328 0.769231 -vt 0.163934 1.000000 -vt 0.229508 0.769231 -vt 0.213115 1.000000 -vt 0.262295 1.000000 -vt 0.327869 0.769231 -vt 0.311475 1.000000 -vt 0.360656 1.000000 -vt 0.426230 0.769231 -vt 0.409836 1.000000 -vt 0.475410 0.769231 -vt 0.459016 1.000000 -vt 0.524590 0.769231 -vt 0.508197 1.000000 -vt 0.557377 1.000000 -vt 0.622951 0.769231 -vt 0.606557 1.000000 -vt 0.278689 0.000000 -vt 0.688525 0.000000 -vt 0.721311 0.000000 -vt 0.295082 0.000000 -vt 0.327869 0.000000 -vt 0.737705 0.000000 -vt 0.770492 0.000000 -vt 0.344262 0.000000 -vt 0.377049 0.000000 -vt -0.000000 0.000000 -vt 0.032787 0.000000 -vt 0.426230 0.000000 -vt 0.081967 0.000000 -vt 0.475410 0.000000 -vt 0.131148 0.000000 -vt 0.491803 0.000000 -vt 0.524590 0.000000 -vt 0.180328 0.000000 -vt 0.622951 0.000000 -vt 0.573770 0.000000 -vt 0.196721 0.000000 -vt 0.229508 0.000000 -vt 0.639344 0.000000 -vt 0.672131 0.000000 -vt 0.786885 0.538462 -vt 0.245902 0.000000 -vt 0.393443 0.000000 -vt 0.049180 0.000000 -vt 0.442623 0.000000 -vt 0.098361 0.000000 -vt 0.147541 0.000000 -vt 0.590164 0.000000 -vt 0.540984 0.000000 -vn 0.0000 -1.0000 0.0000 -vn 0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 -0.7071 -vn 0.5000 -0.7071 0.5000 -vn -0.5000 -0.7071 0.5000 -vn 0.7071 -0.0000 0.7071 -vn -0.7071 -0.0000 0.7071 -vn -0.5657 0.6000 -0.5657 -vn 0.5657 0.6000 -0.5657 -vn -0.5657 0.6000 0.5657 -vn 0.5000 -0.7071 -0.5000 -vn 0.5657 0.6000 0.5657 -vn -0.5000 -0.7071 -0.5000 -vn 0.7058 -0.0617 0.7058 -vn 0.3824 0.0413 0.9231 -vn 0.3820 -0.0617 0.9221 -vn -0.9221 -0.0617 -0.3820 -vn -0.7065 0.0413 -0.7065 -vn -0.7058 -0.0617 -0.7058 -vn 0.9221 -0.0617 0.3820 -vn 0.7065 0.0413 0.7065 -vn -0.9981 -0.0617 -0.0000 -vn -0.9231 0.0413 -0.3824 -vn 0.9981 -0.0617 0.0000 -vn 0.9231 0.0413 0.3824 -vn -0.9221 -0.0617 0.3820 -vn -0.9991 0.0413 0.0000 -vn 0.9221 -0.0617 -0.3820 -vn 0.9991 0.0413 -0.0000 -vn -0.7058 -0.0617 0.7058 -vn -0.9231 0.0413 0.3824 -vn 0.7058 -0.0617 -0.7058 -vn 0.9231 0.0413 -0.3824 -vn -0.3820 -0.0617 0.9221 -vn -0.7065 0.0413 0.7065 -vn 0.3820 -0.0617 -0.9221 -vn 0.7065 0.0413 -0.7065 -vn -0.0000 0.0413 0.9991 -vn -0.3824 0.0413 0.9231 -vn -0.3820 -0.0617 -0.9221 -vn 0.0000 0.0413 -0.9991 -vn 0.0000 -0.0617 -0.9981 -vn 0.3824 0.0413 -0.9231 -vn 0.0000 -0.0617 0.9981 -vn -0.3824 0.0413 -0.9231 -vn -0.0000 0.1617 -0.9868 -vn 0.3776 0.1617 -0.9117 -vn 0.0000 0.1617 0.9868 -vn -0.6978 0.1617 -0.6978 -vn -0.3776 0.1617 -0.9117 -vn 0.6978 0.1617 0.6978 -vn 0.3776 0.1617 0.9117 -vn -0.9868 0.1617 -0.0000 -vn -0.9117 0.1617 -0.3776 -vn 0.9868 0.1617 -0.0000 -vn 0.9117 0.1617 0.3776 -vn -0.6978 0.1617 0.6978 -vn -0.9117 0.1617 0.3776 -vn 0.9117 0.1617 -0.3776 -vn 0.6978 0.1617 -0.6978 -vn -0.3776 0.1617 0.9117 +vt 0.062500 0.965909 +vt 0.187500 0.522727 +vt 0.666667 0.909091 +vt 0.666667 0.909091 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.166667 0.522727 +vt 0.166667 0.545455 +vt 0.250000 0.784091 +vt 0.250000 0.784091 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.545455 +vt -0.000000 0.522727 +vt -0.000000 0.386364 +vt -0.000000 0.386364 +vt -0.000000 0.386364 +vt 0.187500 0.522727 +vt 0.187500 0.522727 +vt 0.187500 0.522727 vn 0.0000 1.0000 0.0000 -vn 0.7016 -0.1240 0.7016 -vn -0.7016 -0.1240 -0.7016 -vn -0.9167 -0.1240 -0.3797 -vn 0.9167 -0.1240 0.3797 -vn -0.9923 -0.1240 -0.0000 -vn 0.9923 -0.1240 0.0000 -vn -0.9167 -0.1240 0.3797 -vn 0.9167 -0.1240 -0.3797 -vn -0.7016 -0.1240 0.7016 -vn 0.7016 -0.1240 -0.7016 -vn -0.3797 -0.1240 0.9167 -vn 0.3797 -0.1240 -0.9167 -vn 0.0000 -0.1240 0.9923 -vn -0.3797 -0.1240 -0.9167 -vn 0.0000 -0.1240 -0.9923 -vn 0.3797 -0.1240 0.9167 -s off -f 5097/7483/891 5098/7484/891 5099/7485/891 -f 5100/7486/892 5101/7487/892 5102/7488/892 -f 5103/7489/893 5104/7490/893 5105/7491/893 -f 5106/7492/894 5107/7493/894 5108/7494/894 -f 5109/7495/895 5110/7496/895 5111/7497/895 -f 5112/7498/892 5106/7499/892 5104/7500/892 -f 5113/7501/896 5109/7502/896 5101/7503/896 -f 5103/7489/897 5105/7491/897 5114/7504/897 -f 5100/7486/893 5102/7488/893 5115/7505/893 -f 5107/7493/891 5104/7506/891 5108/7494/891 -f 5112/7507/898 5116/7508/898 5117/7509/898 -f 5111/7497/891 5102/7488/891 5101/7510/891 -f 5113/7511/899 5118/7512/899 5119/7513/899 -f 5120/7514/900 5121/7515/900 5122/7516/900 -f 5123/7517/891 5124/7518/891 5125/7519/891 -f 5121/7515/896 5126/7520/896 5127/7521/896 -f 5128/7522/893 5129/7523/893 5124/7524/893 -f 5129/7525/901 5123/7517/901 5125/7519/901 -f 5121/7515/897 5124/7526/897 5126/7520/897 -f 5130/7527/902 5131/7528/902 5132/7529/902 -f 5133/7530/891 5134/7531/891 5135/7532/891 -f 5136/7533/892 5134/7531/892 5137/7534/892 -f 5130/7535/897 5138/7536/897 5135/7537/897 -f 5137/7538/903 5133/7530/903 5138/7539/903 -f 5136/7533/896 5135/7540/896 5134/7531/896 -f 5139/7541/891 5140/7542/891 5141/7543/891 -f 5141/7543/891 5142/7544/891 5097/7483/891 -f 5097/7483/891 5143/7545/891 5098/7484/891 -f 5143/7545/891 5144/7546/891 5098/7484/891 -f 5144/7546/891 5145/7547/891 5098/7484/891 -f 5098/7484/891 5146/7548/891 5099/7485/891 -f 5146/7548/891 5147/7549/891 5099/7485/891 -f 5147/7549/891 5148/7550/891 5099/7485/891 -f 5099/7485/891 5149/7551/891 5150/7552/891 -f 5150/7552/891 5151/7553/891 5139/7541/891 -f 5139/7541/891 5141/7543/891 5097/7483/891 -f 5099/7485/891 5150/7552/891 5139/7541/891 -f 5139/7541/891 5097/7483/891 5099/7485/891 -f 5100/7486/892 5113/7511/892 5101/7487/892 -f 5103/7489/893 5112/7507/893 5104/7490/893 -f 5106/7492/894 5114/7554/894 5107/7493/894 -f 5109/7495/895 5115/7555/895 5110/7496/895 -f 5117/7556/892 5106/7499/892 5112/7498/892 -f 5106/7499/892 5108/7557/892 5104/7500/892 -f 5119/7558/896 5109/7502/896 5113/7501/896 -f 5109/7502/896 5111/7559/896 5101/7503/896 -f 5107/7493/897 5114/7504/897 5105/7491/897 -f 5114/7504/897 5116/7560/897 5103/7489/897 -f 5110/7496/893 5115/7505/893 5102/7488/893 -f 5115/7505/893 5118/7561/893 5100/7486/893 -f 5107/7493/891 5105/7491/891 5104/7506/891 -f 5112/7507/898 5103/7489/898 5116/7508/898 -f 5111/7497/891 5110/7496/891 5102/7488/891 -f 5113/7511/899 5100/7486/899 5118/7512/899 -f 5120/7514/900 5128/7562/900 5121/7515/900 -f 5123/7517/891 5126/7520/891 5124/7518/891 -f 5123/7517/896 5127/7521/896 5126/7520/896 -f 5127/7521/896 5122/7563/896 5121/7515/896 -f 5120/7564/893 5129/7523/893 5128/7522/893 -f 5129/7523/893 5125/7565/893 5124/7524/893 -f 5129/7525/901 5127/7566/901 5123/7517/901 -f 5121/7515/897 5128/7562/897 5124/7526/897 -f 5130/7527/902 5136/7533/902 5131/7528/902 -f 5133/7530/891 5152/7567/891 5134/7531/891 -f 5152/7567/892 5137/7534/892 5134/7531/892 -f 5137/7534/892 5131/7568/892 5136/7533/892 -f 5132/7569/897 5138/7536/897 5130/7535/897 -f 5138/7536/897 5133/7570/897 5135/7537/897 -f 5137/7538/903 5152/7567/903 5133/7530/903 -f 5136/7533/896 5130/7527/896 5135/7540/896 -s 1 -f 5153/7571/904 5154/7572/905 5155/7573/906 -f 5156/7574/907 5157/7575/908 5158/7576/909 -f 5159/7577/910 5160/7578/911 5153/7571/904 -f 5161/7579/912 5162/7580/913 5156/7574/907 -f 5163/7581/914 5164/7582/915 5159/7577/910 -f 5165/7583/916 5166/7584/917 5161/7585/912 -f 5167/7586/918 5168/7587/919 5163/7581/914 -f 5169/7588/920 5170/7589/921 5165/7583/916 -f 5171/7590/922 5172/7591/923 5167/7586/918 -f 5173/7592/924 5174/7593/925 5169/7588/920 -f 5175/7594/926 5176/7595/927 5171/7590/922 -f 5173/7592/924 5177/7596/928 5178/7597/929 -f 5179/7598/930 5180/7599/931 5181/7600/932 -f 5181/7600/932 5182/7601/933 5175/7594/926 -f 5155/7573/906 5177/7596/928 5183/7602/934 -f 5158/7576/909 5184/7603/935 5179/7598/930 -f 5182/7601/933 5185/7604/936 5186/7605/937 -f 5154/7572/905 5187/7606/938 5177/7596/928 -f 5184/7603/935 5188/7607/939 5189/7608/940 -f 5154/7572/905 5190/7609/941 5191/7610/942 -f 5162/7580/913 5188/7611/939 5157/7575/908 -f 5164/7582/915 5190/7612/941 5160/7578/911 -f 5162/7580/913 5192/7613/943 5193/7614/944 -f 5164/7582/915 5194/7615/945 5195/7616/946 -f 5170/7589/921 5192/7617/943 5166/7584/917 -f 5172/7591/923 5194/7618/945 5168/7587/919 -f 5170/7589/921 5196/7619/947 5197/7620/948 -f 5176/7595/927 5198/7621/949 5172/7591/923 -f 5178/7597/929 5196/7622/947 5174/7593/925 -f 5182/7601/933 5199/7623/950 5176/7595/927 -f 5177/7596/928 5200/7624/951 5178/7597/929 -f 5184/7603/935 5185/7625/936 5180/7599/931 -f 5189/7608/940 5188/7607/939 5201/7626/952 -f 5188/7611/939 5193/7627/944 5201/7628/952 -f 5193/7614/944 5192/7613/943 5201/7629/952 -f 5192/7617/943 5197/7630/948 5201/7631/952 -f 5197/7620/948 5196/7619/947 5201/7632/952 -f 5196/7622/947 5200/7633/951 5201/7634/952 -f 5200/7624/951 5187/7635/938 5201/7636/952 -f 5187/7606/938 5191/7637/942 5201/7638/952 -f 5191/7610/942 5190/7609/941 5201/7639/952 -f 5190/7612/941 5195/7640/946 5201/7641/952 -f 5195/7616/946 5194/7615/945 5201/7642/952 -f 5194/7618/945 5198/7643/949 5201/7644/952 -f 5198/7621/949 5199/7645/950 5201/7646/952 -f 5199/7623/950 5186/7647/937 5201/7648/952 -f 5186/7605/937 5185/7604/936 5201/7649/952 -f 5185/7625/936 5189/7650/940 5201/7651/952 -f 5155/7573/906 5098/7652/953 5153/7571/904 -f 5156/7574/907 5139/7653/954 5151/7654/955 -f 5159/7577/910 5098/7655/953 5145/7656/956 -f 5161/7579/912 5151/7657/955 5150/7658/957 -f 5163/7581/914 5145/7659/956 5144/7660/958 -f 5165/7583/916 5150/7661/957 5149/7662/959 -f 5163/7581/914 5143/7663/960 5167/7586/918 -f 5165/7583/916 5099/7664/961 5169/7588/920 -f 5167/7586/918 5097/7665/962 5171/7590/922 -f 5169/7588/920 5148/7666/963 5173/7592/924 -f 5175/7594/926 5097/7667/962 5142/7668/964 -f 5173/7592/924 5147/7669/965 5183/7602/934 -f 5181/7600/932 5140/7670/966 5179/7598/930 -f 5175/7594/926 5141/7671/967 5181/7600/932 -f 5155/7573/906 5147/7672/965 5146/7673/968 -f 5158/7576/909 5140/7674/966 5139/7675/954 -f 5153/7571/904 5160/7578/911 5154/7572/905 -f 5156/7574/907 5162/7580/913 5157/7575/908 -f 5159/7577/910 5164/7582/915 5160/7578/911 -f 5161/7579/912 5166/7676/917 5162/7580/913 -f 5163/7581/914 5168/7587/919 5164/7582/915 -f 5165/7583/916 5170/7589/921 5166/7584/917 -f 5167/7586/918 5172/7591/923 5168/7587/919 -f 5169/7588/920 5174/7593/925 5170/7589/921 -f 5171/7590/922 5176/7595/927 5172/7591/923 -f 5173/7592/924 5178/7597/929 5174/7593/925 -f 5175/7594/926 5182/7601/933 5176/7595/927 -f 5173/7592/924 5183/7602/934 5177/7596/928 -f 5179/7598/930 5184/7603/935 5180/7599/931 -f 5181/7600/932 5180/7599/931 5182/7601/933 -f 5155/7573/906 5154/7572/905 5177/7596/928 -f 5158/7576/909 5157/7575/908 5184/7603/935 -f 5182/7601/933 5180/7599/931 5185/7604/936 -f 5154/7572/905 5191/7637/942 5187/7606/938 -f 5184/7603/935 5157/7575/908 5188/7607/939 -f 5154/7572/905 5160/7578/911 5190/7609/941 -f 5162/7580/913 5193/7627/944 5188/7611/939 -f 5164/7582/915 5195/7640/946 5190/7612/941 -f 5162/7580/913 5166/7676/917 5192/7613/943 -f 5164/7582/915 5168/7587/919 5194/7615/945 -f 5170/7589/921 5197/7630/948 5192/7617/943 -f 5172/7591/923 5198/7643/949 5194/7618/945 -f 5170/7589/921 5174/7593/925 5196/7619/947 -f 5176/7595/927 5199/7645/950 5198/7621/949 -f 5178/7597/929 5200/7633/951 5196/7622/947 -f 5182/7601/933 5186/7647/937 5199/7623/950 -f 5177/7596/928 5187/7635/938 5200/7624/951 -f 5184/7603/935 5189/7650/940 5185/7625/936 -f 5155/7573/906 5146/7677/968 5098/7652/953 -f 5156/7574/907 5158/7576/909 5139/7653/954 -f 5159/7577/910 5153/7571/904 5098/7655/953 -f 5161/7579/912 5156/7574/907 5151/7657/955 -f 5163/7581/914 5159/7577/910 5145/7659/956 -f 5165/7583/916 5161/7585/912 5150/7661/957 -f 5163/7581/914 5144/7678/958 5143/7663/960 -f 5165/7583/916 5149/7679/959 5099/7664/961 -f 5167/7586/918 5143/7680/960 5097/7665/962 -f 5169/7588/920 5099/7681/961 5148/7666/963 -f 5175/7594/926 5171/7590/922 5097/7667/962 -f 5173/7592/924 5148/7682/963 5147/7669/965 -f 5181/7600/932 5141/7683/967 5140/7670/966 -f 5175/7594/926 5142/7684/964 5141/7671/967 -f 5155/7573/906 5183/7602/934 5147/7672/965 -f 5158/7576/909 5179/7598/930 5140/7674/966 -o Atlas_Missile -v -1.154849 5.312499 -0.478354 -v -0.795495 5.312499 -0.795495 -v -0.883883 5.312499 -0.883883 -v -1.125000 5.312499 0.000000 -v -1.154849 5.312499 0.478354 -v -1.039364 5.312499 0.430519 -v -1.250000 5.312499 0.000000 -v -1.039364 5.312499 -0.430519 -v 0.216506 8.812498 -1.125000 -v 0.000000 9.687498 -1.125000 -v 0.180586 8.812498 -1.089079 -v -0.125000 5.312499 -1.466506 -v 0.125000 5.312499 -1.466506 -v 0.000000 5.312499 -1.500000 -v -0.795495 5.312499 0.795495 -v -0.883883 5.312499 0.883883 -v -0.430519 5.312499 1.039364 -v 0.000000 5.312499 1.250000 -v -0.478354 5.312499 1.154849 -v 0.478354 5.312499 1.154849 -v 0.000000 5.312499 1.125000 -v 0.795495 5.312499 0.795495 -v 0.430519 5.312499 1.039364 -v 1.154849 5.312499 0.478354 -v 0.883883 5.312499 0.883884 -v 1.039364 5.312499 0.430519 -v 1.250000 5.312499 0.000000 -v 1.125000 5.312499 0.000000 -v 1.154849 5.312499 -0.478355 -v 0.795495 5.312499 -0.795495 -v 1.039364 5.312499 -0.430519 -v 0.478354 5.312499 -1.154849 -v 0.883884 5.312499 -0.883883 -v -0.478354 5.312499 -1.154849 -v -0.430519 5.312499 -1.039364 -v 0.000000 5.312499 -1.250000 -v 0.000000 5.312499 -1.125000 -v 0.430519 5.312499 -1.039364 -v 0.883883 2.687500 0.883884 -v 0.687126 2.687500 1.015353 -v 1.154849 2.687500 0.478354 -v 0.750000 2.687500 -1.250000 -v 0.687126 2.687500 -1.015352 -v 0.649519 2.687500 -1.625000 -v -0.649519 2.687500 -1.625000 -v 0.000000 2.687500 -2.000000 -v 0.375000 2.687500 -1.899519 -v -0.375000 2.687500 -1.899519 -v -0.750000 2.687500 -1.250000 -v -0.687126 2.687500 -1.015352 -v 0.000000 2.000000 -1.750000 -v 0.250000 2.000000 -1.683013 -v -0.250000 2.000000 -1.683013 -v 0.000000 2.000000 -0.750000 -v -0.250000 2.000000 -0.816987 -v 0.250000 2.000000 -0.816987 -v 0.500000 2.000000 -1.250000 -v 0.433013 2.000000 -1.000000 -v 0.433013 2.000000 -1.500000 -v -0.500000 2.000000 -1.250000 -v -0.433013 2.000000 -1.500000 -v -0.433013 2.000000 -1.000000 -v 0.000000 2.000000 -0.500000 -v 0.250000 2.000000 -0.433013 -v -0.250000 2.000000 -0.433013 -v 0.000000 2.000000 0.500000 -v -0.250000 2.000000 0.433013 -v 0.250000 2.000000 0.433013 -v 0.500000 2.000000 0.000000 -v 0.433013 2.000000 0.250000 -v 0.433013 2.000000 -0.250000 -v -0.500000 2.000000 -0.000000 -v -0.433013 2.000000 -0.250000 -v -0.433013 2.000000 0.250000 -v 1.250000 2.687500 0.000000 -v 1.154849 2.687500 -0.478355 -v -1.250000 2.687500 0.000000 -v -1.154849 2.687500 -0.478354 -v -1.154849 2.687500 0.478354 -v -0.883883 2.687500 -0.883883 -v 0.883884 2.687500 -0.883883 -v -0.125000 5.376628 -1.642699 -v 0.125000 5.376628 -1.642699 -v -0.216506 8.812498 1.125000 -v 0.000000 9.687498 1.125000 -v -0.180586 8.812498 1.089079 -v -0.750000 2.687500 1.250000 -v -0.687126 2.687500 1.015352 -v -0.649519 2.687500 1.625000 -v 0.649519 2.687500 1.625000 -v 0.000000 2.687500 2.000000 -v -0.375000 2.687500 1.899519 -v 0.375000 2.687500 1.899519 -v 0.750000 2.687500 1.250000 -v 0.000000 2.000000 1.750000 -v -0.250000 2.000000 1.683013 -v 0.250000 2.000000 1.683013 -v 0.000000 2.000000 0.750000 -v 0.250000 2.000000 0.816987 -v -0.250000 2.000000 0.816987 -v -0.500000 2.000000 1.250000 -v -0.433013 2.000000 1.000000 -v -0.433013 2.000000 1.500000 -v 0.500000 2.000000 1.250000 -v 0.433013 2.000000 1.500000 -v 0.433013 2.000000 1.000000 -v -0.883883 2.687500 0.883883 -v -0.478354 4.249999 -1.154849 -v 0.000000 12.812498 -1.125000 -v -0.430519 12.812498 -1.039364 -v 1.039364 12.812498 0.430519 -v -1.125000 12.812498 0.000000 -v 1.125000 12.812498 0.000000 -v -1.039364 12.812498 0.430519 -v 1.039364 12.812498 -0.430519 -v -0.795495 12.812498 0.795496 -v 0.795495 12.812498 -0.795494 -v -0.430519 12.812498 1.039364 -v 0.430519 12.812498 -1.039364 -v 0.000000 12.812498 1.125000 -v 0.430519 12.812498 1.039364 -v -0.795495 12.812498 -0.795494 -v 0.795495 12.812498 0.795495 -v -1.039364 12.812498 -0.430519 -v 0.562500 15.312498 0.000001 -v 0.519682 15.312498 -0.215259 -v 0.397748 15.312498 -0.397747 -v 0.215259 15.312498 -0.519681 -v 0.000000 15.312498 -0.562499 -v -0.215259 15.312498 -0.519681 -v -0.397748 15.312498 -0.397747 -v -0.519682 15.312498 -0.215258 -v -0.519682 15.312498 0.215260 -v -0.562500 15.312498 0.000001 -v -0.215259 15.312498 0.519683 -v -0.397748 15.312498 0.397749 -v 0.000000 15.312498 0.562501 -v 0.215259 15.312498 0.519683 -v 0.397747 15.312498 0.397749 -v 0.519682 15.312498 0.215261 -v 0.000000 16.437496 0.000001 -v 0.000000 4.249999 -1.750000 -v 0.250000 4.249999 -1.683013 -v -0.250000 4.249999 -1.683013 -v -0.433013 4.249999 -1.500000 -v -0.500000 4.249999 -1.250000 -v 0.433013 4.249999 -1.500000 -v 0.500000 4.249999 -1.250000 -v 0.478354 4.249999 -1.154849 -v 0.250000 5.312499 -1.250000 -v 0.216506 5.312499 -1.125000 -v 0.216506 5.312499 -1.375000 -v -0.216506 5.312499 -1.375000 -v -0.250000 5.312499 -1.250000 -v -0.216506 5.312499 -1.125000 -v -0.180586 5.312499 -1.089079 -v -0.216506 8.812498 -1.125000 -v -0.250000 8.812498 -1.250000 -v 0.180586 5.312499 -1.089079 -v 0.216506 8.812498 -1.375000 -v 0.250000 8.812498 -1.250000 -v -0.216506 8.812498 -1.375000 -v -0.125000 8.812498 -1.466506 -v 0.125000 8.812498 -1.466506 -v -0.180586 8.812498 -1.089079 -v 0.478354 4.249999 1.154849 -v 0.324760 2.687500 -1.437500 -v 0.187500 2.687500 -1.574759 -v 0.375000 2.687500 -1.250000 -v 0.324760 2.687500 -1.062500 -v 0.187500 2.687500 -0.925241 -v 0.000000 2.687500 -0.875000 -v 0.500000 2.375000 0.000000 -v 0.433013 2.375000 -0.250000 -v 0.000000 2.375000 0.500000 -v 0.250000 2.375000 0.433013 -v -0.500000 2.375000 0.000000 -v -0.433013 2.375000 0.250000 -v 0.250000 2.375000 -0.433013 -v 0.000000 2.375000 -0.500000 -v -0.250000 2.375000 -0.433013 -v 0.433013 2.375000 0.250000 -v -0.250000 2.375000 0.433013 -v -0.433013 2.375000 -0.250000 -v 0.324760 2.687500 -0.187500 -v 0.375000 2.687500 0.000000 -v 0.187500 2.687500 -0.324759 -v 0.000000 2.687500 -0.375000 -v -0.187500 2.687500 -0.324759 -v -0.324760 2.687500 -0.187500 -v -0.375000 2.687500 0.000000 -v -0.324760 2.687500 0.187500 -v -0.187500 2.687500 0.324759 -v 0.000000 2.687500 0.375000 -v 0.187500 2.687500 0.324759 -v 0.324760 2.687500 0.187500 -v 0.000000 2.687500 -1.625000 -v -0.187500 2.687500 -1.574759 -v -0.324760 2.687500 -1.437500 -v -0.375000 2.687500 -1.250000 -v -0.324760 2.687500 -1.062500 -v -0.187500 2.687500 -0.925241 -v 0.062500 5.687499 -1.466506 -v -0.062500 5.687499 -1.466506 -v 0.000000 4.249999 1.750000 -v -0.250000 4.249999 1.683013 -v 0.250000 4.249999 1.683013 -v 0.433013 4.249999 1.500000 -v 0.500000 4.249999 1.250000 -v -0.433013 4.249999 1.500000 -v -0.500000 4.249999 1.250000 -v -0.478354 4.249999 1.154849 -v -0.250000 5.312499 1.250000 -v -0.216506 5.312499 1.125000 -v -0.216506 5.312499 1.375000 -v 0.000000 5.312499 1.500000 -v 0.125000 5.312499 1.466506 -v 0.216506 5.312499 1.375000 -v 0.250000 5.312499 1.250000 -v 0.216506 5.312499 1.125000 -v 0.218750 5.437499 1.722636 -v -0.218750 6.562499 1.722636 -v -0.218750 5.437499 1.722636 -v 0.125000 7.437499 1.466506 -v -0.125000 7.437499 1.466506 -v 0.250000 7.437499 1.250000 -v 0.216506 7.437499 1.375000 -v 0.378886 6.562499 1.500000 -v -0.378886 5.312499 1.500000 -v 0.378886 6.562499 1.049635 -v 0.216506 7.437499 1.125000 -v 0.180586 7.437499 1.089079 -v 0.218750 6.562499 1.722636 -v -0.250000 8.812498 1.250000 -v -0.216506 8.812498 1.375000 -v -0.125000 8.812498 1.466506 -v 0.125000 8.812498 1.466506 -v 0.216506 8.812498 1.375000 -v 0.250000 8.812498 1.250000 -v 0.216506 8.812498 1.125000 -v 0.180586 8.812498 1.089079 -v -0.324760 2.687500 1.437500 -v -0.187500 2.687500 1.574759 -v -0.324760 2.687500 1.062500 -v -0.375000 2.687500 1.250000 -v -0.187500 2.687500 0.925241 -v 0.000000 2.687500 0.875000 -v 0.000000 2.687500 1.625000 -v 0.187500 2.687500 1.574759 -v 0.324759 2.687500 1.437500 -v 0.375000 2.687500 1.250000 -v 0.324759 2.687500 1.062500 -v 0.187500 2.687500 0.925241 -v -0.378886 6.562499 1.500000 -v -0.216506 7.437499 1.375000 -v -0.378886 5.312499 1.049635 -v 0.378886 5.312499 1.049635 -v 0.378886 5.312499 1.500000 -v -0.250000 7.437499 1.250000 -v -0.378886 6.562499 1.049635 -v -0.216506 7.437499 1.125000 -v -0.180586 7.437499 1.089079 -v 1.140000 12.093748 0.000000 -v 1.053223 10.124998 -0.436259 -v 1.053223 12.093748 -0.436259 -v 0.806102 12.093748 0.806102 -v 1.053223 10.124998 0.436259 -v 1.053223 12.093748 0.436259 -v -1.140000 12.093748 0.000000 -v -1.053223 10.124998 0.436259 -v -1.053223 12.093748 0.436259 -v -0.806102 12.093748 -0.806102 -v -1.053223 10.124998 -0.436259 -v -1.053223 12.093748 -0.436259 -v 0.806102 10.124998 -0.806102 -v 0.806102 12.093748 -0.806102 -v 1.140000 10.124998 0.000000 -v -0.806102 10.124998 0.806102 -v -0.806102 12.093748 0.806102 -v -1.140000 10.124998 0.000000 -v 0.145625 8.406248 1.475167 -v 0.225166 7.874999 1.380000 -v 0.225166 8.406248 1.380000 -v -0.145625 7.874999 1.475167 -v -0.145625 8.406248 1.475167 -v -0.225167 8.406248 1.380000 -v -0.145625 8.406248 -1.475167 -v -0.225167 7.874999 -1.380000 -v -0.225167 8.406248 -1.380000 -v 0.145625 7.874999 -1.475167 -v 0.145625 8.406248 -1.475167 -v 0.225166 8.406248 -1.380000 -v -0.125000 5.312499 1.466506 -v 0.806102 10.124998 0.806102 -v -0.806102 10.124998 -0.806102 -v 0.145625 7.874999 1.475167 -v -0.225167 7.874999 1.380000 -v -0.145625 7.874999 -1.475167 -v 0.225166 7.874999 -1.380000 -v -0.180586 5.312499 1.089079 -v 0.180586 5.312499 1.089079 -vt 0.107143 0.186667 -vt 0.071429 0.195556 -vt 0.071429 0.186667 -vt 0.142857 0.195556 -vt 0.178571 0.186667 -vt 0.178571 0.195556 -vt 0.142857 0.186667 -vt 0.107143 0.195556 -vt 0.576531 0.622222 -vt 0.576531 0.684444 -vt 0.571429 0.622222 -vt 0.790816 0.577778 -vt 0.770408 0.577778 -vt 0.780612 0.573333 -vt 0.214286 0.195556 -vt 0.214286 0.186667 -vt 0.250000 0.195556 -vt 0.285714 0.186667 -vt 0.250000 0.186667 -vt 0.321429 0.186667 -vt 0.285714 0.195556 -vt 0.357143 0.195556 -vt 0.321429 0.195556 -vt 0.392857 0.186667 -vt 0.357143 0.186667 -vt 0.392857 0.195556 -vt 0.428571 0.186667 -vt 0.428571 0.195556 -vt 0.464286 0.186667 -vt 0.500000 0.195556 -vt 0.464286 0.195556 -vt 0.535714 0.186667 -vt 0.500000 0.186667 -vt 0.035714 0.186667 -vt 0.035714 0.195556 -vt 0.000000 0.186667 -vt 0.571429 0.195556 -vt 0.535714 0.195556 -vt 0.744173 0.160632 -vt 0.733441 0.146640 -vt 0.777277 0.179900 -vt 0.918367 0.151111 -vt 0.899213 0.146640 -vt 0.948980 0.143966 -vt 0.948980 0.051590 -vt 0.979592 0.097778 -vt 0.971389 0.124444 -vt 0.971389 0.071111 -vt 0.918367 0.044444 -vt 0.899213 0.048915 -vt 0.795918 0.320000 -vt 0.801387 0.337778 -vt 0.801387 0.302222 -vt 0.877551 0.320000 -vt 0.872083 0.302222 -vt 0.872083 0.337778 -vt 0.836735 0.355556 -vt 0.857143 0.350792 -vt 0.816327 0.350792 -vt 0.836735 0.284444 -vt 0.816327 0.289208 -vt 0.857143 0.289208 -vt 0.795918 0.320000 -vt 0.801387 0.337778 -vt 0.801387 0.302222 -vt 0.877551 0.320000 -vt 0.872083 0.302222 -vt 0.872083 0.337778 -vt 0.836735 0.355556 -vt 0.857143 0.350792 -vt 0.816327 0.350792 -vt 0.836735 0.284444 -vt 0.816327 0.289208 -vt 0.857143 0.289208 -vt 0.816327 0.186667 -vt 0.855376 0.179900 -vt 0.816327 0.008889 -vt 0.855376 0.015655 -vt 0.777277 0.015655 -vt 0.888480 0.034924 -vt 0.888480 0.160632 -vt 0.790816 0.591111 -vt 0.770408 0.591111 -vt 0.668367 0.622222 -vt 0.668367 0.684444 -vt 0.663265 0.622222 -vt 0.714286 0.044444 -vt 0.733441 0.048915 -vt 0.683674 0.051590 -vt 0.683674 0.143966 -vt 0.653061 0.097778 -vt 0.661264 0.071111 -vt 0.661264 0.124444 -vt 0.714286 0.151111 -vt 0.877551 0.320000 -vt 0.872083 0.302222 -vt 0.872083 0.337778 -vt 0.795918 0.320000 -vt 0.801387 0.337778 -vt 0.801387 0.302222 -vt 0.836735 0.284444 -vt 0.816327 0.289208 -vt 0.857143 0.289208 -vt 0.836735 0.355556 -vt 0.857143 0.350792 -vt 0.816327 0.350792 -vt 0.744173 0.034924 -vt 0.000000 0.195556 -vt 0.571429 0.186667 -vt 0.040816 0.111111 -vt 0.061224 -0.000000 -vt 0.081633 -0.000000 -vt -0.000000 0.728889 -vt 0.035714 0.728889 -vt 0.392857 0.728889 -vt 0.142857 0.728889 -vt 0.428571 0.728889 -vt 0.178571 0.728889 -vt 0.464286 0.728889 -vt 0.214286 0.728889 -vt 0.500000 0.728889 -vt 0.250000 0.728889 -vt 0.535714 0.728889 -vt 0.571429 0.728889 -vt 0.285714 0.728889 -vt 0.321429 0.728889 -vt 0.071429 0.728889 -vt 0.357143 0.728889 -vt 0.107143 0.728889 -vt 0.438776 0.911111 -vt 0.474490 0.911111 -vt 0.510204 0.911111 -vt 0.545918 0.911111 -vt 0.010204 0.911111 -vt 0.045918 0.911111 -vt 0.081633 0.911111 -vt 0.117347 0.911111 -vt 0.168367 0.911111 -vt 0.153061 0.911111 -vt 0.188776 0.911111 -vt 0.239796 0.911111 -vt 0.224490 0.911111 -vt 0.260204 0.911111 -vt 0.295918 0.911111 -vt 0.331633 0.911111 -vt 0.367347 0.911111 -vt 0.403061 0.911111 -vt 0.489796 0.911111 -vt 0.482143 1.000000 -vt 0.232143 1.000000 -vt 0.525510 0.911111 -vt 0.517857 1.000000 -vt 0.275510 0.911111 -vt 0.267857 1.000000 -vt 0.025510 0.911111 -vt 0.017857 1.000000 -vt 0.561224 0.911111 -vt 0.553571 1.000000 -vt 0.311224 0.911111 -vt 0.303571 1.000000 -vt 0.061224 0.911111 -vt 0.053571 1.000000 -vt 0.346939 0.911111 -vt 0.339286 1.000000 -vt 0.096939 0.911111 -vt 0.089286 1.000000 -vt 0.382653 0.911111 -vt 0.375000 1.000000 -vt 0.132653 0.911111 -vt 0.125000 1.000000 -vt 0.418367 0.911111 -vt 0.410714 1.000000 -vt 0.160714 1.000000 -vt 0.454082 0.911111 -vt 0.446429 1.000000 -vt 0.204082 0.911111 -vt 0.196429 1.000000 -vt 0.653061 0.186667 -vt 0.678571 0.297778 -vt 0.658163 0.297778 -vt 0.683673 0.186667 -vt 0.709184 0.297778 -vt 0.688776 0.297778 -vt 0.714286 0.186667 -vt 0.739796 0.297778 -vt 0.719388 0.297778 -vt 0.744898 0.186667 -vt 0.770408 0.297778 -vt 0.750000 0.297778 -vt 0.785714 0.297778 -vt 0.775510 0.186667 -vt 0.795918 0.186667 -vt 0.622449 0.186667 -vt 0.647959 0.297778 -vt 0.627551 0.297778 -vt 0.591837 0.186667 -vt 0.617347 0.297778 -vt 0.596939 0.297778 -vt 0.581633 0.297778 -vt 0.591837 0.297778 -vt 0.591837 0.373333 -vt 0.581633 0.373333 -vt 0.602041 0.373333 -vt 0.632653 0.373333 -vt 0.693878 0.373333 -vt 0.673469 0.373333 -vt 0.724490 0.373333 -vt 0.755102 0.373333 -vt 0.775510 0.373333 -vt 0.785714 0.373333 -vt 0.663265 0.373333 -vt 0.658163 0.622222 -vt 0.658163 0.373333 -vt 0.647959 0.622222 -vt 0.647959 0.373333 -vt 0.576531 0.373333 -vt 0.571429 0.373333 -vt 0.607143 0.373333 -vt 0.596939 0.622222 -vt 0.596939 0.373333 -vt 0.586735 0.622222 -vt 0.586735 0.373333 -vt 0.637755 0.622222 -vt 0.637755 0.373333 -vt 0.627551 0.622222 -vt 0.627551 0.373333 -vt 0.581633 0.688889 -vt 0.591837 0.688889 -vt 0.607143 0.622222 -vt 0.602041 0.688889 -vt 0.632653 0.688889 -vt 0.642857 0.688889 -vt 0.653061 0.688889 -vt 0.663265 0.622222 -vt 0.658163 0.684444 -vt 0.612245 0.111111 -vt 0.571429 0.000000 -vt 0.591837 0.000000 -vt 0.571429 0.186667 -vt 0.612245 0.186667 -vt 0.653061 0.186667 -vt 0.040816 0.186667 -vt 0.081633 0.186667 -vt 0.122449 -0.000000 -vt 0.163265 0.000000 -vt 0.122449 0.186667 -vt 0.204082 0.000000 -vt 0.163265 0.186667 -vt 0.244898 -0.000000 -vt 0.204082 0.186667 -vt 0.367347 0.186667 -vt 0.326531 0.186667 -vt 0.367347 0.111111 -vt 0.408163 0.186667 -vt 0.387755 -0.000000 -vt 0.408163 -0.000000 -vt 0.448980 0.000000 -vt 0.489796 -0.000000 -vt 0.448980 0.186667 -vt 0.530612 -0.000000 -vt 0.489796 0.186667 -vt 0.530612 0.186667 -vt 0.948980 0.235556 -vt 0.964286 0.186667 -vt 0.964286 0.235556 -vt 0.918367 0.186667 -vt 0.933673 0.235556 -vt 0.918367 0.235556 -vt 0.887755 0.186667 -vt 0.903061 0.235556 -vt 0.887755 0.235556 -vt 0.903061 0.186667 -vt 0.933673 0.186667 -vt 0.933673 0.262222 -vt 0.948980 0.235556 -vt 0.948980 0.262222 -vt 0.887755 0.262222 -vt 0.903061 0.235556 -vt 0.903061 0.262222 -vt 0.841837 0.262222 -vt 0.857143 0.235556 -vt 0.857143 0.262222 -vt 0.964286 0.235556 -vt 0.964286 0.262222 -vt 0.795918 0.262222 -vt 0.811224 0.235556 -vt 0.811224 0.262222 -vt 0.918367 0.235556 -vt 0.918367 0.262222 -vt 0.872449 0.235556 -vt 0.872449 0.262222 -vt 0.979592 0.235556 -vt 0.979592 0.262222 -vt 0.826531 0.235556 -vt 0.826531 0.262222 -vt 0.933673 0.235556 -vt 0.887755 0.235556 -vt 0.841837 0.235556 -vt 0.948980 0.284444 -vt 0.933673 0.284444 -vt 0.964286 0.284444 -vt 0.979592 0.284444 -vt 0.811224 0.284444 -vt 0.795918 0.284444 -vt 0.826531 0.284444 -vt 0.841837 0.284444 -vt 0.857143 0.284444 -vt 0.872449 0.284444 -vt 0.887755 0.284444 -vt 0.903061 0.284444 -vt 0.918367 0.284444 -vt 0.979592 0.235556 -vt 0.795918 0.186667 -vt 0.811224 0.235556 -vt 0.795918 0.235556 -vt 0.811224 0.186667 -vt 0.826531 0.235556 -vt 0.826531 0.186667 -vt 0.841837 0.235556 -vt 0.841837 0.186667 -vt 0.857143 0.235556 -vt 0.857143 0.186667 -vt 0.872449 0.235556 -vt 0.872449 0.186667 -vt 0.770408 0.617778 -vt 0.755102 0.591111 -vt 0.806122 0.591111 -vt 0.790816 0.617778 -vt 0.775510 0.617778 -vt 0.785714 0.617778 -vt 0.617347 0.688889 -vt 0.653061 0.186667 -vt 0.678571 0.297778 -vt 0.658163 0.297778 -vt 0.683673 0.186667 -vt 0.709184 0.297778 -vt 0.688776 0.297778 -vt 0.714286 0.186667 -vt 0.739796 0.297778 -vt 0.719388 0.297778 -vt 0.744898 0.186667 -vt 0.770408 0.297778 -vt 0.750000 0.297778 -vt 0.785714 0.297778 -vt 0.775510 0.186667 -vt 0.795918 0.186667 -vt 0.622449 0.186667 -vt 0.647959 0.297778 -vt 0.627551 0.297778 -vt 0.591837 0.186667 -vt 0.617347 0.297778 -vt 0.596939 0.297778 -vt 0.581633 0.297778 -vt 0.591837 0.297778 -vt 0.591837 0.373333 -vt 0.581633 0.373333 -vt 0.602041 0.373333 -vt 0.632653 0.373333 -vt 0.693878 0.373333 -vt 0.673469 0.373333 -vt 0.724490 0.373333 -vt 0.755102 0.373333 -vt 0.775510 0.373333 -vt 0.785714 0.373333 -vt 0.760204 0.382222 -vt 0.724490 0.462222 -vt 0.724490 0.382222 -vt 0.760204 0.524444 -vt 0.724490 0.524444 -vt 0.798469 0.524444 -vt 0.785714 0.524444 -vt 0.780612 0.462222 -vt 0.755102 0.555556 -vt 0.806122 0.573333 -vt 0.765306 0.573333 -vt 0.816327 0.462222 -vt 0.811224 0.524444 -vt 0.816327 0.524444 -vt 0.765306 0.524444 -vt 0.760204 0.462222 -vt 0.678571 0.622222 -vt 0.673469 0.688889 -vt 0.688776 0.622222 -vt 0.683673 0.688889 -vt 0.698980 0.622222 -vt 0.693878 0.688889 -vt 0.719388 0.622222 -vt 0.729592 0.622222 -vt 0.724490 0.688889 -vt 0.739796 0.622222 -vt 0.734694 0.688889 -vt 0.750000 0.622222 -vt 0.744898 0.688889 -vt 0.755102 0.622222 -vt 0.750000 0.684444 -vt 0.857143 0.235556 -vt 0.872449 0.186667 -vt 0.872449 0.235556 -vt 0.826531 0.235556 -vt 0.841837 0.186667 -vt 0.841837 0.235556 -vt 0.795918 0.186667 -vt 0.811224 0.235556 -vt 0.795918 0.235556 -vt 0.811224 0.186667 -vt 0.887755 0.235556 -vt 0.887755 0.186667 -vt 0.903061 0.235556 -vt 0.903061 0.186667 -vt 0.918367 0.235556 -vt 0.933673 0.186667 -vt 0.933673 0.235556 -vt 0.948980 0.235556 -vt 0.948980 0.186667 -vt 0.964286 0.235556 -vt 0.964286 0.186667 -vt 0.979592 0.235556 -vt 0.709184 0.688889 -vt 0.704082 0.462222 -vt 0.719388 0.524444 -vt 0.704082 0.524444 -vt 0.285714 0.111111 -vt 0.285714 0.186667 -vt 0.244898 0.186667 -vt 0.265306 0.000000 -vt 0.668367 0.373333 -vt 0.704082 0.373333 -vt 0.816327 0.373333 -vt 0.780612 0.373333 -vt 0.686224 0.524444 -vt 0.698980 0.524444 -vt 0.668367 0.462222 -vt 0.673469 0.524444 -vt 0.668367 0.524444 -vt 0.750000 0.524444 -vt 0.739796 0.524444 -vt 0.729592 0.524444 -vt 0.719388 0.524444 -vt 0.678571 0.524444 -vt 0.668367 0.524444 -vt 0.663265 0.524444 -vt 0.816327 0.524444 -vt 0.755102 0.524444 -vt 0.688776 0.524444 -vt 0.714286 0.968889 -vt 0.785714 0.688889 -vt 0.785714 0.968889 -vt 0.571429 0.968889 -vt 0.642857 0.688889 -vt 0.642857 0.968889 -vt 0.714286 0.968889 -vt 0.785714 0.688889 -vt 0.785714 0.968889 -vt 0.571429 0.968889 -vt 0.642857 0.688889 -vt 0.642857 0.968889 -vt 0.857143 0.688889 -vt 0.857143 0.968889 -vt 0.714286 0.688889 -vt 0.857143 0.688889 -vt 0.857143 0.968889 -vt 0.714286 0.688889 -vt 0.923469 0.764444 -vt 0.943878 0.688889 -vt 0.943878 0.764444 -vt 0.877551 0.688889 -vt 0.877551 0.764444 -vt 0.857143 0.764444 -vt 0.923469 0.764444 -vt 0.943878 0.688889 -vt 0.943878 0.764444 -vt 0.877551 0.688889 -vt 0.877551 0.764444 -vt 0.857143 0.764444 -vt 0.775510 0.297778 -vt 0.571429 0.186667 -vt 0.612245 0.373333 -vt 0.642857 0.373333 -vt 0.704082 0.373333 -vt 0.663265 0.373333 -vt 0.734694 0.373333 -vt 0.765306 0.373333 -vt 0.948980 0.186667 -vt 0.795918 0.235556 -vt 0.979592 0.186667 -vt 0.775510 0.297778 -vt 0.571429 0.186667 -vt 0.612245 0.373333 -vt 0.642857 0.373333 -vt 0.704082 0.373333 -vt 0.663265 0.373333 -vt 0.734694 0.373333 -vt 0.765306 0.373333 -vt 0.816327 0.555556 -vt 0.780612 0.524444 -vt 0.857143 0.186667 -vt 0.826531 0.186667 -vt 0.918367 0.186667 -vt 0.979592 0.186667 -vt 0.755102 0.524444 -vt 0.698980 0.524444 -vt 0.571429 0.688889 -vt 0.571429 0.688889 -vt 0.923469 0.688889 -vt 0.857143 0.688889 -vt 0.923469 0.688889 -vt 0.857143 0.688889 -vn 0.0000 1.0000 -0.0000 -vn 0.6965 0.1723 0.6965 vn 0.0000 -1.0000 0.0000 -vn 0.0000 -0.9397 -0.3420 -vn -0.6965 0.1723 -0.6965 -vn -0.5144 -0.0000 -0.8575 -vn -0.5556 0.0000 -0.8315 -vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 -vn -0.3827 0.0000 -0.9239 -vn 1.0000 -0.0000 0.0000 -vn 0.9239 -0.0000 0.3827 -vn -0.9239 -0.0000 0.3827 -vn -1.0000 -0.0000 0.0000 -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.3827 0.0000 -0.9239 -vn -0.0000 -0.0000 1.0000 -vn 0.3827 -0.0000 0.9239 -vn 0.7071 -0.0000 0.7071 -vn -0.9239 0.0000 -0.3827 -vn 0.9013 0.2195 -0.3734 -vn 0.9436 0.3312 -0.0000 -vn 0.9756 0.2195 -0.0000 -vn 0.6899 0.2195 -0.6899 -vn 0.8717 0.3312 -0.3611 -vn 0.3734 0.2195 -0.9013 -vn 0.6672 0.3312 -0.6672 -vn 0.0000 0.2195 -0.9756 -vn 0.3611 0.3312 -0.8717 -vn -0.3733 0.2195 -0.9013 -vn -0.0000 0.3312 -0.9436 -vn -0.6899 0.2195 -0.6899 -vn -0.3611 0.3312 -0.8717 -vn -0.9013 0.2195 -0.3733 -vn -0.6672 0.3312 -0.6672 -vn -0.9756 0.2195 0.0000 -vn -0.8717 0.3312 -0.3611 -vn -0.8717 0.3312 0.3611 -vn -0.9436 0.3312 -0.0000 -vn -0.6899 0.2195 0.6899 -vn -0.9013 0.2195 0.3733 -vn -0.3611 0.3312 0.8717 -vn -0.6672 0.3312 0.6672 -vn -0.0000 0.2195 0.9756 -vn -0.3734 0.2195 0.9013 -vn 0.3734 0.2195 0.9013 -vn -0.0000 0.3312 0.9436 -vn 0.6899 0.2195 0.6899 -vn 0.3611 0.3312 0.8717 -vn 0.9013 0.2195 0.3733 -vn 0.6672 0.3312 0.6672 -vn 0.8717 0.3312 0.3611 -vn 0.4937 0.1580 -0.8551 -vn -0.0000 0.1925 -0.9813 -vn 0.4906 0.1925 -0.8498 -vn -0.0000 0.1580 -0.9874 -vn -0.4906 0.1925 -0.8498 -vn -0.4937 0.1580 -0.8551 -vn -0.8498 0.1925 -0.4906 -vn -0.8551 0.1580 -0.4937 -vn -0.9811 0.1926 -0.0186 -vn -0.9568 0.1891 0.2208 -vn -0.9876 0.1569 -0.0007 -vn -0.9549 0.1504 0.2559 -vn 0.8551 0.1580 -0.4937 -vn 0.8498 0.1925 -0.4906 -vn 0.9876 0.1569 -0.0007 -vn 0.9811 0.1926 -0.0186 -vn 0.9568 0.1891 0.2208 -vn 0.9730 0.2306 -0.0011 -vn 0.9412 0.2249 0.2522 -vn 0.8430 0.2290 -0.4867 -vn -0.0000 0.2290 -0.9734 -vn -0.4867 0.2290 -0.8430 -vn -0.8430 0.2290 -0.4867 -vn -0.9730 0.2306 -0.0011 -vn -0.9412 0.2249 0.2522 -vn -0.8658 0.1046 0.4893 -vn -0.8660 -0.0000 0.5000 -vn -0.9905 0.1370 -0.0100 -vn 0.8660 0.0000 0.5000 -vn 0.8497 0.1670 -0.5001 -vn 0.8660 0.0000 -0.5000 -vn 0.9905 0.1370 -0.0100 -vn 0.9043 0.0825 0.4189 -vn 0.8660 0.0001 0.5000 -vn -0.8497 0.1670 -0.5001 -vn -0.8660 0.0000 -0.5000 -vn -0.3745 0.1870 -0.9082 -vn -0.0746 0.6706 -0.7381 -vn 0.3745 0.1870 -0.9082 -vn -0.7043 0.0895 0.7043 -vn 0.5144 -0.0000 -0.8575 -vn 0.5556 -0.0000 -0.8315 -vn 0.1951 0.0000 -0.9808 -vn -0.1951 -0.0000 -0.9808 -vn 0.1951 -0.0000 0.9808 -vn 0.5144 0.0000 0.8575 -vn 0.5556 0.0000 0.8315 -vn 0.8521 0.1789 -0.4919 -vn 0.4919 0.1789 -0.8521 -vn 0.8521 0.1789 0.4919 -vn 0.9839 0.1789 0.0000 -vn 0.0000 0.1789 0.9839 -vn 0.4919 0.1789 0.8521 -vn 0.5000 -0.0000 0.8660 -vn 0.5000 0.0000 -0.8660 -vn -0.5000 0.0000 -0.8660 -vn -0.5000 -0.0000 0.8660 -vn 0.9285 0.3714 0.0000 -vn 0.8041 0.3714 -0.4642 -vn 0.4642 0.3714 -0.8041 -vn -0.0000 0.3714 -0.9285 -vn -0.4642 0.3714 -0.8041 -vn -0.8041 0.3714 -0.4642 -vn -0.9285 0.3714 -0.0000 -vn -0.8041 0.3714 0.4642 -vn -0.4642 0.3714 0.8041 -vn -0.0000 0.3714 0.9285 -vn 0.4642 0.3714 0.8041 -vn 0.8041 0.3714 0.4642 -vn -0.0000 0.1789 -0.9839 -vn -0.4919 0.1789 -0.8521 -vn -0.8521 0.1789 -0.4919 -vn -0.9839 0.1789 -0.0000 -vn -0.8521 0.1789 0.4919 -vn -0.4919 0.1789 0.8521 -vn 0.6886 0.4574 -0.5627 -vn 0.2733 0.5153 -0.8122 -vn 0.9846 0.1641 0.0597 -vn -0.6886 0.4574 -0.5627 -vn -0.9846 0.1641 0.0597 -vn -0.2733 0.5153 -0.8122 -vn -0.4937 0.1580 0.8551 -vn 0.0000 0.1925 0.9813 -vn -0.4906 0.1925 0.8498 -vn 0.0000 0.1580 0.9874 -vn 0.4906 0.1925 0.8498 -vn 0.4937 0.1580 0.8551 -vn 0.8498 0.1925 0.4906 -vn 0.8551 0.1580 0.4937 -vn 0.9811 0.1926 0.0186 -vn 0.9568 0.1891 -0.2208 -vn 0.9876 0.1569 0.0007 -vn 0.9549 0.1504 -0.2559 -vn -0.8551 0.1580 0.4937 -vn -0.8498 0.1925 0.4906 -vn -0.9876 0.1569 0.0007 -vn -0.9811 0.1926 0.0186 -vn -0.9568 0.1891 -0.2208 -vn -0.9730 0.2306 0.0011 -vn -0.9412 0.2249 -0.2522 -vn -0.8430 0.2290 0.4867 -vn 0.0000 0.2290 0.9734 -vn 0.4867 0.2290 0.8430 -vn 0.8430 0.2290 0.4867 -vn 0.9730 0.2306 0.0011 -vn 0.9412 0.2249 -0.2522 -vn 0.5098 -0.0000 0.8603 -vn -0.4475 0.1436 0.8827 -vn -0.5098 -0.0000 0.8603 -vn 0.3856 0.2768 0.8802 -vn -0.3856 0.2768 0.8802 -vn 0.9796 0.2009 -0.0044 -vn 0.8462 0.2260 0.4826 -vn 0.9417 0.1046 0.3198 -vn 0.0000 -0.9802 0.1978 -vn 0.0000 -0.8720 0.4896 -vn 0.9968 0.0762 -0.0244 -vn 0.8471 0.1996 -0.4925 -vn 0.6944 0.1887 -0.6944 -vn 0.4475 0.1436 0.8827 -vn -0.9043 0.0825 -0.4189 -vn -0.9905 0.1370 0.0100 -vn 0.0746 0.6706 0.7381 -vn -0.8497 0.1670 0.5001 -vn -0.3745 0.1870 0.9082 -vn 0.3745 0.1870 0.9082 -vn 0.8497 0.1670 0.5001 -vn 0.9905 0.1370 0.0100 -vn 0.8658 0.1046 -0.4893 -vn 0.7043 0.0895 -0.7043 -vn -0.9417 0.1046 0.3198 -vn -0.8462 0.2260 0.4826 -vn -0.5144 -0.0000 0.8575 -vn -0.1951 0.0000 0.9808 -vn -0.5556 -0.0000 0.8315 -vn -0.9661 -0.0000 0.2581 -vn 0.9661 -0.0000 0.2581 -vn -0.9796 0.2009 -0.0044 -vn -0.9968 0.0762 -0.0244 -vn -0.8471 0.1996 -0.4926 -vn -0.6944 0.1887 -0.6944 -vn 0.8315 0.0000 0.5556 -vn -0.8315 -0.0000 -0.5556 -vn 0.8315 -0.0000 -0.5556 -vn -0.8315 -0.0000 0.5556 -vn 0.4235 0.0000 0.9059 -vn 0.7673 0.0000 0.6413 -vn -0.4235 0.0000 0.9059 -vn -0.7673 0.0000 0.6413 -vn -0.4235 0.0000 -0.9059 -vn -0.7673 0.0000 -0.6413 -vn 0.4235 0.0000 -0.9059 -vn 0.7673 0.0000 -0.6413 -vn 0.9549 0.1504 0.2559 -vn 0.4867 0.2290 -0.8430 -vn -0.9549 0.1504 -0.2559 -vn -0.4867 0.2290 0.8430 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 s off -f 5202/7685/969 5203/7686/969 5204/7687/969 -f 5205/7688/969 5206/7689/969 5207/7690/969 -f 5208/7691/969 5209/7692/969 5202/7685/969 -f 5210/7693/970 5211/7694/970 5212/7695/970 -f 5213/7696/969 5214/7697/969 5215/7698/969 -f 5216/7699/969 5206/7689/969 5217/7700/969 -f 5217/7700/969 5218/7701/969 5216/7699/969 -f 5219/7702/969 5218/7701/969 5220/7703/969 -f 5221/7704/969 5222/7705/969 5219/7702/969 -f 5221/7704/969 5223/7706/969 5224/7707/969 -f 5225/7708/969 5223/7706/969 5226/7709/969 -f 5227/7710/969 5228/7711/969 5229/7712/969 -f 5230/7713/969 5229/7712/969 5228/7711/969 -f 5230/7713/969 5231/7714/969 5232/7715/969 -f 5233/7716/969 5231/7714/969 5234/7717/969 -f 5235/7718/969 5203/7686/969 5236/7719/969 -f 5236/7719/969 5237/7720/969 5235/7718/969 -f 5233/7716/969 5238/7721/969 5239/7722/969 -f 5240/7723/971 5241/7724/971 5242/7725/971 -f 5243/7726/971 5244/7727/971 5245/7728/971 -f 5244/7727/971 5246/7729/971 5245/7728/971 -f 5245/7728/971 5247/7730/971 5248/7731/971 -f 5249/7732/971 5247/7730/971 5246/7729/971 -f 5250/7733/971 5246/7729/971 5251/7734/971 -f 5245/7728/971 5246/7729/971 5247/7730/971 -f 5252/7735/971 5253/7736/971 5254/7737/971 -f 5255/7738/971 5256/7739/971 5257/7740/971 -f 5258/7741/971 5259/7742/971 5260/7743/971 -f 5261/7744/971 5262/7745/971 5263/7746/971 -f 5263/7746/971 5257/7740/971 5256/7739/971 -f 5254/7737/971 5260/7743/971 5262/7745/971 -f 5263/7746/971 5260/7743/971 5259/7742/971 -f 5264/7747/971 5265/7748/971 5266/7749/971 -f 5267/7750/971 5268/7751/971 5269/7752/971 -f 5270/7753/971 5271/7754/971 5272/7755/971 -f 5273/7756/971 5274/7757/971 5275/7758/971 -f 5275/7758/971 5269/7752/971 5268/7751/971 -f 5266/7749/971 5272/7755/971 5274/7757/971 -f 5275/7758/971 5272/7755/971 5271/7754/971 -f 5276/7759/971 5242/7725/971 5277/7760/971 -f 5278/7761/971 5279/7762/971 5280/7763/971 -f 5281/7764/971 5251/7734/971 5279/7762/971 -f 5282/7765/971 5277/7760/971 5244/7727/971 -f 5277/7760/971 5251/7734/971 5244/7727/971 -f 5280/7763/971 5277/7760/971 5242/7725/971 -f 5214/7697/972 5283/7766/972 5284/7767/972 -f 5285/7768/973 5286/7769/973 5287/7770/973 -f 5288/7771/971 5289/7772/971 5290/7773/971 -f 5289/7772/971 5291/7774/971 5290/7773/971 -f 5290/7773/971 5292/7775/971 5293/7776/971 -f 5294/7777/971 5292/7775/971 5291/7774/971 -f 5295/7778/971 5291/7774/971 5241/7724/971 -f 5290/7773/971 5291/7774/971 5292/7775/971 -f 5296/7779/971 5297/7780/971 5298/7781/971 -f 5299/7782/971 5300/7783/971 5301/7784/971 -f 5302/7785/971 5303/7786/971 5304/7787/971 -f 5305/7788/971 5306/7789/971 5307/7790/971 -f 5300/7783/971 5303/7786/971 5301/7784/971 -f 5298/7781/971 5304/7787/971 5306/7789/971 -f 5307/7790/971 5304/7787/971 5303/7786/971 -f 5308/7791/971 5280/7763/971 5289/7772/971 -f 5289/7772/971 5242/7725/971 5241/7724/971 -f 5202/7685/969 5209/7692/969 5203/7686/969 -f 5205/7688/969 5208/7691/969 5206/7689/969 -f 5208/7691/969 5205/7688/969 5209/7692/969 -f 5216/7699/969 5207/7690/969 5206/7689/969 -f 5217/7700/969 5220/7703/969 5218/7701/969 -f 5219/7702/969 5222/7705/969 5218/7701/969 -f 5221/7704/969 5224/7707/969 5222/7705/969 -f 5221/7704/969 5226/7709/969 5223/7706/969 -f 5225/7708/969 5227/7710/969 5223/7706/969 -f 5227/7710/969 5225/7708/969 5228/7711/969 -f 5230/7713/969 5232/7715/969 5229/7712/969 -f 5230/7713/969 5234/7717/969 5231/7714/969 -f 5233/7716/969 5239/7722/969 5231/7714/969 -f 5235/7718/969 5204/7687/969 5203/7686/969 -f 5236/7719/969 5238/7792/969 5237/7720/969 -f 5233/7716/969 5237/7793/969 5238/7721/969 -f 5244/7727/971 5251/7734/971 5246/7729/971 -f 5263/7746/971 5259/7742/971 5257/7740/971 -f 5254/7737/971 5253/7736/971 5260/7743/971 -f 5263/7746/971 5262/7745/971 5260/7743/971 -f 5275/7758/971 5271/7754/971 5269/7752/971 -f 5266/7749/971 5265/7748/971 5272/7755/971 -f 5275/7758/971 5274/7757/971 5272/7755/971 -f 5277/7760/971 5279/7762/971 5251/7734/971 -f 5280/7763/971 5279/7762/971 5277/7760/971 -f 5214/7697/972 5213/7696/972 5283/7766/972 -f 5289/7772/971 5241/7724/971 5291/7774/971 -f 5300/7783/971 5307/7790/971 5303/7786/971 -f 5298/7781/971 5297/7780/971 5304/7787/971 -f 5307/7790/971 5306/7789/971 5304/7787/971 -f 5289/7772/971 5280/7763/971 5242/7725/971 -s 1 -f 5309/7794/974 5251/7795/975 5281/7796/976 -f 5310/7797/977 5236/7719/978 5311/7798/978 -f 5229/7712/979 5312/7799/980 5227/7710/980 -f 5207/7690/981 5313/7800/982 5205/7688/982 -f 5232/7715/983 5314/7801/979 5229/7712/979 -f 5216/7699/984 5315/7802/981 5207/7690/981 -f 5231/7714/985 5316/7803/983 5232/7715/983 -f 5218/7701/986 5317/7804/984 5216/7699/984 -f 5239/7722/987 5318/7805/985 5231/7714/985 -f 5222/7705/988 5319/7806/986 5218/7701/986 -f 5320/7807/987 5238/7721/977 5310/7808/977 -f 5224/7707/989 5321/7809/988 5222/7705/988 -f 5203/7686/976 5311/7798/978 5236/7719/978 -f 5223/7706/990 5322/7810/989 5224/7707/989 -f 5209/7692/991 5323/7811/976 5203/7686/976 -f 5227/7710/980 5324/7812/990 5223/7706/990 -f 5205/7688/982 5325/7813/991 5209/7692/991 -f 5316/7803/992 5326/7814/993 5314/7801/994 -f 5318/7805/995 5327/7815/996 5316/7803/992 -f 5320/7807/997 5328/7816/998 5318/7805/995 -f 5310/7808/999 5329/7817/1000 5320/7807/997 -f 5311/7798/1001 5330/7818/1002 5310/7797/999 -f 5323/7811/1003 5331/7819/1004 5311/7798/1001 -f 5325/7813/1005 5332/7820/1006 5323/7811/1003 -f 5313/7800/1007 5333/7821/1008 5325/7813/1005 -f 5313/7800/1007 5334/7822/1009 5335/7823/1010 -f 5317/7804/1011 5334/7824/1009 5315/7802/1012 -f 5317/7804/1011 5336/7825/1013 5337/7826/1014 -f 5321/7809/1015 5336/7827/1013 5319/7806/1016 -f 5322/7810/1017 5338/7828/1018 5321/7809/1015 -f 5324/7812/1019 5339/7829/1020 5322/7810/1017 -f 5312/7799/1021 5340/7830/1022 5324/7812/1019 -f 5314/7801/994 5341/7831/1023 5312/7799/1021 -f 5327/7815/996 5328/7832/998 5342/7833/969 -f 5337/7826/1014 5336/7825/1013 5342/7834/969 -f 5328/7816/998 5329/7835/1000 5342/7836/969 -f 5336/7827/1013 5338/7837/1018 5342/7838/969 -f 5330/7818/1002 5331/7839/1004 5342/7840/969 -f 5329/7817/1000 5330/7841/1002 5342/7842/969 -f 5338/7828/1018 5339/7843/1020 5342/7844/969 -f 5331/7819/1004 5332/7845/1006 5342/7846/969 -f 5339/7829/1020 5340/7847/1022 5342/7848/969 -f 5332/7820/1006 5333/7849/1008 5342/7850/969 -f 5340/7830/1022 5341/7851/1023 5342/7852/969 -f 5333/7821/1008 5335/7853/1010 5342/7854/969 -f 5341/7831/1023 5326/7855/993 5342/7856/969 -f 5335/7823/1010 5334/7822/1009 5342/7857/969 -f 5326/7814/993 5327/7858/996 5342/7859/969 -f 5334/7824/1009 5337/7860/1014 5342/7861/969 -f 5248/7862/1024 5343/7863/1025 5344/7864/1026 -f 5247/7865/1027 5345/7866/1028 5343/7867/1025 -f 5249/7868/1029 5346/7869/1030 5345/7870/1028 -f 5246/7871/1031 5347/7872/1032 5346/7873/1030 -f 5309/7874/1033 5250/7875/1034 5251/7876/1035 -f 5245/7877/1036 5344/7878/1026 5348/7879/1037 -f 5243/7880/1038 5348/7881/1037 5349/7882/1039 -f 5350/7883/1040 5243/7880/1038 5349/7884/1039 -f 5350/7883/1040 5351/7885/1041 5352/7886/1042 -f 5348/7881/1037 5351/7887/1041 5349/7882/1039 -f 5344/7878/1026 5353/7888/1043 5348/7879/1037 -f 5345/7866/1028 5215/7889/1044 5343/7867/1025 -f 5215/7890/1044 5344/7864/1026 5343/7863/1025 -f 5346/7869/1030 5213/7891/1045 5345/7870/1028 -f 5347/7872/1032 5354/7892/1046 5346/7873/1030 -f 5355/7893/1047 5309/7874/1033 5356/7894/1048 -f 5357/7895/984 5358/7896/1049 5356/7897/1050 -f 5356/7897/1050 5359/7898/1051 5355/7899/982 -f 5352/7900/1052 5212/7695/990 5360/7901/990 -f 5214/7902/987 5361/7903/1053 5353/7904/1054 -f 5353/7904/1054 5362/7905/1055 5351/7906/979 -f 5351/7906/979 5210/7693/1056 5352/7900/1057 -f 5355/7899/982 5363/7907/1058 5354/7908/1059 -f 5354/7908/1059 5364/7909/1060 5213/7910/978 -f 5210/7693/1056 5362/7905/1055 5211/7911/1061 -f 5362/7905/1055 5361/7903/1053 5211/7912/1061 -f 5361/7903/1053 5365/7913/1062 5211/7914/1061 -f 5364/7909/1060 5363/7907/1058 5211/7915/1061 -f 5363/7907/1058 5359/7898/1051 5211/7916/1061 -f 5359/7898/1051 5358/7896/1049 5211/7917/1061 -f 5358/7896/1049 5366/7918/1063 5211/7919/1061 -f 5350/7920/1064 5282/7921/985 5244/7922/1065 -f 5234/7923/985 5350/7920/1064 5233/7924/987 -f 5233/7924/987 5350/7920/1064 5237/7925/1066 -f 5237/7720/1067 5309/7794/974 5235/7926/978 -f 5204/7927/976 5309/7794/974 5281/7796/976 -f 5279/7928/991 5204/7927/976 5281/7796/976 -f 5278/7929/982 5202/7930/991 5279/7928/991 -f 5280/7931/981 5208/7932/982 5278/7929/982 -f 5308/7933/984 5206/7934/981 5280/7931/981 -f 5221/7935/989 5219/7936/1068 5367/7937/1069 -f 5367/7937/1069 5226/7938/990 5221/7935/989 -f 5367/7937/1069 5241/7939/1070 5240/7940/990 -f 5242/7941/980 5226/7938/990 5240/7940/990 -f 5276/7942/979 5225/7943/980 5242/7941/980 -f 5277/7944/983 5228/7945/979 5276/7942/979 -f 5282/7921/985 5230/7946/983 5277/7944/983 -f 5368/7947/1071 5253/7948/1072 5369/7949/1072 -f 5259/7950/1073 5370/7951/1074 5371/7952/1073 -f 5255/7953/1075 5372/7954/1076 5373/7955/1075 -f 5257/7956/1076 5371/7952/1073 5372/7954/1076 -f 5258/7957/1074 5368/7947/1071 5370/7951/1074 -f 5374/7958/979 5272/7959/1054 5375/7960/1054 -f 5376/7961/988 5269/7962/1077 5377/7963/1077 -f 5378/7964/982 5275/7965/1050 5379/7966/1050 -f 5375/7960/1054 5265/7967/1078 5380/7968/1078 -f 5381/7969/977 5266/7970/1079 5382/7971/1079 -f 5377/7963/1077 5271/7972/1052 5383/7973/1052 -f 5379/7966/1050 5268/7974/1080 5384/7975/1080 -f 5380/7968/1078 5264/7976/977 5381/7977/977 -f 5382/7971/1079 5274/7978/1059 5385/7979/1059 -f 5383/7973/1052 5270/7980/979 5374/7958/979 -f 5384/7975/1080 5267/7981/988 5376/7961/988 -f 5385/7979/1059 5273/7982/982 5378/7964/982 -f 5374/7958/1081 5386/7983/1082 5387/7984/1081 -f 5375/7960/1082 5388/7985/1083 5386/7983/1082 -f 5380/7968/1083 5389/7986/1084 5388/7985/1083 -f 5381/7969/1084 5390/7987/1085 5389/7988/1084 -f 5382/7971/1085 5391/7989/1086 5390/7987/1085 -f 5385/7979/1086 5392/7990/1087 5391/7989/1086 -f 5378/7964/1087 5393/7991/1088 5392/7990/1087 -f 5379/7966/1088 5394/7992/1089 5393/7991/1088 -f 5384/7975/1089 5395/7993/1090 5394/7992/1089 -f 5395/7993/1090 5377/7963/1091 5396/7994/1091 -f 5377/7963/1091 5397/7995/1092 5396/7994/1091 -f 5383/7973/1092 5387/7984/1081 5397/7995/1092 -f 5253/7948/1072 5398/7996/1093 5369/7949/1072 -f 5252/7997/1093 5399/7998/1094 5398/7999/1093 -f 5254/8000/1094 5400/8001/1095 5399/7998/1094 -f 5262/8002/1095 5401/8003/1096 5400/8001/1095 -f 5261/8004/1096 5402/8005/1097 5401/8003/1096 -f 5263/8006/1097 5403/8007/1098 5402/8005/1097 -f 5256/8008/1098 5373/7955/1075 5403/8007/1098 -f 5284/7767/1099 5404/8009/1100 5214/8010/1101 -f 5283/7766/1102 5213/8011/1103 5405/8012/1104 -f 5404/8013/1100 5283/7766/1102 5405/8014/1104 -f 5211/8015/1061 5365/7913/1062 5364/7909/1060 -f 5365/7913/1062 5213/7910/978 5364/7909/1060 -f 5293/8016/1105 5406/8017/1106 5407/8018/1107 -f 5292/8019/1108 5408/8020/1109 5406/8021/1106 -f 5294/8022/1110 5409/8023/1111 5408/8024/1109 -f 5291/8025/1112 5410/8026/1113 5409/8027/1111 -f 5367/8028/1114 5295/8029/1115 5241/8030/1116 -f 5290/8031/1117 5407/8032/1107 5411/8033/1118 -f 5288/8034/1119 5411/8035/1118 5412/8036/1120 -f 5413/8037/1121 5288/8034/1119 5412/8038/1120 -f 5413/8037/1121 5414/8039/1122 5415/8040/1123 -f 5411/8035/1118 5414/8041/1122 5412/8036/1120 -f 5407/8032/1107 5416/8042/1124 5411/8033/1118 -f 5408/8020/1109 5417/8043/1125 5406/8021/1106 -f 5417/8044/1125 5407/8018/1107 5406/8017/1106 -f 5409/8023/1111 5418/8045/1126 5408/8024/1109 -f 5410/8026/1113 5419/8046/1127 5409/8027/1111 -f 5420/8047/1128 5367/8028/1114 5421/8048/1129 -f 5422/8049/1130 5423/8050/1131 5424/8051/1132 -f 5423/8050/1131 5425/8052/1133 5426/8053/1134 -f 5427/8054/1135 5428/8055/1136 5429/8056/1137 -f 5430/8057/1138 5422/8058/1139 5424/8059/1139 -f 5427/8054/1135 5431/8060/1140 5432/8061/1141 -f 5433/8062/1142 5432/8061/1141 5431/8060/1140 -f 5429/8056/1137 5425/8063/1133 5434/8064/1143 -f 5431/8060/1140 5427/8054/1135 5429/8056/1137 -f 5285/7768/1144 5435/8065/1145 5286/8066/1146 -f 5435/8065/1145 5436/8067/1147 5286/8068/1146 -f 5436/8067/1147 5437/8069/1148 5286/8070/1146 -f 5438/8071/1149 5439/8072/1150 5286/8073/1146 -f 5439/8072/1150 5440/8074/1151 5286/8075/1146 -f 5440/8074/1151 5441/8076/1152 5286/8077/1146 -f 5441/8076/1152 5442/8078/1153 5286/8079/1146 -f 5443/8080/1097 5297/8081/1098 5444/8082/1098 -f 5445/8083/1095 5302/8084/1096 5446/8085/1096 -f 5299/8086/1093 5447/8087/1094 5448/8088/1093 -f 5301/8089/1094 5445/8083/1095 5447/8087/1094 -f 5302/8084/1096 5443/8080/1097 5446/8085/1096 -f 5297/8081/1098 5449/8090/1075 5444/8082/1098 -f 5296/8091/1075 5450/8092/1076 5449/8090/1075 -f 5298/8093/1076 5451/8094/1073 5450/8092/1076 -f 5451/8094/1073 5305/8095/1074 5452/8096/1074 -f 5305/8095/1074 5453/8097/1071 5452/8096/1074 -f 5307/8098/1071 5454/8099/1072 5453/8097/1071 -f 5300/8100/1072 5448/8101/1093 5454/8099/1072 -f 5286/8102/1146 5437/8069/1148 5438/8071/1149 -f 5455/8103/1154 5426/8104/1134 5456/8105/1155 -f 5413/8106/1156 5219/7936/1157 5220/8107/986 -f 5217/8108/984 5413/8106/1156 5220/8107/986 -f 5413/8106/1156 5308/7933/984 5289/8109/1158 -f 5455/8103/1154 5457/8110/982 5430/8111/1159 -f 5424/8051/1132 5455/8103/1154 5430/8111/1159 -f 5458/8112/979 5429/8056/1137 5459/8113/1160 -f 5429/8056/1137 5422/8049/1130 5459/8113/1160 -f 5460/8114/1161 5455/8103/1154 5456/8115/1155 -f 5460/8114/1161 5461/8116/1162 5455/8103/1154 -f 5460/8114/1161 5462/8117/1163 5461/8116/1162 -f 5463/8118/1164 5461/8116/1162 5462/8117/1163 -f 5432/8119/1054 5442/8078/1153 5441/8076/1152 -f 5427/8120/979 5441/8076/1152 5440/8074/1151 -f 5428/8121/1052 5440/8074/1151 5439/8072/1150 -f 5437/8069/1148 5425/8122/989 5438/8071/1149 -f 5460/8123/982 5436/8067/1147 5435/8065/1145 -f 5462/8124/1059 5435/8065/1145 5285/7768/1144 -f 5463/8125/976 5285/7768/1144 5287/7770/976 -f 5458/8126/971 5430/8057/1138 5457/8127/971 -f 5425/8122/989 5439/8072/1150 5438/8071/1149 -f 5456/8128/1050 5437/8069/1148 5436/8067/1147 -f 5464/8129/979 5465/8130/983 5466/8131/983 -f 5467/8132/1165 5468/8133/980 5469/8134/980 -f 5470/8135/982 5471/8136/981 5472/8137/981 -f 5473/8138/1166 5474/8139/991 5475/8140/991 -f 5466/8131/983 5476/8141/1167 5477/8142/1167 -f 5469/8134/980 5478/8143/979 5464/8129/979 -f 5472/8137/981 5479/8144/1168 5480/8145/1168 -f 5475/8140/991 5481/8146/982 5470/8135/982 -f 5482/8147/1169 5483/8148/1170 5484/8149/1170 -f 5485/8150/1171 5482/8147/1169 5486/8151/1171 -f 5487/8152/1172 5485/8150/1171 5486/8151/1171 -f 5488/8153/1173 5489/8154/1174 5490/8155/1174 -f 5491/8156/1175 5488/8153/1173 5492/8157/1175 -f 5493/8158/1176 5491/8156/1175 5492/8157/1175 -f 5310/7797/977 5238/7792/977 5236/7719/978 -f 5229/7712/979 5314/7801/979 5312/7799/980 -f 5207/7690/981 5315/7802/981 5313/7800/982 -f 5232/7715/983 5316/7803/983 5314/7801/979 -f 5216/7699/984 5317/7804/984 5315/7802/981 -f 5231/7714/985 5318/7805/985 5316/7803/983 -f 5218/7701/986 5319/7806/986 5317/7804/984 -f 5239/7722/987 5320/7807/987 5318/7805/985 -f 5222/7705/988 5321/7809/988 5319/7806/986 -f 5320/7807/987 5239/7722/987 5238/7721/977 -f 5224/7707/989 5322/7810/989 5321/7809/988 -f 5203/7686/976 5323/7811/976 5311/7798/978 -f 5223/7706/990 5324/7812/990 5322/7810/989 -f 5209/7692/991 5325/7813/991 5323/7811/976 -f 5227/7710/980 5312/7799/980 5324/7812/990 -f 5205/7688/982 5313/7800/982 5325/7813/991 -f 5316/7803/992 5327/7858/996 5326/7814/993 -f 5318/7805/995 5328/7832/998 5327/7815/996 -f 5320/7807/997 5329/7835/1000 5328/7816/998 -f 5310/7808/999 5330/7841/1002 5329/7817/1000 -f 5311/7798/1001 5331/7839/1004 5330/7818/1002 -f 5323/7811/1003 5332/7845/1006 5331/7819/1004 -f 5325/7813/1005 5333/7849/1008 5332/7820/1006 -f 5313/7800/1007 5335/7853/1010 5333/7821/1008 -f 5313/7800/1007 5315/7802/1012 5334/7822/1009 -f 5317/7804/1011 5337/7860/1014 5334/7824/1009 -f 5317/7804/1011 5319/7806/1016 5336/7825/1013 -f 5321/7809/1015 5338/7837/1018 5336/7827/1013 -f 5322/7810/1017 5339/7843/1020 5338/7828/1018 -f 5324/7812/1019 5340/7847/1022 5339/7829/1020 -f 5312/7799/1021 5341/7851/1023 5340/7830/1022 -f 5314/7801/994 5326/7855/993 5341/7831/1023 -f 5248/7862/1024 5247/7865/1027 5343/7863/1025 -f 5247/7865/1027 5249/7868/1029 5345/7866/1028 -f 5249/7868/1029 5246/7871/1031 5346/7869/1030 -f 5246/7871/1031 5250/7875/1034 5347/7872/1032 -f 5309/7874/1033 5347/8159/1032 5250/7875/1034 -f 5245/7877/1036 5248/7862/1024 5344/7878/1026 -f 5243/7880/1038 5245/7877/1036 5348/7881/1037 -f 5350/7883/1040 5244/8160/1177 5243/7880/1038 -f 5350/7883/1040 5349/7884/1039 5351/7885/1041 -f 5348/7881/1037 5353/8161/1043 5351/7887/1041 -f 5344/7878/1026 5214/8162/1178 5353/7888/1043 -f 5345/7866/1028 5213/8163/1045 5215/7889/1044 -f 5215/7890/1044 5214/8164/1178 5344/7864/1026 -f 5346/7869/1030 5354/8165/1046 5213/7891/1045 -f 5347/7872/1032 5355/8166/1047 5354/7892/1046 -f 5355/7893/1047 5347/8159/1032 5309/7874/1033 -f 5357/7895/984 5366/7918/1063 5358/7896/1049 -f 5356/7897/1050 5358/7896/1049 5359/7898/1051 -f 5352/7900/1057 5210/7693/1056 5212/7695/990 -f 5214/7902/987 5365/7913/1062 5361/7903/1053 -f 5353/7904/1054 5361/7903/1053 5362/7905/1055 -f 5351/7906/979 5362/7905/1055 5210/7693/1056 -f 5355/7899/982 5359/7898/1051 5363/7907/1058 -f 5354/7908/1059 5363/7907/1058 5364/7909/1060 -f 5234/7923/985 5282/7921/985 5350/7920/1064 -f 5204/7927/976 5235/7926/978 5309/7794/974 -f 5279/7928/991 5202/7930/991 5204/7927/976 -f 5278/7929/982 5208/7932/982 5202/7930/991 -f 5280/7931/981 5206/7934/981 5208/7932/982 -f 5308/7933/984 5217/8108/984 5206/7934/981 -f 5367/7937/1069 5240/7940/990 5226/7938/990 -f 5242/7941/980 5225/7943/980 5226/7938/990 -f 5276/7942/979 5228/7945/979 5225/7943/980 -f 5277/7944/983 5230/7946/983 5228/7945/979 -f 5282/7921/985 5234/7923/985 5230/7946/983 -f 5368/7947/1071 5260/8167/1071 5253/7948/1072 -f 5259/7950/1073 5258/7957/1074 5370/7951/1074 -f 5255/7953/1075 5257/7956/1076 5372/7954/1076 -f 5257/7956/1076 5259/7950/1073 5371/7952/1073 -f 5258/7957/1074 5260/8167/1071 5368/7947/1071 -f 5374/7958/979 5270/7980/979 5272/7959/1054 -f 5376/7961/988 5267/7981/988 5269/7962/1077 -f 5378/7964/982 5273/7982/982 5275/7965/1050 -f 5375/7960/1054 5272/7959/1054 5265/7967/1078 -f 5381/7969/977 5264/8168/977 5266/7970/1079 -f 5377/7963/1077 5269/7962/1077 5271/7972/1052 -f 5379/7966/1050 5275/7965/1050 5268/7974/1080 -f 5380/7968/1078 5265/7967/1078 5264/7976/977 -f 5382/7971/1079 5266/7970/1079 5274/7978/1059 -f 5383/7973/1052 5271/7972/1052 5270/7980/979 -f 5384/7975/1080 5268/7974/1080 5267/7981/988 -f 5385/7979/1059 5274/7978/1059 5273/7982/982 -f 5374/7958/1081 5375/7960/1082 5386/7983/1082 -f 5375/7960/1082 5380/7968/1083 5388/7985/1083 -f 5380/7968/1083 5381/7977/1084 5389/7986/1084 -f 5381/7969/1084 5382/7971/1085 5390/7987/1085 -f 5382/7971/1085 5385/7979/1086 5391/7989/1086 -f 5385/7979/1086 5378/7964/1087 5392/7990/1087 -f 5378/7964/1087 5379/7966/1088 5393/7991/1088 -f 5379/7966/1088 5384/7975/1089 5394/7992/1089 -f 5384/7975/1089 5376/7961/1090 5395/7993/1090 -f 5395/7993/1090 5376/7961/1090 5377/7963/1091 -f 5377/7963/1091 5383/7973/1092 5397/7995/1092 -f 5383/7973/1092 5374/7958/1081 5387/7984/1081 -f 5253/7948/1072 5252/8169/1093 5398/7996/1093 -f 5252/7997/1093 5254/8000/1094 5399/7998/1094 -f 5254/8000/1094 5262/8002/1095 5400/8001/1095 -f 5262/8002/1095 5261/8004/1096 5401/8003/1096 -f 5261/8004/1096 5263/8006/1097 5402/8005/1097 -f 5263/8006/1097 5256/8008/1098 5403/8007/1098 -f 5256/8008/1098 5255/7953/1075 5373/7955/1075 -f 5404/8013/1100 5284/7767/1099 5283/7766/1102 -f 5365/7913/1062 5214/7902/987 5213/7910/978 -f 5293/8016/1105 5292/8019/1108 5406/8017/1106 -f 5292/8019/1108 5294/8022/1110 5408/8020/1109 -f 5294/8022/1110 5291/8025/1112 5409/8023/1111 -f 5291/8025/1112 5295/8029/1115 5410/8026/1113 -f 5367/8028/1114 5410/8170/1113 5295/8029/1115 -f 5290/8031/1117 5293/8016/1105 5407/8032/1107 -f 5288/8034/1119 5290/8031/1117 5411/8035/1118 -f 5413/8037/1121 5289/8171/1179 5288/8034/1119 -f 5413/8037/1121 5412/8038/1120 5414/8039/1122 -f 5411/8035/1118 5416/8172/1124 5414/8041/1122 -f 5407/8032/1107 5494/8173/1180 5416/8042/1124 -f 5408/8020/1109 5418/8174/1126 5417/8043/1125 -f 5417/8044/1125 5494/8175/1180 5407/8018/1107 -f 5409/8023/1111 5419/8176/1127 5418/8045/1126 -f 5410/8026/1113 5420/8177/1128 5419/8046/1127 -f 5420/8047/1128 5410/8170/1113 5367/8028/1114 -f 5422/8049/1130 5434/8064/1143 5423/8050/1131 -f 5423/8050/1131 5434/8064/1143 5425/8052/1133 -f 5430/8057/1138 5459/8178/1138 5422/8058/1139 -f 5429/8056/1137 5428/8179/1136 5425/8063/1133 -f 5443/8080/1097 5304/8180/1097 5297/8081/1098 -f 5445/8083/1095 5303/8181/1095 5302/8084/1096 -f 5299/8086/1093 5301/8089/1094 5447/8087/1094 -f 5301/8089/1094 5303/8181/1095 5445/8083/1095 -f 5302/8084/1096 5304/8180/1097 5443/8080/1097 -f 5297/8081/1098 5296/8091/1075 5449/8090/1075 -f 5296/8091/1075 5298/8093/1076 5450/8092/1076 -f 5298/8093/1076 5306/8182/1073 5451/8094/1073 -f 5451/8094/1073 5306/8182/1073 5305/8095/1074 -f 5305/8095/1074 5307/8098/1071 5453/8097/1071 -f 5307/8098/1071 5300/8100/1072 5454/8099/1072 -f 5300/8100/1072 5299/8183/1093 5448/8101/1093 -f 5455/8103/1154 5423/8050/1131 5426/8104/1134 -f 5217/8108/984 5308/7933/984 5413/8106/1156 -f 5455/8103/1154 5461/8116/1162 5457/8110/982 -f 5424/8051/1132 5423/8050/1131 5455/8103/1154 -f 5458/8112/979 5431/8060/1140 5429/8056/1137 -f 5429/8056/1137 5434/8064/1143 5422/8049/1130 -f 5432/8119/1054 5433/8184/985 5442/8078/1153 -f 5427/8120/979 5432/8119/1054 5441/8076/1152 -f 5428/8121/1052 5427/8120/979 5440/8074/1151 -f 5437/8069/1148 5426/8185/986 5425/8122/989 -f 5460/8123/982 5456/8128/1050 5436/8067/1147 -f 5462/8124/1059 5460/8123/982 5435/8065/1145 -f 5463/8125/976 5462/8124/1059 5285/7768/1144 -f 5458/8126/971 5459/8178/1138 5430/8057/1138 -f 5425/8122/989 5428/8121/1052 5439/8072/1150 -f 5456/8128/1050 5426/8185/986 5437/8069/1148 -f 5464/8129/979 5478/8143/979 5465/8130/983 -f 5467/8132/1165 5495/8186/1165 5468/8133/980 -f 5470/8135/982 5481/8146/982 5471/8136/981 -f 5473/8138/1166 5496/8187/1166 5474/8139/991 -f 5466/8131/983 5465/8130/983 5476/8141/1167 -f 5469/8134/980 5468/8133/980 5478/8143/979 -f 5472/8137/981 5471/8136/981 5479/8144/1168 -f 5475/8140/991 5474/8139/991 5481/8146/982 -f 5482/8147/1169 5497/8188/1169 5483/8148/1170 -f 5485/8150/1171 5497/8188/1169 5482/8147/1169 -f 5487/8152/1172 5498/8189/1172 5485/8150/1171 -f 5488/8153/1173 5499/8190/1173 5489/8154/1174 -f 5491/8156/1175 5499/8190/1173 5488/8153/1173 -f 5493/8158/1176 5500/8191/1176 5491/8156/1175 -l 5502 5421 -l 5415 5501 +f 3348/4888/427 3349/4889/427 3350/4890/427 +f 3351/4891/428 3352/4892/428 3353/4893/428 +f 3354/4894/427 3355/4895/427 3349/4889/427 +f 3356/4896/427 3357/4897/427 3355/4895/427 +f 3358/4898/427 3350/4890/427 3357/4897/427 +f 3359/4899/428 3360/4900/428 3351/4891/428 +f 3361/4901/428 3362/4902/428 3359/4899/428 +f 3353/4893/428 3363/4903/428 3361/4901/428 +f 3356/4904/429 3363/4905/429 3358/4906/429 +f 3348/4907/430 3360/4908/430 3354/4909/430 +f 3357/4910/430 3359/4911/430 3355/4912/430 +f 3349/4913/429 3353/4914/429 3350/4915/429 +f 3358/4916/431 3352/4917/431 3348/4918/431 +f 3354/4919/432 3362/4920/432 3356/4921/432 +f 3350/4890/432 3361/4901/432 3357/4897/432 +f 3355/4922/431 3351/4923/431 3349/4924/431 +f 3364/4925/427 3365/4926/427 3366/4927/427 +f 3367/4928/432 3368/4929/432 3369/4930/432 +f 3370/4931/431 3371/4932/431 3372/4933/431 +f 3369/4930/430 3373/4934/430 3370/4935/430 +f 3372/4933/429 3374/4936/429 3367/4928/429 +f 3375/4937/430 3376/4938/430 3377/4939/430 +f 3378/4940/427 3379/4941/427 3380/4942/427 +f 3381/4943/429 3382/4944/429 3383/4945/429 +f 3384/4946/432 3378/4940/432 3385/4947/432 +f 3385/4948/433 3380/4942/433 3382/4944/433 +f 3386/4949/434 3384/4946/434 3376/4938/434 +f 3380/4942/431 3379/4941/431 3386/4950/431 +f 3387/4951/432 3388/4952/432 3389/4953/432 +f 3390/4954/427 3391/4955/427 3392/4956/427 +f 3393/4957/427 3394/4958/427 3395/4959/427 +f 3396/4960/429 3392/4961/429 3397/4962/429 +f 3398/4963/432 3393/4957/432 3399/4964/432 +f 3400/4965/431 3394/4966/431 3401/4967/431 +f 3402/4968/432 3390/4954/432 3396/4969/432 +f 3397/4962/431 3391/4970/431 3403/4971/431 +f 3401/4967/430 3404/4972/430 3398/4963/430 +f 3399/4973/429 3395/4974/429 3400/4965/429 +f 3403/4971/430 3405/4975/430 3402/4968/430 +f 3406/4976/430 3407/4977/430 3408/4978/430 +f 3409/4979/430 3410/4980/430 3411/4981/430 +f 3412/4982/430 3413/4983/430 3414/4984/430 +f 3415/4985/430 3416/4986/430 3417/4987/430 +f 3418/4988/430 3419/4989/430 3420/4990/430 +f 3421/4991/430 3422/4992/430 3423/4993/430 +f 3424/4994/430 3425/4995/430 3426/4996/430 +f 3427/4997/430 3428/4998/430 3429/4999/430 +f 3430/5000/430 3431/5001/430 3432/5002/430 +f 3433/5003/430 3434/5004/430 3435/5005/430 +f 3436/5006/430 3437/5007/430 3438/5008/430 +f 3439/5009/430 3440/5010/430 3441/5011/430 +f 3442/5012/430 3443/5013/430 3444/5014/430 +f 3445/5015/430 3446/5016/430 3447/5017/430 +f 3448/5018/430 3449/5019/430 3450/5020/430 +f 3451/5021/430 3452/5022/430 3453/5023/430 +f 3454/5024/430 3455/5025/430 3456/5026/430 +f 3457/5027/430 3458/5028/430 3459/5029/430 +f 3460/5030/430 3461/5031/430 3462/5032/430 +f 3463/5033/430 3464/5034/430 3465/5035/430 +f 3466/5036/430 3467/5037/430 3468/5038/430 +f 3469/5039/430 3470/5040/430 3471/5041/430 +f 3472/5042/430 3473/5043/430 3474/5044/430 +f 3475/5045/430 3476/5046/430 3477/5047/430 +f 3478/5048/430 3479/5049/430 3480/5050/430 +f 3481/5051/430 3482/5052/430 3483/5053/430 +f 3484/5054/431 3485/5055/431 3486/5056/431 +f 3487/5057/433 3488/5058/433 3484/5054/433 +f 3486/5059/435 3489/5060/435 3490/5061/435 +f 3490/5061/432 3491/5062/432 3487/5057/432 +f 3492/5063/431 3493/5064/431 3494/5065/431 +f 3495/5066/433 3496/5067/433 3492/5063/433 +f 3494/5068/435 3497/5069/435 3498/5070/435 +f 3498/5070/432 3499/5071/432 3495/5066/432 +f 3500/5072/429 3501/5073/429 3502/5074/429 +f 3503/5075/429 3504/5076/429 3505/5077/429 +f 3506/5078/429 3507/5079/429 3508/5080/429 +f 3509/5081/429 3510/5082/429 3511/5083/429 +f 3512/5084/429 3513/5085/429 3514/5086/429 +f 3515/5087/429 3516/5088/429 3517/5089/429 +f 3518/5090/429 3519/5091/429 3520/5092/429 +f 3521/5093/429 3522/5094/429 3523/5095/429 +f 3524/5096/429 3525/5097/429 3526/5098/429 +f 3527/5099/429 3528/5100/429 3529/5101/429 +f 3530/5102/429 3531/5103/429 3532/5104/429 +f 3533/5105/429 3534/5106/429 3535/5107/429 +f 3536/5108/429 3537/5109/429 3538/5110/429 +f 3539/5111/429 3540/5112/429 3541/5113/429 +f 3542/5114/429 3543/5115/429 3544/5116/429 +f 3545/5117/429 3546/5118/429 3547/5119/429 +f 3548/5120/429 3549/5121/429 3550/5122/429 +f 3551/5123/429 3552/5124/429 3553/5125/429 +f 3554/5126/429 3555/5127/429 3556/5128/429 +f 3557/5129/429 3558/5130/429 3559/5131/429 +f 3560/5132/429 3561/5133/429 3562/5134/429 +f 3563/5135/429 3564/5136/429 3565/5137/429 +f 3566/5138/429 3567/5139/429 3568/5140/429 +f 3569/5141/429 3570/5142/429 3571/5143/429 +f 3572/5144/429 3573/5145/429 3574/5146/429 +f 3575/5147/429 3576/5148/429 3577/5149/429 +f 3578/5150/432 3579/5151/432 3580/5152/432 +f 3581/5153/431 3582/5154/431 3583/5155/431 +f 3580/5152/430 3584/5156/430 3581/5157/430 +f 3583/5155/429 3585/5158/429 3578/5150/429 +f 3586/5159/432 3587/5160/432 3588/5161/432 +f 3589/5162/431 3590/5163/431 3591/5164/431 +f 3588/5161/430 3592/5165/430 3589/5166/430 +f 3591/5164/429 3593/5167/429 3586/5159/429 +f 3594/5168/432 3595/5169/432 3596/5170/432 +f 3597/5171/431 3598/5172/431 3599/5173/431 +f 3596/5170/430 3600/5174/430 3597/5175/430 +f 3599/5173/429 3601/5176/429 3594/5168/429 +f 3602/5177/431 3603/5178/431 3604/5179/431 +f 3605/5180/430 3606/5181/430 3607/5182/430 +f 3608/5183/429 3609/5184/429 3610/5185/429 +f 3348/4888/427 3354/4894/427 3349/4889/427 +f 3351/4891/428 3360/4900/428 3352/4892/428 +f 3354/4894/427 3356/4896/427 3355/4895/427 +f 3356/4896/427 3358/4898/427 3357/4897/427 +f 3358/4898/427 3348/4888/427 3350/4890/427 +f 3359/4899/428 3362/4902/428 3360/4900/428 +f 3361/4901/428 3363/4903/428 3362/4902/428 +f 3353/4893/428 3352/4892/428 3363/4903/428 +f 3356/4904/429 3362/5186/429 3363/4905/429 +f 3348/4907/430 3352/5187/430 3360/4908/430 +f 3357/4910/430 3361/5188/430 3359/4911/430 +f 3349/4913/429 3351/5189/429 3353/4914/429 +f 3358/4916/431 3363/5190/431 3352/4917/431 +f 3354/4919/432 3360/5191/432 3362/4920/432 +f 3350/4890/432 3353/4893/432 3361/4901/432 +f 3355/4922/431 3359/5192/431 3351/4923/431 +f 3364/4925/427 3611/5193/427 3365/4926/427 +f 3367/4928/432 3374/4936/432 3368/4929/432 +f 3370/4931/431 3373/5194/431 3371/4932/431 +f 3369/4930/430 3368/4929/430 3373/4934/430 +f 3372/4933/429 3371/4932/429 3374/4936/429 +f 3375/4937/430 3386/4949/430 3376/4938/430 +f 3378/4940/427 3384/4946/427 3379/4941/427 +f 3381/4943/429 3385/4948/429 3382/4944/429 +f 3385/4947/432 3381/5195/432 3377/5196/432 +f 3377/5196/432 3376/5197/432 3385/4947/432 +f 3376/5197/432 3384/4946/432 3385/4947/432 +f 3385/4948/433 3378/4940/433 3380/4942/433 +f 3386/4949/434 3379/4941/434 3384/4946/434 +f 3386/4950/431 3375/5198/431 3383/5199/431 +f 3383/5199/431 3382/5200/431 3386/4950/431 +f 3382/5200/431 3380/4942/431 3386/4950/431 +f 3387/4951/432 3612/5201/432 3388/4952/432 +f 3390/4954/427 3405/4975/427 3391/4955/427 +f 3393/4957/427 3404/4972/427 3394/4958/427 +f 3396/4960/429 3390/5202/429 3392/4961/429 +f 3398/4963/432 3404/4972/432 3393/4957/432 +f 3400/4965/431 3395/4974/431 3394/4966/431 +f 3402/4968/432 3405/4975/432 3390/4954/432 +f 3397/4962/431 3392/4961/431 3391/4970/431 +f 3401/4967/430 3394/4966/430 3404/4972/430 +f 3399/4973/429 3393/5203/429 3395/4974/429 +f 3403/4971/430 3391/4970/430 3405/4975/430 +f 3406/4976/430 3613/5204/430 3407/4977/430 +f 3409/4979/430 3614/5205/430 3410/4980/430 +f 3412/4982/430 3615/5206/430 3413/4983/430 +f 3415/4985/430 3616/5207/430 3416/4986/430 +f 3418/4988/430 3617/5208/430 3419/4989/430 +f 3421/4991/430 3618/5209/430 3422/4992/430 +f 3424/4994/430 3619/5210/430 3425/4995/430 +f 3427/4997/430 3620/5211/430 3428/4998/430 +f 3430/5000/430 3621/5212/430 3431/5001/430 +f 3433/5003/430 3622/5213/430 3434/5004/430 +f 3436/5006/430 3623/5214/430 3437/5007/430 +f 3439/5009/430 3624/5215/430 3440/5010/430 +f 3442/5012/430 3625/5216/430 3443/5013/430 +f 3445/5015/430 3626/5217/430 3446/5016/430 +f 3448/5018/430 3627/5218/430 3449/5019/430 +f 3451/5021/430 3628/5219/430 3452/5022/430 +f 3454/5024/430 3629/5220/430 3455/5025/430 +f 3457/5027/430 3630/5221/430 3458/5028/430 +f 3460/5030/430 3631/5222/430 3461/5031/430 +f 3463/5033/430 3632/5223/430 3464/5034/430 +f 3466/5036/430 3633/5224/430 3467/5037/430 +f 3469/5039/430 3634/5225/430 3470/5040/430 +f 3472/5042/430 3635/5226/430 3473/5043/430 +f 3475/5045/430 3636/5227/430 3476/5046/430 +f 3478/5048/430 3637/5228/430 3479/5049/430 +f 3481/5051/430 3638/5229/430 3482/5052/430 +f 3484/5054/431 3488/5058/431 3485/5055/431 +f 3487/5057/433 3491/5062/433 3488/5058/433 +f 3486/5059/435 3485/5230/435 3489/5060/435 +f 3490/5061/432 3489/5060/432 3491/5062/432 +f 3492/5063/431 3496/5067/431 3493/5064/431 +f 3495/5066/433 3499/5071/433 3496/5067/433 +f 3494/5068/435 3493/5231/435 3497/5069/435 +f 3498/5070/432 3497/5069/432 3499/5071/432 +f 3500/5072/429 3639/5232/429 3501/5073/429 +f 3503/5075/429 3640/5233/429 3504/5076/429 +f 3506/5078/429 3641/5234/429 3507/5079/429 +f 3509/5081/429 3642/5235/429 3510/5082/429 +f 3512/5084/429 3643/5236/429 3513/5085/429 +f 3515/5087/429 3644/5237/429 3516/5088/429 +f 3518/5090/429 3645/5238/429 3519/5091/429 +f 3521/5093/429 3646/5239/429 3522/5094/429 +f 3524/5096/429 3647/5240/429 3525/5097/429 +f 3527/5099/429 3648/5241/429 3528/5100/429 +f 3530/5102/429 3649/5242/429 3531/5103/429 +f 3533/5105/429 3650/5243/429 3534/5106/429 +f 3536/5108/429 3651/5244/429 3537/5109/429 +f 3539/5111/429 3652/5245/429 3540/5112/429 +f 3542/5114/429 3653/5246/429 3543/5115/429 +f 3545/5117/429 3654/5247/429 3546/5118/429 +f 3548/5120/429 3655/5248/429 3549/5121/429 +f 3551/5123/429 3656/5249/429 3552/5124/429 +f 3554/5126/429 3657/5250/429 3555/5127/429 +f 3557/5129/429 3658/5251/429 3558/5130/429 +f 3560/5132/429 3659/5252/429 3561/5133/429 +f 3563/5135/429 3660/5253/429 3564/5136/429 +f 3566/5138/429 3661/5254/429 3567/5139/429 +f 3569/5141/429 3662/5255/429 3570/5142/429 +f 3572/5144/429 3663/5256/429 3573/5145/429 +f 3575/5147/429 3664/5257/429 3576/5148/429 +f 3578/5150/432 3585/5158/432 3579/5151/432 +f 3581/5153/431 3584/5258/431 3582/5154/431 +f 3580/5152/430 3579/5151/430 3584/5156/430 +f 3583/5155/429 3582/5154/429 3585/5158/429 +f 3586/5159/432 3593/5167/432 3587/5160/432 +f 3589/5162/431 3592/5259/431 3590/5163/431 +f 3588/5161/430 3587/5160/430 3592/5165/430 +f 3591/5164/429 3590/5163/429 3593/5167/429 +f 3594/5168/432 3601/5176/432 3595/5169/432 +f 3597/5171/431 3600/5260/431 3598/5172/431 +f 3596/5170/430 3595/5169/430 3600/5174/430 +f 3599/5173/429 3598/5172/429 3601/5176/429 +f 3602/5177/431 3665/5261/431 3603/5178/431 +f 3605/5180/430 3666/5262/430 3606/5181/430 +f 3608/5183/429 3667/5263/429 3609/5184/429 +o ABM_Erector +v 0.125000 2.750000 -1.625000 +v 0.375000 2.750000 -1.375000 +v 0.125000 2.750000 -1.375000 +v -0.375000 2.750000 -1.625000 +v -0.125000 2.750000 -1.375000 +v -0.375000 2.750000 -1.375000 +v 0.375000 9.750000 -1.375000 +v 0.125000 9.750000 -1.625000 +v 0.125000 9.750000 -1.375000 +v -0.125000 9.750000 -1.375000 +v -0.375000 9.750000 -1.625000 +v -0.375000 9.750000 -1.375000 +v 0.375000 2.750000 -1.625000 +v -0.125000 9.750000 -1.625000 +v -0.125000 2.750000 -1.625000 +v 0.375000 9.750000 -1.625000 +v 0.250000 4.875000 -1.500000 +v 0.500000 4.625000 -1.500000 +v 0.250000 4.625000 -1.500000 +v 0.500000 4.625000 0.250000 +v 0.250000 4.875000 0.250000 +v 0.250000 4.625000 0.250000 +v 0.500000 4.875000 0.250000 +v 0.500000 4.875000 -1.500000 +v -0.500000 4.875000 -1.500000 +v -0.250000 4.625000 -1.500000 +v -0.500000 4.625000 -1.500000 +v -0.250000 4.625000 0.250000 +v -0.500000 4.875000 0.250000 +v -0.500000 4.625000 0.250000 +v -0.250000 4.875000 0.250000 +v -0.250000 4.875000 -1.500000 +v 0.250000 4.875000 -0.250000 +v -0.250000 4.625000 -0.250000 +v 0.250000 4.625000 -0.250000 +v -0.250000 4.625000 -0.500000 +v 0.250000 4.875000 -0.500000 +v 0.250000 4.625000 -0.500000 +v 0.500000 9.125000 0.250000 +v 0.250000 9.375000 0.250000 +v 0.250000 9.125000 0.250000 +v -0.250000 4.875000 -0.500000 +v -0.250000 4.875000 -0.250000 +v 0.250000 9.375000 -1.500000 +v 0.500000 9.125000 -1.500000 +v 0.250000 9.125000 -1.500000 +v 0.500000 9.375000 0.250000 +v 0.500000 9.375000 -1.500000 +v -0.500000 9.375000 -1.500000 +v -0.250000 9.125000 -1.500000 +v -0.500000 9.125000 -1.500000 +v -0.250000 9.125000 0.250000 +v -0.500000 9.375000 0.250000 +v -0.500000 9.125000 0.250000 +v -0.250000 9.375000 0.250000 +v -0.250000 9.375000 -1.500000 +v 0.250000 9.375000 -0.250000 +v -0.250000 9.125000 -0.250000 +v 0.250000 9.125000 -0.250000 +v -0.250000 9.125000 -0.500000 +v 0.250000 9.375000 -0.500000 +v 0.250000 9.125000 -0.500000 +v -0.250000 9.375000 -0.500000 +v -0.250000 9.375000 -0.250000 +v -0.125000 9.187500 -1.437500 +v 0.125000 9.187500 -1.562500 +v 0.125000 9.187500 -1.437500 +v -0.125000 9.312500 -1.562500 +v 0.125000 9.312500 -1.437500 +v 0.125000 9.312500 -1.562500 +v -0.125000 9.187500 -1.562500 +v -0.125000 9.312500 -1.437500 +v -0.125000 8.312500 -1.437500 +v 0.125000 8.187500 -1.437500 +v 0.125000 8.312500 -1.437500 +v -0.125000 8.187500 -1.562500 +v 0.125000 8.312500 -1.562500 +v 0.125000 8.187500 -1.562500 +v -0.125000 8.312500 -1.562500 +v -0.125000 8.187500 -1.437500 +v -0.125000 7.187500 -1.437500 +v 0.125000 7.187500 -1.562500 +v 0.125000 7.187500 -1.437500 +v -0.125000 7.312500 -1.562500 +v 0.125000 7.312500 -1.437500 +v 0.125000 7.312500 -1.562500 +v -0.125000 4.312500 -1.437500 +v 0.125000 4.187500 -1.437500 +v 0.125000 4.312500 -1.437500 +v -0.125000 4.187500 -1.562500 +v 0.125000 4.312500 -1.562500 +v 0.125000 4.187500 -1.562500 +v -0.125000 3.187500 -1.562500 +v 0.125000 3.312500 -1.562500 +v 0.125000 3.187500 -1.562500 +v -0.125000 3.312500 -1.437500 +v 0.125000 3.187500 -1.437500 +v 0.125000 3.312500 -1.437500 +v -0.125000 3.187500 -1.437500 +v -0.125000 3.312500 -1.562500 +v -0.125000 7.187500 -1.562500 +v -0.125000 7.312500 -1.437500 +v -0.125000 6.312500 -1.437500 +v 0.125000 6.187500 -1.437500 +v 0.125000 6.312500 -1.437500 +v -0.125000 6.187500 -1.562500 +v 0.125000 6.312500 -1.562500 +v 0.125000 6.187500 -1.562500 +v -0.125000 6.312500 -1.562500 +v -0.125000 6.187500 -1.437500 +v -0.125000 5.187500 -1.437500 +v 0.125000 5.187500 -1.562500 +v 0.125000 5.187500 -1.437500 +v -0.125000 5.312500 -1.562500 +v 0.125000 5.312500 -1.437500 +v 0.125000 5.312500 -1.562500 +v -0.125000 5.187500 -1.562500 +v -0.125000 5.312500 -1.437500 +v -0.125000 4.312500 -1.562500 +v -0.125000 4.187500 -1.437500 +v 0.250000 4.875000 -0.875000 +v 0.250000 5.625000 -1.375000 +v 0.250000 4.875000 -0.625000 +v -0.250000 5.625000 -1.375000 +v -0.250000 4.875000 -0.875000 +v -0.250000 4.875000 -0.625000 +v -0.250000 8.625000 -1.375000 +v -0.250000 9.125000 -0.625000 +v -0.250000 9.125000 -0.875000 +v 0.250000 9.125000 -0.625000 +v 0.250000 8.625000 -1.375000 +v 0.250000 9.125000 -0.875000 +v -0.250000 4.125000 -1.375000 +v -0.250000 4.625000 -0.625000 +v -0.250000 4.625000 -0.875000 +v 0.250000 4.625000 -0.625000 +v 0.250000 4.125000 -1.375000 +v 0.250000 4.625000 -0.875000 +v 0.250000 5.625000 -1.375000 +v 0.250000 4.875000 -0.875000 +v 0.250000 4.875000 -0.625000 +v -0.250000 4.875000 -0.875000 +v -0.250000 5.625000 -1.375000 +v -0.250000 4.875000 -0.625000 +v -0.250000 9.125000 -0.625000 +v -0.250000 8.625000 -1.375000 +v -0.250000 9.125000 -0.875000 +v 0.250000 8.625000 -1.375000 +v 0.250000 9.125000 -0.625000 +v 0.250000 9.125000 -0.875000 +v -0.250000 4.625000 -0.625000 +v -0.250000 4.125000 -1.375000 +v -0.250000 4.625000 -0.875000 +v 0.250000 4.125000 -1.375000 +v 0.250000 4.625000 -0.625000 +v 0.250000 4.625000 -0.875000 +v 0.250000 5.375000 -1.375000 +v -0.250000 5.375000 -1.375000 +v -0.250000 8.375000 -1.375000 +v 0.250000 8.375000 -1.375000 +v -0.250000 3.875000 -1.375000 +v 0.250000 3.875000 -1.375000 +v 0.250000 5.375000 -1.375000 +v -0.250000 5.375000 -1.375000 +v -0.250000 8.375000 -1.375000 +v 0.250000 8.375000 -1.375000 +v -0.250000 3.875000 -1.375000 +v 0.250000 3.875000 -1.375000 +vt 0.708333 0.227273 +vt 0.666667 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.227273 +vt 0.666667 0.204545 +vt 0.708333 0.204545 +vt 0.666667 0.886364 +vt 0.708333 0.863636 +vt 0.708333 0.886364 +vt 0.666667 0.886364 +vt 0.708333 0.863636 +vt 0.708333 0.886364 +vt 0.833333 0.227273 +vt 0.791667 0.863636 +vt 0.791667 0.227273 +vt 0.750000 0.227273 +vt 0.666667 0.863636 +vt 0.666667 0.227273 +vt 0.791667 0.227273 +vt 0.750000 0.863636 +vt 0.750000 0.227273 +vt 0.666667 0.863636 +vt 0.666667 0.227273 +vt 0.750000 0.863636 +vt 0.833333 0.227273 +vt 0.791667 0.863636 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.250000 +vt 0.958333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.204545 +vt 0.875000 0.227273 +vt 0.875000 0.204545 +vt 0.958333 0.181818 +vt 0.875000 0.181818 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.958333 0.227273 +vt 0.958333 0.250000 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.022727 +vt 0.833333 -0.000000 +vt 0.875000 -0.000000 +vt 0.833333 0.204545 +vt 0.875000 0.181818 +vt 0.875000 0.204545 +vt 0.916667 0.022727 +vt 0.833333 0.181818 +vt 0.833333 0.022727 +vt 0.958333 0.022727 +vt 0.916667 0.181818 +vt 1.000000 0.022727 +vt 0.958333 0.181818 +vt 0.875000 0.250000 +vt 0.958333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.204545 +vt 0.875000 0.227273 +vt 0.875000 0.204545 +vt 0.958333 0.181818 +vt 0.875000 0.181818 +vt 0.958333 0.227273 +vt 0.958333 0.250000 +vt 0.708333 0.159091 +vt 0.666667 0.170455 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.666667 0.193182 +vt 0.666667 0.181818 +vt 0.708333 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.181818 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.159091 +vt 0.666667 0.170455 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.666667 0.193182 +vt 0.666667 0.181818 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.708333 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.181818 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.159091 +vt 0.666667 0.170455 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.666667 0.193182 +vt 0.666667 0.181818 +vt 0.708333 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.708333 0.181818 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.958333 0.340909 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.875000 0.272727 +vt 0.958333 0.318182 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.875000 0.272727 +vt 0.958333 0.318182 +vt 0.958333 0.340909 +vt 0.875000 0.272727 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.958333 0.318182 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.958333 0.318182 +vt 0.833333 0.863636 +vt 0.833333 0.863636 +vt 1.000000 0.181818 +vt 1.000000 0.181818 +vt 1.000000 0.181818 +vt 1.000000 0.181818 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.708333 0.204545 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.318182 +vt 0.875000 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +vt 0.958333 0.340909 +vt 0.833333 0.272727 +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 +s off +f 3668/5264/436 3669/5265/436 3670/5266/436 +f 3671/5267/436 3672/5268/436 3673/5269/436 +f 3674/5270/437 3675/5271/437 3676/5272/437 +f 3677/5273/437 3678/5274/437 3679/5275/437 +f 3680/5276/438 3674/5277/438 3669/5278/438 +f 3670/5279/439 3675/5271/439 3668/5264/439 +f 3671/5267/440 3681/5280/440 3682/5281/440 +f 3672/5282/441 3679/5283/441 3673/5284/441 +f 3668/5264/440 3683/5285/440 3680/5286/440 +f 3669/5278/441 3676/5287/441 3670/5279/441 +f 3682/5288/438 3677/5289/438 3672/5282/438 +f 3673/5284/439 3678/5274/439 3671/5267/439 +f 3684/5290/440 3685/5291/440 3686/5292/440 +f 3687/5293/441 3688/5294/441 3689/5295/441 +f 3686/5296/439 3688/5294/439 3684/5290/439 +f 3684/5290/437 3690/5297/437 3691/5298/437 +f 3685/5299/436 3689/5300/436 3686/5296/436 +f 3691/5301/438 3687/5302/438 3685/5299/438 +f 3692/5303/440 3693/5304/440 3694/5305/440 +f 3695/5306/441 3696/5307/441 3697/5308/441 +f 3694/5309/439 3696/5307/439 3692/5303/439 +f 3692/5303/437 3698/5310/437 3699/5311/437 +f 3693/5312/436 3697/5313/436 3694/5309/436 +f 3699/5314/438 3695/5315/438 3693/5312/438 +f 3700/5316/441 3701/5317/441 3702/5318/441 +f 3703/5319/440 3704/5320/440 3705/5321/440 +f 3701/5322/436 3705/5321/436 3702/5323/436 +f 3706/5324/441 3707/5325/441 3708/5326/441 +f 3700/5316/437 3709/5327/437 3710/5328/437 +f 3711/5329/440 3712/5330/440 3713/5331/440 +f 3713/5332/439 3707/5325/439 3711/5329/439 +f 3711/5329/437 3714/5333/437 3715/5334/437 +f 3712/5335/436 3708/5336/436 3713/5332/436 +f 3715/5337/438 3706/5338/438 3712/5335/438 +f 3716/5339/440 3717/5340/440 3718/5341/440 +f 3719/5342/441 3720/5343/441 3721/5344/441 +f 3718/5345/439 3720/5343/439 3716/5339/439 +f 3716/5339/437 3722/5346/437 3723/5347/437 +f 3717/5348/436 3721/5349/436 3718/5345/436 +f 3723/5350/438 3719/5351/438 3717/5348/438 +f 3724/5352/441 3725/5353/441 3726/5354/441 +f 3727/5355/440 3728/5356/440 3729/5357/440 +f 3725/5358/436 3729/5357/436 3726/5359/436 +f 3724/5352/437 3730/5360/437 3731/5361/437 +f 3732/5362/436 3733/5363/436 3734/5364/436 +f 3735/5365/437 3736/5366/437 3737/5367/437 +f 3738/5368/440 3737/5367/440 3733/5363/440 +f 3739/5369/441 3734/5370/441 3736/5366/441 +f 3740/5371/441 3741/5372/441 3742/5373/441 +f 3743/5374/440 3744/5375/440 3745/5376/440 +f 3746/5377/437 3742/5373/437 3744/5375/437 +f 3747/5378/436 3745/5376/436 3741/5379/436 +f 3748/5380/436 3749/5381/436 3750/5382/436 +f 3751/5383/437 3752/5384/437 3753/5385/437 +f 3754/5386/441 3755/5387/441 3756/5388/441 +f 3757/5389/440 3758/5390/440 3759/5391/440 +f 3760/5392/440 3761/5393/440 3762/5394/440 +f 3763/5395/441 3764/5396/441 3765/5397/441 +f 3766/5398/436 3762/5394/436 3764/5399/436 +f 3767/5400/437 3765/5397/437 3761/5393/437 +f 3768/5401/440 3753/5385/440 3749/5381/440 +f 3769/5402/441 3750/5403/441 3752/5384/441 +f 3770/5404/441 3771/5405/441 3772/5406/441 +f 3773/5407/440 3774/5408/440 3775/5409/440 +f 3776/5410/437 3772/5406/437 3774/5408/437 +f 3777/5411/436 3775/5409/436 3771/5412/436 +f 3778/5413/436 3779/5414/436 3780/5415/436 +f 3781/5416/437 3782/5417/437 3783/5418/437 +f 3784/5419/440 3783/5418/440 3779/5414/440 +f 3785/5420/441 3780/5421/441 3782/5417/441 +f 3786/5422/437 3756/5388/437 3758/5390/437 +f 3787/5423/436 3759/5391/436 3755/5424/436 +f 3788/5425/438 3789/5426/438 3790/5427/438 +f 3791/5428/439 3792/5429/439 3793/5430/439 +f 3794/5431/439 3795/5432/439 3796/5433/439 +f 3797/5434/438 3798/5435/438 3799/5436/438 +f 3800/5437/439 3801/5438/439 3802/5439/439 +f 3803/5440/438 3804/5441/438 3805/5442/438 +f 3806/5443/439 3807/5444/439 3808/5445/439 +f 3809/5446/438 3810/5447/438 3811/5448/438 +f 3812/5449/438 3813/5450/438 3814/5451/438 +f 3815/5452/439 3816/5453/439 3817/5454/439 +f 3818/5455/438 3819/5456/438 3820/5457/438 +f 3821/5458/439 3822/5459/439 3823/5460/439 +f 3668/5264/436 3680/5286/436 3669/5265/436 +f 3671/5267/436 3682/5281/436 3672/5268/436 +f 3674/5270/437 3683/5285/437 3675/5271/437 +f 3677/5273/437 3681/5280/437 3678/5274/437 +f 3680/5276/438 3683/5461/438 3674/5277/438 +f 3670/5279/439 3676/5287/439 3675/5271/439 +f 3671/5267/440 3678/5274/440 3681/5280/440 +f 3672/5282/441 3677/5289/441 3679/5283/441 +f 3668/5264/440 3675/5271/440 3683/5285/440 +f 3669/5278/441 3674/5277/441 3676/5287/441 +f 3682/5288/438 3681/5462/438 3677/5289/438 +f 3673/5284/439 3679/5283/439 3678/5274/439 +f 3684/5290/440 3691/5298/440 3685/5291/440 +f 3687/5293/441 3690/5297/441 3688/5294/441 +f 3686/5296/439 3689/5300/439 3688/5294/439 +f 3684/5290/437 3688/5294/437 3690/5297/437 +f 3685/5299/436 3687/5302/436 3689/5300/436 +f 3691/5301/438 3690/5463/438 3687/5302/438 +f 3692/5303/440 3699/5311/440 3693/5304/440 +f 3695/5306/441 3698/5310/441 3696/5307/441 +f 3694/5309/439 3697/5313/439 3696/5307/439 +f 3692/5303/437 3696/5307/437 3698/5310/437 +f 3693/5312/436 3695/5315/436 3697/5313/436 +f 3699/5314/438 3698/5464/438 3695/5315/438 +f 3700/5316/441 3710/5328/441 3701/5317/441 +f 3703/5319/440 3709/5327/440 3704/5320/440 +f 3701/5322/436 3703/5319/436 3705/5321/436 +f 3706/5324/441 3714/5333/441 3707/5325/441 +f 3700/5316/437 3704/5320/437 3709/5327/437 +f 3711/5329/440 3715/5334/440 3712/5330/440 +f 3713/5332/439 3708/5336/439 3707/5325/439 +f 3711/5329/437 3707/5325/437 3714/5333/437 +f 3712/5335/436 3706/5338/436 3708/5336/436 +f 3715/5337/438 3714/5465/438 3706/5338/438 +f 3716/5339/440 3723/5347/440 3717/5340/440 +f 3719/5342/441 3722/5346/441 3720/5343/441 +f 3718/5345/439 3721/5349/439 3720/5343/439 +f 3716/5339/437 3720/5343/437 3722/5346/437 +f 3717/5348/436 3719/5351/436 3721/5349/436 +f 3723/5350/438 3722/5466/438 3719/5351/438 +f 3724/5352/441 3731/5361/441 3725/5353/441 +f 3727/5355/440 3730/5360/440 3728/5356/440 +f 3725/5358/436 3727/5355/436 3729/5357/436 +f 3724/5352/437 3728/5356/437 3730/5360/437 +f 3732/5362/436 3738/5368/436 3733/5363/436 +f 3735/5365/437 3739/5369/437 3736/5366/437 +f 3738/5368/440 3735/5365/440 3737/5367/440 +f 3739/5369/441 3732/5467/441 3734/5370/441 +f 3740/5371/441 3747/5468/441 3741/5372/441 +f 3743/5374/440 3746/5377/440 3744/5375/440 +f 3746/5377/437 3740/5371/437 3742/5373/437 +f 3747/5378/436 3743/5374/436 3745/5376/436 +f 3748/5380/436 3768/5401/436 3749/5381/436 +f 3751/5383/437 3769/5402/437 3752/5384/437 +f 3754/5386/441 3787/5469/441 3755/5387/441 +f 3757/5389/440 3786/5422/440 3758/5390/440 +f 3760/5392/440 3767/5400/440 3761/5393/440 +f 3763/5395/441 3766/5470/441 3764/5396/441 +f 3766/5398/436 3760/5392/436 3762/5394/436 +f 3767/5400/437 3763/5395/437 3765/5397/437 +f 3768/5401/440 3751/5383/440 3753/5385/440 +f 3769/5402/441 3748/5471/441 3750/5403/441 +f 3770/5404/441 3777/5472/441 3771/5405/441 +f 3773/5407/440 3776/5410/440 3774/5408/440 +f 3776/5410/437 3770/5404/437 3772/5406/437 +f 3777/5411/436 3773/5407/436 3775/5409/436 +f 3778/5413/436 3784/5419/436 3779/5414/436 +f 3781/5416/437 3785/5420/437 3782/5417/437 +f 3784/5419/440 3781/5416/440 3783/5418/440 +f 3785/5420/441 3778/5473/441 3780/5421/441 +f 3786/5422/437 3754/5386/437 3756/5388/437 +f 3787/5423/436 3757/5389/436 3759/5391/436 +f 3788/5425/438 3824/5474/438 3789/5426/438 +f 3791/5428/439 3825/5475/439 3792/5429/439 +f 3794/5431/439 3826/5476/439 3795/5432/439 +f 3797/5434/438 3827/5477/438 3798/5435/438 +f 3800/5437/439 3828/5478/439 3801/5438/439 +f 3803/5440/438 3829/5479/438 3804/5441/438 +f 3806/5443/439 3830/5480/439 3807/5444/439 +f 3809/5446/438 3831/5481/438 3810/5447/438 +f 3812/5449/438 3832/5482/438 3813/5450/438 +f 3815/5452/439 3833/5483/439 3816/5453/439 +f 3818/5455/438 3834/5484/438 3819/5456/438 +f 3821/5458/439 3835/5485/439 3822/5459/439 +o ABM_Rope +v 0.000000 10.375000 0.375000 +v 0.000000 10.375000 0.000000 +v 0.000000 10.500000 0.000000 +v 0.000000 10.250000 0.375000 +v 0.000000 10.375000 1.062500 +v 0.000000 10.250000 1.062500 +v 0.000000 10.375000 1.437500 +v 0.000000 10.500000 1.437500 +v 0.000000 10.375000 0.000000 +v 0.000000 10.375000 0.375000 +v 0.000000 10.500000 0.000000 +v 0.000000 10.375000 1.062500 +v 0.000000 10.250000 0.375000 +v 0.000000 10.250000 1.062500 +v 0.000000 10.375000 1.437500 +v 0.000000 10.500000 1.437500 +vt 0.593750 0.920455 +vt 0.656250 0.909091 +vt 0.656250 0.920455 +vt 0.593750 0.909091 +vt 0.479167 0.920455 +vt 0.479167 0.909091 +vt 0.416667 0.909091 +vt 0.416667 0.920455 +vt 0.656250 0.909091 +vt 0.593750 0.920455 +vt 0.656250 0.920455 +vt 0.479167 0.920455 +vt 0.593750 0.909091 +vt 0.479167 0.909091 +vt 0.416667 0.909091 +vt 0.416667 0.920455 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 3836/5486/442 3837/5487/442 3838/5488/442 +f 3839/5489/442 3840/5490/442 3841/5491/442 +f 3842/5492/442 3840/5490/442 3843/5493/442 +f 3844/5494/443 3845/5495/443 3846/5496/443 +f 3847/5497/443 3848/5498/443 3849/5499/443 +f 3850/5500/443 3847/5497/443 3849/5499/443 +f 3836/5486/442 3839/5489/442 3837/5487/442 +f 3839/5489/442 3836/5486/442 3840/5490/442 +f 3842/5492/442 3841/5491/442 3840/5490/442 +f 3844/5494/443 3848/5498/443 3845/5495/443 +f 3847/5497/443 3845/5495/443 3848/5498/443 +f 3850/5500/443 3851/5501/443 3847/5497/443 +o ABM_Pivot +v 0.187500 3.750000 -1.437500 +v 0.187500 2.750000 -1.562500 +v 0.187500 2.750000 -1.437500 +v 0.312500 3.750000 -1.562500 +v 0.312500 2.750000 -1.437500 +v 0.312500 2.750000 -1.562500 +v 0.375000 2.750000 -1.375000 +v 0.125000 2.750000 -1.625000 +v 0.125000 2.750000 -1.375000 +v -0.125000 2.750000 -1.375000 +v -0.375000 2.750000 -1.625000 +v -0.375000 2.750000 -1.375000 +v -0.125000 1.250000 -1.625000 +v -0.125000 1.250000 -1.375000 +v -0.375000 1.250000 -1.375000 +v -0.375000 1.250000 -1.625000 +v 0.375000 1.250000 -1.625000 +v 0.375000 1.250000 -1.375000 +v 0.125000 1.250000 -1.375000 +v 0.125000 1.250000 -1.625000 +v -0.125000 2.750000 -1.625000 +v 0.375000 2.750000 -1.625000 +v 0.187500 3.750000 -1.562500 +v 0.312500 3.750000 -1.437500 +v -0.312500 3.750000 -1.437500 +v -0.312500 2.750000 -1.562500 +v -0.312500 2.750000 -1.437500 +v -0.187500 3.750000 -1.562500 +v -0.187500 2.750000 -1.437500 +v -0.187500 2.750000 -1.562500 +v -0.312500 3.750000 -1.562500 +v -0.187500 3.750000 -1.437500 +v -0.125000 2.187500 -1.562500 +v 0.125000 2.312500 -1.562500 +v 0.125000 2.187500 -1.562500 +v -0.125000 2.312500 -1.437500 +v 0.125000 2.187500 -1.437500 +v 0.125000 2.312500 -1.437500 +v -0.125000 2.187500 -1.437500 +v -0.125000 2.312500 -1.562500 +vt 0.750000 0.227273 +vt 0.729167 0.136364 +vt 0.750000 0.136364 +vt 0.791667 0.227273 +vt 0.770833 0.136364 +vt 0.791667 0.136364 +vt 0.666667 0.159091 +vt 0.708333 0.136364 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.136364 +vt 0.708333 0.159091 +vt 0.833333 -0.000000 +vt 0.791667 0.136364 +vt 0.791667 -0.000000 +vt 0.750000 -0.000000 +vt 0.708333 -0.000000 +vt 0.833333 -0.000000 +vt 0.791667 0.136364 +vt 0.791667 -0.000000 +vt 0.750000 -0.000000 +vt 0.708333 -0.000000 +vt 0.666667 0.136364 +vt 0.666667 -0.000000 +vt 0.750000 0.136364 +vt 0.666667 0.136364 +vt 0.666667 -0.000000 +vt 0.750000 0.136364 +vt 0.729167 0.227273 +vt 0.708333 0.136364 +vt 0.770833 0.227273 +vt 0.750000 0.227273 +vt 0.729167 0.136364 +vt 0.750000 0.136364 +vt 0.791667 0.227273 +vt 0.770833 0.136364 +vt 0.791667 0.136364 +vt 0.729167 0.227273 +vt 0.708333 0.136364 +vt 0.770833 0.227273 +vt 0.708333 0.170455 +vt 0.666667 0.181818 +vt 0.666667 0.170455 +vt 0.708333 0.193182 +vt 0.666667 0.204545 +vt 0.666667 0.193182 +vt 0.708333 0.159091 +vt 0.666667 0.159091 +vt 0.708333 0.181818 +vt 0.833333 0.136364 +vt 0.833333 0.136364 +vt 0.708333 0.227273 +vt 0.708333 0.227273 +vt 0.708333 0.204545 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 3852/5502/444 3853/5503/444 3854/5504/444 +f 3855/5505/445 3856/5506/445 3857/5507/445 +f 3858/5508/446 3859/5509/446 3860/5510/446 +f 3861/5511/446 3862/5512/446 3863/5513/446 +f 3864/5514/445 3861/5515/445 3865/5516/445 +f 3866/5517/444 3862/5512/444 3867/5518/444 +f 3868/5519/445 3858/5520/445 3869/5521/445 +f 3870/5522/444 3859/5509/444 3871/5523/444 +f 3867/5518/447 3872/5524/447 3864/5525/447 +f 3865/5516/448 3863/5526/448 3866/5517/448 +f 3871/5523/447 3873/5527/447 3868/5528/447 +f 3869/5521/448 3860/5529/448 3870/5522/448 +f 3874/5530/447 3857/5531/447 3853/5503/447 +f 3875/5532/448 3854/5504/448 3856/5506/448 +f 3876/5533/444 3877/5534/444 3878/5535/444 +f 3879/5536/445 3880/5537/445 3881/5538/445 +f 3882/5539/447 3881/5540/447 3877/5534/447 +f 3883/5541/448 3878/5535/448 3880/5537/448 +f 3884/5542/447 3885/5543/447 3886/5544/447 +f 3887/5545/448 3888/5546/448 3889/5547/448 +f 3890/5548/449 3886/5544/449 3888/5549/449 +f 3891/5550/446 3889/5547/446 3885/5543/446 +f 3852/5502/444 3874/5530/444 3853/5503/444 +f 3855/5505/445 3875/5532/445 3856/5506/445 +f 3858/5508/446 3873/5527/446 3859/5509/446 +f 3861/5511/446 3872/5524/446 3862/5512/446 +f 3864/5514/445 3872/5551/445 3861/5515/445 +f 3866/5517/444 3863/5526/444 3862/5512/444 +f 3868/5519/445 3873/5552/445 3858/5520/445 +f 3870/5522/444 3860/5529/444 3859/5509/444 +f 3867/5518/447 3862/5512/447 3872/5524/447 +f 3865/5516/448 3861/5515/448 3863/5526/448 +f 3871/5523/447 3859/5509/447 3873/5527/447 +f 3869/5521/448 3858/5520/448 3860/5529/448 +f 3874/5530/447 3855/5553/447 3857/5531/447 +f 3875/5532/448 3852/5502/448 3854/5504/448 +f 3876/5533/444 3882/5539/444 3877/5534/444 +f 3879/5536/445 3883/5541/445 3880/5537/445 +f 3882/5539/447 3879/5554/447 3881/5540/447 +f 3883/5541/448 3876/5533/448 3878/5535/448 +f 3884/5542/447 3891/5550/447 3885/5543/447 +f 3887/5545/448 3890/5555/448 3888/5546/448 +f 3890/5548/449 3884/5542/449 3886/5544/449 +f 3891/5550/446 3887/5545/446 3889/5547/446 diff --git a/src/main/resources/assets/hbm/textures/blocks/armor_table_bottom.png b/src/main/resources/assets/hbm/textures/blocks/armor_table_bottom.png index 37f7edf5696c325184743ca12c1e76e14d010586..a80d403a4fa7c4701bc53eb550382c980c865b7c 100644 GIT binary patch delta 194 zcmV;z06qV+0`38jG=HT@L_t(Ijh&Ox4Fn+wMCZ(YYYS6@6;QgRP=SdyaQCqxSyppd zmM=vf!X)z%kuP2bNgM#6s>`G0NN!;fL2K=7U wPA`ZERMi=%_rBbBagao7%_Z;d+_}}_2f6sH1Lg6@JOBUy07*qoM6N<$g7KeL-~a#s delta 264 zcmV+j0r&py0kZ;-G=J(zL_t(Ijh#|Ku7w~BoPt{=u+THO^ZrLN5e#ul`&JM{-uLG% zCWDdAbXsU#S5ZpgR}A&XvMeAXD5d`77$daSPXQu=_a0hn5K+10oI{KeN-0=t%m0)T zXxlcK=lRt&bB2f@gaDP@z4!kXInNW!3}${tsLyRN05CIBN`HliHt#oA5h-Bi!nY3I zigV#KO(lYA1zPl6kK^b^Xs4ZBT7epm4(c`aieG1tCtY8xokgU-1#4}$xW~@9`#ZR< z3nGGX91%hQGs75DhE>Bkhkf7g0(Fb^ii|Pc0p&$J8ZQ_oh<$wJlB2QJ#Cblx$vFsi~ z=uNx}ET Q00000NkvXXt^-0~f=twRD*ylh delta 292 zcmV+<0o(qx0?q=EGk*aENkl4LFgXA?AyegUkW{1mr~qrmAs`+28@7M0#YIS#++o4im}NLczZ8 qL-Nx!q1KA?JRMO=iGP3qp8Eo3F@@M8Tf%Z@t z#RN4~|ApXy{rH%Ns=n~2m>Ew1sI^{xdW@N;n^hHN_DSFY*Kr(J*A*!x5D@@i-}mtC z1)ey`%tF=H+J(f&X#yu9qF#}i!#wAVZQJ_#<%|s=ES`-nCx2N+!@g}MB8Ui5N>>68 z-Vu~if(MINCL+{YZwb!F4Fs+`0ui}-0DSKD7Y|A)a}ONv7Xn`k41K`N$T|19h;-8& zeN<22ckE4)Qi7Rv!^|wSa!8=6sI`WE7~8nDHYZ@_{svs*>zut-*Bgvz#pq}gvAO^N O002ovPDHLkU;%=U1$smP delta 281 zcmV+!0p|X*0>lE4G=KX^L_t(Ijh&J^j)gD`MUO3300h=R!7|u?L;Y%qVGHpTqaZ#( zdNajUA}ja!#)(YR*Gy?>aZ?|YVIc~5YM^?i?s zU}gZMln!HFwFJm!GsDd2y6$3r1(cree7FQCUO`ofF&>@Qbv;aX*kgzy0)V?e2KH5g z7$YHshbg6mnUxb{nHg={9-Yt1hHcv}^-BVGC&u_Nmvl+s?hM25I;eXsrF4AhN<^6F f`KzvX0sH`|P7-VPxxyCT00000NkvXXu0mjf!r6y^ diff --git a/src/main/resources/assets/hbm/textures/blocks/gun_table_bottom.png b/src/main/resources/assets/hbm/textures/blocks/gun_table_bottom.png index 3e72319ac76e434936584116ac60e1639b9ec892..9aac6ef8e18590892fbffc238cbd2ad90cb75f6a 100644 GIT binary patch delta 220 zcmV<203-j)0f+*SG=INIL_t(Ijh&Ip3WG2ZMUNpV1#P5I=*Dd~{S9}1bN{BhB1mEj zqNR3GVtpaTS!I}eE;Bblnk6k8ODcf`C`~;XzMc&LVWei^<7rQkS3d)Q>m}=k)>=4& z)|xnu0Wii4-uK5105Nv9)&k3Le`~P?cDjLqFMNo1e*+iTT2)wUJ>9?;9%K+k$_t*& zz!x55;0w=Y-~&7D>bgrhjfjdG)B6gROCB_*j=)CNR7`SNp^ zNH#eP08&ImYOUR)X#j>WNm121fe9W4@GP&{*$U)Y)MQkmwSSDj4V#*LEVP)LSf{{r_iw|7=&Rul%DjfZoodgVXT>z~j@yeFK2k zm%=x@u7hV-tyaD#A^?~fBErY#8@-*Gr;c6M0k_3rMFxKrn}3-nX z43kwARYgQRc{5|X-J+_rZ5s`khho4_2*ty?*=(Y_kwN&!DRIhYNGnUlWm%%CIOoXo z998v`)4Sf_bTGX5sGM``_j^yfZCmQP9woDsMI7T)RQF;9_yKr(v^=aEq@(}<002ov JPDHLkV1gL@nd$%l delta 218 zcmV<0044w70)+yQGk*ZQNklF>At56oo%SQVQA^0tFX`w{)pfhwcHlIP@>% zFS>Mc@D~IW?9%0d6p9GpB?=Nt?GST~Q48%^Uf#X$o_p@eZ4IK{o`1si99)3h7H7%L zdIvze<6SHc?r%v~+mZm_@gb6AmSxZdr4+vJ17NK^`Ccr?rGJV#t1(8-IF3ov6oAoa z1c26>FbuKQifX4Rt$H*Z4y7AF7=~!A(OQ=Z4-kSZ%S1tiO19QoV*P#}fII)@IKpPV zgD%8zES=}`xy)R3uZopY*lkJJ8brPQ=f{TUre6)k zQoN4VAnNUNTgWP3GpxDRi{+Ty7A1k}IehKDWj!l{n)fDhTj08$L%Q0YC4Rft@dNI! Vu&fQ(;nV;C002ovPDHLkV1iz|x0nC` delta 246 zcmV zvg{%R1X(YNFCMIgXV*mgE07*qoM6N<$g2E1TQ2+n{ From b4ae72513b4f6c9a33a86aabe69dae783a311f4e Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 22 May 2025 12:28:40 +1000 Subject: [PATCH 067/181] screwdriver adjustable conveyor splitters --- .../com/hbm/blocks/network/CraneSplitter.java | 71 ++++++++++++---- .../network/TileEntityCraneSplitter.java | 84 +++++++++++++++---- 2 files changed, 125 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/hbm/blocks/network/CraneSplitter.java b/src/main/java/com/hbm/blocks/network/CraneSplitter.java index 562c495a2..9cc13f15c 100644 --- a/src/main/java/com/hbm/blocks/network/CraneSplitter.java +++ b/src/main/java/com/hbm/blocks/network/CraneSplitter.java @@ -1,14 +1,18 @@ package com.hbm.blocks.network; +import api.hbm.block.IToolable; import api.hbm.conveyor.IConveyorBelt; import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IConveyorPackage; import api.hbm.conveyor.IEnterableBlock; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityCraneSplitter; +import com.hbm.util.I18nUtil; + import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -21,11 +25,13 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; import java.util.List; -public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnterableBlock, ITooltipProvider { +public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnterableBlock, ITooltipProvider, IToolable, ILookOverlay { @SideOnly(Side.CLIENT) public IIcon iconTopLeft; @SideOnly(Side.CLIENT) public IIcon iconTopRight; @@ -96,26 +102,16 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt TileEntity tile = world.getTileEntity(x, y, z); if(!(tile instanceof TileEntityCraneSplitter)) return; TileEntityCraneSplitter splitter = (TileEntityCraneSplitter) tile; - boolean pos = splitter.getPosition(); - ItemStack stack = entity.getItemStack(); ForgeDirection rot = ForgeDirection.getOrientation(splitter.getBlockMetadata() - offset).getRotation(ForgeDirection.DOWN); - if(stack.stackSize % 2 == 0) { - stack.stackSize /= 2; - spawnMovingItem(world, x, y, z, stack.copy()); - spawnMovingItem(world, x + rot.offsetX, y, z + rot.offsetZ, stack.copy()); - } else { - int baseSize = stack.stackSize /= 2; - stack.stackSize = baseSize + (pos ? 0 : 1); - spawnMovingItem(world, x, y, z, stack.copy()); - stack.stackSize = baseSize + (pos ? 1 : 0); - spawnMovingItem(world, x + rot.offsetX, y, z + rot.offsetZ, stack.copy()); - splitter.setPosition(!pos); - } + ItemStack[] splits = splitter.splitStack(entity.getItemStack()); + + spawnMovingItem(world, x, y, z, splits[0]); + spawnMovingItem(world, x + rot.offsetX, y, z + rot.offsetZ, splits[1]); } private void spawnMovingItem(World world, int x, int y, int z, ItemStack stack) { - if(stack.stackSize <= 0) return; + if(stack == null || stack.stackSize <= 0) return; EntityMovingItem moving = new EntityMovingItem(world); Vec3 pos = Vec3.createVectorHelper(x + 0.5, y + 0.5, z + 0.5); Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, pos); @@ -158,8 +154,51 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt return ForgeDirection.getOrientation(meta).getRotation(ForgeDirection.UP); } + @SuppressWarnings("rawtypes") @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { this.addStandardInfo(stack, player, list, ext); } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if(world.isRemote) return true; + if(tool != ToolType.SCREWDRIVER) return false; + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(te instanceof TileEntityCraneSplitter)) return false; + + TileEntityCraneSplitter crane = (TileEntityCraneSplitter) te; + + // The core of the dummy is always the left hand block + boolean isLeft = x == pos[0] && y == pos[1] && z == pos[2]; + int adjust = player.isSneaking() ? -1 : 1; + + if(isLeft) { + crane.leftRatio = (byte)MathHelper.clamp_int(crane.leftRatio + adjust, 1, 16); + } else { + crane.rightRatio = (byte)MathHelper.clamp_int(crane.rightRatio + adjust, 1, 16); + } + + return true; + } + + @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 TileEntityCraneSplitter)) return; + + TileEntityCraneSplitter crane = (TileEntityCraneSplitter) te; + + List text = new ArrayList<>(); + text.add("Splitter ratio: " + crane.leftRatio + ":" + crane.rightRatio); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneSplitter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneSplitter.java index 76f110241..a5374eec5 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneSplitter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneSplitter.java @@ -1,31 +1,87 @@ package com.hbm.tileentity.network; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; +import com.hbm.tileentity.TileEntityLoadedBase; -public class TileEntityCraneSplitter extends TileEntity { +import io.netty.buffer.ByteBuf; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class TileEntityCraneSplitter extends TileEntityLoadedBase { /* false: left belt is preferred, true: right belt is preferred */ private boolean position; - - public void setPosition(boolean pos) { - this.position = pos; - this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + private byte remaining; // count until position swaps + + public byte leftRatio = 1; + public byte rightRatio = 1; + + // Splits the input stack into two, based on current ratio and internal state + public ItemStack[] splitStack(ItemStack stack) { + int left = 0; + int right = 0; + int count = stack.stackSize; + + if(remaining <= 0) remaining = position ? rightRatio : leftRatio; + + while(count > 0) { + int toExtract = Math.min(remaining, count); + + remaining -= toExtract; + count -= toExtract; + if(position) right += toExtract; else left += toExtract; + + if(remaining <= 0) { + position = !position; + remaining = position ? rightRatio : leftRatio; + } + } + + ItemStack leftStack = stack.copy(); + ItemStack rightStack = stack.copy(); + leftStack.stackSize = left; + rightStack.stackSize = right; + + worldObj.markTileEntityChunkModified(xCoord, yCoord, zCoord, this); + return new ItemStack[] { leftStack, rightStack }; } - - public boolean getPosition() { - return this.position; + + public void updateEntity() { + if(worldObj.isRemote) return; + networkPackNT(15); } - + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - this.position = nbt.getBoolean("pos"); + + position = nbt.getBoolean("pos"); + remaining = nbt.getByte("count"); + + leftRatio = nbt.getByte("left"); + rightRatio = nbt.getByte("right"); } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setBoolean("pos", this.position); + + nbt.setBoolean("pos", position); + nbt.setByte("count", remaining); + + nbt.setByte("left", leftRatio); + nbt.setByte("right", rightRatio); } + + @Override + public void serialize(ByteBuf buf) { + buf.writeByte(leftRatio); + buf.writeByte(rightRatio); + } + + @Override + public void deserialize(ByteBuf buf) { + leftRatio = buf.readByte(); + rightRatio = buf.readByte(); + } + } From 5459920b9c6ab45c0ed9522e43098f038a5b2a27 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 22 May 2025 12:51:34 +1000 Subject: [PATCH 068/181] ensure pre-existing splitters initialise ratios --- .../com/hbm/tileentity/network/TileEntityCraneSplitter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneSplitter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneSplitter.java index a5374eec5..0a196645b 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneSplitter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneSplitter.java @@ -57,8 +57,9 @@ public class TileEntityCraneSplitter extends TileEntityLoadedBase { position = nbt.getBoolean("pos"); remaining = nbt.getByte("count"); - leftRatio = nbt.getByte("left"); - rightRatio = nbt.getByte("right"); + // Make sure existing conveyors are initialised with ratios + leftRatio = (byte)Math.max(nbt.getByte("left"), 1); + rightRatio = (byte)Math.max(nbt.getByte("right"), 1); } @Override From e5cfc9cf2b24fd83392050ac07f1ab5c555f17c9 Mon Sep 17 00:00:00 2001 From: George Paton Date: Thu, 22 May 2025 12:56:22 +1000 Subject: [PATCH 069/181] add screwdriver info --- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 4d972d4fd..b7cd17203 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5152,7 +5152,7 @@ tile.crane_partitioner.desc=Receives and stores up to nine Ore Acidizer inputs$a tile.crane_router.name=Conveyor Sorter tile.crane_router.desc=Sorts item based on defined criteria$Sides can be defined as blacklist, whitelist or wildcard$Wildcard sides are only chosen if no other filter matches tile.crane_splitter.name=Conveyor Splitter -tile.crane_splitter.desc=Splits items and stacks evenly onto two conveyor belts$Is a conveyor belt itself, so it can directly input into an inserter or sorter +tile.crane_splitter.desc=Splits items and stacks evenly onto two conveyor belts$Is a conveyor belt itself, so it can directly input into an inserter or sorter$Ratio can be configured with a screwdriver tile.crane_unboxer.name=Conveyor Unboxer tile.crane_unboxer.desc=Receives boxes and extracts their contents$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side tile.crashed_bomb.name=Dud From d19894fa3d2bad93779716bf9ad624ec4d0c6187 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 22 May 2025 16:36:17 +0200 Subject: [PATCH 070/181] kasane's titos --- src/main/java/com/hbm/items/ModItems.java | 2 ++ .../com/hbm/items/tool/ItemSwordAbility.java | 1 - .../com/hbm/items/weapon/sedna/GunConfig.java | 4 +++ .../weapon/sedna/factory/GunFactory.java | 6 ++--- .../sedna/factory/GunFactoryClient.java | 2 ++ .../weapon/sedna/factory/LegoClient.java | 12 +++++++++ .../weapon/sedna/factory/XFactory50.java | 23 ++++++++++++------ .../com/hbm/main/ModEventHandlerClient.java | 11 +++++++-- src/main/resources/assets/hbm/lang/de_DE.lang | 2 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ .../items/ammo_secret.bmg50_black.png | Bin 0 -> 325 bytes .../textures/items/ammo_secret.p35_800_bl.png | Bin 0 -> 352 bytes .../textures/items/ammo_standard.bmg50_sm.png | Bin 0 -> 312 bytes 13 files changed, 51 insertions(+), 14 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_secret.bmg50_black.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_secret.p35_800_bl.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.bmg50_sm.png diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 41491660c..ecde954ed 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1469,6 +1469,8 @@ public class ModItems { public static Item gun_stinger; public static Item gun_chemthrower; public static Item gun_amat; + public static Item gun_amat_subtlety; + public static Item gun_amat_penance; public static Item gun_m2; public static Item gun_autoshotgun; public static Item gun_autoshotgun_shredder; diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java index 784a6a764..563a09730 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java @@ -17,7 +17,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; -import net.minecraft.util.EnumChatFormatting; public class ItemSwordAbility extends ItemSword { diff --git a/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java index 56455bbb2..65db47377 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/GunConfig.java @@ -34,6 +34,7 @@ public class GunConfig { public static final String I_INSPECTCANCEL = "I_INSPECTCANCEL"; public static final String O_CROSSHAIR = "O_CROSSHAIR"; public static final String B_HIDECROSSHAIR = "B_HIDECROSSHAIR"; + public static final String B_THERMALSIGHTS = "B_THERMALSIGHTS"; public static final String B_RELOADREQUIRESTYPECHANGE = "B_RELOADREQUIRESTYPECHANGE"; public static final String B_RELOADANIMATIONSEQUENTIAL = "B_RELOADANIMATIONSEQUENTIAL"; public static final String O_SCOPETEXTURE = "O_SCOPETEXTURE"; @@ -62,6 +63,7 @@ public class GunConfig { protected boolean inspectCancel_DNA = true; protected Crosshair crosshair_DNA; protected boolean hideCrosshair_DNA = true; + protected boolean thermalSights_DNA = false; protected boolean reloadRequiresTypeChange_DNA = false; protected boolean reloadAnimationsSequential_DNA; protected ResourceLocation scopeTexture_DNA; @@ -94,6 +96,7 @@ public class GunConfig { public boolean getInspectCancel(ItemStack stack) { return WeaponModManager.eval(inspectCancel_DNA, stack, I_INSPECTCANCEL, this, this.index); } public Crosshair getCrosshair(ItemStack stack) { return WeaponModManager.eval(crosshair_DNA, stack, O_CROSSHAIR, this, this.index); } public boolean getHideCrosshair(ItemStack stack) { return WeaponModManager.eval(hideCrosshair_DNA, stack, B_HIDECROSSHAIR, this, this.index); } + public boolean hasThermalSights(ItemStack stack) { return WeaponModManager.eval(thermalSights_DNA, stack, B_THERMALSIGHTS, this, this.index); } public boolean getReloadChangesType(ItemStack stack) { return WeaponModManager.eval(reloadRequiresTypeChange_DNA, stack, B_RELOADREQUIRESTYPECHANGE, this, this.index); } public boolean getReloadAnimSequential(ItemStack stack) { return WeaponModManager.eval(reloadAnimationsSequential_DNA, stack, B_RELOADANIMATIONSEQUENTIAL, this, this.index); } public ResourceLocation getScopeTexture(ItemStack stack) { return WeaponModManager.eval(scopeTexture_DNA, stack, O_SCOPETEXTURE, this, this.index); } @@ -124,6 +127,7 @@ public class GunConfig { public GunConfig inspectCancel(boolean flag) { this.inspectCancel_DNA = flag; return this; } public GunConfig crosshair(Crosshair crosshair) { this.crosshair_DNA = crosshair; return this; } public GunConfig hideCrosshair(boolean flag) { this.hideCrosshair_DNA = flag; return this; } + public GunConfig thermalSights(boolean flag) { this.thermalSights_DNA = flag; return this; } public GunConfig reloadChangeType(boolean flag) { this.reloadRequiresTypeChange_DNA = flag; return this; } public GunConfig reloadSequential(boolean flag) { this.reloadAnimationsSequential_DNA = flag; return this; } public GunConfig scopeTexture(ResourceLocation tex) { this.scopeTexture_DNA = tex; return this; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java index 98b4f09e8..f389b40a1 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactory.java @@ -101,7 +101,7 @@ public class GunFactory { R762_HE, BMG50_HE, G10_EXPLOSIVE, P45_SP, P45_FMJ, P45_JHP, P45_AP, P45_DU, CT_HOOK, CT_MORTAR, CT_MORTAR_CHARGE, - NUKE_BALEFIRE, + NUKE_BALEFIRE, BMG50_SM, //ONLY ADD NEW ENTRIES AT THE BOTTOM TO AVOID SHIFTING! ; @@ -116,7 +116,7 @@ public class GunFactory { P45_SP, P45_FMJ, P45_JHP, P45_AP, P45_DU, R556_SP, R556_FMJ, R556_JHP, R556_AP, R762_SP, R762_FMJ, R762_JHP, R762_AP, R762_DU, R762_HE, - BMG50_SP, BMG50_FMJ, BMG50_JHP, BMG50_AP, BMG50_DU, BMG50_HE, + BMG50_SP, BMG50_FMJ, BMG50_JHP, BMG50_AP, BMG50_DU, BMG50_SM, BMG50_HE, B75, B75_INC, B75_EXP, G12_BP, G12_BP_MAGNUM, G12_BP_SLUG, G12, G12_SLUG, G12_FLECHETTE, G12_MAGNUM, G12_EXPLOSIVE, G12_PHOSPHORUS, G10, G10_SHRAPNEL, G10_DU, G10_SLUG, G10_EXPLOSIVE, @@ -139,7 +139,7 @@ public class GunFactory { public static enum EnumAmmoSecret { FOLLY_SM, FOLLY_NUKE, M44_EQUESTRIAN, G12_EQUESTRIAN, BMG50_EQUESTRIAN, - P35_800 + P35_800, BMG50_BLACK } public static enum EnumModTest { diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index ceb18f250..0a42eb594 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -159,6 +159,8 @@ public class GunFactoryClient { bmg50_ap.setRenderer(LegoClient.RENDER_AP_BULLET); bmg50_du.setRenderer(LegoClient.RENDER_DU_BULLET); bmg50_he.setRenderer(LegoClient.RENDER_HE_BULLET); + bmg50_sm.setRenderer(LegoClient.RENDER_SM_BULLET); + bmg50_black.setRenderer(LegoClient.RENDER_BLACK_BULLET); b75.setRenderer(LegoClient.RENDER_AP_BULLET); b75_inc.setRenderer(LegoClient.RENDER_AP_BULLET); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index ac476aa60..11d4b4012 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -72,6 +72,18 @@ public class LegoClient { renderBulletStandard(Tessellator.instance, 0xD8CA00, 0xFFF19D, length, true); }; + public static BiConsumer RENDER_SM_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0x42A8DD, 0xFFFFFF, length, true); + }; + + public static BiConsumer RENDER_BLACK_BULLET = (bullet, interp) -> { + double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; + if(length <= 0) return; + renderBulletStandard(Tessellator.instance, 0x000000, 0x7F006E, length, true); + }; + public static BiConsumer RENDER_TRACER_BULLET = (bullet, interp) -> { double length = bullet.prevVelocity + (bullet.velocity - bullet.prevVelocity) * interp; if(length <= 0) return; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java index 075bcf63e..f70d62c0c 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -14,6 +14,7 @@ import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.items.weapon.sedna.mags.MagazineBelt; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; import com.hbm.particle.SpentCasing; @@ -34,6 +35,8 @@ public class XFactory50 { public static BulletConfig bmg50_ap; public static BulletConfig bmg50_du; public static BulletConfig bmg50_he; + public static BulletConfig bmg50_sm; + public static BulletConfig bmg50_black; public static BiConsumer LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; @@ -41,25 +44,29 @@ public class XFactory50 { }; public static void init() { - SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1.5F); + SpentCasing casing50 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS).setScale(1.5F); bmg50_sp = new BulletConfig().setItem(EnumAmmo.BMG50_SP).setCasing(EnumCasingType.LARGE, 12) - .setCasing(casing762.clone().register("bmg50")); + .setCasing(casing50.clone().register("bmg50")); bmg50_fmj = new BulletConfig().setItem(EnumAmmo.BMG50_FMJ).setCasing(EnumCasingType.LARGE, 12).setDamage(0.8F).setThresholdNegation(7F).setArmorPiercing(0.1F) - .setCasing(casing762.clone().register("bmg50fmj")); + .setCasing(casing50.clone().register("bmg50fmj")); bmg50_jhp = new BulletConfig().setItem(EnumAmmo.BMG50_JHP).setCasing(EnumCasingType.LARGE, 12).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) - .setCasing(casing762.clone().register("bmg50jhp")); + .setCasing(casing50.clone().register("bmg50jhp")); bmg50_ap = new BulletConfig().setItem(EnumAmmo.BMG50_AP).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(17.5F).setArmorPiercing(0.15F) - .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50ap")); + .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50ap")); bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.5F).setThresholdNegation(21F).setArmorPiercing(0.25F) - .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50du")); + .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50du")); bmg50_he = new BulletConfig().setItem(EnumAmmo.BMG50_HE).setCasing(EnumCasingType.LARGE_STEEL, 12).setWear(3F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE) - .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50he")); + .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50he")); + bmg50_sm = new BulletConfig().setItem(EnumAmmo.BMG50_SM).setCasing(EnumCasingType.LARGE_STEEL, 12).setWear(10F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(2.5F).setThresholdNegation(30F).setArmorPiercing(0.35F) + .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50sm")); + bmg50_black = new BulletConfig().setItem(EnumAmmoSecret.BMG50_BLACK).setWear(5F).setDoesPenetrate(true).setDamageFalloffByPen(false).setSpectral(true).setDamage(1.5F).setHeadshot(3F).setThresholdNegation(30F).setArmorPiercing(0.35F) + .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("bmg50black")); ModItems.gun_amat = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(350).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(XFactory44.scope_lilmac).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) .dmg(30F).delay(25).dry(25).spreadHipfire(0.05F).reload(51).jam(43).sound("hbm:weapon.fire.amat", 1.0F, 1.0F) - .mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_he)) + .mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he)) .offset(1, -0.0625 * 1.5, -0.25D) .setupStandardFire().recoil(LAMBDA_RECOIL_AMAT)) .setupStandardConfiguration() diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 354043ab4..8b3679187 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1313,14 +1313,21 @@ public class ModEventHandlerClient { if(hudOn) { RenderOverhead.renderMarkers(event.partialTicks); + boolean thermalSights = false; if(ArmorFSB.hasFSBArmor(player)) { ItemStack plate = player.inventory.armorInventory[2]; ArmorFSB chestplate = (ArmorFSB) plate.getItem(); - if(chestplate.thermal) - RenderOverhead.renderThermalSight(event.partialTicks); + if(chestplate.thermal) thermalSights = true; } + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT) { + ItemGunBaseNT gun = (ItemGunBaseNT) player.getHeldItem().getItem(); + for(int i = 0; i < gun.getConfigCount(); i++) if(gun.getConfig(player.getHeldItem(), i).hasThermalSights(player.getHeldItem())) thermalSights = true; + } + + if(thermalSights) RenderOverhead.renderThermalSight(event.partialTicks); } RenderOverhead.renderActionPreview(event.partialTicks); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 013fca1e3..30106dd14 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1053,6 +1053,7 @@ item.ammo_shell_apfsds_t.name=240mm APFSDS-T item.ammo_shell_explosive.name=240mm HE-Geschoss item.ammo_shell_w9.name=240mm W9-Atomgeschoss item.ammo_secret.bmg50_equestrian.name=.50 BMG Zerstörer +item.ammo_secret.bmg50_black.name=.50 BMG Bypass item.ammo_secret.folly_nuke.name=Silberne Kugel, Atomar item.ammo_secret.folly_sm.name=Silberne Kugel item.ammo_secret.g12_equestrian.name=Kaliber 12 Gleisnägel @@ -1066,6 +1067,7 @@ item.ammo_standard.bmg50_du.name=.50 BMG Patrone (Urangeschoss) item.ammo_standard.bmg50_he.name=.50 BMG Patrone (Explosiv) item.ammo_standard.bmg50_fmj.name=.50 BMG Patrone (Vollmantelgeschoss) item.ammo_standard.bmg50_jhp.name=.50 BMG Patrone (Hohlspitz) +item.ammo_standard.bmg50_sm.name=.50 BMG Patrone (Sternenmetall) item.ammo_standard.bmg50_sp.name=.50 BMG Patrone (Teilmantelgeschoss) item.ammo_standard.capacitor.name=Kondensator (Standard) item.ammo_standard.capacitor_ir.name=Capacitor (niedrige Wellenlänge) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b7cd17203..02b6a1201 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1778,6 +1778,7 @@ item.ammo_shell_apfsds_t.name=240mm APFSDS-T item.ammo_shell_explosive.name=240mm HE Shell item.ammo_shell_w9.name=240mm W9 Nuclear Shell item.ammo_secret.bmg50_equestrian.name=.50 BMG Demolisher +item.ammo_secret.bmg50_black.name=.50 BMG Bypass Round item.ammo_secret.folly_nuke.name=Silver Bullet, Nuclear item.ammo_secret.folly_sm.name=Silver Bullet item.ammo_secret.g12_equestrian.name=12 Gauge Railway Spike Shot @@ -1791,6 +1792,7 @@ item.ammo_standard.bmg50_du.name=.50 BMG Round (Depleted Uranium) item.ammo_standard.bmg50_he.name=.50 BMG Round (High-Explosive) item.ammo_standard.bmg50_fmj.name=.50 BMG Round (Full Metal Jacket) item.ammo_standard.bmg50_jhp.name=.50 BMG Round (Jacketed Hollow Point) +item.ammo_standard.bmg50_sm.name=.50 BMG Round (Starmetal) item.ammo_standard.bmg50_sp.name=.50 BMG Round (Soft Point) item.ammo_standard.capacitor.name=Capacitor (Standard) item.ammo_standard.capacitor_ir.name=Capacitor (Low Wavelength) diff --git a/src/main/resources/assets/hbm/textures/items/ammo_secret.bmg50_black.png b/src/main/resources/assets/hbm/textures/items/ammo_secret.bmg50_black.png new file mode 100644 index 0000000000000000000000000000000000000000..f76090251795955cab56080426214a9885eda260 GIT binary patch literal 325 zcmV-L0lNN)P)^{ zCAwttV0Ww^z>7(T6v1uYuS;x%6S+!mkxrmbzd!;J2@wgdEMIGlBuQ{BFHy0RSH3%;`GgQ-p|cfA@ei&QR6`0HCT1 zYns`p_ip@KSJ#3wkXV$e1Zc+=g%?*j)1|18yM3Z<%KCo?oJ z9;xk=Ra7WkeE_4wc^PO2Onpu;w_s5yRV5Yh_WsIq`;^+*K369nj8BhISuG|)41jL+Dt~W zW{#$R1AtX@Vi6-etZ)0u<4~}Fc5#UDdyy9T1EfW|0%?$*KvEb;@5QX92$OoWG+UY2K2&Q-8jxzBfxJBRsR2C8kpm0C# zDTq?J+ZHM~!KA^F1sL1eYIaxq>FsEjEL(b(EuDXk_;NY3UatTgV835Qqm}vm!w-kE z?{+_<(@dJ8u20Nn?<^Ldj6o&P6BuPS9mY7*565lU`5F#`Ci=U=xQ~ERH0l33@k*7eD;?{?kNN0kf zNZ%EDk(WRhVrHl+A%x+tRzy6{a~BaWio!)?{0D3!qYt-{_WT$2$cUXQPX~Jd0000< KMNUMnLSTY7c!q2M literal 0 HcmV?d00001 From dc66e5ac048494fecef1a4d0d309764a42c9af51 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 22 May 2025 18:26:41 +0300 Subject: [PATCH 071/181] Conveyor ejector & splitter compat Previously, an ejector ejecting directly into a splitter bypassed the splitting --- .../hbm/tileentity/network/TileEntityCraneExtractor.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index aab0e354d..f539271cb 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.network; import api.hbm.conveyor.IConveyorBelt; +import api.hbm.conveyor.IEnterableBlock; + import com.hbm.entity.item.EntityMovingItem; import com.hbm.inventory.container.ContainerCraneExtractor; import com.hbm.inventory.gui.GUICraneExtractor; @@ -123,6 +125,11 @@ public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGU moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStack(stack); worldObj.spawnEntityInWorld(moving); + + if (b instanceof IEnterableBlock) { + ((IEnterableBlock)b).onItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide, moving); + } + hasSent = true; break; } From 3a6f890774da08843e912760773a12812d78aac8 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 22 May 2025 18:43:13 +0300 Subject: [PATCH 072/181] Fix dupe --- .../hbm/tileentity/network/TileEntityCraneExtractor.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index f539271cb..2ce576e1f 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -127,7 +127,12 @@ public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGU worldObj.spawnEntityInWorld(moving); if (b instanceof IEnterableBlock) { - ((IEnterableBlock)b).onItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide, moving); + IEnterableBlock enterable = (IEnterableBlock) b; + + if(enterable.canItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide, moving)) { + enterable.onItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide, moving); + moving.setDead(); + } } hasSent = true; From 953d120fc668c3905e2532d554f3e52d4ce61723 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 22 May 2025 19:05:55 +0300 Subject: [PATCH 073/181] Fix direction --- .../com/hbm/tileentity/network/TileEntityCraneExtractor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 2ce576e1f..12d5b8208 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -129,8 +129,8 @@ public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGU if (b instanceof IEnterableBlock) { IEnterableBlock enterable = (IEnterableBlock) b; - if(enterable.canItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide, moving)) { - enterable.onItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide, moving); + if(enterable.canItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide.getOpposite(), moving)) { + enterable.onItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide.getOpposite(), moving); moving.setDead(); } } From f3a88b6afb42a61a47773c1e86898245115c9c95 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Thu, 22 May 2025 19:15:39 +0300 Subject: [PATCH 074/181] Apply fix to buffered items --- .../network/TileEntityCraneExtractor.java | 42 +++++++++---------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 12d5b8208..105ceb3fd 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -119,22 +119,7 @@ public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGU inv.decrStackSize(index, toSend); stack.stackSize = toSend; - EntityMovingItem moving = new EntityMovingItem(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); - moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); - moving.setItemStack(stack); - worldObj.spawnEntityInWorld(moving); - - if (b instanceof IEnterableBlock) { - IEnterableBlock enterable = (IEnterableBlock) b; - - if(enterable.canItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide.getOpposite(), moving)) { - enterable.onItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide.getOpposite(), moving); - moving.setDead(); - } - } - + sendItem(stack, belt, outputSide); hasSent = true; break; } @@ -154,12 +139,7 @@ public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGU decrStackSize(i, toSend); stack.stackSize = toSend; - EntityMovingItem moving = new EntityMovingItem(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); - moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); - moving.setItemStack(stack); - worldObj.spawnEntityInWorld(moving); + sendItem(stack, belt, outputSide); break; } } @@ -171,6 +151,24 @@ public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGU } } + private void sendItem(ItemStack stack, IConveyorBelt belt, ForgeDirection outputSide) { + EntityMovingItem moving = new EntityMovingItem(worldObj); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); + moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); + moving.setItemStack(stack); + worldObj.spawnEntityInWorld(moving); + + if (belt instanceof IEnterableBlock) { + IEnterableBlock enterable = (IEnterableBlock) belt; + + if(enterable.canItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide.getOpposite(), moving)) { + enterable.onItemEnter(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, outputSide.getOpposite(), moving); + moving.setDead(); + } + } + } + @Override public void serialize(ByteBuf buf) { super.serialize(buf); From bf2a4b776fbf0dda1e95a17b0b464bb789761626 Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Fri, 23 May 2025 01:01:34 +0800 Subject: [PATCH 075/181] feat: parallelized explosion calculation and is configurable --- src/main/java/com/hbm/config/BombConfig.java | 6 +- .../entity/logic/EntityNukeExplosionMK5.java | 90 ++-- .../explosion/ExplosionNukeRayBatched.java | 78 ++- .../ExplosionNukeRayParallelized.java | 497 ++++++++++++++++++ .../com/hbm/interfaces/IExplosionRay.java | 9 + 5 files changed, 608 insertions(+), 72 deletions(-) create mode 100644 src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java create mode 100644 src/main/java/com/hbm/interfaces/IExplosionRay.java diff --git a/src/main/java/com/hbm/config/BombConfig.java b/src/main/java/com/hbm/config/BombConfig.java index b49253e35..927ebd3ba 100644 --- a/src/main/java/com/hbm/config/BombConfig.java +++ b/src/main/java/com/hbm/config/BombConfig.java @@ -26,7 +26,8 @@ public class BombConfig { public static int fDelay = 4; public static int limitExplosionLifespan = 0; public static boolean chunkloading = true; - + public static boolean parallelization = true; + public static void loadFromConfig(Configuration config) { final String CATEGORY_NUKES = CommonConfig.CATEGORY_NUKES; @@ -92,7 +93,8 @@ public class BombConfig { Property falloutDelayProp = config.get(CATEGORY_NUKE, "6.04_falloutDelay", 4); falloutDelayProp.comment = "How many ticks to wait for the next fallout chunk computation"; fDelay = falloutDelayProp.getInt(); - + chunkloading = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableChunkLoading", "Allows all types of procedural explosions to keep the central chunk loaded.", true); + parallelization = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableParallelization", "Allows explosions to use multiple threads.", true); } } diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index 3dc6451a8..def573ad7 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -2,6 +2,7 @@ package com.hbm.entity.logic; import java.util.List; +import com.hbm.interfaces.IExplosionRay; import org.apache.logging.log4j.Level; import com.hbm.config.BombConfig; @@ -9,6 +10,7 @@ import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityFalloutRain; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionNukeRayBatched; +import com.hbm.explosion.ExplosionNukeRayParallelized; import com.hbm.main.MainRegistry; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; @@ -22,32 +24,32 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { - + //Strength of the blast public int strength; //How many rays are calculated per tick public int speed; public int length; - + private long explosionStart; public boolean fallout = true; private int falloutAdd = 0; - - ExplosionNukeRayBatched explosion; + + private IExplosionRay explosion; public EntityNukeExplosionMK5(World p_i1582_1_) { super(p_i1582_1_); } - + public EntityNukeExplosionMK5(World world, int strength, int speed, int length) { super(world); this.strength = strength; this.speed = speed; this.length = length; } - + @Override public void onUpdate() { - + if(strength == 0) { this.clearChunkLoader(); this.setDead(); @@ -55,30 +57,34 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { } if(!worldObj.isRemote) loadChunk((int) Math.floor(posX / 16D), (int) Math.floor(posZ / 16D)); - + for(Object player : this.worldObj.playerEntities) { ((EntityPlayer)player).triggerAchievement(MainRegistry.achManhattan); } - + if(!worldObj.isRemote && fallout && explosion != null && this.ticksExisted < 10 && strength >= 75) { radiate(2_500_000F / (this.ticksExisted * 5 + 1), this.length * 2); } - - ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.length * 2); - - if(explosion == null) { - explosion = new ExplosionNukeRayBatched(worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, this.strength, this.speed, this.length); - } - - if(!explosion.isAusf3Complete) { - explosion.collectTip(speed * 10); - } else if(explosion.perChunk.size() > 0) { - long start = System.currentTimeMillis(); - - while(explosion.perChunk.size() > 0 && System.currentTimeMillis() < start + BombConfig.mk5) explosion.processChunk(); - - } else if(fallout) { + ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.length * 2); + + if(explosion == null) { + explosionStart = System.currentTimeMillis(); + if (BombConfig.parallelization) { + explosion = new ExplosionNukeRayParallelized(worldObj, posX, posY, posZ, + strength, speed, length); + } else { + explosion = new ExplosionNukeRayBatched(worldObj, (int) posX, (int) posY, (int) posZ, + strength, speed, length); + } + } + + if(!explosion.isComplete()) { + explosion.cacheChunksTick(BombConfig.mk5); + explosion.destructionTick(BombConfig.mk5); + } else if(fallout) { + if(GeneralConfig.enableExtendedLogging && explosionStart != 0) + MainRegistry.logger.log(Level.INFO, "[NUKE] Explosion complete. Time elapsed: " + (System.currentTimeMillis() - explosionStart) + "ms"); EntityFalloutRain fallout = new EntityFalloutRain(this.worldObj); fallout.posX = this.posX; fallout.posY = this.posY; @@ -94,35 +100,35 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { this.setDead(); } } - + private void radiate(float rads, double range) { - + List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(posX, posY, posZ, posX, posY, posZ).expand(range, range, range)); - + for(EntityLivingBase e : entities) { - + Vec3 vec = Vec3.createVectorHelper(e.posX - posX, (e.posY + e.getEyeHeight()) - posY, e.posZ - posZ); double len = vec.lengthVector(); vec = vec.normalize(); - + float res = 0; - + for(int i = 1; i < len; i++) { int ix = (int)Math.floor(posX + vec.xCoord * i); int iy = (int)Math.floor(posY + vec.yCoord * i); int iz = (int)Math.floor(posZ + vec.zCoord * i); - + res += worldObj.getBlock(ix, iy, iz).getExplosionResistance(null); } - + if(res < 1) res = 1; - + float eRads = rads; eRads /= (float)res; eRads /= (float)(len * len); - + ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.RAD_BYPASS, eRads); } } @@ -136,17 +142,17 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { protected void writeEntityToNBT(NBTTagCompound nbt) { nbt.setInteger("ticksExisted", this.ticksExisted); } - + public static EntityNukeExplosionMK5 statFac(World world, int r, double x, double y, double z) { - + if(GeneralConfig.enableExtendedLogging && !world.isRemote) MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized explosion at " + x + " / " + y + " / " + z + " with strength " + r + "!"); - + if(r == 0) r = 25; - + r *= 2; - + EntityNukeExplosionMK5 mk5 = new EntityNukeExplosionMK5(world); mk5.strength = (int)(r); mk5.speed = (int)Math.ceil(100000 / mk5.strength); @@ -154,14 +160,14 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { mk5.length = mk5.strength / 2; return mk5; } - + public static EntityNukeExplosionMK5 statFacNoRad(World world, int r, double x, double y, double z) { - + EntityNukeExplosionMK5 mk5 = statFac(world, r, x, y ,z); mk5.fallout = false; return mk5; } - + public EntityNukeExplosionMK5 moreFallout(int fallout) { falloutAdd = fallout; return this; diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index de45a8741..6f7af5e35 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; +import com.hbm.interfaces.IExplosionRay; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.Block; @@ -14,7 +15,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; -public class ExplosionNukeRayBatched { +public class ExplosionNukeRayBatched implements IExplosionRay { public HashMap> perChunk = new HashMap(); //for future: optimize blockmap further by using sub-chunks instead of chunks public List orderedChunks = new ArrayList(); @@ -26,7 +27,7 @@ public class ExplosionNukeRayBatched { int strength; int length; - + int speed; int gspNumMax; int gspNum; double gspX; @@ -40,8 +41,8 @@ public class ExplosionNukeRayBatched { this.posY = y; this.posZ = z; this.strength = strength; + this.speed = speed; this.length = length; - // Total number of points this.gspNumMax = (int)(2.5 * Math.PI * Math.pow(this.strength,2)); this.gspNum = 1; @@ -76,7 +77,7 @@ public class ExplosionNukeRayBatched { } public void collectTip(int count) { - + //count = Math.min(count, 10); int amountProcessed = 0; @@ -106,7 +107,7 @@ public class ExplosionNukeRayBatched { double fac = 100 - ((double) i) / ((double) length) * 100; fac *= 0.07D; - + Block block = world.getBlock(iX, iY, iZ); if(!block.getMaterial().isLiquid()) @@ -125,18 +126,18 @@ public class ExplosionNukeRayBatched { break; } } - + for(ChunkCoordIntPair pos : chunkCoords) { List triplets = perChunk.get(pos); - + if(triplets == null) { triplets = new ArrayList(); perChunk.put(pos, triplets); //we re-use the same pos instead of using individualized per-chunk ones to save on RAM } - + triplets.add(lastPos); } - + // Raise one generalized spiral points this.generateGspUp(); @@ -145,20 +146,20 @@ public class ExplosionNukeRayBatched { return; } } - + orderedChunks.addAll(perChunk.keySet()); orderedChunks.sort(comparator); - + isAusf3Complete = true; } - + public static float masqueradeResistance(Block block) { if(block == Blocks.sandstone) return Blocks.stone.getExplosionResistance(null); if(block == Blocks.obsidian) return Blocks.stone.getExplosionResistance(null) * 3; return block.getExplosionResistance(null); } - + /** little comparator for roughly sorting chunks by distance to the center */ public class CoordComparator implements Comparator { @@ -170,15 +171,15 @@ public class ExplosionNukeRayBatched { int diff1 = Math.abs((chunkX - o1.chunkXPos)) + Math.abs((chunkZ - o1.chunkZPos)); int diff2 = Math.abs((chunkX - o2.chunkXPos)) + Math.abs((chunkZ - o2.chunkZPos)); - + return diff1 - diff2; } } public void processChunk() { - + if(this.perChunk.isEmpty()) return; - + ChunkCoordIntPair coord = orderedChunks.get(0); List list = perChunk.get(coord); HashSet toRem = new HashSet(); @@ -186,13 +187,13 @@ public class ExplosionNukeRayBatched { //List toRem = new ArrayList(); int chunkX = coord.chunkXPos; int chunkZ = coord.chunkZPos; - + int enter = (int) (Math.min( Math.abs(posX - (chunkX << 4)), Math.abs(posZ - (chunkZ << 4)))) - 16; //jump ahead to cut back on NOPs - + enter = Math.max(enter, 0); - + for(FloatTriplet triplet : list) { float x = triplet.xCoord; float y = triplet.yCoord; @@ -205,13 +206,13 @@ public class ExplosionNukeRayBatched { int tipX = (int) Math.floor(x); int tipY = (int) Math.floor(y); int tipZ = (int) Math.floor(z); - + boolean inChunk = false; for(int i = enter; i < vec.lengthVector(); i++) { int x0 = (int) Math.floor(posX + pX * i); int y0 = (int) Math.floor(posY + pY * i); int z0 = (int) Math.floor(posZ + pZ * i); - + if(x0 >> 4 != chunkX || z0 >> 4 != chunkZ) { if(inChunk) { break; @@ -219,13 +220,13 @@ public class ExplosionNukeRayBatched { continue; } } - + inChunk = true; if(!world.isAirBlock(x0, y0, z0)) { - + BlockPos pos = new BlockPos(x0, y0, z0); - + if(x0 == tipX && y0 == tipY && z0 == tipZ) { toRemTips.add(pos); } @@ -241,20 +242,41 @@ public class ExplosionNukeRayBatched { world.setBlock(pos.getX(), pos.getY(), pos.getZ(), Blocks.air, 0, 2); } } - + perChunk.remove(coord); orderedChunks.remove(0); } - + protected void handleTip(int x, int y, int z) { world.setBlock(x, y, z, Blocks.air, 0, 3); } - + + @Override + public boolean isComplete() { + return isAusf3Complete && perChunk.isEmpty(); + } + + @Override + public void cacheChunksTick(int time) { + if (!isAusf3Complete) { + // time ignored here since collectTip() did not implement a time limit + collectTip(speed*10); + } + } + + @Override + public void destructionTick(int time) { + if (!isAusf3Complete) return; + long start = System.currentTimeMillis(); + while(!perChunk.isEmpty() && System.currentTimeMillis() < start + time) + processChunk(); + } + public class FloatTriplet { public float xCoord; public float yCoord; public float zCoord; - + public FloatTriplet(float x, float y, float z) { xCoord = x; yCoord = y; diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java new file mode 100644 index 000000000..bc0cf57a8 --- /dev/null +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -0,0 +1,497 @@ +package com.hbm.explosion; + +import com.hbm.interfaces.IExplosionRay; +import com.hbm.main.MainRegistry; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.storage.ExtendedBlockStorage; +import org.apache.logging.log4j.Level; + +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicLongArray; + +public class ExplosionNukeRayParallelized implements IExplosionRay { + + private static final int WORLD_HEIGHT = 256; + private static final int BITSET_SIZE = 16 * WORLD_HEIGHT * 16; + private static final int WORDS_PER_SET = BITSET_SIZE >>> 6; // (16*256*16)/64 + + protected final World world; + private final double explosionX, explosionY, explosionZ; + private final int originX, originY, originZ; + private final int strength; + private final int radius; + + private final List directions; + private final ConcurrentMap destructionMap; + private final ConcurrentMap snapshots; + + private final BlockingQueue rayQueue; + private final BlockingQueue cacheQueue; + private final ExecutorService pool; + private final CountDownLatch latch; + private final Thread latchWatcherThread; + private final List orderedChunks; + private volatile boolean collectFinished = false; + private volatile boolean destroyFinished = false; + + + public ExplosionNukeRayParallelized(World world, double x, double y, double z, int strength, int speed, int radius) { + this.world = world; + this.explosionX = x; + this.explosionY = y; + this.explosionZ = z; + + this.originX = (int) Math.floor(x); + this.originY = (int) Math.floor(y); + this.originZ = (int) Math.floor(z); + + this.strength = strength; + this.radius = radius; + + int rayCount = Math.max(0, (int) (2.5 * Math.PI * strength * strength)); + + this.latch = new CountDownLatch(rayCount); + this.destructionMap = new ConcurrentHashMap<>(); + this.snapshots = new ConcurrentHashMap<>(); + this.orderedChunks = new ArrayList<>(); + + this.rayQueue = new LinkedBlockingQueue<>(); + this.cacheQueue = new LinkedBlockingQueue<>(); + + int workers = Math.max(1, Runtime.getRuntime().availableProcessors() - 1); + this.pool = Executors.newWorkStealingPool(workers); + this.directions = generateSphereRays(rayCount); + + for (int i = 0; i < rayCount; i++) rayQueue.add(new RayTask(i)); + for (int i = 0; i < workers; i++) pool.submit(new Worker()); + + this.latchWatcherThread = new Thread(() -> { + try { + latch.await(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } finally { + collectFinished = true; + } + }, "ExplosionNuke-LatchWatcher-" + System.nanoTime()); + this.latchWatcherThread.setDaemon(true); + this.latchWatcherThread.start(); + } + + private static float getNukeResistance(Block b) { + // if (b.getMaterial().isLiquid()) return 0.1F; + if (b == Blocks.sandstone) return Blocks.stone.getExplosionResistance(null); + if (b == Blocks.obsidian) return Blocks.stone.getExplosionResistance(null) * 3; + return b.getExplosionResistance(null); + } + + @Override + public void cacheChunksTick(int timeBudgetMs) { + if (collectFinished || this.cacheQueue == null) return; + + final long deadline = System.nanoTime() + (timeBudgetMs * 1_000_000L); + while (System.nanoTime() < deadline) { + ChunkKey ck = cacheQueue.poll(); + if (ck == null) break; + snapshots.computeIfAbsent(ck, key -> { + SubChunkSnapshot snap = createSubChunk(key.pos, key.subY); + return snap == null ? SubChunkSnapshot.EMPTY : snap; + }); + } + } + + @Override + public void destructionTick(int timeBudgetMs) { + if (!collectFinished || destroyFinished) return; + final long deadline = System.nanoTime() + timeBudgetMs * 1_000_000L; + + if (orderedChunks.isEmpty() && !destructionMap.isEmpty()) { + orderedChunks.addAll(destructionMap.keySet()); + orderedChunks.sort(Comparator.comparingInt(c -> Math.abs((originX >> 4) - c.chunkXPos) + Math.abs((originZ >> 4) - c.chunkZPos))); + } + + Iterator it = orderedChunks.iterator(); + while (it.hasNext() && System.nanoTime() < deadline) { + ChunkCoordIntPair cp = it.next(); + ConcurrentBitSet bs = destructionMap.get(cp); + if (bs == null) { + it.remove(); + continue; + } + + Chunk chunk = world.getChunkFromChunkCoords(cp.chunkXPos, cp.chunkZPos); + ExtendedBlockStorage[] storages = chunk.getBlockStorageArray(); + boolean ChunkModified = false; + + for (int subY = 0; subY < storages.length; subY++) { + ExtendedBlockStorage storage = storages[subY]; + if (storage == null) continue; + + int yPrimeMin = 255 - ((subY << 4) + 15); + int startBit = yPrimeMin << 8; + int yPrimeMax = 255 - (subY << 4); + int endBit = (yPrimeMax << 8) | 0xFF; + + int bit = bs.nextSetBit(startBit); + if (bit < 0 || bit > endBit) continue; + + while (bit >= 0 && bit <= endBit && System.nanoTime() < deadline) { + int yGlobal = 255 - (bit >>> 8); + int xGlobal = (cp.chunkXPos << 4) | ((bit >>> 4) & 0xF); + int zGlobal = (cp.chunkZPos << 4) | (bit & 0xF); + + if (world.getTileEntity(xGlobal, yGlobal, zGlobal) != null) { + chunk.removeTileEntity(xGlobal & 0xF, yGlobal, zGlobal & 0xF); // world Y + world.removeTileEntity(xGlobal, yGlobal, zGlobal); + } + + int xLocal = xGlobal & 0xF; + int yLocal = yGlobal & 0xF; + int zLocal = zGlobal & 0xF; + storage.func_150818_a(xLocal, yLocal, zLocal, Blocks.air); + storage.setExtBlockMetadata(xLocal, yLocal, zLocal, 0); + ChunkModified = true; + + world.notifyBlocksOfNeighborChange(xGlobal, yGlobal, zGlobal, Blocks.air); + world.markBlockForUpdate(xGlobal, yGlobal, zGlobal); + + world.updateLightByType(EnumSkyBlock.Sky, xGlobal, yGlobal, zGlobal); + world.updateLightByType(EnumSkyBlock.Block, xGlobal, yGlobal, zGlobal); + + bs.clear(bit); + bit = bs.nextSetBit(bit + 1); + } + } + + if (ChunkModified) { + chunk.setChunkModified(); + world.markBlockRangeForRenderUpdate(cp.chunkXPos << 4, 0, cp.chunkZPos << 4, (cp.chunkXPos << 4) | 15, WORLD_HEIGHT - 1, (cp.chunkZPos << 4) | 15); + } + + if (bs.isEmpty()) { + destructionMap.remove(cp); + for (int sy = 0; sy < (WORLD_HEIGHT >> 4); sy++) { + snapshots.remove(new ChunkKey(cp.chunkXPos, cp.chunkZPos, sy)); + } + it.remove(); + } + } + + if (orderedChunks.isEmpty() && destructionMap.isEmpty()) { + destroyFinished = true; + if (pool != null) pool.shutdown(); + } + } + + @Override + public boolean isComplete() { + return collectFinished && destroyFinished; + } + + public void cancel() { + this.collectFinished = true; + this.destroyFinished = true; + + if (this.rayQueue != null) this.rayQueue.clear(); + if (this.cacheQueue != null) this.cacheQueue.clear(); + + if (this.latch != null) { + while (this.latch.getCount() > 0) { + this.latch.countDown(); + } + } + if (this.latchWatcherThread != null && this.latchWatcherThread.isAlive()) { + this.latchWatcherThread.interrupt(); + } + + if (this.pool != null && !this.pool.isShutdown()) { + this.pool.shutdownNow(); + try { + if (!this.pool.awaitTermination(100, TimeUnit.MILLISECONDS)) { + MainRegistry.logger.log(Level.ERROR, "ExplosionNukeRayParallelized thread pool did not terminate promptly on cancel."); + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + if (!this.pool.isShutdown()) { + this.pool.shutdownNow(); + } + } + } + if (this.destructionMap != null) this.destructionMap.clear(); + if (this.snapshots != null) this.snapshots.clear(); + if (this.orderedChunks != null) this.orderedChunks.clear(); + } + + private SubChunkSnapshot createSubChunk(ChunkCoordIntPair cpos, int subY) { + if (!world.getChunkProvider().chunkExists(cpos.chunkXPos, cpos.chunkZPos)) { + return SubChunkSnapshot.EMPTY; + } + Chunk chunk = world.getChunkFromChunkCoords(cpos.chunkXPos, cpos.chunkZPos); + ExtendedBlockStorage ebs = chunk.getBlockStorageArray()[subY]; + if (ebs == null || ebs.isEmpty()) { + return SubChunkSnapshot.EMPTY; + } + + short[] data = new short[16 * 16 * 16]; + List palette = new ArrayList<>(); + palette.add(Blocks.air); + Map idxMap = new HashMap<>(); + idxMap.put(Blocks.air, (short) 0); + boolean allAir = true; + + for (int ly = 0; ly < 16; ly++) { + for (int lz = 0; lz < 16; lz++) { + for (int lx = 0; lx < 16; lx++) { + Block block = ebs.getBlockByExtId(lx, ly, lz); + int idx; + if (block == Blocks.air) { + idx = 0; + } else { + allAir = false; + Short e = idxMap.get(block); + if (e == null) { + idxMap.put(block, (short) palette.size()); + palette.add(block); + idx = palette.size() - 1; + } else { + idx = e; + } + } + data[(ly << 8) | (lz << 4) | lx] = (short) idx; + } + } + } + if (allAir) return SubChunkSnapshot.EMPTY; + return new SubChunkSnapshot(palette.toArray(new Block[0]), data); + } + + private List generateSphereRays(int count) { + List list = new ArrayList<>(count); + if (count <= 0) return list; + if (count == 1) { + list.add(Vec3.createVectorHelper(1, 0, 0).normalize()); + return list; + } + double phi = Math.PI * (3.0 - Math.sqrt(5.0)); + for (int i = 0; i < count; i++) { + double y = 1.0 - (i / (double) (count - 1)) * 2.0; + double r = Math.sqrt(1.0 - y * y); + double t = phi * i; + list.add(Vec3.createVectorHelper(Math.cos(t) * r, y, Math.sin(t) * r)); + } + return list; + } + + private static class ChunkKey { + final ChunkCoordIntPair pos; + final int subY; + + ChunkKey(int cx, int cz, int sy) { + this.pos = new ChunkCoordIntPair(cx, cz); + this.subY = sy; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ChunkKey)) return false; + ChunkKey k = (ChunkKey) o; + return subY == k.subY && pos.equals(k.pos); + } + + @Override + public int hashCode() { + return Objects.hash(pos.chunkXPos, pos.chunkZPos, subY); + } + } + + private static class SubChunkSnapshot { + private static final SubChunkSnapshot EMPTY = new SubChunkSnapshot(new Block[]{Blocks.air}, null); + private final Block[] palette; + private final short[] data; + + SubChunkSnapshot(Block[] p, short[] d) { + this.palette = p; + this.data = d; + } + + Block getBlock(int x, int y, int z) { + if (this == EMPTY || data == null) return Blocks.air; + short idx = data[(y << 8) | (z << 4) | x]; + return (idx >= 0 && idx < palette.length) ? palette[idx] : Blocks.air; + } + } + + private static final class ConcurrentBitSet { + private final AtomicLongArray words = new AtomicLongArray(WORDS_PER_SET); + + void set(int bit) { + if (bit < 0 || bit >= BITSET_SIZE) return; + int wd = bit >>> 6; + long m = 1L << (bit & 63); + while (true) { + long o = words.get(wd); + long u = o | m; + if (o == u || words.compareAndSet(wd, o, u)) return; + } + } + + void clear(int bit) { + if (bit < 0 || bit >= BITSET_SIZE) return; + int wd = bit >>> 6; + long m = ~(1L << (bit & 63)); + words.set(wd, words.get(wd) & m); + } + + int nextSetBit(int from) { + if (from < 0) from = 0; + int wd = from >>> 6; + if (wd >= WORDS_PER_SET) return -1; + long w = words.get(wd) & (~0L << (from & 63)); + while (true) { + if (w != 0) return (wd << 6) + Long.numberOfTrailingZeros(w); + if (++wd == WORDS_PER_SET) return -1; + w = words.get(wd); + } + } + + boolean isEmpty() { + for (int i = 0; i < WORDS_PER_SET; i++) if (words.get(i) != 0) return false; + return true; + } + } + + private class Worker implements Runnable { + @Override + public void run() { + try { + while (true) { + if (collectFinished && rayQueue.isEmpty()) break; + RayTask task = rayQueue.poll(100, TimeUnit.MILLISECONDS); + if (task == null) { + if (collectFinished && rayQueue.isEmpty()) break; + continue; + } + task.trace(); + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + } + + private class RayTask { + final int dirIndex; + double px, py, pz; + int x, y, z; + float energy; + double tMaxX, tMaxY, tMaxZ, tDeltaX, tDeltaY, tDeltaZ; + int stepX, stepY, stepZ; + boolean initialised = false; + + RayTask(int dirIdx) { + this.dirIndex = dirIdx; + } + + void init() { + Vec3 dir = directions.get(dirIndex); + px = explosionX; + py = explosionY; + pz = explosionZ; + x = originX; + y = originY; + z = originZ; + energy = strength; + + + final double EPS = 1e-6; + double ax = Math.abs(dir.xCoord); + stepX = ax < EPS ? 0 : (dir.xCoord > 0 ? 1 : -1); + double invDx = stepX == 0 ? Double.POSITIVE_INFINITY : 1.0 / ax; + double ay = Math.abs(dir.yCoord); + stepY = ay < EPS ? 0 : (dir.yCoord > 0 ? 1 : -1); + double invDy = stepY == 0 ? Double.POSITIVE_INFINITY : 1.0 / ay; + double az = Math.abs(dir.zCoord); + stepZ = az < EPS ? 0 : (dir.zCoord > 0 ? 1 : -1); + double invDz = stepZ == 0 ? Double.POSITIVE_INFINITY : 1.0 / az; + + tDeltaX = invDx; + tDeltaY = invDy; + tDeltaZ = invDz; + tMaxX = stepX == 0 ? Double.POSITIVE_INFINITY : ((stepX > 0 ? (x + 1 - px) : (px - x)) * invDx); + tMaxY = stepY == 0 ? Double.POSITIVE_INFINITY : ((stepY > 0 ? (y + 1 - py) : (py - y)) * invDy); + tMaxZ = stepZ == 0 ? Double.POSITIVE_INFINITY : ((stepZ > 0 ? (z + 1 - pz) : (pz - z)) * invDz); + initialised = true; + } + + void trace() { + if (!initialised) init(); + if (energy <= 0) { + latch.countDown(); + return; + } + + while (energy > 0) { + if (y < 0 || y >= WORLD_HEIGHT) { + break; + } + double dxBlock = x + 0.5 - explosionX; + double dyBlock = y + 0.5 - explosionY; + double dzBlock = z + 0.5 - explosionZ; + if (dxBlock * dxBlock + dyBlock * dyBlock + dzBlock * dzBlock > radius * radius) { + break; + } + + ChunkKey ck = new ChunkKey(x >> 4, z >> 4, y >> 4); + SubChunkSnapshot snap = snapshots.get(ck); + + if (snap == null) { + cacheQueue.offer(ck); + rayQueue.offer(this); + return; + } + if (snap != SubChunkSnapshot.EMPTY) { + Block block = snap.getBlock(x & 15, y & 15, z & 15); + if (block != Blocks.air) { + float res = getNukeResistance(block); + float resistanceCutoff = 2_000_000F; + if (res >= resistanceCutoff) break; + double distToBlock = Math.sqrt(dxBlock * dxBlock + dyBlock * dyBlock + dzBlock * dzBlock); + double effectiveDist = Math.max(distToBlock, 0.01); + energy -= (float) (Math.pow(res + 1.0, 3.0 * (effectiveDist / radius)) - 1.0); + if (energy > 0) { + ConcurrentBitSet bs = destructionMap.computeIfAbsent(ck.pos, posKey -> new ConcurrentBitSet()); + bs.set(((255 - y) << 8) | ((x & 15) << 4) | (z & 15)); + } else break; + } + } + + if (tMaxX < tMaxY) { + if (tMaxX < tMaxZ) { + x += stepX; + tMaxX += tDeltaX; + } else { + z += stepZ; + tMaxZ += tDeltaZ; + } + } else { + if (tMaxY < tMaxZ) { + y += stepY; + tMaxY += tDeltaY; + } else { + z += stepZ; + tMaxZ += tDeltaZ; + } + } + } + latch.countDown(); + } + } +} diff --git a/src/main/java/com/hbm/interfaces/IExplosionRay.java b/src/main/java/com/hbm/interfaces/IExplosionRay.java new file mode 100644 index 000000000..2ee6ac78b --- /dev/null +++ b/src/main/java/com/hbm/interfaces/IExplosionRay.java @@ -0,0 +1,9 @@ +package com.hbm.interfaces; + +public interface IExplosionRay { + boolean isComplete(); + + void cacheChunksTick(int processTime); + + void destructionTick(int processTime); +} From 9bb9a56452771f7e27ce1bce1490be8c2d18f4d6 Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Fri, 23 May 2025 01:47:29 +0800 Subject: [PATCH 076/181] Fix: setDead() now correctly calls cancel() --- .../java/com/hbm/entity/logic/EntityNukeExplosionMK5.java | 7 +++++++ .../java/com/hbm/explosion/ExplosionNukeRayBatched.java | 7 +++++++ .../com/hbm/explosion/ExplosionNukeRayParallelized.java | 1 + src/main/java/com/hbm/interfaces/IExplosionRay.java | 2 ++ 4 files changed, 17 insertions(+) diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index def573ad7..95965c95c 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -133,6 +133,13 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { } } + @Override + public void setDead(){ + if(explosion != null) + explosion.cancel(); + super.setDead(); + } + @Override protected void readEntityFromNBT(NBTTagCompound nbt) { this.ticksExisted = nbt.getInteger("ticksExisted"); diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index 6f7af5e35..1d97dfa38 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -272,6 +272,13 @@ public class ExplosionNukeRayBatched implements IExplosionRay { processChunk(); } + @Override + public void cancel() { + isAusf3Complete = true; + if (perChunk != null) perChunk.clear(); + if (orderedChunks != null) orderedChunks.clear(); + } + public class FloatTriplet { public float xCoord; public float yCoord; diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index bc0cf57a8..2c8eb6761 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -195,6 +195,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { return collectFinished && destroyFinished; } + @Override public void cancel() { this.collectFinished = true; this.destroyFinished = true; diff --git a/src/main/java/com/hbm/interfaces/IExplosionRay.java b/src/main/java/com/hbm/interfaces/IExplosionRay.java index 2ee6ac78b..d164b6b27 100644 --- a/src/main/java/com/hbm/interfaces/IExplosionRay.java +++ b/src/main/java/com/hbm/interfaces/IExplosionRay.java @@ -6,4 +6,6 @@ public interface IExplosionRay { void cacheChunksTick(int processTime); void destructionTick(int processTime); + + void cancel(); } From 6a7dabbb1e49bf8103bf8b60040ad9abd507907b Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 22 May 2025 21:45:18 +0200 Subject: [PATCH 077/181] the malicious gigglefish from the silly dimension --- .../hbm/entity/projectile/EntityBuilding.java | 100 ++++++++++-------- src/main/java/com/hbm/items/ModItems.java | 2 + .../sedna/factory/GunFactoryClient.java | 6 +- .../weapon/sedna/factory/XFactory44.java | 11 +- .../weapon/sedna/factory/XFactory50.java | 35 +++++- .../com/hbm/main/ModEventHandlerClient.java | 2 +- .../java/com/hbm/main/ResourceManager.java | 2 + .../item/weapon/sedna/ItemRenderAmat.java | 14 ++- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../textures/models/weapons/amat_penance.png | Bin 0 -> 7938 bytes .../textures/models/weapons/amat_subtlety.png | Bin 0 -> 18642 bytes 12 files changed, 117 insertions(+), 59 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/amat_penance.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/amat_subtlety.png diff --git a/src/main/java/com/hbm/entity/projectile/EntityBuilding.java b/src/main/java/com/hbm/entity/projectile/EntityBuilding.java index 8a8bd653c..3382ac4f0 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBuilding.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBuilding.java @@ -3,13 +3,17 @@ package com.hbm.entity.projectile; import java.util.List; import com.hbm.explosion.ExplosionLarge; +import com.hbm.handler.threading.PacketThreading; import com.hbm.lib.ModDamageSource; +import com.hbm.packet.toclient.AuxParticlePacketNT; +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.projectile.EntityThrowable; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; @@ -22,63 +26,65 @@ public class EntityBuilding extends EntityThrowable { this.ignoreFrustumCheck = true; this.isImmuneToFire = true; } - + @Override public void onUpdate() { + if(!worldObj.isRemote && this.ticksExisted == 1) { + for(int i = 0; i < 100; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bf"); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, + posX + (rand.nextDouble() - 0.5) * 15, + posY + (rand.nextDouble() - 0.5) * 15, + posZ + (rand.nextDouble() - 0.5) * 15), + new TargetPoint(dimension, posX, posY, posZ, 150)); + } + } this.lastTickPosX = this.prevPosX = posX; this.lastTickPosY = this.prevPosY = posY; this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - + this.motionY -= 0.03; - if(motionY < -1.5) - motionY = -1.5; - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10000.0F, 0.5F + this.rand.nextFloat() * 0.1F); - this.setDead(); - ExplosionLarge.spawnParticles(worldObj, posX, posY + 3, posZ, 150); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 6); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 4); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); - - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 8, posY - 8, posZ - 8, posX + 8, posY + 8, posZ + 8)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.building, 1000); - } - - for(int i = 0; i < 250; i++) { - - Vec3 vec = Vec3.createVectorHelper(1, 0, 0); - vec.rotateAroundZ((float) (-rand.nextFloat() * Math.PI / 2)); - vec.rotateAroundY((float) (rand.nextFloat() * Math.PI * 2)); - - EntityRubble rubble = new EntityRubble(worldObj, posX, posY + 3, posZ); - rubble.setMetaBasedOnBlock(Blocks.brick_block, 0); - rubble.motionX = vec.xCoord; - rubble.motionY = vec.yCoord; - rubble.motionZ = vec.zCoord; - worldObj.spawnEntityInWorld(rubble); - } - } - } + if(motionY < -1.5) motionY = -1.5; + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10000.0F, 0.5F + this.rand.nextFloat() * 0.1F); + this.setDead(); + ExplosionLarge.spawnParticles(worldObj, posX, posY + 3, posZ, 150); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 6); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 5); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 4); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); + + List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 8, posY - 8, posZ - 8, posX + 8, posY + 8, posZ + 8)); + + for(Entity e : list) e.attackEntityFrom(ModDamageSource.building, 1000); + + for(int i = 0; i < 250; i++) { + + Vec3 vec = Vec3.createVectorHelper(1, 0, 0); + vec.rotateAroundZ((float) (-rand.nextFloat() * Math.PI / 2)); + vec.rotateAroundY((float) (rand.nextFloat() * Math.PI * 2)); + + EntityRubble rubble = new EntityRubble(worldObj, posX, posY + 3, posZ); + rubble.setMetaBasedOnBlock(Blocks.brick_block, 0); + rubble.motionX = vec.xCoord; + rubble.motionY = vec.yCoord; + rubble.motionZ = vec.zCoord; + worldObj.spawnEntityInWorld(rubble); + } + } + } + + @Override protected void onImpact(MovingObjectPosition p_70184_1_) { } @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - - } - - @Override @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 25000; - } + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index ecde954ed..ff7ea8338 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -6410,6 +6410,8 @@ public class ModItems { GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); GameRegistry.registerItem(gun_chemthrower, gun_chemthrower.getUnlocalizedName()); GameRegistry.registerItem(gun_amat, gun_amat.getUnlocalizedName()); + GameRegistry.registerItem(gun_amat_subtlety, gun_amat_subtlety.getUnlocalizedName()); + GameRegistry.registerItem(gun_amat_penance, gun_amat_penance.getUnlocalizedName()); GameRegistry.registerItem(gun_m2, gun_m2.getUnlocalizedName()); GameRegistry.registerItem(gun_autoshotgun, gun_autoshotgun.getUnlocalizedName()); GameRegistry.registerItem(gun_autoshotgun_shredder, gun_autoshotgun_shredder.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index 0a42eb594..58945b2cf 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -70,7 +70,9 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_g3_zebra, new ItemRenderG3(ResourceManager.g3_zebra_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_stinger, new ItemRenderStinger()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_chemthrower, new ItemRenderChemthrower()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_amat, new ItemRenderAmat()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_amat, new ItemRenderAmat(ResourceManager.amat_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_amat_subtlety, new ItemRenderAmat(ResourceManager.amat_subtlety_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_amat_penance, new ItemRenderAmat(ResourceManager.amat_penance_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_m2, new ItemRenderM2()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun, new ItemRenderShredder(ResourceManager.shredder_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_shredder, new ItemRenderShredder(ResourceManager.shredder_orig_tex)); @@ -258,6 +260,8 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_stinger) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_chemthrower) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_amat) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_amat_subtlety) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_amat_penance) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_m2) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_autoshotgun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_autoshotgun_shredder) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java index 5a97bc4b5..345ab3d4d 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java @@ -58,12 +58,11 @@ public class XFactory44 { }; public static BiConsumer LAMBDA_TORPEDO = (bullet, mop) -> { - EntityTorpedo pippo = new EntityTorpedo(bullet.worldObj); - pippo.posX = mop.hitVec.xCoord; - pippo.posY = mop.hitVec.yCoord + 50; - pippo.posZ = mop.hitVec.zCoord;; - bullet.worldObj.spawnEntityInWorld(pippo); - //bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F); + EntityTorpedo murky = new EntityTorpedo(bullet.worldObj); + murky.posX = mop.hitVec.xCoord; + murky.posY = mop.hitVec.yCoord + 50; + murky.posZ = mop.hitVec.zCoord;; + bullet.worldObj.spawnEntityInWorld(murky); bullet.setDead(); }; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java index f70d62c0c..b969bdfa8 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -3,6 +3,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import com.hbm.entity.projectile.EntityBuilding; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumCasingType; @@ -37,6 +38,16 @@ public class XFactory50 { public static BulletConfig bmg50_he; public static BulletConfig bmg50_sm; public static BulletConfig bmg50_black; + public static BulletConfig bmg50_equestrian; + + public static BiConsumer LAMBDA_BUILDING = (bullet, mop) -> { + EntityBuilding silver = new EntityBuilding(bullet.worldObj); + silver.posX = mop.hitVec.xCoord; + silver.posY = mop.hitVec.yCoord + 50; + silver.posZ = mop.hitVec.zCoord;; + bullet.worldObj.spawnEntityInWorld(silver); + bullet.setDead(); + }; public static BiConsumer LAMBDA_STANDARD_EXPLODE = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3 && mop.entityHit == bullet.getThrower()) return; @@ -61,7 +72,9 @@ public class XFactory50 { .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50sm")); bmg50_black = new BulletConfig().setItem(EnumAmmoSecret.BMG50_BLACK).setWear(5F).setDoesPenetrate(true).setDamageFalloffByPen(false).setSpectral(true).setDamage(1.5F).setHeadshot(3F).setThresholdNegation(30F).setArmorPiercing(0.35F) .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("bmg50black")); - + bmg50_equestrian = new BulletConfig().setItem(EnumAmmoSecret.BMG50_EQUESTRIAN).setDamage(0F).setOnImpact(LAMBDA_BUILDING) + .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("bmg50equestrian")); + ModItems.gun_amat = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(350).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(XFactory44.scope_lilmac).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) @@ -72,6 +85,26 @@ public class XFactory50 { .setupStandardConfiguration() .anim(LAMBDA_AMAT_ANIMS).orchestra(Orchestras.ORCHESTRA_AMAT) ).setUnlocalizedName("gun_amat"); + ModItems.gun_amat_subtlety = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(1_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(XFactory44.scope_lilmac).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(50F).delay(25).dry(25).spreadHipfire(0.05F).reload(51).jam(43).sound("hbm:weapon.fire.amat", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 7).addConfigs(bmg50_equestrian, bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he)) + .offset(1, -0.0625 * 1.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_AMAT)) + .setupStandardConfiguration() + .anim(LAMBDA_AMAT_ANIMS).orchestra(Orchestras.ORCHESTRA_AMAT) + ).setUnlocalizedName("gun_amat_subtlety"); + ModItems.gun_amat_penance = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(5_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(XFactory44.scope_lilmac).thermalSights(true).smoke(LAMBDA_SMOKE) + .rec(new Receiver(0) + .dmg(45F).delay(25).dry(25).spreadHipfire(0F).reload(51).jam(43).sound("hbm:weapon.silencerShoot", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he, bmg50_black)) + .offset(1, -0.0625 * 1.5, -0.25D) + .setupStandardFire().recoil(LAMBDA_RECOIL_AMAT)) + .setupStandardConfiguration() + .anim(LAMBDA_AMAT_ANIMS).orchestra(Orchestras.ORCHESTRA_AMAT) + ).setUnlocalizedName("gun_amat_penance"); ModItems.gun_m2 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(10).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 8b3679187..4af2dd3c3 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1322,7 +1322,7 @@ public class ModEventHandlerClient { if(chestplate.thermal) thermalSights = true; } - if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBaseNT && ItemGunBaseNT.aimingProgress == 1) { ItemGunBaseNT gun = (ItemGunBaseNT) player.getHeldItem().getItem(); for(int i = 0; i < gun.getConfigCount(); i++) if(gun.getConfig(player.getHeldItem(), i).hasThermalSights(player.getHeldItem())) thermalSights = true; } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c729a7779..9d0008cff 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -998,6 +998,8 @@ public class ResourceManager { public static final ResourceLocation g3_black_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/g3_polymer_black.png"); public static final ResourceLocation g3_attachments = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/g3_attachments.png"); public static final ResourceLocation amat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/amat.png"); + public static final ResourceLocation amat_subtlety_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/amat_subtlety.png"); + public static final ResourceLocation amat_penance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/amat_penance.png"); public static final ResourceLocation shredder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder.png"); public static final ResourceLocation shredder_orig_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/shredder_orig.png"); public static final ResourceLocation sexy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sexy.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java index 9957c23e1..b66f0e893 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java @@ -2,6 +2,7 @@ package com.hbm.render.item.weapon.sedna; import org.lwjgl.opengl.GL11; +import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.mods.WeaponModManager; import com.hbm.main.ResourceManager; @@ -9,8 +10,15 @@ import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; public class ItemRenderAmat extends ItemRenderWeaponBase { + + public ResourceLocation texture; + + public ItemRenderAmat(ResourceLocation texture) { + this.texture = texture; + } @Override protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } @@ -38,7 +46,7 @@ public class ItemRenderAmat extends ItemRenderWeaponBase { if(isScoped && ItemGunBaseNT.prevAimingProgress == 1 && ItemGunBaseNT.aimingProgress == 1) return; ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.amat_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); double scale = 0.375D; GL11.glScaled(scale, scale, scale); @@ -177,7 +185,7 @@ public class ItemRenderAmat extends ItemRenderWeaponBase { GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.amat_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); ResourceManager.amat.renderPart("Gun"); ResourceManager.amat.renderPart("Bolt"); ResourceManager.amat.renderPart("Magazine"); @@ -202,6 +210,6 @@ public class ItemRenderAmat extends ItemRenderWeaponBase { } public boolean isSilenced(ItemStack stack) { - return WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SILENCER); + return stack.getItem() == ModItems.gun_amat_penance || WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SILENCER); } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 30106dd14..636c57c0f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2071,6 +2071,8 @@ item.gun_aberrator_eott.name=Eyes Of The Tempest item.gun_am180.name=.22er Maschinenpistole item.gun_am180_silenced.name=Schallgedämpfte .22er Maschinenpistole item.gun_amat.name=Panzerbüchse +item.gun_amat_penance.name=Penance +item.gun_amat_subtlety.name=Subtlety item.gun_autoshotgun.name=Auto-Flinte item.gun_autoshotgun_sexy.name=Sexy item.gun_autoshotgun_shredder.name=Shredder diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 02b6a1201..d234ba27d 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2882,6 +2882,8 @@ item.gun_aberrator_eott.name=Eyes Of The Tempest item.gun_am180.name=.22 Submachine Gun item.gun_am180_silenced.name=Silenced .22 Submachine Gun item.gun_amat.name=Anti-Materiel Rifle +item.gun_amat_penance.name=Penance +item.gun_amat_subtlety.name=Subtlety item.gun_autoshotgun.name=Auto Shotgun item.gun_autoshotgun_sexy.name=Sexy item.gun_autoshotgun_shredder.name=Shredder diff --git a/src/main/resources/assets/hbm/textures/models/weapons/amat_penance.png b/src/main/resources/assets/hbm/textures/models/weapons/amat_penance.png new file mode 100644 index 0000000000000000000000000000000000000000..42f4c9c05a252ac795c4061ee864174627d5fa76 GIT binary patch literal 7938 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/amat_subtlety.png b/src/main/resources/assets/hbm/textures/models/weapons/amat_subtlety.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a85587313e59f57ab3f083bdf734129f9eb3da GIT binary patch literal 18642 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 v9p3%QCBLE7)Y?r0fj}S-2m}IwK!E=P$Q Date: Fri, 23 May 2025 00:40:45 +0300 Subject: [PATCH 078/181] Fix strand caster Also refactor it in the process, for good measure --- .../TileEntityMachineStrandCaster.java | 105 +++++++++--------- 1 file changed, 55 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index bc7eb46b6..56cc4629d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -60,13 +60,11 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase this.lastAmount = this.amount; } - if(this.amount >= this.getCapacity()) { - // In case of overfill problems, spit out the excess as scrap - if(amount > getCapacity()) { - ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, Math.max(amount - getCapacity(), 0))); - EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord + 2, zCoord + 0.5, scrap); - worldObj.spawnEntityInWorld(item); - } + // In case of overfill problems, spit out the excess as scrap + if(amount > getCapacity()) { + ItemStack scrap = ItemScraps.create(new Mats.MaterialStack(type, Math.max(amount - getCapacity(), 0))); + EntityItem item = new EntityItem(worldObj, xCoord + 0.5, yCoord + 2, zCoord + 0.5, scrap); + worldObj.spawnEntityInWorld(item); this.amount = this.getCapacity(); } @@ -78,63 +76,70 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase ItemMold.Mold mold = this.getInstalledMold(); - if(mold != null) { - - int itemsCasted = amount / mold.getCost(); - - if(canProcess(itemsCasted)) { - int minAmount = mold.getCost() * 9; - - // Makes it flush the buffers after 10 seconds of inactivity - if(worldObj.getWorldTime() >= lastCastTick + 200) { - minAmount = mold.getCost(); - } - - if(this.amount >= minAmount) { - - for(int j = 0; j < itemsCasted; j++) { - this.amount -= mold.getCost(); - - ItemStack out = mold.getOutput(type); - - for(int i = 1; i < 7; i++) { - if(slots[i] == null) { - slots[i] = out.copy(); - break; - } - - if(slots[i].isItemEqual(out) && slots[i].stackSize + out.stackSize <= out.getMaxStackSize()) { - slots[i].stackSize += out.stackSize; - break; - } - - } + if (mold != null) { + int itemsCasted = maxProcessable(); + + // Makes it flush the buffers after 10 seconds of inactivity, or when they're full + if (itemsCasted == 10 || worldObj.getWorldTime() >= lastCastTick + 200) { + + this.amount -= itemsCasted * mold.getCost(); + + ItemStack out = mold.getOutput(type); + int remaining = out.stackSize * itemsCasted; + out.stackSize = out.getMaxStackSize(); + + for (int i = 1; i < 7; i++) { + if (remaining <= 0) { + break; + } + + if (slots[i] == null) { + slots[i] = new ItemStack(out.getItem(), 0, out.getItemDamage()); + } + + if (slots[i].isItemEqual(out)) { + int toDeposit = Math.min(remaining, out.stackSize - slots[i].stackSize); + slots[i].stackSize += toDeposit; + remaining -= toDeposit; } - markChanged(); - - water.setFill(water.getFill() - getWaterRequired() * itemsCasted); - steam.setFill(steam.getFill() + getWaterRequired() * itemsCasted); - - lastCastTick = worldObj.getWorldTime(); } + + markChanged(); + + water.setFill(water.getFill() - getWaterRequired() * itemsCasted); + steam.setFill(steam.getFill() + getWaterRequired() * itemsCasted); } + + lastCastTick = worldObj.getWorldTime(); } networkPackNT(150); } } - public boolean canProcess(int itemsCasted) { + private int maxProcessable() { ItemMold.Mold mold = this.getInstalledMold(); - if(type != null && mold != null && mold.getOutput(type) != null) { - for(int i = 1; i < 7; i++) { - if(slots[i] == null || slots[i].isItemEqual(mold.getOutput(type)) && slots[i].stackSize + mold.getOutput(type).stackSize <= mold.getOutput(type).getMaxStackSize()) - return water.getFill() >= getWaterRequired() * itemsCasted && steam.getFill() + getWaterRequired() <= steam.getMaxFill(); + if (type == null || mold == null || mold.getOutput(type) != null) { + return 0; + } + int freeSlots = 0; + final int stackLimit = mold.getOutput(type).getMaxStackSize(); + + for (int i = 1; i < 7; i++) { + if (slots[i] == null) { + freeSlots += stackLimit; + } else if (slots[i].isItemEqual(mold.getOutput(type))) { + freeSlots += stackLimit - slots[i].stackSize; } } - return false; + int itemsCasted = amount / mold.getCost(); + itemsCasted = Math.min(itemsCasted, freeSlots / mold.getOutput(type).stackSize); + itemsCasted = Math.min(itemsCasted, water.getFill() / getWaterRequired()); + itemsCasted = Math.min(itemsCasted, (steam.getMaxFill() - steam.getFill()) / getWaterRequired()); + + return itemsCasted; } public DirPos[] getFluidConPos() { From 81ca498fa8019a9a3d0ab1871e8a896d04520d13 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Fri, 23 May 2025 00:57:21 +0300 Subject: [PATCH 079/181] Fix strand caster 2: electric boogaloo Like, only cast if there is anything to cast, duh --- .../TileEntityMachineStrandCaster.java | 66 +++++++++---------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 56cc4629d..dbc955b2e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -74,45 +74,43 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase this.updateConnections(); - ItemMold.Mold mold = this.getInstalledMold(); + int moldsToCast = maxProcessable(); + + // Makes it flush the buffers after 10 seconds of inactivity, or when they're full + if (moldsToCast > 0 && (moldsToCast == 10 || worldObj.getWorldTime() >= lastCastTick + 200)) { - if (mold != null) { - int itemsCasted = maxProcessable(); - - // Makes it flush the buffers after 10 seconds of inactivity, or when they're full - if (itemsCasted == 10 || worldObj.getWorldTime() >= lastCastTick + 200) { - - this.amount -= itemsCasted * mold.getCost(); + ItemMold.Mold mold = this.getInstalledMold(); + + this.amount -= moldsToCast * mold.getCost(); - ItemStack out = mold.getOutput(type); - int remaining = out.stackSize * itemsCasted; - out.stackSize = out.getMaxStackSize(); + ItemStack out = mold.getOutput(type); + int remaining = out.stackSize * moldsToCast; + out.stackSize = out.getMaxStackSize(); - for (int i = 1; i < 7; i++) { - if (remaining <= 0) { - break; - } - - if (slots[i] == null) { - slots[i] = new ItemStack(out.getItem(), 0, out.getItemDamage()); - } - - if (slots[i].isItemEqual(out)) { - int toDeposit = Math.min(remaining, out.stackSize - slots[i].stackSize); - slots[i].stackSize += toDeposit; - remaining -= toDeposit; - } + for (int i = 1; i < 7; i++) { + if (remaining <= 0) { + break; } - markChanged(); + if (slots[i] == null) { + slots[i] = new ItemStack(out.getItem(), 0, out.getItemDamage()); + } - water.setFill(water.getFill() - getWaterRequired() * itemsCasted); - steam.setFill(steam.getFill() + getWaterRequired() * itemsCasted); + if (slots[i].isItemEqual(out)) { + int toDeposit = Math.min(remaining, out.stackSize - slots[i].stackSize); + slots[i].stackSize += toDeposit; + remaining -= toDeposit; + } } - lastCastTick = worldObj.getWorldTime(); + markChanged(); + + water.setFill(water.getFill() - getWaterRequired() * moldsToCast); + steam.setFill(steam.getFill() + getWaterRequired() * moldsToCast); } + lastCastTick = worldObj.getWorldTime(); + networkPackNT(150); } } @@ -134,12 +132,12 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase } } - int itemsCasted = amount / mold.getCost(); - itemsCasted = Math.min(itemsCasted, freeSlots / mold.getOutput(type).stackSize); - itemsCasted = Math.min(itemsCasted, water.getFill() / getWaterRequired()); - itemsCasted = Math.min(itemsCasted, (steam.getMaxFill() - steam.getFill()) / getWaterRequired()); + int moldsToCast = amount / mold.getCost(); + moldsToCast = Math.min(moldsToCast, freeSlots / mold.getOutput(type).stackSize); + moldsToCast = Math.min(moldsToCast, water.getFill() / getWaterRequired()); + moldsToCast = Math.min(moldsToCast, (steam.getMaxFill() - steam.getFill()) / getWaterRequired()); - return itemsCasted; + return moldsToCast; } public DirPos[] getFluidConPos() { From d3e839a9bb2dc41ad76c86ca60df776a2f1d8ffd Mon Sep 17 00:00:00 2001 From: abel1502 Date: Fri, 23 May 2025 01:08:27 +0300 Subject: [PATCH 080/181] Don't modify the out stack Just in case, IDK --- .../hbm/tileentity/machine/TileEntityMachineStrandCaster.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index dbc955b2e..4155303d4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -85,7 +85,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase ItemStack out = mold.getOutput(type); int remaining = out.stackSize * moldsToCast; - out.stackSize = out.getMaxStackSize(); + final int maxStackSize = out.getMaxStackSize(); for (int i = 1; i < 7; i++) { if (remaining <= 0) { @@ -97,7 +97,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase } if (slots[i].isItemEqual(out)) { - int toDeposit = Math.min(remaining, out.stackSize - slots[i].stackSize); + int toDeposit = Math.min(remaining, maxStackSize - slots[i].stackSize); slots[i].stackSize += toDeposit; remaining -= toDeposit; } From 41189e5f25c734e866e9fa5f773118835636ac25 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Fri, 23 May 2025 01:42:12 +0300 Subject: [PATCH 081/181] I fixed it so good it stopped working But now it does again. I'm just silly like that sometimes --- .../machine/TileEntityMachineStrandCaster.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 4155303d4..84c56ab7c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -11,6 +11,7 @@ import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMold; import com.hbm.items.machine.ItemScraps; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -77,7 +78,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase int moldsToCast = maxProcessable(); // Makes it flush the buffers after 10 seconds of inactivity, or when they're full - if (moldsToCast > 0 && (moldsToCast == 10 || worldObj.getWorldTime() >= lastCastTick + 200)) { + if (moldsToCast > 0 && (moldsToCast >= 9 || worldObj.getWorldTime() >= lastCastTick + 200)) { ItemMold.Mold mold = this.getInstalledMold(); @@ -107,9 +108,9 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase water.setFill(water.getFill() - getWaterRequired() * moldsToCast); steam.setFill(steam.getFill() + getWaterRequired() * moldsToCast); - } - lastCastTick = worldObj.getWorldTime(); + lastCastTick = worldObj.getWorldTime(); + } networkPackNT(150); } @@ -117,7 +118,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase private int maxProcessable() { ItemMold.Mold mold = this.getInstalledMold(); - if (type == null || mold == null || mold.getOutput(type) != null) { + if (type == null || mold == null || mold.getOutput(type) == null) { return 0; } From 933ecded5d2b974d3f9eb66f46bb1ebf160a17be Mon Sep 17 00:00:00 2001 From: George Paton Date: Fri, 23 May 2025 13:16:08 +1000 Subject: [PATCH 082/181] send recipe JSON to all clients connecting to a server (does nothing in singleplayer, can be disabled via config) --- .../java/com/hbm/config/GeneralConfig.java | 3 + .../recipes/loader/SerializableRecipe.java | 143 ++++++++++-------- .../java/com/hbm/main/ModEventHandler.java | 40 ++++- .../java/com/hbm/packet/PacketDispatcher.java | 2 + .../toclient/SerializableRecipePacket.java | 76 ++++++++++ 5 files changed, 201 insertions(+), 63 deletions(-) create mode 100644 src/main/java/com/hbm/packet/toclient/SerializableRecipePacket.java diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index c21bd980d..ed0f1af67 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -38,6 +38,7 @@ public class GeneralConfig { public static boolean enableGuideBook = true; public static boolean enableSoundExtension = true; public static boolean enableMekanismChanges = true; + public static boolean enableServerRecipeSync = true; public static int normalSoundChannels = 200; public static boolean enableExpensiveMode = false; @@ -81,6 +82,8 @@ public class GeneralConfig { packetThreadingMaxCount = config.get(CATEGORY_GENERAL, "0.03_packetThreadingMaxCount", 1, "Maximum number of threads to create for packet threading. Must be greater than or equal to 0.02_packetThreadingCoreCount.").getInt(1); packetThreadingErrorBypass = config.get(CATEGORY_GENERAL, "0.04_packetThreadingErrorBypass", false, "Forces the bypassing of most packet threading errors, only enable this if directed to or if you know what you're doing.").getBoolean(false); + enableServerRecipeSync = config.get(CATEGORY_GENERAL, "0.05_enableServerRecipeSync", true, "Syncs any recipes customised via JSON to clients connecting to the server.").getBoolean(true); + enableDebugMode = config.get(CATEGORY_GENERAL, "1.00_enableDebugMode", false, "Enable debugging mode").getBoolean(false); enableMycelium = config.get(CATEGORY_GENERAL, "1.01_enableMyceliumSpread", false, "Allows glowing mycelium to spread").getBoolean(false); enablePlutoniumOre = config.get(CATEGORY_GENERAL, "1.02_enablePlutoniumNetherOre", false, "Enables plutonium ore generation in the nether").getBoolean(false); diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 753fb048f..8247bff1a 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -1,15 +1,12 @@ package com.hbm.inventory.recipes.loader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; +import java.io.*; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -35,17 +32,19 @@ import net.minecraft.item.ItemStack; //the anti-spaghetti. this class provides so much functionality and saves so much time, i just love you, SerializableRecipe <3 public abstract class SerializableRecipe { - + public static final Gson gson = new Gson(); - public static List recipeHandlers = new ArrayList(); - public static List additionalListeners = new ArrayList(); - + public static List recipeHandlers = new ArrayList<>(); + public static List additionalListeners = new ArrayList<>(); + + public static Map recipeSyncHandlers = new HashMap<>(); + public boolean modified = false; - + /* * INIT */ - + public static void registerAllHandlers() { recipeHandlers.add(new PressRecipes()); recipeHandlers.add(new BlastFurnaceRecipes()); @@ -82,67 +81,90 @@ public abstract class SerializableRecipe { //AFTER Assembler recipeHandlers.add(new AnvilRecipes()); recipeHandlers.add(new PedestalRecipes()); - + recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); //AFTER MatDistribution recipeHandlers.add(new ArcFurnaceRecipes()); } - + public static void initialize() { File recDir = new File(MainRegistry.configDir.getAbsolutePath() + File.separatorChar + "hbmRecipes"); - + if(!recDir.exists()) { if(!recDir.mkdir()) { throw new IllegalStateException("Unable to make recipe directory " + recDir.getAbsolutePath()); } } - + File info = new File(recDir.getAbsolutePath() + File.separatorChar + "REMOVE UNDERSCORE TO ENABLE RECIPE LOADING - RECIPES WILL RESET TO DEFAULT OTHERWISE"); try { info.createNewFile(); } catch(IOException e) { } - + MainRegistry.logger.info("Starting recipe init!"); - + for(SerializableRecipe recipe : recipeHandlers) { - + recipe.deleteRecipes(); - + File recFile = new File(recDir.getAbsolutePath() + File.separatorChar + recipe.getFileName()); - if(recFile.exists() && recFile.isFile()) { + if(recipeSyncHandlers.containsKey(recipe.getFileName())) { + MainRegistry.logger.info("Reading synced recipe file " + recipe.getFileName()); + InputStream stream = recipeSyncHandlers.get(recipe.getFileName()); + + try { + stream.reset(); + Reader reader = new InputStreamReader(stream); + recipe.readRecipeStream(reader); + recipe.modified = true; + } catch(IOException ex) { + MainRegistry.logger.error("Failed to reset synced recipe stream", ex); + } + } else if(recFile.exists() && recFile.isFile()) { MainRegistry.logger.info("Reading recipe file " + recFile.getName()); recipe.readRecipeFile(recFile); recipe.modified = true; } else { MainRegistry.logger.info("No recipe file found, registering defaults for " + recipe.getFileName()); recipe.registerDefaults(); - + for(IRecipeRegisterListener listener : additionalListeners) { listener.onRecipeLoad(recipe.getClass().getSimpleName()); } - + File recTemplate = new File(recDir.getAbsolutePath() + File.separatorChar + "_" + recipe.getFileName()); MainRegistry.logger.info("Writing template file " + recTemplate.getName()); recipe.writeTemplateFile(recTemplate); recipe.modified = false; } - + recipe.registerPost(); } - + MainRegistry.logger.info("Finished recipe init!"); } + public static void receiveRecipes(String filename, byte[] data) { + recipeSyncHandlers.put(filename, new ByteArrayInputStream(data)); + } + + public static void clearReceivedRecipes() { + boolean hasCleared = !recipeSyncHandlers.isEmpty(); + recipeSyncHandlers.clear(); + + if(hasCleared) initialize(); + } + /* * ABSTRACT */ - + /** The machine's (or process') name used for the recipe file */ public abstract String getFileName(); /** Return the list object holding all the recipes, usually an ArrayList or HashMap */ public abstract Object getRecipeObject(); /** Will use the supplied JsonElement (usually casts to JsonArray) from the over arching recipe array and adds the recipe to the recipe list object */ public abstract void readRecipe(JsonElement recipe); - /** Is given a single recipe from the recipe list object (a wrapper, Tuple, array, HashMap Entry, etc) and writes it to the current ongoing GSON stream + /** Is given a single recipe from the recipe list object (a wrapper, Tuple, array, HashMap Entry, etc) and writes it to the current ongoing GSON stream * @throws IOException */ public abstract void writeRecipe(Object recipe, JsonWriter writer) throws IOException; /** Registers the default recipes */ @@ -155,45 +177,45 @@ public abstract class SerializableRecipe { public String getComment() { return null; } - + /* * JSON R/W WRAPPERS */ - + public void writeTemplateFile(File template) { - + try { /* Get the recipe list object */ Object recipeObject = this.getRecipeObject(); List recipeList = new ArrayList(); - + /* Try to pry all recipes from our list */ if(recipeObject instanceof Collection) { recipeList.addAll((Collection) recipeObject); - + } else if(recipeObject instanceof HashMap) { recipeList.addAll(((HashMap) recipeObject).entrySet()); } - + if(recipeList.isEmpty()) throw new IllegalStateException("Error while writing recipes for " + this.getClass().getSimpleName() + ": Recipe list is either empty or in an unsupported format!"); - + JsonWriter writer = new JsonWriter(new FileWriter(template)); writer.setIndent(" "); //pretty formatting writer.beginObject(); //initial '{' - + if(this.getComment() != null) { writer.name("comment").value(this.getComment()); } - + writer.name("recipes").beginArray(); //all recipes are stored in an array called "recipes" - + for(Object recipe : recipeList) { writer.beginObject(); //begin object for a single recipe this.writeRecipe(recipe, writer); //serialize here writer.endObject(); //end recipe object } - + writer.endArray(); //end recipe array writer.endObject(); //final '}' writer.close(); @@ -201,22 +223,25 @@ public abstract class SerializableRecipe { ex.printStackTrace(); } } - + public void readRecipeFile(File file) { - try { - JsonObject json = gson.fromJson(new FileReader(file), JsonObject.class); - JsonArray recipes = json.get("recipes").getAsJsonArray(); - for(JsonElement recipe : recipes) { - this.readRecipe(recipe); - } + readRecipeStream(new FileReader(file)); } catch(FileNotFoundException ex) { } } - + + public void readRecipeStream(Reader reader) { + JsonObject json = gson.fromJson(reader, JsonObject.class); + JsonArray recipes = json.get("recipes").getAsJsonArray(); + for(JsonElement recipe : recipes) { + this.readRecipe(recipe); + } + } + /* * JSON IO UTIL */ - + public static AStack readAStack(JsonArray array) { try { String type = array.get(0).getAsString(); @@ -234,7 +259,7 @@ public abstract class SerializableRecipe { MainRegistry.logger.error("Error reading stack array " + array.toString()); return new ComparableStack(ModItems.nothing); } - + public static AStack[] readAStackArray(JsonArray array) { try { AStack[] items = new AStack[array.size()]; @@ -244,7 +269,7 @@ public abstract class SerializableRecipe { MainRegistry.logger.error("Error reading stack array " + array.toString()); return new AStack[0]; } - + public static void writeAStack(AStack astack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); @@ -264,7 +289,7 @@ public abstract class SerializableRecipe { writer.endArray(); writer.setIndent(" "); } - + public static ItemStack readItemStack(JsonArray array) { try { Item item = (Item) Item.itemRegistry.getObject(array.get(0).getAsString()); @@ -275,7 +300,7 @@ public abstract class SerializableRecipe { MainRegistry.logger.error("Error reading stack array " + array.toString() + " - defaulting to NOTHING item!"); return new ItemStack(ModItems.nothing); } - + public static Pair readItemStackChance(JsonArray array) { try { Item item = (Item) Item.itemRegistry.getObject(array.get(0).getAsString()); @@ -287,7 +312,7 @@ public abstract class SerializableRecipe { MainRegistry.logger.error("Error reading stack array " + array.toString() + " - defaulting to NOTHING item!"); return new Pair(new ItemStack(ModItems.nothing), 1F); } - + public static ItemStack[] readItemStackArray(JsonArray array) { try { ItemStack[] items = new ItemStack[array.size()]; @@ -297,7 +322,7 @@ public abstract class SerializableRecipe { MainRegistry.logger.error("Error reading stack array " + array.toString()); return new ItemStack[0]; } - + public static Pair[] readItemStackArrayChance(JsonArray array) { try { Pair[] items = new Pair[array.size()]; @@ -307,7 +332,7 @@ public abstract class SerializableRecipe { MainRegistry.logger.error("Error reading stack array " + array.toString()); return new Pair[0]; } - + public static void writeItemStack(ItemStack stack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); @@ -317,7 +342,7 @@ public abstract class SerializableRecipe { writer.endArray(); writer.setIndent(" "); } - + public static void writeItemStackChance(Pair stack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); @@ -328,7 +353,7 @@ public abstract class SerializableRecipe { writer.endArray(); writer.setIndent(" "); } - + public static FluidStack readFluidStack(JsonArray array) { try { FluidType type = Fluids.fromName(array.get(0).getAsString()); @@ -339,7 +364,7 @@ public abstract class SerializableRecipe { MainRegistry.logger.error("Error reading fluid array " + array.toString()); return new FluidStack(Fluids.NONE, 0); } - + public static FluidStack[] readFluidArray(JsonArray array) { try { FluidStack[] fluids = new FluidStack[array.size()]; @@ -349,7 +374,7 @@ public abstract class SerializableRecipe { MainRegistry.logger.error("Error reading fluid array " + array.toString()); return new FluidStack[0]; } - + public static void writeFluidStack(FluidStack stack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); @@ -359,12 +384,12 @@ public abstract class SerializableRecipe { writer.endArray(); writer.setIndent(" "); } - + public static boolean matchesIngredients(ItemStack[] inputs, AStack[] recipe) { List recipeList = new ArrayList(); for(AStack ingredient : recipe) recipeList.add(ingredient); - + for(int i = 0; i < inputs.length; i++) { ItemStack inputStack = inputs[i]; diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 2d27eadb8..d587ebe4b 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -11,7 +11,6 @@ import com.hbm.config.RadiationConfig; import com.hbm.config.ServerConfig; import com.hbm.entity.mob.*; import com.hbm.entity.mob.ai.EntityAIFireGun; -import com.hbm.entity.mob.EntityCreeperTainted; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.entity.projectile.EntityBurningFOEQ; import com.hbm.entity.train.EntityRailCarBase; @@ -24,6 +23,7 @@ import com.hbm.handler.EntityEffectHandler; import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IBomb; import com.hbm.interfaces.Spaghetti; +import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.handler.neutron.NeutronNodeWorld; @@ -43,6 +43,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.PermaSyncPacket; import com.hbm.packet.toclient.PlayerInformPacket; +import com.hbm.packet.toclient.SerializableRecipePacket; import com.hbm.particle.helper.BlackPowderCreator; import com.hbm.potion.HbmPotion; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; @@ -53,6 +54,8 @@ import com.hbm.uninos.UniNodespace; import com.hbm.util.*; import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.world.generator.TimedGenerator; + +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; @@ -60,7 +63,9 @@ import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; +import cpw.mods.fml.common.network.FMLNetworkEvent.ClientDisconnectionFromServerEvent; import cpw.mods.fml.relauncher.ReflectionHelper; +import cpw.mods.fml.relauncher.Side; import io.netty.buffer.ByteBuf; import io.netty.buffer.PooledByteBufAllocator; import net.minecraft.block.Block; @@ -113,6 +118,7 @@ import net.minecraftforge.event.world.WorldEvent; import org.apache.commons.lang3.math.NumberUtils; import org.apache.logging.log4j.Level; +import java.io.File; import java.lang.reflect.Field; import java.util.*; @@ -158,9 +164,35 @@ public class ModEventHandler { props.hasReceivedBook = true; } } + + if(GeneralConfig.enableServerRecipeSync && FMLCommonHandler.instance().getSide() == Side.SERVER && event.player instanceof EntityPlayerMP) { + File recDir = new File(MainRegistry.configDir.getAbsolutePath() + File.separatorChar + "hbmRecipes"); + + MainRegistry.logger.info("Sending recipes to client!"); + + boolean hasSent = false; + + for(SerializableRecipe recipe : SerializableRecipe.recipeHandlers) { + File recFile = new File(recDir.getAbsolutePath() + File.separatorChar + recipe.getFileName()); + if(recFile.exists() && recFile.isFile()) { + MainRegistry.logger.info("Sending recipe file: " + recFile.getName()); + PacketDispatcher.wrapper.sendTo(new SerializableRecipePacket(recFile), (EntityPlayerMP) event.player); + hasSent = true; + } + } + + if(hasSent) { + PacketDispatcher.wrapper.sendTo(new SerializableRecipePacket(true), (EntityPlayerMP) event.player); + } + } } } + @SubscribeEvent + public void onPlayerLeftClient(ClientDisconnectionFromServerEvent event) { + SerializableRecipe.clearReceivedRecipes(); + } + @SubscribeEvent public void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event) { @@ -657,13 +689,13 @@ public class ModEventHandler { if(event.phase == Phase.END) { int tickrate = Math.max(1, ServerConfig.ITEM_HAZARD_DROP_TICKRATE.get()); - + if(event.world.getTotalWorldTime() % tickrate == 0) { List loadedEntityList = new ArrayList(); loadedEntityList.addAll(event.world.loadedEntityList); // ConcurrentModificationException my balls - + for(Object e : loadedEntityList) { - + if(e instanceof EntityItem) { EntityItem item = (EntityItem) e; HazardSystem.updateDroppedItem(item); diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index b749cfdd3..6d82b2b28 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -69,6 +69,8 @@ public class PacketDispatcher { wrapper.registerMessage(BiomeSyncPacket.Handler.class, BiomeSyncPacket.class, i++, Side.CLIENT); //The not-so-convenient but not laggy one wrapper.registerMessage(BufPacket.Handler.class, BufPacket.class, i++, Side.CLIENT); + //Syncs server recipe configs to the client + wrapper.registerMessage(SerializableRecipePacket.Handler.class, SerializableRecipePacket.class, i++, Side.CLIENT); } } diff --git a/src/main/java/com/hbm/packet/toclient/SerializableRecipePacket.java b/src/main/java/com/hbm/packet/toclient/SerializableRecipePacket.java new file mode 100644 index 000000000..7992d9163 --- /dev/null +++ b/src/main/java/com/hbm/packet/toclient/SerializableRecipePacket.java @@ -0,0 +1,76 @@ +package com.hbm.packet.toclient; + +import java.io.*; +import java.nio.file.Files; + +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.util.BufferUtil; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; + +public class SerializableRecipePacket implements IMessage { + + private String filename; + private byte[] fileBytes; + + private boolean reinit; + + public SerializableRecipePacket() {} + + public SerializableRecipePacket(File recipeFile) { + try { + filename = recipeFile.getName(); + fileBytes = Files.readAllBytes(recipeFile.toPath()); + } catch(IOException ex) {} + } + + public SerializableRecipePacket(boolean reinit) { + this.reinit = reinit; + } + + @Override + public void fromBytes(ByteBuf buf) { + reinit = buf.readBoolean(); + if(reinit) return; + + filename = BufferUtil.readString(buf); + fileBytes = new byte[buf.readInt()]; + buf.readBytes(fileBytes); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeBoolean(reinit); + if(reinit) return; + + BufferUtil.writeString(buf, filename); + buf.writeInt(fileBytes.length); + buf.writeBytes(fileBytes); + } + + public static class Handler implements IMessageHandler { + + @Override + @SideOnly(Side.CLIENT) + public IMessage onMessage(SerializableRecipePacket m, MessageContext ctx) { + try { + + // Only reinitialize after receiving all recipes + if(m.reinit) { + SerializableRecipe.initialize(); + return null; + } + + SerializableRecipe.receiveRecipes(m.filename, m.fileBytes); + + } catch (Exception x) { } + return null; + } + } + +} From ed59ba69f366ea47af15759bc43b07a1b6e35d76 Mon Sep 17 00:00:00 2001 From: Justnightheron Date: Fri, 23 May 2025 16:45:24 +0800 Subject: [PATCH 083/181] =?UTF-8?q?AUV=E6=82=A8=E5=90=89=E7=A5=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/assets/hbm/lang/zh_CN.lang | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 64eea3277..e7727585b 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -4895,7 +4895,7 @@ tile.crane_partitioner.desc=接å—并存储至多9ç§è¾“入矿物酸化器的物 tile.crane_router.name=输é€å¸¦åˆ†æ‹£æœº tile.crane_router.desc=æ ¹æ®å®šä¹‰çš„æ¡ä»¶å¯¹é¡¹ç›®æŽ’åº$ä¾§é¢å¯ä»¥å®šä¹‰ä¸ºé»‘åå•ã€ç™½å啿ˆ–通é…符$åªæœ‰åœ¨æ²¡æœ‰å…¶ä»–筛选器匹é…的情况下æ‰é€‰æ‹©é€šé…ç¬¦ä¾§é¢ tile.crane_splitter.name=输é€å¸¦åˆ†ç¦»å™¨ -tile.crane_splitter.desc=将物å“分开并å‡åŒ€å †æ”¾åœ¨ä¸¤æ¡ä¼ é€å¸¦ä¸Š$其本身就是一æ¡ä¼ é€å¸¦ï¼Œå› æ­¤å®ƒå¯ä»¥ç›´æŽ¥è¾“入到æ’入器或分拣器中 +tile.crane_splitter.desc=将物å“分开并å‡åŒ€å †æ”¾åœ¨ä¸¤æ¡ä¼ é€å¸¦ä¸Š$其本身就是一æ¡ä¼ é€å¸¦ï¼Œå› æ­¤å®ƒå¯ä»¥ç›´æŽ¥è¾“入到æ’入器或分拣器中$Ratio也å¯ä»¥ç”¨èžºä¸åˆ€é…置。 tile.crane_unboxer.name=输é€å¸¦è§£åŒ…机 tile.crane_unboxer.desc=接收打包好的物å“并解包$用螺ä¸åˆ€å³é”®å•击以设置输出侧$手æŒèžºä¸åˆ€æŒ‰ä½Shiftå•击以设置输入侧$å•击两次以设置相åä¾§ tile.crashed_bomb.name=å“‘å¼¹ @@ -6068,3 +6068,7 @@ tile.wood_structure.scaffold.name=木质脚手架 item.gun_amat.name=åå™¨ææ­¥æžª tile.fluid_pump.name=æµé‡æŽ§åˆ¶æ³µ tile.vine_phosphor.large.name=磷藤蔓 +item.ammo_secret.bmg50_black.name=.50BMGæ—é“è€…å¼¹è¯ +item.ammo_standard.bmg50_sm.name=.50BMGå­å¼¹ï¼ˆæ˜Ÿè¾‰ï¼‰ +item.gun_amat_penance.name=å¿æ‚” +item.gun_amat_subtlety.name=æ˜Žæ• From ea430afe71c5bcd6d94aa2214bb6d6d492a7b50b Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Fri, 23 May 2025 19:40:45 +0800 Subject: [PATCH 084/181] Fix: Make crate look normal --- .../ExplosionNukeRayParallelized.java | 137 +++++++++++------- 1 file changed, 86 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index 2c8eb6761..81e28cb63 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -86,7 +86,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } private static float getNukeResistance(Block b) { - // if (b.getMaterial().isLiquid()) return 0.1F; + if (b.getMaterial().isLiquid()) return 0.1F; if (b == Blocks.sandstone) return Blocks.stone.getExplosionResistance(null); if (b == Blocks.obsidian) return Blocks.stone.getExplosionResistance(null) * 3; return b.getExplosionResistance(null); @@ -128,7 +128,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { Chunk chunk = world.getChunkFromChunkCoords(cp.chunkXPos, cp.chunkZPos); ExtendedBlockStorage[] storages = chunk.getBlockStorageArray(); - boolean ChunkModified = false; + boolean chunkModified = false; for (int subY = 0; subY < storages.length; subY++) { ExtendedBlockStorage storage = storages[subY]; @@ -157,7 +157,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { int zLocal = zGlobal & 0xF; storage.func_150818_a(xLocal, yLocal, zLocal, Blocks.air); storage.setExtBlockMetadata(xLocal, yLocal, zLocal, 0); - ChunkModified = true; + chunkModified = true; world.notifyBlocksOfNeighborChange(xGlobal, yGlobal, zGlobal, Blocks.air); world.markBlockForUpdate(xGlobal, yGlobal, zGlobal); @@ -170,7 +170,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } } - if (ChunkModified) { + if (chunkModified) { chunk.setChunkModified(); world.markBlockRangeForRenderUpdate(cp.chunkXPos << 4, 0, cp.chunkZPos << 4, (cp.chunkXPos << 4) | 15, WORLD_HEIGHT - 1, (cp.chunkZPos << 4) | 15); } @@ -387,7 +387,6 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } } } - private class RayTask { final int dirIndex; double px, py, pz; @@ -396,40 +395,51 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { double tMaxX, tMaxY, tMaxZ, tDeltaX, tDeltaY, tDeltaZ; int stepX, stepY, stepZ; boolean initialised = false; + double currentRayPosition; + + private static final double RAY_DIRECTION_EPSILON = 1e-6; + private static final double PROCESSING_EPSILON = 1e-9; + private static final float MIN_EFFECTIVE_DIST_FOR_ENERGY_CALC = 0.01f; RayTask(int dirIdx) { this.dirIndex = dirIdx; } void init() { - Vec3 dir = directions.get(dirIndex); - px = explosionX; - py = explosionY; - pz = explosionZ; - x = originX; - y = originY; - z = originZ; - energy = strength; + Vec3 dir = directions.get(this.dirIndex); + this.px = explosionX; + this.py = explosionY; + this.pz = explosionZ; + this.x = originX; + this.y = originY; + this.z = originZ; + // This scales the crate. higher = bigger crate. Adjust if the radius of the crate deviates from expected. + this.energy = strength * 0.3F; + this.currentRayPosition = 0.0; + double dirX = dir.xCoord; + double dirY = dir.yCoord; + double dirZ = dir.zCoord; - final double EPS = 1e-6; - double ax = Math.abs(dir.xCoord); - stepX = ax < EPS ? 0 : (dir.xCoord > 0 ? 1 : -1); - double invDx = stepX == 0 ? Double.POSITIVE_INFINITY : 1.0 / ax; - double ay = Math.abs(dir.yCoord); - stepY = ay < EPS ? 0 : (dir.yCoord > 0 ? 1 : -1); - double invDy = stepY == 0 ? Double.POSITIVE_INFINITY : 1.0 / ay; - double az = Math.abs(dir.zCoord); - stepZ = az < EPS ? 0 : (dir.zCoord > 0 ? 1 : -1); - double invDz = stepZ == 0 ? Double.POSITIVE_INFINITY : 1.0 / az; + double absDirX = Math.abs(dirX); + this.stepX = (absDirX < RAY_DIRECTION_EPSILON) ? 0 : (dirX > 0 ? 1 : -1); + this.tDeltaX = (stepX == 0) ? Double.POSITIVE_INFINITY : 1.0 / absDirX; + this.tMaxX = (stepX == 0) ? Double.POSITIVE_INFINITY : + ((stepX > 0 ? (this.x + 1 - this.px) : (this.px - this.x)) * this.tDeltaX); - tDeltaX = invDx; - tDeltaY = invDy; - tDeltaZ = invDz; - tMaxX = stepX == 0 ? Double.POSITIVE_INFINITY : ((stepX > 0 ? (x + 1 - px) : (px - x)) * invDx); - tMaxY = stepY == 0 ? Double.POSITIVE_INFINITY : ((stepY > 0 ? (y + 1 - py) : (py - y)) * invDy); - tMaxZ = stepZ == 0 ? Double.POSITIVE_INFINITY : ((stepZ > 0 ? (z + 1 - pz) : (pz - z)) * invDz); - initialised = true; + double absDirY = Math.abs(dirY); + this.stepY = (absDirY < RAY_DIRECTION_EPSILON) ? 0 : (dirY > 0 ? 1 : -1); + this.tDeltaY = (stepY == 0) ? Double.POSITIVE_INFINITY : 1.0 / absDirY; + this.tMaxY = (stepY == 0) ? Double.POSITIVE_INFINITY : + ((stepY > 0 ? (this.y + 1 - this.py) : (this.py - this.y)) * this.tDeltaY); + + double absDirZ = Math.abs(dirZ); + this.stepZ = (absDirZ < RAY_DIRECTION_EPSILON) ? 0 : (dirZ > 0 ? 1 : -1); + this.tDeltaZ = (stepZ == 0) ? Double.POSITIVE_INFINITY : 1.0 / absDirZ; + this.tMaxZ = (stepZ == 0) ? Double.POSITIVE_INFINITY : + ((stepZ > 0 ? (this.z + 1 - this.pz) : (this.pz - this.z)) * this.tDeltaZ); + + this.initialised = true; } void trace() { @@ -440,15 +450,8 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } while (energy > 0) { - if (y < 0 || y >= WORLD_HEIGHT) { - break; - } - double dxBlock = x + 0.5 - explosionX; - double dyBlock = y + 0.5 - explosionY; - double dzBlock = z + 0.5 - explosionZ; - if (dxBlock * dxBlock + dyBlock * dyBlock + dzBlock * dzBlock > radius * radius) { - break; - } + if (y < 0 || y >= WORLD_HEIGHT) break; + if (currentRayPosition >= radius - PROCESSING_EPSILON) break; ChunkKey ck = new ChunkKey(x >> 4, z >> 4, y >> 4); SubChunkSnapshot snap = snapshots.get(ck); @@ -458,21 +461,40 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { rayQueue.offer(this); return; } - if (snap != SubChunkSnapshot.EMPTY) { - Block block = snap.getBlock(x & 15, y & 15, z & 15); + double t_exit_voxel = Math.min(tMaxX, Math.min(tMaxY, tMaxZ)); + double segmentLenInVoxel = t_exit_voxel - this.currentRayPosition; + double segmentLenForProcessing; + boolean stopAfterThisSegment = false; + + if (this.currentRayPosition + segmentLenInVoxel > radius - PROCESSING_EPSILON) { + segmentLenForProcessing = Math.max(0.0, radius - this.currentRayPosition); + stopAfterThisSegment = true; + } else { + segmentLenForProcessing = segmentLenInVoxel; + } + + if (snap != SubChunkSnapshot.EMPTY && segmentLenForProcessing > PROCESSING_EPSILON) { + Block block = snap.getBlock(x & 0xF, y & 0xF, z & 0xF); if (block != Blocks.air) { - float res = getNukeResistance(block); - float resistanceCutoff = 2_000_000F; - if (res >= resistanceCutoff) break; - double distToBlock = Math.sqrt(dxBlock * dxBlock + dyBlock * dyBlock + dzBlock * dzBlock); - double effectiveDist = Math.max(distToBlock, 0.01); - energy -= (float) (Math.pow(res + 1.0, 3.0 * (effectiveDist / radius)) - 1.0); - if (energy > 0) { - ConcurrentBitSet bs = destructionMap.computeIfAbsent(ck.pos, posKey -> new ConcurrentBitSet()); - bs.set(((255 - y) << 8) | ((x & 15) << 4) | (z & 15)); - } else break; + float resistance = getNukeResistance(block); + if (resistance >= 2_000_000F) { // cutoff + energy = 0; + } else { + double energyLossFactor = getEnergyLossFactor(resistance); + energy -= (float) (energyLossFactor * segmentLenForProcessing); + if (energy > 0) { + ConcurrentBitSet bs = destructionMap.computeIfAbsent( + ck.pos, + posKey -> new ConcurrentBitSet() + ); + int bitIndex = ((WORLD_HEIGHT - 1 - y) << 8) | ((x & 0xF) << 4) | (z & 0xF); + bs.set(bitIndex); + } + } } } + this.currentRayPosition = t_exit_voxel; + if (energy <= 0 || stopAfterThisSegment || this.currentRayPosition >= radius - PROCESSING_EPSILON) break; if (tMaxX < tMaxY) { if (tMaxX < tMaxZ) { @@ -494,5 +516,18 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } latch.countDown(); } + + private double getEnergyLossFactor(float resistance) { + double dxBlockToCenter = (this.x + 0.5) - explosionX; + double dyBlockToCenter = (this.y + 0.5) - explosionY; + double dzBlockToCenter = (this.z + 0.5) - explosionZ; + double distToBlockCenterSq = dxBlockToCenter * dxBlockToCenter + + dyBlockToCenter * dyBlockToCenter + + dzBlockToCenter * dzBlockToCenter; + double distToBlockCenter = Math.sqrt(distToBlockCenterSq); + + double effectiveDist = Math.max(distToBlockCenter, MIN_EFFECTIVE_DIST_FOR_ENERGY_CALC); + return (Math.pow(resistance + 1.0, 3.0 * (effectiveDist / radius)) - 1.0); + } } } From 148ba197210e4e04062dccc05a35c2145c48fa10 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 23 May 2025 13:40:48 +0200 Subject: [PATCH 085/181] deploy surface-to-yellow-one missile --- changelog | 7 +- .../hbm/handler/BulletConfigSyncingUtil.java | 8 - .../com/hbm/handler/BulletConfiguration.java | 11 +- .../com/hbm/handler/GunConfiguration.java | 10 +- .../handler/ability/AvailableAbilities.java | 174 +++--- .../com/hbm/handler/ability/IBaseAbility.java | 44 +- .../hbm/handler/ability/IToolAreaAbility.java | 452 +++++++-------- .../handler/ability/IToolHarvestAbility.java | 540 ++++++++--------- .../hbm/handler/ability/IWeaponAbility.java | 547 +++++++++--------- .../com/hbm/handler/ability/ToolPreset.java | 147 ++--- .../handler/guncfg/BulletConfigFactory.java | 258 --------- .../hbm/handler/guncfg/GunCannonFactory.java | 96 --- .../hbm/handler/guncfg/GunEnergyFactory.java | 306 ---------- src/main/java/com/hbm/items/ModItems.java | 6 +- .../sedna/factory/GunFactoryClient.java | 1 + .../weapon/sedna/factory/Orchestras.java | 11 + .../weapon/sedna/factory/XFactoryTool.java | 166 ++++++ .../com/hbm/main/ModEventHandlerClient.java | 21 - .../render/item/weapon/ItemRenderFireExt.java | 20 +- .../machine/TileEntityMachineArcWelder.java | 2 +- .../TileEntityMachineSolderingStation.java | 2 +- .../TileEntityMachineStrandCaster.java | 1 - 22 files changed, 1148 insertions(+), 1682 deletions(-) delete mode 100644 src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java diff --git a/changelog b/changelog index 3520d9bca..b730d65b1 100644 --- a/changelog +++ b/changelog @@ -6,5 +6,10 @@ * Area and block abilities can now be toggled independently from each other. For example, the vein miner ability can be combined with silk touch * Clicking on the same ability allows switching between levels * Updated textures for the armor and gun modification tables +* Ported the fire extinguisher to the SEDNA gun system, eliminating the final remaining ItemGunBase gun +* Water extinguishers can now wash away foam blocks -## Fixed \ No newline at end of file +## Fixed +* Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts +* Fixed strand caster fluid gauges going out of bounds +* Fixed arc welder and soldering station not changing buffer size based on upgrade, preventing use of higher overdrive tiers \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 8864f159a..3deab1d17 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -13,10 +13,6 @@ public class BulletConfigSyncingUtil { public static int TEST_CONFIG = i++; - public static int FEXT_NORMAL = i++; - public static int FEXT_FOAM = i++; - public static int FEXT_SAND = i++; - public static int TURBINE = i++; public static int MASKMAN_BULLET = i++; @@ -33,10 +29,6 @@ public class BulletConfigSyncingUtil { public static void loadConfigsForSync() { - configSet.put(FEXT_NORMAL, GunEnergyFactory.getFextConfig()); - configSet.put(FEXT_FOAM, GunEnergyFactory.getFextFoamConfig()); - configSet.put(FEXT_SAND, GunEnergyFactory.getFextSandConfig()); - configSet.put(TURBINE, GunEnergyFactory.getTurbineConfig()); configSet.put(MASKMAN_BULLET, GunNPCFactory.getMaskmanBullet()); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index aa1d73ca5..c2b269b27 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -17,6 +17,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.util.EnumChatFormatting; +@Deprecated public class BulletConfiguration implements Cloneable { //what item this specific configuration consumes @@ -130,15 +131,12 @@ public class BulletConfiguration implements Cloneable { public static final int STYLE_FOLLY = 5; public static final int STYLE_ROCKET = 6; public static final int STYLE_STINGER = 7; - public static final int STYLE_NUKE = 8; - public static final int STYLE_MIRV = 9; public static final int STYLE_GRENADE = 10; public static final int STYLE_BF = 11; public static final int STYLE_ORB = 12; public static final int STYLE_METEOR = 13; public static final int STYLE_APDS = 14; public static final int STYLE_BLADE = 15; - public static final int STYLE_BARREL = 16; public static final int STYLE_TAU = 17; public static final int STYLE_LEADBURSTER = 18; @@ -174,13 +172,6 @@ public class BulletConfiguration implements Cloneable { return this; } - public BulletConfiguration setToGuided() { - - this.bntUpdate = BulletConfigFactory.getLaserSteering(); - this.doesRicochet = false; - return this; - } - public BulletConfiguration getChlorophyte() { this.bntUpdate = BulletConfigFactory.getHomingBehavior(30, 180); this.bntHurt = BulletConfigFactory.getPenHomingBehavior(); diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 974322d00..9cce19944 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -12,6 +12,7 @@ import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.util.ResourceLocation; +@Deprecated public class GunConfiguration implements Cloneable { /** @@ -46,10 +47,6 @@ public class GunConfiguration implements Cloneable { public boolean isCentered; //texture overlay when sneaking public ResourceLocation scopeTexture; - //whether the FOV multiplier should be absolute or multiplicative to other modifiers, multiplicative mode is experimental! - public boolean absoluteFOV = true; - //the target FOV/multiplied FOV modifier when sneaking - public float zoomFOV = 0.0F; //duration of every animation cycle, used also for how quickly a burst fire rifle can fire public int firingDuration; @@ -122,10 +119,5 @@ public class GunConfiguration implements Cloneable { public static final String RSOUND_GRENADE = "hbm:weapon.hkReload"; public static final String RSOUND_GRENADE_NEW = "hbm:weapon.glReload"; public static final String RSOUND_FATMAN = "hbm:weapon.fatmanReload"; - - public GunConfiguration silenced() { - this.firingSound = "hbm:weapon.silencerShoot"; - return this; - } } diff --git a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java index 6e05b5a30..2949c42d5 100644 --- a/src/main/java/com/hbm/handler/ability/AvailableAbilities.java +++ b/src/main/java/com/hbm/handler/ability/AvailableAbilities.java @@ -7,7 +7,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import com.google.common.base.Functions; import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; @@ -16,118 +15,109 @@ import net.minecraft.util.EnumChatFormatting; // All abilities available on a given tool public class AvailableAbilities { - // Insertion order matters - private HashMap abilities = new HashMap(); + // Insertion order matters + private HashMap abilities = new HashMap(); - public AvailableAbilities() {} + public AvailableAbilities() { } - public AvailableAbilities addAbility(IBaseAbility ability, int level) { - if (level < 0 || level >= ability.levels()) { - MainRegistry.logger.warn("Illegal level " + level + " for ability " + ability.getName()); - level = ability.levels() - 1; - } + public AvailableAbilities addAbility(IBaseAbility ability, int level) { + if(level < 0 || level >= ability.levels()) { + MainRegistry.logger.warn("Illegal level " + level + " for ability " + ability.getName()); + level = ability.levels() - 1; + } - if (abilities.containsKey(ability)) { - MainRegistry.logger.warn("Ability " + ability.getName() + " already had level " + abilities.get(ability) + ", overwriting with level " + level); - } + if(abilities.containsKey(ability)) { + MainRegistry.logger.warn("Ability " + ability.getName() + " already had level " + abilities.get(ability) + ", overwriting with level " + level); + } - if (ability.isAllowed()) { - abilities.put(ability, level); - } + if(ability.isAllowed()) { + abilities.put(ability, level); + } - return this; - } + return this; + } - public AvailableAbilities addToolAbilities() { - addAbility(IToolAreaAbility.NONE, 0); - addAbility(IToolHarvestAbility.NONE, 0); - return this; - } + public AvailableAbilities addToolAbilities() { + addAbility(IToolAreaAbility.NONE, 0); + addAbility(IToolHarvestAbility.NONE, 0); + return this; + } - public AvailableAbilities removeAbility(IBaseAbility ability) { - abilities.remove(ability); - return this; - } + public AvailableAbilities removeAbility(IBaseAbility ability) { + abilities.remove(ability); + return this; + } - public boolean supportsAbility(IBaseAbility ability) { - return abilities.containsKey(ability); - } + public boolean supportsAbility(IBaseAbility ability) { + return abilities.containsKey(ability); + } - public int maxLevel(IBaseAbility ability) { - return abilities.getOrDefault(ability, -1); - } + public int maxLevel(IBaseAbility ability) { + return abilities.getOrDefault(ability, -1); + } - public Map get() { - return Collections.unmodifiableMap(abilities); - } + public Map get() { + return Collections.unmodifiableMap(abilities); + } - public Map getWeaponAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IWeaponAbility).collect(Collectors.toMap(a -> (IWeaponAbility)a, a -> abilities.get(a))); - } + public Map getWeaponAbilities() { + return abilities.keySet().stream().filter(a -> a instanceof IWeaponAbility).collect(Collectors.toMap(a -> (IWeaponAbility) a, a -> abilities.get(a))); + } - public Map getToolAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility || a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> a, a -> abilities.get(a))); - } + public Map getToolAbilities() { + return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility || a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> a, a -> abilities.get(a))); + } - public Map getToolAreaAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility).collect(Collectors.toMap(a -> (IToolAreaAbility)a, a -> abilities.get(a))); - } + public Map getToolAreaAbilities() { + return abilities.keySet().stream().filter(a -> a instanceof IToolAreaAbility).collect(Collectors.toMap(a -> (IToolAreaAbility) a, a -> abilities.get(a))); + } - public Map getToolHarvestAbilities() { - return abilities.keySet().stream().filter(a -> a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> (IToolHarvestAbility)a, a -> abilities.get(a))); - } + public Map getToolHarvestAbilities() { + return abilities.keySet().stream().filter(a -> a instanceof IToolHarvestAbility).collect(Collectors.toMap(a -> (IToolHarvestAbility) a, a -> abilities.get(a))); + } - public int size() { - return abilities.size(); - } + public int size() { + return abilities.size(); + } - public boolean isEmpty() { - return abilities.isEmpty(); - } + public boolean isEmpty() { + return abilities.isEmpty(); + } - @SideOnly(Side.CLIENT) - public void addInformation(List list) { - List> toolAbilities = abilities.entrySet().stream().filter(entry -> - (entry.getKey() instanceof IToolAreaAbility && entry.getKey() != IToolAreaAbility.NONE) || - (entry.getKey() instanceof IToolHarvestAbility && entry.getKey() != IToolHarvestAbility.NONE) - ).sorted( - Comparator - .comparing(Map.Entry::getKey) - .thenComparing(Map.Entry::getValue) - ).collect(Collectors.toList()); - - if (!toolAbilities.isEmpty()) { - list.add("Abilities: "); + @SideOnly(Side.CLIENT) + public void addInformation(List list) { + List> toolAbilities = abilities.entrySet().stream() + .filter(entry -> (entry.getKey() instanceof IToolAreaAbility && entry.getKey() != IToolAreaAbility.NONE) + || (entry.getKey() instanceof IToolHarvestAbility && entry.getKey() != IToolHarvestAbility.NONE)) + .sorted(Comparator.comparing(Map.Entry::getKey).thenComparing(Map.Entry::getValue)).collect(Collectors.toList()); - toolAbilities.forEach(entry -> { - IBaseAbility ability = entry.getKey(); - int level = entry.getValue(); - - list.add(" " + EnumChatFormatting.GOLD + ability.getFullName(level)); - }); + if(!toolAbilities.isEmpty()) { + list.add("Abilities: "); + + toolAbilities.forEach(entry -> { + IBaseAbility ability = entry.getKey(); + int level = entry.getValue(); + + list.add(" " + EnumChatFormatting.GOLD + ability.getFullName(level)); + }); list.add("Right click to cycle through presets!"); list.add("Sneak-click to go to first preset!"); list.add("Alt-click to open customization GUI!"); - } - - List> weaponAbilities = abilities.entrySet().stream().filter(entry -> - (entry.getKey() instanceof IWeaponAbility && entry.getKey() != IWeaponAbility.NONE) - ).sorted( - Comparator - .comparing(Map.Entry::getKey) - .thenComparing(Map.Entry::getValue) - ).collect(Collectors.toList()); - - if (!weaponAbilities.isEmpty()) { - list.add("Weapon modifiers: "); - - weaponAbilities.forEach(entry -> { - IBaseAbility ability = entry.getKey(); - int level = entry.getValue(); + } - list.add(" " + EnumChatFormatting.RED + ability.getFullName(level)); - }); - } - } + List> weaponAbilities = abilities.entrySet().stream().filter(entry -> (entry.getKey() instanceof IWeaponAbility && entry.getKey() != IWeaponAbility.NONE)) + .sorted(Comparator.comparing(Map.Entry::getKey).thenComparing(Map.Entry::getValue)).collect(Collectors.toList()); + + if(!weaponAbilities.isEmpty()) { + list.add("Weapon modifiers: "); + + weaponAbilities.forEach(entry -> { + IBaseAbility ability = entry.getKey(); + int level = entry.getValue(); + + list.add(" " + EnumChatFormatting.RED + ability.getFullName(level)); + }); + } + } } diff --git a/src/main/java/com/hbm/handler/ability/IBaseAbility.java b/src/main/java/com/hbm/handler/ability/IBaseAbility.java index 9999bcaa0..b8318cc94 100644 --- a/src/main/java/com/hbm/handler/ability/IBaseAbility.java +++ b/src/main/java/com/hbm/handler/ability/IBaseAbility.java @@ -3,34 +3,34 @@ package com.hbm.handler.ability; import net.minecraft.client.resources.I18n; public interface IBaseAbility extends Comparable { - public String getName(); + public String getName(); public default String getExtension(int level) { - return ""; - } + return ""; + } public default String getFullName(int level) { - return I18n.format(getName()) + getExtension(level); - } + return I18n.format(getName()) + getExtension(level); + } - public default boolean isAllowed() { - return true; - } + public default boolean isAllowed() { + return true; + } - // 1 means no support for levels (i.e. the level is always 0). - // The UI only supports levels() between 1 and 10 (inclusive). - // All calls accepting an `int level` parameters must be done - // with a level between 0 and levels()-1 (inclusive). - default int levels() { - return 1; - } + // 1 means no support for levels (i.e. the level is always 0). + // The UI only supports levels() between 1 and 10 (inclusive). + // All calls accepting an `int level` parameters must be done + // with a level between 0 and levels()-1 (inclusive). + default int levels() { + return 1; + } - default int sortOrder() { - return hashCode(); - } + default int sortOrder() { + return hashCode(); + } - @Override - default int compareTo(IBaseAbility o) { - return sortOrder() - o.sortOrder(); - } + @Override + default int compareTo(IBaseAbility o) { + return sortOrder() - o.sortOrder(); + } } diff --git a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java index 9929cd303..1d0bcf02b 100644 --- a/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolAreaAbility.java @@ -10,274 +10,274 @@ import com.hbm.config.ToolConfig; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.handler.ThreeInts; -import com.hbm.inventory.OreDictManager; import com.hbm.items.tool.ItemToolAbility; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; public interface IToolAreaAbility extends IBaseAbility { - // Should call tool.breakExtraBlock on a bunch of blocks. - // The initial block is implicitly broken, so don't call breakExtraBlock on it. - // Returning true skips the reference block from being broken - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool); - - // Whether breakExtraBlock is called at all. Currently only false for explosion - public default boolean allowsHarvest(int level) { - return true; - } + // Should call tool.breakExtraBlock on a bunch of blocks. + // The initial block is implicitly broken, so don't call breakExtraBlock on it. + // Returning true skips the reference block from being broken + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool); - public final static int SORT_ORDER_BASE = 0; + // Whether breakExtraBlock is called at all. Currently only false for explosion + public default boolean allowsHarvest(int level) { + return true; + } - // region handlers - public static final IToolAreaAbility NONE = new IToolAreaAbility() { - @Override - public String getName() { - return ""; - } + public final static int SORT_ORDER_BASE = 0; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 0; - } - - @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { - return false; - } - }; + // region handlers + public static final IToolAreaAbility NONE = new IToolAreaAbility() { + @Override + public String getName() { + return ""; + } - public static final IToolAreaAbility RECURSION = new IToolAreaAbility() { - @Override - public String getName() { - return "tool.ability.recursion"; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 0; + } - @Override - public boolean isAllowed() { - return ToolConfig.abilityVein; - } + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + return false; + } + }; - public final int[] radiusAtLevel = {3, 4, 5, 6, 7, 9, 10}; + public static final IToolAreaAbility RECURSION = new IToolAreaAbility() { + @Override + public String getName() { + return "tool.ability.recursion"; + } - @Override - public int levels() { - return radiusAtLevel.length; - } + @Override + public boolean isAllowed() { + return ToolConfig.abilityVein; + } - @Override - public String getExtension(int level) { - return " (" + radiusAtLevel[level] + ")"; - } + public final int[] radiusAtLevel = { 3, 4, 5, 6, 7, 9, 10 }; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 1; - } + @Override + public int levels() { + return radiusAtLevel.length; + } - // Note: if reusing it across different instatces of a tool - // is a problem here, then it had already been one before - // the refactor! The solution is to simply make this a local - // of the onDig method and pass it around as a parameter. - private Set pos = new HashSet<>(); + @Override + public String getExtension(int level) { + return " (" + radiusAtLevel[level] + ")"; + } - @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { - Block b = world.getBlock(x, y, z); - - if(b == Blocks.stone && !ToolConfig.recursiveStone) { - return false; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 1; + } - if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) { - return false; - } - - pos.clear(); + // Note: if reusing it across different instatces of a tool + // is a problem here, then it had already been one before + // the refactor! The solution is to simply make this a local + // of the onDig method and pass it around as a parameter. + private Set pos = new HashSet<>(); - recurse(world, x, y, z, x, y, z, player, tool, 0, radiusAtLevel[level]); + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + Block b = world.getBlock(x, y, z); - return false; - } + if(b == Blocks.stone && !ToolConfig.recursiveStone) { + return false; + } - private final List offsets = new ArrayList(3*3*3-1) {{ - for (int dx = -1; dx <= 1; dx++) { - for (int dy = -1; dy <= 1; dy++) { - for (int dz = -1; dz <= 1; dz++) { - if (dx != 0 || dy != 0 || dz != 0) { - add(new ThreeInts(dx, dy, dz)); - } - } - } - } - }}; + if(b == Blocks.netherrack && !ToolConfig.recursiveNetherrack) { + return false; + } - private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, ItemToolAbility tool, int depth, int radius) { - List shuffledOffsets = new ArrayList<>(offsets); - Collections.shuffle(shuffledOffsets); - - for(ThreeInts offset : shuffledOffsets) { - breakExtra(world, x + offset.x, y + offset.y, z + offset.z, refX, refY, refZ, player, tool, depth, radius); - } - } - - private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, ItemToolAbility tool, int depth, int radius) { - if(pos.contains(new ThreeInts(x, y, z))) - return; - - depth += 1; - - if(depth > ToolConfig.recursionDepth) - return; - - pos.add(new ThreeInts(x, y, z)); - - //don't lose the ref block just yet - if(x == refX && y == refY && z == refZ) - return; - - if(Vec3.createVectorHelper(x - refX, y - refY, z - refZ).lengthVector() > radius) - return; - - Block b = world.getBlock(x, y, z); - Block ref = world.getBlock(refX, refY, refZ); - int meta = world.getBlockMetadata(x, y, z); - int refMeta = world.getBlockMetadata(refX, refY, refZ); - - if(!isSameBlock(b, ref)) - return; - - if(meta != refMeta) - return; - - if(player.getHeldItem() == null) - return; - - tool.breakExtraBlock(world, x, y, z, player, refX, refY, refZ); + pos.clear(); - recurse(world, x, y, z, refX, refY, refZ, player, tool, depth, radius); - } - - 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; - } - }; + recurse(world, x, y, z, x, y, z, player, tool, 0, radiusAtLevel[level]); - public static final IToolAreaAbility HAMMER = new IToolAreaAbility() { - @Override - public String getName() { - return "tool.ability.hammer"; - } + return false; + } - @Override - public boolean isAllowed() { - return ToolConfig.abilityHammer; - } + private final List offsets = new ArrayList(3 * 3 * 3 - 1) { + { + for(int dx = -1; dx <= 1; dx++) { + for(int dy = -1; dy <= 1; dy++) { + for(int dz = -1; dz <= 1; dz++) { + if(dx != 0 || dy != 0 || dz != 0) { + add(new ThreeInts(dx, dy, dz)); + } + } + } + } + } + }; - public final int[] rangeAtLevel = {1, 2, 3, 4}; + private void recurse(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, ItemToolAbility tool, int depth, int radius) { + List shuffledOffsets = new ArrayList<>(offsets); + Collections.shuffle(shuffledOffsets); - @Override - public int levels() { - return rangeAtLevel.length; - } + for(ThreeInts offset : shuffledOffsets) { + breakExtra(world, x + offset.x, y + offset.y, z + offset.z, refX, refY, refZ, player, tool, depth, radius); + } + } - @Override - public String getExtension(int level) { - return " (" + rangeAtLevel[level] + ")"; - } + private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, ItemToolAbility tool, int depth, int radius) { + if(pos.contains(new ThreeInts(x, y, z))) + return; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 2; - } + depth += 1; - @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { - int range = rangeAtLevel[level]; - - for(int a = x - range; a <= x + range; a++) { - for(int b = y - range; b <= y + range; b++) { - for(int c = z - range; c <= z + range; c++) { - if (a == x && b == y && c == z) - continue; - - tool.breakExtraBlock(world, a, b ,c, player, x, y, z); - } - } - } + if(depth > ToolConfig.recursionDepth) + return; - return false; - } - }; + pos.add(new ThreeInts(x, y, z)); - public static final IToolAreaAbility EXPLOSION = new IToolAreaAbility() { - @Override - public String getName() { - return "tool.ability.explosion"; - } + // don't lose the ref block just yet + if(x == refX && y == refY && z == refZ) + return; - @Override - public boolean isAllowed() { - return ToolConfig.abilityExplosion; - } + if(Vec3.createVectorHelper(x - refX, y - refY, z - refZ).lengthVector() > radius) + return; - public final float[] strengthAtLevel = {2.5F, 5F, 10F, 15F}; + Block b = world.getBlock(x, y, z); + Block ref = world.getBlock(refX, refY, refZ); + int meta = world.getBlockMetadata(x, y, z); + int refMeta = world.getBlockMetadata(refX, refY, refZ); - @Override - public int levels() { - return strengthAtLevel.length; - } + if(!isSameBlock(b, ref)) + return; - @Override - public String getExtension(int level) { - return " (" + strengthAtLevel[level] + ")"; - } + if(meta != refMeta) + return; - @Override - public boolean allowsHarvest(int level) { - return false; - } + if(player.getHeldItem() == null) + return; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 3; - } + tool.breakExtraBlock(world, x, y, z, player, refX, refY, refZ); - @Override - public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { - float strength = strengthAtLevel[level]; - - ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); - ex.addAttrib(ExAttrib.ALLDROP); - ex.addAttrib(ExAttrib.NOHURT); - ex.addAttrib(ExAttrib.NOPARTICLE); - ex.doExplosionA(); - ex.doExplosionB(false); - - player.worldObj.createExplosion(player, x + 0.5, y + 0.5, z + 0.5, 0.1F, false); - - return true; - } - }; - // endregion handlers + recurse(world, x, y, z, refX, refY, refZ, player, tool, depth, radius); + } - static final IToolAreaAbility[] abilities = {NONE, RECURSION, HAMMER, EXPLOSION}; + 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; - static IToolAreaAbility getByName(String name) { - for(IToolAreaAbility ability : abilities) { - if(ability.getName().equals(name)) - return ability; - } - - return NONE; - } + return false; + } + }; + + public static final IToolAreaAbility HAMMER = new IToolAreaAbility() { + @Override + public String getName() { + return "tool.ability.hammer"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityHammer; + } + + public final int[] rangeAtLevel = { 1, 2, 3, 4 }; + + @Override + public int levels() { + return rangeAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + rangeAtLevel[level] + ")"; + } + + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 2; + } + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + int range = rangeAtLevel[level]; + + for(int a = x - range; a <= x + range; a++) { + for(int b = y - range; b <= y + range; b++) { + for(int c = z - range; c <= z + range; c++) { + if(a == x && b == y && c == z) + continue; + + tool.breakExtraBlock(world, a, b, c, player, x, y, z); + } + } + } + + return false; + } + }; + + public static final IToolAreaAbility EXPLOSION = new IToolAreaAbility() { + @Override + public String getName() { + return "tool.ability.explosion"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityExplosion; + } + + public final float[] strengthAtLevel = { 2.5F, 5F, 10F, 15F }; + + @Override + public int levels() { + return strengthAtLevel.length; + } + + @Override + public String getExtension(int level) { + return " (" + strengthAtLevel[level] + ")"; + } + + @Override + public boolean allowsHarvest(int level) { + return false; + } + + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 3; + } + + @Override + public boolean onDig(int level, World world, int x, int y, int z, EntityPlayer player, ItemToolAbility tool) { + float strength = strengthAtLevel[level]; + + ExplosionNT ex = new ExplosionNT(player.worldObj, player, x + 0.5, y + 0.5, z + 0.5, strength); + ex.addAttrib(ExAttrib.ALLDROP); + ex.addAttrib(ExAttrib.NOHURT); + ex.addAttrib(ExAttrib.NOPARTICLE); + ex.doExplosionA(); + ex.doExplosionB(false); + + player.worldObj.createExplosion(player, x + 0.5, y + 0.5, z + 0.5, 0.1F, false); + + return true; + } + }; + // endregion handlers + + static final IToolAreaAbility[] abilities = { NONE, RECURSION, HAMMER, EXPLOSION }; + + static IToolAreaAbility getByName(String name) { + for(IToolAreaAbility ability : abilities) { + if(ability.getName().equals(name)) + return ability; + } + + return NONE; + } } diff --git a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java index b1d54dd11..9f002bfbd 100644 --- a/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java +++ b/src/main/java/com/hbm/handler/ability/IToolHarvestAbility.java @@ -23,319 +23,321 @@ import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.world.World; public interface IToolHarvestAbility extends IBaseAbility { - public default void preHarvestAll(int level, World world, EntityPlayer player) {} + + public default void preHarvestAll(int level, World world, EntityPlayer player) { } + public default void postHarvestAll(int level, World world, EntityPlayer player) { } - public default void postHarvestAll(int level, World world, EntityPlayer player) {} + // You must call harvestBlock to actually break the block. + // If you don't, visual glitches ensue + public default void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + harvestBlock(false, world, x, y, z, player); + } - // You must call harvestBlock to actually break the block. - // If you don't, visual glitches ensue - public default void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - harvestBlock(false, world, x, y, z, player); - } + public static void harvestBlock(boolean skipDefaultDrops, World world, int x, int y, int z, EntityPlayer player) { + if(skipDefaultDrops) { + // Emulate the block breaking without drops + world.setBlockToAir(x, y, z); + player.getHeldItem().damageItem(1, player); + } else if(player instanceof EntityPlayerMP) { + // Break the block conventionally + ItemToolAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); + } + } - public static void harvestBlock(boolean skipDefaultDrops, World world, int x, int y, int z, EntityPlayer player) { - if (skipDefaultDrops) { - // Emulate the block breaking without drops - world.setBlockToAir(x, y, z); - player.getHeldItem().damageItem(1, player); - } else if (player instanceof EntityPlayerMP) { - // Break the block conventionally - ItemToolAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player); - } - } + public final static int SORT_ORDER_BASE = 100; - public final static int SORT_ORDER_BASE = 100; + // region handlers + public static final IToolHarvestAbility NONE = new IToolHarvestAbility() { + @Override + public String getName() { + return ""; + } - // region handlers - public static final IToolHarvestAbility NONE = new IToolHarvestAbility() { - @Override - public String getName() { - return ""; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 0; + } + }; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 0; - } - }; + public static final IToolHarvestAbility SILK = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.silktouch"; + } - public static final IToolHarvestAbility SILK = new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.silktouch"; - } + @Override + public boolean isAllowed() { + return ToolConfig.abilitySilk; + } - @Override - public boolean isAllowed() { - return ToolConfig.abilitySilk; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 1; + } - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 1; - } + @Override + public void preHarvestAll(int level, World world, EntityPlayer player) { + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1); + } - @Override - public void preHarvestAll(int level, World world, EntityPlayer player) { - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1); - } + @Override + public void postHarvestAll(int level, World world, EntityPlayer player) { + // ToC-ToU mismatch should be impossible + // because both calls happen on the same tick. + // Even if can be forced somehow, the player doesn't gain any + // benefit from it. + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); + } + }; - @Override - public void postHarvestAll(int level, World world, EntityPlayer player) { - // ToC-ToU mismatch should be impossible - // because both calls happen on the same tick. - // Even if can be forced somehow, the player doesn't gain any benefit from it. - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.removeEnchantment(stack, Enchantment.silkTouch); - } - }; + public static final IToolHarvestAbility LUCK = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.luck"; + } - public static final IToolHarvestAbility LUCK = new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.luck"; - } + @Override + public boolean isAllowed() { + return ToolConfig.abilityLuck; + } - @Override - public boolean isAllowed() { - return ToolConfig.abilityLuck; - } + public final int[] powerAtLevel = { 1, 2, 3, 4, 5, 9 }; - public final int[] powerAtLevel = {1, 2, 3, 4, 5, 9}; + @Override + public int levels() { + return powerAtLevel.length; + } - @Override - public int levels() { - return powerAtLevel.length; - } + @Override + public String getExtension(int level) { + return " (" + powerAtLevel[level] + ")"; + } - @Override - public String getExtension(int level) { - return " (" + powerAtLevel[level] + ")"; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 2; + } - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 2; - } + @Override + public void preHarvestAll(int level, World world, EntityPlayer player) { + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, powerAtLevel[level]); + } - @Override - public void preHarvestAll(int level, World world, EntityPlayer player) { - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, powerAtLevel[level]); - } + @Override + public void postHarvestAll(int level, World world, EntityPlayer player) { + // ToC-ToU mismatch should be impossible + // because both calls happen on the same tick. + // Even if can be forced somehow, the player doesn't gain any + // benefit from it. + ItemStack stack = player.getHeldItem(); + EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); + } + }; - @Override - public void postHarvestAll(int level, World world, EntityPlayer player) { - // ToC-ToU mismatch should be impossible - // because both calls happen on the same tick. - // Even if can be forced somehow, the player doesn't gain any benefit from it. - ItemStack stack = player.getHeldItem(); - EnchantmentUtil.removeEnchantment(stack, Enchantment.fortune); - } - }; + public static final IToolHarvestAbility SMELTER = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.smelter"; + } - public static final IToolHarvestAbility SMELTER = new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.smelter"; - } + @Override + public boolean isAllowed() { + return ToolConfig.abilityFurnace; + } - @Override - public boolean isAllowed() { - return ToolConfig.abilityFurnace; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 3; + } - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 3; - } + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + List drops = block.getDrops(world, x, y, z, world.getBlockMetadata(x, y, z), 0); - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - List drops = block.getDrops(world, x, y, z, world.getBlockMetadata(x, y, z), 0); - - boolean doesSmelt = false; - - for(int i = 0; i < drops.size(); i++) { - ItemStack stack = drops.get(i).copy(); - ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(stack); - - if(result != null) { - result = result.copy(); - result.stackSize *= stack.stackSize; - drops.set(i, result); - doesSmelt = true; - } - } - - harvestBlock(doesSmelt, world, x, y, z, player); + boolean doesSmelt = false; - if(doesSmelt) { - for(ItemStack stack : drops) { - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); - } - } - } - }; + for(int i = 0; i < drops.size(); i++) { + ItemStack stack = drops.get(i).copy(); + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(stack); - public static final IToolHarvestAbility SHREDDER = new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.shredder"; - } + if(result != null) { + result = result.copy(); + result.stackSize *= stack.stackSize; + drops.set(i, result); + doesSmelt = true; + } + } - @Override - public boolean isAllowed() { - return ToolConfig.abilityShredder; - } + harvestBlock(doesSmelt, world, x, y, z, player); - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 4; - } + if(doesSmelt) { + for(ItemStack stack : drops) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy())); + } + } + } + }; - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - ItemStack stack = new ItemStack(block, 1, meta); - ItemStack result = ShredderRecipes.getShredderResult(stack); + public static final IToolHarvestAbility SHREDDER = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.shredder"; + } - boolean doesShred = result != null && result.getItem() != ModItems.scrap; + @Override + public boolean isAllowed() { + return ToolConfig.abilityShredder; + } - harvestBlock(doesShred, world, x, y, z, player); - - if(doesShred) { - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); - } - } - }; + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 4; + } - public static final IToolHarvestAbility CENTRIFUGE = new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.centrifuge"; - } + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + // a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; - @Override - public boolean isAllowed() { - return ToolConfig.abilityCentrifuge; - } + ItemStack stack = new ItemStack(block, 1, meta); + ItemStack result = ShredderRecipes.getShredderResult(stack); - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 5; - } + boolean doesShred = result != null && result.getItem() != ModItems.scrap; - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - ItemStack stack = new ItemStack(block, 1, meta); - ItemStack[] result = CentrifugeRecipes.getOutput(stack); + harvestBlock(doesShred, world, x, y, z, player); - boolean doesCentrifuge = result != null; - - harvestBlock(doesCentrifuge, world, x, y, z, player); - - if(doesCentrifuge) { - for(ItemStack st : result) { - if(st != null) { - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, st.copy())); - } - } - } - } - }; + if(doesShred) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.copy())); + } + } + }; - public static final IToolHarvestAbility CRYSTALLIZER = new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.crystallizer"; - } + public static final IToolHarvestAbility CENTRIFUGE = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.centrifuge"; + } - @Override - public boolean isAllowed() { - return ToolConfig.abilityCrystallizer; - } + @Override + public boolean isAllowed() { + return ToolConfig.abilityCentrifuge; + } - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 6; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 5; + } - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - ItemStack stack = new ItemStack(block, 1, meta); - CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.PEROXIDE); + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + // a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; - boolean doesCrystallize = result != null; - - harvestBlock(doesCrystallize, world, x, y, z, player); - - if(doesCrystallize) { - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.output.copy())); - } - } - }; - - public static final IToolHarvestAbility MERCURY = new IToolHarvestAbility() { - @Override - public String getName() { - return "tool.ability.mercury"; - } + ItemStack stack = new ItemStack(block, 1, meta); + ItemStack[] result = CentrifugeRecipes.getOutput(stack); - @Override - public boolean isAllowed() { - return ToolConfig.abilityMercury; - } + boolean doesCentrifuge = result != null; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 7; - } + harvestBlock(doesCentrifuge, world, x, y, z, player); - @Override - public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { - //a band-aid on a gaping wound - if(block == Blocks.lit_redstone_ore) - block = Blocks.redstone_ore; - - int mercury = 0; + if(doesCentrifuge) { + for(ItemStack st : result) { + if(st != null) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, st.copy())); + } + } + } + } + }; - if(block == Blocks.redstone_ore) - mercury = player.getRNG().nextInt(5) + 4; - if(block == Blocks.redstone_block) - mercury = player.getRNG().nextInt(7) + 8; - - boolean doesConvert = mercury > 0; - - harvestBlock(doesConvert, world, x, y, z, player); - - if(doesConvert) { - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury))); - } - } - }; - // endregion handlers + public static final IToolHarvestAbility CRYSTALLIZER = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.crystallizer"; + } - static final IToolHarvestAbility[] abilities = {NONE, SILK, LUCK, SMELTER, SHREDDER, CENTRIFUGE, CRYSTALLIZER, MERCURY}; + @Override + public boolean isAllowed() { + return ToolConfig.abilityCrystallizer; + } - static IToolHarvestAbility getByName(String name) { - for(IToolHarvestAbility ability : abilities) { - if(ability.getName().equals(name)) - return ability; - } - - return NONE; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 6; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + // a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + ItemStack stack = new ItemStack(block, 1, meta); + CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.PEROXIDE); + + boolean doesCrystallize = result != null; + + harvestBlock(doesCrystallize, world, x, y, z, player); + + if(doesCrystallize) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, result.output.copy())); + } + } + }; + + public static final IToolHarvestAbility MERCURY = new IToolHarvestAbility() { + @Override + public String getName() { + return "tool.ability.mercury"; + } + + @Override + public boolean isAllowed() { + return ToolConfig.abilityMercury; + } + + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 7; + } + + @Override + public void onHarvestBlock(int level, World world, int x, int y, int z, EntityPlayer player, Block block, int meta) { + // a band-aid on a gaping wound + if(block == Blocks.lit_redstone_ore) + block = Blocks.redstone_ore; + + int mercury = 0; + + if(block == Blocks.redstone_ore) + mercury = player.getRNG().nextInt(5) + 4; + if(block == Blocks.redstone_block) + mercury = player.getRNG().nextInt(7) + 8; + + boolean doesConvert = mercury > 0; + + harvestBlock(doesConvert, world, x, y, z, player); + + if(doesConvert) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_mercury, mercury))); + } + } + }; + // endregion handlers + + static final IToolHarvestAbility[] abilities = { NONE, SILK, LUCK, SMELTER, SHREDDER, CENTRIFUGE, CRYSTALLIZER, MERCURY }; + + static IToolHarvestAbility getByName(String name) { + for(IToolHarvestAbility ability : abilities) { + if(ability.getName().equals(name)) + return ability; + } + + return NONE; + } } diff --git a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java index 9a874dbb1..f3571ab6a 100644 --- a/src/main/java/com/hbm/handler/ability/IWeaponAbility.java +++ b/src/main/java/com/hbm/handler/ability/IWeaponAbility.java @@ -4,7 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.handler.threading.PacketThreading; import com.hbm.items.ModItems; -import com.hbm.lib.ModDamageSource; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; @@ -35,333 +34,337 @@ import net.minecraft.util.DamageSource; import net.minecraft.world.World; public interface IWeaponAbility extends IBaseAbility { - // Note: tool is currently unused in weapon abilities - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool); - - public final static int SORT_ORDER_BASE = 200; + // Note: tool is currently unused in weapon abilities + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool); - // region handlers - public static final IWeaponAbility NONE = new IWeaponAbility() { - @Override - public String getName() { - return ""; - } + public final static int SORT_ORDER_BASE = 200; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 0; - } + // region handlers + public static final IWeaponAbility NONE = new IWeaponAbility() { + @Override + public String getName() { + return ""; + } - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) {} - }; + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 0; + } - public static final IWeaponAbility RADIATION = new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.radiation"; - } + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { + } + }; - public final float[] radAtLevel = {15F, 50F, 500F}; + public static final IWeaponAbility RADIATION = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.radiation"; + } - @Override - public int levels() { - return radAtLevel.length; - } + public final float[] radAtLevel = { 15F, 50F, 500F }; - @Override - public String getExtension(int level) { - return " (" + radAtLevel[level] + ")"; - } + @Override + public int levels() { + return radAtLevel.length; + } - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 1; - } + @Override + public String getExtension(int level) { + return " (" + radAtLevel[level] + ")"; + } - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { - if(victim instanceof EntityLivingBase) - ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, radAtLevel[level]); - } - }; + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 1; + } - public static final IWeaponAbility VAMPIRE = new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.vampire"; - } + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { + if(victim instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase) victim, HazardType.RADIATION, ContaminationType.CREATIVE, radAtLevel[level]); + } + }; - public final float[] amountAtLevel = {2F, 3F, 5F, 10F, 50F}; + public static final IWeaponAbility VAMPIRE = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.vampire"; + } - @Override - public int levels() { - return amountAtLevel.length; - } + public final float[] amountAtLevel = { 2F, 3F, 5F, 10F, 50F }; - @Override - public String getExtension(int level) { - return " (" + amountAtLevel[level] + ")"; - } + @Override + public int levels() { + return amountAtLevel.length; + } - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 2; - } + @Override + public String getExtension(int level) { + return " (" + amountAtLevel[level] + ")"; + } - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { - float amount = amountAtLevel[level]; - - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - if(living.getHealth() <= 0) return; - living.setHealth(living.getHealth() - amount); - if(living.getHealth() <= 0) living.onDeath(DamageSource.magic); - player.heal(amount); - } - } - }; + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 2; + } - public static final IWeaponAbility STUN = new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.stun"; - } + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { + float amount = amountAtLevel[level]; - public final int[] durationAtLevel = {2, 3, 5, 10, 15}; + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + if(living.getHealth() <= 0) + return; + living.setHealth(living.getHealth() - amount); + if(living.getHealth() <= 0) + living.onDeath(DamageSource.magic); + player.heal(amount); + } + } + }; - @Override - public int levels() { - return durationAtLevel.length; - } + public static final IWeaponAbility STUN = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.stun"; + } - @Override - public String getExtension(int level) { - return " (" + durationAtLevel[level] + ")"; - } + public final int[] durationAtLevel = { 2, 3, 5, 10, 15 }; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 3; - } + @Override + public int levels() { + return durationAtLevel.length; + } - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { - int duration = durationAtLevel[level]; - - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; + @Override + public String getExtension(int level) { + return " (" + durationAtLevel[level] + ")"; + } - living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, duration * 20, 4)); - living.addPotionEffect(new PotionEffect(Potion.weakness.id, duration * 20, 4)); - } - } - }; + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 3; + } - public static final IWeaponAbility PHOSPHORUS = new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.phosphorus"; - } + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { + int duration = durationAtLevel[level]; - public final int[] durationAtLevel = {60, 90}; + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; - @Override - public int levels() { - return durationAtLevel.length; - } + living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, duration * 20, 4)); + living.addPotionEffect(new PotionEffect(Potion.weakness.id, duration * 20, 4)); + } + } + }; - @Override - public String getExtension(int level) { - return " (" + durationAtLevel[level] + ")"; - } + public static final IWeaponAbility PHOSPHORUS = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.phosphorus"; + } - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 4; - } + public final int[] durationAtLevel = { 60, 90 }; - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { - int duration = durationAtLevel[level]; - - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; + @Override + public int levels() { + return durationAtLevel.length; + } - living.addPotionEffect(new PotionEffect(HbmPotion.phosphorus.id, duration * 20, 4)); - } - } - }; + @Override + public String getExtension(int level) { + return " (" + durationAtLevel[level] + ")"; + } - public static final IWeaponAbility FIRE = new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.fire"; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 4; + } - public final int[] durationAtLevel = {5, 10}; + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { + int duration = durationAtLevel[level]; - @Override - public int levels() { - return durationAtLevel.length; - } + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; - @Override - public String getExtension(int level) { - return " (" + durationAtLevel[level] + ")"; - } + living.addPotionEffect(new PotionEffect(HbmPotion.phosphorus.id, duration * 20, 4)); + } + } + }; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 6; - } + public static final IWeaponAbility FIRE = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.fire"; + } - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { - if(victim instanceof EntityLivingBase) { - victim.setFire(durationAtLevel[level]); - } - } - }; + public final int[] durationAtLevel = { 5, 10 }; - public static final IWeaponAbility CHAINSAW = new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.chainsaw"; - } + @Override + public int levels() { + return durationAtLevel.length; + } - public final int[] dividerAtLevel = {15, 10}; + @Override + public String getExtension(int level) { + return " (" + durationAtLevel[level] + ")"; + } - @Override - public int levels() { - return dividerAtLevel.length; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 6; + } - @Override - public String getExtension(int level) { - return " (1:" + dividerAtLevel[level] + ")"; - } + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { + if(victim instanceof EntityLivingBase) { + victim.setFire(durationAtLevel[level]); + } + } + }; - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 7; - } + public static final IWeaponAbility CHAINSAW = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.chainsaw"; + } - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { - int divider = dividerAtLevel[level]; + public final int[] dividerAtLevel = { 15, 10 }; - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; + @Override + public int levels() { + return dividerAtLevel.length; + } - if(living.getHealth() <= 0.0F) { - int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health + @Override + public String getExtension(int level) { + return " (1:" + dividerAtLevel[level] + ")"; + } - for(int i = 0; i < count; i++) { - living.entityDropItem(new ItemStack(ModItems.nitra_small), 1); - world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 7; + } - if(player instanceof EntityPlayerMP) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setInteger("count", count * 4); - data.setDouble("motion", 0.1D); - data.setString("mode", "blockdust"); - data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, living.posX, living.posY + living.height * 0.5, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); - } + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { + int divider = dividerAtLevel[level]; - world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "hbm:weapon.chainsaw", 0.5F, 1.0F); - } - } - } - }; + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; - public static final IWeaponAbility BEHEADER = new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.beheader"; - } + if(living.getHealth() <= 0.0F) { + int count = Math.min((int) Math.ceil(living.getMaxHealth() / divider), 250); // safeguard to prevent funnies from bosses with obscene health - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 8; - } + for(int i = 0; i < count; i++) { + living.entityDropItem(new ItemStack(ModItems.nitra_small), 1); + world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); + } - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { - if(victim instanceof EntityLivingBase && ((EntityLivingBase) victim).getHealth() <= 0.0F) { - EntityLivingBase living = (EntityLivingBase) victim; + if(player instanceof EntityPlayerMP) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setInteger("count", count * 4); + data.setDouble("motion", 0.1D); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); + PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, living.posX, living.posY + living.height * 0.5, living.posZ), + new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); + } - if(living instanceof EntitySkeleton) { - if(((EntitySkeleton)living).getSkeletonType() == 0) { - living.entityDropItem(new ItemStack(Items.skull, 1, 0), 0.0F); - } else { - if(world.rand.nextInt(20) == 0) - living.entityDropItem(new ItemStack(Items.skull, 1, 1), 0.0F); - else - living.entityDropItem(new ItemStack(Items.coal, 3), 0.0F); - } - } else if(living instanceof EntityZombie) { - living.entityDropItem(new ItemStack(Items.skull, 1, 2), 0.0F); - } else if(living instanceof EntityCreeper) { - living.entityDropItem(new ItemStack(Items.skull, 1, 4), 0.0F); - } else if(living instanceof EntityMagmaCube) { - living.entityDropItem(new ItemStack(Items.magma_cream, 3), 0.0F); - } else if(living instanceof EntitySlime) { - living.entityDropItem(new ItemStack(Items.slime_ball, 3), 0.0F); - } else if(living instanceof EntityPlayer) { - ItemStack head = new ItemStack(Items.skull, 1, 3); - head.stackTagCompound = new NBTTagCompound(); - head.stackTagCompound.setString("SkullOwner", ((EntityPlayer) living).getDisplayName()); - living.entityDropItem(head, 0.0F); - } else { - living.entityDropItem(new ItemStack(Items.rotten_flesh, 3, 0), 0.0F); - living.entityDropItem(new ItemStack(Items.bone, 2, 0), 0.0F); - } - } - } - }; + world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "hbm:weapon.chainsaw", 0.5F, 1.0F); + } + } + } + }; - public static final IWeaponAbility BOBBLE = new IWeaponAbility() { - @Override - public String getName() { - return "weapon.ability.bobble"; - } + public static final IWeaponAbility BEHEADER = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.beheader"; + } - @Override - public int sortOrder() { - return SORT_ORDER_BASE + 9; - } + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 8; + } - @Override - public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { - if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) { - EntityMob mob = (EntityMob) victim; + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { + if(victim instanceof EntityLivingBase && ((EntityLivingBase) victim).getHealth() <= 0.0F) { + EntityLivingBase living = (EntityLivingBase) victim; - int chance = 1000; + if(living instanceof EntitySkeleton) { + if(((EntitySkeleton) living).getSkeletonType() == 0) { + living.entityDropItem(new ItemStack(Items.skull, 1, 0), 0.0F); + } else { + if(world.rand.nextInt(20) == 0) + living.entityDropItem(new ItemStack(Items.skull, 1, 1), 0.0F); + else + living.entityDropItem(new ItemStack(Items.coal, 3), 0.0F); + } + } else if(living instanceof EntityZombie) { + living.entityDropItem(new ItemStack(Items.skull, 1, 2), 0.0F); + } else if(living instanceof EntityCreeper) { + living.entityDropItem(new ItemStack(Items.skull, 1, 4), 0.0F); + } else if(living instanceof EntityMagmaCube) { + living.entityDropItem(new ItemStack(Items.magma_cream, 3), 0.0F); + } else if(living instanceof EntitySlime) { + living.entityDropItem(new ItemStack(Items.slime_ball, 3), 0.0F); + } else if(living instanceof EntityPlayer) { + ItemStack head = new ItemStack(Items.skull, 1, 3); + head.stackTagCompound = new NBTTagCompound(); + head.stackTagCompound.setString("SkullOwner", ((EntityPlayer) living).getDisplayName()); + living.entityDropItem(head, 0.0F); + } else { + living.entityDropItem(new ItemStack(Items.rotten_flesh, 3, 0), 0.0F); + living.entityDropItem(new ItemStack(Items.bone, 2, 0), 0.0F); + } + } + } + }; - if(mob.getMaxHealth() > 20) { - chance = 750; - } + public static final IWeaponAbility BOBBLE = new IWeaponAbility() { + @Override + public String getName() { + return "weapon.ability.bobble"; + } - if(world.rand.nextInt(chance) == 0) - mob.entityDropItem(new ItemStack(ModBlocks.bobblehead, 1, world.rand.nextInt(BobbleType.values().length - 1) + 1), 0.0F); - } - } - }; - // endregion handlers + @Override + public int sortOrder() { + return SORT_ORDER_BASE + 9; + } - static final IWeaponAbility[] abilities = {NONE, RADIATION, VAMPIRE, STUN, PHOSPHORUS, FIRE, CHAINSAW, BEHEADER, BOBBLE}; + @Override + public void onHit(int level, World world, EntityPlayer player, Entity victim, Item tool) { + if(victim instanceof EntityMob && ((EntityMob) victim).getHealth() <= 0.0F) { + EntityMob mob = (EntityMob) victim; - static IWeaponAbility getByName(String name) { - for(IWeaponAbility ability : abilities) { - if(ability.getName().equals(name)) - return ability; - } - - return NONE; - } + int chance = 1000; + + if(mob.getMaxHealth() > 20) { + chance = 750; + } + + if(world.rand.nextInt(chance) == 0) + mob.entityDropItem(new ItemStack(ModBlocks.bobblehead, 1, world.rand.nextInt(BobbleType.values().length - 1) + 1), 0.0F); + } + } + }; + // endregion handlers + + static final IWeaponAbility[] abilities = { NONE, RADIATION, VAMPIRE, STUN, PHOSPHORUS, FIRE, CHAINSAW, BEHEADER, BOBBLE }; + + static IWeaponAbility getByName(String name) { + for(IWeaponAbility ability : abilities) { + if(ability.getName().equals(name)) + return ability; + } + + return NONE; + } } diff --git a/src/main/java/com/hbm/handler/ability/ToolPreset.java b/src/main/java/com/hbm/handler/ability/ToolPreset.java index ce8f36dd5..e705b23a9 100644 --- a/src/main/java/com/hbm/handler/ability/ToolPreset.java +++ b/src/main/java/com/hbm/handler/ability/ToolPreset.java @@ -7,93 +7,94 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; public class ToolPreset { - public IToolAreaAbility areaAbility = IToolAreaAbility.NONE; - public int areaAbilityLevel = 0; - public IToolHarvestAbility harvestAbility = IToolHarvestAbility.NONE; - public int harvestAbilityLevel = 0; + public IToolAreaAbility areaAbility = IToolAreaAbility.NONE; + public int areaAbilityLevel = 0; + public IToolHarvestAbility harvestAbility = IToolHarvestAbility.NONE; + public int harvestAbilityLevel = 0; - public ToolPreset() {} + public ToolPreset() { + } - public ToolPreset(IToolAreaAbility areaAbility, IToolHarvestAbility harvestAbility) { - this.areaAbility = areaAbility; - this.harvestAbility = harvestAbility; - } + public ToolPreset(IToolAreaAbility areaAbility, IToolHarvestAbility harvestAbility) { + this.areaAbility = areaAbility; + this.harvestAbility = harvestAbility; + } - public ToolPreset(IToolAreaAbility areaAbility, int areaAbilityLevel, IToolHarvestAbility harvestAbility, int harvestAbilityLevel) { - this.areaAbility = areaAbility; - this.areaAbilityLevel = areaAbilityLevel; - this.harvestAbility = harvestAbility; - this.harvestAbilityLevel = harvestAbilityLevel; - } + public ToolPreset(IToolAreaAbility areaAbility, int areaAbilityLevel, IToolHarvestAbility harvestAbility, int harvestAbilityLevel) { + this.areaAbility = areaAbility; + this.areaAbilityLevel = areaAbilityLevel; + this.harvestAbility = harvestAbility; + this.harvestAbilityLevel = harvestAbilityLevel; + } - public ChatComponentText getMessage() { - if (isNone()) - return ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(); - - String areaPart = areaAbility.getFullName(areaAbilityLevel); - String harvestPart = harvestAbility.getFullName(harvestAbilityLevel); - - ChatBuilder builder = ChatBuilder.start("[Enabled "); + public ChatComponentText getMessage() { + if(isNone()) + return ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(); - if (!areaPart.isEmpty()) - builder.next(areaPart); + String areaPart = areaAbility.getFullName(areaAbilityLevel); + String harvestPart = harvestAbility.getFullName(harvestAbilityLevel); - if (!areaPart.isEmpty() && !harvestPart.isEmpty()) - builder.next(" + "); + ChatBuilder builder = ChatBuilder.start("[Enabled "); - if (!harvestPart.isEmpty()) - builder.next(harvestPart); - - return builder.colorAll(EnumChatFormatting.YELLOW).flush(); - } + if(!areaPart.isEmpty()) + builder.next(areaPart); - public boolean isNone() { - return areaAbility == IToolAreaAbility.NONE && harvestAbility == IToolHarvestAbility.NONE; - } + if(!areaPart.isEmpty() && !harvestPart.isEmpty()) + builder.next(" + "); - public void writeToNBT(NBTTagCompound nbt) { - nbt.setString("area", areaAbility.getName()); - nbt.setInteger("areaLevel", areaAbilityLevel); - nbt.setString("harvest", harvestAbility.getName()); - nbt.setInteger("harvestLevel", harvestAbilityLevel); - } + if(!harvestPart.isEmpty()) + builder.next(harvestPart); - public void readFromNBT(NBTTagCompound nbt) { - areaAbility = IToolAreaAbility.getByName(nbt.getString("area")); - areaAbilityLevel = nbt.getInteger("areaLevel"); - harvestAbility = IToolHarvestAbility.getByName(nbt.getString("harvest")); - harvestAbilityLevel = nbt.getInteger("harvestLevel"); + return builder.colorAll(EnumChatFormatting.YELLOW).flush(); + } - areaAbilityLevel = Math.min(areaAbilityLevel, areaAbility.levels() - 1); - harvestAbilityLevel = Math.min(harvestAbilityLevel, harvestAbility.levels() - 1); - } + public boolean isNone() { + return areaAbility == IToolAreaAbility.NONE && harvestAbility == IToolHarvestAbility.NONE; + } - public void restrictTo(AvailableAbilities availableAbilities) { - int maxAreaLevel = availableAbilities.maxLevel(areaAbility); + public void writeToNBT(NBTTagCompound nbt) { + nbt.setString("area", areaAbility.getName()); + nbt.setInteger("areaLevel", areaAbilityLevel); + nbt.setString("harvest", harvestAbility.getName()); + nbt.setInteger("harvestLevel", harvestAbilityLevel); + } - if (maxAreaLevel == -1) { - areaAbility = IToolAreaAbility.NONE; - areaAbilityLevel = 0; - } else if (areaAbilityLevel > maxAreaLevel) { - areaAbilityLevel = maxAreaLevel; - } else if (areaAbilityLevel < 0) { - areaAbilityLevel = 0; - } + public void readFromNBT(NBTTagCompound nbt) { + areaAbility = IToolAreaAbility.getByName(nbt.getString("area")); + areaAbilityLevel = nbt.getInteger("areaLevel"); + harvestAbility = IToolHarvestAbility.getByName(nbt.getString("harvest")); + harvestAbilityLevel = nbt.getInteger("harvestLevel"); - if (!areaAbility.allowsHarvest(areaAbilityLevel)) { - harvestAbility = IToolHarvestAbility.NONE; - harvestAbilityLevel = 0; - } + areaAbilityLevel = Math.min(areaAbilityLevel, areaAbility.levels() - 1); + harvestAbilityLevel = Math.min(harvestAbilityLevel, harvestAbility.levels() - 1); + } - int maxHarvestLevel = availableAbilities.maxLevel(harvestAbility); + public void restrictTo(AvailableAbilities availableAbilities) { + int maxAreaLevel = availableAbilities.maxLevel(areaAbility); - if (maxHarvestLevel == -1) { - harvestAbility = IToolHarvestAbility.NONE; - harvestAbilityLevel = 0; - } else if (harvestAbilityLevel > maxHarvestLevel) { - harvestAbilityLevel = maxHarvestLevel; - } else if (harvestAbilityLevel < 0) { - harvestAbilityLevel = 0; - } - } + if(maxAreaLevel == -1) { + areaAbility = IToolAreaAbility.NONE; + areaAbilityLevel = 0; + } else if(areaAbilityLevel > maxAreaLevel) { + areaAbilityLevel = maxAreaLevel; + } else if(areaAbilityLevel < 0) { + areaAbilityLevel = 0; + } + + if(!areaAbility.allowsHarvest(areaAbilityLevel)) { + harvestAbility = IToolHarvestAbility.NONE; + harvestAbilityLevel = 0; + } + + int maxHarvestLevel = availableAbilities.maxLevel(harvestAbility); + + if(maxHarvestLevel == -1) { + harvestAbility = IToolHarvestAbility.NONE; + harvestAbilityLevel = 0; + } else if(harvestAbilityLevel > maxHarvestLevel) { + harvestAbilityLevel = maxHarvestLevel; + } else if(harvestAbilityLevel < 0) { + harvestAbilityLevel = 0; + } + } } diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index 2290cedcb..83332e52a 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -4,26 +4,11 @@ import java.util.List; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.projectile.EntityBulletBaseNT.*; -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.explosion.ExplosionNukeSmall.MukeParams; import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.threading.PacketThreading; -import com.hbm.lib.Library; -import com.hbm.packet.toclient.AuxParticlePacketNT; -import com.hbm.potion.HbmPotion; -import com.hbm.util.ArmorRegistry; -import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.util.BobMathUtil; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; public class BulletConfigFactory { @@ -57,37 +42,6 @@ public class BulletConfigFactory { return bullet; } - public static BulletConfiguration standardPistolConfig() { - BulletConfiguration bullet = standardBulletConfig(); - bullet.style = BulletConfiguration.STYLE_PISTOL; - bullet.plink = BulletConfiguration.PLINK_BULLET; - return bullet; - } - - public static BulletConfiguration standardBuckshotConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 5.0F; - bullet.spread = defaultSpread * 10F; - bullet.wear = 10; - bullet.bulletsMin = 6; - bullet.bulletsMax = 8; - bullet.gravity = 0D; - bullet.maxAge = 100; - bullet.doesRicochet = true; - bullet.ricochetAngle = 5; - bullet.HBRC = 10; - bullet.LBRC = 95; - bullet.bounceMod = 0.8; - bullet.doesPenetrate = false; - bullet.doesBreakGlass = true; - bullet.style = BulletConfiguration.STYLE_PELLET; - bullet.plink = BulletConfiguration.PLINK_BULLET; - bullet.leadChance = 10; - - return bullet; - } public static BulletConfiguration standardRocketConfig() { @@ -141,218 +95,6 @@ public class BulletConfigFactory { return bullet; } - public static BulletConfiguration standardShellConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 3.0F; - bullet.spread = defaultSpread; - bullet.wear = 10; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.gravity = 0.005D; - bullet.maxAge = 300; - bullet.doesRicochet = true; - bullet.ricochetAngle = 10; - bullet.HBRC = 2; - bullet.LBRC = 100; - bullet.bounceMod = 0.8; - bullet.doesPenetrate = false; - bullet.doesBreakGlass = false; - bullet.style = BulletConfiguration.STYLE_GRENADE; - bullet.plink = BulletConfiguration.PLINK_GRENADE; - bullet.vPFX = "smoke"; - - return bullet; - } - - public static BulletConfiguration standardNukeConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.velocity = 3.0F; - bullet.spread = defaultSpread; - bullet.wear = 10; - bullet.bulletsMin = 1; - bullet.bulletsMax = 1; - bullet.dmgMin = 1000; - bullet.dmgMax = 1000; - bullet.gravity = 0.025D; - bullet.maxAge = 300; - bullet.doesRicochet = false; - bullet.ricochetAngle = 0; - bullet.HBRC = 0; - bullet.LBRC = 0; - bullet.bounceMod = 1.0; - bullet.doesPenetrate = true; - bullet.doesBreakGlass = false; - bullet.style = BulletConfiguration.STYLE_NUKE; - bullet.plink = BulletConfiguration.PLINK_GRENADE; - - return bullet; - } - - /* - * Sizes: - * 0 - safe - * 1 - tot - * 2 - small - * 3 - medium - * 4 - big - */ - public static void nuclearExplosion(Entity entity, int x, int y, int z, MukeParams params) { - - if(!entity.worldObj.isRemote) { - - double posX = entity.posX; - double posY = entity.posY + 0.5; - double posZ = entity.posZ; - - if(y >= 0) { - posX = x + 0.5; - posY = y + 1.5; - posZ = z + 0.5; - } - - ExplosionNukeSmall.explode(entity.worldObj, posX, posY, posZ, params); - } - } - - public static void makeFlechette(BulletConfiguration bullet) { - - bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { - bulletnt.getStuck(x, y, z, sideHit); - }; - } - - public static IBulletImpactBehaviorNT getPhosphorousEffect(final int radius, final int duration, final int count, final double motion, float hazeChance) { - - IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { - - @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { - - List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); - - for(Entity e : hit) { - - if(!Library.isObstructed(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, e.posX, e.posY + e.getEyeHeight(), e.posZ)) { - e.setFire(5); - - if(e instanceof EntityLivingBase) { - - PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, duration, 0, true); - eff.getCurativeItems().clear(); - ((EntityLivingBase)e).addPotionEffect(eff); - } - } - } - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", count); - data.setDouble("motion", motion); - - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - - if(bullet.worldObj.rand.nextFloat() < hazeChance) { - NBTTagCompound haze = new NBTTagCompound(); - haze.setString("type", "haze"); - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(haze, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 150)); - } - } - }; - - return impact; - } - - public static IBulletImpactBehaviorNT getGasEffect(final int radius, final int duration) { - - IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { - - @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { - - List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); - - for(Entity e : hit) { - - if(!Library.isObstructed(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, e.posX, e.posY + e.getEyeHeight(), e.posZ)) { - - if(e instanceof EntityLivingBase) { - - EntityLivingBase entity = (EntityLivingBase) e; - - if(ArmorRegistry.hasAllProtection(entity, 3, HazardClass.GAS_LUNG)) - continue; - - PotionEffect eff0 = new PotionEffect(Potion.poison.id, duration, 2, true); - PotionEffect eff1 = new PotionEffect(Potion.digSlowdown.id, duration, 2, true); - PotionEffect eff2 = new PotionEffect(Potion.weakness.id, duration, 4, true); - PotionEffect eff3 = new PotionEffect(Potion.wither.id, (int)Math.ceil(duration * 0.1), 0, true); - eff0.getCurativeItems().clear(); - eff1.getCurativeItems().clear(); - eff2.getCurativeItems().clear(); - eff3.getCurativeItems().clear(); - entity.addPotionEffect(eff0); - entity.addPotionEffect(eff1); - entity.addPotionEffect(eff2); - entity.addPotionEffect(eff3); - } - } - } - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "cloud"); - data.setInteger("count", 15); - data.setDouble("motion", 0.1D); - - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } - }; - - return impact; - } - - public static IBulletUpdateBehaviorNT getLaserSteering() { - - IBulletUpdateBehaviorNT onUpdate = new IBulletUpdateBehaviorNT() { - - @Override - public void behaveUpdate(EntityBulletBaseNT bullet) { - - if(bullet.getThrower() == null || !(bullet.getThrower() instanceof EntityPlayer)) - return; - - if(Vec3.createVectorHelper(bullet.posX - bullet.getThrower().posX, bullet.posY - bullet.getThrower().posY, bullet.posZ - bullet.getThrower().posZ).lengthVector() > 100) - return; - - MovingObjectPosition mop = Library.rayTrace((EntityPlayer)bullet.getThrower(), 200, 1); - - if(mop == null || mop.hitVec == null) - return; - - Vec3 vec = Vec3.createVectorHelper(mop.hitVec.xCoord - bullet.posX, mop.hitVec.yCoord - bullet.posY, mop.hitVec.zCoord - bullet.posZ); - - if(vec.lengthVector() < 3) - return; - - vec = vec.normalize(); - - double speed = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ).lengthVector(); - - bullet.motionX = vec.xCoord * speed; - bullet.motionY = vec.yCoord * speed; - bullet.motionZ = vec.zCoord * speed; - } - - }; - - return onUpdate; - } - public static IBulletUpdateBehaviorNT getHomingBehavior(final double range, final double angle) { IBulletUpdateBehaviorNT onUpdate = new IBulletUpdateBehaviorNT() { diff --git a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java deleted file mode 100644 index 13a68e433..000000000 --- a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.hbm.handler.guncfg; - -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.handler.BulletConfiguration; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.Ammo240Shell; -import com.hbm.items.ModItems; -import com.hbm.particle.SpentCasing; -import com.hbm.particle.SpentCasing.CasingType; - -public class GunCannonFactory { - - protected static SpentCasing CASINNG240MM; - - static { - CASINNG240MM = new SpentCasing(CasingType.BOTTLENECK).setScale(7.5F).setBounceMotion(0.5F, 0.5F).setColor(SpentCasing.COLOR_CASE_BRASS).setupSmoke(1F, 0.5D, 60, 20); - } - - public static BulletConfiguration getShellConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.STOCK)); - bullet.dmgMin = 25; - bullet.dmgMax = 35; - bullet.explosive = 4F; - bullet.blockDamage = false; - - bullet.spentCasing = CASINNG240MM.register("240MM"); //same instance everywhere, only register once - - return bullet; - } - - public static BulletConfiguration getShellExplosiveConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.EXPLOSIVE)); - bullet.dmgMin = 35; - bullet.dmgMax = 45; - bullet.explosive = 4F; - bullet.blockDamage = true; - - bullet.spentCasing = CASINNG240MM; - - return bullet; - } - - public static BulletConfiguration getShellAPConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_T)); - bullet.dmgMin = 50; - bullet.dmgMax = 55; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_APDS; - - bullet.spentCasing = CASINNG240MM; - - return bullet; - } - - public static BulletConfiguration getShellDUConfig() { - - BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_DU)); - bullet.dmgMin = 70; - bullet.dmgMax = 80; - bullet.doesPenetrate = true; - bullet.style = BulletConfiguration.STYLE_APDS; - - bullet.spentCasing = CASINNG240MM; - - return bullet; - } - - public static BulletConfiguration getShellW9Config() { - - BulletConfiguration bullet = BulletConfigFactory.standardShellConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9)); - bullet.dmgMin = 100; - bullet.dmgMax = 150; - - bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { - BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); - }; - - bullet.spentCasing = CASINNG240MM; - - return bullet; - } - -} diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 3d622c7f7..d0e8e6bd7 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -1,317 +1,11 @@ package com.hbm.handler.guncfg; -import java.util.ArrayList; - -import com.hbm.blocks.ModBlocks; -import com.hbm.entity.projectile.EntityBulletBaseNT; -import com.hbm.entity.projectile.EntityBulletBaseNT.IBulletImpactBehaviorNT; -import com.hbm.entity.projectile.EntityBulletBaseNT.IBulletUpdateBehaviorNT; -import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.ItemAmmoEnums.AmmoFireExt; import com.hbm.items.ModItems; -import com.hbm.items.weapon.sedna.Crosshair; -import com.hbm.lib.HbmCollection.EnumGunManufacturer; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.IRepairable; -import com.hbm.tileentity.IRepairable.EnumExtinguishType; -import com.hbm.util.CompatExternal; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; public class GunEnergyFactory { - public static GunConfiguration getExtConfig() { - - GunConfiguration config = new GunConfiguration(); - - config.rateOfFire = 1; - config.roundsPerCycle = 1; - config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; - config.reloadSoundEnd = false; - config.firingDuration = 0; - config.ammoCap = 300; //good for 15 seconds of continued spray - config.durability = 10000; - config.reloadType = GunConfiguration.RELOAD_FULL; - config.allowsInfinity = true; - config.crosshair = Crosshair.L_CIRCLE; - config.firingSound = "hbm:weapon.extinguisher"; - config.reloadSound = "hbm:weapon.flamerReload"; - - config.name = "PROTEX Fire Exinguisher 6kg"; - config.manufacturer = EnumGunManufacturer.GLORIA; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.FEXT_NORMAL); - config.config.add(BulletConfigSyncingUtil.FEXT_FOAM); - config.config.add(BulletConfigSyncingUtil.FEXT_SAND); - - return config; - } - - public static BulletConfiguration getFextConfig() { - - BulletConfiguration bullet = new BulletConfiguration(); - - bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.WATER)); - bullet.ammoCount = 300; - - bullet.velocity = 0.75F; - bullet.spread = 0.025F; - bullet.wear = 1; - bullet.bulletsMin = 2; - bullet.bulletsMax = 3; - bullet.dmgMin = 0; - bullet.dmgMax = 0; - bullet.gravity = 0.04D; - bullet.maxAge = 100; - bullet.doesRicochet = false; - bullet.doesPenetrate = true; - bullet.doesBreakGlass = false; - bullet.style = BulletConfiguration.STYLE_NONE; - bullet.plink = BulletConfiguration.PLINK_NONE; - - bullet.bntHurt = (bulletEntity, target) -> { target.extinguish(); }; - - bullet.bntImpact = new IBulletImpactBehaviorNT() { - - @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { - - if(!bullet.worldObj.isRemote) { - - int ix = (int)Math.floor(bullet.posX); - int iy = (int)Math.floor(bullet.posY); - int iz = (int)Math.floor(bullet.posZ); - - boolean fizz = false; - - for(int i = -1; i <= 1; i++) { - for(int j = -1; j <= 1; j++) { - for(int k = -1; k <= 1; k++) { - - if(bullet.worldObj.getBlock(ix + i, iy + j, iz + k) == Blocks.fire) { - bullet.worldObj.setBlock(ix + i, iy + j, iz + k, Blocks.air); - fizz = true; - } - } - } - } - - TileEntity core = CompatExternal.getCoreFromPos(bullet.worldObj, ix, iy, iz); - if(core instanceof IRepairable) { - ((IRepairable) core).tryExtinguish(bullet.worldObj, ix, iy, iz, EnumExtinguishType.WATER); - } - - if(fizz) - bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); - } - } - }; - - bullet.bntUpdate = new IBulletUpdateBehaviorNT() { - - @Override - public void behaveUpdate(EntityBulletBaseNT bullet) { - - if(bullet.worldObj.isRemote) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", "blockdust"); - data.setInteger("block", Block.getIdFromBlock(Blocks.water)); - data.setDouble("posX", bullet.posX); - data.setDouble("posY", bullet.posY); - data.setDouble("posZ", bullet.posZ); - data.setDouble("mX", bullet.motionX + bullet.worldObj.rand.nextGaussian() * 0.05); - data.setDouble("mY", bullet.motionY - 0.2 + bullet.worldObj.rand.nextGaussian() * 0.05); - data.setDouble("mZ", bullet.motionZ + bullet.worldObj.rand.nextGaussian() * 0.05); - MainRegistry.proxy.effectNT(data); - } else { - - int x = (int)Math.floor(bullet.posX); - int y = (int)Math.floor(bullet.posY); - int z = (int)Math.floor(bullet.posZ); - - if(bullet.worldObj.getBlock(x, y, z) == ModBlocks.volcanic_lava_block && bullet.worldObj.getBlockMetadata(x, y, z) == 0) { - bullet.worldObj.setBlock(x, y, z, Blocks.obsidian); - bullet.setDead(); - } - } - } - }; - - return bullet; - } - - public static BulletConfiguration getFextFoamConfig() { - - BulletConfiguration bullet = getFextConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.FOAM)); - bullet.spread = 0.05F; - - bullet.bntImpact = new IBulletImpactBehaviorNT() { - - @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { - - if(!bullet.worldObj.isRemote) { - - int ix = (int)Math.floor(bullet.posX); - int iy = (int)Math.floor(bullet.posY); - int iz = (int)Math.floor(bullet.posZ); - - boolean fizz = false; - - for(int i = -1; i <= 1; i++) { - for(int j = -1; j <= 1; j++) { - for(int k = -1; k <= 1; k++) { - - Block b = bullet.worldObj.getBlock(ix + i, iy + j, iz + k); - - if(b.getMaterial() == Material.fire) { - bullet.worldObj.setBlock(ix + i, iy + j, iz + k, Blocks.air); - fizz = true; - } - } - } - } - - Block b = bullet.worldObj.getBlock(ix, iy, iz); - - TileEntity core = CompatExternal.getCoreFromPos(bullet.worldObj, ix, iy, iz); - if(core instanceof IRepairable) { - ((IRepairable) core).tryExtinguish(bullet.worldObj, ix, iy, iz, EnumExtinguishType.FOAM); - return; - } - - if(b.isReplaceable(bullet.worldObj, ix, iy, iz) && ModBlocks.foam_layer.canPlaceBlockAt(bullet.worldObj, ix, iy, iz)) { - - if(b != ModBlocks.foam_layer) { - bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.foam_layer); - } else { - int meta = bullet.worldObj.getBlockMetadata(ix, iy, iz); - - if(meta < 6) - bullet.worldObj.setBlockMetadataWithNotify(ix, iy, iz, meta + 1, 3); - else - bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.block_foam); - } - } - - if(fizz) - bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); - } - } - }; - - bullet.bntUpdate = new IBulletUpdateBehaviorNT() { - - @Override - public void behaveUpdate(EntityBulletBaseNT bullet) { - - if(bullet.worldObj.isRemote) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", "blockdust"); - data.setInteger("block", Block.getIdFromBlock(ModBlocks.block_foam)); - data.setDouble("posX", bullet.posX); - data.setDouble("posY", bullet.posY); - data.setDouble("posZ", bullet.posZ); - data.setDouble("mX", bullet.motionX + bullet.worldObj.rand.nextGaussian() * 0.05); - data.setDouble("mY", bullet.motionY - 0.2 + bullet.worldObj.rand.nextGaussian() * 0.05); - data.setDouble("mZ", bullet.motionZ + bullet.worldObj.rand.nextGaussian() * 0.05); - MainRegistry.proxy.effectNT(data); - } - } - }; - - return bullet; - } - - public static BulletConfiguration getFextSandConfig() { - - BulletConfiguration bullet = getFextConfig(); - - bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.SAND)); - bullet.spread = 0.1F; - - bullet.bntHurt = null; // does not extinguish entities - - bullet.bntImpact = new IBulletImpactBehaviorNT() { - - @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { - - if(!bullet.worldObj.isRemote) { - - int ix = (int)Math.floor(bullet.posX); - int iy = (int)Math.floor(bullet.posY); - int iz = (int)Math.floor(bullet.posZ); - - Block b = bullet.worldObj.getBlock(ix, iy, iz); - - TileEntity core = CompatExternal.getCoreFromPos(bullet.worldObj, ix, iy, iz); - if(core instanceof IRepairable) { - ((IRepairable) core).tryExtinguish(bullet.worldObj, ix, iy, iz, EnumExtinguishType.SAND); - return; - } - - if((b.isReplaceable(bullet.worldObj, ix, iy, iz) || b == ModBlocks.sand_boron_layer) && ModBlocks.sand_boron_layer.canPlaceBlockAt(bullet.worldObj, ix, iy, iz)) { - - if(b != ModBlocks.sand_boron_layer) { - bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.sand_boron_layer); - } else { - int meta = bullet.worldObj.getBlockMetadata(ix, iy, iz); - - if(meta < 6) - bullet.worldObj.setBlockMetadataWithNotify(ix, iy, iz, meta + 1, 3); - else - bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.sand_boron); - } - - if(b.getMaterial() == Material.fire) - bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); - } - } - } - }; - - bullet.bntUpdate = new IBulletUpdateBehaviorNT() { - - @Override - public void behaveUpdate(EntityBulletBaseNT bullet) { - - if(bullet.worldObj.isRemote) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", "blockdust"); - data.setInteger("block", Block.getIdFromBlock(ModBlocks.sand_boron)); - data.setDouble("posX", bullet.posX); - data.setDouble("posY", bullet.posY); - data.setDouble("posZ", bullet.posZ); - data.setDouble("mX", bullet.motionX + bullet.worldObj.rand.nextGaussian() * 0.1); - data.setDouble("mY", bullet.motionY - 0.2 + bullet.worldObj.rand.nextGaussian() * 0.1); - data.setDouble("mZ", bullet.motionZ + bullet.worldObj.rand.nextGaussian() * 0.1); - MainRegistry.proxy.effectNT(data); - } - } - }; - - return bullet; - } - public static BulletConfiguration getTurbineConfig() { BulletConfiguration bullet = new BulletConfiguration(); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index ff7ea8338..b60160874 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -6,7 +6,6 @@ import com.hbm.handler.BucketHandler; import com.hbm.handler.ability.IToolAreaAbility; import com.hbm.handler.ability.IToolHarvestAbility; import com.hbm.handler.ability.IWeaponAbility; -import com.hbm.handler.guncfg.*; import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -3790,7 +3789,6 @@ public class ModItems { gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt"); gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92"); - gun_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext"); ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0); crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); @@ -6374,7 +6372,6 @@ public class ModItems { //Guns GameRegistry.registerItem(gun_b92, gun_b92.getUnlocalizedName()); - GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName()); GameRegistry.registerItem(crucible, crucible.getUnlocalizedName()); GameRegistry.registerItem(gun_debug, gun_debug.getUnlocalizedName()); @@ -6439,7 +6436,8 @@ public class ModItems { GameRegistry.registerItem(gun_aberrator_eott, gun_aberrator_eott.getUnlocalizedName()); GameRegistry.registerItem(gun_double_barrel, gun_double_barrel.getUnlocalizedName()); GameRegistry.registerItem(gun_double_barrel_sacred_dragon, gun_double_barrel_sacred_dragon.getUnlocalizedName()); - + + GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName()); GameRegistry.registerItem(gun_charge_thrower, gun_charge_thrower.getUnlocalizedName()); GameRegistry.registerItem(ammo_standard, ammo_standard.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index 58945b2cf..7a613fbb0 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -287,6 +287,7 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_aberrator) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_double_barrel) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_double_barrel_sacred_dragon) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_fireext) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_charge_thrower) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_light_revolver_dani) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index 8951e97d7..b8bbe7266 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -1466,6 +1466,17 @@ public class Orchestras { } }; + public static BiConsumer ORCHESTRA_FIREEXT = (stack, ctx) -> { + EntityLivingBase entity = ctx.entity; + if(entity.worldObj.isRemote) return; + AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); + int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pressureValve", 1F, 1F); + } + }; + public static BiConsumer ORCHESTRA_CHARGE_THROWER = (stack, ctx) -> { EntityLivingBase entity = ctx.entity; if(entity.worldObj.isRemote) return; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index f010af5a2..9f3179947 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -25,23 +25,165 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.main.MainRegistry; import com.hbm.particle.helper.ExplosionCreator; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.tileentity.IRepairable; +import com.hbm.tileentity.IRepairable.EnumExtinguishType; +import com.hbm.util.CompatExternal; import com.hbm.util.Vec3NT; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; +import net.minecraftforge.common.util.ForgeDirection; public class XFactoryTool { + public static BulletConfig fext_water; + public static BulletConfig fext_foam; + public static BulletConfig fext_sand; + public static BulletConfig ct_hook; public static BulletConfig ct_mortar; public static BulletConfig ct_mortar_charge; + + public static BiConsumer LAMBDA_WATER_HIT = (bullet, mop) -> { + if(!bullet.worldObj.isRemote) { + int ix = mop.blockX; + int iy = mop.blockY; + int iz = mop.blockZ; + boolean fizz = false; + for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) for(int k = -1; k <= 1; k++) { + Block block = bullet.worldObj.getBlock(ix + i, iy + j, iz + k); + if(block == Blocks.fire || block == ModBlocks.foam_layer || block == ModBlocks.block_foam) { + bullet.worldObj.setBlock(ix + i, iy + j, iz + k, Blocks.air); + fizz = true; + } + } + TileEntity core = CompatExternal.getCoreFromPos(bullet.worldObj, ix, iy, iz); + if(core instanceof IRepairable) ((IRepairable) core).tryExtinguish(bullet.worldObj, ix, iy, iz, EnumExtinguishType.WATER); + if(fizz) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); + bullet.setDead(); + } + }; + + public static Consumer LAMBDA_WATER_UPDATE = (bullet) -> { + if(bullet.worldObj.isRemote) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(Blocks.water)); + data.setDouble("posX", bullet.posX); data.setDouble("posY", bullet.posY); data.setDouble("posZ", bullet.posZ); + data.setDouble("mX", bullet.motionX + bullet.worldObj.rand.nextGaussian() * 0.05); + data.setDouble("mY", bullet.motionY - 0.2 + bullet.worldObj.rand.nextGaussian() * 0.05); + data.setDouble("mZ", bullet.motionZ + bullet.worldObj.rand.nextGaussian() * 0.05); + MainRegistry.proxy.effectNT(data); + } else { + int x = (int)Math.floor(bullet.posX); + int y = (int)Math.floor(bullet.posY); + int z = (int)Math.floor(bullet.posZ); + if(bullet.worldObj.getBlock(x, y, z) == ModBlocks.volcanic_lava_block && bullet.worldObj.getBlockMetadata(x, y, z) == 0) { + bullet.worldObj.setBlock(x, y, z, Blocks.obsidian); + bullet.setDead(); + } + } + }; + + public static BiConsumer LAMBDA_FOAM_HIT = (bullet, mop) -> { + if(!bullet.worldObj.isRemote) { + int ix = mop.blockX; + int iy = mop.blockY; + int iz = mop.blockZ; + boolean fizz = false; + for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) for(int k = -1; k <= 1; k++) { + Block b = bullet.worldObj.getBlock(ix + i, iy + j, iz + k); + if(b.getMaterial() == Material.fire) { + bullet.worldObj.setBlock(ix + i, iy + j, iz + k, Blocks.air); + fizz = true; + } + } + TileEntity core = CompatExternal.getCoreFromPos(bullet.worldObj, ix, iy, iz); + if(core instanceof IRepairable) { ((IRepairable) core).tryExtinguish(bullet.worldObj, ix, iy, iz, EnumExtinguishType.FOAM); return; } + if(bullet.worldObj.rand.nextBoolean()) { + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + ix += dir.offsetX; iy += dir.offsetY; iz += dir.offsetZ; + } + Block b = bullet.worldObj.getBlock(ix, iy, iz); + if(b.isReplaceable(bullet.worldObj, ix, iy, iz) && ModBlocks.foam_layer.canPlaceBlockAt(bullet.worldObj, ix, iy, iz)) { + if(b != ModBlocks.foam_layer) { + bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.foam_layer); + } else { + int meta = bullet.worldObj.getBlockMetadata(ix, iy, iz); + if(meta < 6) bullet.worldObj.setBlockMetadataWithNotify(ix, iy, iz, meta + 1, 3); + else bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.block_foam); + } + } + if(fizz) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); + } + }; + + public static Consumer LAMBDA_FOAM_UPDATE = (bullet) -> { + if(bullet.worldObj.isRemote) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(ModBlocks.block_foam)); + data.setDouble("posX", bullet.posX); data.setDouble("posY", bullet.posY); data.setDouble("posZ", bullet.posZ); + data.setDouble("mX", bullet.motionX + bullet.worldObj.rand.nextGaussian() * 0.1); + data.setDouble("mY", bullet.motionY - 0.2 + bullet.worldObj.rand.nextGaussian() * 0.1); + data.setDouble("mZ", bullet.motionZ + bullet.worldObj.rand.nextGaussian() * 0.1); + MainRegistry.proxy.effectNT(data); + } + }; + + public static BiConsumer LAMBDA_SAND_HIT = (bullet, mop) -> { + if(!bullet.worldObj.isRemote) { + int ix = mop.blockX; + int iy = mop.blockY; + int iz = mop.blockZ; + TileEntity core = CompatExternal.getCoreFromPos(bullet.worldObj, ix, iy, iz); + if(core instanceof IRepairable) { ((IRepairable) core).tryExtinguish(bullet.worldObj, ix, iy, iz, EnumExtinguishType.SAND); return; } + if(bullet.worldObj.rand.nextBoolean()) { + ForgeDirection dir = ForgeDirection.getOrientation(mop.sideHit); + ix += dir.offsetX; iy += dir.offsetY; iz += dir.offsetZ; + } + Block b = bullet.worldObj.getBlock(ix, iy, iz); + if((b.isReplaceable(bullet.worldObj, ix, iy, iz) || b == ModBlocks.sand_boron_layer) && ModBlocks.sand_boron_layer.canPlaceBlockAt(bullet.worldObj, ix, iy, iz)) { + if(b != ModBlocks.sand_boron_layer) { + bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.sand_boron_layer); + } else { + int meta = bullet.worldObj.getBlockMetadata(ix, iy, iz); + if(meta < 6) bullet.worldObj.setBlockMetadataWithNotify(ix, iy, iz, meta + 1, 3); + else bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.sand_boron); + } + if(b.getMaterial() == Material.fire) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F); + } + } + }; + + public static Consumer LAMBDA_SAND_UPDATE = (bullet) -> { + if(bullet.worldObj.isRemote) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(ModBlocks.sand_boron)); + data.setDouble("posX", bullet.posX); data.setDouble("posY", bullet.posY); data.setDouble("posZ", bullet.posZ); + data.setDouble("mX", bullet.motionX + bullet.worldObj.rand.nextGaussian() * 0.1); + data.setDouble("mY", bullet.motionY - 0.2 + bullet.worldObj.rand.nextGaussian() * 0.1); + data.setDouble("mZ", bullet.motionZ + bullet.worldObj.rand.nextGaussian() * 0.1); + MainRegistry.proxy.effectNT(data); + } + }; public static Consumer LAMBDA_SET_HOOK = (entity) -> { EntityBulletBaseMK4 bullet = (EntityBulletBaseMK4) entity; @@ -88,6 +230,19 @@ public class XFactoryTool { public static void init() { + fext_water = new BulletConfig().setItem(new ItemStack(ModItems.ammo_fireext, 1, 0)).setReloadCount(300).setLife(100).setVel(0.75F).setGrav(0.04D).setSpread(0.025F) + .setOnUpdate(LAMBDA_WATER_UPDATE) + .setOnEntityHit((bulletEntity, target) -> { if(target.entityHit != null) target.entityHit.extinguish(); }) + .setOnRicochet(LAMBDA_WATER_HIT); + fext_foam = new BulletConfig().setItem(new ItemStack(ModItems.ammo_fireext, 1, 1)).setReloadCount(300).setLife(100).setVel(0.75F).setGrav(0.04D).setSpread(0.05F) + .setOnUpdate(LAMBDA_FOAM_UPDATE) + .setOnEntityHit((bulletEntity, target) -> { if(target.entityHit != null) target.entityHit.extinguish(); }) + .setOnRicochet(LAMBDA_FOAM_HIT); + fext_sand = new BulletConfig().setItem(new ItemStack(ModItems.ammo_fireext, 1, 1)).setReloadCount(300).setLife(100).setVel(0.75F).setGrav(0.04D).setSpread(0.05F) + .setOnUpdate(LAMBDA_SAND_UPDATE) + .setOnEntityHit((bulletEntity, target) -> { if(target.entityHit != null) target.entityHit.extinguish(); }) + .setOnRicochet(LAMBDA_SAND_HIT); + ct_hook = new BulletConfig().setItem(EnumAmmo.CT_HOOK).setRenderRotations(false).setLife(6_000).setVel(3F).setGrav(0.035D).setDoesPenetrate(true).setDamageFalloffByPen(false) .setOnUpdate(LAMBDA_SET_HOOK).setOnImpact(LAMBDA_HOOK); ct_mortar = new BulletConfig().setItem(EnumAmmo.CT_MORTAR).setDamage(2.5F).setLife(200).setVel(3F).setGrav(0.035D) @@ -95,6 +250,17 @@ public class XFactoryTool { ct_mortar_charge = new BulletConfig().setItem(EnumAmmo.CT_MORTAR_CHARGE).setDamage(5F).setLife(200).setVel(3F).setGrav(0.035D) .setOnImpact(LAMBDA_MORTAR_CHARGE); + ModItems.gun_fireext = new ItemGunBaseNT(WeaponQuality.UTILITY, new GunConfig() + .dura(5_000).draw(10).inspect(55).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCLE) + .rec(new Receiver(0) + .dmg(0F).delay(1).dry(0).auto(true).spread(0F).spreadHipfire(0F).reload(20).jam(0).sound("hbm:weapon.extinguisher", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 300).addConfigs(fext_water, fext_foam, fext_sand)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire()) + .setupStandardConfiguration() + .orchestra(Orchestras.ORCHESTRA_FIREEXT) + ).setUnlocalizedName("gun_fireext"); + ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig() .dura(3_000).draw(10).inspect(55).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX) .rec(new Receiver(0) diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 4af2dd3c3..d01ac85f5 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -491,27 +491,6 @@ public class ModEventHandlerClient { EntityPlayer player = Minecraft.getMinecraft().thePlayer; ItemStack held = player.getHeldItem(); - if(held == null) return; - if(!(held.getItem() instanceof ItemGunBase)) return; - - GunConfiguration config = ((ItemGunBase) held.getItem()).mainConfig; - - if(config == null) return; - if(config.zoomFOV == 0F || !player.isSneaking()) return; - - if(config.absoluteFOV) { - event.newfov = config.zoomFOV; - } else { - event.newfov += config.zoomFOV; - } - } - - @SubscribeEvent - public void setupNewFOV(FOVUpdateEvent event) { - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - ItemStack held = player.getHeldItem(); - if(held == null) return; IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(held, IItemRenderer.ItemRenderType.EQUIPPED); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java index 012294910..62997552c 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderFireExt.java @@ -2,9 +2,9 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunBase; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.factory.XFactoryTool; +import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.main.ResourceManager; import net.minecraft.client.Minecraft; @@ -41,15 +41,11 @@ public class ItemRenderFireExt implements IItemRenderer { GL11.glEnable(GL11.GL_CULL_FACE); - int magType = ItemGunBase.getMagType(item); - int config = ((ItemGunBase)ModItems.gun_fireext).mainConfig.config.get(magType); - int ammo = BulletConfigSyncingUtil.pullConfig(config).ammo.meta; - ResourceLocation tex; - switch (ammo) { - case 0: tex = ResourceManager.fireext_foam_tex; break; - case 1: tex = ResourceManager.fireext_sand_tex; break; - default: tex = ResourceManager.fireext_tex; break; - } + ItemGunBaseNT gun = (ItemGunBaseNT) item.getItem(); + IMagazine mag = gun.getConfig(item, 0).getReceivers(item)[0].getMagazine(item); + ResourceLocation tex = ResourceManager.fireext_tex; + if(mag.getType(item, null) == XFactoryTool.fext_foam) tex = ResourceManager.fireext_foam_tex; + if(mag.getType(item, null) == XFactoryTool.fext_sand) tex = ResourceManager.fireext_sand_tex; Minecraft.getMinecraft().renderEngine.bindTexture(tex); switch(type) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index aa9f9736f..9db6921c8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -99,7 +99,7 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements this.processTime = recipe.duration - (recipe.duration * redLevel / 6) + (recipe.duration * blueLevel / 3); this.consumption = recipe.consumption + (recipe.consumption * redLevel) - (recipe.consumption * blueLevel / 6); this.consumption *= Math.pow(2, blackLevel); - intendedMaxPower = recipe.consumption * 20; + intendedMaxPower = consumption * 20; if(canProcess(recipe)) { this.progress += (1 + blackLevel); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java index 5515a816d..b8cfe0333 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java @@ -105,7 +105,7 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp this.processTime = recipe.duration - (recipe.duration * redLevel / 6) + (recipe.duration * blueLevel / 3); this.consumption = recipe.consumption + (recipe.consumption * redLevel) - (recipe.consumption * blueLevel / 6); this.consumption *= Math.pow(2, blackLevel); - intendedMaxPower = recipe.consumption * 20; + intendedMaxPower = consumption * 20; if(canProcess(recipe)) { this.progress += (1 + blackLevel); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 84c56ab7c..9ca467285 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -11,7 +11,6 @@ import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMold; import com.hbm.items.machine.ItemScraps; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; From 9d3860df64f779af50d95455a4ea840b395c7a4a Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Fri, 23 May 2025 21:47:03 +0800 Subject: [PATCH 086/181] Fix: Make generateSphereRays run asynchronously --- .../com/hbm/explosion/ExplosionNukeRayParallelized.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index 81e28cb63..ab0527d25 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -28,7 +28,8 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private final int strength; private final int radius; - private final List directions; + private volatile List directions; + private final CompletableFuture> directionsFuture; private final ConcurrentMap destructionMap; private final ConcurrentMap snapshots; @@ -67,7 +68,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { int workers = Math.max(1, Runtime.getRuntime().availableProcessors() - 1); this.pool = Executors.newWorkStealingPool(workers); - this.directions = generateSphereRays(rayCount); + this.directionsFuture = CompletableFuture.supplyAsync(() -> generateSphereRays(rayCount)); for (int i = 0; i < rayCount; i++) rayQueue.add(new RayTask(i)); for (int i = 0; i < workers; i++) pool.submit(new Worker()); @@ -406,6 +407,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } void init() { + if (directions == null) directions = directionsFuture.join(); Vec3 dir = directions.get(this.dirIndex); this.px = explosionX; this.py = explosionY; @@ -413,7 +415,8 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { this.x = originX; this.y = originY; this.z = originZ; - // This scales the crate. higher = bigger crate. Adjust if the radius of the crate deviates from expected. + // This scales the crater. higher = bigger. + // Currently the crater is a little bit bigger than the original implementation this.energy = strength * 0.3F; this.currentRayPosition = 0.0; From 1a5fda1847138e137ebf74a95abb0dda3ebdca21 Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Sat, 24 May 2025 09:00:15 +0800 Subject: [PATCH 087/181] Feat: accumulatedDestruction --- src/main/java/com/hbm/config/BombConfig.java | 2 + .../ExplosionNukeRayParallelized.java | 152 ++++++++++++++++-- 2 files changed, 140 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/config/BombConfig.java b/src/main/java/com/hbm/config/BombConfig.java index 927ebd3ba..64ee42417 100644 --- a/src/main/java/com/hbm/config/BombConfig.java +++ b/src/main/java/com/hbm/config/BombConfig.java @@ -27,6 +27,7 @@ public class BombConfig { public static int limitExplosionLifespan = 0; public static boolean chunkloading = true; public static boolean parallelization = true; + public static boolean accumulatedDestruction = true; public static void loadFromConfig(Configuration config) { @@ -96,5 +97,6 @@ public class BombConfig { chunkloading = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableChunkLoading", "Allows all types of procedural explosions to keep the central chunk loaded.", true); parallelization = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableParallelization", "Allows explosions to use multiple threads.", true); + accumulatedDestruction = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableAccumulatedDestruction", "Enables the accumulated destruction model for explosions. Blocks accumulate damage and are only destroyed once their resistance is exceeded.\nMore physically accurate, slightly slower. Requires enableParallelization = true.", true); } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index ab0527d25..6cab5a01c 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -1,5 +1,6 @@ package com.hbm.explosion; +import com.hbm.config.BombConfig; import com.hbm.interfaces.IExplosionRay; import com.hbm.main.MainRegistry; import net.minecraft.block.Block; @@ -15,6 +16,7 @@ import org.apache.logging.log4j.Level; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicLongArray; +import java.util.concurrent.atomic.DoubleAdder; public class ExplosionNukeRayParallelized implements IExplosionRay { @@ -31,6 +33,8 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private volatile List directions; private final CompletableFuture> directionsFuture; private final ConcurrentMap destructionMap; + private final ConcurrentMap accumulatedDamageMap; + private final ConcurrentMap snapshots; private final BlockingQueue rayQueue; @@ -40,9 +44,9 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { private final Thread latchWatcherThread; private final List orderedChunks; private volatile boolean collectFinished = false; + private volatile boolean consolidationFinished = false; private volatile boolean destroyFinished = false; - public ExplosionNukeRayParallelized(World world, double x, double y, double z, int strength, int speed, int radius) { this.world = world; this.explosionX = x; @@ -60,6 +64,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { this.latch = new CountDownLatch(rayCount); this.destructionMap = new ConcurrentHashMap<>(); + this.accumulatedDamageMap = new ConcurrentHashMap<>(); this.snapshots = new ConcurrentHashMap<>(); this.orderedChunks = new ArrayList<>(); @@ -80,6 +85,11 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { Thread.currentThread().interrupt(); } finally { collectFinished = true; + if (BombConfig.accumulatedDestruction) { + pool.submit(this::runConsolidation); + } else { + consolidationFinished = true; + } } }, "ExplosionNuke-LatchWatcher-" + System.nanoTime()); this.latchWatcherThread.setDaemon(true); @@ -110,7 +120,8 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { @Override public void destructionTick(int timeBudgetMs) { - if (!collectFinished || destroyFinished) return; + if (!collectFinished || !consolidationFinished || destroyFinished) return; // Added consolidationFinished check + final long deadline = System.nanoTime() + timeBudgetMs * 1_000_000L; if (orderedChunks.isEmpty() && !destructionMap.isEmpty()) { @@ -193,12 +204,13 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { @Override public boolean isComplete() { - return collectFinished && destroyFinished; + return collectFinished && consolidationFinished && destroyFinished; } @Override public void cancel() { this.collectFinished = true; + this.consolidationFinished = true; this.destroyFinished = true; if (this.rayQueue != null) this.rayQueue.clear(); @@ -227,6 +239,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } } if (this.destructionMap != null) this.destructionMap.clear(); + if (this.accumulatedDamageMap != null) this.accumulatedDamageMap.clear(); if (this.snapshots != null) this.snapshots.clear(); if (this.orderedChunks != null) this.orderedChunks.clear(); } @@ -291,6 +304,72 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { return list; } + private void runConsolidation() { + Iterator> chunkEntryIterator = accumulatedDamageMap.entrySet().iterator(); + while (chunkEntryIterator.hasNext()) { + Map.Entry entry = chunkEntryIterator.next(); + ChunkCoordIntPair cp = entry.getKey(); + ChunkDamageAccumulator accumulator = entry.getValue(); + + if (accumulator.isEmpty()) { + chunkEntryIterator.remove(); + continue; + } + + ConcurrentBitSet chunkDestructionBitSet = destructionMap.computeIfAbsent(cp, k -> new ConcurrentBitSet()); + + Iterator> damageEntryIterator = accumulator.entrySet().iterator(); + while (damageEntryIterator.hasNext()) { + Map.Entry damageEntry = damageEntryIterator.next(); + int bitIndex = damageEntry.getKey(); + + float accumulatedDamage = (float) damageEntry.getValue().sum(); + + if (accumulatedDamage <= 0.0f) { + damageEntryIterator.remove(); + continue; + } + + int yGlobal = 255 - (bitIndex >>> 8); + int subY = yGlobal >> 4; + + if (subY < 0) { + damageEntryIterator.remove(); + continue; + } + + ChunkKey snapshotKey = new ChunkKey(cp.chunkXPos, cp.chunkZPos, subY); + SubChunkSnapshot snap = snapshots.get(snapshotKey); + Block originalBlock; + + if (snap == null || snap == SubChunkSnapshot.EMPTY) { + damageEntryIterator.remove(); + continue; + } else { + int xLocal = (bitIndex >>> 4) & 0xF; + int zLocal = bitIndex & 0xF; + originalBlock = snap.getBlock(xLocal, yGlobal & 0xF, zLocal); + if (originalBlock == Blocks.air) { + damageEntryIterator.remove(); + continue; + } + } + + float resistance = getNukeResistance(originalBlock); + if (accumulatedDamage >= resistance) { + chunkDestructionBitSet.set(bitIndex); + damageEntryIterator.remove(); + } + } + + if (accumulator.isEmpty()) { + chunkEntryIterator.remove(); + } + } + accumulatedDamageMap.clear(); + consolidationFinished = true; + } + private static class ChunkKey { final ChunkCoordIntPair pos; final int subY; @@ -349,7 +428,13 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { if (bit < 0 || bit >= BITSET_SIZE) return; int wd = bit >>> 6; long m = ~(1L << (bit & 63)); - words.set(wd, words.get(wd) & m); + while (true) { + long oldWord = words.get(wd); + long newWord = oldWord & m; + if (oldWord == newWord || words.compareAndSet(wd, oldWord, newWord)) { + return; + } + } } int nextSetBit(int from) { @@ -370,6 +455,35 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { } } + private static class ChunkDamageAccumulator { + // key = bitIndex, value = total accumulated damage + private final ConcurrentHashMap damageMap = new ConcurrentHashMap<>(); + + public void addDamage(int bitIndex, float damageAmount) { + if (damageAmount <= 0) return; + DoubleAdder adder = damageMap.computeIfAbsent(bitIndex, k -> new DoubleAdder()); + adder.add(damageAmount); + } + + public float getDamage(int bitIndex) { + DoubleAdder adder = damageMap.get(bitIndex); + return adder == null ? 0f : (float) adder.sum(); + } + + public void clearDamage(int bitIndex) { + damageMap.remove(bitIndex); + } + + public Set> entrySet() { + return damageMap.entrySet(); + } + + + public boolean isEmpty() { + return damageMap.isEmpty(); + } + } + private class Worker implements Runnable { @Override public void run() { @@ -409,15 +523,15 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { void init() { if (directions == null) directions = directionsFuture.join(); Vec3 dir = directions.get(this.dirIndex); + // This scales the crater. Higher = bigger. + // Currently the crater is a little bit bigger than the original implementation + this.energy = strength * 0.3F; this.px = explosionX; this.py = explosionY; this.pz = explosionZ; this.x = originX; this.y = originY; this.z = originZ; - // This scales the crater. higher = bigger. - // Currently the crater is a little bit bigger than the original implementation - this.energy = strength * 0.3F; this.currentRayPosition = 0.0; double dirX = dir.xCoord; @@ -484,14 +598,24 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { energy = 0; } else { double energyLossFactor = getEnergyLossFactor(resistance); - energy -= (float) (energyLossFactor * segmentLenForProcessing); - if (energy > 0) { - ConcurrentBitSet bs = destructionMap.computeIfAbsent( - ck.pos, - posKey -> new ConcurrentBitSet() - ); + float damageDealt = (float) (energyLossFactor * segmentLenForProcessing); + energy -= damageDealt; + if (damageDealt > 0) { int bitIndex = ((WORLD_HEIGHT - 1 - y) << 8) | ((x & 0xF) << 4) | (z & 0xF); - bs.set(bitIndex); + if (BombConfig.accumulatedDestruction) { + ChunkCoordIntPair chunkPos = ck.pos; + ChunkDamageAccumulator chunkAccumulator = + accumulatedDamageMap.computeIfAbsent(chunkPos, k -> new ChunkDamageAccumulator()); + chunkAccumulator.addDamage(bitIndex, damageDealt); + } else { + if (energy > 0) { + ConcurrentBitSet bs = destructionMap.computeIfAbsent( + ck.pos, + posKey -> new ConcurrentBitSet() + ); + bs.set(bitIndex); + } + } } } } From ce99e65b0ba4a0b15090ab96c3e2db43640e9b3b Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 25 May 2025 22:12:33 +0200 Subject: [PATCH 088/181] the spoingus --- changelog | 11 +- gradle.properties | 16 +- .../inventory/recipes/AssemblerRecipes.java | 14 + .../items/machine/ItemAssemblyTemplate.java | 4 +- .../weapon/sedna/factory/XFactory50.java | 2 +- .../assets/hbm/models/machines/chemplant.obj | 5098 +++++++++++++++++ .../textures/models/machines/chemplant.png | Bin 0 -> 2343 bytes .../models/machines/chemplant_fluid.png | Bin 0 -> 148 bytes 8 files changed, 5136 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/machines/chemplant.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/chemplant.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/chemplant_fluid.png diff --git a/changelog b/changelog index b730d65b1..0460a9789 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,11 @@ +## Added +* Two new anti-material rifle variants + * .50 BMG demolisher rounds are finally usable + * Added a special ammo type exclusive to one of the variants +* Starmetal .50 BMG now returns + * Overall better armor piercing stats than DU + * Not compatible with the M2, only usable in amat rifles + ## Changed * The RBMK console's grid can now be rotated using a screwdriver * Tool abilities have changed @@ -12,4 +20,5 @@ ## Fixed * Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts * Fixed strand caster fluid gauges going out of bounds -* Fixed arc welder and soldering station not changing buffer size based on upgrade, preventing use of higher overdrive tiers \ No newline at end of file +* Fixed arc welder and soldering station not changing buffer size based on upgrade, preventing use of higher overdrive tiers +* Fixed non-standard template folder recipes not using the correct icon \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index ad311add0..d13d533f6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,18 +9,19 @@ credits=HbMinecraft,\ \ Drillgon200 (effects, models, porting),\ \ MartinTheDragon (calculator, chunk-based fallout, bendable cranes, pipe improvements, PWR sounds),\ \ Alcater (GUI textures, porting),\ - \ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, better particle diodes),\ + \ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, conveyor wand, NBT structures),\ \ Pheo (textures, various machines, models, weapons),\ - \ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron, weapon animations),\ + \ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron, weapon animations),\ \ UFFR (RTG pellets, guns, casings, euphemium capacitor, nucleartech.wiki),\ \ LePeep (coilgun model, BDCL QC),\ \ Adam29 (liquid petroleum, ethanol, electric furnace),\ \ Pvndols (thorium fuel recipe, gas turbine),\ \ JamesH2 (blood mechanics, nitric acid, particle emitter),\ - \ Lazzzycat (structures),\ + \ Lazzzycat (structures, mob gear),\ \ PastaBaguette (coal horse decal),\ \ Doctor17 (russian localization)),\ \ Pashtet (russian localization),\ + \ 7H40 (russian localization),\ \ Bismarck (chinese localization),\ \ Creeper-banner (chinese localization),\ \ 5467864 (chinese localization),\ @@ -32,6 +33,7 @@ credits=HbMinecraft,\ \ UnnameTokiko (chinese localization),\ \ Herobrine 457985 (chinese localization),\ \ xxwinhere (chinese localization),\ + \ Nycticoraxnightheron (chinese localization),\ \ Maksymisio (polish localization)\ \ el3ctro4ndre (italian localization),\ \ Pu-238 (Tom impact effects),\ @@ -40,9 +42,11 @@ credits=HbMinecraft,\ \ Nos (models),\ \ WushiThe (models),\ \ Minecreep (models),\ + \ ackbarcrowbars (models),\ + \ haru315 (spiral point algorithm),\ + \ mlbv (threaded MK5),\ \ 70k (textures, glyphid AI, strand caster, electrolyzer changes, cryolite),\ \ instantnootles (concept artist),\ - \ haru315 (spiral point algorithm),\ \ Sten89 (models),\ \ Pixelguru26 (textures),\ \ TheBlueHat (textures),\ @@ -60,7 +64,9 @@ credits=HbMinecraft,\ \ KoblizekXD (doors),\ \ FOlkvangrField (custom machine parts),\ \ RosaTryp (centrifuge config),\ - \ Toshayo (satellite loot system, project settings, gradle curse task),\ + \ Toshayo (satellite loot system, project settings, gradle curse task, OpenComputers integration),\ + \ Dash (PA particle serialization fix),\ + \ archiecarrot123 (armor rendering compatibility fix),\ \ icomet (refactoring),\ \ martemen (project settings),\ \ OvermindDL1 (project settings),\ diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index b416a49a9..82fc9d8f4 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -28,6 +28,7 @@ import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; @@ -36,6 +37,7 @@ import com.hbm.items.machine.ItemPACoil.EnumCoilType; import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.items.weapon.ItemAmmoHIMARS; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.Loader; @@ -793,6 +795,18 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), }, 100); + makeRecipe(new ComparableStack(ModItems.ammo_standard, 6, EnumAmmo.BMG50_SM), new AStack[] { + new ComparableStack(ModItems.casing, 1, EnumCasingType.LARGE_STEEL), + new OreDictStack(ANY_SMOKELESS.dust(), 6), + new OreDictStack(STAR.ingot(), 3), + }, 100, ModItems.journal_silver); + makeRecipe(new ComparableStack(ModItems.ammo_secret, 12, EnumAmmoSecret.BMG50_BLACK), new AStack[] { + new ComparableStack(ModItems.casing, 2, EnumCasingType.LARGE_STEEL), + new OreDictStack(ANY_SMOKELESS.dust(), 24), + new OreDictStack(WEAPONSTEEL.ingot(), 8), + new ComparableStack(ModItems.black_diamond), + }, 1200, ModItems.journal_silver); + makeRecipe(new ComparableStack(ModBlocks.machine_silex, 1), new AStack[] { new ComparableStack(ModBlocks.glass_quartz, 16), !exp ? new OreDictStack(STEEL.plateCast(), 8) : new OreDictStack(STEEL.heavyComp(), 1), diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index f7bad43dd..3c4c8f51a 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -54,8 +54,8 @@ public class ItemAssemblyTemplate extends Item { //LEGACY if(out == null) out = AssemblerRecipes.recipeList.get(stack.getItemDamage()); - AssemblerRecipe recipe = AssemblerRecipes.recipes.get(stack); - + AssemblerRecipe recipe = AssemblerRecipes.recipes.get(out); + if(recipe != null && !recipe.folders.contains(ModItems.template_folder)) return this.hiddenIcon; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java index b969bdfa8..a73db227c 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -68,7 +68,7 @@ public class XFactory50 { .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50du")); bmg50_he = new BulletConfig().setItem(EnumAmmo.BMG50_HE).setCasing(EnumCasingType.LARGE_STEEL, 12).setWear(3F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE) .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50he")); - bmg50_sm = new BulletConfig().setItem(EnumAmmo.BMG50_SM).setCasing(EnumCasingType.LARGE_STEEL, 12).setWear(10F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(2.5F).setThresholdNegation(30F).setArmorPiercing(0.35F) + bmg50_sm = new BulletConfig().setItem(EnumAmmo.BMG50_SM).setCasing(EnumCasingType.LARGE_STEEL, 6).setWear(10F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(2.5F).setThresholdNegation(30F).setArmorPiercing(0.35F) .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50sm")); bmg50_black = new BulletConfig().setItem(EnumAmmoSecret.BMG50_BLACK).setWear(5F).setDoesPenetrate(true).setDamageFalloffByPen(false).setSpectral(true).setDamage(1.5F).setHeadshot(3F).setThresholdNegation(30F).setArmorPiercing(0.35F) .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("bmg50black")); diff --git a/src/main/resources/assets/hbm/models/machines/chemplant.obj b/src/main/resources/assets/hbm/models/machines/chemplant.obj new file mode 100644 index 000000000..7fa2d561f --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/chemplant.obj @@ -0,0 +1,5098 @@ +# Blender v2.79 (sub 0) OBJ File: 'chemplant2.blend' +# www.blender.org +o Fluid +v 0.500000 1.375000 -0.375000 +v 0.165152 1.375000 -0.308394 +v -0.118718 1.375000 -0.118718 +v -0.308394 1.375000 0.165152 +v -0.375000 1.375000 0.500000 +v -0.308394 1.375000 0.834848 +v -0.118718 1.375000 1.118718 +v 0.165152 1.375000 1.308394 +v 0.500000 1.375000 1.375000 +v 0.834848 1.375000 1.308394 +v 1.118718 1.375000 1.118719 +v 1.308394 1.375000 0.834848 +v 1.375000 1.375000 0.500000 +v 1.308394 1.375000 0.165152 +v 1.118718 1.375000 -0.118719 +v 0.834847 1.375000 -0.308395 +v -0.118718 1.000000 1.118718 +v 0.165152 1.000000 1.308394 +v 0.500000 1.000000 1.375000 +v 0.834848 1.000000 1.308394 +v 1.118718 1.000000 1.118719 +v 1.308394 1.000000 0.834848 +v 1.375000 1.000000 0.500000 +v 1.308394 1.000000 0.165152 +v 1.118718 1.000000 -0.118719 +v 0.500000 1.375000 0.500000 +vt 0.687500 -0.000000 +vt 0.750000 -0.000000 +vt 0.718750 1.000000 +vt 0.812500 -0.000000 +vt 0.781250 1.000000 +vt 0.875000 0.000000 +vt 0.843750 1.000000 +vt 0.937500 -0.000000 +vt 0.906250 1.000000 +vt 1.000000 -0.000000 +vt 0.968750 1.000000 +vt -0.000000 -0.000000 +vt 0.062500 0.000000 +vt 0.031250 1.000000 +vt 0.125000 -0.000000 +vt 0.093750 1.000000 +vt 0.187500 -0.000000 +vt 0.156250 1.000000 +vt 0.250000 0.000000 +vt 0.218750 1.000000 +vt 0.312500 0.000000 +vt 0.281250 1.000000 +vt 0.375000 0.000000 +vt 0.343750 1.000000 +vt 0.437500 0.000000 +vt 0.406250 1.000000 +vt 0.500000 -0.000000 +vt 0.468750 1.000000 +vt 0.562500 -0.000000 +vt 0.531250 1.000000 +vt 0.625000 -0.000000 +vt 0.593750 1.000000 +vt 0.656250 1.000000 +vt -0.000000 -0.000000 +vt 0.062500 0.428571 +vt -0.000000 0.428571 +vt 0.062500 -0.000000 +vt 0.125000 0.428571 +vt 0.125000 -0.000000 +vt 0.187500 0.428571 +vt 0.187500 -0.000000 +vt 0.250000 0.428571 +vt 0.250000 0.000000 +vt 0.312500 0.428571 +vt 0.312500 0.000000 +vt 0.375000 0.428571 +vt 0.375000 0.000000 +vt 0.437500 0.428571 +vt 0.500000 -0.000000 +vt 0.437500 -0.000000 +vt 0.500000 0.428571 +vn 0.0000 1.0000 0.0000 +vn -0.5556 0.0000 0.8315 +vn -0.3827 0.0000 0.9239 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn 0.9239 0.0000 0.3827 +vn 1.0000 0.0000 -0.0000 +vn 0.9239 0.0000 -0.3827 +vn 0.8315 0.0000 -0.5556 +s off +f 2/1/1 3/2/1 26/3/1 +f 3/2/1 4/4/1 26/5/1 +f 4/4/1 5/6/1 26/7/1 +f 5/6/1 6/8/1 26/9/1 +f 6/8/1 7/10/1 26/11/1 +f 7/12/1 8/13/1 26/14/1 +f 8/13/1 9/15/1 26/16/1 +f 9/15/1 10/17/1 26/18/1 +f 10/17/1 11/19/1 26/20/1 +f 11/19/1 12/21/1 26/22/1 +f 12/21/1 13/23/1 26/24/1 +f 13/23/1 14/25/1 26/26/1 +f 14/25/1 15/27/1 26/28/1 +f 15/27/1 16/29/1 26/30/1 +f 16/29/1 1/31/1 26/32/1 +f 1/31/1 2/1/1 26/33/1 +s 1 +f 17/34/2 8/35/3 7/36/2 +f 18/37/3 9/38/4 8/35/3 +f 19/39/4 10/40/5 9/38/4 +f 20/41/5 11/42/6 10/40/5 +f 21/43/6 12/44/7 11/42/6 +f 22/45/7 13/46/8 12/44/7 +f 23/47/8 14/48/9 13/46/8 +f 25/49/10 14/48/9 24/50/9 +f 17/34/2 18/37/3 8/35/3 +f 18/37/3 19/39/4 9/38/4 +f 19/39/4 20/41/5 10/40/5 +f 20/41/5 21/43/6 11/42/6 +f 21/43/6 22/45/7 12/44/7 +f 22/45/7 23/47/8 13/46/8 +f 23/47/8 24/50/9 14/48/9 +f 25/49/10 15/51/10 14/48/9 +o Spinner +v 0.500000 0.875000 0.250000 +v 0.323223 0.875000 0.323223 +v 0.250000 0.875000 0.500000 +v 0.323223 0.875000 0.676777 +v 0.500000 0.875000 0.750000 +v 0.676777 0.875000 0.676777 +v 0.750000 0.875000 0.500000 +v 0.676777 0.875000 0.323223 +v 0.500000 1.625000 0.250000 +v 0.323223 1.625000 0.323223 +v 0.250000 1.625000 0.500000 +v 0.323223 1.625000 0.676777 +v 0.500000 1.625000 0.750000 +v 0.676777 1.625000 0.676777 +v 0.750000 1.625000 0.500000 +v 0.676777 1.625000 0.323223 +v 0.625000 0.875000 0.562500 +v 1.250000 0.875000 0.562500 +v 0.625000 0.875000 0.437500 +v 1.250000 0.875000 0.437500 +v -0.250000 0.875000 0.562500 +v 0.375000 0.875000 0.562500 +v 1.250000 1.125000 0.562500 +v 1.250000 1.125000 0.437500 +v -0.250000 0.875000 0.437500 +v 1.250000 1.250000 0.562500 +v 0.375000 0.875000 0.437500 +v 1.250000 1.250000 0.437500 +v 0.625000 1.625000 0.437500 +v 0.625000 1.625000 0.562500 +v 1.250000 1.625000 0.562500 +v 1.250000 1.625000 0.437500 +v 0.875000 1.125000 0.562500 +v 0.875000 1.125000 0.437500 +v 0.875000 1.250000 0.562500 +v 0.875000 1.250000 0.437500 +v -0.250000 1.125000 0.437500 +v -0.250000 1.125000 0.562500 +v -0.250000 1.250000 0.437500 +v -0.250000 1.250000 0.562500 +v 0.375000 1.625000 0.562500 +v 0.375000 1.625000 0.437500 +v -0.250000 1.625000 0.437500 +v -0.250000 1.625000 0.562500 +v 0.125000 1.125000 0.437500 +v 0.125000 1.125000 0.562500 +v 0.125000 1.250000 0.437500 +v 0.125000 1.250000 0.562500 +v 0.562500 0.875000 0.375000 +v 0.562500 0.875000 -0.250000 +v 0.437500 0.875000 0.375000 +v 0.437500 0.875000 -0.250000 +v 0.562500 0.875000 1.250000 +v 0.562500 0.875000 0.625000 +v 0.562500 1.125000 -0.250000 +v 0.437500 1.125000 -0.250000 +v 0.437500 0.875000 1.250000 +v 0.562500 1.250000 -0.250000 +v 0.437500 0.875000 0.625000 +v 0.437500 1.250000 -0.250000 +v 0.437500 1.625000 0.375000 +v 0.562500 1.625000 0.375000 +v 0.562500 1.625000 -0.250000 +v 0.437500 1.625000 -0.250000 +v 0.562500 1.125000 0.125000 +v 0.437500 1.125000 0.125000 +v 0.562500 1.250000 0.125000 +v 0.437500 1.250000 0.125000 +v 0.437500 1.125000 1.250000 +v 0.562500 1.125000 1.250000 +v 0.437500 1.250000 1.250000 +v 0.562500 1.250000 1.250000 +v 0.562500 1.625000 0.625000 +v 0.437500 1.625000 0.625000 +v 0.437500 1.625000 1.250000 +v 0.562500 1.625000 1.250000 +v 0.437500 1.125000 0.875000 +v 0.562500 1.125000 0.875000 +v 0.437500 1.250000 0.875000 +v 0.562500 1.250000 0.875000 +v 0.632582 0.875000 0.455806 +v 1.074524 0.875000 0.013864 +v 0.544194 0.875000 0.367417 +v 0.986136 0.875000 -0.074524 +v 0.013864 0.875000 1.074524 +v 0.455806 0.875000 0.632583 +v 1.074524 1.125000 0.013864 +v 0.986136 1.125000 -0.074524 +v -0.074524 0.875000 0.986136 +v 1.074524 1.250000 0.013864 +v 0.367417 0.875000 0.544194 +v 0.986136 1.250000 -0.074524 +v 0.544194 1.625000 0.367417 +v 0.632582 1.625000 0.455806 +v 1.074524 1.625000 0.013864 +v 0.986136 1.625000 -0.074524 +v 0.809359 1.125000 0.279029 +v 0.720971 1.125000 0.190640 +v 0.809359 1.250000 0.279029 +v 0.720971 1.250000 0.190640 +v -0.074524 1.125000 0.986136 +v 0.013864 1.125000 1.074524 +v -0.074524 1.250000 0.986136 +v 0.013864 1.250000 1.074524 +v 0.455806 1.625000 0.632583 +v 0.367417 1.625000 0.544194 +v -0.074524 1.625000 0.986136 +v 0.013864 1.625000 1.074524 +v 0.190641 1.125000 0.720971 +v 0.279029 1.125000 0.809359 +v 0.190641 1.250000 0.720971 +v 0.279029 1.250000 0.809359 +v 0.455806 0.875000 0.367417 +v 0.013864 0.875000 -0.074524 +v 0.367417 0.875000 0.455806 +v -0.074524 0.875000 0.013864 +v 1.074524 0.875000 0.986135 +v 0.632582 0.875000 0.544194 +v 0.013864 1.125000 -0.074524 +v -0.074524 1.125000 0.013864 +v 0.986136 0.875000 1.074524 +v 0.013864 1.250000 -0.074524 +v 0.544194 0.875000 0.632583 +v -0.074524 1.250000 0.013864 +v 0.367417 1.625000 0.455806 +v 0.455806 1.625000 0.367417 +v 0.013864 1.625000 -0.074524 +v -0.074524 1.625000 0.013864 +v 0.279029 1.125000 0.190641 +v 0.190641 1.125000 0.279029 +v 0.279029 1.250000 0.190641 +v 0.190641 1.250000 0.279029 +v 0.986136 1.125000 1.074524 +v 1.074524 1.125000 0.986135 +v 0.986136 1.250000 1.074524 +v 1.074524 1.250000 0.986135 +v 0.632582 1.625000 0.544194 +v 0.544194 1.625000 0.632583 +v 0.986136 1.625000 1.074524 +v 1.074524 1.625000 0.986135 +v 0.720971 1.125000 0.809359 +v 0.809359 1.125000 0.720971 +v 0.720971 1.250000 0.809359 +v 0.809359 1.250000 0.720971 +vt 0.331731 0.714286 +vt 0.317308 0.800000 +vt 0.317308 0.714286 +vt 0.302885 0.714286 +vt 0.288462 0.800000 +vt 0.288462 0.714286 +vt 0.274038 0.714286 +vt 0.259615 0.800000 +vt 0.259615 0.714286 +vt 0.360577 0.714286 +vt 0.346154 0.800000 +vt 0.346154 0.714286 +vt 0.331731 0.800000 +vt 0.302885 0.800000 +vt 0.274038 0.800000 +vt 0.375000 0.714286 +vt 0.360577 0.800000 +vt 0.173077 0.742857 +vt 0.201923 0.757143 +vt 0.173077 0.757143 +vt 0.173077 0.742857 +vt 0.201923 0.757143 +vt 0.173077 0.757143 +vt 0.211538 0.714286 +vt 0.201923 0.742857 +vt 0.201923 0.714286 +vt 0.173077 0.757143 +vt 0.201923 0.800000 +vt 0.153846 0.800000 +vt 0.153846 0.714286 +vt 0.173077 0.742857 +vt 0.211538 0.714286 +vt 0.201923 0.742857 +vt 0.201923 0.714286 +vt 0.211538 0.742857 +vt 0.240385 0.757143 +vt 0.211538 0.757143 +vt 0.211538 0.757143 +vt 0.201923 0.757143 +vt 0.211538 0.800000 +vt 0.240385 0.757143 +vt 0.259615 0.800000 +vt 0.240385 0.742857 +vt 0.259615 0.714286 +vt 0.173077 0.757143 +vt 0.201923 0.800000 +vt 0.153846 0.800000 +vt 0.153846 0.714286 +vt 0.173077 0.742857 +vt 0.211538 0.742857 +vt 0.240385 0.757143 +vt 0.211538 0.757143 +vt 0.211538 0.757143 +vt 0.201923 0.757143 +vt 0.211538 0.800000 +vt 0.240385 0.757143 +vt 0.259615 0.800000 +vt 0.240385 0.742857 +vt 0.259615 0.714286 +vt 0.173077 0.742857 +vt 0.201923 0.757143 +vt 0.173077 0.757143 +vt 0.173077 0.742857 +vt 0.201923 0.757143 +vt 0.173077 0.757143 +vt 0.211538 0.714286 +vt 0.201923 0.742857 +vt 0.201923 0.714286 +vt 0.173077 0.757143 +vt 0.201923 0.800000 +vt 0.153846 0.800000 +vt 0.153846 0.714286 +vt 0.173077 0.742857 +vt 0.211538 0.714286 +vt 0.201923 0.742857 +vt 0.201923 0.714286 +vt 0.211538 0.742857 +vt 0.240385 0.757143 +vt 0.211538 0.757143 +vt 0.211538 0.757143 +vt 0.201923 0.757143 +vt 0.211538 0.800000 +vt 0.240385 0.757143 +vt 0.259615 0.800000 +vt 0.240385 0.742857 +vt 0.259615 0.714286 +vt 0.173077 0.757143 +vt 0.201923 0.800000 +vt 0.153846 0.800000 +vt 0.153846 0.714286 +vt 0.173077 0.742857 +vt 0.211538 0.757143 +vt 0.240385 0.742857 +vt 0.240385 0.757143 +vt 0.211538 0.757143 +vt 0.201923 0.757143 +vt 0.211538 0.800000 +vt 0.240385 0.757143 +vt 0.259615 0.800000 +vt 0.240385 0.742857 +vt 0.259615 0.714286 +vt 0.211538 0.742857 +vt 0.173077 0.742857 +vt 0.201923 0.757143 +vt 0.173077 0.757143 +vt 0.173077 0.757143 +vt 0.201923 0.742857 +vt 0.201923 0.757143 +vt 0.211538 0.714286 +vt 0.201923 0.742857 +vt 0.201923 0.714286 +vt 0.173077 0.757143 +vt 0.201923 0.800000 +vt 0.153846 0.800000 +vt 0.153846 0.714286 +vt 0.173077 0.742857 +vt 0.211538 0.714286 +vt 0.201923 0.742857 +vt 0.201923 0.714286 +vt 0.211538 0.757143 +vt 0.240385 0.742857 +vt 0.240385 0.757143 +vt 0.211538 0.757143 +vt 0.201923 0.757143 +vt 0.211538 0.800000 +vt 0.240385 0.757143 +vt 0.259615 0.800000 +vt 0.240385 0.742857 +vt 0.259615 0.714286 +vt 0.211538 0.742857 +vt 0.173077 0.757143 +vt 0.201923 0.800000 +vt 0.153846 0.800000 +vt 0.153846 0.714286 +vt 0.173077 0.742857 +vt 0.211538 0.742857 +vt 0.240385 0.757143 +vt 0.211538 0.757143 +vt 0.211538 0.757143 +vt 0.201923 0.757143 +vt 0.211538 0.800000 +vt 0.240385 0.757143 +vt 0.259615 0.800000 +vt 0.240385 0.742857 +vt 0.259615 0.714286 +vt 0.173077 0.742857 +vt 0.201923 0.757143 +vt 0.173077 0.757143 +vt 0.173077 0.742857 +vt 0.201923 0.757143 +vt 0.173077 0.757143 +vt 0.211538 0.714286 +vt 0.201923 0.742857 +vt 0.201923 0.714286 +vt 0.173077 0.757143 +vt 0.201923 0.800000 +vt 0.153846 0.800000 +vt 0.153846 0.714286 +vt 0.173077 0.742857 +vt 0.211538 0.714286 +vt 0.201923 0.742857 +vt 0.201923 0.714286 +vt 0.211538 0.757143 +vt 0.240385 0.742857 +vt 0.240385 0.757143 +vt 0.211538 0.757143 +vt 0.201923 0.757143 +vt 0.211538 0.800000 +vt 0.240385 0.757143 +vt 0.259615 0.800000 +vt 0.240385 0.742857 +vt 0.259615 0.714286 +vt 0.211538 0.742857 +vt 0.173077 0.757143 +vt 0.201923 0.800000 +vt 0.153846 0.800000 +vt 0.153846 0.714286 +vt 0.173077 0.742857 +vt 0.211538 0.742857 +vt 0.240385 0.757143 +vt 0.211538 0.757143 +vt 0.211538 0.757143 +vt 0.201923 0.757143 +vt 0.211538 0.800000 +vt 0.240385 0.757143 +vt 0.259615 0.800000 +vt 0.240385 0.742857 +vt 0.259615 0.714286 +vt 0.375000 0.800000 +vt 0.201923 0.742857 +vt 0.201923 0.742857 +vt 0.211538 0.742857 +vt 0.211538 0.742857 +vt 0.240385 0.742857 +vt 0.240385 0.742857 +vt 0.201923 0.742857 +vt 0.201923 0.742857 +vt 0.211538 0.742857 +vt 0.211538 0.742857 +vt 0.240385 0.742857 +vt 0.201923 0.742857 +vt 0.173077 0.742857 +vt 0.211538 0.742857 +vt 0.211538 0.742857 +vt 0.240385 0.742857 +vt 0.201923 0.742857 +vt 0.201923 0.742857 +vt 0.211538 0.742857 +vt 0.211538 0.742857 +vt 0.240385 0.742857 +vn 0.9239 0.0000 -0.3827 +vn 0.3827 0.0000 0.9239 +vn -0.9239 0.0000 0.3827 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.9239 0.0000 0.3827 +vn -0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.0000 -1.0000 0.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 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +s off +f 34/52/11 41/53/11 33/54/11 +f 32/55/12 39/56/12 31/57/12 +f 30/58/13 37/59/13 29/60/13 +f 28/61/14 35/62/14 27/63/14 +f 27/63/15 42/64/15 34/52/15 +f 33/54/16 40/65/16 32/55/16 +f 31/57/17 38/66/17 30/58/17 +f 29/67/18 36/68/18 28/61/18 +f 52/69/19 62/70/19 54/71/19 +f 65/72/19 74/73/19 66/74/19 +f 46/75/20 49/76/20 44/77/20 +f 61/78/21 57/79/21 56/80/21 +f 61/78/21 43/81/21 59/82/21 +f 47/83/22 63/84/22 51/85/22 +f 44/77/21 59/82/21 43/81/21 +f 59/86/23 50/87/23 60/88/23 +f 54/89/20 57/79/20 52/90/20 +f 58/91/24 62/92/24 55/93/24 +f 60/94/24 46/75/24 45/95/24 +f 45/95/24 62/92/24 60/94/24 +f 62/70/20 59/86/20 60/88/20 +f 73/96/24 69/97/24 68/98/24 +f 73/96/24 53/99/24 71/100/24 +f 51/85/24 71/100/24 53/99/24 +f 71/101/23 64/102/23 72/103/23 +f 66/104/22 69/97/22 65/105/22 +f 70/106/21 74/107/21 67/108/21 +f 72/109/21 47/83/21 48/110/21 +f 48/110/21 74/107/21 72/109/21 +f 74/73/22 71/101/22 72/103/22 +f 84/111/19 94/112/19 86/113/19 +f 97/114/19 106/115/19 98/116/19 +f 78/117/24 81/118/24 76/119/24 +f 93/120/20 89/121/20 88/122/20 +f 93/120/20 75/123/20 91/124/20 +f 79/125/21 95/126/21 83/127/21 +f 76/119/20 91/124/20 75/123/20 +f 91/128/23 82/129/23 92/130/23 +f 86/131/24 89/121/24 84/132/24 +f 90/133/22 94/134/22 87/135/22 +f 92/136/22 78/117/22 77/137/22 +f 77/137/22 94/134/22 92/136/22 +f 94/112/24 91/128/24 92/130/24 +f 105/138/22 101/139/22 100/140/22 +f 105/138/22 85/141/22 103/142/22 +f 83/127/22 103/142/22 85/141/22 +f 104/143/23 95/144/23 96/145/23 +f 98/146/21 101/139/21 97/147/21 +f 102/148/20 106/149/20 99/150/20 +f 104/151/20 79/125/20 80/152/20 +f 80/152/20 106/149/20 104/151/20 +f 106/115/21 103/153/21 104/143/21 +f 116/154/19 126/155/19 118/156/19 +f 130/157/19 137/158/19 138/159/19 +f 110/160/25 113/161/25 108/162/25 +f 125/163/26 121/164/26 120/165/26 +f 125/163/26 107/166/26 123/167/26 +f 111/168/27 127/169/27 115/170/27 +f 108/162/26 123/167/26 107/166/26 +f 124/171/23 113/172/23 114/173/23 +f 118/174/25 121/164/25 116/175/25 +f 122/176/28 126/177/28 119/178/28 +f 124/179/28 110/160/28 109/180/28 +f 109/180/28 126/177/28 124/179/28 +f 126/155/25 123/181/25 124/171/25 +f 137/182/28 133/183/28 132/184/28 +f 137/182/28 117/185/28 135/186/28 +f 115/170/28 135/186/28 117/185/28 +f 135/187/23 128/188/23 136/189/23 +f 130/190/27 133/183/27 129/191/27 +f 134/192/26 138/193/26 131/194/26 +f 136/195/26 111/168/26 112/196/26 +f 112/196/26 138/193/26 136/195/26 +f 138/159/27 135/187/27 136/189/27 +f 148/197/19 158/198/19 150/199/19 +f 161/200/19 170/201/19 162/202/19 +f 142/203/28 145/204/28 140/205/28 +f 157/206/25 153/207/25 152/208/25 +f 157/206/25 139/209/25 155/210/25 +f 143/211/26 159/212/26 147/213/26 +f 140/205/25 155/210/25 139/209/25 +f 156/214/23 145/215/23 146/216/23 +f 150/217/28 153/207/28 148/218/28 +f 154/219/27 158/220/27 151/221/27 +f 156/222/27 142/203/27 141/223/27 +f 141/223/27 158/220/27 156/222/27 +f 158/198/28 155/224/28 156/214/28 +f 169/225/27 165/226/27 164/227/27 +f 169/225/27 149/228/27 167/229/27 +f 147/213/27 167/229/27 149/228/27 +f 167/230/23 160/231/23 168/232/23 +f 162/233/26 165/226/26 161/234/26 +f 166/235/25 170/236/25 163/237/25 +f 168/238/25 143/211/25 144/239/25 +f 144/239/25 170/236/25 168/238/25 +f 170/201/26 167/230/26 168/232/26 +f 34/52/11 42/64/11 41/53/11 +f 32/55/12 40/65/12 39/56/12 +f 30/58/13 38/66/13 37/59/13 +f 28/61/14 36/68/14 35/62/14 +f 27/63/15 35/62/15 42/64/15 +f 33/54/16 41/53/16 40/65/16 +f 31/57/17 39/56/17 38/66/17 +f 29/67/18 37/240/18 36/68/18 +f 52/69/19 61/241/19 62/70/19 +f 65/72/19 73/242/19 74/73/19 +f 46/75/20 50/243/20 49/76/20 +f 61/78/21 52/90/21 57/79/21 +f 61/78/21 56/80/21 43/81/21 +f 47/83/22 64/244/22 63/84/22 +f 44/77/21 49/76/21 59/82/21 +f 59/86/23 49/245/23 50/87/23 +f 54/89/20 58/91/20 57/79/20 +f 58/91/24 54/89/24 62/92/24 +f 60/94/24 50/243/24 46/75/24 +f 45/95/24 55/93/24 62/92/24 +f 62/70/20 61/241/20 59/86/20 +f 73/96/24 65/105/24 69/97/24 +f 73/96/24 68/98/24 53/99/24 +f 51/85/24 63/84/24 71/100/24 +f 71/101/23 63/246/23 64/102/23 +f 66/104/22 70/106/22 69/97/22 +f 70/106/21 66/104/21 74/107/21 +f 72/109/21 64/244/21 47/83/21 +f 48/110/21 67/108/21 74/107/21 +f 74/73/22 73/242/22 71/101/22 +f 84/111/19 93/247/19 94/112/19 +f 97/114/19 105/248/19 106/115/19 +f 78/117/24 82/249/24 81/118/24 +f 93/120/20 84/132/20 89/121/20 +f 93/120/20 88/122/20 75/123/20 +f 79/125/21 96/250/21 95/126/21 +f 76/119/20 81/118/20 91/124/20 +f 91/128/23 81/251/23 82/129/23 +f 86/131/24 90/133/24 89/121/24 +f 90/133/22 86/131/22 94/134/22 +f 92/136/22 82/249/22 78/117/22 +f 77/137/22 87/135/22 94/134/22 +f 94/112/24 93/247/24 91/128/24 +f 105/138/22 97/147/22 101/139/22 +f 105/138/22 100/140/22 85/141/22 +f 83/127/22 95/126/22 103/142/22 +f 104/143/23 103/153/23 95/144/23 +f 98/146/21 102/148/21 101/139/21 +f 102/148/20 98/146/20 106/149/20 +f 104/151/20 96/250/20 79/125/20 +f 80/152/20 99/150/20 106/149/20 +f 106/115/21 105/248/21 103/153/21 +f 116/154/19 125/252/19 126/155/19 +f 130/157/19 129/253/19 137/158/19 +f 110/160/25 114/254/25 113/161/25 +f 125/163/26 116/175/26 121/164/26 +f 125/163/26 120/165/26 107/166/26 +f 111/168/27 128/255/27 127/169/27 +f 108/162/26 113/161/26 123/167/26 +f 124/171/23 123/181/23 113/172/23 +f 118/174/25 122/176/25 121/164/25 +f 122/176/28 118/174/28 126/177/28 +f 124/179/28 114/254/28 110/160/28 +f 109/180/28 119/178/28 126/177/28 +f 126/155/25 125/252/25 123/181/25 +f 137/182/28 129/191/28 133/183/28 +f 137/182/28 132/184/28 117/185/28 +f 115/170/28 127/169/28 135/186/28 +f 135/187/23 127/256/23 128/188/23 +f 130/190/27 134/192/27 133/183/27 +f 134/192/26 130/190/26 138/193/26 +f 136/195/26 128/255/26 111/168/26 +f 112/196/26 131/194/26 138/193/26 +f 138/159/27 137/158/27 135/187/27 +f 148/197/19 157/257/19 158/198/19 +f 161/200/19 169/258/19 170/201/19 +f 142/203/28 146/259/28 145/204/28 +f 157/206/25 148/218/25 153/207/25 +f 157/206/25 152/208/25 139/209/25 +f 143/211/26 160/260/26 159/212/26 +f 140/205/25 145/204/25 155/210/25 +f 156/214/23 155/224/23 145/215/23 +f 150/217/28 154/219/28 153/207/28 +f 154/219/27 150/217/27 158/220/27 +f 156/222/27 146/259/27 142/203/27 +f 141/223/27 151/221/27 158/220/27 +f 158/198/28 157/257/28 155/224/28 +f 169/225/27 161/234/27 165/226/27 +f 169/225/27 164/227/27 149/228/27 +f 147/213/27 159/212/27 167/229/27 +f 167/230/23 159/261/23 160/231/23 +f 162/233/26 166/235/26 165/226/26 +f 166/235/25 162/233/25 170/236/25 +f 168/238/25 160/260/25 143/211/25 +f 144/239/25 163/237/25 170/236/25 +f 170/201/26 169/258/26 167/230/26 +o Frame +v 1.500000 2.750000 1.500000 +v 1.250000 2.750000 1.500000 +v 1.500000 2.750000 1.250000 +v 1.250000 2.750000 1.250000 +v 1.500000 3.000000 1.500000 +v 1.250000 3.000000 1.500000 +v 1.500000 3.000000 1.250000 +v 1.250000 3.000000 1.250000 +v 1.500000 2.750000 -1.250000 +v 1.250000 2.750000 -1.250000 +v 1.500000 2.750000 -1.500000 +v 1.250000 2.750000 -1.500000 +v 1.500000 3.000000 -1.250000 +v 1.250000 3.000000 -1.250000 +v 1.500000 3.000000 -1.500000 +v 1.250000 3.000000 -1.500000 +v -1.250000 2.750000 1.500000 +v -1.500000 2.750000 1.500000 +v -1.250000 2.750000 1.250000 +v -1.500000 2.750000 1.250000 +v -1.250000 3.000000 1.500000 +v -1.500000 3.000000 1.500000 +v -1.250000 3.000000 1.250000 +v -1.500000 3.000000 1.250000 +v -1.250000 2.750000 -1.250000 +v -1.500000 2.750000 -1.250000 +v -1.250000 2.750000 -1.500000 +v -1.500000 2.750000 -1.500000 +v -1.250000 3.000000 -1.250000 +v -1.500000 3.000000 -1.250000 +v -1.250000 3.000000 -1.500000 +v -1.500000 3.000000 -1.500000 +v -1.375000 0.250000 -1.500000 +v -1.375000 2.750000 -1.500000 +v -1.375000 2.750000 -1.375000 +v -1.375000 0.250000 -1.375000 +v -1.500000 0.250000 -1.375000 +v -1.500000 2.750000 -1.375000 +v -1.500000 2.750000 -1.500000 +v -1.500000 0.250000 -1.500000 +v -1.375000 0.250000 1.375000 +v -1.375000 2.750000 1.375000 +v -1.375000 2.750000 1.500000 +v -1.375000 0.250000 1.500000 +v -1.500000 0.250000 1.500000 +v -1.500000 2.750000 1.500000 +v -1.500000 2.750000 1.375000 +v -1.500000 0.250000 1.375000 +v 1.375000 2.750000 -1.500000 +v 1.375000 0.250000 -1.500000 +v 1.375000 0.250000 -1.375000 +v 1.375000 2.750000 -1.375000 +v 1.500000 2.750000 -1.375000 +v 1.500000 0.250000 -1.375000 +v 1.500000 0.250000 -1.500000 +v 1.500000 2.750000 -1.500000 +v 1.375000 2.750000 1.375000 +v 1.375000 0.250000 1.375000 +v 1.375000 0.250000 1.500000 +v 1.375000 2.750000 1.500000 +v 1.500000 2.750000 1.500000 +v 1.500000 0.250000 1.500000 +v 1.500000 0.250000 1.375000 +v 1.500000 2.750000 1.375000 +v -1.500000 2.875000 1.250000 +v -1.500000 2.875000 -1.250000 +v -1.375000 2.875000 -1.250000 +v -1.375000 2.875000 1.250000 +v -1.375000 3.000000 1.250000 +v -1.375000 3.000000 -1.250000 +v -1.500000 3.000000 -1.250000 +v -1.500000 3.000000 1.250000 +v 1.375000 2.875000 1.250000 +v 1.375000 2.875000 -1.250000 +v 1.500000 2.875000 -1.250000 +v 1.500000 2.875000 1.250000 +v 1.500000 3.000000 1.250000 +v 1.500000 3.000000 -1.250000 +v 1.375000 3.000000 -1.250000 +v 1.375000 3.000000 1.250000 +v -1.250000 2.875000 -1.500000 +v 1.250000 2.875000 -1.500000 +v 1.250000 2.875000 -1.375000 +v -1.250000 2.875000 -1.375000 +v -1.250000 3.000000 -1.375000 +v 1.250000 3.000000 -1.375000 +v 1.250000 3.000000 -1.500000 +v -1.250000 3.000000 -1.500000 +v -1.250000 2.875000 1.375000 +v 1.250000 2.875000 1.375000 +v 1.250000 2.875000 1.500000 +v -1.250000 2.875000 1.500000 +v -1.250000 3.000000 1.500000 +v 1.250000 3.000000 1.500000 +v 1.250000 3.000000 1.375000 +v -1.250000 3.000000 1.375000 +vt 0.394231 0.714286 +vt 0.375000 0.742857 +vt 0.375000 0.714286 +vt 0.375000 0.771429 +vt 0.394231 0.800000 +vt 0.375000 0.800000 +vt 0.432692 0.742857 +vt 0.413462 0.771429 +vt 0.413462 0.742857 +vt 0.451923 0.742857 +vt 0.432692 0.771429 +vt 0.394231 0.742857 +vt 0.394231 0.771429 +vt 0.394231 0.714286 +vt 0.375000 0.742857 +vt 0.375000 0.714286 +vt 0.375000 0.771429 +vt 0.394231 0.800000 +vt 0.375000 0.800000 +vt 0.432692 0.742857 +vt 0.413462 0.771429 +vt 0.413462 0.742857 +vt 0.451923 0.742857 +vt 0.432692 0.771429 +vt 0.394231 0.742857 +vt 0.394231 0.771429 +vt 0.394231 0.714286 +vt 0.375000 0.742857 +vt 0.375000 0.714286 +vt 0.375000 0.771429 +vt 0.394231 0.800000 +vt 0.375000 0.800000 +vt 0.432692 0.742857 +vt 0.413462 0.771429 +vt 0.413462 0.742857 +vt 0.451923 0.742857 +vt 0.432692 0.771429 +vt 0.394231 0.742857 +vt 0.394231 0.771429 +vt 0.394231 0.714286 +vt 0.375000 0.742857 +vt 0.375000 0.714286 +vt 0.375000 0.771429 +vt 0.394231 0.800000 +vt 0.375000 0.800000 +vt 0.432692 0.742857 +vt 0.413462 0.771429 +vt 0.413462 0.742857 +vt 0.451923 0.742857 +vt 0.432692 0.771429 +vt 0.394231 0.742857 +vt 0.394231 0.771429 +vt 0.442308 0.828571 +vt 0.250000 0.842857 +vt 0.250000 0.828571 +vt 0.442308 0.814286 +vt 0.442308 0.842857 +vt 0.250000 0.857143 +vt 0.250000 0.800000 +vt 0.442308 0.800000 +vt 0.442308 0.814286 +vt 0.250000 0.828571 +vt 0.250000 0.814286 +vt 0.442308 0.800000 +vt 0.442308 0.828571 +vt 0.250000 0.842857 +vt 0.442308 0.857143 +vt 0.442308 0.842857 +vt 0.250000 0.828571 +vt 0.442308 0.814286 +vt 0.442308 0.828571 +vt 0.250000 0.842857 +vt 0.250000 0.814286 +vt 0.442308 0.800000 +vt 0.442308 0.857143 +vt 0.250000 0.857143 +vt 0.250000 0.842857 +vt 0.442308 0.828571 +vt 0.442308 0.842857 +vt 0.250000 0.857143 +vt 0.250000 0.828571 +vt 0.442308 0.814286 +vt 0.250000 0.800000 +vt 0.250000 0.814286 +vt 0.442308 0.828571 +vt 0.250000 0.842857 +vt 0.250000 0.828571 +vt 0.442308 0.814286 +vt 0.442308 0.842857 +vt 0.250000 0.857143 +vt 0.250000 0.800000 +vt 0.442308 0.800000 +vt 0.250000 0.842857 +vt 0.442308 0.828571 +vt 0.442308 0.842857 +vt 0.250000 0.857143 +vt 0.250000 0.828571 +vt 0.442308 0.814286 +vt 0.250000 0.800000 +vt 0.250000 0.814286 +vt 0.442308 0.828571 +vt 0.250000 0.842857 +vt 0.250000 0.828571 +vt 0.442308 0.814286 +vt 0.442308 0.842857 +vt 0.250000 0.857143 +vt 0.250000 0.800000 +vt 0.442308 0.800000 +vt 0.250000 0.842857 +vt 0.442308 0.828571 +vt 0.442308 0.842857 +vt 0.250000 0.857143 +vt 0.250000 0.828571 +vt 0.442308 0.814286 +vt 0.250000 0.800000 +vt 0.250000 0.814286 +vt 0.451923 0.771429 +vt 0.451923 0.771429 +vt 0.451923 0.771429 +vt 0.451923 0.771429 +vt 0.250000 0.814286 +vt 0.442308 0.857143 +vt 0.250000 0.800000 +vt 0.250000 0.857143 +vt 0.442308 0.842857 +vt 0.250000 0.800000 +vt 0.442308 0.857143 +vt 0.442308 0.800000 +vt 0.250000 0.814286 +vt 0.442308 0.857143 +vt 0.442308 0.857143 +vt 0.442308 0.800000 +vt 0.250000 0.814286 +vt 0.442308 0.857143 +vt 0.442308 0.857143 +vt 0.442308 0.800000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 174/262/29 171/263/29 172/264/29 +f 175/265/30 178/266/30 176/267/30 +f 172/268/31 178/269/31 174/270/31 +f 171/271/32 176/272/32 172/268/32 +f 173/273/33 175/265/33 171/263/33 +f 174/270/34 177/274/34 173/273/34 +f 182/275/29 179/276/29 180/277/29 +f 183/278/30 186/279/30 184/280/30 +f 180/281/31 186/282/31 182/283/31 +f 179/284/32 184/285/32 180/281/32 +f 181/286/33 183/278/33 179/276/33 +f 182/283/34 185/287/34 181/286/34 +f 190/288/29 187/289/29 188/290/29 +f 191/291/30 194/292/30 192/293/30 +f 188/294/31 194/295/31 190/296/31 +f 187/297/32 192/298/32 188/294/32 +f 189/299/33 191/291/33 187/289/33 +f 190/296/34 193/300/34 189/299/34 +f 198/301/29 195/302/29 196/303/29 +f 199/304/30 202/305/30 200/306/30 +f 196/307/31 202/308/31 198/309/31 +f 195/310/32 200/311/32 196/307/32 +f 197/312/33 199/304/33 195/302/33 +f 198/309/34 201/313/34 197/312/34 +f 210/314/31 208/315/31 209/316/31 +f 209/316/34 203/317/34 210/314/34 +f 207/318/32 205/319/32 208/315/32 +f 203/317/33 205/320/33 206/321/33 +f 218/322/31 216/323/31 217/324/31 +f 217/324/34 211/325/34 218/322/34 +f 215/326/32 213/327/32 216/323/32 +f 211/328/33 213/327/33 214/329/33 +f 226/330/33 224/331/33 225/332/33 +f 225/332/34 219/333/34 226/330/34 +f 223/334/32 221/335/32 224/331/32 +f 219/333/31 221/336/31 222/337/31 +f 234/338/33 232/339/33 233/340/33 +f 233/340/34 227/341/34 234/338/34 +f 231/342/32 229/343/32 232/339/32 +f 227/344/31 229/343/31 230/345/31 +f 242/346/30 240/347/30 241/348/30 +f 241/348/31 235/349/31 242/346/31 +f 239/350/33 237/351/33 240/347/33 +f 235/349/29 237/352/29 238/353/29 +f 250/354/30 248/355/30 249/356/30 +f 249/356/31 243/357/31 250/354/31 +f 247/358/33 245/359/33 248/355/33 +f 243/360/29 245/359/29 246/361/29 +f 258/362/30 256/363/30 257/364/30 +f 257/364/34 251/365/34 258/362/34 +f 255/366/32 253/367/32 256/363/32 +f 251/365/29 253/368/29 254/369/29 +f 266/370/30 264/371/30 265/372/30 +f 265/372/34 259/373/34 266/370/34 +f 263/374/32 261/375/32 264/371/32 +f 259/376/29 261/375/29 262/377/29 +f 174/262/29 173/273/29 171/263/29 +f 175/265/30 177/274/30 178/266/30 +f 172/268/31 176/272/31 178/269/31 +f 171/271/32 175/378/32 176/272/32 +f 173/273/33 177/274/33 175/265/33 +f 174/270/34 178/269/34 177/274/34 +f 182/275/29 181/286/29 179/276/29 +f 183/278/30 185/287/30 186/279/30 +f 180/281/31 184/285/31 186/282/31 +f 179/284/32 183/379/32 184/285/32 +f 181/286/33 185/287/33 183/278/33 +f 182/283/34 186/282/34 185/287/34 +f 190/288/29 189/299/29 187/289/29 +f 191/291/30 193/300/30 194/292/30 +f 188/294/31 192/298/31 194/295/31 +f 187/297/32 191/380/32 192/298/32 +f 189/299/33 193/300/33 191/291/33 +f 190/296/34 194/295/34 193/300/34 +f 198/301/29 197/312/29 195/302/29 +f 199/304/30 201/313/30 202/305/30 +f 196/307/31 200/311/31 202/308/31 +f 195/310/32 199/381/32 200/311/32 +f 197/312/33 201/313/33 199/304/33 +f 198/309/34 202/308/34 201/313/34 +f 210/314/31 207/318/31 208/315/31 +f 209/316/34 204/382/34 203/317/34 +f 207/318/32 206/383/32 205/319/32 +f 203/317/33 204/382/33 205/320/33 +f 218/322/31 215/326/31 216/323/31 +f 217/324/34 212/384/34 211/325/34 +f 215/326/32 214/329/32 213/327/32 +f 211/328/33 212/385/33 213/327/33 +f 226/330/33 223/334/33 224/331/33 +f 225/332/34 220/386/34 219/333/34 +f 223/334/32 222/387/32 221/335/32 +f 219/333/31 220/386/31 221/336/31 +f 234/338/33 231/342/33 232/339/33 +f 233/340/34 228/388/34 227/341/34 +f 231/342/32 230/345/32 229/343/32 +f 227/344/31 228/389/31 229/343/31 +f 242/346/30 239/350/30 240/347/30 +f 241/348/31 236/390/31 235/349/31 +f 239/350/33 238/391/33 237/351/33 +f 235/349/29 236/390/29 237/352/29 +f 250/354/30 247/358/30 248/355/30 +f 249/356/31 244/392/31 243/357/31 +f 247/358/33 246/361/33 245/359/33 +f 243/360/29 244/393/29 245/359/29 +f 258/362/30 255/366/30 256/363/30 +f 257/364/34 252/394/34 251/365/34 +f 255/366/32 254/395/32 253/367/32 +f 251/365/29 252/394/29 253/368/29 +f 266/370/30 263/374/30 264/371/30 +f 265/372/34 260/396/34 259/373/34 +f 263/374/32 262/377/32 261/375/32 +f 259/376/29 260/397/29 261/375/29 +o Slider +v -0.187500 2.000000 -0.687500 +v 0.187500 2.000000 -0.687500 +v -0.187500 2.000000 -1.312500 +v 0.187500 2.000000 -1.312500 +v -0.187500 2.375000 -1.312500 +v -0.187500 2.375000 -0.687500 +v 0.187500 2.375000 -0.687500 +v 0.187500 2.375000 -1.312500 +vt 0.894231 0.271429 +vt 0.942308 0.314286 +vt 0.894231 0.314286 +vt 0.942308 0.228571 +vt 0.894231 0.228571 +vt 0.894231 0.357143 +vt 0.942308 0.357143 +vt 0.971154 0.314286 +vt 0.942308 0.271429 +vt 0.971154 0.271429 +vt 0.865385 0.271429 +vt 0.865385 0.314286 +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 +s off +f 273/398/35 271/399/35 272/400/35 +f 270/401/36 273/398/36 268/402/36 +f 267/403/37 271/399/37 269/404/37 +f 269/405/38 274/406/38 270/407/38 +f 268/408/39 272/400/39 267/409/39 +f 273/398/35 274/406/35 271/399/35 +f 270/401/36 274/406/36 273/398/36 +f 267/403/37 272/400/37 271/399/37 +f 269/405/38 271/399/38 274/406/38 +f 268/408/39 273/398/39 272/400/39 +o Base +v 1.500000 0.125000 1.250000 +v 1.500000 0.125000 -1.250000 +v 1.375000 0.125000 -1.250000 +v 1.375000 0.125000 1.250000 +v 1.375000 0.000000 1.250000 +v 1.375000 0.000000 -1.250000 +v 1.500000 0.000000 -1.250000 +v 1.500000 0.000000 1.250000 +v 1.500000 0.000000 1.500000 +v 1.250000 0.000000 1.500000 +v 1.500000 0.000000 1.250000 +v 1.250000 0.000000 1.250000 +v 1.500000 0.250000 1.500000 +v 1.250000 0.250000 1.500000 +v 1.500000 0.250000 1.250000 +v 1.250000 0.250000 1.250000 +v 1.500000 0.000000 -1.250000 +v 1.250000 0.000000 -1.250000 +v 1.500000 0.000000 -1.500000 +v 1.250000 0.000000 -1.500000 +v 1.500000 0.250000 -1.250000 +v 1.250000 0.250000 -1.250000 +v 1.500000 0.250000 -1.500000 +v 1.250000 0.250000 -1.500000 +v -1.250000 0.000000 1.500000 +v -1.500000 0.000000 1.500000 +v -1.250000 0.000000 1.250000 +v -1.500000 0.000000 1.250000 +v -1.250000 0.250000 1.500000 +v -1.500000 0.250000 1.500000 +v -1.250000 0.250000 1.250000 +v -1.500000 0.250000 1.250000 +v -1.250000 0.000000 -1.250000 +v -1.500000 0.000000 -1.250000 +v -1.250000 0.000000 -1.500000 +v -1.500000 0.000000 -1.500000 +v -1.250000 0.250000 -1.250000 +v -1.500000 0.250000 -1.250000 +v -1.250000 0.250000 -1.500000 +v -1.500000 0.250000 -1.500000 +v -1.375000 0.125000 1.250000 +v -1.375000 0.125000 -1.250000 +v -1.500000 0.125000 -1.250000 +v -1.500000 0.125000 1.250000 +v -1.500000 0.000000 1.250000 +v -1.500000 0.000000 -1.250000 +v -1.375000 0.000000 -1.250000 +v -1.375000 0.000000 1.250000 +v 1.250000 0.125000 -1.500000 +v -1.250000 0.125000 -1.500000 +v -1.250000 0.125000 -1.375000 +v 1.250000 0.125000 -1.375000 +v 1.250000 0.000000 -1.375000 +v -1.250000 0.000000 -1.375000 +v -1.250000 0.000000 -1.500000 +v 1.250000 0.000000 -1.500000 +v 1.250000 0.125000 1.375000 +v -1.250000 0.125000 1.375000 +v -1.250000 0.125000 1.500000 +v 1.250000 0.125000 1.500000 +v 1.250000 0.000000 1.500000 +v -1.250000 0.000000 1.500000 +v -1.250000 0.000000 1.375000 +v 1.250000 0.000000 1.375000 +v 1.500000 0.312500 -0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.687500 0.187500 +v 1.375000 0.375000 -0.125000 +v 1.375000 0.375000 0.125000 +v 1.375000 0.625000 -0.125000 +v 1.375000 0.625000 0.125000 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.312500 -0.187500 +v 1.375000 0.312500 0.187500 +v 1.375000 0.687500 0.187500 +v -1.000000 0.750000 0.500000 +v -1.250000 0.750000 0.566987 +v -1.433013 0.750000 0.750000 +v -1.500000 0.750000 1.000000 +v -1.433013 0.750000 1.250000 +v -1.250000 0.750000 1.433013 +v -1.000000 0.750000 1.500000 +v -0.750000 0.750000 1.433013 +v -0.566987 0.750000 1.250000 +v -0.500000 0.750000 1.000000 +v -0.566987 0.750000 0.750000 +v -0.750000 0.750000 0.566988 +v -1.250000 2.500000 0.566987 +v -1.000000 2.500000 0.500000 +v -1.433013 2.500000 0.750000 +v -1.500000 2.500000 1.000000 +v -1.433013 2.500000 1.250000 +v -1.250000 2.500000 1.433013 +v -1.000000 2.500000 1.500000 +v -0.750000 2.500000 1.433013 +v -0.566987 2.500000 1.250000 +v -0.500000 2.500000 1.000000 +v -0.566987 2.500000 0.750000 +v -0.750000 2.500000 0.566988 +v -1.000000 0.750000 -0.500000 +v -1.250000 0.750000 -0.433013 +v -1.433013 0.750000 -0.250000 +v -1.500000 0.750000 0.000000 +v -1.433013 0.750000 0.250000 +v -1.250000 0.750000 0.433013 +v -1.000000 0.750000 0.500000 +v -0.750000 0.750000 0.433013 +v -0.566987 0.750000 0.250000 +v -0.500000 0.750000 0.000000 +v -0.566987 0.750000 -0.250000 +v -0.750000 0.750000 -0.433012 +v -1.250000 2.500000 -0.433013 +v -1.000000 2.500000 -0.500000 +v -1.433013 2.500000 -0.250000 +v -1.500000 2.500000 0.000000 +v -1.433013 2.500000 0.250000 +v -1.250000 2.500000 0.433013 +v -1.000000 2.500000 0.500000 +v -0.750000 2.500000 0.433013 +v -0.566987 2.500000 0.250000 +v -0.500000 2.500000 0.000000 +v -0.566987 2.500000 -0.250000 +v -0.750000 2.500000 -0.433012 +v -1.250000 0.750000 -0.500000 +v 1.250000 0.750000 -0.500000 +v -1.250000 0.750000 -1.500000 +v 1.250000 0.750000 -1.500000 +v -1.250000 1.500000 -1.500000 +v -1.250000 1.500000 -0.500000 +v 1.250000 1.500000 -0.500000 +v 1.250000 1.500000 -1.500000 +v -1.000000 1.750000 -1.500000 +v -1.000000 1.750000 -0.500000 +v 1.000000 1.750000 -0.500000 +v 1.000000 1.750000 -1.500000 +v -1.250000 0.750000 1.250000 +v -0.750000 0.750000 1.250000 +v -1.250000 0.750000 0.750000 +v -0.750000 0.750000 0.750000 +v -1.250000 0.250000 1.250000 +v -0.750000 0.250000 1.250000 +v -1.250000 0.250000 0.750000 +v -0.750000 0.250000 0.750000 +v -1.250000 0.750000 0.250000 +v -0.750000 0.750000 0.250000 +v -1.250000 0.750000 -0.250000 +v -0.750000 0.750000 -0.250000 +v -1.250000 0.250000 0.250000 +v -0.750000 0.250000 0.250000 +v -1.250000 0.250000 -0.250000 +v -0.750000 0.250000 -0.250000 +v -1.250000 0.750000 -0.750000 +v 1.250000 0.750000 -0.750000 +v -1.250000 0.750000 -1.250000 +v 1.250000 0.750000 -1.250000 +v -1.250000 0.250000 -0.750000 +v 1.250000 0.250000 -0.750000 +v -1.250000 0.250000 -1.250000 +v 1.250000 0.250000 -1.250000 +v -0.750000 1.750000 -0.625000 +v 0.750000 1.750000 -0.625000 +v -0.750000 1.750000 -1.375000 +v 0.750000 1.750000 -1.375000 +v -0.750000 2.000000 -1.375000 +v -0.750000 2.000000 -0.625000 +v 0.750000 2.000000 -0.625000 +v 0.750000 2.000000 -1.375000 +v -0.625000 2.000000 -0.968750 +v 0.625000 2.000000 -0.968750 +v -0.625000 2.000000 -1.031250 +v 0.625000 2.000000 -1.031250 +v -0.625000 2.250000 -1.031250 +v -0.625000 2.250000 -0.968750 +v 0.625000 2.250000 -0.968750 +v 0.625000 2.250000 -1.031250 +v -0.625000 2.000000 -1.093750 +v 0.625000 2.000000 -1.093750 +v -0.625000 2.000000 -1.156250 +v 0.625000 2.000000 -1.156250 +v -0.625000 2.250000 -1.156250 +v -0.625000 2.250000 -1.093750 +v 0.625000 2.250000 -1.093750 +v 0.625000 2.250000 -1.156250 +v -0.625000 2.000000 -1.218750 +v 0.625000 2.000000 -1.218750 +v -0.625000 2.000000 -1.281250 +v 0.625000 2.000000 -1.281250 +v -0.625000 2.250000 -1.281250 +v -0.625000 2.250000 -1.218750 +v 0.625000 2.250000 -1.218750 +v 0.625000 2.250000 -1.281250 +v -0.625000 2.000000 -0.718750 +v 0.625000 2.000000 -0.718750 +v -0.625000 2.000000 -0.781250 +v 0.625000 2.000000 -0.781250 +v -0.625000 2.250000 -0.781250 +v -0.625000 2.250000 -0.718750 +v 0.625000 2.250000 -0.718750 +v 0.625000 2.250000 -0.781250 +v -0.625000 2.000000 -0.843750 +v 0.625000 2.000000 -0.843750 +v -0.625000 2.000000 -0.906250 +v 0.625000 2.000000 -0.906250 +v -0.625000 2.250000 -0.906250 +v -0.625000 2.250000 -0.843750 +v 0.625000 2.250000 -0.843750 +v 0.625000 2.250000 -0.906250 +v -1.250000 2.500000 1.125000 +v -0.750000 2.500000 1.125000 +v -1.250000 2.500000 0.875000 +v -0.750000 2.500000 0.875000 +v -1.250000 3.000000 0.875000 +v -1.250000 3.000000 1.125000 +v -0.750000 3.000000 1.125000 +v -0.750000 3.000000 0.875000 +v -1.250000 2.500000 0.125000 +v -0.750000 2.500000 0.125000 +v -1.250000 2.500000 -0.125000 +v -0.750000 2.500000 -0.125000 +v -1.250000 3.000000 -0.125000 +v -1.250000 3.000000 0.125000 +v -0.750000 3.000000 0.125000 +v -0.750000 3.000000 -0.125000 +v -1.125000 2.875000 0.875000 +v -1.125000 2.875000 0.125000 +v -0.875000 2.875000 0.125000 +v -0.875000 2.875000 0.875000 +v -0.786612 2.838388 0.125000 +v -0.786612 2.838388 0.875000 +v -0.750000 2.750000 0.125000 +v -0.750000 2.750000 0.875000 +v -0.786612 2.661612 0.125000 +v -0.786612 2.661612 0.875000 +v -0.875000 2.625000 0.125000 +v -0.875000 2.625000 0.875000 +v -0.963388 2.661612 0.125000 +v -0.963388 2.661612 0.875000 +v -1.000000 2.750000 0.125000 +v -1.000000 2.750000 0.875000 +v -0.963388 2.838388 0.125000 +v -0.963388 2.838388 0.875000 +v -1.036612 2.838388 0.125000 +v -1.036612 2.838388 0.875000 +v -1.000000 2.750000 0.125000 +v -1.000000 2.750000 0.875000 +v -1.036612 2.661612 0.125000 +v -1.036612 2.661612 0.875000 +v -1.125000 2.625000 0.125000 +v -1.125000 2.625000 0.875000 +v -1.213388 2.661612 0.125000 +v -1.213388 2.661612 0.875000 +v -1.250000 2.750000 0.125000 +v -1.250000 2.750000 0.875000 +v -1.213388 2.838388 0.125000 +v -1.213388 2.838388 0.875000 +v -0.875000 2.875000 -0.125000 +v -0.786612 2.838388 -0.125000 +v -0.750000 2.750000 -0.125000 +v -0.786612 2.661612 -0.125000 +v -0.875000 2.625000 -0.125000 +v -0.963388 2.661612 -0.125000 +v -1.000000 2.750000 -0.125000 +v -0.963388 2.838388 -0.125000 +v -0.875000 2.875000 -0.750000 +v -0.786612 2.838388 -0.750000 +v -0.750000 2.750000 -0.750000 +v -0.786612 2.661612 -0.750000 +v -0.875000 2.625000 -0.750000 +v -0.963388 2.661612 -0.750000 +v -1.000000 2.750000 -0.750000 +v -0.963388 2.838388 -0.750000 +v -0.875000 2.801777 -0.926777 +v -0.786612 2.775888 -0.900888 +v -0.750000 2.713388 -0.838388 +v -0.786612 2.650888 -0.775888 +v -0.963388 2.650888 -0.775888 +v -1.000000 2.713388 -0.838388 +v -0.963388 2.775888 -0.900888 +v -0.875000 2.625000 -1.000000 +v -0.786612 2.625000 -0.963388 +v -0.750000 2.625000 -0.875000 +v -0.786612 2.625000 -0.786612 +v -0.963388 2.625000 -0.786612 +v -1.000000 2.625000 -0.875000 +v -0.963388 2.625000 -0.963388 +v -0.875000 2.000000 -0.750000 +v -0.875000 2.000000 -1.000000 +v -0.786612 2.000000 -0.963388 +v -0.750000 2.000000 -0.875000 +v -0.786612 2.000000 -0.786612 +v -0.963388 2.000000 -0.786612 +v -1.000000 2.000000 -0.875000 +v -0.963388 2.000000 -0.963388 +v -0.838388 1.911612 -0.750000 +v -0.838388 1.911612 -1.000000 +v -0.775888 1.974112 -0.963388 +v -0.775888 1.974112 -0.786612 +v -0.900888 1.849112 -0.786612 +v -0.926777 1.823223 -0.875000 +v -0.900888 1.849112 -0.963388 +v -0.750000 1.875000 -0.750000 +v -0.750000 1.875000 -1.000000 +v -0.750000 1.963388 -0.963388 +v -0.750000 1.963388 -0.786612 +v -0.750000 1.786612 -0.786612 +v -0.750000 1.750000 -0.875000 +v -0.750000 1.786612 -0.963388 +v -1.125000 2.875000 -0.125000 +v -1.036612 2.838388 -0.125000 +v -1.000000 2.750000 -0.125000 +v -1.036612 2.661612 -0.125000 +v -1.125000 2.625000 -0.125000 +v -1.213388 2.661612 -0.125000 +v -1.250000 2.750000 -0.125000 +v -1.213388 2.838388 -0.125000 +v -1.125000 2.875000 -1.000000 +v -1.036612 2.838388 -1.000000 +v -1.000000 2.750000 -1.000000 +v -1.036612 2.661612 -1.000000 +v -1.125000 2.625000 -1.000000 +v -1.213388 2.661612 -1.000000 +v -1.250000 2.750000 -1.000000 +v -1.213388 2.838388 -1.000000 +v -1.125000 2.801777 -1.176777 +v -1.036612 2.775888 -1.150888 +v -1.000000 2.713388 -1.088388 +v -1.036612 2.650888 -1.025888 +v -1.213388 2.650888 -1.025888 +v -1.250000 2.713388 -1.088388 +v -1.213388 2.775888 -1.150888 +v -1.125000 2.625000 -1.250000 +v -1.036612 2.625000 -1.213388 +v -1.000000 2.625000 -1.125000 +v -1.036612 2.625000 -1.036612 +v -1.213388 2.625000 -1.036612 +v -1.250000 2.625000 -1.125000 +v -1.213388 2.625000 -1.213388 +v -1.125000 2.000000 -1.000000 +v -1.125000 2.000000 -1.250000 +v -1.036612 2.000000 -1.213388 +v -1.000000 2.000000 -1.125000 +v -1.036612 2.000000 -1.036612 +v -1.213388 2.000000 -1.036612 +v -1.250000 2.000000 -1.125000 +v -1.213388 2.000000 -1.213388 +v -1.088388 1.911612 -1.000000 +v -1.088388 1.911612 -1.250000 +v -1.025888 1.974112 -1.213388 +v -1.025888 1.974112 -1.036612 +v -1.150888 1.849112 -1.036612 +v -1.176777 1.823223 -1.125000 +v -1.150888 1.849112 -1.213388 +v -1.000000 1.875000 -1.000000 +v -1.000000 1.875000 -1.250000 +v -1.000000 1.963388 -1.213388 +v -1.000000 1.963388 -1.036612 +v -1.000000 1.786612 -1.036612 +v -1.000000 1.750000 -1.125000 +v -1.000000 1.786612 -1.213388 +v -0.750000 2.000000 -1.125000 +v -0.750000 1.875000 -1.000000 +v -0.750000 1.875000 -1.250000 +v -0.750000 1.963388 -1.213388 +v -0.750000 1.963388 -1.036612 +v -0.750000 1.786612 -1.036612 +v -0.750000 1.750000 -1.125000 +v -0.750000 1.786612 -1.213388 +v 0.875000 0.125000 1.500000 +v 1.125000 0.125000 1.500000 +v 0.875000 0.125000 -1.500000 +v 1.125000 0.125000 -1.500000 +v 0.875000 0.250000 -1.500000 +v 0.875000 0.250000 1.500000 +v 1.125000 0.250000 1.500000 +v 1.125000 0.250000 -1.500000 +v 0.500000 0.750000 -0.500000 +v 0.117317 0.750000 -0.423880 +v -0.207107 0.750000 -0.207107 +v -0.423880 0.750000 0.117316 +v -0.500000 0.750000 0.500000 +v -0.423880 0.750000 0.882684 +v -0.207107 0.750000 1.207107 +v 0.117317 0.750000 1.423880 +v 0.500000 0.750000 1.500000 +v 0.882683 0.750000 1.423880 +v 1.207107 0.750000 1.207107 +v 1.423880 0.750000 0.882684 +v 1.500000 0.750000 0.500000 +v 1.423879 0.750000 0.117316 +v 1.207107 0.750000 -0.207107 +v 0.882683 0.750000 -0.423880 +v -0.250000 0.250000 1.250000 +v 1.250000 0.250000 1.250000 +v -0.250000 0.250000 -0.250000 +v 1.250000 0.250000 -0.250000 +v -0.250000 0.750000 -0.250000 +v -0.250000 0.750000 1.250000 +v 1.250000 0.750000 1.250000 +v 1.250000 0.750000 -0.250000 +v 0.117317 1.750000 -0.423880 +v 0.500000 1.750000 -0.500000 +v -0.207107 1.750000 -0.207107 +v -0.423880 1.750000 0.117316 +v -0.500000 1.750000 0.500000 +v -0.423880 1.750000 0.882684 +v -0.207107 1.750000 1.207107 +v 0.117317 1.750000 1.423880 +v 0.500000 1.750000 1.500000 +v 0.882683 1.750000 1.423880 +v 1.207107 1.750000 1.207107 +v 1.423880 1.750000 0.882684 +v 1.500000 1.750000 0.500000 +v 1.423879 1.750000 0.117316 +v 1.207107 1.750000 -0.207107 +v 0.882683 1.750000 -0.423880 +v 0.308658 2.250000 0.038060 +v 0.500000 2.250000 0.000000 +v 0.146447 2.250000 0.146447 +v 0.038060 2.250000 0.308659 +v -0.000000 2.250000 0.500000 +v 0.038060 2.250000 0.691342 +v 0.146447 2.250000 0.853553 +v 0.308658 2.250000 0.961940 +v 0.500000 2.250000 1.000000 +v 0.691342 2.250000 0.961940 +v 0.853553 2.250000 0.853554 +v 0.961940 2.250000 0.691342 +v 1.000000 2.250000 0.500000 +v 0.961940 2.250000 0.308658 +v 0.853553 2.250000 0.146446 +v 0.691341 2.250000 0.038060 +v 0.308658 2.750000 0.038060 +v 0.500000 2.750000 0.000000 +v 0.146446 2.750000 0.146447 +v 0.038060 2.750000 0.308659 +v -0.000000 2.750000 0.500000 +v 0.038060 2.750000 0.691342 +v 0.146446 2.750000 0.853553 +v 0.308658 2.750000 0.961940 +v 0.500000 2.750000 1.000000 +v 0.691341 2.750000 0.961940 +v 0.853553 2.750000 0.853554 +v 0.961940 2.750000 0.691342 +v 1.000000 2.750000 0.500000 +v 0.961940 2.750000 0.308658 +v 0.853553 2.750000 0.146446 +v 0.691341 2.750000 0.038060 +v 0.875000 2.750000 0.500000 +v 0.786612 2.713388 0.500000 +v 0.750000 2.625000 0.500000 +v 0.786612 2.536612 0.500000 +v 0.875000 2.500000 0.500000 +v 0.963388 2.536612 0.500000 +v 1.000000 2.625000 0.500000 +v 0.963388 2.713388 0.500000 +v 0.875000 2.750000 -1.000000 +v 0.786612 2.713388 -1.000000 +v 0.750000 2.625000 -1.000000 +v 0.786612 2.536612 -1.000000 +v 0.875000 2.500000 -1.000000 +v 0.963388 2.536612 -1.000000 +v 1.000000 2.625000 -1.000000 +v 0.963388 2.713388 -1.000000 +v 0.875000 2.676777 -1.176777 +v 0.786612 2.650888 -1.150888 +v 0.750000 2.588388 -1.088388 +v 0.786612 2.525888 -1.025888 +v 0.963388 2.525888 -1.025888 +v 1.000000 2.588388 -1.088388 +v 0.963388 2.650888 -1.150888 +v 0.875000 2.500000 -1.250000 +v 0.786612 2.500000 -1.213388 +v 0.750000 2.500000 -1.125000 +v 0.786612 2.500000 -1.036612 +v 0.963388 2.500000 -1.036612 +v 1.000000 2.500000 -1.125000 +v 0.963388 2.500000 -1.213388 +v 0.875000 2.000000 -1.000000 +v 0.875000 2.000000 -1.250000 +v 0.786612 2.000000 -1.213388 +v 0.750000 2.000000 -1.125000 +v 0.786612 2.000000 -1.036612 +v 0.963388 2.000000 -1.036612 +v 1.000000 2.000000 -1.125000 +v 0.963388 2.000000 -1.213388 +v 0.838388 1.911612 -1.000000 +v 0.838388 1.911612 -1.250000 +v 0.775888 1.974112 -1.213388 +v 0.775888 1.974112 -1.036612 +v 0.900888 1.849112 -1.036612 +v 0.926777 1.823223 -1.125000 +v 0.900888 1.849112 -1.213388 +v 0.750000 1.875000 -1.000000 +v 0.750000 1.875000 -1.250000 +v 0.750000 1.963388 -1.213388 +v 0.750000 1.963388 -1.036612 +v 0.750000 1.786612 -1.036612 +v 0.750000 1.750000 -1.125000 +v 0.750000 1.786612 -1.213388 +v 0.875000 2.500000 0.500000 +v 0.786612 2.463388 0.500000 +v 0.750000 2.375000 0.500000 +v 0.786612 2.286612 0.500000 +v 0.875000 2.250000 0.500000 +v 0.963388 2.286612 0.500000 +v 1.000000 2.375000 0.500000 +v 0.963388 2.463388 0.500000 +v 0.875000 2.500000 -0.750000 +v 0.786612 2.463388 -0.750000 +v 0.750000 2.375000 -0.750000 +v 0.786612 2.286612 -0.750000 +v 0.875000 2.250000 -0.750000 +v 0.963388 2.286612 -0.750000 +v 1.000000 2.375000 -0.750000 +v 0.963388 2.463388 -0.750000 +v 0.875000 2.426777 -0.926777 +v 0.786612 2.400888 -0.900888 +v 0.750000 2.338388 -0.838388 +v 0.786612 2.275888 -0.775888 +v 0.963388 2.275888 -0.775888 +v 1.000000 2.338388 -0.838388 +v 0.963388 2.400888 -0.900888 +v 0.875000 2.250000 -1.000000 +v 0.786612 2.250000 -0.963388 +v 0.750000 2.250000 -0.875000 +v 0.786612 2.250000 -0.786612 +v 0.963388 2.250000 -0.786612 +v 1.000000 2.250000 -0.875000 +v 0.963388 2.250000 -0.963388 +v 0.875000 2.000000 -0.750000 +v 0.875000 2.000000 -1.000000 +v 0.786612 2.000000 -0.963388 +v 0.750000 2.000000 -0.875000 +v 0.786612 2.000000 -0.786612 +v 0.963388 2.000000 -0.786612 +v 1.000000 2.000000 -0.875000 +v 0.963388 2.000000 -0.963388 +v 0.838388 1.911612 -0.750000 +v 0.838388 1.911612 -1.000000 +v 0.775888 1.974112 -0.963388 +v 0.775888 1.974112 -0.786612 +v 0.900888 1.849112 -0.786612 +v 0.926777 1.823223 -0.875000 +v 0.900888 1.849112 -0.963388 +v 0.750000 1.875000 -0.750000 +v 0.750000 1.875000 -1.000000 +v 0.750000 1.963388 -0.963388 +v 0.750000 1.963388 -0.786612 +v 0.750000 1.786612 -0.786612 +v 0.750000 1.750000 -0.875000 +v 0.750000 1.786612 -0.963388 +v -0.750000 2.750000 -0.125000 +v -0.750000 2.838388 -0.088388 +v -0.750000 2.875000 0.000000 +v -0.750000 2.838388 0.088388 +v -0.750000 2.750000 0.125000 +v -0.750000 2.661612 0.088388 +v -0.750000 2.625000 0.000000 +v -0.750000 2.661612 -0.088388 +v 0.375000 2.750000 -0.125000 +v 0.375000 2.838388 -0.088388 +v 0.375000 2.875000 0.000000 +v 0.375000 2.838388 0.088388 +v 0.375000 2.750000 0.125000 +v 0.375000 2.661612 0.088388 +v 0.375000 2.625000 0.000000 +v 0.375000 2.661612 -0.088388 +v 0.551777 2.750000 -0.051777 +v 0.525888 2.838388 -0.025888 +v 0.463388 2.875000 0.036612 +v 0.400888 2.838388 0.099112 +v 0.400888 2.661612 0.099112 +v 0.463388 2.625000 0.036612 +v 0.525888 2.661612 -0.025888 +v 0.625000 2.750000 0.125000 +v 0.588388 2.838388 0.125000 +v 0.500000 2.875000 0.125000 +v 0.411612 2.838388 0.125000 +v 0.411612 2.661612 0.125000 +v 0.500000 2.625000 0.125000 +v 0.588388 2.661612 0.125000 +v 0.356494 3.000000 0.153545 +v 0.500000 3.000000 0.125000 +v 0.234835 3.000000 0.234835 +v 0.153545 3.000000 0.356494 +v 0.125000 3.000000 0.500000 +v 0.153545 3.000000 0.643506 +v 0.234835 3.000000 0.765165 +v 0.356494 3.000000 0.846455 +v 0.500000 3.000000 0.875000 +v 0.643506 3.000000 0.846455 +v 0.765165 3.000000 0.765165 +v 0.846455 3.000000 0.643506 +v 0.875000 3.000000 0.500000 +v 0.846455 3.000000 0.356494 +v 0.765165 3.000000 0.234835 +v 0.643506 3.000000 0.153545 +v -0.750000 2.750000 1.125000 +v -0.750000 2.838388 1.088388 +v -0.750000 2.875000 1.000000 +v -0.750000 2.838388 0.911612 +v -0.750000 2.750000 0.875000 +v -0.750000 2.661612 0.911612 +v -0.750000 2.625000 1.000000 +v -0.750000 2.661612 1.088388 +v 0.375000 2.750000 1.125000 +v 0.375000 2.838388 1.088388 +v 0.375000 2.875000 1.000000 +v 0.375000 2.838388 0.911612 +v 0.375000 2.750000 0.875000 +v 0.375000 2.661612 0.911612 +v 0.375000 2.625000 1.000000 +v 0.375000 2.661612 1.088388 +v 0.551777 2.750000 1.051777 +v 0.525888 2.838388 1.025888 +v 0.463388 2.875000 0.963388 +v 0.400888 2.838388 0.900888 +v 0.400888 2.661612 0.900888 +v 0.463388 2.625000 0.963388 +v 0.525888 2.661612 1.025888 +v 0.625000 2.750000 0.875000 +v 0.588388 2.838388 0.875000 +v 0.500000 2.875000 0.875000 +v 0.411612 2.838388 0.875000 +v 0.411612 2.661612 0.875000 +v 0.500000 2.625000 0.875000 +v 0.588388 2.661612 0.875000 +v 0.500000 0.875000 -0.375000 +v 0.165152 0.875000 -0.308394 +v -0.118718 0.875000 -0.118718 +v -0.308395 0.875000 0.165152 +v -0.375000 0.875000 0.500000 +v -0.308395 0.875000 0.834848 +v -0.118718 0.875000 1.118718 +v 0.165152 0.875000 1.308394 +v 0.500000 0.875000 1.375000 +v 0.834848 0.875000 1.308394 +v 1.118718 0.875000 1.118719 +v 1.308395 0.875000 0.834848 +v 1.375000 0.875000 0.500000 +v 1.308394 0.875000 0.165152 +v 1.118718 0.875000 -0.118719 +v 0.834848 0.875000 -0.308395 +v 0.165152 1.625000 -0.308394 +v 0.500000 1.625000 -0.375000 +v -0.118718 1.625000 -0.118718 +v -0.308395 1.625000 0.165152 +v -0.375000 1.625000 0.500000 +v -0.308395 1.625000 0.834848 +v -0.118718 1.625000 1.118718 +v 0.165152 1.625000 1.308394 +v 0.500000 1.625000 1.375000 +v 0.834848 1.625000 1.308394 +v 1.118718 1.625000 1.118719 +v 1.308395 1.625000 0.834848 +v 1.375000 1.625000 0.500000 +v 1.308394 1.625000 0.165152 +v 1.118718 1.625000 -0.118719 +v 0.834848 1.625000 -0.308395 +v -0.207107 1.000000 1.207107 +v 0.117317 1.000000 1.423880 +v 0.500000 1.000000 1.500000 +v 0.882683 1.000000 1.423880 +v 1.207107 1.000000 1.207107 +v 1.423880 1.000000 0.882684 +v 1.500000 1.000000 0.500000 +v 1.423879 1.000000 0.117316 +v 1.207107 1.000000 -0.207107 +v -0.207107 1.500000 1.207107 +v 0.117317 1.500000 1.423880 +v 0.500000 1.500000 1.500000 +v 0.882683 1.500000 1.423880 +v 1.207107 1.500000 1.207107 +v 1.423880 1.500000 0.882684 +v 1.500000 1.500000 0.500000 +v 1.423879 1.500000 0.117316 +v 1.207107 1.500000 -0.207107 +v -0.118718 1.000000 1.118718 +v 0.165152 1.000000 1.308394 +v 0.500000 1.000000 1.375000 +v 0.834848 1.000000 1.308394 +v 1.118718 1.000000 1.118719 +v 1.308395 1.000000 0.834848 +v 1.375000 1.000000 0.500000 +v 1.308394 1.000000 0.165152 +v 1.118718 1.000000 -0.118719 +v -0.118718 1.500000 1.118718 +v 0.165152 1.500000 1.308394 +v 0.500000 1.500000 1.375000 +v 0.834848 1.500000 1.308394 +v 1.118718 1.500000 1.118719 +v 1.308395 1.500000 0.834848 +v 1.375000 1.500000 0.500000 +v 1.308394 1.500000 0.165152 +v 1.118718 1.500000 -0.118719 +v 1.250000 0.625000 -0.125000 +v 1.250000 0.375000 -0.125000 +v 1.250000 0.375000 0.125000 +v 1.250000 0.625000 0.125000 +v -0.207107 1.000000 1.207107 +v 0.117316 1.000000 1.423880 +v 0.500000 1.000000 1.500000 +v 0.882683 1.000000 1.423880 +v 1.207107 1.000000 1.207107 +v 1.423880 1.000000 0.882684 +v 1.500000 1.000000 0.500000 +v 1.423880 1.000000 0.117316 +v 1.207107 1.000000 -0.207107 +v -0.207107 1.500000 1.207107 +v 0.117316 1.500000 1.423880 +v 0.500000 1.500000 1.500000 +v 0.882683 1.500000 1.423880 +v 1.207107 1.500000 1.207107 +v 1.423880 1.500000 0.882684 +v 1.500000 1.500000 0.500000 +v 1.423880 1.500000 0.117316 +v 1.207107 1.500000 -0.207107 +v -0.125000 0.125000 1.500000 +v 0.125000 0.125000 1.500000 +v -0.125000 0.125000 -1.500000 +v 0.125000 0.125000 -1.500000 +v -0.125000 0.250000 -1.500000 +v -0.125000 0.250000 1.500000 +v 0.125000 0.250000 1.500000 +v 0.125000 0.250000 -1.500000 +v -1.125000 0.125000 1.500000 +v -0.875000 0.125000 1.500000 +v -1.125000 0.125000 -1.500000 +v -0.875000 0.125000 -1.500000 +v -1.125000 0.250000 -1.500000 +v -1.125000 0.250000 1.500000 +v -0.875000 0.250000 1.500000 +v -0.875000 0.250000 -1.500000 +v 1.500000 0.312500 -1.187500 +v 1.500000 0.312500 -0.812500 +v 1.500000 0.687500 -1.187500 +v 1.500000 0.687500 -0.812500 +v 1.375000 0.375000 -1.125000 +v 1.375000 0.375000 -0.875000 +v 1.375000 0.625000 -1.125000 +v 1.375000 0.625000 -0.875000 +v 1.375000 0.687500 -1.187500 +v 1.375000 0.312500 -1.187500 +v 1.375000 0.312500 -0.812500 +v 1.375000 0.687500 -0.812500 +v 1.250000 0.625000 -1.125000 +v 1.250000 0.375000 -1.125000 +v 1.250000 0.375000 -0.875000 +v 1.250000 0.625000 -0.875000 +v 1.500000 0.312500 0.812500 +v 1.500000 0.312500 1.187500 +v 1.500000 0.687500 0.812500 +v 1.500000 0.687500 1.187500 +v 1.375000 0.375000 0.875000 +v 1.375000 0.375000 1.125000 +v 1.375000 0.625000 0.875000 +v 1.375000 0.625000 1.125000 +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 1.187500 +v 1.250000 0.625000 0.875000 +v 1.250000 0.375000 0.875000 +v 1.250000 0.375000 1.125000 +v 1.250000 0.625000 1.125000 +v -1.500000 0.312500 0.187500 +v -1.500000 0.312500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.687500 -0.187500 +v -1.375000 0.375000 0.125000 +v -1.375000 0.375000 -0.125000 +v -1.375000 0.625000 0.125000 +v -1.375000 0.625000 -0.125000 +v -1.375000 0.687500 0.187500 +v -1.375000 0.312500 0.187500 +v -1.375000 0.312500 -0.187500 +v -1.375000 0.687500 -0.187500 +v -1.250000 0.625000 0.125000 +v -1.250000 0.375000 0.125000 +v -1.250000 0.375000 -0.125000 +v -1.250000 0.625000 -0.125000 +v -1.500000 0.312500 1.187500 +v -1.500000 0.312500 0.812500 +v -1.500000 0.687500 1.187500 +v -1.500000 0.687500 0.812500 +v -1.375000 0.375000 1.125000 +v -1.375000 0.375000 0.875000 +v -1.375000 0.625000 1.125000 +v -1.375000 0.625000 0.875000 +v -1.375000 0.687500 1.187500 +v -1.375000 0.312500 1.187500 +v -1.375000 0.312500 0.812500 +v -1.375000 0.687500 0.812500 +v -1.250000 0.625000 1.125000 +v -1.250000 0.375000 1.125000 +v -1.250000 0.375000 0.875000 +v -1.250000 0.625000 0.875000 +v -1.500000 0.312500 -0.812500 +v -1.500000 0.312500 -1.187500 +v -1.500000 0.687500 -0.812500 +v -1.500000 0.687500 -1.187500 +v -1.375000 0.375000 -0.875000 +v -1.375000 0.375000 -1.125000 +v -1.375000 0.625000 -0.875000 +v -1.375000 0.625000 -1.125000 +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 -1.187500 +v -1.250000 0.625000 -0.875000 +v -1.250000 0.375000 -0.875000 +v -1.250000 0.375000 -1.125000 +v -1.250000 0.625000 -1.125000 +v -0.187500 0.312500 -1.500000 +v 0.187500 0.312500 -1.500000 +v -0.187500 0.687500 -1.500000 +v 0.187500 0.687500 -1.500000 +v -0.125000 0.375000 -1.375000 +v 0.125000 0.375000 -1.375000 +v -0.125000 0.625000 -1.375000 +v 0.125000 0.625000 -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.187500 0.687500 -1.375000 +v -0.125000 0.625000 -1.250000 +v -0.125000 0.375000 -1.250000 +v 0.125000 0.375000 -1.250000 +v 0.125000 0.625000 -1.250000 +v -1.187500 0.312500 -1.500000 +v -0.812500 0.312500 -1.500000 +v -1.187500 0.687500 -1.500000 +v -0.812500 0.687500 -1.500000 +v -1.125000 0.375000 -1.375000 +v -0.875000 0.375000 -1.375000 +v -1.125000 0.625000 -1.375000 +v -0.875000 0.625000 -1.375000 +v -1.187500 0.687500 -1.375000 +v -1.187500 0.312500 -1.375000 +v -0.812500 0.312500 -1.375000 +v -0.812500 0.687500 -1.375000 +v -1.125000 0.625000 -1.250000 +v -1.125000 0.375000 -1.250000 +v -0.875000 0.375000 -1.250000 +v -0.875000 0.625000 -1.250000 +v 0.812500 0.312500 -1.500000 +v 1.187500 0.312500 -1.500000 +v 0.812500 0.687500 -1.500000 +v 1.187500 0.687500 -1.500000 +v 0.875000 0.375000 -1.375000 +v 1.125000 0.375000 -1.375000 +v 0.875000 0.625000 -1.375000 +v 1.125000 0.625000 -1.375000 +v 0.812500 0.687500 -1.375000 +v 0.812500 0.312500 -1.375000 +v 1.187500 0.312500 -1.375000 +v 1.187500 0.687500 -1.375000 +v 0.875000 0.625000 -1.250000 +v 0.875000 0.375000 -1.250000 +v 1.125000 0.375000 -1.250000 +v 1.125000 0.625000 -1.250000 +v 0.187500 0.312500 1.500000 +v -0.187500 0.312500 1.500000 +v 0.187500 0.687500 1.500000 +v -0.187500 0.687500 1.500000 +v 0.125000 0.375000 1.375000 +v -0.125000 0.375000 1.375000 +v 0.125000 0.625000 1.375000 +v -0.125000 0.625000 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.187500 0.687500 1.375000 +v 0.125000 0.625000 1.250000 +v 0.125000 0.375000 1.250000 +v -0.125000 0.375000 1.250000 +v -0.125000 0.625000 1.250000 +v 1.187500 0.312500 1.500000 +v 0.812500 0.312500 1.500000 +v 1.187500 0.687500 1.500000 +v 0.812500 0.687500 1.500000 +v 1.125000 0.375000 1.375000 +v 0.875000 0.375000 1.375000 +v 1.125000 0.625000 1.375000 +v 0.875000 0.625000 1.375000 +v 1.187500 0.687500 1.375000 +v 1.187500 0.312500 1.375000 +v 0.812500 0.312500 1.375000 +v 0.812500 0.687500 1.375000 +v 1.125000 0.625000 1.250000 +v 1.125000 0.375000 1.250000 +v 0.875000 0.375000 1.250000 +v 0.875000 0.625000 1.250000 +v -0.812500 0.312500 1.500000 +v -1.187500 0.312500 1.500000 +v -0.812500 0.687500 1.500000 +v -1.187500 0.687500 1.500000 +v -0.875000 0.375000 1.375000 +v -1.125000 0.375000 1.375000 +v -0.875000 0.625000 1.375000 +v -1.125000 0.625000 1.375000 +v -0.812500 0.687500 1.375000 +v -0.812500 0.312500 1.375000 +v -1.187500 0.312500 1.375000 +v -1.187500 0.687500 1.375000 +v -0.875000 0.625000 1.250000 +v -0.875000 0.375000 1.250000 +v -1.125000 0.375000 1.250000 +v -1.125000 0.625000 1.250000 +vt 0.394231 0.714286 +vt 0.375000 0.742857 +vt 0.375000 0.714286 +vt 0.375000 0.771429 +vt 0.394231 0.800000 +vt 0.375000 0.800000 +vt 0.432692 0.742857 +vt 0.413462 0.771429 +vt 0.413462 0.742857 +vt 0.451923 0.742857 +vt 0.432692 0.771429 +vt 0.394231 0.742857 +vt 0.394231 0.771429 +vt 0.394231 0.714286 +vt 0.375000 0.742857 +vt 0.375000 0.714286 +vt 0.375000 0.771429 +vt 0.394231 0.800000 +vt 0.375000 0.800000 +vt 0.432692 0.742857 +vt 0.413462 0.771429 +vt 0.413462 0.742857 +vt 0.451923 0.742857 +vt 0.432692 0.771429 +vt 0.394231 0.742857 +vt 0.394231 0.771429 +vt 0.394231 0.714286 +vt 0.375000 0.742857 +vt 0.375000 0.714286 +vt 0.375000 0.771429 +vt 0.394231 0.800000 +vt 0.375000 0.800000 +vt 0.432692 0.742857 +vt 0.413462 0.771429 +vt 0.413462 0.742857 +vt 0.451923 0.742857 +vt 0.432692 0.771429 +vt 0.394231 0.742857 +vt 0.394231 0.771429 +vt 0.394231 0.714286 +vt 0.375000 0.742857 +vt 0.375000 0.714286 +vt 0.375000 0.771429 +vt 0.394231 0.800000 +vt 0.375000 0.800000 +vt 0.432692 0.742857 +vt 0.413462 0.771429 +vt 0.413462 0.742857 +vt 0.451923 0.742857 +vt 0.432692 0.771429 +vt 0.394231 0.742857 +vt 0.394231 0.771429 +vt 0.250000 0.828571 +vt 0.442308 0.814286 +vt 0.442308 0.828571 +vt 0.250000 0.842857 +vt 0.250000 0.814286 +vt 0.442308 0.800000 +vt 0.442308 0.857143 +vt 0.250000 0.857143 +vt 0.442308 0.814286 +vt 0.250000 0.828571 +vt 0.250000 0.814286 +vt 0.442308 0.800000 +vt 0.442308 0.828571 +vt 0.250000 0.842857 +vt 0.442308 0.857143 +vt 0.442308 0.842857 +vt 0.250000 0.828571 +vt 0.442308 0.814286 +vt 0.442308 0.828571 +vt 0.250000 0.842857 +vt 0.250000 0.814286 +vt 0.442308 0.800000 +vt 0.442308 0.857143 +vt 0.250000 0.857143 +vt 0.442308 0.814286 +vt 0.250000 0.828571 +vt 0.250000 0.814286 +vt 0.442308 0.800000 +vt 0.442308 0.828571 +vt 0.250000 0.842857 +vt 0.442308 0.857143 +vt 0.442308 0.842857 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.076917 0.257143 +vt 0.096151 0.207648 +vt 0.134618 0.207648 +vt 0.019228 0.306638 +vt -0.000006 0.257143 +vt 0.019228 0.207648 +vt 0.307686 0.257143 +vt 0.326920 0.207648 +vt 0.365388 0.207648 +vt 0.249997 0.306638 +vt 0.230763 0.257143 +vt 0.249997 0.207648 +vt 0.730769 0.114286 +vt 0.538462 -0.000000 +vt 0.730769 -0.000000 +vt 0.730769 0.200000 +vt 0.557692 0.228571 +vt 0.538462 0.200000 +vt 0.538462 0.114286 +vt 1.000000 0.114286 +vt 0.807692 0.200000 +vt 0.807692 0.114286 +vt 0.461538 0.200000 +vt 0.461538 0.114286 +vt 0.557692 0.342857 +vt 0.711538 0.228571 +vt 0.711538 0.342857 +vt 1.000000 0.200000 +vt 0.826923 0.228571 +vt 0.461538 0.228571 +vt 0.730769 0.228571 +vt 0.653846 0.657143 +vt 0.615385 0.714286 +vt 0.615385 0.657143 +vt 0.576923 0.657143 +vt 0.538462 0.714286 +vt 0.538462 0.657143 +vt 0.692308 0.657143 +vt 0.653846 0.714286 +vt 0.576923 0.714286 +vt 0.615385 0.771429 +vt 0.653846 0.771429 +vt 0.615385 0.828571 +vt 0.615385 0.771429 +vt 0.576923 0.771429 +vt 0.538462 0.828571 +vt 0.538462 0.771429 +vt 0.692308 0.771429 +vt 0.653846 0.828571 +vt 0.576923 0.828571 +vt 0.615385 0.885714 +vt 1.000000 0.771429 +vt 0.961538 0.485714 +vt 1.000000 0.485714 +vt 0.884615 0.485714 +vt 0.923077 0.771429 +vt 0.884615 0.771429 +vt 0.923077 0.828571 +vt 0.961538 0.771429 +vt 0.961538 0.828571 +vt 0.961538 0.428571 +vt 0.923077 0.485714 +vt 0.923077 0.428571 +vt 0.750000 0.035714 +vt 0.846154 0.028571 +vt 0.846154 0.035714 +vt 0.730769 0.342857 +vt 0.846154 0.257143 +vt 0.846154 0.342857 +vt 0.711538 0.257143 +vt 0.711538 0.342857 +vt 0.865385 0.342857 +vt 0.865385 0.257143 +vt 0.846154 0.228571 +vt 0.730769 0.257143 +vt 0.730769 0.228571 +vt 0.730769 0.371429 +vt 0.846154 0.371429 +vt 0.750000 0.035714 +vt 0.846154 0.028571 +vt 0.846154 0.035714 +vt 0.846154 -0.000000 +vt 0.750000 0.028571 +vt 0.750000 -0.000000 +vt 0.750000 0.064286 +vt 0.846154 0.064286 +vt 0.730769 0.028571 +vt 0.730769 0.035714 +vt 0.865385 0.035714 +vt 0.865385 0.028571 +vt 0.846154 -0.000000 +vt 0.750000 0.028571 +vt 0.750000 -0.000000 +vt 0.750000 0.064286 +vt 0.846154 0.064286 +vt 0.730769 0.028571 +vt 0.730769 0.035714 +vt 0.865385 0.035714 +vt 0.865385 0.028571 +vt 0.750000 0.035714 +vt 0.846154 0.028571 +vt 0.846154 0.035714 +vt 0.846154 -0.000000 +vt 0.750000 0.028571 +vt 0.750000 -0.000000 +vt 0.750000 0.064286 +vt 0.846154 0.064286 +vt 0.730769 0.028571 +vt 0.730769 0.035714 +vt 0.865385 0.035714 +vt 0.865385 0.028571 +vt 0.750000 0.035714 +vt 0.846154 0.028571 +vt 0.846154 0.035714 +vt 0.846154 -0.000000 +vt 0.750000 0.028571 +vt 0.750000 -0.000000 +vt 0.750000 0.064286 +vt 0.846154 0.064286 +vt 0.730769 0.028571 +vt 0.730769 0.035714 +vt 0.865385 0.035714 +vt 0.865385 0.028571 +vt 0.750000 0.035714 +vt 0.846154 0.028571 +vt 0.846154 0.035714 +vt 0.846154 -0.000000 +vt 0.750000 0.028571 +vt 0.750000 -0.000000 +vt 0.750000 0.064286 +vt 0.846154 0.064286 +vt 0.730769 0.028571 +vt 0.730769 0.035714 +vt 0.865385 0.035714 +vt 0.865385 0.028571 +vt 0.403846 0.314286 +vt 0.442308 0.285714 +vt 0.442308 0.314286 +vt 0.403846 0.314286 +vt 0.442308 0.285714 +vt 0.442308 0.314286 +vt 0.461538 0.228571 +vt 0.442308 0.228571 +vt 0.403846 0.285714 +vt 0.403846 0.228571 +vt 0.500000 0.228571 +vt 0.461538 0.285714 +vt 0.384615 0.285714 +vt 0.384615 0.228571 +vt 0.461538 0.228571 +vt 0.442308 0.228571 +vt 0.403846 0.285714 +vt 0.403846 0.228571 +vt 0.500000 0.228571 +vt 0.461538 0.285714 +vt 0.384615 0.285714 +vt 0.384615 0.228571 +vt 0.240385 0.800000 +vt 0.009615 0.828571 +vt 0.009615 0.800000 +vt 0.009615 0.842857 +vt 0.240385 0.871429 +vt 0.009615 0.871429 +vt 0.250000 0.871429 +vt 0.240385 0.842857 +vt 0.250000 0.842857 +vt 0.000000 0.842857 +vt 0.000000 0.871429 +vt 0.240385 0.828571 +vt 0.009615 0.885714 +vt 0.240385 0.885714 +vt 0.846154 0.428571 +vt 0.730769 0.600000 +vt 0.730769 0.428571 +vt 0.730769 0.657143 +vt 0.846154 0.828571 +vt 0.730769 0.828571 +vt 0.692308 0.657143 +vt 0.692308 0.828571 +vt 0.846154 0.600000 +vt 0.730769 0.885714 +vt 0.846154 0.885714 +vt 0.884615 0.828571 +vt 0.846154 0.657143 +vt 0.884615 0.657143 +vt 0.131284 0.709336 +vt 0.022562 0.709336 +vt 0.022563 0.547807 +vt 0.413462 0.714212 +vt 0.384665 0.671429 +vt 0.413461 0.628646 +vt 0.711050 0.372155 +vt 0.730761 0.442857 +vt 0.596162 0.442857 +vt 0.481258 0.513559 +vt 0.481258 0.372155 +vt 0.576434 0.372155 +vt 0.259615 0.385714 +vt 0.288462 0.400000 +vt 0.259615 0.400000 +vt 0.230769 0.385714 +vt 0.230769 0.400000 +vt 0.201923 0.400000 +vt 0.173077 0.400000 +vt 0.201923 0.385714 +vt 0.144231 0.385714 +vt 0.144231 0.400000 +vt 0.115385 0.385714 +vt 0.115385 0.400000 +vt 0.086538 0.400000 +vt 0.057692 0.400000 +vt 0.086538 0.385714 +vt 0.057692 0.342857 +vt 0.086538 0.357143 +vt 0.057692 0.357143 +vt 0.557692 0.557143 +vt 0.548077 0.614286 +vt 0.548077 0.557143 +vt 0.086538 0.342857 +vt 0.115385 0.357143 +vt 0.144231 0.342857 +vt 0.115385 0.342857 +vt 0.173077 0.342857 +vt 0.144231 0.357143 +vt 0.201923 0.357143 +vt 0.173077 0.357143 +vt 0.201923 0.342857 +vt 0.230769 0.357143 +vt 0.259615 0.342857 +vt 0.230769 0.342857 +vt 0.288462 0.342857 +vt 0.259615 0.357143 +vt 0.336538 0.614286 +vt 0.326923 0.557143 +vt 0.336538 0.557143 +vt 0.730769 0.585714 +vt 0.682692 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.240385 0.800000 +vt 0.009615 0.828571 +vt 0.009615 0.800000 +vt 0.009615 0.842857 +vt 0.240385 0.871429 +vt 0.009615 0.871429 +vt 0.250000 0.871429 +vt 0.240385 0.842857 +vt 0.250000 0.842857 +vt 0.000000 0.842857 +vt 0.000000 0.871429 +vt 0.240385 0.828571 +vt 0.009615 0.885714 +vt 0.240385 0.885714 +vt 0.240385 0.800000 +vt 0.009615 0.828571 +vt 0.009615 0.800000 +vt 0.009615 0.842857 +vt 0.240385 0.871429 +vt 0.009615 0.871429 +vt 0.250000 0.871429 +vt 0.240385 0.842857 +vt 0.250000 0.842857 +vt 0.000000 0.842857 +vt 0.000000 0.871429 +vt 0.240385 0.828571 +vt 0.009615 0.885714 +vt 0.240385 0.885714 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.682692 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.682692 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.682692 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.682692 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.682692 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.682692 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.682692 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.701923 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.701923 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.635714 +vt 0.677885 0.621429 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.706731 0.635714 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.682692 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.706731 0.621429 +vt 0.677885 0.578571 +vt 0.706731 0.578571 +vt 0.716346 0.621429 +vt 0.677885 0.621429 +vt 0.706731 0.635714 +vt 0.677885 0.635714 +vt 0.706731 0.564286 +vt 0.668269 0.578571 +vt 0.721154 0.614286 +vt 0.716346 0.578571 +vt 0.721154 0.585714 +vt 0.701923 0.557143 +vt 0.677885 0.564286 +vt 0.682692 0.557143 +vt 0.663462 0.585714 +vt 0.668269 0.621429 +vt 0.663462 0.614286 +vt 0.682692 0.642857 +vt 0.701923 0.642857 +vt 0.730769 0.585714 +vt 0.701923 0.542857 +vt 0.653846 0.614286 +vt 0.701923 0.657143 +vt 0.451923 0.771429 +vt 0.451923 0.771429 +vt 0.451923 0.771429 +vt 0.451923 0.771429 +vt 0.442308 0.842857 +vt 0.250000 0.800000 +vt 0.250000 0.800000 +vt 0.250000 0.857143 +vt 0.442308 0.842857 +vt 0.250000 0.800000 +vt 0.250000 0.800000 +vt 0.250000 0.857143 +vt 0.148699 0.228567 +vt 0.153852 0.257143 +vt 0.148699 0.285719 +vt 0.134618 0.306638 +vt 0.115385 0.314295 +vt 0.096151 0.306638 +vt 0.082071 0.285719 +vt 0.082071 0.228567 +vt 0.115385 0.199991 +vt 0.076929 0.257143 +vt 0.071776 0.285719 +vt 0.057695 0.306638 +vt 0.038461 0.314295 +vt 0.005148 0.285719 +vt 0.005148 0.228567 +vt 0.038461 0.199991 +vt 0.057695 0.207648 +vt 0.071775 0.228567 +vt 0.379468 0.228567 +vt 0.384622 0.257143 +vt 0.379468 0.285719 +vt 0.365388 0.306638 +vt 0.346154 0.314295 +vt 0.326920 0.306638 +vt 0.312840 0.285719 +vt 0.312840 0.228567 +vt 0.346154 0.199991 +vt 0.307698 0.257143 +vt 0.302545 0.285719 +vt 0.288465 0.306638 +vt 0.269231 0.314295 +vt 0.235917 0.285719 +vt 0.235917 0.228567 +vt 0.269231 0.199991 +vt 0.288465 0.207648 +vt 0.302545 0.228567 +vt 0.980769 0.228571 +vt 0.538462 0.228571 +vt 0.807692 0.228571 +vt 0.692308 0.714286 +vt 0.653846 0.771429 +vt 0.692308 0.828571 +vt 0.653846 0.885714 +vt 0.500000 0.285714 +vt 0.500000 0.285714 +vt 0.131284 0.547807 +vt 0.147949 0.584862 +vt 0.153801 0.628571 +vt 0.147949 0.672281 +vt 0.106343 0.734095 +vt 0.076923 0.742790 +vt 0.047503 0.734095 +vt 0.005898 0.672281 +vt 0.000046 0.628572 +vt 0.005898 0.584862 +vt 0.047503 0.523048 +vt 0.076923 0.514353 +vt 0.106343 0.523048 +vt 0.442258 0.671428 +vt 0.440066 0.687801 +vt 0.433824 0.701681 +vt 0.424481 0.710955 +vt 0.402442 0.710955 +vt 0.393099 0.701681 +vt 0.386857 0.687801 +vt 0.386857 0.655056 +vt 0.393099 0.641176 +vt 0.402442 0.631902 +vt 0.424481 0.631902 +vt 0.433823 0.641176 +vt 0.440066 0.655056 +vt 0.725639 0.481121 +vt 0.711050 0.513560 +vt 0.689216 0.535234 +vt 0.663462 0.542845 +vt 0.637707 0.535234 +vt 0.615874 0.513559 +vt 0.601285 0.481121 +vt 0.601285 0.404593 +vt 0.663462 0.342869 +vt 0.615874 0.372155 +vt 0.637707 0.350480 +vt 0.689216 0.350480 +vt 0.725639 0.404593 +vt 0.591023 0.404593 +vt 0.576434 0.513559 +vt 0.596146 0.442857 +vt 0.591023 0.481121 +vt 0.554601 0.535234 +vt 0.528846 0.542845 +vt 0.503092 0.535234 +vt 0.466669 0.481121 +vt 0.461547 0.442857 +vt 0.466669 0.404593 +vt 0.503092 0.350480 +vt 0.528846 0.342869 +vt 0.554601 0.350480 +vt 0.288462 0.385714 +vt 0.173077 0.385714 +vt 0.057692 0.385714 +vt 0.557692 0.614286 +vt 0.288462 0.357143 +vt 0.326923 0.614286 +vt 0.730769 0.614286 +vt 0.701923 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.701923 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.701923 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.701923 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.701923 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.701923 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.701923 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.701923 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.682692 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.682692 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.701923 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.730769 0.614286 +vt 0.682692 0.542857 +vt 0.653846 0.585714 +vt 0.682692 0.657143 +vt 0.115385 0.000000 +vt 0.096154 0.200000 +vt 0.096154 0.000000 +vt 0.000000 0.000000 +vt 0.019231 0.200000 +vt 0.000000 0.200000 +vt 0.192308 0.000000 +vt 0.173077 0.200000 +vt 0.173077 0.000000 +vt 0.134615 0.000000 +vt 0.115385 0.200000 +vt 0.019231 0.000000 +vt 0.038462 0.200000 +vt 0.076923 0.000000 +vt 0.057692 0.200000 +vt 0.057692 0.000000 +vt 0.211538 0.000000 +vt 0.192308 0.200000 +vt 0.153846 0.000000 +vt 0.134615 0.200000 +vt 0.038462 0.000000 +vt 0.076923 0.200000 +vt 0.230769 0.000000 +vt 0.211538 0.200000 +vt 0.153846 0.200000 +vt 0.346154 0.000000 +vt 0.326923 0.200000 +vt 0.326923 0.000000 +vt 0.250000 0.000000 +vt 0.230769 0.200000 +vt 0.230769 0.000000 +vt 0.423077 0.000000 +vt 0.403846 0.200000 +vt 0.403846 0.000000 +vt 0.365385 0.000000 +vt 0.346154 0.200000 +vt 0.269231 0.000000 +vt 0.250000 0.200000 +vt 0.288462 0.000000 +vt 0.307692 0.200000 +vt 0.288462 0.200000 +vt 0.442308 0.000000 +vt 0.423077 0.200000 +vt 0.384615 0.000000 +vt 0.365385 0.200000 +vt 0.269231 0.200000 +vt 0.307692 0.000000 +vt 0.461538 0.200000 +vt 0.442308 0.200000 +vt 0.384615 0.200000 +vt 0.163462 0.914286 +vt 0.115385 0.928571 +vt 0.115385 0.914286 +vt 0.163462 0.957143 +vt 0.115385 0.971429 +vt 0.115385 0.957143 +vt 0.000000 0.942857 +vt 0.057692 0.928571 +vt 0.057692 0.942857 +vt 0.163462 0.942857 +vt 0.177885 0.957143 +vt 0.057692 0.957143 +vt 0.115385 0.942857 +vt 0.115385 0.957143 +vt 0.000000 0.928571 +vt 0.057692 0.914286 +vt 0.163462 0.971429 +vt 0.115385 0.985714 +vt 0.057692 0.971429 +vt 0.115385 0.971429 +vt 0.000000 0.914286 +vt 0.057692 0.900000 +vt 0.115385 0.942857 +vt 0.057692 0.985714 +vt 0.115385 0.985714 +vt 0.000000 0.900000 +vt 0.057692 0.885714 +vt 0.163462 0.928571 +vt 0.115385 1.000000 +vt 0.000000 1.000000 +vt 0.057692 0.985714 +vt 0.057692 1.000000 +vt 0.163462 0.900000 +vt 0.115385 0.900000 +vt 0.057692 0.900000 +vt 0.115385 0.885714 +vt 0.115385 0.900000 +vt 0.000000 0.985714 +vt 0.057692 0.971429 +vt 0.057692 0.928571 +vt 0.115385 0.914286 +vt 0.115385 0.928571 +vt 0.057692 0.914286 +vt 0.000000 0.971429 +vt 0.057692 0.957143 +vt 0.163462 0.885714 +vt 0.115385 0.885714 +vt 0.163462 0.985714 +vt 0.115385 1.000000 +vt 0.057692 0.942857 +vt 0.168269 0.971429 +vt 0.177885 0.985714 +vt 0.173077 0.985714 +vt 0.177885 0.914286 +vt 0.177885 0.928571 +vt 0.177885 0.971429 +vt 0.168269 0.914286 +vt 0.177885 0.900000 +vt 0.177885 0.942857 +vt 0.192308 0.957143 +vt 0.187500 0.971429 +vt 0.187500 0.914286 +vt 0.192308 0.942857 +vt 0.182692 0.985714 +vt 0.192308 0.928571 +vt 0.177885 0.885714 +vt 0.173077 0.900000 +vt 0.182692 0.900000 +vt 0.177885 1.000000 +vt 0.192308 0.900000 +vt 0.240385 0.914286 +vt 0.192308 0.914286 +vt 0.240385 0.942857 +vt 0.192308 0.985714 +vt 0.240385 1.000000 +vt 0.192308 1.000000 +vt 0.240385 0.957143 +vt 0.192308 0.885714 +vt 0.240385 0.900000 +vt 0.192308 0.971429 +vt 0.240385 0.985714 +vt 0.240385 0.928571 +vt 0.240385 0.971429 +vt 0.254808 1.000000 +vt 0.245192 1.000000 +vt 0.254808 0.942857 +vt 0.254808 0.957143 +vt 0.254808 0.985714 +vt 0.245192 0.885714 +vt 0.254808 0.900000 +vt 0.250000 0.900000 +vt 0.254808 0.971429 +vt 0.245192 0.942857 +vt 0.254808 0.928571 +vt 0.269231 0.971429 +vt 0.264423 0.942857 +vt 0.269231 0.985714 +vt 0.264423 1.000000 +vt 0.269231 0.957143 +vt 0.264423 0.885714 +vt 0.259615 0.900000 +vt 0.254808 0.914286 +vt 0.250000 0.928571 +vt 0.259615 0.928571 +vt 0.336538 0.914286 +vt 0.269231 0.928571 +vt 0.269231 0.914286 +vt 0.336538 0.957143 +vt 0.269231 0.971429 +vt 0.269231 0.957143 +vt 0.336538 0.942857 +vt 0.350962 0.957143 +vt 0.336538 0.971429 +vt 0.269231 0.985714 +vt 0.269231 0.942857 +vt 0.336538 0.928571 +vt 0.336538 0.900000 +vt 0.269231 0.900000 +vt 0.336538 0.885714 +vt 0.269231 0.885714 +vt 0.336538 0.985714 +vt 0.269231 1.000000 +vt 0.341346 0.971429 +vt 0.350962 0.985714 +vt 0.346154 0.985714 +vt 0.341346 0.914286 +vt 0.350962 0.928571 +vt 0.350962 0.971429 +vt 0.350962 0.900000 +vt 0.350962 0.914286 +vt 0.350962 0.942857 +vt 0.365385 0.957143 +vt 0.360577 0.971429 +vt 0.360577 0.914286 +vt 0.365385 0.928571 +vt 0.365385 0.942857 +vt 0.355769 0.985714 +vt 0.350962 0.885714 +vt 0.346154 0.900000 +vt 0.355769 0.900000 +vt 0.350962 1.000000 +vt 0.365385 0.900000 +vt 0.413462 0.914286 +vt 0.365385 0.914286 +vt 0.413462 0.942857 +vt 0.365385 0.985714 +vt 0.413462 1.000000 +vt 0.365385 1.000000 +vt 0.413462 0.957143 +vt 0.365385 0.885714 +vt 0.413462 0.900000 +vt 0.365385 0.971429 +vt 0.413462 0.985714 +vt 0.413462 0.928571 +vt 0.413462 0.971429 +vt 0.418269 1.000000 +vt 0.427885 0.985714 +vt 0.427885 1.000000 +vt 0.418269 0.942857 +vt 0.427885 0.957143 +vt 0.427885 0.971429 +vt 0.418269 0.885714 +vt 0.427885 0.900000 +vt 0.423077 0.900000 +vt 0.427885 0.928571 +vt 0.427885 0.942857 +vt 0.442308 0.957143 +vt 0.442308 0.971429 +vt 0.437500 0.942857 +vt 0.442308 0.985714 +vt 0.437500 1.000000 +vt 0.437500 0.885714 +vt 0.432692 0.900000 +vt 0.427885 0.914286 +vt 0.423077 0.928571 +vt 0.432692 0.928571 +vt 0.442308 0.885714 +vt 0.461538 0.900000 +vt 0.442308 0.900000 +vt 0.461538 0.971429 +vt 0.442308 0.928571 +vt 0.461538 0.942857 +vt 0.442308 0.942857 +vt 0.461538 0.914286 +vt 0.442308 0.914286 +vt 0.461538 1.000000 +vt 0.442308 1.000000 +vt 0.461538 0.928571 +vt 0.461538 0.957143 +vt 0.461538 0.985714 +vt 0.230769 0.428571 +vt 0.206731 0.514286 +vt 0.201923 0.428571 +vt 0.432692 0.314286 +vt 0.403846 0.428571 +vt 0.403846 0.314286 +vt 0.461538 0.314286 +vt 0.432692 0.428571 +vt 0.028846 0.314286 +vt 0.000000 0.428571 +vt -0.000000 0.314286 +vt 0.028846 0.428571 +vt 0.317308 0.428571 +vt 0.375000 0.314286 +vt 0.346154 0.428571 +vt 0.346154 0.314286 +vt 0.317308 0.314286 +vt 0.375000 0.428571 +vt 0.355769 0.628571 +vt 0.341346 0.685714 +vt 0.341346 0.628571 +vt 0.004808 0.514286 +vt 0.259615 0.428571 +vt 0.235577 0.514286 +vt 0.057692 0.428571 +vt 0.033654 0.514286 +vt 0.288462 0.428571 +vt 0.264423 0.514286 +vt 0.086538 0.428571 +vt 0.062500 0.514286 +vt 0.293269 0.514286 +vt 0.115385 0.428571 +vt 0.091346 0.514286 +vt 0.350962 0.514286 +vt 0.322115 0.514286 +vt 0.134615 0.514286 +vt 0.120192 0.514286 +vt 0.379808 0.514286 +vt 0.144231 0.428571 +vt 0.163462 0.514286 +vt 0.149038 0.514286 +vt 0.408654 0.514286 +vt 0.173077 0.428571 +vt 0.192308 0.514286 +vt 0.177885 0.514286 +vt 0.461538 0.428571 +vt 0.437500 0.514286 +vt 0.197115 0.685714 +vt 0.182692 0.714286 +vt 0.182692 0.685714 +vt 0.225962 0.628571 +vt 0.240385 0.685714 +vt 0.225962 0.685714 +vt 0.370192 0.628571 +vt 0.355769 0.685714 +vt 0.254808 0.628571 +vt 0.240385 0.628571 +vt 0.384615 0.628571 +vt 0.370192 0.685714 +vt 0.269231 0.628571 +vt 0.254808 0.685714 +vt 0.168269 0.628571 +vt 0.153846 0.685714 +vt 0.153846 0.628571 +vt 0.283654 0.628571 +vt 0.269231 0.685714 +vt 0.182692 0.628571 +vt 0.168269 0.685714 +vt 0.298077 0.628571 +vt 0.283654 0.685714 +vt 0.197115 0.628571 +vt 0.312500 0.628571 +vt 0.298077 0.685714 +vt 0.211538 0.628571 +vt 0.326923 0.685714 +vt 0.326923 0.628571 +vt 0.312500 0.685714 +vt 0.211538 0.685714 +vt 0.634615 0.957143 +vt 0.750000 0.971429 +vt 0.634615 0.971429 +vt 0.634615 0.914286 +vt 0.750000 0.928571 +vt 0.634615 0.928571 +vt 0.764423 0.928571 +vt 0.750000 0.942857 +vt 0.634615 0.900000 +vt 0.750000 0.914286 +vt 0.634615 0.942857 +vt 0.750000 0.957143 +vt 0.750000 0.985714 +vt 0.634615 0.985714 +vt 0.750000 1.000000 +vt 0.634615 1.000000 +vt 0.634615 0.885714 +vt 0.750000 0.900000 +vt 0.764423 0.900000 +vt 0.754808 0.914286 +vt 0.759615 0.900000 +vt 0.764423 0.971429 +vt 0.754808 0.971429 +vt 0.764423 0.914286 +vt 0.764423 0.985714 +vt 0.759615 0.985714 +vt 0.764423 0.957143 +vt 0.774038 0.914286 +vt 0.774038 0.971429 +vt 0.778846 0.942857 +vt 0.764423 0.942857 +vt 0.778846 0.928571 +vt 0.778846 0.957143 +vt 0.764423 1.000000 +vt 0.769231 0.985714 +vt 0.764423 0.885714 +vt 0.769231 0.900000 +vt 0.817308 0.971429 +vt 0.778846 0.985714 +vt 0.778846 0.971429 +vt 0.817308 0.942857 +vt 0.817308 0.885714 +vt 0.778846 0.900000 +vt 0.778846 0.885714 +vt 0.817308 0.928571 +vt 0.817308 0.985714 +vt 0.778846 1.000000 +vt 0.817308 0.900000 +vt 0.778846 0.914286 +vt 0.817308 0.957143 +vt 0.817308 0.914286 +vt 0.831731 0.885714 +vt 0.822115 0.885714 +vt 0.831731 0.942857 +vt 0.822115 0.942857 +vt 0.831731 0.900000 +vt 0.831731 0.985714 +vt 0.822115 1.000000 +vt 0.826923 0.985714 +vt 0.831731 0.914286 +vt 0.831731 0.957143 +vt 0.826923 0.957143 +vt 0.846154 0.914286 +vt 0.831731 0.928571 +vt 0.841346 0.942857 +vt 0.841346 0.885714 +vt 0.846154 0.928571 +vt 0.846154 0.900000 +vt 0.841346 1.000000 +vt 0.831731 1.000000 +vt 0.831731 0.971429 +vt 0.836538 0.957143 +vt 0.836538 0.985714 +vt 0.461538 0.957143 +vt 0.557692 0.971429 +vt 0.461538 0.971429 +vt 0.461538 0.914286 +vt 0.557692 0.928571 +vt 0.461538 0.928571 +vt 0.572115 0.928571 +vt 0.557692 0.942857 +vt 0.461538 0.900000 +vt 0.557692 0.914286 +vt 0.461538 0.942857 +vt 0.557692 0.957143 +vt 0.557692 0.985714 +vt 0.461538 0.985714 +vt 0.557692 1.000000 +vt 0.461538 1.000000 +vt 0.461538 0.885714 +vt 0.557692 0.900000 +vt 0.572115 0.900000 +vt 0.562500 0.914286 +vt 0.567308 0.900000 +vt 0.572115 0.971429 +vt 0.562500 0.971429 +vt 0.572115 0.914286 +vt 0.572115 0.985714 +vt 0.567308 0.985714 +vt 0.572115 0.957143 +vt 0.586538 0.928571 +vt 0.581731 0.971429 +vt 0.586538 0.942857 +vt 0.572115 0.942857 +vt 0.581731 0.914286 +vt 0.586538 0.957143 +vt 0.572115 1.000000 +vt 0.576923 0.985714 +vt 0.572115 0.885714 +vt 0.576923 0.900000 +vt 0.605769 0.971429 +vt 0.586538 0.985714 +vt 0.586538 0.971429 +vt 0.605769 0.942857 +vt 0.605769 0.885714 +vt 0.586538 0.900000 +vt 0.586538 0.885714 +vt 0.605769 0.928571 +vt 0.605769 0.985714 +vt 0.586538 1.000000 +vt 0.605769 0.900000 +vt 0.586538 0.914286 +vt 0.605769 0.957143 +vt 0.605769 0.914286 +vt 0.620192 0.885714 +vt 0.610577 0.885714 +vt 0.620192 0.942857 +vt 0.610577 0.942857 +vt 0.620192 0.900000 +vt 0.620192 0.985714 +vt 0.610577 1.000000 +vt 0.615385 0.985714 +vt 0.620192 0.928571 +vt 0.620192 0.957143 +vt 0.615385 0.957143 +vt 0.634615 0.914286 +vt 0.620192 0.914286 +vt 0.629808 0.942857 +vt 0.634615 0.900000 +vt 0.634615 0.928571 +vt 0.629808 1.000000 +vt 0.620192 1.000000 +vt 0.620192 0.971429 +vt 0.625000 0.957143 +vt 0.625000 0.985714 +vt 0.451923 0.771429 +vt 0.509615 0.785714 +vt 0.451923 0.785714 +vt 0.451923 0.814286 +vt 0.509615 0.828571 +vt 0.451923 0.828571 +vt 0.451923 0.842857 +vt 0.509615 0.857143 +vt 0.451923 0.857143 +vt 0.451923 0.757143 +vt 0.509615 0.771429 +vt 0.509615 0.800000 +vt 0.451923 0.800000 +vt 0.509615 0.814286 +vt 0.509615 0.842857 +vt 0.451923 0.742857 +vt 0.509615 0.757143 +vt 0.514423 0.771429 +vt 0.524038 0.757143 +vt 0.524038 0.771429 +vt 0.524038 0.785714 +vt 0.524038 0.800000 +vt 0.524038 0.814286 +vt 0.514423 0.828571 +vt 0.524038 0.842857 +vt 0.519231 0.842857 +vt 0.524038 0.828571 +vt 0.538462 0.814286 +vt 0.533654 0.828571 +vt 0.533654 0.771429 +vt 0.538462 0.800000 +vt 0.528846 0.842857 +vt 0.538462 0.785714 +vt 0.298077 0.714286 +vt 0.197115 0.714286 +vt 0.326923 0.714286 +vt 0.312500 0.714286 +vt 0.211538 0.714286 +vt 0.350962 0.714286 +vt 0.341346 0.714286 +vt 0.235577 0.714286 +vt 0.225962 0.714286 +vt 0.355769 0.714286 +vt 0.240385 0.714286 +vt 0.379808 0.714286 +vt 0.370192 0.714286 +vt 0.254808 0.714286 +vt 0.163462 0.714286 +vt 0.153846 0.714286 +vt 0.278846 0.714286 +vt 0.269231 0.714286 +vt 0.177885 0.714286 +vt 0.168269 0.714286 +vt 0.293269 0.714286 +vt 0.283654 0.714286 +vt 0.509615 0.700000 +vt 0.451923 0.714286 +vt 0.451923 0.700000 +vt 0.509615 0.657143 +vt 0.451923 0.671429 +vt 0.451923 0.657143 +vt 0.509615 0.628571 +vt 0.451923 0.642857 +vt 0.451923 0.628571 +vt 0.509615 0.714286 +vt 0.451923 0.728571 +vt 0.509615 0.685714 +vt 0.451923 0.685714 +vt 0.509615 0.671429 +vt 0.509615 0.642857 +vt 0.509615 0.728571 +vt 0.451923 0.742857 +vt 0.514423 0.714286 +vt 0.524038 0.728571 +vt 0.519231 0.728571 +vt 0.524038 0.685714 +vt 0.524038 0.671429 +vt 0.524038 0.642857 +vt 0.514423 0.657143 +vt 0.519231 0.642857 +vt 0.524038 0.714286 +vt 0.524038 0.657143 +vt 0.538462 0.671429 +vt 0.533654 0.714286 +vt 0.538462 0.685714 +vt 0.524038 0.700000 +vt 0.533654 0.657143 +vt 0.538462 0.700000 +vt 0.144231 0.314286 +vt 0.115385 0.314286 +vt 0.557692 0.542857 +vt 0.528846 0.557143 +vt 0.528846 0.542857 +vt 0.201923 0.314286 +vt 0.173077 0.314286 +vt 0.259615 0.314286 +vt 0.230769 0.314286 +vt 0.500000 0.542857 +vt 0.471154 0.557143 +vt 0.471154 0.542857 +vt 0.086538 0.314286 +vt 0.269231 0.628571 +vt 0.240385 0.542857 +vt 0.269231 0.542857 +vt 0.298077 0.628571 +vt 0.298077 0.542857 +vt 0.240385 0.628571 +vt 0.211538 0.542857 +vt 0.182692 0.628571 +vt 0.182692 0.542857 +vt 0.288462 0.314286 +vt 0.153846 0.542857 +vt 0.057692 0.314286 +vt 0.615385 0.628571 +vt 0.586538 0.542857 +vt 0.615385 0.542857 +vt 0.355769 0.542857 +vt 0.326923 0.542857 +vt 0.413462 0.542857 +vt 0.384615 0.557143 +vt 0.384615 0.542857 +vt 0.442308 0.557143 +vt 0.442308 0.542857 +vt 0.500000 0.557143 +vt 0.355769 0.557143 +vt 0.413462 0.557143 +vt 0.355769 0.628571 +vt 0.384615 0.614286 +vt 0.384615 0.628571 +vt 0.413462 0.628571 +vt 0.442308 0.614286 +vt 0.442308 0.628571 +vt 0.471154 0.628571 +vt 0.500000 0.614286 +vt 0.500000 0.628571 +vt 0.528846 0.628571 +vt 0.557692 0.628571 +vt 0.326923 0.628571 +vt 0.355769 0.614286 +vt 0.413462 0.614286 +vt 0.471154 0.614286 +vt 0.528846 0.614286 +vt 0.586538 0.628571 +vt 0.759615 0.371429 +vt 0.730769 0.428571 +vt 0.730769 0.371429 +vt 0.788462 0.371429 +vt 0.759615 0.428571 +vt 0.817308 0.371429 +vt 0.788462 0.428571 +vt 0.846154 0.371429 +vt 0.817308 0.428571 +vt 0.875000 0.371429 +vt 0.846154 0.428571 +vt 0.903846 0.371429 +vt 0.875000 0.428571 +vt 0.932692 0.371429 +vt 0.903846 0.428571 +vt 0.932692 0.428571 +vt 0.961538 0.371429 +vt 0.961538 0.428571 +vt 0.524038 0.857143 +vt 0.519231 0.757143 +vt 0.524038 0.742857 +vt 0.528846 0.757143 +vt 0.524038 0.742857 +vt 0.528846 0.728571 +vt 0.524038 0.628571 +vt 0.528846 0.642857 +vt 0.230769 0.200000 +vt 0.461538 0.000000 +vt 0.000000 0.885714 +vt 0.057692 1.000000 +vt 0.057692 0.885714 +vt 0.000000 0.957143 +vt 0.163462 1.000000 +vt 0.240385 0.885714 +vt 0.254808 0.885714 +vt 0.336538 1.000000 +vt 0.413462 0.885714 +vt 0.427885 0.885714 +vt 0.461538 0.885714 +vt 0.221154 0.514286 +vt 0.019231 0.514286 +vt 0.250000 0.514286 +vt 0.048077 0.514286 +vt 0.278846 0.514286 +vt 0.076923 0.514286 +vt 0.307692 0.514286 +vt 0.105769 0.514286 +vt 0.365385 0.514286 +vt 0.336538 0.514286 +vt 0.394231 0.514286 +vt 0.423077 0.514286 +vt 0.451923 0.514286 +vt 0.192308 0.714286 +vt 0.384615 0.685714 +vt 0.750000 0.885714 +vt 0.817308 1.000000 +vt 0.557692 0.885714 +vt 0.605769 1.000000 +vt 0.629808 0.885714 +vt 0.509615 0.742857 +vt 0.307692 0.714286 +vt 0.206731 0.714286 +vt 0.336538 0.714286 +vt 0.322115 0.714286 +vt 0.221154 0.714286 +vt 0.365385 0.714286 +vt 0.250000 0.714286 +vt 0.264423 0.714286 +vt 0.509615 0.742857 +vt 0.211538 0.628571 +vt 0.153846 0.628571 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 -0.0000 -0.5000 +vn 0.5000 -0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn 0.5000 -0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 -0.0000 0.5000 +vn -0.5000 0.0000 0.8660 +vn 0.9987 0.0473 -0.0196 +vn -0.6794 0.7194 -0.1448 +vn 0.0000 0.9824 -0.1866 +vn -0.6630 0.5294 -0.5294 +vn -0.9987 0.0473 -0.0196 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.6794 0.7194 -0.1448 +vn 0.7263 -0.6737 0.1363 +vn -0.0000 -0.7071 0.7071 +vn -0.7263 -0.6737 0.1363 +vn -0.7574 -0.4617 0.4617 +vn 0.9955 0.0671 -0.0671 +vn 0.6630 0.5294 -0.5294 +vn -0.9955 0.0671 -0.0671 +vn 0.7574 -0.4617 0.4617 +vn -0.0000 0.7071 -0.7071 +vn -0.6794 0.1448 -0.7194 +vn -0.9987 0.0196 -0.0473 +vn 0.9987 0.0196 -0.0473 +vn -0.0000 0.1866 -0.9824 +vn -0.7263 -0.1363 0.6737 +vn 0.6794 0.1448 -0.7194 +vn 0.7263 -0.1363 0.6737 +vn 0.9809 0.1944 0.0000 +vn -0.0473 -0.0196 -0.9987 +vn -0.0473 -0.0196 0.9987 +vn -0.7194 -0.1448 -0.6794 +vn 0.6737 0.1363 0.7263 +vn -0.7194 -0.1448 0.6794 +vn 0.6737 0.1363 -0.7263 +vn -0.9824 -0.1866 -0.0000 +vn -0.0671 -0.0671 0.9955 +vn -0.0671 -0.0671 -0.9955 +vn -0.5294 -0.5294 -0.6630 +vn -0.5294 -0.5294 0.6630 +vn 0.4617 0.4617 0.7574 +vn 0.4617 0.4617 -0.7574 +vn -0.3827 -0.9239 0.0000 +vn -0.0393 -0.0948 -0.9947 +vn -0.2962 -0.7150 0.6333 +vn -0.0393 -0.0948 0.9947 +vn -0.2962 -0.7150 -0.6333 +vn 0.2611 0.6303 0.7311 +vn 0.2611 0.6303 -0.7311 +vn -0.1448 -0.7194 -0.6794 +vn -0.1866 -0.9824 0.0000 +vn -0.0196 -0.0473 -0.9987 +vn -0.1448 -0.7194 0.6794 +vn -0.0196 -0.0473 0.9987 +vn 0.1363 0.6737 0.7263 +vn 0.1363 0.6737 -0.7263 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.6533 0.7071 0.2706 +vn -0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 -0.7071 +vn -0.9239 0.0000 0.3827 +vn -0.7523 0.0000 0.6588 +vn 0.3827 0.0000 -0.9239 +vn 0.6588 0.0000 -0.7523 +vn -0.3827 0.0000 -0.9239 +vn -0.6533 0.7071 0.2706 +vn 0.6533 0.7071 -0.2706 +vn -0.5000 0.7071 0.5000 +vn 0.5000 0.7071 -0.5000 +vn -0.2706 0.7071 0.6533 +vn 0.2706 0.7071 -0.6533 +vn -0.2706 0.7071 -0.6533 +vn 0.2706 0.7071 0.6533 +vn -0.5000 0.7071 -0.5000 +vn 0.5000 0.7071 0.5000 +vn -0.6533 0.7071 -0.2706 +vn -0.3423 0.4472 0.8263 +vn -0.6325 0.4472 0.6325 +vn 0.3827 0.0000 0.9239 +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.9809 0.1944 0.0000 +vn 0.0473 -0.0196 -0.9987 +vn 0.0473 -0.0196 0.9987 +vn 0.7194 -0.1448 -0.6794 +vn -0.6737 0.1363 0.7263 +vn 0.7194 -0.1448 0.6794 +vn -0.6737 0.1363 -0.7263 +vn 0.9824 -0.1866 0.0000 +vn 0.0671 -0.0671 0.9955 +vn 0.0671 -0.0671 -0.9955 +vn 0.5294 -0.5294 0.6630 +vn -0.4617 0.4617 0.7574 +vn -0.4617 0.4617 -0.7574 +vn 0.3827 -0.9239 0.0000 +vn 0.5294 -0.5294 -0.6630 +vn 0.0393 -0.0948 -0.9947 +vn 0.0393 -0.0948 0.9947 +vn 0.2962 -0.7150 -0.6333 +vn 0.2962 -0.7150 0.6333 +vn -0.2611 0.6303 -0.7311 +vn -0.2611 0.6303 0.7311 +vn 0.1448 0.6794 -0.7194 +vn 0.0196 -0.9987 -0.0473 +vn -0.1944 0.0000 0.9809 +vn 0.0196 0.9987 -0.0473 +vn 0.1866 -0.0000 -0.9824 +vn 0.1448 -0.6794 -0.7194 +vn -0.1363 -0.7263 0.6737 +vn -0.1363 0.7263 0.6737 +vn -0.4617 0.7574 0.4617 +vn 0.0671 0.9955 -0.0671 +vn 0.5294 0.6630 -0.5294 +vn 0.5294 -0.6630 -0.5294 +vn -0.4617 -0.7574 0.4617 +vn 0.0671 -0.9955 -0.0671 +vn 0.7150 -0.6333 -0.2962 +vn 0.0948 -0.9947 -0.0393 +vn 0.0948 0.9947 -0.0393 +vn -0.6303 -0.7311 0.2611 +vn 0.7150 0.6333 -0.2962 +vn 0.3423 0.4472 -0.8263 +vn 0.6325 0.4472 -0.6325 +vn -0.0000 0.4472 0.8944 +vn -0.3423 0.4472 -0.8263 +vn 0.0000 0.4472 -0.8944 +vn 0.3423 0.4472 0.8263 +vn -0.6325 0.4472 -0.6325 +vn 0.6325 0.4472 0.6325 +vn -0.8263 0.4472 -0.3423 +vn 0.8263 0.4472 0.3423 +vn -0.8944 0.4472 -0.0000 +vn 0.8944 0.4472 0.0000 +vn -0.8263 0.4472 0.3423 +vn 0.8263 0.4472 -0.3423 +vn 0.1448 0.6794 0.7194 +vn 0.0196 -0.9987 0.0473 +vn -0.1944 0.0000 -0.9809 +vn 0.0196 0.9987 0.0473 +vn 0.1866 -0.0000 0.9824 +vn 0.1448 -0.6794 0.7194 +vn -0.1363 -0.7263 -0.6737 +vn -0.1363 0.7263 -0.6737 +vn -0.4617 0.7574 -0.4617 +vn 0.5294 -0.6630 0.5294 +vn -0.4617 -0.7574 -0.4617 +vn 0.0671 0.9955 0.0671 +vn 0.0671 -0.9955 0.0671 +vn 0.7150 -0.6333 0.2962 +vn 0.0948 0.9947 0.0393 +vn 0.5294 0.6630 0.5294 +vn 0.0948 -0.9947 0.0393 +vn 0.7150 0.6333 0.2962 +vn -0.6588 0.0000 0.7523 +vn 0.7523 -0.0000 -0.6588 +vn -0.5556 0.0000 0.8315 +vn 0.8315 0.0000 -0.5556 +vn -0.6303 0.7311 0.2611 +vn -0.6303 0.7311 -0.2611 +vn -0.6303 -0.7311 -0.2611 +s off +f 286/410/40 283/411/40 284/412/40 +f 287/413/41 290/414/41 288/415/41 +f 284/416/42 290/417/42 286/418/42 +f 283/419/43 288/420/43 284/416/43 +f 285/421/44 287/413/44 283/411/44 +f 286/418/45 289/422/45 285/421/45 +f 294/423/40 291/424/40 292/425/40 +f 295/426/41 298/427/41 296/428/41 +f 292/429/42 298/430/42 294/431/42 +f 291/432/43 296/433/43 292/429/43 +f 293/434/44 295/426/44 291/424/44 +f 294/431/45 297/435/45 293/434/45 +f 302/436/40 299/437/40 300/438/40 +f 303/439/41 306/440/41 304/441/41 +f 300/442/42 306/443/42 302/444/42 +f 299/445/43 304/446/43 300/442/43 +f 301/447/44 303/439/44 299/437/44 +f 302/444/45 305/448/45 301/447/45 +f 310/449/40 307/450/40 308/451/40 +f 311/452/41 314/453/41 312/454/41 +f 308/455/42 314/456/42 310/457/42 +f 307/458/43 312/459/43 308/455/43 +f 309/460/44 311/452/44 307/450/44 +f 310/457/45 313/461/45 309/460/45 +f 282/462/40 280/463/40 281/464/40 +f 281/464/44 275/465/44 282/462/44 +f 279/466/42 277/467/42 280/463/42 +f 275/465/41 277/468/41 278/469/41 +f 322/470/40 320/471/40 321/472/40 +f 321/472/44 315/473/44 322/470/44 +f 319/474/42 317/475/42 320/471/42 +f 315/476/41 317/475/41 318/477/41 +f 330/478/40 328/479/40 329/480/40 +f 329/480/45 323/481/45 330/478/45 +f 327/482/43 325/483/43 328/479/43 +f 323/481/41 325/484/41 326/485/41 +f 338/486/40 336/487/40 337/488/40 +f 337/488/45 331/489/45 338/486/45 +f 335/490/43 333/491/43 336/487/43 +f 331/492/41 333/491/41 334/493/41 +f 341/494/44 340/495/44 339/496/44 +f 339/496/45 347/497/45 341/494/45 +f 341/494/41 350/498/41 342/499/41 +f 340/495/40 348/500/40 339/496/40 +f 342/499/43 349/501/43 340/495/43 +f 345/502/42 348/503/42 343/504/42 +f 343/505/42 349/506/42 344/507/42 +f 344/508/42 350/509/42 346/510/42 +f 346/511/42 347/512/42 345/513/42 +f 357/514/40 355/515/40 353/516/40 +f 367/517/41 369/518/41 371/519/41 +f 381/520/40 379/521/40 377/522/40 +f 391/523/41 393/524/41 395/525/41 +f 401/526/40 400/527/40 399/528/40 +f 403/529/45 410/530/45 406/531/45 +f 401/526/45 406/531/45 402/532/45 +f 400/533/43 404/534/43 399/535/43 +f 402/532/44 405/536/44 400/537/44 +f 399/535/42 403/529/42 401/526/42 +f 409/538/41 407/539/41 408/540/41 +f 405/541/43 408/542/43 404/534/43 +f 406/531/46 409/543/46 405/536/46 +f 404/534/47 407/544/47 403/529/47 +f 414/545/45 417/546/45 413/547/45 +f 411/548/43 416/549/43 412/550/43 +f 412/551/44 418/552/44 414/545/44 +f 413/547/42 415/553/42 411/548/42 +f 418/552/40 415/554/40 417/546/40 +f 422/555/45 425/556/45 421/557/45 +f 419/558/43 424/559/43 420/560/43 +f 420/561/44 426/562/44 422/555/44 +f 421/557/42 423/563/42 419/558/42 +f 426/562/40 423/564/40 425/556/40 +f 430/565/45 433/566/45 429/567/45 +f 427/568/43 432/569/43 428/570/43 +f 428/571/44 434/572/44 430/573/44 +f 429/574/42 431/575/42 427/576/42 +f 434/572/40 431/575/40 433/566/40 +f 457/577/41 455/578/41 456/579/41 +f 441/580/41 439/581/41 440/582/41 +f 438/583/44 441/580/44 436/584/44 +f 435/585/42 439/581/42 437/586/42 +f 437/587/45 442/588/45 438/589/45 +f 436/590/43 440/582/43 435/591/43 +f 449/592/41 447/593/41 448/594/41 +f 445/595/45 450/596/45 446/597/45 +f 444/598/43 448/594/43 443/599/43 +f 446/600/44 449/592/44 444/601/44 +f 443/602/42 447/593/42 445/603/42 +f 453/604/45 458/605/45 454/606/45 +f 452/607/43 456/579/43 451/608/43 +f 454/609/44 457/577/44 452/610/44 +f 451/611/42 455/578/42 453/612/42 +f 465/613/41 463/614/41 464/615/41 +f 461/616/45 466/617/45 462/618/45 +f 460/619/43 464/615/43 459/620/43 +f 462/621/44 465/613/44 460/622/44 +f 459/623/42 463/614/42 461/624/42 +f 473/625/41 471/626/41 472/627/41 +f 469/628/45 474/629/45 470/630/45 +f 468/631/43 472/627/43 467/632/43 +f 470/633/44 473/625/44 468/634/44 +f 467/635/42 471/626/42 469/636/42 +f 481/637/41 479/638/41 480/639/41 +f 477/640/45 482/641/45 478/642/45 +f 476/643/43 480/639/43 475/644/43 +f 478/645/44 481/637/44 476/646/44 +f 475/647/42 479/638/42 477/648/42 +f 497/649/41 495/650/41 496/651/41 +f 489/652/41 487/653/41 488/654/41 +f 483/655/42 487/653/42 485/656/42 +f 485/656/45 490/657/45 486/658/45 +f 484/659/43 488/660/43 483/655/43 +f 486/658/44 489/661/44 484/662/44 +f 491/663/42 495/650/42 493/664/42 +f 493/664/45 498/665/45 494/666/45 +f 492/667/43 496/668/43 491/663/43 +f 494/666/44 497/669/44 492/670/44 +f 645/671/40 644/672/40 643/673/40 +f 649/674/41 647/675/41 648/676/41 +f 645/677/45 650/678/45 646/679/45 +f 644/680/43 648/676/43 643/681/43 +f 646/682/44 649/674/44 644/672/44 +f 643/683/42 647/675/42 645/684/42 +f 669/685/40 668/686/40 667/687/40 +f 673/688/41 671/689/41 672/690/41 +f 668/691/43 672/690/43 667/692/43 +f 670/693/44 673/688/44 668/686/44 +f 667/694/42 671/689/42 669/695/42 +f 669/696/45 674/697/45 670/698/45 +f 665/699/40 661/700/40 657/701/40 +f 861/702/41 865/703/41 869/704/41 +f 917/705/41 903/706/41 911/707/41 +f 929/708/40 925/709/40 921/710/40 +f 969/711/40 952/712/40 951/713/40 +f 968/714/40 951/713/40 950/715/40 +f 949/716/40 968/714/40 950/715/40 +f 948/717/40 967/718/40 949/716/40 +f 965/719/40 948/717/40 947/720/40 +f 964/721/40 947/720/40 946/722/40 +f 945/723/40 964/721/40 946/722/40 +f 944/724/40 963/725/40 945/723/40 +f 935/726/41 954/727/41 953/728/41 +f 953/729/48 944/730/48 935/731/48 +f 936/732/41 955/733/41 954/727/41 +f 938/734/41 955/733/41 937/735/41 +f 939/736/41 956/737/41 938/734/41 +f 939/736/41 958/738/41 957/739/41 +f 940/740/41 959/741/41 958/738/41 +f 942/742/41 959/741/41 941/743/41 +f 943/744/41 960/745/41 942/742/41 +f 952/746/48 961/747/48 943/748/48 +f 972/749/45 345/502/45 343/504/45 +f 973/750/40 343/505/40 344/507/40 +f 974/751/43 344/508/43 346/510/43 +f 971/752/41 346/511/41 345/513/41 +f 995/753/40 994/754/40 993/755/40 +f 999/756/41 997/757/41 998/758/41 +f 995/759/45 1000/760/45 996/761/45 +f 994/762/43 998/758/43 993/763/43 +f 996/764/44 999/756/44 994/754/44 +f 993/765/42 997/757/42 995/766/42 +f 1003/767/40 1002/768/40 1001/769/40 +f 1007/770/41 1005/771/41 1006/772/41 +f 1003/773/45 1008/774/45 1004/775/45 +f 1002/776/43 1006/772/43 1001/777/43 +f 1004/778/44 1007/770/44 1002/768/44 +f 1001/779/42 1005/771/42 1003/780/42 +f 1011/781/44 1010/782/44 1009/783/44 +f 1009/783/45 1017/784/45 1011/781/45 +f 1011/781/41 1020/785/41 1012/786/41 +f 1010/782/40 1018/787/40 1009/783/40 +f 1012/786/43 1019/788/43 1010/782/43 +f 1015/789/42 1018/790/42 1013/791/42 +f 1013/792/42 1019/793/42 1014/794/42 +f 1014/795/42 1020/796/42 1016/797/42 +f 1016/798/42 1017/799/42 1015/800/42 +f 1022/801/45 1015/789/45 1013/791/45 +f 1023/802/40 1013/792/40 1014/794/40 +f 1024/803/43 1014/795/43 1016/797/43 +f 1021/804/41 1016/798/41 1015/800/41 +f 1027/805/44 1026/806/44 1025/807/44 +f 1025/807/45 1033/808/45 1027/805/45 +f 1027/805/41 1036/809/41 1028/810/41 +f 1026/806/40 1034/811/40 1025/807/40 +f 1028/810/43 1035/812/43 1026/806/43 +f 1031/813/42 1034/814/42 1029/815/42 +f 1029/816/42 1035/817/42 1030/818/42 +f 1030/819/42 1036/820/42 1032/821/42 +f 1032/822/42 1033/823/42 1031/824/42 +f 1038/825/45 1031/813/45 1029/815/45 +f 1039/826/40 1029/816/40 1030/818/40 +f 1040/827/43 1030/819/43 1032/821/43 +f 1037/828/41 1032/822/41 1031/824/41 +f 1043/829/42 1042/830/42 1041/831/42 +f 1041/831/43 1049/832/43 1043/829/43 +f 1043/829/41 1052/833/41 1044/834/41 +f 1042/830/40 1050/835/40 1041/831/40 +f 1044/834/45 1051/836/45 1042/830/45 +f 1047/837/44 1050/838/44 1045/839/44 +f 1045/840/44 1051/841/44 1046/842/44 +f 1046/843/44 1052/844/44 1048/845/44 +f 1048/846/44 1049/847/44 1047/848/44 +f 1054/849/43 1047/837/43 1045/839/43 +f 1055/850/40 1045/840/40 1046/842/40 +f 1056/851/45 1046/843/45 1048/845/45 +f 1053/852/41 1048/846/41 1047/848/41 +f 1059/853/42 1058/854/42 1057/855/42 +f 1057/855/43 1065/856/43 1059/853/43 +f 1059/853/41 1068/857/41 1060/858/41 +f 1058/854/40 1066/859/40 1057/855/40 +f 1060/858/45 1067/860/45 1058/854/45 +f 1063/861/44 1066/862/44 1061/863/44 +f 1061/864/44 1067/865/44 1062/866/44 +f 1062/867/44 1068/868/44 1064/869/44 +f 1064/870/44 1065/871/44 1063/872/44 +f 1070/873/43 1063/861/43 1061/863/43 +f 1071/874/40 1061/864/40 1062/866/40 +f 1072/875/45 1062/867/45 1064/869/45 +f 1069/876/41 1064/870/41 1063/872/41 +f 1075/877/42 1074/878/42 1073/879/42 +f 1073/879/43 1081/880/43 1075/877/43 +f 1075/877/41 1084/881/41 1076/882/41 +f 1074/878/40 1082/883/40 1073/879/40 +f 1076/882/45 1083/884/45 1074/878/45 +f 1079/885/44 1082/886/44 1077/887/44 +f 1077/888/44 1083/889/44 1078/890/44 +f 1078/891/44 1084/892/44 1080/893/44 +f 1080/894/44 1081/895/44 1079/896/44 +f 1086/897/43 1079/885/43 1077/887/43 +f 1087/898/40 1077/888/40 1078/890/40 +f 1088/899/45 1078/891/45 1080/893/45 +f 1085/900/41 1080/894/41 1079/896/41 +f 1091/901/45 1090/902/45 1089/903/45 +f 1089/903/42 1097/904/42 1091/901/42 +f 1091/901/41 1100/905/41 1092/906/41 +f 1090/902/40 1098/907/40 1089/903/40 +f 1092/906/44 1099/908/44 1090/902/44 +f 1095/909/43 1098/910/43 1093/911/43 +f 1093/912/43 1099/913/43 1094/914/43 +f 1094/915/43 1100/916/43 1096/917/43 +f 1096/918/43 1097/919/43 1095/920/43 +f 1102/921/42 1095/909/42 1093/911/42 +f 1103/922/40 1093/912/40 1094/914/40 +f 1104/923/44 1094/915/44 1096/917/44 +f 1101/924/41 1096/918/41 1095/920/41 +f 1107/925/45 1106/926/45 1105/927/45 +f 1105/927/42 1113/928/42 1107/925/42 +f 1107/925/41 1116/929/41 1108/930/41 +f 1106/926/40 1114/931/40 1105/927/40 +f 1108/930/44 1115/932/44 1106/926/44 +f 1111/933/43 1114/934/43 1109/935/43 +f 1109/936/43 1115/937/43 1110/938/43 +f 1110/939/43 1116/940/43 1112/941/43 +f 1112/942/43 1113/943/43 1111/944/43 +f 1118/945/42 1111/933/42 1109/935/42 +f 1119/946/40 1109/936/40 1110/938/40 +f 1120/947/44 1110/939/44 1112/941/44 +f 1117/948/41 1112/942/41 1111/944/41 +f 1123/949/45 1122/950/45 1121/951/45 +f 1121/951/42 1129/952/42 1123/949/42 +f 1123/949/41 1132/953/41 1124/954/41 +f 1122/950/40 1130/955/40 1121/951/40 +f 1124/954/44 1131/956/44 1122/950/44 +f 1127/957/43 1130/958/43 1125/959/43 +f 1125/960/43 1131/961/43 1126/962/43 +f 1126/963/43 1132/964/43 1128/965/43 +f 1128/966/43 1129/967/43 1127/968/43 +f 1134/969/42 1127/957/42 1125/959/42 +f 1126/962/40 1134/970/40 1125/960/40 +f 1136/971/44 1126/963/44 1128/965/44 +f 1133/972/41 1128/966/41 1127/968/41 +f 1139/973/43 1138/974/43 1137/975/43 +f 1137/975/44 1145/976/44 1139/973/44 +f 1139/973/41 1148/977/41 1140/978/41 +f 1138/974/40 1146/979/40 1137/975/40 +f 1140/978/42 1147/980/42 1138/974/42 +f 1143/981/45 1146/982/45 1141/983/45 +f 1141/984/45 1147/985/45 1142/986/45 +f 1142/987/45 1148/988/45 1144/989/45 +f 1144/990/45 1145/991/45 1143/992/45 +f 1150/993/44 1143/981/44 1141/983/44 +f 1142/986/40 1150/994/40 1141/984/40 +f 1152/995/42 1142/987/42 1144/989/42 +f 1149/996/41 1144/990/41 1143/992/41 +f 1155/997/43 1154/998/43 1153/999/43 +f 1153/999/44 1161/1000/44 1155/997/44 +f 1155/997/41 1164/1001/41 1156/1002/41 +f 1154/998/40 1162/1003/40 1153/999/40 +f 1156/1002/42 1163/1004/42 1154/998/42 +f 1159/1005/45 1162/1006/45 1157/1007/45 +f 1157/1008/45 1163/1009/45 1158/1010/45 +f 1158/1011/45 1164/1012/45 1160/1013/45 +f 1160/1014/45 1161/1015/45 1159/1016/45 +f 1166/1017/44 1159/1005/44 1157/1007/44 +f 1167/1018/40 1157/1008/40 1158/1010/40 +f 1168/1019/42 1158/1011/42 1160/1013/42 +f 1165/1020/41 1160/1014/41 1159/1016/41 +f 1171/1021/43 1170/1022/43 1169/1023/43 +f 1169/1023/44 1177/1024/44 1171/1021/44 +f 1172/1025/41 1177/1026/41 1180/1027/41 +f 1170/1022/40 1178/1028/40 1169/1023/40 +f 1172/1025/42 1179/1029/42 1170/1022/42 +f 1175/1030/45 1178/1031/45 1173/1032/45 +f 1173/1033/45 1179/1034/45 1174/1035/45 +f 1174/1036/45 1180/1037/45 1176/1038/45 +f 1176/1039/45 1177/1026/45 1175/1040/45 +f 1182/1041/44 1175/1030/44 1173/1032/44 +f 1174/1035/40 1182/1042/40 1173/1033/40 +f 1184/1043/42 1174/1036/42 1176/1038/42 +f 1181/1044/41 1176/1039/41 1175/1040/41 +f 286/410/40 285/421/40 283/411/40 +f 287/413/41 289/422/41 290/414/41 +f 284/416/42 288/420/42 290/417/42 +f 283/419/43 287/1045/43 288/420/43 +f 285/421/44 289/422/44 287/413/44 +f 286/418/45 290/417/45 289/422/45 +f 294/423/40 293/434/40 291/424/40 +f 295/426/41 297/435/41 298/427/41 +f 292/429/42 296/433/42 298/430/42 +f 291/432/43 295/1046/43 296/433/43 +f 293/434/44 297/435/44 295/426/44 +f 294/431/45 298/430/45 297/435/45 +f 302/436/40 301/447/40 299/437/40 +f 303/439/41 305/448/41 306/440/41 +f 300/442/42 304/446/42 306/443/42 +f 299/445/43 303/1047/43 304/446/43 +f 301/447/44 305/448/44 303/439/44 +f 302/444/45 306/443/45 305/448/45 +f 310/449/40 309/460/40 307/450/40 +f 311/452/41 313/461/41 314/453/41 +f 308/455/42 312/459/42 314/456/42 +f 307/458/43 311/1048/43 312/459/43 +f 309/460/44 313/461/44 311/452/44 +f 310/457/45 314/456/45 313/461/45 +f 282/462/40 279/466/40 280/463/40 +f 281/464/44 276/1049/44 275/465/44 +f 279/466/42 278/1050/42 277/467/42 +f 275/465/41 276/1049/41 277/468/41 +f 322/470/40 319/474/40 320/471/40 +f 321/472/44 316/1051/44 315/473/44 +f 319/474/42 318/477/42 317/475/42 +f 315/476/41 316/1052/41 317/475/41 +f 330/478/40 327/482/40 328/479/40 +f 329/480/45 324/1053/45 323/481/45 +f 327/482/43 326/1054/43 325/483/43 +f 323/481/41 324/1053/41 325/484/41 +f 338/486/40 335/490/40 336/487/40 +f 337/488/45 332/1055/45 331/489/45 +f 335/490/43 334/493/43 333/491/43 +f 331/492/41 332/1056/41 333/491/41 +f 341/494/44 342/499/44 340/495/44 +f 339/496/45 348/503/45 347/497/45 +f 341/494/41 347/512/41 350/498/41 +f 340/495/40 349/506/40 348/500/40 +f 342/499/43 350/509/43 349/501/43 +f 345/502/42 347/497/42 348/503/42 +f 343/505/42 348/500/42 349/506/42 +f 344/508/42 349/501/42 350/509/42 +f 346/511/42 350/498/42 347/512/42 +f 353/516/40 352/1057/40 351/1058/40 +f 351/1058/40 362/1059/40 353/516/40 +f 362/1059/40 361/1060/40 353/516/40 +f 361/1060/40 360/1061/40 359/1062/40 +f 359/1062/40 358/1063/40 357/514/40 +f 357/514/40 356/1064/40 355/515/40 +f 355/515/40 354/1065/40 353/516/40 +f 361/1060/40 359/1062/40 353/516/40 +f 359/1062/40 357/514/40 353/516/40 +f 364/1066/41 363/1067/41 365/1068/41 +f 365/1068/41 366/1069/41 367/517/41 +f 367/517/41 368/1070/41 369/518/41 +f 369/518/41 370/1071/41 371/519/41 +f 371/519/41 372/1072/41 373/1073/41 +f 373/1073/41 374/1074/41 371/519/41 +f 374/1074/41 364/1066/41 371/519/41 +f 364/1066/41 365/1068/41 371/519/41 +f 365/1068/41 367/517/41 371/519/41 +f 377/522/40 376/1075/40 375/1076/40 +f 375/1076/40 386/1077/40 377/522/40 +f 386/1077/40 385/1078/40 377/522/40 +f 385/1078/40 384/1079/40 383/1080/40 +f 383/1080/40 382/1081/40 381/520/40 +f 381/520/40 380/1082/40 379/521/40 +f 379/521/40 378/1083/40 377/522/40 +f 385/1078/40 383/1080/40 377/522/40 +f 383/1080/40 381/520/40 377/522/40 +f 388/1084/41 387/1085/41 389/1086/41 +f 389/1086/41 390/1087/41 391/523/41 +f 391/523/41 392/1088/41 393/524/41 +f 393/524/41 394/1089/41 395/525/41 +f 395/525/41 396/1090/41 397/1091/41 +f 397/1091/41 398/1092/41 395/525/41 +f 398/1092/41 388/1084/41 395/525/41 +f 388/1084/41 389/1086/41 395/525/41 +f 389/1086/41 391/523/41 395/525/41 +f 401/526/40 402/532/40 400/527/40 +f 403/529/45 407/539/45 410/530/45 +f 401/526/45 403/529/45 406/531/45 +f 400/533/43 405/541/43 404/534/43 +f 402/532/44 406/531/44 405/536/44 +f 399/535/42 404/534/42 403/529/42 +f 409/538/41 410/530/41 407/539/41 +f 405/541/43 409/1093/43 408/542/43 +f 406/531/46 410/1094/46 409/543/46 +f 404/534/47 408/1095/47 407/544/47 +f 414/545/45 418/552/45 417/546/45 +f 411/548/43 415/553/43 416/549/43 +f 412/551/44 416/1096/44 418/552/44 +f 413/547/42 417/546/42 415/553/42 +f 418/552/40 416/1097/40 415/554/40 +f 422/555/45 426/562/45 425/556/45 +f 419/558/43 423/563/43 424/559/43 +f 420/561/44 424/1098/44 426/562/44 +f 421/557/42 425/556/42 423/563/42 +f 426/562/40 424/1099/40 423/564/40 +f 430/565/45 434/572/45 433/566/45 +f 427/568/43 431/575/43 432/569/43 +f 428/571/44 432/569/44 434/572/44 +f 429/574/42 433/566/42 431/575/42 +f 434/572/40 432/569/40 431/575/40 +f 457/577/41 458/605/41 455/578/41 +f 441/580/41 442/588/41 439/581/41 +f 438/583/44 442/588/44 441/580/44 +f 435/585/42 440/582/42 439/581/42 +f 437/587/45 439/581/45 442/588/45 +f 436/590/43 441/580/43 440/582/43 +f 449/592/41 450/596/41 447/593/41 +f 445/595/45 447/593/45 450/596/45 +f 444/598/43 449/592/43 448/594/43 +f 446/600/44 450/596/44 449/592/44 +f 443/602/42 448/594/42 447/593/42 +f 453/604/45 455/578/45 458/605/45 +f 452/607/43 457/577/43 456/579/43 +f 454/609/44 458/605/44 457/577/44 +f 451/611/42 456/579/42 455/578/42 +f 465/613/41 466/617/41 463/614/41 +f 461/616/45 463/614/45 466/617/45 +f 460/619/43 465/613/43 464/615/43 +f 462/621/44 466/617/44 465/613/44 +f 459/623/42 464/615/42 463/614/42 +f 473/625/41 474/629/41 471/626/41 +f 469/628/45 471/626/45 474/629/45 +f 468/631/43 473/625/43 472/627/43 +f 470/633/44 474/629/44 473/625/44 +f 467/635/42 472/627/42 471/626/42 +f 481/637/41 482/641/41 479/638/41 +f 477/640/45 479/638/45 482/641/45 +f 476/643/43 481/637/43 480/639/43 +f 478/645/44 482/641/44 481/637/44 +f 475/647/42 480/639/42 479/638/42 +f 497/649/41 498/665/41 495/650/41 +f 489/652/41 490/657/41 487/653/41 +f 483/655/42 488/660/42 487/653/42 +f 485/656/45 487/653/45 490/657/45 +f 484/659/43 489/1100/43 488/660/43 +f 486/658/44 490/657/44 489/661/44 +f 491/663/42 496/668/42 495/650/42 +f 493/664/45 495/650/45 498/665/45 +f 492/667/43 497/1101/43 496/668/43 +f 494/666/44 498/665/44 497/669/44 +f 645/671/40 646/682/40 644/672/40 +f 649/674/41 650/678/41 647/675/41 +f 645/677/45 647/675/45 650/678/45 +f 644/680/43 649/674/43 648/676/43 +f 646/682/44 650/678/44 649/674/44 +f 643/683/42 648/676/42 647/675/42 +f 669/685/40 670/693/40 668/686/40 +f 673/688/41 674/697/41 671/689/41 +f 668/691/43 673/688/43 672/690/43 +f 670/693/44 674/697/44 673/688/44 +f 667/694/42 672/690/42 671/689/42 +f 669/696/45 671/689/45 674/697/45 +f 653/1102/40 652/1103/40 651/1104/40 +f 651/1104/40 666/1105/40 653/1102/40 +f 666/1105/40 665/699/40 653/1102/40 +f 665/699/40 664/1106/40 661/700/40 +f 664/1106/40 663/1107/40 661/700/40 +f 663/1107/40 662/1108/40 661/700/40 +f 661/700/40 660/1109/40 657/701/40 +f 660/1109/40 659/1110/40 657/701/40 +f 659/1110/40 658/1111/40 657/701/40 +f 657/701/40 656/1112/40 655/1113/40 +f 655/1113/40 654/1114/40 653/1102/40 +f 657/701/40 655/1113/40 653/1102/40 +f 653/1102/40 665/699/40 657/701/40 +f 858/1115/41 857/1116/41 861/702/41 +f 857/1116/41 859/1117/41 861/702/41 +f 859/1117/41 860/1118/41 861/702/41 +f 861/702/41 862/1119/41 863/1120/41 +f 863/1120/41 864/1121/41 861/702/41 +f 864/1121/41 865/703/41 861/702/41 +f 865/703/41 866/1122/41 869/704/41 +f 866/1122/41 867/1123/41 869/704/41 +f 867/1123/41 868/1124/41 869/704/41 +f 869/704/41 870/1125/41 871/1126/41 +f 871/1126/41 872/1127/41 869/704/41 +f 872/1127/41 858/1115/41 869/704/41 +f 858/1115/41 861/702/41 869/704/41 +f 903/706/41 904/1128/41 905/1129/41 +f 905/1129/41 906/1130/41 907/1131/41 +f 907/1131/41 908/1132/41 909/1133/41 +f 909/1133/41 910/1134/41 911/707/41 +f 911/707/41 912/1135/41 915/1136/41 +f 912/1135/41 913/1137/41 915/1136/41 +f 913/1137/41 914/1138/41 915/1136/41 +f 915/1136/41 916/1139/41 917/705/41 +f 917/705/41 918/1140/41 903/706/41 +f 903/706/41 905/1129/41 907/1131/41 +f 907/1131/41 909/1133/41 903/706/41 +f 909/1133/41 911/707/41 903/706/41 +f 915/1136/41 917/705/41 911/707/41 +f 921/710/40 919/1141/40 933/1142/40 +f 919/1141/40 920/1143/40 933/1142/40 +f 920/1143/40 934/1144/40 933/1142/40 +f 933/1142/40 932/1145/40 931/1146/40 +f 931/1146/40 930/1147/40 929/708/40 +f 929/708/40 928/1148/40 925/709/40 +f 928/1148/40 927/1149/40 925/709/40 +f 927/1149/40 926/1150/40 925/709/40 +f 925/709/40 924/1151/40 923/1152/40 +f 923/1152/40 922/1153/40 921/710/40 +f 933/1142/40 931/1146/40 929/708/40 +f 925/709/40 923/1152/40 921/710/40 +f 921/710/40 933/1142/40 929/708/40 +f 969/711/40 970/1154/40 952/712/40 +f 968/714/40 969/711/40 951/713/40 +f 949/716/40 967/718/40 968/714/40 +f 948/717/40 966/1155/40 967/718/40 +f 965/719/40 966/1155/40 948/717/40 +f 964/721/40 965/719/40 947/720/40 +f 945/723/40 963/725/40 964/721/40 +f 944/724/40 962/1156/40 963/725/40 +f 935/726/41 936/732/41 954/727/41 +f 953/729/48 962/1157/48 944/730/48 +f 936/732/41 937/735/41 955/733/41 +f 938/734/41 956/737/41 955/733/41 +f 939/736/41 957/739/41 956/737/41 +f 939/736/41 940/740/41 958/738/41 +f 940/740/41 941/743/41 959/741/41 +f 942/742/41 960/745/41 959/741/41 +f 943/744/41 961/1158/41 960/745/41 +f 952/746/48 970/1159/48 961/747/48 +f 972/749/45 971/1160/45 345/502/45 +f 973/750/40 972/1161/40 343/505/40 +f 974/751/43 973/1162/43 344/508/43 +f 971/752/41 974/1163/41 346/511/41 +f 995/753/40 996/764/40 994/754/40 +f 999/756/41 1000/760/41 997/757/41 +f 995/759/45 997/757/45 1000/760/45 +f 994/762/43 999/756/43 998/758/43 +f 996/764/44 1000/760/44 999/756/44 +f 993/765/42 998/758/42 997/757/42 +f 1003/767/40 1004/778/40 1002/768/40 +f 1007/770/41 1008/774/41 1005/771/41 +f 1003/773/45 1005/771/45 1008/774/45 +f 1002/776/43 1007/770/43 1006/772/43 +f 1004/778/44 1008/774/44 1007/770/44 +f 1001/779/42 1006/772/42 1005/771/42 +f 1011/781/44 1012/786/44 1010/782/44 +f 1009/783/45 1018/790/45 1017/784/45 +f 1011/781/41 1017/799/41 1020/785/41 +f 1010/782/40 1019/793/40 1018/787/40 +f 1012/786/43 1020/796/43 1019/788/43 +f 1015/789/42 1017/784/42 1018/790/42 +f 1013/792/42 1018/787/42 1019/793/42 +f 1014/795/42 1019/788/42 1020/796/42 +f 1016/798/42 1020/785/42 1017/799/42 +f 1022/801/45 1021/1164/45 1015/789/45 +f 1023/802/40 1022/1165/40 1013/792/40 +f 1024/803/43 1023/1166/43 1014/795/43 +f 1021/804/41 1024/1167/41 1016/798/41 +f 1027/805/44 1028/810/44 1026/806/44 +f 1025/807/45 1034/814/45 1033/808/45 +f 1027/805/41 1033/823/41 1036/809/41 +f 1026/806/40 1035/817/40 1034/811/40 +f 1028/810/43 1036/820/43 1035/812/43 +f 1031/813/42 1033/808/42 1034/814/42 +f 1029/816/42 1034/811/42 1035/817/42 +f 1030/819/42 1035/812/42 1036/820/42 +f 1032/822/42 1036/809/42 1033/823/42 +f 1038/825/45 1037/1168/45 1031/813/45 +f 1039/826/40 1038/1169/40 1029/816/40 +f 1040/827/43 1039/1170/43 1030/819/43 +f 1037/828/41 1040/1171/41 1032/822/41 +f 1043/829/42 1044/834/42 1042/830/42 +f 1041/831/43 1050/838/43 1049/832/43 +f 1043/829/41 1049/847/41 1052/833/41 +f 1042/830/40 1051/841/40 1050/835/40 +f 1044/834/45 1052/844/45 1051/836/45 +f 1047/837/44 1049/832/44 1050/838/44 +f 1045/840/44 1050/835/44 1051/841/44 +f 1046/843/44 1051/836/44 1052/844/44 +f 1048/846/44 1052/833/44 1049/847/44 +f 1054/849/43 1053/1172/43 1047/837/43 +f 1055/850/40 1054/1173/40 1045/840/40 +f 1056/851/45 1055/1174/45 1046/843/45 +f 1053/852/41 1056/1175/41 1048/846/41 +f 1059/853/42 1060/858/42 1058/854/42 +f 1057/855/43 1066/862/43 1065/856/43 +f 1059/853/41 1065/871/41 1068/857/41 +f 1058/854/40 1067/865/40 1066/859/40 +f 1060/858/45 1068/868/45 1067/860/45 +f 1063/861/44 1065/856/44 1066/862/44 +f 1061/864/44 1066/859/44 1067/865/44 +f 1062/867/44 1067/860/44 1068/868/44 +f 1064/870/44 1068/857/44 1065/871/44 +f 1070/873/43 1069/1176/43 1063/861/43 +f 1071/874/40 1070/1177/40 1061/864/40 +f 1072/875/45 1071/1178/45 1062/867/45 +f 1069/876/41 1072/1179/41 1064/870/41 +f 1075/877/42 1076/882/42 1074/878/42 +f 1073/879/43 1082/886/43 1081/880/43 +f 1075/877/41 1081/895/41 1084/881/41 +f 1074/878/40 1083/889/40 1082/883/40 +f 1076/882/45 1084/892/45 1083/884/45 +f 1079/885/44 1081/880/44 1082/886/44 +f 1077/888/44 1082/883/44 1083/889/44 +f 1078/891/44 1083/884/44 1084/892/44 +f 1080/894/44 1084/881/44 1081/895/44 +f 1086/897/43 1085/1180/43 1079/885/43 +f 1087/898/40 1086/1181/40 1077/888/40 +f 1088/899/45 1087/1182/45 1078/891/45 +f 1085/900/41 1088/1183/41 1080/894/41 +f 1091/901/45 1092/906/45 1090/902/45 +f 1089/903/42 1098/910/42 1097/904/42 +f 1091/901/41 1097/919/41 1100/905/41 +f 1090/902/40 1099/913/40 1098/907/40 +f 1092/906/44 1100/916/44 1099/908/44 +f 1095/909/43 1097/904/43 1098/910/43 +f 1093/912/43 1098/907/43 1099/913/43 +f 1094/915/43 1099/908/43 1100/916/43 +f 1096/918/43 1100/905/43 1097/919/43 +f 1102/921/42 1101/1184/42 1095/909/42 +f 1103/922/40 1102/1185/40 1093/912/40 +f 1104/923/44 1103/1186/44 1094/915/44 +f 1101/924/41 1104/1187/41 1096/918/41 +f 1107/925/45 1108/930/45 1106/926/45 +f 1105/927/42 1114/934/42 1113/928/42 +f 1107/925/41 1113/943/41 1116/929/41 +f 1106/926/40 1115/937/40 1114/931/40 +f 1108/930/44 1116/940/44 1115/932/44 +f 1111/933/43 1113/928/43 1114/934/43 +f 1109/936/43 1114/931/43 1115/937/43 +f 1110/939/43 1115/932/43 1116/940/43 +f 1112/942/43 1116/929/43 1113/943/43 +f 1118/945/42 1117/1188/42 1111/933/42 +f 1119/946/40 1118/1189/40 1109/936/40 +f 1120/947/44 1119/1190/44 1110/939/44 +f 1117/948/41 1120/1191/41 1112/942/41 +f 1123/949/45 1124/954/45 1122/950/45 +f 1121/951/42 1130/958/42 1129/952/42 +f 1123/949/41 1129/967/41 1132/953/41 +f 1122/950/40 1131/961/40 1130/955/40 +f 1124/954/44 1132/964/44 1131/956/44 +f 1127/957/43 1129/952/43 1130/958/43 +f 1125/960/43 1130/955/43 1131/961/43 +f 1126/963/43 1131/956/43 1132/964/43 +f 1128/966/43 1132/953/43 1129/967/43 +f 1134/969/42 1133/1192/42 1127/957/42 +f 1126/962/40 1135/1193/40 1134/970/40 +f 1136/971/44 1135/1194/44 1126/963/44 +f 1133/972/41 1136/1195/41 1128/966/41 +f 1139/973/43 1140/978/43 1138/974/43 +f 1137/975/44 1146/982/44 1145/976/44 +f 1139/973/41 1145/991/41 1148/977/41 +f 1138/974/40 1147/985/40 1146/979/40 +f 1140/978/42 1148/988/42 1147/980/42 +f 1143/981/45 1145/976/45 1146/982/45 +f 1141/984/45 1146/979/45 1147/985/45 +f 1142/987/45 1147/980/45 1148/988/45 +f 1144/990/45 1148/977/45 1145/991/45 +f 1150/993/44 1149/1196/44 1143/981/44 +f 1142/986/40 1151/1197/40 1150/994/40 +f 1152/995/42 1151/1198/42 1142/987/42 +f 1149/996/41 1152/1199/41 1144/990/41 +f 1155/997/43 1156/1002/43 1154/998/43 +f 1153/999/44 1162/1006/44 1161/1000/44 +f 1155/997/41 1161/1015/41 1164/1001/41 +f 1154/998/40 1163/1009/40 1162/1003/40 +f 1156/1002/42 1164/1012/42 1163/1004/42 +f 1159/1005/45 1161/1000/45 1162/1006/45 +f 1157/1008/45 1162/1003/45 1163/1009/45 +f 1158/1011/45 1163/1004/45 1164/1012/45 +f 1160/1014/45 1164/1001/45 1161/1015/45 +f 1166/1017/44 1165/1200/44 1159/1005/44 +f 1167/1018/40 1166/1201/40 1157/1008/40 +f 1168/1019/42 1167/1202/42 1158/1011/42 +f 1165/1020/41 1168/1203/41 1160/1014/41 +f 1171/1021/43 1172/1025/43 1170/1022/43 +f 1169/1023/44 1178/1031/44 1177/1024/44 +f 1172/1025/41 1171/1021/41 1177/1026/41 +f 1170/1022/40 1179/1034/40 1178/1028/40 +f 1172/1025/42 1180/1037/42 1179/1029/42 +f 1175/1030/45 1177/1024/45 1178/1031/45 +f 1173/1033/45 1178/1028/45 1179/1034/45 +f 1174/1036/45 1179/1029/45 1180/1037/45 +f 1176/1039/45 1180/1027/45 1177/1026/45 +f 1182/1041/44 1181/1204/44 1175/1030/44 +f 1174/1035/40 1183/1205/40 1182/1042/40 +f 1184/1043/42 1183/1206/42 1174/1036/42 +f 1181/1044/41 1184/1207/41 1176/1039/41 +s 1 +f 354/1208/42 365/1209/49 353/1210/49 +f 360/1211/44 373/1212/50 372/1213/44 +f 358/1214/51 369/1215/43 357/1216/43 +f 355/1217/52 366/1218/42 354/1208/42 +f 361/1219/50 374/1220/53 373/1212/50 +f 352/1221/54 364/1222/45 351/1223/45 +f 359/1224/55 370/1225/51 358/1214/51 +f 356/1226/56 367/1227/52 355/1217/52 +f 351/1223/45 374/1220/53 362/1228/53 +f 353/1210/49 363/1229/54 352/1221/54 +f 360/1230/44 371/1231/55 359/1224/55 +f 357/1216/43 368/1232/56 356/1226/56 +f 378/1233/42 389/1234/49 377/1235/49 +f 385/1236/50 396/1237/44 384/1238/44 +f 382/1239/51 393/1240/43 381/1241/43 +f 379/1242/52 390/1243/42 378/1233/42 +f 386/1244/53 397/1245/50 385/1236/50 +f 375/1246/45 387/1247/54 388/1248/45 +f 383/1249/55 394/1250/51 382/1239/51 +f 380/1251/56 391/1252/52 379/1242/52 +f 375/1246/45 398/1253/53 386/1244/53 +f 377/1235/49 387/1247/54 376/1254/54 +f 383/1249/55 396/1255/44 395/1256/55 +f 381/1241/43 392/1257/56 380/1251/56 +f 541/1258/57 532/1259/46 533/1260/44 +f 546/1261/58 537/1262/42 538/1263/47 +f 502/1264/41 503/1265/46 501/1266/41 +f 539/1267/59 553/1268/60 546/1261/58 +f 530/1269/47 500/1270/41 529/1271/47 +f 504/1272/46 505/1273/44 503/1265/46 +f 545/1274/61 536/1275/62 537/1262/42 +f 528/1276/42 529/1271/47 527/1277/42 +f 506/1278/44 507/1279/63 505/1273/44 +f 539/1267/59 538/1263/47 531/1280/41 +f 526/1281/62 527/1277/42 525/1282/62 +f 508/1283/63 509/1284/40 507/1279/63 +f 540/1285/64 531/1280/41 532/1259/46 +f 523/1286/40 526/1281/62 525/1282/62 +f 510/1287/40 511/1288/62 509/1289/40 +f 542/1290/65 533/1260/44 534/1291/63 +f 522/1292/63 523/1293/40 521/1294/63 +f 512/1295/62 513/1296/42 511/1288/62 +f 518/1297/46 519/1298/44 517/1299/46 +f 520/1300/44 521/1294/63 519/1298/44 +f 514/1301/42 515/1302/47 513/1296/42 +f 543/1303/66 534/1291/63 535/1304/40 +f 544/1305/67 535/1306/40 536/1275/62 +f 515/1302/47 502/1264/41 501/1266/41 +f 499/1307/41 517/1299/46 500/1270/41 +f 545/1308/61 551/1309/68 544/1310/67 +f 540/1285/64 549/1311/69 548/1312/70 +f 546/1261/58 552/1313/71 545/1308/61 +f 541/1314/57 550/1315/72 549/1311/69 +f 540/1285/64 547/1316/73 539/1267/59 +f 552/1313/71 560/1317/74 559/1318/75 +f 550/1315/72 556/1319/76 549/1311/69 +f 548/1312/70 554/1320/77 547/1316/73 +f 553/1268/60 554/1320/77 560/1317/74 +f 551/1309/68 559/1318/75 558/1321/78 +f 549/1311/69 555/1322/79 548/1312/70 +f 543/1323/66 550/1315/72 542/1324/65 +f 550/1315/72 543/1323/66 557/1325/80 +f 544/1310/67 551/1309/68 543/1326/66 +f 551/1309/68 558/1321/78 543/1326/66 +f 557/1327/80 564/1328/81 556/1329/76 +f 555/1322/79 562/1330/82 554/1320/77 +f 558/1331/78 561/1332/83 543/1333/66 +f 554/1320/77 568/1334/84 560/1317/74 +f 543/1335/66 565/1336/85 557/1327/80 +f 559/1337/75 566/1338/86 558/1331/78 +f 556/1329/76 563/1339/87 555/1322/79 +f 560/1317/74 567/1340/88 559/1337/75 +f 566/1338/86 569/1341/89 561/1342/83 +f 568/1334/84 570/1343/90 575/1344/91 +f 567/1340/88 573/1345/92 566/1338/86 +f 561/1346/83 572/1347/93 565/1348/85 +f 567/1340/88 575/1344/91 574/1349/62 +f 562/1350/82 571/1351/94 570/1343/90 +f 575/1344/91 581/1352/95 574/1349/62 +f 571/1351/94 577/1353/96 570/1343/90 +f 569/1341/89 580/1354/97 576/1355/98 +f 570/1343/90 582/1356/99 575/1344/91 +f 573/1345/92 581/1352/95 580/1354/97 +f 572/1347/93 576/1357/98 579/1358/100 +f 564/1359/81 571/1351/94 563/1360/87 +f 571/1351/94 564/1359/81 578/1361/101 +f 565/1348/85 572/1347/93 564/1359/81 +f 572/1347/93 579/1358/100 564/1359/81 +f 593/1362/57 584/1363/46 585/1364/44 +f 598/1365/58 589/1366/42 590/1367/47 +f 591/1368/59 605/1369/60 598/1365/58 +f 597/1370/61 588/1371/62 589/1366/42 +f 591/1368/59 590/1367/47 583/1372/41 +f 592/1373/64 583/1372/41 584/1363/46 +f 594/1374/65 585/1364/44 586/1375/63 +f 595/1376/66 586/1375/63 587/1377/40 +f 596/1378/67 587/1379/40 588/1371/62 +f 597/1380/61 603/1381/68 596/1382/67 +f 593/1383/57 600/1384/70 592/1373/64 +f 598/1365/58 604/1385/71 597/1380/61 +f 593/1383/57 602/1386/72 601/1387/69 +f 592/1373/64 599/1388/73 591/1368/59 +f 604/1385/71 612/1389/74 611/1390/75 +f 602/1386/72 608/1391/76 601/1387/69 +f 599/1388/73 607/1392/79 606/1393/77 +f 599/1388/73 612/1389/74 605/1369/60 +f 603/1381/68 611/1390/75 610/1394/78 +f 600/1384/70 608/1391/76 607/1392/79 +f 595/1395/66 602/1386/72 594/1396/65 +f 602/1386/72 595/1395/66 609/1397/80 +f 596/1382/67 603/1381/68 595/1398/66 +f 603/1381/68 610/1394/78 595/1398/66 +f 609/1399/80 616/1400/46 608/1401/76 +f 607/1392/79 614/1402/82 606/1393/77 +f 610/1403/78 613/1404/83 595/1405/66 +f 606/1393/77 620/1406/84 612/1389/74 +f 595/1407/66 617/1408/85 609/1399/80 +f 611/1409/75 618/1410/86 610/1403/78 +f 608/1401/76 615/1411/87 607/1392/79 +f 612/1389/74 619/1412/88 611/1409/75 +f 613/1413/83 625/1414/92 621/1415/89 +f 614/1416/82 627/1417/91 620/1406/84 +f 618/1410/86 626/1418/62 625/1414/92 +f 613/1419/83 624/1420/93 617/1421/85 +f 620/1406/84 626/1418/62 619/1412/88 +f 614/1416/82 623/1422/94 622/1423/90 +f 626/1418/62 634/1424/102 633/1425/103 +f 623/1422/94 629/1426/104 622/1423/90 +f 621/1415/89 632/1427/105 628/1428/106 +f 622/1423/90 634/1424/102 627/1417/91 +f 626/1418/62 632/1427/105 625/1414/92 +f 624/1420/93 628/1429/106 631/1430/107 +f 616/1431/46 623/1422/94 615/1432/87 +f 623/1422/94 616/1431/46 630/1433/108 +f 617/1421/85 624/1420/93 616/1431/46 +f 624/1420/93 631/1430/107 616/1431/46 +f 628/1434/106 639/1435/109 631/1436/107 +f 634/1424/102 641/1437/40 633/1425/103 +f 630/1438/108 637/1439/45 629/1440/104 +f 631/1436/107 635/1441/41 616/1442/46 +f 632/1427/105 636/1443/43 628/1444/106 +f 616/1442/46 638/1445/73 630/1438/108 +f 629/1440/104 642/1446/110 634/1424/102 +f 633/1425/103 640/1447/66 632/1427/105 +f 687/1448/46 702/1449/111 686/1450/111 +f 654/1451/112 677/1452/113 653/1453/113 +f 655/1454/42 678/1455/112 654/1451/112 +f 656/1456/114 679/1457/42 655/1458/42 +f 944/724/115 680/1459/114 656/1456/114 +f 690/1460/116 952/712/117 943/744/117 +f 652/1461/118 676/1462/45 651/1463/45 +f 651/1463/45 690/1460/116 666/1464/116 +f 653/1453/113 675/1465/118 652/1461/118 +f 693/1466/113 707/1467/118 691/1468/118 +f 680/1459/119 695/1469/47 679/1457/47 +f 688/1470/120 703/1471/46 687/1448/46 +f 681/1472/121 696/1473/119 680/1459/119 +f 689/1474/122 704/1475/120 688/1470/120 +f 682/1476/123 697/1477/121 681/1472/121 +f 690/1460/124 705/1478/122 689/1474/122 +f 683/1479/109 698/1480/123 682/1476/123 +f 675/1465/125 692/1481/73 676/1462/73 +f 676/1462/73 706/1482/124 690/1460/124 +f 683/1479/109 700/1483/126 699/1484/109 +f 677/1452/127 691/1485/125 675/1465/125 +f 684/1486/126 701/1487/128 700/1488/126 +f 678/1455/129 693/1489/127 677/1452/127 +f 685/1490/128 702/1491/111 701/1492/128 +f 679/1493/47 694/1494/129 678/1455/129 +f 714/1495/130 863/1496/131 713/1497/131 +f 700/1498/132 717/1499/48 716/1500/132 +f 694/1501/112 709/1502/113 693/1466/113 +f 702/1503/133 717/1499/48 701/1504/48 +f 695/1505/42 710/1506/112 694/1501/112 +f 703/1507/44 718/1508/133 702/1503/133 +f 696/1509/114 711/1510/42 695/1511/42 +f 704/1512/134 719/1513/44 703/1507/44 +f 697/1514/135 712/1515/114 696/1509/114 +f 705/1516/136 720/1517/134 704/1512/134 +f 698/1518/137 713/1497/135 697/1514/135 +f 706/1519/116 721/1520/136 705/1516/136 +f 699/1521/43 714/1495/137 698/1518/137 +f 691/1468/118 708/1522/45 692/1523/45 +f 692/1523/45 722/1524/116 706/1519/116 +f 700/1498/132 715/1525/43 699/1521/43 +f 724/1526/47 733/1527/61 725/1528/42 +f 729/1529/44 738/1530/64 730/1531/46 +f 745/1532/70 731/1533/59 738/1530/64 +f 728/1534/63 737/1535/57 729/1529/44 +f 730/1531/46 731/1533/59 723/1536/41 +f 723/1536/41 732/1537/58 724/1526/47 +f 725/1528/42 734/1538/67 726/1539/62 +f 726/1539/62 735/1540/66 727/1541/40 +f 727/1542/40 736/1543/65 728/1534/63 +f 743/1544/72 737/1545/57 736/1546/65 +f 732/1537/58 741/1547/71 733/1548/61 +f 744/1549/69 738/1530/64 737/1545/57 +f 733/1548/61 742/1550/68 734/1551/67 +f 731/1533/59 740/1552/60 732/1537/58 +f 751/1553/76 745/1532/70 744/1549/69 +f 748/1554/75 742/1550/68 741/1547/71 +f 746/1555/77 740/1552/60 739/1556/73 +f 752/1557/79 739/1556/73 745/1532/70 +f 743/1544/72 751/1553/76 744/1549/69 +f 747/1558/74 741/1547/71 740/1552/60 +f 735/1559/66 734/1551/67 742/1550/68 +f 742/1550/68 749/1560/78 735/1559/66 +f 736/1546/65 735/1561/66 743/1544/72 +f 743/1544/72 735/1561/66 750/1562/80 +f 756/1563/138 749/1564/78 748/1565/75 +f 754/1566/139 747/1558/74 746/1555/77 +f 753/1567/140 750/1568/80 735/1569/66 +f 760/1570/141 746/1555/77 752/1557/79 +f 757/1571/142 735/1572/66 749/1564/78 +f 758/1573/143 751/1574/76 750/1568/80 +f 755/1575/144 748/1565/75 747/1558/74 +f 759/1576/145 752/1557/79 751/1574/76 +f 761/1577/146 758/1573/143 753/1578/140 +f 760/1570/141 762/1579/147 754/1580/139 +f 765/1581/148 759/1576/145 758/1573/143 +f 764/1582/149 753/1583/140 757/1584/142 +f 766/1585/63 760/1570/141 759/1576/145 +f 754/1580/139 763/1586/150 755/1587/144 +f 773/1588/151 767/1589/152 766/1585/63 +f 769/1590/153 763/1586/150 762/1579/147 +f 768/1591/154 765/1581/148 761/1577/146 +f 774/1592/155 762/1579/147 767/1589/152 +f 772/1593/156 766/1585/63 765/1581/148 +f 764/1582/149 768/1594/154 761/1595/146 +f 756/1596/138 755/1587/144 763/1586/150 +f 763/1586/150 770/1597/157 756/1596/138 +f 757/1584/142 756/1596/138 764/1582/149 +f 764/1582/149 756/1596/138 771/1598/158 +f 776/1599/47 785/1600/61 777/1601/42 +f 781/1602/44 790/1603/64 782/1604/46 +f 797/1605/70 783/1606/59 790/1603/64 +f 780/1607/63 789/1608/57 781/1602/44 +f 782/1604/46 783/1606/59 775/1609/41 +f 775/1609/41 784/1610/58 776/1599/47 +f 777/1601/42 786/1611/67 778/1612/62 +f 778/1612/62 787/1613/66 779/1614/40 +f 779/1615/40 788/1616/65 780/1607/63 +f 795/1617/72 789/1618/57 788/1619/65 +f 784/1610/58 793/1620/71 785/1621/61 +f 796/1622/69 790/1603/64 789/1618/57 +f 785/1621/61 794/1623/68 786/1624/67 +f 783/1606/59 792/1625/60 784/1610/58 +f 796/1622/69 804/1626/79 797/1605/70 +f 800/1627/75 794/1623/68 793/1620/71 +f 798/1628/77 792/1625/60 791/1629/73 +f 797/1605/70 798/1628/77 791/1629/73 +f 795/1617/72 803/1630/76 796/1622/69 +f 799/1631/74 793/1620/71 792/1625/60 +f 787/1632/66 786/1624/67 794/1623/68 +f 794/1623/68 801/1633/78 787/1632/66 +f 788/1619/65 787/1634/66 795/1617/72 +f 795/1617/72 787/1634/66 802/1635/80 +f 808/1636/138 801/1637/78 800/1638/75 +f 806/1639/139 799/1631/74 798/1628/77 +f 805/1640/140 802/1641/80 787/1642/66 +f 812/1643/141 798/1628/77 804/1626/79 +f 809/1644/142 787/1645/66 801/1637/78 +f 810/1646/143 803/1647/76 802/1641/80 +f 807/1648/144 800/1638/75 799/1631/74 +f 811/1649/145 804/1626/79 803/1647/76 +f 813/1650/146 810/1646/143 805/1651/140 +f 812/1643/141 814/1652/147 806/1653/139 +f 817/1654/148 811/1649/145 810/1646/143 +f 816/1655/149 805/1656/140 809/1657/142 +f 811/1649/145 819/1658/152 812/1643/141 +f 806/1653/139 815/1659/150 807/1660/144 +f 825/1661/151 819/1658/152 818/1662/63 +f 821/1663/153 815/1659/150 814/1652/147 +f 813/1650/146 824/1664/156 817/1654/148 +f 826/1665/155 814/1652/147 819/1658/152 +f 817/1654/148 825/1661/151 818/1662/63 +f 816/1655/149 820/1666/154 813/1667/146 +f 808/1668/138 807/1660/144 815/1659/150 +f 815/1659/150 822/1669/157 808/1668/138 +f 809/1657/142 808/1668/138 816/1655/149 +f 816/1655/149 808/1668/138 823/1670/158 +f 829/1671/41 836/1672/159 828/1673/73 +f 834/1674/110 841/1675/160 833/1676/40 +f 832/1677/66 839/1678/161 831/1679/43 +f 830/1680/109 837/1681/162 829/1671/41 +f 828/1673/73 835/1682/163 827/1683/45 +f 827/1683/45 842/1684/164 834/1674/110 +f 833/1676/40 840/1685/165 832/1677/66 +f 831/1686/43 838/1687/166 830/1680/109 +f 837/1688/162 846/1689/167 845/1690/168 +f 835/1682/163 844/1691/169 843/1692/136 +f 835/1682/163 849/1693/170 842/1684/164 +f 841/1694/160 847/1695/171 840/1696/165 +f 836/1672/159 845/1690/168 844/1691/169 +f 841/1694/160 849/1693/170 848/1697/172 +f 848/1697/172 856/1698/173 855/1699/174 +f 846/1689/167 852/1700/175 845/1690/168 +f 844/1691/169 850/1701/134 843/1692/136 +f 849/1693/170 850/1701/134 856/1698/173 +f 847/1695/171 855/1699/174 854/1702/176 +f 845/1690/168 851/1703/177 844/1691/169 +f 722/1524/178 871/1704/179 721/1520/179 +f 715/1525/180 864/1705/130 714/1495/130 +f 707/1467/181 858/1706/182 708/1522/182 +f 708/1522/182 872/1707/178 722/1524/178 +f 716/1500/183 865/1708/180 715/1525/180 +f 707/1467/181 859/1709/184 857/1710/181 +f 716/1500/183 867/1711/185 866/1712/183 +f 710/1506/186 859/1713/184 709/1502/184 +f 718/1508/187 867/1714/185 717/1499/185 +f 710/1506/186 861/1715/188 860/1716/186 +f 719/1513/189 868/1717/187 718/1508/187 +f 711/1510/188 862/1718/190 861/1719/188 +f 719/1513/189 870/1720/191 869/1721/189 +f 712/1515/190 863/1722/131 862/1723/190 +f 720/1517/191 871/1724/179 870/1725/191 +f 882/1726/192 875/1727/41 874/1728/109 +f 887/1729/193 880/1730/66 879/1731/40 +f 885/1732/194 878/1733/110 877/1734/45 +f 883/1735/195 876/1736/73 875/1727/41 +f 881/1737/196 874/1728/109 873/1738/43 +f 888/1739/197 873/1738/43 880/1730/66 +f 886/1740/198 879/1731/40 878/1733/110 +f 884/1741/199 877/1742/45 876/1736/73 +f 883/1743/195 892/1744/200 884/1745/199 +f 889/1746/48 882/1726/192 881/1737/196 +f 895/1747/201 881/1737/196 888/1739/197 +f 893/1748/202 887/1749/193 886/1750/198 +f 882/1726/192 891/1751/203 883/1743/195 +f 894/1752/204 888/1739/197 887/1749/193 +f 894/1752/204 902/1753/205 895/1747/201 +f 898/1754/206 892/1744/200 891/1751/203 +f 896/1755/133 890/1756/207 889/1746/48 +f 895/1747/201 896/1755/133 889/1746/48 +f 893/1748/202 901/1757/208 894/1752/204 +f 897/1758/209 891/1751/203 890/1756/207 +f 660/1759/132 937/735/43 659/1760/43 +f 909/1761/136 954/1762/116 910/1763/116 +f 662/1764/133 939/736/48 661/1765/48 +f 664/1766/134 941/743/44 663/1767/44 +f 911/1768/45 956/1769/118 912/1770/118 +f 659/1760/43 936/732/137 658/1771/137 +f 920/1772/43 904/1773/132 903/1774/43 +f 934/1775/137 903/1774/43 918/1776/137 +f 661/1765/48 938/734/132 660/1759/132 +f 919/1777/132 905/1778/48 904/1773/132 +f 663/1767/44 940/740/133 662/1764/133 +f 905/1778/48 922/1779/133 906/1780/133 +f 665/1781/136 942/742/134 664/1766/134 +f 922/1779/133 907/1782/44 906/1780/133 +f 658/1771/137 935/726/115 657/1783/135 +f 923/1784/44 908/1785/134 907/1786/44 +f 686/1450/133 950/715/44 687/1448/44 +f 684/1486/132 948/717/48 685/1490/48 +f 682/1476/137 946/722/43 683/1479/43 +f 687/1448/44 951/713/134 688/1470/134 +f 685/1490/48 949/716/133 686/1450/133 +f 683/1479/43 947/720/132 684/1486/132 +f 681/1472/135 945/723/137 682/1476/137 +f 688/1470/134 952/712/117 689/1474/136 +f 916/1787/114 961/747/210 917/1788/135 +f 914/1789/112 959/1790/42 915/1791/42 +f 912/1770/118 957/1792/113 913/1793/113 +f 910/1763/116 955/1794/45 911/1768/45 +f 915/1791/42 960/1795/114 916/1787/114 +f 913/1793/113 958/1796/112 914/1789/112 +f 932/1797/114 968/1798/42 931/1799/42 +f 930/1800/112 966/1801/113 929/1802/113 +f 928/1803/118 964/1804/45 927/1805/45 +f 926/1806/116 962/1157/211 925/1807/136 +f 933/1808/135 969/1809/114 932/1797/114 +f 931/1799/42 967/1810/112 930/1800/112 +f 929/1802/113 965/1811/118 928/1803/118 +f 927/1805/45 963/1812/116 926/1806/116 +f 962/1157/211 953/729/211 924/1813/134 +f 918/1776/137 970/1159/210 934/1775/137 +f 976/1814/137 984/1815/212 975/1816/212 +f 977/1817/43 985/1818/137 976/1814/137 +f 978/1819/132 986/1820/43 977/1817/43 +f 979/1821/48 987/1822/132 978/1819/132 +f 980/1823/133 988/1824/48 979/1821/48 +f 981/1825/44 989/1826/133 980/1823/133 +f 982/1827/134 990/1828/44 981/1825/44 +f 991/1829/134 983/1830/213 992/1831/213 +f 840/1696/165 847/1695/171 839/1832/161 +f 847/1695/171 854/1702/176 839/1832/161 +f 838/1833/166 839/1834/161 846/1689/167 +f 846/1689/167 839/1834/161 853/1835/214 +f 884/1745/199 892/1744/200 885/1836/194 +f 892/1744/200 899/1837/215 885/1836/194 +f 886/1750/198 885/1838/194 893/1748/202 +f 893/1748/202 885/1838/194 900/1839/216 +f 354/1208/42 366/1218/42 365/1209/49 +f 360/1211/44 361/1219/50 373/1212/50 +f 358/1214/51 370/1225/51 369/1215/43 +f 355/1217/52 367/1227/52 366/1218/42 +f 361/1219/50 362/1228/53 374/1220/53 +f 352/1221/54 363/1229/54 364/1222/45 +f 359/1224/55 371/1231/55 370/1225/51 +f 356/1226/56 368/1232/56 367/1227/52 +f 351/1223/45 364/1222/45 374/1220/53 +f 353/1210/49 365/1209/49 363/1229/54 +f 360/1230/44 372/1840/44 371/1231/55 +f 357/1216/43 369/1215/43 368/1232/56 +f 378/1233/42 390/1243/42 389/1234/49 +f 385/1236/50 397/1245/50 396/1237/44 +f 382/1239/51 394/1250/51 393/1240/43 +f 379/1242/52 391/1252/52 390/1243/42 +f 386/1244/53 398/1253/53 397/1245/50 +f 375/1246/45 376/1254/54 387/1247/54 +f 383/1249/55 395/1256/55 394/1250/51 +f 380/1251/56 392/1257/56 391/1252/52 +f 375/1246/45 388/1248/45 398/1253/53 +f 377/1235/49 389/1234/49 387/1247/54 +f 383/1249/55 384/1841/44 396/1255/44 +f 381/1241/43 393/1240/43 392/1257/56 +f 541/1258/57 540/1285/64 532/1259/46 +f 546/1261/58 545/1274/61 537/1262/42 +f 502/1264/41 504/1272/46 503/1265/46 +f 539/1267/59 547/1316/73 553/1268/60 +f 530/1269/47 499/1307/41 500/1270/41 +f 504/1272/46 506/1278/44 505/1273/44 +f 545/1274/61 544/1305/67 536/1275/62 +f 528/1276/42 530/1269/47 529/1271/47 +f 506/1278/44 508/1283/63 507/1279/63 +f 539/1267/59 546/1261/58 538/1263/47 +f 526/1281/62 528/1276/42 527/1277/42 +f 508/1283/63 510/1842/40 509/1284/40 +f 540/1285/64 539/1267/59 531/1280/41 +f 523/1286/40 524/1843/40 526/1281/62 +f 510/1287/40 512/1295/62 511/1288/62 +f 542/1290/65 541/1258/57 533/1260/44 +f 522/1292/63 524/1844/40 523/1293/40 +f 512/1295/62 514/1301/42 513/1296/42 +f 518/1297/46 520/1300/44 519/1298/44 +f 520/1300/44 522/1292/63 521/1294/63 +f 514/1301/42 516/1845/47 515/1302/47 +f 543/1303/66 542/1290/65 534/1291/63 +f 544/1305/67 543/1846/66 535/1306/40 +f 515/1302/47 516/1845/47 502/1264/41 +f 499/1307/41 518/1297/46 517/1299/46 +f 545/1308/61 552/1313/71 551/1309/68 +f 540/1285/64 541/1314/57 549/1311/69 +f 546/1261/58 553/1268/60 552/1313/71 +f 541/1314/57 542/1324/65 550/1315/72 +f 540/1285/64 548/1312/70 547/1316/73 +f 552/1313/71 553/1268/60 560/1317/74 +f 550/1315/72 557/1325/80 556/1319/76 +f 548/1312/70 555/1322/79 554/1320/77 +f 553/1268/60 547/1316/73 554/1320/77 +f 551/1309/68 552/1313/71 559/1318/75 +f 549/1311/69 556/1319/76 555/1322/79 +f 557/1327/80 565/1336/85 564/1328/81 +f 555/1322/79 563/1339/87 562/1330/82 +f 558/1331/78 566/1338/86 561/1332/83 +f 554/1320/77 562/1330/82 568/1334/84 +f 543/1335/66 561/1847/83 565/1336/85 +f 559/1337/75 567/1340/88 566/1338/86 +f 556/1329/76 564/1328/81 563/1339/87 +f 560/1317/74 568/1334/84 567/1340/88 +f 566/1338/86 573/1345/92 569/1341/89 +f 568/1334/84 562/1350/82 570/1343/90 +f 567/1340/88 574/1349/62 573/1345/92 +f 561/1346/83 569/1848/89 572/1347/93 +f 567/1340/88 568/1334/84 575/1344/91 +f 562/1350/82 563/1360/87 571/1351/94 +f 575/1344/91 582/1356/99 581/1352/95 +f 571/1351/94 578/1361/101 577/1353/96 +f 569/1341/89 573/1345/92 580/1354/97 +f 570/1343/90 577/1353/96 582/1356/99 +f 573/1345/92 574/1349/62 581/1352/95 +f 572/1347/93 569/1848/89 576/1357/98 +f 593/1362/57 592/1373/64 584/1363/46 +f 598/1365/58 597/1370/61 589/1366/42 +f 591/1368/59 599/1388/73 605/1369/60 +f 597/1370/61 596/1378/67 588/1371/62 +f 591/1368/59 598/1365/58 590/1367/47 +f 592/1373/64 591/1368/59 583/1372/41 +f 594/1374/65 593/1362/57 585/1364/44 +f 595/1376/66 594/1374/65 586/1375/63 +f 596/1378/67 595/1849/66 587/1379/40 +f 597/1380/61 604/1385/71 603/1381/68 +f 593/1383/57 601/1387/69 600/1384/70 +f 598/1365/58 605/1369/60 604/1385/71 +f 593/1383/57 594/1396/65 602/1386/72 +f 592/1373/64 600/1384/70 599/1388/73 +f 604/1385/71 605/1369/60 612/1389/74 +f 602/1386/72 609/1397/80 608/1391/76 +f 599/1388/73 600/1384/70 607/1392/79 +f 599/1388/73 606/1393/77 612/1389/74 +f 603/1381/68 604/1385/71 611/1390/75 +f 600/1384/70 601/1387/69 608/1391/76 +f 609/1399/80 617/1408/85 616/1400/46 +f 607/1392/79 615/1411/87 614/1402/82 +f 610/1403/78 618/1410/86 613/1404/83 +f 606/1393/77 614/1402/82 620/1406/84 +f 595/1407/66 613/1850/83 617/1408/85 +f 611/1409/75 619/1412/88 618/1410/86 +f 608/1401/76 616/1400/46 615/1411/87 +f 612/1389/74 620/1406/84 619/1412/88 +f 613/1413/83 618/1410/86 625/1414/92 +f 614/1416/82 622/1423/90 627/1417/91 +f 618/1410/86 619/1412/88 626/1418/62 +f 613/1419/83 621/1851/89 624/1420/93 +f 620/1406/84 627/1417/91 626/1418/62 +f 614/1416/82 615/1432/87 623/1422/94 +f 626/1418/62 627/1417/91 634/1424/102 +f 623/1422/94 630/1433/108 629/1426/104 +f 621/1415/89 625/1414/92 632/1427/105 +f 622/1423/90 629/1426/104 634/1424/102 +f 626/1418/62 633/1425/103 632/1427/105 +f 624/1420/93 621/1851/89 628/1429/106 +f 628/1434/106 636/1852/43 639/1435/109 +f 634/1424/102 642/1446/110 641/1437/40 +f 630/1438/108 638/1445/73 637/1439/45 +f 631/1436/107 639/1435/109 635/1441/41 +f 632/1427/105 640/1447/66 636/1443/43 +f 616/1442/46 635/1441/41 638/1445/73 +f 629/1440/104 637/1439/45 642/1446/110 +f 633/1425/103 641/1437/40 640/1447/66 +f 687/1448/46 703/1853/46 702/1449/111 +f 654/1451/112 678/1455/112 677/1452/113 +f 655/1454/42 679/1493/42 678/1455/112 +f 656/1456/114 680/1459/114 679/1457/42 +f 656/1456/114 657/1783/135 935/726/115 +f 944/724/115 681/1472/135 680/1459/114 +f 656/1456/114 935/726/115 944/724/115 +f 665/1781/136 666/1464/116 943/744/117 +f 666/1464/116 690/1460/116 943/744/117 +f 690/1460/116 689/1474/136 952/712/117 +f 652/1461/118 675/1465/118 676/1462/45 +f 651/1463/45 676/1462/45 690/1460/116 +f 653/1453/113 677/1452/113 675/1465/118 +f 693/1466/113 709/1502/113 707/1467/118 +f 680/1459/119 696/1854/119 695/1469/47 +f 688/1470/120 704/1855/120 703/1471/46 +f 681/1472/121 697/1856/121 696/1473/119 +f 689/1474/122 705/1857/122 704/1475/120 +f 682/1476/123 698/1858/123 697/1477/121 +f 690/1460/124 706/1859/124 705/1478/122 +f 683/1479/109 699/1860/109 698/1480/123 +f 675/1465/125 691/1861/125 692/1481/73 +f 676/1462/73 692/1862/73 706/1482/124 +f 683/1479/109 684/1486/126 700/1483/126 +f 677/1452/127 693/1863/127 691/1485/125 +f 684/1486/126 685/1490/128 701/1487/128 +f 678/1455/129 694/1864/129 693/1489/127 +f 685/1490/128 686/1450/111 702/1491/111 +f 679/1493/47 695/1865/47 694/1494/129 +f 714/1495/130 864/1866/130 863/1496/131 +f 700/1498/132 701/1504/48 717/1499/48 +f 694/1501/112 710/1506/112 709/1502/113 +f 702/1503/133 718/1508/133 717/1499/48 +f 695/1505/42 711/1867/42 710/1506/112 +f 703/1507/44 719/1513/44 718/1508/133 +f 696/1509/114 712/1515/114 711/1510/42 +f 704/1512/134 720/1517/134 719/1513/44 +f 697/1514/135 713/1497/135 712/1515/114 +f 705/1516/136 721/1520/136 720/1517/134 +f 698/1518/137 714/1495/137 713/1497/135 +f 706/1519/116 722/1524/116 721/1520/136 +f 699/1521/43 715/1525/43 714/1495/137 +f 691/1468/118 707/1467/118 708/1522/45 +f 692/1523/45 708/1522/45 722/1524/116 +f 700/1498/132 716/1500/132 715/1525/43 +f 724/1526/47 732/1537/58 733/1527/61 +f 729/1529/44 737/1535/57 738/1530/64 +f 745/1532/70 739/1556/73 731/1533/59 +f 728/1534/63 736/1543/65 737/1535/57 +f 730/1531/46 738/1530/64 731/1533/59 +f 723/1536/41 731/1533/59 732/1537/58 +f 725/1528/42 733/1527/61 734/1538/67 +f 726/1539/62 734/1538/67 735/1540/66 +f 727/1542/40 735/1868/66 736/1543/65 +f 743/1544/72 744/1549/69 737/1545/57 +f 732/1537/58 740/1552/60 741/1547/71 +f 744/1549/69 745/1532/70 738/1530/64 +f 733/1548/61 741/1547/71 742/1550/68 +f 731/1533/59 739/1556/73 740/1552/60 +f 751/1553/76 752/1557/79 745/1532/70 +f 748/1554/75 749/1560/78 742/1550/68 +f 746/1555/77 747/1558/74 740/1552/60 +f 752/1557/79 746/1555/77 739/1556/73 +f 743/1544/72 750/1562/80 751/1553/76 +f 747/1558/74 748/1554/75 741/1547/71 +f 756/1563/138 757/1571/142 749/1564/78 +f 754/1566/139 755/1575/144 747/1558/74 +f 753/1567/140 758/1573/143 750/1568/80 +f 760/1570/141 754/1566/139 746/1555/77 +f 757/1571/142 753/1869/140 735/1572/66 +f 758/1573/143 759/1576/145 751/1574/76 +f 755/1575/144 756/1563/138 748/1565/75 +f 759/1576/145 760/1570/141 752/1557/79 +f 761/1577/146 765/1581/148 758/1573/143 +f 760/1570/141 767/1589/152 762/1579/147 +f 765/1581/148 766/1585/63 759/1576/145 +f 764/1582/149 761/1595/146 753/1583/140 +f 766/1585/63 767/1589/152 760/1570/141 +f 754/1580/139 762/1579/147 763/1586/150 +f 773/1588/151 774/1592/155 767/1589/152 +f 769/1590/153 770/1597/157 763/1586/150 +f 768/1591/154 772/1593/156 765/1581/148 +f 774/1592/155 769/1590/153 762/1579/147 +f 772/1593/156 773/1588/151 766/1585/63 +f 764/1582/149 771/1598/158 768/1594/154 +f 776/1599/47 784/1610/58 785/1600/61 +f 781/1602/44 789/1608/57 790/1603/64 +f 797/1605/70 791/1629/73 783/1606/59 +f 780/1607/63 788/1616/65 789/1608/57 +f 782/1604/46 790/1603/64 783/1606/59 +f 775/1609/41 783/1606/59 784/1610/58 +f 777/1601/42 785/1600/61 786/1611/67 +f 778/1612/62 786/1611/67 787/1613/66 +f 779/1615/40 787/1870/66 788/1616/65 +f 795/1617/72 796/1622/69 789/1618/57 +f 784/1610/58 792/1625/60 793/1620/71 +f 796/1622/69 797/1605/70 790/1603/64 +f 785/1621/61 793/1620/71 794/1623/68 +f 783/1606/59 791/1629/73 792/1625/60 +f 796/1622/69 803/1630/76 804/1626/79 +f 800/1627/75 801/1633/78 794/1623/68 +f 798/1628/77 799/1631/74 792/1625/60 +f 797/1605/70 804/1626/79 798/1628/77 +f 795/1617/72 802/1635/80 803/1630/76 +f 799/1631/74 800/1627/75 793/1620/71 +f 808/1636/138 809/1644/142 801/1637/78 +f 806/1639/139 807/1648/144 799/1631/74 +f 805/1640/140 810/1646/143 802/1641/80 +f 812/1643/141 806/1639/139 798/1628/77 +f 809/1644/142 805/1871/140 787/1645/66 +f 810/1646/143 811/1649/145 803/1647/76 +f 807/1648/144 808/1636/138 800/1638/75 +f 811/1649/145 812/1643/141 804/1626/79 +f 813/1650/146 817/1654/148 810/1646/143 +f 812/1643/141 819/1658/152 814/1652/147 +f 817/1654/148 818/1662/63 811/1649/145 +f 816/1655/149 813/1667/146 805/1656/140 +f 811/1649/145 818/1662/63 819/1658/152 +f 806/1653/139 814/1652/147 815/1659/150 +f 825/1661/151 826/1665/155 819/1658/152 +f 821/1663/153 822/1669/157 815/1659/150 +f 813/1650/146 820/1872/154 824/1664/156 +f 826/1665/155 821/1663/153 814/1652/147 +f 817/1654/148 824/1664/156 825/1661/151 +f 816/1655/149 823/1670/158 820/1666/154 +f 829/1671/41 837/1681/162 836/1672/159 +f 834/1674/110 842/1684/164 841/1675/160 +f 832/1677/66 840/1685/165 839/1678/161 +f 830/1680/109 838/1687/166 837/1681/162 +f 828/1673/73 836/1672/159 835/1682/163 +f 827/1683/45 835/1682/163 842/1684/164 +f 833/1676/40 841/1675/160 840/1685/165 +f 831/1686/43 839/1873/161 838/1687/166 +f 837/1688/162 838/1833/166 846/1689/167 +f 835/1682/163 836/1672/159 844/1691/169 +f 835/1682/163 843/1692/136 849/1693/170 +f 841/1694/160 848/1697/172 847/1695/171 +f 836/1672/159 837/1688/162 845/1690/168 +f 841/1694/160 842/1684/164 849/1693/170 +f 848/1697/172 849/1693/170 856/1698/173 +f 846/1689/167 853/1835/214 852/1700/175 +f 844/1691/169 851/1703/177 850/1701/134 +f 849/1693/170 843/1692/136 850/1701/134 +f 847/1695/171 848/1697/172 855/1699/174 +f 845/1690/168 852/1700/175 851/1703/177 +f 722/1524/178 872/1874/178 871/1704/179 +f 715/1525/180 865/1875/180 864/1705/130 +f 707/1467/181 857/1876/181 858/1706/182 +f 708/1522/182 858/1877/182 872/1707/178 +f 716/1500/183 866/1878/183 865/1708/180 +f 707/1467/181 709/1502/184 859/1709/184 +f 716/1500/183 717/1499/185 867/1711/185 +f 710/1506/186 860/1879/186 859/1713/184 +f 718/1508/187 868/1880/187 867/1714/185 +f 710/1506/186 711/1867/188 861/1715/188 +f 719/1513/189 869/1881/189 868/1717/187 +f 711/1510/188 712/1515/190 862/1718/190 +f 719/1513/189 720/1517/191 870/1720/191 +f 712/1515/190 713/1497/131 863/1722/131 +f 720/1517/191 721/1520/179 871/1724/179 +f 882/1726/192 883/1735/195 875/1727/41 +f 887/1729/193 888/1739/197 880/1730/66 +f 885/1732/194 886/1740/198 878/1733/110 +f 883/1735/195 884/1741/199 876/1736/73 +f 881/1737/196 882/1726/192 874/1728/109 +f 888/1739/197 881/1737/196 873/1738/43 +f 886/1740/198 887/1729/193 879/1731/40 +f 884/1741/199 885/1882/194 877/1742/45 +f 883/1743/195 891/1751/203 892/1744/200 +f 889/1746/48 890/1756/207 882/1726/192 +f 895/1747/201 889/1746/48 881/1737/196 +f 893/1748/202 894/1752/204 887/1749/193 +f 882/1726/192 890/1756/207 891/1751/203 +f 894/1752/204 895/1747/201 888/1739/197 +f 894/1752/204 901/1757/208 902/1753/205 +f 898/1754/206 899/1837/215 892/1744/200 +f 896/1755/133 897/1758/209 890/1756/207 +f 895/1747/201 902/1753/205 896/1755/133 +f 893/1748/202 900/1839/216 901/1757/208 +f 897/1758/209 898/1754/206 891/1751/203 +f 660/1759/132 938/734/132 937/735/43 +f 909/1761/136 953/729/211 954/1762/116 +f 662/1764/133 940/740/133 939/736/48 +f 664/1766/134 942/742/134 941/743/44 +f 911/1768/45 955/1794/45 956/1769/118 +f 659/1760/43 937/735/43 936/732/137 +f 920/1772/43 919/1777/132 904/1773/132 +f 934/1775/137 920/1772/43 903/1774/43 +f 661/1765/48 939/736/48 938/734/132 +f 919/1777/132 921/1883/48 905/1778/48 +f 663/1767/44 941/743/44 940/740/133 +f 905/1778/48 921/1883/48 922/1779/133 +f 665/1781/136 943/744/117 942/742/134 +f 922/1779/133 923/1884/44 907/1782/44 +f 658/1771/137 936/732/137 935/726/115 +f 923/1784/44 924/1813/134 908/1785/134 +f 686/1450/133 949/716/133 950/715/44 +f 684/1486/132 947/720/132 948/717/48 +f 682/1476/137 945/723/137 946/722/43 +f 687/1448/44 950/715/44 951/713/134 +f 685/1490/48 948/717/48 949/716/133 +f 683/1479/43 946/722/43 947/720/132 +f 681/1472/135 944/724/115 945/723/137 +f 688/1470/134 951/713/134 952/712/117 +f 916/1787/114 960/1795/114 961/747/210 +f 914/1789/112 958/1796/112 959/1790/42 +f 912/1770/118 956/1769/118 957/1792/113 +f 910/1763/116 954/1762/116 955/1794/45 +f 915/1791/42 959/1790/42 960/1795/114 +f 913/1793/113 957/1792/113 958/1796/112 +f 932/1797/114 969/1809/114 968/1798/42 +f 930/1800/112 967/1810/112 966/1801/113 +f 928/1803/118 965/1811/118 964/1804/45 +f 926/1806/116 963/1812/116 962/1157/211 +f 933/1808/135 970/1159/210 969/1809/114 +f 931/1799/42 968/1798/42 967/1810/112 +f 929/1802/113 966/1801/113 965/1811/118 +f 927/1805/45 964/1804/45 963/1812/116 +f 909/1761/136 908/1785/134 953/729/211 +f 908/1785/134 924/1813/134 953/729/211 +f 924/1813/134 925/1807/136 962/1157/211 +f 918/1776/137 917/1788/135 961/747/210 +f 961/747/210 970/1159/210 918/1776/137 +f 970/1159/210 933/1808/135 934/1775/137 +f 976/1814/137 985/1818/137 984/1815/212 +f 977/1817/43 986/1820/43 985/1818/137 +f 978/1819/132 987/1822/132 986/1820/43 +f 979/1821/48 988/1824/48 987/1822/132 +f 980/1823/133 989/1826/133 988/1824/48 +f 981/1825/44 990/1828/44 989/1826/133 +f 982/1827/134 991/1829/134 990/1828/44 +f 991/1829/134 982/1827/134 983/1830/213 diff --git a/src/main/resources/assets/hbm/textures/models/machines/chemplant.png b/src/main/resources/assets/hbm/textures/models/machines/chemplant.png new file mode 100644 index 0000000000000000000000000000000000000000..f950c92bfae0f7840b90ed34890ea174fcb03e4f GIT binary patch literal 2343 zcmY*b2~?6<8wPF2N|dJ3L~+5UtlSF8g&4HVB^CV5%uv(9B*e^ep+N<;8Ov$PC3DFI z%g{`5$t^>)TrzXb4b3gf)N;X6aRKE2YWh#-zvtZZoO{3f-TU6>dEWQ?VjS_-(9Q78 zAP@*@Yh&pIU?^l7bc zTIVk(X^5oYsH!0?TGB{UlXd%*G?xb3$hm4givFxea^;zLE6au$6R7&6Zc+TFoZ?yx z%|jcByp(YVgAGeB4=YlhG&}71wUSUcG~0i}XkB_HbYZ+&Z|(4QRj$XVk*H>Mb~T6M z8;s&B2hu>UrMqd0wQlb&4k*0lH4oZ02yaxWIB9o#oMqC^g;oz?gLJ1CC+*gS&3Cy7 zQtCcT{cUsz_vJx;>nrmJ3!(Z*{z+NN%f*zB)_n6+m0i9$a2r(4vCPkitrXV5IHo%f z0_S>!^8!cAO!>!pa7b^>=iUd90P%1R>kH+vqxQ=jW>fQl<|16w}3H-jj zQXoPn#6`#WD4yY=9n!bQIJ>dXZG$B5fRa8LD5$Bw1WR zjgRxu2T?Z86PXn+T}|Q_Lwa5XEx|9$gs>qp6=Y@JY~}gX3zTP}slkLYmpu8=n2X#b z^|3_Xew5JqYtEzB$r`ec!dh z`{F{)T0iX+KAKiT&`l-^T07j>eXQ4xdGe{mO!*Bv{pNJj&uFZ3o!R_hg(rCCfF51K2vhs46sE`==g>8?3Si4`Dqs6(`V?80GVNjOz>wHO#!G2S2C`DXu z#=5l|u1JQ*WZkufyRv=#(E0>GXQkxG#bEFC?pIO$O9)>KAK&78Z#+0lsvwZ&jK=087DHCEb@7`3;a%OKLHmwd z-=rDGjs}0#Zd*E@t}$?H^&5{qbMUD>t7K!&mEp7+Vx!n8!##Fw!VgDUqGt6BSUYfN z6O){RX@VY${*5k2S%(5vp1Ou2Ill`&r8&Kr>@l!Z#L9Iu7UATSCjAjo_fqV41~K6by{^`wV}?jei+_ zb?x`gCC133_9Z^%N|nYi$&*2+i^-^=2m#q$h;=&tX^IGQj%PB!Z5R z!EFft7*?@bFtJJfdWYai&*O@7rtNiS6B*AN4tDJ|Bx@GRj+vU#Htutq(NaqiB%)%Q zwA3<}$l4Bmi59m$_C?G8sjHY_v~EUdrp$1(0cN~4w`U6nv?Gvpo^LWm&z${5q^na8 zHz|I=f0=jq^Qg&lZ=tA8qIdCNJd@`fOxrn zqv=yMCt9|d@4qs07R#=`iGSk-T18pk$2C;l4<&Uo!bAya5VcUTYGi^Hgc!fRac$>| z9ws!3vUAVY?+3qw`5!xX-MJT!v^;aIz6uLuV8HHQrM*@C*wG8Piy}P{7m>-lU%zlk zdx11-5VT^3pIc+vmJu>`eT4b5D*}#V#D>O8@bfW}wtxh7j#?PTTqT`tM#pDQhf{OpHkA zt_5Lhi+OX?yinRa!@%G=^#Kw1EP%lqcEW&H?mRPa`5TUjTMJL#zWkzJN^R*vdN|g* z3Q#^F=g^%ul?@csnbl%yamMSDeQVCqI9N$(;7^e>=?I%`u_p>z-2N)RHGz<^9&GYu z7f-xtpxX_)Q7wD!BFx#q!@H1Ha*HZK|DDk;SsN1cS72%tv{TiFVJbuM$W&a!Q+ z2`WyZ;_p)ZOFMkx-otfVZ`&vCQM;*h`((a^-ed(7pM>m^-W8d?j~tWKh2elI3*Yy_lU}5)=UeF1nJv)6XxtYO!u^{w>u}$@{VBP3wDrDif#&s)Q=}dp| z_=kp+%B};KwUcNaSQfEnmB}@rwE{!M}6R literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/chemplant_fluid.png b/src/main/resources/assets/hbm/textures/models/machines/chemplant_fluid.png new file mode 100644 index 0000000000000000000000000000000000000000..7f40a463f99aa960a37e9bb0e3f2592e2f6eb646 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^2|&!p!3HERq)7?^DVAa<&kznEsNqQI0P?*(T^vIq zTHjtY6lGB0IdY*%;)x>L;iC?_4JN48? Date: Mon, 26 May 2025 10:12:46 +1000 Subject: [PATCH 089/181] fix dummy blocks with detailed hitboxes not using them for clicks (interaction/breaking) --- .../java/com/hbm/blocks/BlockDummyable.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main/java/com/hbm/blocks/BlockDummyable.java b/src/main/java/com/hbm/blocks/BlockDummyable.java index 75dd39c2f..fa604e66e 100644 --- a/src/main/java/com/hbm/blocks/BlockDummyable.java +++ b/src/main/java/com/hbm/blocks/BlockDummyable.java @@ -26,6 +26,8 @@ import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.DrawBlockHighlightEvent; @@ -467,6 +469,33 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl return AxisAlignedBB.getBoundingBox(aabb.minX, aabb.minY, aabb.minZ, aabb.maxX, aabb.maxY, aabb.maxZ).offset(x + 0.5, y + 0.5, z + 0.5); } + @Override + public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) { + if(!this.useDetailedHitbox()) { + return super.collisionRayTrace(world, x, y, z, startVec, endVec); + } + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return super.collisionRayTrace(world, x, y, z, startVec, endVec); + + x = pos[0]; + y = pos[1]; + z = pos[2]; + + for(AxisAlignedBB aabb :this.bounding) { + AxisAlignedBB boxlet = getAABBRotationOffset(aabb, x + 0.5, y, z + 0.5, ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - offset).getRotation(ForgeDirection.UP)); + + MovingObjectPosition intercept = boxlet.calculateIntercept(startVec, endVec); + if(intercept != null) { + return new MovingObjectPosition(x, y, z, intercept.sideHit, intercept.hitVec); + } + } + + return null; + } + @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { if(!this.useDetailedHitbox()) { From e347aa4346b6e62ad0b2179bd51a68fa67a46097 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 26 May 2025 10:05:03 +0200 Subject: [PATCH 090/181] it's like mopping up 5 gallons of vomit --- changelog | 7 +- .../com/hbm/crafting/ConsumableRecipes.java | 5 +- .../entity/projectile/EntityBulletBaseNT.java | 19 - src/main/java/com/hbm/items/ModItems.java | 6 - .../com/hbm/items/armor/ItemModRevive.java | 15 +- .../java/com/hbm/items/armor/JetpackBase.java | 3 - .../com/hbm/items/armor/JetpackBooster.java | 2 + .../com/hbm/items/armor/JetpackBreak.java | 24 +- .../com/hbm/items/armor/JetpackRegular.java | 2 + .../hbm/items/armor/JetpackVectorized.java | 2 + .../java/com/hbm/items/food/ItemCanteen.java | 42 +- .../com/hbm/items/special/ItemSyringe.java | 36 - .../hbm/items/weapon/ItemEnergyGunBase.java | 288 ------ .../com/hbm/items/weapon/ItemGunBase.java | 847 ------------------ src/main/java/com/hbm/main/MainRegistry.java | 2 + .../com/hbm/main/ModEventHandlerClient.java | 42 - .../java/com/hbm/packet/PacketDispatcher.java | 2 - .../packet/toclient/GunAnimationPacket.java | 31 +- .../hbm/packet/toserver/GunButtonPacket.java | 81 -- src/main/resources/assets/hbm/lang/de_DE.lang | 7 +- src/main/resources/assets/hbm/lang/en_US.lang | 7 +- .../assets/hbm/textures/items/canteen_fab.png | Bin 208 -> 0 bytes .../hbm/textures/items/fabsols_vodka.png | Bin 247 -> 0 bytes .../assets/hbm/textures/items/heart_fab.png | Bin 292 -> 299 bytes 24 files changed, 54 insertions(+), 1416 deletions(-) delete mode 100644 src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java delete mode 100644 src/main/java/com/hbm/items/weapon/ItemGunBase.java delete mode 100644 src/main/java/com/hbm/packet/toserver/GunButtonPacket.java delete mode 100644 src/main/resources/assets/hbm/textures/items/canteen_fab.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fabsols_vodka.png diff --git a/changelog b/changelog index 0460a9789..d354db2a9 100644 --- a/changelog +++ b/changelog @@ -9,16 +9,19 @@ ## Changed * The RBMK console's grid can now be rotated using a screwdriver * Tool abilities have changed - * Righ-clicking while holding ALT now opens a configuration window + * Right-clicking while holding ALT now opens a configuration window * The configuration window allows creation of tool presets * Area and block abilities can now be toggled independently from each other. For example, the vein miner ability can be combined with silk touch * Clicking on the same ability allows switching between levels * Updated textures for the armor and gun modification tables * Ported the fire extinguisher to the SEDNA gun system, eliminating the final remaining ItemGunBase gun * Water extinguishers can now wash away foam blocks +* Obliterated Fabsol's vodka +* Tier 4 heart piece is now called "heart of darkness" ## Fixed * Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts * Fixed strand caster fluid gauges going out of bounds * Fixed arc welder and soldering station not changing buffer size based on upgrade, preventing use of higher overdrive tiers -* Fixed non-standard template folder recipes not using the correct icon \ No newline at end of file +* Fixed non-standard template folder recipes not using the correct icon +* Fixed jetpack flight time not resetting when equipped like armor, causing kicks on servers that don't have flying cheats allowed \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 6cd44bb5b..a64f9759c 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -78,7 +78,6 @@ public class ConsumableRecipes { //Canteens CraftingManager.addRecipeAuto(new ItemStack(ModItems.canteen_vodka, 1), new Object[] { "O", "P", 'O', Items.potato, 'P', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.canteen_fab, 1), new Object[] { "VMV", "MVM", "VMV", 'V', ModItems.canteen_vodka, 'M', ModItems.powder_magic }); //Soda CraftingManager.addRecipeAuto(new ItemStack(ModItems.bottle_empty, 6), new Object[] { " G ", "G G", "GGG", 'G', KEY_ANYPANE }); @@ -119,7 +118,7 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.plan_c, 1), new Object[] { "PFP", 'P', ModItems.powder_poison, 'F', F.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.radx, 1), new Object[] { COAL.dust(), COAL.dust(), F.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.fmn, 1), new Object[] { COAL.dust(), PO210.dust(), ST.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.five_htp, 1), new Object[] { COAL.dust(), EUPH.dust(), ModItems.canteen_fab }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.five_htp, 1), new Object[] { COAL.dust(), EUPH.dust(), ModItems.canteen_vodka }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.cigarette, 16), new Object[] { ASBESTOS.ingot(), ANY_TAR.any(), PO210.nugget(), DictFrame.fromOne(ModItems.plant_item, ItemEnums.EnumPlantType.TOBACCO) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.crackpipe, 1), new Object[] { ModItems.catalytic_converter }); @@ -193,7 +192,7 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.industrial_magnet, 1), new Object[] { "SMS", " B ", "SMS", 'S', STEEL.ingot(), 'M', ModItems.horseshoe_magnet, 'B', ModBlocks.fusion_conductor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_container, 1), new Object[] { "HAH", "ACA", "HAH", 'H', ModItems.heart_piece, 'A', AL.ingot(), 'C', ModItems.coin_creeper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_booster, 1), new Object[] { "GHG", "MCM", "GHG", 'G', GOLD.ingot(), 'H', ModItems.heart_container, 'M', ModItems.morning_glory, 'C', ModItems.coin_maskman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_fab, 1), new Object[] { "GHG", "MCM", "GHG", 'G', PO210.billet(), 'H', ModItems.heart_booster, 'M', ModItems.canteen_fab, 'C', ModItems.coin_worm }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_fab, 1), new Object[] { "GHG", "MCM", "GHG", 'G', PO210.billet(), 'H', ModItems.heart_booster, 'M', ANY_COKE.gem(), 'C', ModItems.coin_worm }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ink, 1), new Object[] { "FPF", "PIP", "FPF", 'F', new ItemStack(Blocks.red_flower, 1, OreDictionary.WILDCARD_VALUE), 'P', ModItems.armor_polish, 'I', KEY_BLACK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bathwater_mk2, 1), new Object[] { "MWM", "WBW", "MWM", 'M', ModItems.bottle_mercury, 'W', ModItems.nuclear_waste, 'B', ModItems.bathwater }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.back_tesla, 1), new Object[] { "DGD", "GTG", "DGD", 'D', ModItems.ducttape, 'G', GOLD.wireFine(), 'T', ModBlocks.tesla }); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 728c2d1ad..02970ee35 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -21,9 +21,7 @@ import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; import com.hbm.handler.threading.PacketThreading; -import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.MainRegistry; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.potion.HbmPotion; @@ -38,7 +36,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; @@ -109,25 +106,9 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet this.dataWatcher.updateObject(17, (byte)this.config.trail); thrower = entity; - ItemStack gun = entity.getHeldItem(); boolean offsetShot = true; boolean accuracyBoost = false; - if(gun != null && gun.getItem() instanceof ItemGunBase) { - GunConfiguration cfg = ((ItemGunBase) gun.getItem()).mainConfig; - - if(cfg != null) { - if(cfg.hasSights && entity.isSneaking()) { - offsetShot = false; - accuracyBoost = true; - } - - if(cfg.isCentered){ - offsetShot = false; - } - } - } - this.setLocationAndAngles(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, entity.rotationYaw, entity.rotationPitch); if(offsetShot) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index b60160874..e268f4d4b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1599,7 +1599,6 @@ public class ModItems { public static Item med_schizophrenia; public static Item canteen_vodka; - public static Item canteen_fab; public static Item defuser; public static Item reacher; @@ -2052,7 +2051,6 @@ public class ModItems { public static Item wd40; public static Item scrumpy; public static Item wild_p; - public static Item fabsols_vodka; public static Item shackles; public static Item injector_5htp; public static Item injector_knife; @@ -3087,7 +3085,6 @@ public class ModItems { wd40 = new ItemModWD40().setUnlocalizedName("wd40").setTextureName(RefStrings.MODID + ":wd40"); scrumpy = new ItemModRevive(1).setUnlocalizedName("scrumpy").setTextureName(RefStrings.MODID + ":scrumpy"); wild_p = new ItemModRevive(3).setUnlocalizedName("wild_p").setTextureName(RefStrings.MODID + ":wild_p"); - fabsols_vodka = new ItemModRevive(9999).setUnlocalizedName("fabsols_vodka").setTextureName(RefStrings.MODID + ":fabsols_vodka"); shackles = new ItemModShackles().setUnlocalizedName("shackles").setTextureName(RefStrings.MODID + ":shackles"); injector_5htp = new ItemModAuto().setUnlocalizedName("injector_5htp").setTextureName(RefStrings.MODID + ":injector_5htp"); injector_knife = new ItemModKnife().setUnlocalizedName("injector_knife").setTextureName(RefStrings.MODID + ":injector_knife"); @@ -3870,7 +3867,6 @@ public class ModItems { static_sandwich = new ItemLemon(6, 1F, false).setUnlocalizedName("static_sandwich").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":static_sandwich"); pudding = new ItemLemon(6, 1F, false).setUnlocalizedName("pudding").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pudding"); canteen_vodka = new ItemCanteen(3 * 60).setUnlocalizedName("canteen_vodka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_vodka"); - canteen_fab = new ItemCanteen(2 * 60).setUnlocalizedName("canteen_fab").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canteen_fab"); pancake = new ItemPancake(20, 20, false).setUnlocalizedName("pancake").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pancake"); nugget = new ItemLemon(200, 1F, false).setUnlocalizedName("nugget").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nugget"); peas = new ItemPeas().setUnlocalizedName("peas").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":peas"); @@ -6709,7 +6705,6 @@ public class ModItems { GameRegistry.registerItem(med_ipecac, med_ipecac.getUnlocalizedName()); GameRegistry.registerItem(med_ptsd, med_ptsd.getUnlocalizedName()); GameRegistry.registerItem(canteen_vodka, canteen_vodka.getUnlocalizedName()); - GameRegistry.registerItem(canteen_fab, canteen_fab.getUnlocalizedName()); GameRegistry.registerItem(mucho_mango, mucho_mango.getUnlocalizedName()); GameRegistry.registerItem(chocolate, chocolate.getUnlocalizedName()); @@ -6833,7 +6828,6 @@ public class ModItems { GameRegistry.registerItem(wd40, wd40.getUnlocalizedName()); GameRegistry.registerItem(scrumpy, scrumpy.getUnlocalizedName()); GameRegistry.registerItem(wild_p, wild_p.getUnlocalizedName()); - GameRegistry.registerItem(fabsols_vodka, fabsols_vodka.getUnlocalizedName()); GameRegistry.registerItem(shackles, shackles.getUnlocalizedName()); GameRegistry.registerItem(injector_5htp, injector_5htp.getUnlocalizedName()); GameRegistry.registerItem(injector_knife, injector_knife.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ItemModRevive.java b/src/main/java/com/hbm/items/armor/ItemModRevive.java index 57519ed89..c5a224f88 100644 --- a/src/main/java/com/hbm/items/armor/ItemModRevive.java +++ b/src/main/java/com/hbm/items/armor/ItemModRevive.java @@ -26,14 +26,13 @@ public class ItemModRevive extends ItemArmorMod { if(this == ModItems.wild_p) { list.add(EnumChatFormatting.DARK_GRAY + "Explosive " + EnumChatFormatting.RED + "Reactive " + EnumChatFormatting.DARK_GRAY + "Plot " + EnumChatFormatting.RED + "Armor"); } - if(this == ModItems.fabsols_vodka) { - list.add(EnumChatFormatting.ITALIC + "In the news:"); - list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "Man literally too angry to die."); - list.add(""); - list.add(EnumChatFormatting.ITALIC + "\"I ain't got time to die\" says local"); - list.add(EnumChatFormatting.ITALIC + "man after ripping the physical manifestation"); - list.add(EnumChatFormatting.ITALIC + "of disaster itself in half."); - } + + /*list.add(EnumChatFormatting.ITALIC + "In the news:"); + list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "Man literally too angry to die."); + list.add(""); + list.add(EnumChatFormatting.ITALIC + "\"I ain't got time to die\" says local"); + list.add(EnumChatFormatting.ITALIC + "man after ripping the physical manifestation"); + list.add(EnumChatFormatting.ITALIC + "of disaster itself in half.");*/ list.add(""); list.add(EnumChatFormatting.GOLD + "" + (stack.getMaxDamage() - stack.getItemDamage()) + " revives left"); diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index 7b13478d7..f68814769 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.render.model.ModelJetPack; -import com.hbm.util.ArmorUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -57,8 +56,6 @@ public abstract class JetpackBase extends ItemArmorMod { return; onArmorTick(entity.worldObj, (EntityPlayer)entity, jetpack); - ArmorUtil.resetFlightTime((EntityPlayer)entity); - ArmorModHandler.applyMod(armor, jetpack); } diff --git a/src/main/java/com/hbm/items/armor/JetpackBooster.java b/src/main/java/com/hbm/items/armor/JetpackBooster.java index bbc157b7f..9b4f463c5 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBooster.java +++ b/src/main/java/com/hbm/items/armor/JetpackBooster.java @@ -7,6 +7,7 @@ import com.hbm.handler.threading.PacketThreading; import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.ArmorUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -63,6 +64,7 @@ public class JetpackBooster extends JetpackFueledBase { world.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:weapon.flamethrowerShoot", 0.25F, 1.0F); this.useUpFuel(player, stack, 1); + ArmorUtil.resetFlightTime(player); } } diff --git a/src/main/java/com/hbm/items/armor/JetpackBreak.java b/src/main/java/com/hbm/items/armor/JetpackBreak.java index cb9962d7c..029b00486 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBreak.java +++ b/src/main/java/com/hbm/items/armor/JetpackBreak.java @@ -6,6 +6,7 @@ import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.threading.PacketThreading; import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.ArmorUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -37,9 +38,9 @@ public class JetpackBreak extends JetpackFueledBase { if(getFuel(stack) > 0 && (props.isJetpackActive() || (!player.onGround && !player.isSneaking() && props.enableBackpack))) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "jetpack"); - data.setInteger("player", player.getEntityId()); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "jetpack"); + data.setInteger("player", player.getEntityId()); PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, player.posX, player.posY, player.posZ), new TargetPoint(world.provider.dimensionId, player.posX, player.posY, player.posZ, 100)); } } @@ -70,17 +71,18 @@ public class JetpackBreak extends JetpackFueledBase { world.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:weapon.flamethrowerShoot", 0.25F, 1.5F); this.useUpFuel(player, stack, 10); + ArmorUtil.resetFlightTime(player); } } - } + } - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("Regular jetpack that will automatically hover mid-air."); - list.add("Sneaking will stop hover mode."); - list.add("Hover mode will consume less fuel and increase air-mobility."); + list.add("Regular jetpack that will automatically hover mid-air."); + list.add("Sneaking will stop hover mode."); + list.add("Hover mode will consume less fuel and increase air-mobility."); - super.addInformation(stack, player, list, ext); - } + super.addInformation(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/items/armor/JetpackRegular.java b/src/main/java/com/hbm/items/armor/JetpackRegular.java index b5e52ea67..3779a9946 100644 --- a/src/main/java/com/hbm/items/armor/JetpackRegular.java +++ b/src/main/java/com/hbm/items/armor/JetpackRegular.java @@ -6,6 +6,7 @@ import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.threading.PacketThreading; import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.ArmorUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -50,6 +51,7 @@ public class JetpackRegular extends JetpackFueledBase { world.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:weapon.flamethrowerShoot", 0.25F, 1.5F); this.useUpFuel(player, stack, 5); + ArmorUtil.resetFlightTime(player); } } diff --git a/src/main/java/com/hbm/items/armor/JetpackVectorized.java b/src/main/java/com/hbm/items/armor/JetpackVectorized.java index 877f68909..27b306906 100644 --- a/src/main/java/com/hbm/items/armor/JetpackVectorized.java +++ b/src/main/java/com/hbm/items/armor/JetpackVectorized.java @@ -6,6 +6,7 @@ import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.threading.PacketThreading; import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.toclient.AuxParticlePacketNT; +import com.hbm.util.ArmorUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -62,6 +63,7 @@ public class JetpackVectorized extends JetpackFueledBase { world.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:weapon.flamethrowerShoot", 0.25F, 1.5F); this.useUpFuel(player, stack, 3); + ArmorUtil.resetFlightTime(player); } } diff --git a/src/main/java/com/hbm/items/food/ItemCanteen.java b/src/main/java/com/hbm/items/food/ItemCanteen.java index 81a3c20b0..e344a4712 100644 --- a/src/main/java/com/hbm/items/food/ItemCanteen.java +++ b/src/main/java/com/hbm/items/food/ItemCanteen.java @@ -35,18 +35,11 @@ public class ItemCanteen extends Item { public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { stack.setItemDamage(stack.getMaxDamage()); - if (this == ModItems.canteen_vodka) { + if(this == ModItems.canteen_vodka) { player.addPotionEffect(new PotionEffect(Potion.confusion.id, 10 * 20, 0)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 30 * 20, 2)); } - if (this == ModItems.canteen_fab) { - player.heal(10F); - player.addPotionEffect(new PotionEffect(Potion.confusion.id, 15 * 20, 0)); - player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60 * 20, 2)); - player.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 2)); - player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 1)); - } - + VersatileConfig.applyPotionSickness(player, 5); return stack; @@ -64,34 +57,27 @@ public class ItemCanteen extends Item { @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if (stack.getItemDamage() == 0 && !VersatileConfig.hasPotionSickness(player)) + if(stack.getItemDamage() == 0 && !VersatileConfig.hasPotionSickness(player)) player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); return stack; } - - @Override + + @Override @SideOnly(Side.CLIENT) - public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) - { - if(this == ModItems.canteen_vodka) - { + public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List list, boolean p_77624_4_) { + if(this == ModItems.canteen_vodka) { list.add("Cooldown: 3 minutes"); list.add("Nausea I for 10 seconds"); list.add("Strength III for 30 seconds"); list.add(""); - - if(MainRegistry.polaroidID == 11) - //list.add("Why sipp when you can succ?"); + + if(MainRegistry.polaroidID == 11) + // list.add("Why sipp when you can succ?"); list.add("Time to get hammered & sickled!"); - else - list.add("Smells like disinfectant, tastes like disinfectant."); - } - if(this == ModItems.canteen_fab) - { - list.add("Cooldown: 2 minutes"); - list.add("Engages the fab drive"); - } - } + else + list.add("Smells like disinfectant, tastes like disinfectant."); + } + } } diff --git a/src/main/java/com/hbm/items/special/ItemSyringe.java b/src/main/java/com/hbm/items/special/ItemSyringe.java index b2c6be5b5..0a4800953 100644 --- a/src/main/java/com/hbm/items/special/ItemSyringe.java +++ b/src/main/java/com/hbm/items/special/ItemSyringe.java @@ -9,7 +9,6 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGunBase; import com.hbm.potion.HbmPotion; import api.hbm.fluidmk2.IFillableItem; @@ -226,41 +225,6 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.gun_kit_1 || this == ModItems.gun_kit_2) { - if(!world.isRemote) { - float repair = 0; - - if(this == ModItems.gun_kit_1) { - repair = 0.1F; - world.playSoundAtEntity(player, "hbm:item.spray", 1.0F, 1.0F); - } - if(this == ModItems.gun_kit_2) { - repair = 0.5F; - world.playSoundAtEntity(player, "hbm:item.repair", 1.0F, 1.0F); - } - - for(int i = 0; i < 9; i++) { - - ItemStack gun = player.inventory.mainInventory[i]; - - if(gun != null && gun.getItem() instanceof ItemGunBase) { - - int full = ((ItemGunBase) gun.getItem()).mainConfig.durability; - int wear = ItemGunBase.getItemWear(gun); - - int nWear = (int) (wear - (full * repair)); - - if(nWear < 0) - nWear = 0; - - ItemGunBase.setItemWear(gun, nWear); - } - } - - stack.stackSize--; - } - } - if(this == ModItems.cbt_device) { if(!world.isRemote) { player.addPotionEffect(new PotionEffect(HbmPotion.bang.id, 30, 0)); diff --git a/src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java deleted file mode 100644 index 12340864e..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemEnergyGunBase.java +++ /dev/null @@ -1,288 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; - -import org.lwjgl.input.Mouse; - -import com.hbm.config.GeneralConfig; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.items.weapon.sedna.Crosshair; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toclient.GunAnimationPacket; -import com.hbm.packet.toserver.GunButtonPacket; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay; -import com.hbm.util.BobMathUtil; -import com.hbm.util.ChatBuilder; - -import api.hbm.energymk2.IBatteryItem; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.Minecraft; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { - - public ItemEnergyGunBase(GunConfiguration config) { - super(config); - } - - public ItemEnergyGunBase(GunConfiguration config, GunConfiguration alt) { - super(config, alt); - } - - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add("Energy Stored: " + BobMathUtil.getShortNumber(getCharge(stack)) + "/" + BobMathUtil.getShortNumber(mainConfig.maxCharge) + "HE"); - list.add("Charge rate: " + BobMathUtil.getShortNumber(mainConfig.chargeRate) + "HE/t"); - - addAdditionalInformation(stack, list); - } - - @Override - @SideOnly(Side.CLIENT) - protected void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) { - - if(!world.isRemote) - return; - - boolean clickLeft = Mouse.isButtonDown(0); - boolean clickRight = Mouse.isButtonDown(1); - boolean left = m1; - boolean right = m2; - - if(isCurrentItem) { - if(left && right) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); - m1 = false; - m2 = false; - } - - if(left && !clickLeft) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); - m1 = false; - endActionClient(stack, world, entity, true); - } - - if(right && !clickRight) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); - m2 = false; - endActionClient(stack, world, entity, false); - } - } - } - - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - - if(getDelay(stack) > 0 && isCurrentItem) - setDelay(stack, getDelay(stack) - 1); - - if(getIsMouseDown(stack) && !(player.getHeldItem() == stack)) { - setIsMouseDown(stack, false); - } - - if(getIsAltDown(stack) && !isCurrentItem) { - setIsAltDown(stack, false); - } - - if(GeneralConfig.enableGuns && mainConfig.firingMode == 1 && getIsMouseDown(stack) && tryShoot(stack, world, player, isCurrentItem)) { - - fire(stack, world, player); - setDelay(stack, getConfig(stack).firingRate); - } - } - - protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) { - - - if(main && getDelay(stack) == 0) { - return getConfig(stack).dischargePerShot <= getCharge(stack); - } - - return false; - } - - protected void fire(ItemStack stack, World world, EntityPlayer player) { - - BulletConfiguration config = getConfig(stack); - - int bullets = config.bulletsMin; - - for(int k = 0; k < mainConfig.roundsPerCycle; k++) { - - if(config.bulletsMax > config.bulletsMin) - bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin); - - for(int i = 0; i < bullets; i++) { - spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); - } - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); - - setCharge(stack, getCharge(stack) - config.dischargePerShot);; - } - - world.playSoundAtEntity(player, mainConfig.firingSound, 1.0F, mainConfig.firingPitch); - } - - public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - if(mainConfig.firingMode == GunConfiguration.FIRE_MANUAL && main && tryShoot(stack, world, player, main)) { - fire(stack, world, player); - setDelay(stack, mainConfig.rateOfFire); - - } - - if(!main && stack.getItem() instanceof ItemEnergyGunBase) { - - byte mode = stack.hasTagCompound() ? stack.getTagCompound().getByte("mode") : 0; - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - mode++; - if(mode >= mainConfig.config.size()) { - mode = 0; - } - - stack.getTagCompound().setByte("mode", mode); - - if(!world.isRemote) { - BulletConfiguration config = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(mode)); - //PacketDispatcher.wrapper.sendTo(new PlayerInformPacket("" + config.chatColour + config.modeName, MainRegistry.proxy.ID_GUN_MODE), (EntityPlayerMP)player); - - player.addChatMessage(ChatBuilder.start("") - .nextTranslation("weapon.elecGun.modeChange").color(EnumChatFormatting.WHITE) - .nextTranslation(" ") - .nextTranslation(config.modeName).color(config.chatColour).flush()); - } - } - } - - // yummy boilerplate - - public boolean showDurabilityBar(ItemStack stack) { - return true; - } - - public double getDurabilityForDisplay(ItemStack stack) { - return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); - } - - @Override - public void chargeBattery(ItemStack stack, long i) { - if(stack.getItem() instanceof ItemEnergyGunBase) { - if(stack.hasTagCompound()) { - stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") + i); - } else { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", i); - } - } - } - - @Override - public void setCharge(ItemStack stack, long i) { - if(stack.getItem() instanceof ItemEnergyGunBase) { - if(stack.hasTagCompound()) { - stack.stackTagCompound.setLong("charge", i); - } else { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", i); - } - } - } - - @Override - public void dischargeBattery(ItemStack stack, long i) { - if(stack.getItem() instanceof ItemEnergyGunBase) { - if(stack.hasTagCompound()) { - stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i); - } else { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ItemEnergyGunBase)stack.getItem()).mainConfig.maxCharge - i); - } - } - } - - @Override - public long getCharge(ItemStack stack) { - if(stack.getItem() instanceof ItemEnergyGunBase) { - if(stack.hasTagCompound()) { - return stack.stackTagCompound.getLong("charge"); - } else { - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ItemEnergyGunBase) stack.getItem()).mainConfig.maxCharge); - return stack.stackTagCompound.getLong("charge"); - } - } - - return 0; - } - - @Override - public long getMaxCharge(ItemStack stack) { - return mainConfig.maxCharge; - } - - @Override - public long getChargeRate() { - return mainConfig.chargeRate; - } - - @Override - public long getDischargeRate() { - return 0; - } - - public BulletConfiguration getConfig(ItemStack stack) { - - byte mode = 0; - - if(stack.hasTagCompound()) - mode = stack.getTagCompound().getByte("mode"); - - return BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(mode)); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, List list) { - - ItemStack stack = new ItemStack(item); - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setLong("charge", ((ItemEnergyGunBase) item).getMaxCharge(stack)); - - list.add(stack); - } - - @Override - @SideOnly(Side.CLIENT) - public void renderHUD(Pre event, ElementType type, EntityPlayer player, ItemStack stack) { - - if(type == ElementType.CROSSHAIRS && GeneralConfig.enableCrosshairs) { - - event.setCanceled(true); - - if(!(mainConfig.hasSights && player.isSneaking())) - RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, ((IHoldableWeapon)player.getHeldItem().getItem()).getCrosshair()); - else - RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, Crosshair.NONE); - } - } - -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java deleted file mode 100644 index 27f9b78a9..000000000 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ /dev/null @@ -1,847 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; - -import com.hbm.handler.threading.PacketThreading; -import org.lwjgl.input.Mouse; - -import com.hbm.config.GeneralConfig; -import com.hbm.entity.projectile.EntityBulletBaseNT; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.CasingEjector; -import com.hbm.handler.GunConfiguration; -import com.hbm.handler.HbmKeybinds; -import com.hbm.interfaces.IHoldableWeapon; -import com.hbm.interfaces.IItemHUD; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.items.IEquipReceiver; -import com.hbm.items.armor.ArmorTrenchmaster; -import com.hbm.items.weapon.sedna.Crosshair; -import com.hbm.lib.HbmCollection; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.toclient.AuxParticlePacketNT; -import com.hbm.packet.toclient.GunAnimationPacket; -import com.hbm.packet.toserver.GunButtonPacket; -import com.hbm.render.anim.BusAnimation; -import com.hbm.render.anim.HbmAnimations.AnimType; -import com.hbm.render.util.RenderScreenOverlay; -import com.hbm.util.I18nUtil; -import com.hbm.util.InventoryUtil; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -@Deprecated -public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEquipReceiver { - - public GunConfiguration mainConfig; - public GunConfiguration altConfig; - - @SideOnly(Side.CLIENT) - public boolean m1;// = false; - @SideOnly(Side.CLIENT) - public boolean m2;// = false; - - public ItemGunBase(GunConfiguration config) { - mainConfig = config; - this.setMaxStackSize(1); - } - - public ItemGunBase(GunConfiguration config, GunConfiguration alt) { - this(config); - altConfig = alt; - } - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) { - - if(entity instanceof EntityPlayer) { - - isCurrentItem = ((EntityPlayer)entity).getHeldItem() == stack; - - if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && world.isRemote) { - updateClient(stack, world, (EntityPlayer)entity, slot, isCurrentItem); - } else { - updateServer(stack, world, (EntityPlayer)entity, slot, isCurrentItem); - } - } - } - - @SideOnly(Side.CLIENT) - protected void updateClient(ItemStack stack, World world, EntityPlayer entity, int slot, boolean isCurrentItem) { - - if(!world.isRemote) - return; - - boolean clickLeft = Mouse.isButtonDown(0); - boolean clickRight = Mouse.isButtonDown(1); - boolean left = m1; - boolean right = m2; - - if(isCurrentItem) { - if(left && right) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); - m1 = false; - m2 = false; - } - - if(left && !clickLeft) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); - m1 = false; - endActionClient(stack, world, entity, true); - } - - if(right && !clickRight) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); - m2 = false; - endActionClient(stack, world, entity, false); - } - - if(mainConfig.reloadType != GunConfiguration.RELOAD_NONE || (altConfig != null && altConfig.reloadType != 0)) { - - if(GameSettings.isKeyDown(HbmKeybinds.reloadKey) && Minecraft.getMinecraft().currentScreen == null && (getMag(stack) < mainConfig.ammoCap || hasInfinity(stack, mainConfig))) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 2)); - setIsReloading(stack, true); - resetReloadCycle(entity, stack); - } - } - } - } - - protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { - - if(getDelay(stack) > 0 && isCurrentItem) - setDelay(stack, getDelay(stack) - 1); - - if(getIsMouseDown(stack) && !(player.getHeldItem() == stack)) { - setIsMouseDown(stack, false); - } - - int burstDuration = getBurstDuration(stack); - if(burstDuration > 0) { - - if(altConfig == null) { - if (burstDuration % mainConfig.firingDuration == 0 && tryShoot(stack, world, player, true)) { - fire(stack, world, player); - } - } else { - boolean canFire = altConfig.firingDuration == 1 || burstDuration % altConfig.firingDuration == 0; - if (canFire && tryShoot(stack, world, player, false)) { - altFire(stack, world, player); - } - } - - setBurstDuration(stack, getBurstDuration(stack) - 1); - if(getBurstDuration(stack) == 0) setDelay(stack, mainConfig.rateOfFire); - } - if(getIsAltDown(stack) && !isCurrentItem) { - setIsAltDown(stack, false); - } - - if(GeneralConfig.enableGuns && mainConfig.firingMode == 1 && getIsMouseDown(stack) && tryShoot(stack, world, player, isCurrentItem)) { - fire(stack, world, player); - setDelay(stack, mainConfig.rateOfFire); - } - - if(getIsReloading(stack) && isCurrentItem) { - reload2(stack, world, player); - } - - BulletConfiguration queued = getCasing(stack); - int timer = getCasingTimer(stack); - - if(queued != null && timer > 0) { - - timer--; - - if(timer <= 0) { - trySpawnCasing(player, mainConfig.ejector, queued, stack); - } - - setCasingTimer(stack, timer); - } - } - - //whether or not the gun can shoot in its current state - protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) { - - //cancel reload when trying to shoot if it's a single reload weapon and at least one round is loaded - if(getIsReloading(stack) && mainConfig.reloadType == GunConfiguration.RELOAD_SINGLE && getMag(stack) > 0) { - setReloadCycle(stack, 0); - setIsReloading(stack, false); - } - - if(main && getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) { - return hasAmmo(stack, player, main); - } - - if(!main && altConfig != null && getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) { - - return hasAmmo(stack, player, false); - } - - return false; - } - - public boolean hasAmmo(ItemStack stack, EntityPlayer player, boolean main) { - - GunConfiguration config = mainConfig; - - if(!main) - config = altConfig; - - if(config.reloadType == GunConfiguration.RELOAD_NONE) { - return getBeltSize(player, getBeltType(player, stack, main)) > 0; - - } else { - //return getMag(stack) >= 0 + config.roundsPerCycle; - return getMag(stack) > 0; - } - } - - //called every time the gun shoots successfully, calls spawnProjectile(), sets item wear - protected void fire(ItemStack stack, World world, EntityPlayer player) { - - BulletConfiguration config = null; - - if(mainConfig.reloadType == GunConfiguration.RELOAD_NONE) { - config = getBeltCfg(player, stack, true); - } else { - config = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); - } - - int bullets = config.bulletsMin; - - for(int k = 0; k < mainConfig.roundsPerCycle; k++) { - - if(!hasAmmo(stack, player, true)) - break; - - if(config.bulletsMax > config.bulletsMin) - bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin); - - for(int i = 0; i < bullets; i++) { - spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); - } - - useUpAmmo(player, stack, true); - player.inventoryContainer.detectAndSendChanges(); - - int wear = (int) Math.ceil(config.wear / (1F + EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack))); - setItemWear(stack, getItemWear(stack) + wear); - } - - if(player instanceof EntityPlayerMP) { - AnimType animType = getMag(stack) == 0 ? AnimType.CYCLE_EMPTY : AnimType.CYCLE; - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(animType.ordinal()), (EntityPlayerMP) player); - } - - String firingSound = mainConfig.firingSound; - if (getMag(stack) == 0 && mainConfig.firingSoundEmpty != null) firingSound = mainConfig.firingSoundEmpty; - world.playSoundAtEntity(player, firingSound, mainConfig.firingVolume, mainConfig.firingPitch); - - if(mainConfig.ejector != null && !mainConfig.ejector.getAfterReload()) - queueCasing(player, mainConfig.ejector, config, stack); - } - - //unlike fire(), being called does not automatically imply success, some things may still have to be handled before spawning the projectile - protected void altFire(ItemStack stack, World world, EntityPlayer player) { - - if(altConfig == null) - return; - - BulletConfiguration config = altConfig.reloadType == GunConfiguration.RELOAD_NONE ? getBeltCfg(player, stack, false) : BulletConfigSyncingUtil.pullConfig(altConfig.config.get(getMagType(stack))); - - int bullets = config.bulletsMin; - - for(int k = 0; k < altConfig.roundsPerCycle; k++) { - - if(altConfig.reloadType != GunConfiguration.RELOAD_NONE && !hasAmmo(stack, player, true)) - break; - - if(config.bulletsMax > config.bulletsMin) - bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin); - - for(int i = 0; i < bullets; i++) { - spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); - } - - if(player instanceof EntityPlayerMP) - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.ALT_CYCLE.ordinal()), (EntityPlayerMP) player); - - useUpAmmo(player, stack, false); - player.inventoryContainer.detectAndSendChanges(); - - setItemWear(stack, getItemWear(stack) + config.wear); - } - - world.playSoundAtEntity(player, altConfig.firingSound, mainConfig.firingVolume, altConfig.firingPitch); - - if(altConfig.ejector != null) - queueCasing(player, altConfig.ejector, config, stack); - } - - //spawns the actual projectile, can be overridden to change projectile entity - protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, config, player); - world.spawnEntityInWorld(bullet); - } - - //called on click (server side, called by mouse packet) for semi-automatics and specific events - public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - - boolean validConfig = mainConfig.firingMode == GunConfiguration.FIRE_MANUAL || mainConfig.firingMode == GunConfiguration.FIRE_BURST; - - if(validConfig && main && tryShoot(stack, world, player, main)) { - - if(mainConfig.firingMode == GunConfiguration.FIRE_BURST){ - if(getBurstDuration(stack) <= 0) - setBurstDuration(stack,mainConfig.firingDuration * mainConfig.roundsPerBurst); - } else { - fire(stack, world, player); - setDelay(stack, mainConfig.rateOfFire); - } - } - - if(!main && altConfig != null && tryShoot(stack, world, player, main)) { - - if(altConfig.firingMode == GunConfiguration.FIRE_BURST && getBurstDuration(stack) <= 0){ - setBurstDuration(stack,altConfig.firingDuration * altConfig.roundsPerBurst); - } else { - altFire(stack, world, player); - setDelay(stack, altConfig.rateOfFire); - } - } - } - - //called on click (client side, called by mouse click event) - public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { } - - //called on click release (server side, called by mouse packet) for release actions like charged shots - public void endAction(ItemStack stack, World world, EntityPlayer player, boolean main) { } - - //called on click release (client side, called by update cycle) - public void endActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { } - - //current reload - protected void reload2(ItemStack stack, World world, EntityPlayer player) { - - if(getMag(stack) >= mainConfig.ammoCap) { - setIsReloading(stack, false); - return; - } - - if(getReloadCycle(stack) <= 0) { - - BulletConfiguration prevCfg = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); - - BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); - ComparableStack ammo = (ComparableStack) cfg.ammo.copy(); - - final int countNeeded = (mainConfig.reloadType == GunConfiguration.RELOAD_FULL) ? mainConfig.ammoCap - getMag(stack) : 1; - final int availableStacks = InventoryUtil.countAStackMatches(player, ammo, true); - final int availableFills = availableStacks * cfg.ammoCount; - final boolean hasLoaded = availableFills > 0; - final int toAdd = Math.min(availableFills * cfg.ammoCount, countNeeded); - final int toConsume = (int) Math.ceil((double) toAdd / cfg.ammoCount); - - // Skip logic if cannot reload - if(availableFills == 0) { - setIsReloading(stack, false); - return; - } - - String reloadSound = mainConfig.reloadSoundEmpty != null && getMag(stack) == 0 ? mainConfig.reloadSoundEmpty : mainConfig.reloadSound; - - ammo.stacksize = toConsume; - setMag(stack, getMag(stack) + toAdd); - if (getMag(stack) >= mainConfig.ammoCap) { - setIsReloading(stack, false); - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD_END.ordinal()), (EntityPlayerMP) player); - } else { - resetReloadCycle(player, stack); - AnimType animType = availableFills <= 1 ? AnimType.RELOAD_END : AnimType.RELOAD_CYCLE; - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(animType.ordinal()), (EntityPlayerMP) player); - if (availableFills > 1 && !mainConfig.reloadSoundEnd) - world.playSoundAtEntity(player, reloadSound, 1.0F, 1.0F); - } - - if(hasLoaded && mainConfig.reloadSoundEnd) - world.playSoundAtEntity(player, reloadSound, 1.0F, 1.0F); - - if(mainConfig.ejector != null && mainConfig.ejector.getAfterReload()) - queueCasing(player, mainConfig.ejector, prevCfg, stack); - - InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length - 1, ammo); - } else { - setReloadCycle(stack, getReloadCycle(stack) - 1); - } - - if(stack != player.getHeldItem()) { - setReloadCycle(stack, 0); - setIsReloading(stack, false); - } - } - - //initiates a reload - public void startReloadAction(ItemStack stack, World world, EntityPlayer player) { - - if(getMag(stack) == 0) - resetAmmoType(stack, world, player); - - if(player.isSneaking() && hasInfinity(stack, mainConfig)) { - - if(getMag(stack) == mainConfig.ammoCap) { - setMag(stack, 0); - this.resetAmmoType(stack, world, player); - world.playSoundAtEntity(player, "tile.piston.out", 1.0F, 1.0F); - } - - return; - } - - if(getMag(stack) == mainConfig.ammoCap) - return; - - if(getIsReloading(stack)) - return; - - if(!mainConfig.reloadSoundEnd) { - String reloadSound = mainConfig.reloadSoundEmpty != null && getMag(stack) == 0 ? mainConfig.reloadSoundEmpty : mainConfig.reloadSound; - world.playSoundAtEntity(player, reloadSound, 1.0F, 1.0F); - } - - if(!world.isRemote) { - AnimType reloadType = getMag(stack) == 0 ? AnimType.RELOAD_EMPTY : AnimType.RELOAD; - PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(reloadType.ordinal()), (EntityPlayerMP) player); - } - - setIsReloading(stack, true); - resetReloadCycle(player, stack); - } - - public boolean canReload(ItemStack stack, World world, EntityPlayer player) { - - if(getMag(stack) == mainConfig.ammoCap && hasInfinity(stack, mainConfig)) - return true; - - if(getMag(stack) == 0) { - - for(int config : mainConfig.config) { - if(InventoryUtil.doesPlayerHaveAStack(player, BulletConfigSyncingUtil.pullConfig(config).ammo, false, false)) { - return true; - } - } - - } else { - ComparableStack ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo; - return InventoryUtil.doesPlayerHaveAStack(player, ammo, false, false); - } - - return false; - } - - //searches the player's inv for next fitting ammo type and changes the gun's mag - protected void resetAmmoType(ItemStack stack, World world, EntityPlayer player) { - - for(int config : mainConfig.config) { - BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); - - if(InventoryUtil.doesPlayerHaveAStack(player, cfg.ammo, false, false)) { - setMagType(stack, mainConfig.config.indexOf(config)); - break; - } - } - } - - //item mouseover text - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - ComparableStack ammo = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))).ammo; - - list.add(I18nUtil.resolveKey(HbmCollection.ammo, mainConfig.ammoCap > 0 ? I18nUtil.resolveKey(HbmCollection.ammoMag, getMag(stack), mainConfig.ammoCap) : I18nUtil.resolveKey(HbmCollection.ammoBelt))); - - try { - list.add(I18nUtil.resolveKey(HbmCollection.ammoType, ammo.toStack().getDisplayName())); - - if(altConfig != null && altConfig.ammoCap == 0) { - ComparableStack ammo2 = BulletConfigSyncingUtil.pullConfig(altConfig.config.get(0)).ammo; - if(!ammo.isApplicable(ammo2)) { - list.add(I18nUtil.resolveKey(HbmCollection.altAmmoType, ammo2.toStack().getDisplayName())); - } - } - } - catch (Exception e) - { - e.printStackTrace(); - list.add("Error: " + e + " has occurred!"); - } - - addAdditionalInformation(stack, list); - } - - protected void addAdditionalInformation(ItemStack stack, List list) { - final BulletConfiguration bulletConfig = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); - list.add(I18nUtil.resolveKey(HbmCollection.gunDamage, bulletConfig.dmgMin, bulletConfig.dmgMax)); - if(bulletConfig.bulletsMax != 1) - list.add(I18nUtil.resolveKey(HbmCollection.gunPellets, bulletConfig.bulletsMin, bulletConfig.bulletsMax)); - int dura = Math.max(mainConfig.durability - getItemWear(stack), 0); - - list.add(I18nUtil.resolveKey(HbmCollection.durability, dura + " / " + mainConfig.durability)); - - list.add(""); - String unloc = "gun.name." + mainConfig.name; - String loc = I18nUtil.resolveKey(unloc); - list.add(I18nUtil.resolveKey(HbmCollection.gunName, unloc.equals(loc) ? mainConfig.name : loc)); - list.add(I18nUtil.resolveKey(HbmCollection.gunMaker, I18nUtil.resolveKey(mainConfig.manufacturer.getKey()))); - - if(!mainConfig.comment.isEmpty()) { - list.add(""); - for(String s : mainConfig.comment) - list.add(EnumChatFormatting.ITALIC + s); - } - if(GeneralConfig.enableExtendedLogging) { - list.add(""); - list.add("Type: " + getMagType(stack)); - list.add("Is Reloading: " + getIsReloading(stack)); - list.add("Reload Cycle: " + getReloadCycle(stack)); - list.add("RoF Cooldown: " + getDelay(stack)); - } - } - - //returns ammo item of belt-weapons - public static ComparableStack getBeltType(EntityPlayer player, ItemStack stack, boolean main) { - ItemGunBase gun = (ItemGunBase)stack.getItem(); - GunConfiguration guncfg = main ? gun.mainConfig : (gun.altConfig != null ? gun.altConfig : gun.mainConfig); - - for(Integer config : guncfg.config) { - - BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); - - if(InventoryUtil.doesPlayerHaveAStack(player, cfg.ammo, false, true)) { - return cfg.ammo; - } - } - - return BulletConfigSyncingUtil.pullConfig(guncfg.config.get(0)).ammo; - } - - //returns BCFG of belt-weapons - public static BulletConfiguration getBeltCfg(EntityPlayer player, ItemStack stack, boolean main) { - ItemGunBase gun = (ItemGunBase)stack.getItem(); - GunConfiguration guncfg = main ? gun.mainConfig : (gun.altConfig != null ? gun.altConfig : gun.mainConfig); - getBeltType(player, stack, main); - - for(int config : guncfg.config) { - - BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); - - if(InventoryUtil.doesPlayerHaveAStack(player, cfg.ammo, false, false)) { - return cfg; - } - } - - return BulletConfigSyncingUtil.pullConfig(guncfg.config.get(0)); - } - - //returns ammo capacity of belt-weapons for current ammo - public static int getBeltSize(EntityPlayer player, ComparableStack ammo) { - - int amount = 0; - - for(ItemStack stack : player.inventory.mainInventory) { - if(stack != null && ammo.matchesRecipe(stack, true)) { - amount += stack.stackSize; - } - } - - return amount; - } - - //reduces ammo count for mag and belt-based weapons, should be called AFTER firing - public void useUpAmmo(EntityPlayer player, ItemStack stack, boolean main) { - - if(!main && altConfig == null) - return; - - GunConfiguration config = mainConfig; - - if(!main) - config = altConfig; - - if(hasInfinity(stack, config)) return; - if(ArmorTrenchmaster.isTrenchMaster(player) && player.getRNG().nextInt(3) == 0) return; - if(ArmorTrenchmaster.hasAoS(player) && player.getRNG().nextInt(3) == 0) return; - - if(config.reloadType != GunConfiguration.RELOAD_NONE) { - setMag(stack, getMag(stack) - 1); - } else { - InventoryUtil.doesPlayerHaveAStack(player, getBeltType(player, stack, main), true, false); - } - } - - public boolean hasInfinity(ItemStack stack, GunConfiguration config) { - return config.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - } - - /// sets reload cycle to config defult /// - public static void resetReloadCycle(EntityPlayer player, ItemStack stack) { - writeNBT(stack, "reload", getReloadDuration(player, stack)); - } - - /// if reloading routine is active /// - public static void setIsReloading(ItemStack stack, boolean b) { - writeNBT(stack, "isReloading", b ? 1 : 0); - } - - public static boolean getIsReloading(ItemStack stack) { - return readNBT(stack, "isReloading") == 1; - } - - /// if left mouse button is down /// - public static void setIsMouseDown(ItemStack stack, boolean b) { - writeNBT(stack, "isMouseDown", b ? 1 : 0); - } - - public static boolean getIsMouseDown(ItemStack stack) { - return readNBT(stack, "isMouseDown") == 1; - } - - /// if alt mouse button is down /// - public static void setIsAltDown(ItemStack stack, boolean b) { - writeNBT(stack, "isAltDown", b ? 1 : 0); - } - - public static boolean getIsAltDown(ItemStack stack) { - return readNBT(stack, "isAltDown") == 1; - } - - /// RoF cooldown /// - public static void setDelay(ItemStack stack, int i) { - writeNBT(stack, "dlay", i); - } - - public static int getDelay(ItemStack stack) { - return readNBT(stack, "dlay"); - } - - /// Gun wear /// - public static void setItemWear(ItemStack stack, int i) { - writeNBT(stack, "wear", i); - } - - public static int getItemWear(ItemStack stack) { - return readNBT(stack, "wear"); - } - - /// R/W cycle animation timer /// - public static void setCycleAnim(ItemStack stack, int i) { - writeNBT(stack, "cycle", i); - } - - public static int getCycleAnim(ItemStack stack) { - return readNBT(stack, "cycle"); - } - - /// R/W reload animation timer /// - public static void setReloadCycle(ItemStack stack, int i) { - writeNBT(stack, "reload", i); - } - - public static int getReloadCycle(ItemStack stack) { - return readNBT(stack, "reload"); - } - - /// magazine capacity /// - public static void setMag(ItemStack stack, int i) { - writeNBT(stack, "magazine", i); - } - - public static int getMag(ItemStack stack) { - return readNBT(stack, "magazine"); - } - - /// magazine type (int specified by index in bullet config list) /// - public static void setMagType(ItemStack stack, int i) { - writeNBT(stack, "magazineType", i); - } - - public static int getMagType(ItemStack stack) { - return readNBT(stack, "magazineType"); - } - /// Sets how long a burst fires for, only useful for burst fire weapons /// - public static void setBurstDuration(ItemStack stack, int i) { - writeNBT(stack, "bduration", i); - } - - public static int getBurstDuration(ItemStack stack) { - return readNBT(stack, "bduration"); - } - - /// queued casing for ejection /// - public static void setCasing(ItemStack stack, BulletConfiguration bullet) { - writeNBT(stack, "casing", BulletConfigSyncingUtil.getKey(bullet)); - } - - public static BulletConfiguration getCasing(ItemStack stack) { - return BulletConfigSyncingUtil.pullConfig(readNBT(stack, "casing")); - } - - /// timer for ejecting casing /// - public static void setCasingTimer(ItemStack stack, int i) { - writeNBT(stack, "casingTimer", i); - } - - public static int getCasingTimer(ItemStack stack) { - return readNBT(stack, "casingTimer"); - } - - /// NBT utility /// - public static void writeNBT(ItemStack stack, String key, int value) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setInteger(key, value); - } - - public static int readNBT(ItemStack stack, String key) { - - if(!stack.hasTagCompound()) - return 0; - - return stack.stackTagCompound.getInteger(key); - } - - @Override - public Crosshair getCrosshair() { - return mainConfig.crosshair; - } - - @Override - @SideOnly(Side.CLIENT) - public void renderHUD(Pre event, ElementType type, EntityPlayer player, ItemStack stack) { - - ItemGunBase gun = ((ItemGunBase)stack.getItem()); - GunConfiguration gcfg = gun.mainConfig; - - if(type == ElementType.HOTBAR) { - int mag = ItemGunBase.getMagType(stack); - if(gun.mainConfig.config.size() == 0) return; - BulletConfiguration bcfg = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(mag < gun.mainConfig.config.size() ? mag : 0)); - - if(bcfg == null) { - return; - } - - ComparableStack ammo = bcfg.ammo; - int count = ItemGunBase.getMag(stack); - int max = gcfg.ammoCap; - boolean showammo = gcfg.showAmmo; - - if(gcfg.reloadType == GunConfiguration.RELOAD_NONE) { - ammo = ItemGunBase.getBeltType(player, stack, true); - count = ItemGunBase.getBeltSize(player, ammo); - max = -1; - } - - int dura = ItemGunBase.getItemWear(stack) * 50 / gcfg.durability; - - RenderScreenOverlay.renderAmmo(event.resolution, Minecraft.getMinecraft().ingameGUI, ammo.toStack(), count, max, dura, showammo); - - if(gun.altConfig != null && gun.altConfig.reloadType == GunConfiguration.RELOAD_NONE) { - ComparableStack oldAmmo = ammo; - ammo = ItemGunBase.getBeltType(player, stack, false); - - if(!ammo.isApplicable(oldAmmo)) { - count = ItemGunBase.getBeltSize(player, ammo); - RenderScreenOverlay.renderAmmoAlt(event.resolution, Minecraft.getMinecraft().ingameGUI, ammo.toStack(), count); - } - } - } - - if(type == ElementType.CROSSHAIRS && GeneralConfig.enableCrosshairs) { - - event.setCanceled(true); - - if(!(gcfg.hasSights && player.isSneaking())) - RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, ((IHoldableWeapon)player.getHeldItem().getItem()).getCrosshair()); - else - RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, Crosshair.NONE); - } - } - - @SideOnly(Side.CLIENT) - public BusAnimation getAnimation(ItemStack stack, AnimType type) { - GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; - if (!config.animationsLoaded && config.loadAnimations != null) { - config.loadAnimations.accept(null); - config.animationsLoaded = true; - } - return config.animations.get(type); - } - - @Override - public void onEquip(EntityPlayer player, ItemStack stack) { - if(!mainConfig.equipSound.isEmpty() && !player.worldObj.isRemote) { - player.worldObj.playSoundAtEntity(player, mainConfig.equipSound, 1, 1); - } - - if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.EQUIP.ordinal()), (EntityPlayerMP) player); - } - - protected static void queueCasing(Entity entity, CasingEjector ejector, BulletConfiguration bullet, ItemStack stack) { - - if(ejector == null || bullet == null || bullet.spentCasing == null) return; - - if(ejector.getDelay() <= 0) { - trySpawnCasing(entity, ejector, bullet, stack); - } else { - setCasing(stack, bullet); - setCasingTimer(stack, ejector.getDelay()); - } - } - - protected static void trySpawnCasing(Entity entity, CasingEjector ejector, BulletConfiguration bullet, ItemStack stack) { - - if(ejector == null) return; //abort if the gun can't eject bullets at all - if(bullet == null) return; //abort if there's no valid bullet cfg - if(bullet.spentCasing == null) return; //abort if the bullet is caseless - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "casing"); - data.setFloat("pitch", (float) Math.toRadians(entity.rotationPitch)); - data.setFloat("yaw", (float) Math.toRadians(entity.rotationYaw)); - data.setBoolean("crouched", entity.isSneaking()); - data.setString("name", bullet.spentCasing.getName()); - data.setInteger("ej", ejector.getId()); - PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 50)); - } - - public static int getReloadDuration(EntityPlayer player, ItemStack stack) { - GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; - int cycle = config.reloadDuration; - if (getMag(stack) == 0) cycle += config.emptyReloadAdditionalDuration; - if(ArmorTrenchmaster.isTrenchMaster(player)) return Math.max(1, cycle / 2); - return cycle; - } -} diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 95df82f43..bb5882cc8 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1680,6 +1680,8 @@ public class MainRegistry { ignoreMappings.add("hbm:item.singularity_micro"); ignoreMappings.add("hbm:item.gun_cryocannon"); ignoreMappings.add("hbm:item.gun_cryolator_ammo"); + ignoreMappings.add("hbm:item.canteen_fab"); + ignoreMappings.add("hbm:item.fabsols_vodka"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index d01ac85f5..d54588f8a 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -11,7 +11,6 @@ import com.hbm.entity.train.EntityRailCarRidable; import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; -import com.hbm.handler.GunConfiguration; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HazmatRegistry; import com.hbm.handler.HbmKeybinds; @@ -31,14 +30,12 @@ import com.hbm.items.armor.*; import com.hbm.items.machine.ItemDepletedFuel; import com.hbm.items.machine.ItemFluidDuct; import com.hbm.items.machine.ItemRBMKPellet; -import com.hbm.items.weapon.ItemGunBase; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.AuxButtonPacket; -import com.hbm.packet.toserver.GunButtonPacket; import com.hbm.packet.toserver.KeybindPacket; import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations.Animation; @@ -348,15 +345,6 @@ public class ModEventHandlerClient { /// HANDLE SCOPE OVERLAY /// ItemStack held = player.getHeldItem(); - if(player.isSneaking() && held != null && held.getItem() instanceof ItemGunBase && event.type == event.type.HOTBAR) { - GunConfiguration config = ((ItemGunBase) held.getItem()).mainConfig; - - if(config.scopeTexture != null) { - ScaledResolution resolution = event.resolution; - RenderScreenOverlay.renderScope(resolution, config.scopeTexture); - } - } - if(held != null && held.getItem() instanceof ItemGunBaseNT && ItemGunBaseNT.aimingProgress == ItemGunBaseNT.prevAimingProgress && ItemGunBaseNT.aimingProgress == 1F && event.type == event.type.HOTBAR) { ItemGunBaseNT gun = (ItemGunBaseNT) held.getItem(); GunConfig cfg = gun.getConfig(held, 0); @@ -590,36 +578,6 @@ public class ModEventHandlerClient { } } - @SubscribeEvent - public void clickHandler(MouseEvent event) { - - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - if(player.getHeldItem() != null) { - - Item held = player.getHeldItem().getItem(); - - if(held instanceof ItemGunBase) { - - if(event.button == 0) - event.setCanceled(true); - - ItemGunBase item = (ItemGunBase)player.getHeldItem().getItem(); - - if(event.button == 0 && !item.m1 && !item.m2) { - item.m1 = true; - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 0)); - item.startActionClient(player.getHeldItem(), player.worldObj, player, true); - } - else if(event.button == 1 && !item.m2 && !item.m1) { - item.m2 = true; - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 1)); - item.startActionClient(player.getHeldItem(), player.worldObj, player, false); - } - } - } - } - @Spaghetti("please get this shit out of my face") @SubscribeEvent public void onPlaySound(PlaySoundEvent17 e) { diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index b749cfdd3..ab2181c94 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -35,8 +35,6 @@ public class PacketDispatcher { wrapper.registerMessage(ExtPropPacket.Handler.class, ExtPropPacket.class, i++, Side.CLIENT); //Packet for force fields wrapper.registerMessage(TEFFPacket.Handler.class, TEFFPacket.class, i++, Side.CLIENT); - //Sends button information for ItemGunBase - wrapper.registerMessage(GunButtonPacket.Handler.class, GunButtonPacket.class, i++, Side.SERVER); //Signals server to buy offer from bobmazon wrapper.registerMessage(ItemBobmazonPacket.Handler.class, ItemBobmazonPacket.class, i++, Side.SERVER); //Packet to send missile multipart information to TEs diff --git a/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java b/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java index d1d23e0b3..f8fcf3495 100644 --- a/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java +++ b/src/main/java/com/hbm/packet/toclient/GunAnimationPacket.java @@ -4,7 +4,6 @@ import java.util.function.BiConsumer; import java.util.function.BiFunction; import com.hbm.items.armor.ArmorTrenchmaster; -import com.hbm.items.weapon.ItemGunBase; import com.hbm.items.weapon.sedna.GunConfig; import com.hbm.items.weapon.sedna.ItemGunBaseNT; import com.hbm.items.weapon.sedna.Receiver; @@ -76,40 +75,12 @@ public class GunAnimationPacket implements IMessage { ItemStack stack = player.getHeldItem(); int slot = player.inventory.currentItem; - if(stack == null) - return null; + if(stack == null) return null; if(stack.getItem() instanceof ItemGunBaseNT) { handleSedna(player, stack, slot, AnimType.values()[m.type], m.receiverIndex, m.gunIndex); } - if(!(stack.getItem() instanceof ItemGunBase)) - return null; - - if(m.type < 0 || m.type >= AnimType.values().length) - return null; - - AnimType type = AnimType.values()[m.type]; - ItemGunBase base = (ItemGunBase) stack.getItem(); - - BusAnimation animation = base.getAnimation(stack, type); - - // Fallback to regular reload if no empty reload animation - if(animation == null && type == AnimType.RELOAD_EMPTY) { - animation = base.getAnimation(stack, AnimType.RELOAD); - } - - // Fallback to regular CYCLE if no ALT_CYCLE (or CYCLE_EMPTY) exists - if(animation == null && (type == AnimType.ALT_CYCLE || type == AnimType.CYCLE_EMPTY)) { - animation = base.getAnimation(stack, AnimType.CYCLE); - } - - if(animation != null) { - boolean isReloadAnimation = type == AnimType.RELOAD || type == AnimType.RELOAD_CYCLE || type == AnimType.RELOAD_EMPTY; - if(isReloadAnimation && ArmorTrenchmaster.isTrenchMaster(player)) animation.setTimeMult(0.5D); - HbmAnimations.hotbar[slot][0] = new Animation(stack.getItem().getUnlocalizedName(), System.currentTimeMillis(), animation, type, isReloadAnimation && base.mainConfig.reloadAnimationsSequential); - } - } catch(Exception x) { } return null; diff --git a/src/main/java/com/hbm/packet/toserver/GunButtonPacket.java b/src/main/java/com/hbm/packet/toserver/GunButtonPacket.java deleted file mode 100644 index 0dc5f0e99..000000000 --- a/src/main/java/com/hbm/packet/toserver/GunButtonPacket.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.packet.toserver; - -import com.hbm.items.weapon.ItemGunBase; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; - -public class GunButtonPacket implements IMessage { - - //true or false, whether or not the key is pressed - boolean state; - //0: [M1] - //1: [M2] - //2: [R] - byte button; - - public GunButtonPacket() { } - - public GunButtonPacket(boolean m1, byte b) { - state = m1; - button = b; - } - - @Override - public void fromBytes(ByteBuf buf) { - state = buf.readBoolean(); - button = buf.readByte(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeBoolean(state); - buf.writeByte(button); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(GunButtonPacket m, MessageContext ctx) { - - if(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) - return null; - - EntityPlayer p = ctx.getServerHandler().playerEntity; - - if(p.getHeldItem() != null && p.getHeldItem().getItem() instanceof ItemGunBase) { - - ItemGunBase item = (ItemGunBase)p.getHeldItem().getItem(); - - switch(m.button) { - case 0: ItemGunBase.setIsMouseDown(p.getHeldItem(), m.state); - if(m.state) - item.startAction(p.getHeldItem(), p.worldObj, p, true); - else - item.endAction(p.getHeldItem(), p.worldObj, p, true); - break; - - case 1: ItemGunBase.setIsAltDown(p.getHeldItem(), m.state); - if(m.state) - item.startAction(p.getHeldItem(), p.worldObj, p, false); - else - item.endAction(p.getHeldItem(), p.worldObj, p, false); - break; - - case 2: - if(item.canReload(p.getHeldItem(), p.worldObj, p)) { - item.startReloadAction(p.getHeldItem(), p.worldObj, p); - } - break; - } - } - - return null; - } - } -} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 636c57c0f..9b657d0d5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -8,7 +8,7 @@ achievement.bossMaskman.desc=Kloppe den dicken Buben. achievement.bossMaskman=6 Monate verpflichtender Dienst und alles was ich davon habe ist dieses doofe T-Shirt achievement.bossMeltdown.desc=Mehr schlecht als recht, aber was will man machen. achievement.bossMeltdown=3,6 Röntgen -achievement.bossWorm.desc=Der Fabstaff. Mein Arsch. Jetzt fang an zu rechnen. +achievement.bossWorm.desc=Nur ein kleiner Metallwurm. achievement.bossWorm=Disassembling Balls-O-Tron achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the blockship? achievement.bossUFO=Ayy Lmao @@ -1501,8 +1501,6 @@ item.canned_tomato.name=Konservendose (Tomatensuppe) item.canned_tube.name=Tube (Astronautenessen) item.canned_tuna.name=Konservendose (Tunfisch) item.canned_yogurt.name=Konservendose (Jogurt) -item.canteen_13.name=Vault 13 Kantine -item.canteen_fab.name=Fabulöser Wodka item.canteen_vodka.name=Stylischer Flachmann item.cap_aluminium.name=Aluminiumdeckel item.cap_fritz.name=Fritz-Kola Kronkorken @@ -1919,7 +1917,6 @@ item.euphemium_kit.name=Euphemium Kit item.euphemium_legs.name=Euphemiumbeinschutz item.euphemium_plate.name=Euphemiumbrustpanzer item.euphemium_stopper.name=Stopper -item.fabsols_vodka.name=Fabsols Wodka item.factory_core_advanced.name=Fortgeschrittener Fabrikenergiecluster item.factory_core_titanium.name=Einfacher Fabrikenergiecluster item.fallout.name=Fallouthäufchen @@ -2166,7 +2163,7 @@ item.hazmat_plate_red.name=Verbesserte Strahlenschutzbrustplatte item.hazmat_red_kit.name=Lvl 2 Strahlenschutz-Kit item.heart_booster.name=Herzbooster item.heart_container.name=Herzcontainer -item.heart_fab.name=Fab Herz +item.heart_fab.name=Herz der Dunkelheit item.heart_piece.name=Herzteil item.heavy_component.name=Schwere %skomponente item.hev_battery.name=Anzugs-Batterie diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d234ba27d..8b3529fe0 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -16,7 +16,7 @@ achievement.bossMaskman.desc=Bonk the big boy. achievement.bossMaskman=6 Months of mandatory service and all I got was a lousy t-shirt achievement.bossMeltdown.desc=More terrible than great, but I take what I can get. achievement.bossMeltdown=3.6 Roentgen -achievement.bossWorm.desc=The Fabstaff. My ass. You do the math. +achievement.bossWorm.desc=Just a small metal worm. achievement.bossWorm=Disassembling Balls-O-Tron achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the blockship? achievement.bossUFO=Ayy Lmao @@ -2275,8 +2275,6 @@ item.canned_tuna.name=Canned Tuna item.canned_tuna.desc=I can't tell if that's actually tuna or dried cement. item.canned_yogurt.name=Canned Yogurt item.canned_yogurt.desc=Probably spoiled, but whatever. -item.canteen_13.name=Vault 13 Canteen -item.canteen_fab.name=Fabulous Vodka item.canteen_vodka.name=Stylish Flask item.cap_fritz.name=Fritz Cola Bottle Cap item.cap_korl.name=Korl Bottle Cap @@ -2720,7 +2718,6 @@ 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 item.fallout.name=Pile of Fallout @@ -2978,7 +2975,7 @@ item.hazmat_plate_red.name=Advanced Hazmat Chestplate item.hazmat_red_kit.name=Advanced Hazmat Kit item.heart_booster.name=Heart Booster item.heart_container.name=Heart Container -item.heart_fab.name=Fab Heart +item.heart_fab.name=Heart of Darkness item.heart_piece.name=Heart Piece item.heavy_component.name=Heavy %s Component item.hev_battery.name=Suit Battery diff --git a/src/main/resources/assets/hbm/textures/items/canteen_fab.png b/src/main/resources/assets/hbm/textures/items/canteen_fab.png deleted file mode 100644 index 8ba9c5e66b5a07fb11e664855d08674bbcdc0062..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vff~!U~hF#r!4HzfW&G*yXk`kip{5JH-?Kt#`0~@lijY zHG#{Wk@xD!%~DGac^(kHD|hMIfrsB?Tlh3rsqZgjHD)v@`|-`^F3?E~p00i_>zopr E0E9eFE&u=k diff --git a/src/main/resources/assets/hbm/textures/items/fabsols_vodka.png b/src/main/resources/assets/hbm/textures/items/fabsols_vodka.png deleted file mode 100644 index 133abcb1cd9ffc09bd9f541ae6ff9c9c45859725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf`j66V~cFyX_ZU)H-Pn(RZ*9#<@I!!ZHZzwyl)EI^ktc)I$ztaD0e0szr7V&eb+ diff --git a/src/main/resources/assets/hbm/textures/items/heart_fab.png b/src/main/resources/assets/hbm/textures/items/heart_fab.png index f9a85d90ea3b670685cc9cf1f0dc819f1491bf73..b028cc543a6846ba0025ff75c97095f9625a236c 100644 GIT binary patch delta 255 zcmVX$G=JhrL_t(Ijm3~LY6CG4MW2jg*b^kUO=~dx)`xKA0|fRAIgKC( zNafy*3m0hy0=~pHZVgVcDY7f1StX?NZ=})u|3(blTOlvnw(ZAzjPYN+kQ>Y_1tcY- z?*W)u0GNA&gY=Rxv-B=$Z1+HzJ1SRRh5|PF#LPI^8d$Smba))JEQS<-T>C}G>-mZ8 z?J?EI<^n7W-(&|T`eld0A}9Q@Rp|f@YilNc~5{CV~~_DsR#r4GQ$Mm zf8oQm=>=(&q<%Pgct59bZF&`uLvq!^zXAq%$Y0(&>KoVXY+|WZi_-uA002ovPDHLk FV1kglceDTi delta 248 zcmVw@S8)yVhJcM!6 Date: Mon, 26 May 2025 10:46:22 +0200 Subject: [PATCH 091/181] drooling baby safeguard --- .../java/com/hbm/blocks/ITooltipProvider.java | 3 +- .../hbm/blocks/generic/BlockBedrockOreTE.java | 2 +- .../com/hbm/blocks/generic/BlockCluster.java | 2 +- .../com/hbm/blocks/generic/BlockDepth.java | 2 +- .../com/hbm/blocks/generic/BlockGrate.java | 2 +- .../blocks/generic/BlockToolConversion.java | 2 +- .../hbm/blocks/generic/BlockWandJigsaw.java | 2 +- .../com/hbm/blocks/generic/BlockWandLoot.java | 2 +- .../hbm/blocks/machine/BlockHadronCoil.java | 2 +- .../hbm/blocks/machine/BlockHadronCooler.java | 2 +- .../hbm/blocks/machine/BlockHadronPower.java | 2 +- .../hbm/blocks/machine/DeuteriumTower.java | 2 +- .../blocks/machine/FoundryCastingBase.java | 3 +- .../com/hbm/blocks/machine/FoundryOutlet.java | 2 +- .../hbm/blocks/machine/HeaterElectric.java | 2 +- .../com/hbm/blocks/machine/HeaterHeatex.java | 2 +- .../hbm/blocks/machine/HeaterOilburner.java | 2 +- .../hbm/blocks/machine/MachineAutosaw.java | 2 +- .../hbm/blocks/machine/MachineBattery.java | 2 +- .../hbm/blocks/machine/MachineCapacitor.java | 2 +- .../machine/MachineCatalyticCracker.java | 3 +- .../hbm/blocks/machine/MachineChungus.java | 2 +- .../hbm/blocks/machine/MachineCondenser.java | 2 +- .../machine/MachineCondenserPowered.java | 3 +- .../blocks/machine/MachineConveyorPress.java | 3 +- .../machine/MachineDeuteriumExtractor.java | 3 +- .../com/hbm/blocks/machine/MachineDrain.java | 2 +- .../com/hbm/blocks/machine/MachineFENSU.java | 2 +- .../blocks/machine/MachineFractionTower.java | 3 +- .../hbm/blocks/machine/MachineHeatBoiler.java | 2 +- .../machine/MachineHeatBoilerIndustrial.java | 3 +- .../hbm/blocks/machine/MachineHephaestus.java | 2 +- .../blocks/machine/MachineICFController.java | 3 +- .../hbm/blocks/machine/MachineICFPress.java | 2 +- .../com/hbm/blocks/machine/MachineIntake.java | 2 +- .../com/hbm/blocks/machine/MachinePump.java | 2 +- .../hbm/blocks/machine/MachineSawmill.java | 2 +- .../blocks/machine/MachineSolarBoiler.java | 3 +- .../blocks/machine/MachineSteamEngine.java | 3 +- .../hbm/blocks/machine/MachineStirling.java | 2 +- .../blocks/machine/MachineStrandCaster.java | 3 +- .../hbm/blocks/machine/MachineTeleporter.java | 2 +- .../hbm/blocks/machine/MachineTowerLarge.java | 2 +- .../hbm/blocks/machine/MachineTowerSmall.java | 2 +- .../hbm/blocks/machine/MachineTurbineGas.java | 2 +- .../hbm/blocks/network/BlockCableGauge.java | 3 +- .../com/hbm/blocks/network/CableDiode.java | 3 +- .../com/hbm/blocks/network/CraneSplitter.java | 2 +- .../com/hbm/blocks/network/DroneCrate.java | 3 +- .../com/hbm/blocks/network/DroneWaypoint.java | 3 +- .../com/hbm/blocks/network/FluidDuctBox.java | 3 +- .../blocks/network/FluidDuctBoxExhaust.java | 3 +- .../hbm/blocks/network/FluidDuctGauge.java | 3 +- .../blocks/network/FluidDuctPaintable.java | 3 +- .../hbm/blocks/network/FluidDuctStandard.java | 3 +- .../com/hbm/blocks/network/FluidPump.java | 2 +- .../com/hbm/blocks/network/FluidSwitch.java | 3 +- .../com/hbm/blocks/network/FluidValve.java | 3 +- .../blocks/network/RadioTorchController.java | 2 +- .../hbm/blocks/network/RadioTorchCounter.java | 3 +- .../hbm/blocks/network/RadioTorchLogic.java | 3 +- .../hbm/blocks/network/RadioTorchRWBase.java | 3 +- .../hbm/blocks/network/RadioTorchReader.java | 2 +- .../com/hbm/entity/train/TrainCargoTram.java | 6 +-- .../com/hbm/handler/ability/IBaseAbility.java | 5 +- .../hbm/handler/nei/RotaryFurnaceHandler.java | 2 +- .../hbm/handler/nei/SILEXRecipeHandler.java | 2 +- .../hbm/hazard/type/HazardTypeAsbestos.java | 2 +- .../hbm/hazard/type/HazardTypeBlinding.java | 2 +- .../com/hbm/hazard/type/HazardTypeCoal.java | 2 +- .../hbm/hazard/type/HazardTypeDigamma.java | 2 +- .../hbm/hazard/type/HazardTypeExplosive.java | 2 +- .../com/hbm/hazard/type/HazardTypeHot.java | 2 +- .../hazard/type/HazardTypeHydroactive.java | 2 +- .../hbm/hazard/type/HazardTypeRadiation.java | 2 +- .../com/hbm/interfaces/ICustomWarhead.java | 2 +- .../com/hbm/inventory/fluid/FluidType.java | 2 +- .../hbm/inventory/fluid/trait/FT_Toxin.java | 2 +- .../com/hbm/inventory/gui/GUIArmorTable.java | 2 +- .../com/hbm/inventory/gui/GUIBookLore.java | 2 +- .../hbm/inventory/gui/GUICounterTorch.java | 2 +- .../com/hbm/inventory/gui/GUICrucible.java | 2 +- .../hbm/inventory/gui/GUICrystallizer.java | 2 +- .../inventory/gui/GUIElectrolyserMetal.java | 2 +- .../java/com/hbm/inventory/gui/GUIHadron.java | 2 +- .../hbm/inventory/gui/GUILaunchPadLarge.java | 2 +- .../gui/GUIMachineArcFurnaceLarge.java | 2 +- .../inventory/gui/GUIMachineAssembler.java | 2 +- .../hbm/inventory/gui/GUIMachineBattery.java | 2 +- .../inventory/gui/GUIMachineChemplant.java | 2 +- .../inventory/gui/GUIMachineCyclotron.java | 2 +- .../inventory/gui/GUIMachineDiFurnaceRTG.java | 2 +- .../gui/GUIMachineElectricFurnace.java | 2 +- .../inventory/gui/GUIMachineExcavator.java | 2 +- .../hbm/inventory/gui/GUIMachineGasCent.java | 2 +- .../hbm/inventory/gui/GUIMachineGasFlare.java | 2 +- .../hbm/inventory/gui/GUIMachineOilWell.java | 2 +- .../com/hbm/inventory/gui/GUIMachineRTG.java | 2 +- .../hbm/inventory/gui/GUIMachineRadarNT.java | 2 +- .../inventory/gui/GUIMachineRadarNTSlots.java | 2 +- .../gui/GUIMachineRotaryFurnace.java | 2 +- .../inventory/gui/GUIMachineStrandCaster.java | 3 +- .../inventory/gui/GUIMachineTurbineGas.java | 2 +- .../com/hbm/inventory/gui/GUINukeBoy.java | 2 +- .../com/hbm/inventory/gui/GUINukeGadget.java | 2 +- .../com/hbm/inventory/gui/GUINukeMan.java | 2 +- .../com/hbm/inventory/gui/GUINukeMike.java | 2 +- .../com/hbm/inventory/gui/GUINukeTsar.java | 2 +- .../com/hbm/inventory/gui/GUIPASource.java | 2 +- .../com/hbm/inventory/gui/GUIRBMKConsole.java | 2 +- .../com/hbm/inventory/gui/GUIRadioRec.java | 2 +- .../com/hbm/inventory/gui/GUIRadiolysis.java | 2 +- .../hbm/inventory/gui/GUIReactorZirnox.java | 2 +- .../java/com/hbm/inventory/gui/GUISILEX.java | 2 +- .../com/hbm/inventory/gui/GUIScreenGuide.java | 2 +- .../hbm/inventory/gui/GUIScreenHolotape.java | 2 +- .../inventory/gui/GUIScreenRadioTorch.java | 2 +- .../gui/GUIScreenRadioTorchController.java | 2 +- .../gui/GUIScreenRadioTorchLogic.java | 2 +- .../gui/GUIScreenRadioTorchReader.java | 2 +- .../hbm/inventory/gui/GUIScreenSnowglobe.java | 2 +- .../com/hbm/inventory/gui/GUITurretArty.java | 2 +- .../com/hbm/inventory/gui/GUITurretBase.java | 2 +- .../hbm/inventory/gui/GUITurretHIMARS.java | 2 +- .../hbm/inventory/gui/GuiInfoContainer.java | 2 +- .../java/com/hbm/inventory/material/Mats.java | 2 +- .../recipes/GasCentrifugeRecipes.java | 2 +- .../java/com/hbm/items/ItemCustomLore.java | 2 +- .../com/hbm/items/armor/ArmorBJJetpack.java | 2 +- .../java/com/hbm/items/armor/ArmorDNT.java | 5 +- .../java/com/hbm/items/armor/ArmorFSB.java | 5 +- .../com/hbm/items/armor/ArmorGasMask.java | 2 +- .../hbm/items/armor/ArmorTrenchmaster.java | 2 +- .../com/hbm/items/armor/ItemArmorMod.java | 2 +- .../com/hbm/items/armor/ItemModGasmask.java | 2 +- .../hbm/items/armor/ItemModNightVision.java | 7 +-- .../java/com/hbm/items/food/ItemConserve.java | 2 +- .../java/com/hbm/items/food/ItemPill.java | 2 +- .../items/machine/ItemAssemblyTemplate.java | 2 +- .../com/hbm/items/machine/ItemCassette.java | 2 +- .../items/machine/ItemChemistryTemplate.java | 2 +- .../items/machine/ItemCrucibleTemplate.java | 2 +- .../hbm/items/machine/ItemDepletedFuel.java | 2 +- .../com/hbm/items/machine/ItemFELCrystal.java | 2 +- .../hbm/items/machine/ItemFluidIDMulti.java | 2 +- .../items/machine/ItemFluidIdentifier.java | 2 +- .../com/hbm/items/machine/ItemICFPellet.java | 2 +- .../java/com/hbm/items/machine/ItemMold.java | 2 +- .../com/hbm/items/machine/ItemPileRod.java | 2 +- .../com/hbm/items/machine/ItemRBMKRod.java | 2 +- .../com/hbm/items/machine/ItemRTGPellet.java | 2 +- .../com/hbm/items/machine/ItemScraps.java | 2 +- .../hbm/items/machine/ItemTemplateFolder.java | 2 +- .../com/hbm/items/machine/ItemZirnoxRod.java | 2 +- .../hbm/items/special/ItemBedrockOreNew.java | 2 +- .../com/hbm/items/special/ItemBookLore.java | 3 +- .../com/hbm/items/special/ItemDemonCore.java | 2 +- .../com/hbm/items/special/ItemDigamma.java | 2 +- .../java/com/hbm/items/special/ItemDrop.java | 2 +- .../com/hbm/items/tool/ItemConveyorWand.java | 2 +- .../java/com/hbm/items/tool/ItemDrone.java | 2 +- .../com/hbm/items/tool/ItemGuideBook.java | 2 +- .../com/hbm/items/tool/ItemMirrorTool.java | 2 +- .../com/hbm/items/tool/ItemOilDetector.java | 9 ++-- .../java/com/hbm/items/tool/ItemPipette.java | 2 +- .../java/com/hbm/items/tool/ItemRBMKTool.java | 2 +- .../com/hbm/items/tool/ItemSettingsTool.java | 2 +- .../java/com/hbm/items/weapon/ItemAmmo.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 6 +++ .../com/hbm/main/ModEventHandlerClient.java | 1 + src/main/java/com/hbm/main/ServerProxy.java | 7 +++ .../render/tileentity/RenderRBMKConsole.java | 2 +- .../com/hbm/tileentity/IRadioisotopeFuel.java | 2 +- .../java/com/hbm/tileentity/IRepairable.java | 2 +- .../hbm/tileentity/IUpgradeInfoProvider.java | 2 +- .../machine/TileEntityElectrolyser.java | 2 +- .../machine/TileEntityFurnaceIron.java | 2 +- .../TileEntityMachineArcFurnaceLarge.java | 2 +- .../machine/TileEntityMachineArcWelder.java | 2 +- .../machine/TileEntityMachineAssembler.java | 2 +- .../machine/TileEntityMachineAssemfac.java | 2 +- .../machine/TileEntityMachineCentrifuge.java | 2 +- .../machine/TileEntityMachineChemfac.java | 2 +- .../machine/TileEntityMachineChemplant.java | 2 +- .../TileEntityMachineCompressorBase.java | 2 +- .../TileEntityMachineCrystallizer.java | 2 +- .../machine/TileEntityMachineCyclotron.java | 2 +- .../machine/TileEntityMachineEPress.java | 2 +- .../TileEntityMachineElectricFurnace.java | 2 +- .../machine/TileEntityMachineExcavator.java | 2 +- .../TileEntityMachineExposureChamber.java | 2 +- .../machine/TileEntityMachineMiningLaser.java | 2 +- .../machine/TileEntityMachineMixer.java | 2 +- .../machine/TileEntityMachineOreSlopper.java | 2 +- .../TileEntityMachineSolderingStation.java | 2 +- .../machine/TileEntityMachineTurbofan.java | 2 +- .../oil/TileEntityMachineFrackingTower.java | 2 +- .../oil/TileEntityMachineGasFlare.java | 2 +- .../oil/TileEntityMachineLiquefactor.java | 2 +- .../machine/oil/TileEntityMachineOilWell.java | 2 +- .../oil/TileEntityMachinePumpjack.java | 2 +- .../oil/TileEntityMachinePyroOven.java | 2 +- .../oil/TileEntityMachineSolidifier.java | 2 +- .../machine/rbmk/TileEntityRBMKBase.java | 3 +- .../machine/rbmk/TileEntityRBMKConsole.java | 2 +- .../turret/TileEntityTurretMaxwell.java | 2 +- .../com/hbm/util/DamageResistanceHandler.java | 1 + .../{I18nUtil.java => i18n/I18nClient.java} | 49 ++++++------------ .../java/com/hbm/util/i18n/I18nServer.java | 33 ++++++++++++ src/main/java/com/hbm/util/i18n/I18nUtil.java | 50 +++++++++++++++++++ .../java/com/hbm/util/i18n/ITranslate.java | 34 +++++++++++++ .../java/com/hbm/wiaj/GuiWorldInAJar.java | 2 +- .../com/hbm/wiaj/actors/ActorFancyPanel.java | 2 +- .../hbm/wiaj/cannery/CanneryCentrifuge.java | 2 +- .../com/hbm/wiaj/cannery/CanneryCrucible.java | 2 +- .../com/hbm/wiaj/cannery/CanneryFEnSU.java | 2 +- .../com/hbm/wiaj/cannery/CanneryFirebox.java | 2 +- .../wiaj/cannery/CanneryFoundryChannel.java | 2 +- .../com/hbm/wiaj/cannery/CanneryHadron.java | 2 +- .../com/hbm/wiaj/cannery/CannerySILEX.java | 2 +- .../com/hbm/wiaj/cannery/CannerySchottky.java | 2 +- .../com/hbm/wiaj/cannery/CanneryStirling.java | 2 +- .../com/hbm/wiaj/cannery/CanneryWillow.java | 2 +- 223 files changed, 402 insertions(+), 263 deletions(-) rename src/main/java/com/hbm/util/{I18nUtil.java => i18n/I18nClient.java} (59%) create mode 100644 src/main/java/com/hbm/util/i18n/I18nServer.java create mode 100644 src/main/java/com/hbm/util/i18n/I18nUtil.java create mode 100644 src/main/java/com/hbm/util/i18n/ITranslate.java diff --git a/src/main/java/com/hbm/blocks/ITooltipProvider.java b/src/main/java/com/hbm/blocks/ITooltipProvider.java index 5008b1834..829de9f15 100644 --- a/src/main/java/com/hbm/blocks/ITooltipProvider.java +++ b/src/main/java/com/hbm/blocks/ITooltipProvider.java @@ -1,6 +1,5 @@ package com.hbm.blocks; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; @@ -8,6 +7,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import org.lwjgl.input.Keyboard; +import com.hbm.util.i18n.I18nUtil; + import java.util.List; public interface ITooltipProvider { diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index b683fc018..2e8dc7b9b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -16,7 +16,7 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.render.block.RenderBlockMultipass; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.fluidmk2.IFillableItem; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/generic/BlockCluster.java b/src/main/java/com/hbm/blocks/generic/BlockCluster.java index 03ed4027e..ab7ae9dff 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCluster.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCluster.java @@ -6,7 +6,7 @@ import java.util.Random; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.block.IDrillInteraction; import api.hbm.block.IMiningDrill; diff --git a/src/main/java/com/hbm/blocks/generic/BlockDepth.java b/src/main/java/com/hbm/blocks/generic/BlockDepth.java index e0e2d511c..3a5261831 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDepth.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDepth.java @@ -3,7 +3,7 @@ package com.hbm.blocks.generic; import java.util.List; import com.hbm.blocks.ITooltipProvider; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.item.IDepthRockTool; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/generic/BlockGrate.java b/src/main/java/com/hbm/blocks/generic/BlockGrate.java index 892f9f929..4d4997f13 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGrate.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java index 46bb571e5..686bd9655 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java +++ b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java @@ -13,9 +13,9 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.MetaBlock; import com.hbm.inventory.RecipesCommon.OreDictStack; -import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.Tuple.Pair; +import com.hbm.util.i18n.I18nUtil; import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/generic/BlockWandJigsaw.java b/src/main/java/com/hbm/blocks/generic/BlockWandJigsaw.java index 365c42e56..63076df31 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockWandJigsaw.java +++ b/src/main/java/com/hbm/blocks/generic/BlockWandJigsaw.java @@ -17,7 +17,7 @@ import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BufferUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.world.gen.INBTTransformable; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; diff --git a/src/main/java/com/hbm/blocks/generic/BlockWandLoot.java b/src/main/java/com/hbm/blocks/generic/BlockWandLoot.java index 48bdfaf69..bf457843d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockWandLoot.java +++ b/src/main/java/com/hbm/blocks/generic/BlockWandLoot.java @@ -15,8 +15,8 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BufferUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.LootGenerator; +import com.hbm.util.i18n.I18nUtil; import com.hbm.world.gen.INBTTileEntityTransformable; import com.mojang.authlib.GameProfile; diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java index 1cb88488a..3e099e600 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java @@ -7,7 +7,7 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.render.block.ct.CT; import com.hbm.render.block.ct.CTStitchReceiver; import com.hbm.render.block.ct.IBlockCT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java index a242772e2..8c7e99373 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java @@ -7,7 +7,7 @@ import org.lwjgl.input.Keyboard; import com.hbm.blocks.BlockMulti; import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronPower.java b/src/main/java/com/hbm/blocks/machine/BlockHadronPower.java index 66da679ba..6be4757cd 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronPower.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronPower.java @@ -6,7 +6,7 @@ import java.util.List; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityHadronPower; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java index 85dc20517..1e08908ad 100644 --- a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java +++ b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java @@ -8,7 +8,7 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityDeuteriumTower; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java b/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java index 380d4f4bf..fe57bc788 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java @@ -9,7 +9,8 @@ import com.hbm.items.machine.ItemMold; import com.hbm.items.machine.ItemMold.Mold; import com.hbm.items.machine.ItemScraps; import com.hbm.tileentity.machine.TileEntityFoundryCastingBase; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java index dfa51cf3b..bbf18772b 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java @@ -9,7 +9,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemScraps; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityFoundryOutlet; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.block.ICrucibleAcceptor; import api.hbm.block.IToolable; diff --git a/src/main/java/com/hbm/blocks/machine/HeaterElectric.java b/src/main/java/com/hbm/blocks/machine/HeaterElectric.java index c66fad6b7..94d0cbb21 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterElectric.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterElectric.java @@ -10,7 +10,7 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityHeaterElectric; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java index 1eb152a67..66faae3cf 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java @@ -12,7 +12,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityHeaterHeatex; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java index 0ddca5005..3c30f5d21 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java @@ -11,7 +11,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityHeaterOilburner; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.block.IToolable; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java index 8e38ba3e7..f8fb34a2c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java @@ -8,7 +8,7 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineAutosaw; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachineBattery.java b/src/main/java/com/hbm/blocks/machine/MachineBattery.java index 7f4616a5e..16afccccf 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBattery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBattery.java @@ -12,7 +12,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index 8088d4d92..22a60d7b1 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -13,8 +13,8 @@ import com.hbm.lib.RefStrings; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.energymk2.IEnergyReceiverMK2; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java index e1fed51f3..9b7910686 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java @@ -7,7 +7,8 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticCracker; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/blocks/machine/MachineChungus.java b/src/main/java/com/hbm/blocks/machine/MachineChungus.java index aa05fcfcf..16bf80634 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChungus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChungus.java @@ -15,7 +15,7 @@ import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityChungus; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java index 8bbe97b99..9c5ced6ea 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityCondenser; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java index 75aba9c53..dd005163d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java @@ -5,7 +5,8 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityCondenserPowered; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; diff --git a/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java b/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java index 396ee0702..ac19655bf 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java +++ b/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java @@ -8,7 +8,8 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.items.machine.ItemStamp; import com.hbm.tileentity.machine.TileEntityConveyorPress; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.block.material.Material; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java index ba472e1d2..a01f727c0 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java @@ -4,7 +4,8 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityDeuteriumExtractor; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; diff --git a/src/main/java/com/hbm/blocks/machine/MachineDrain.java b/src/main/java/com/hbm/blocks/machine/MachineDrain.java index 46aaf943e..64d7c3f96 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDrain.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDrain.java @@ -8,7 +8,7 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineDrain; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/blocks/machine/MachineFENSU.java b/src/main/java/com/hbm/blocks/machine/MachineFENSU.java index e9d8facff..7237d52f5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFENSU.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFENSU.java @@ -10,7 +10,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.tileentity.machine.storage.TileEntityMachineFENSU; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java index 1e1fc1e33..b1b7dfd77 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java @@ -6,7 +6,8 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineFractionTower; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java index 66c2396d0..0994a696b 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java @@ -15,7 +15,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityHeatBoiler; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java index a2c411072..15929f0d8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java @@ -9,7 +9,8 @@ import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityHeatBoilerIndustrial; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java index b6a628c78..bad4a611f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java @@ -11,7 +11,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineHephaestus; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFController.java b/src/main/java/com/hbm/blocks/machine/MachineICFController.java index 5317cd310..f2b16f3f6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICFController.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICFController.java @@ -9,8 +9,9 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.machine.TileEntityICFController; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFPress.java b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java index 0acf7ff0f..31e0214ca 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICFPress.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICFPress.java @@ -6,7 +6,7 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityICFPress; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/machine/MachineIntake.java b/src/main/java/com/hbm/blocks/machine/MachineIntake.java index 6090eb7f1..5f6dbfc30 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineIntake.java +++ b/src/main/java/com/hbm/blocks/machine/MachineIntake.java @@ -8,7 +8,7 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineIntake; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/blocks/machine/MachinePump.java b/src/main/java/com/hbm/blocks/machine/MachinePump.java index 1d2198029..f15ebd3c7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePump.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePump.java @@ -13,7 +13,7 @@ import com.hbm.tileentity.machine.TileEntityMachinePumpBase; import com.hbm.tileentity.machine.TileEntityMachinePumpElectric; import com.hbm.tileentity.machine.TileEntityMachinePumpSteam; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/blocks/machine/MachineSawmill.java b/src/main/java/com/hbm/blocks/machine/MachineSawmill.java index 8a112a2b2..b048f1866 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSawmill.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSawmill.java @@ -10,7 +10,7 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntitySawmill; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/blocks/machine/MachineSolarBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineSolarBoiler.java index b68fda48c..c97620d2b 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSolarBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSolarBoiler.java @@ -6,7 +6,8 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntitySolarBoiler; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; diff --git a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java index dc7f13426..81c4033e8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java @@ -5,7 +5,8 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntitySteamEngine; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/blocks/machine/MachineStirling.java b/src/main/java/com/hbm/blocks/machine/MachineStirling.java index 3cdfde1e7..29a79c6b0 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStirling.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStirling.java @@ -12,7 +12,7 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityStirling; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java index 89435b761..354e91136 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStrandCaster.java @@ -10,7 +10,8 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemScraps; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.item.EntityItem; diff --git a/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java b/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java index f702e0b4f..ca4f6b1e8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java @@ -7,7 +7,7 @@ import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineTeleporter; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java index 4279cc746..4d8b0a059 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java @@ -7,7 +7,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityTowerLarge; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java index 6b9bc5947..d78464a97 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java @@ -7,7 +7,7 @@ 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 com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java index a17cf0fcc..99ec44ba6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java @@ -2,7 +2,7 @@ package com.hbm.blocks.machine; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java index 1d17b9930..42e3a6573 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java +++ b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java @@ -11,7 +11,8 @@ import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; import com.hbm.tileentity.network.TileEntityCableBaseNT; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/network/CableDiode.java b/src/main/java/com/hbm/blocks/network/CableDiode.java index d0f17735b..4dd7a8f80 100644 --- a/src/main/java/com/hbm/blocks/network/CableDiode.java +++ b/src/main/java/com/hbm/blocks/network/CableDiode.java @@ -12,7 +12,8 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BobMathUtil; import com.hbm.util.Compat; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/network/CraneSplitter.java b/src/main/java/com/hbm/blocks/network/CraneSplitter.java index 9cc13f15c..0cac219b0 100644 --- a/src/main/java/com/hbm/blocks/network/CraneSplitter.java +++ b/src/main/java/com/hbm/blocks/network/CraneSplitter.java @@ -11,7 +11,7 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityCraneSplitter; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/network/DroneCrate.java b/src/main/java/com/hbm/blocks/network/DroneCrate.java index 78a64be21..91b0a6a44 100644 --- a/src/main/java/com/hbm/blocks/network/DroneCrate.java +++ b/src/main/java/com/hbm/blocks/network/DroneCrate.java @@ -6,7 +6,8 @@ import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityDroneCrate; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/network/DroneWaypoint.java b/src/main/java/com/hbm/blocks/network/DroneWaypoint.java index 16f5c60eb..41d5356a4 100644 --- a/src/main/java/com/hbm/blocks/network/DroneWaypoint.java +++ b/src/main/java/com/hbm/blocks/network/DroneWaypoint.java @@ -4,7 +4,8 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.items.ModItems; import com.hbm.tileentity.network.TileEntityDroneWaypoint; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index 6d091e422..4823303a0 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -5,7 +5,8 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java index 4384b908b..b899394c6 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java @@ -5,7 +5,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeExhaust; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index cb00c3a4b..122d9031d 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -11,7 +11,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; import com.hbm.tileentity.network.TileEntityPipeBaseNT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java b/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java index 0bca70d6b..b7f994a5d 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java @@ -7,7 +7,8 @@ import com.hbm.interfaces.ICopiable; import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; import com.hbm.tileentity.network.TileEntityPipeBaseNT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index d1b46bc94..d6b857e60 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -7,7 +7,8 @@ import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/network/FluidPump.java b/src/main/java/com/hbm/blocks/network/FluidPump.java index 19fffda03..416b1c579 100644 --- a/src/main/java/com/hbm/blocks/network/FluidPump.java +++ b/src/main/java/com/hbm/blocks/network/FluidPump.java @@ -18,7 +18,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.BobMathUtil; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.world.gen.INBTTransformable; import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority; diff --git a/src/main/java/com/hbm/blocks/network/FluidSwitch.java b/src/main/java/com/hbm/blocks/network/FluidSwitch.java index 77ed6519d..c4c8788d2 100644 --- a/src/main/java/com/hbm/blocks/network/FluidSwitch.java +++ b/src/main/java/com/hbm/blocks/network/FluidSwitch.java @@ -3,7 +3,8 @@ package com.hbm.blocks.network; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityFluidValve; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/network/FluidValve.java b/src/main/java/com/hbm/blocks/network/FluidValve.java index 7c05600e8..fae2678c8 100644 --- a/src/main/java/com/hbm/blocks/network/FluidValve.java +++ b/src/main/java/com/hbm/blocks/network/FluidValve.java @@ -3,7 +3,8 @@ package com.hbm.blocks.network; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityFluidValve; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchController.java b/src/main/java/com/hbm/blocks/network/RadioTorchController.java index ce6a59105..8d971878d 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchController.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchController.java @@ -7,7 +7,7 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.gui.GUIScreenRadioTorchController; import com.hbm.tileentity.network.TileEntityRadioTorchController; import com.hbm.util.Compat; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.redstoneoverradio.IRORInteractive; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java b/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java index 80bacd8c4..d9a71d78b 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java @@ -6,7 +6,8 @@ import com.hbm.inventory.gui.GUICounterTorch; import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityRadioTorchCounter; import com.hbm.util.Compat; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java b/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java index 65d144ef9..7712d3b1a 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchLogic.java @@ -4,7 +4,8 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.gui.GUIScreenRadioTorchLogic; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityRadioTorchLogic; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java b/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java index 7f03e597c..11c64f5c8 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java @@ -3,7 +3,8 @@ package com.hbm.blocks.network; import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.gui.GUIScreenRadioTorch; import com.hbm.tileentity.network.TileEntityRadioTorchBase; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchReader.java b/src/main/java/com/hbm/blocks/network/RadioTorchReader.java index 4e35e4e78..d92162c51 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchReader.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchReader.java @@ -7,7 +7,7 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.gui.GUIScreenRadioTorchReader; import com.hbm.tileentity.network.TileEntityRadioTorchReader; import com.hbm.util.Compat; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.redstoneoverradio.IRORValueProvider; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 572e3fb4d..2bd2b1653 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -6,12 +6,12 @@ import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.inventory.gui.GuiInfoContainer; import com.hbm.lib.RefStrings; import com.hbm.tileentity.IGUIProvider; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -191,9 +191,9 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.train.hasCustomInventoryName() ? this.train.getInventoryName() : I18n.format(this.train.getInventoryName()); + String name = this.train.hasCustomInventoryName() ? this.train.getInventoryName() : I18nUtil.format(this.train.getInventoryName()); this.fontRendererObj.drawString(name, 140 / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(I18nUtil.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @Override diff --git a/src/main/java/com/hbm/handler/ability/IBaseAbility.java b/src/main/java/com/hbm/handler/ability/IBaseAbility.java index b8318cc94..8960c0e3f 100644 --- a/src/main/java/com/hbm/handler/ability/IBaseAbility.java +++ b/src/main/java/com/hbm/handler/ability/IBaseAbility.java @@ -1,6 +1,6 @@ package com.hbm.handler.ability; -import net.minecraft.client.resources.I18n; +import com.hbm.util.i18n.I18nUtil; public interface IBaseAbility extends Comparable { public String getName(); @@ -10,7 +10,8 @@ public interface IBaseAbility extends Comparable { } public default String getFullName(int level) { - return I18n.format(getName()) + getExtension(level); + //bandaid fix so it doesn't crash servers instantly, TODO: use ChatComponentTranslation + return I18nUtil.format(getName()) + getExtension(level); } public default boolean isAllowed() { diff --git a/src/main/java/com/hbm/handler/nei/RotaryFurnaceHandler.java b/src/main/java/com/hbm/handler/nei/RotaryFurnaceHandler.java index ca6c3b628..09509295e 100644 --- a/src/main/java/com/hbm/handler/nei/RotaryFurnaceHandler.java +++ b/src/main/java/com/hbm/handler/nei/RotaryFurnaceHandler.java @@ -9,7 +9,7 @@ import com.hbm.inventory.gui.GUIMachineRotaryFurnace; import com.hbm.inventory.recipes.RotaryFurnaceRecipes; import com.hbm.inventory.recipes.RotaryFurnaceRecipes.RotaryFurnaceRecipe; import com.hbm.items.machine.ItemScraps; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; diff --git a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java index bc1363383..cf510ae67 100644 --- a/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/SILEXRecipeHandler.java @@ -14,8 +14,8 @@ import com.hbm.inventory.recipes.SILEXRecipes; import com.hbm.inventory.recipes.SILEXRecipes.SILEXRecipe; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; import com.hbm.util.WeightedRandomObject; +import com.hbm.util.i18n.I18nUtil; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeAsbestos.java b/src/main/java/com/hbm/hazard/type/HazardTypeAsbestos.java index abda08fba..1f0234e85 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeAsbestos.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeAsbestos.java @@ -7,8 +7,8 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.ArmorRegistry.HazardClass; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java b/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java index a65a2d9d5..4f014efff 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeBlinding.java @@ -5,8 +5,8 @@ import java.util.List; import com.hbm.config.RadiationConfig; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.ArmorRegistry; -import com.hbm.util.I18nUtil; import com.hbm.util.ArmorRegistry.HazardClass; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeCoal.java b/src/main/java/com/hbm/hazard/type/HazardTypeCoal.java index 1dbeda3f8..873073397 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeCoal.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeCoal.java @@ -7,8 +7,8 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.ArmorRegistry.HazardClass; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeDigamma.java b/src/main/java/com/hbm/hazard/type/HazardTypeDigamma.java index a32c1d0d8..cafaeb1e2 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeDigamma.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeDigamma.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.ContaminationUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeExplosive.java b/src/main/java/com/hbm/hazard/type/HazardTypeExplosive.java index 85123d85d..904149e7b 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeExplosive.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeExplosive.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.config.RadiationConfig; import com.hbm.hazard.modifier.HazardModifier; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeHot.java b/src/main/java/com/hbm/hazard/type/HazardTypeHot.java index dc8022b46..9e21f7b00 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeHot.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeHot.java @@ -6,7 +6,7 @@ import com.hbm.config.GeneralConfig; import com.hbm.config.RadiationConfig; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java index a716f925c..f5394e4df 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.config.RadiationConfig; import com.hbm.hazard.modifier.HazardModifier; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java index 177d32218..dba80f65a 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeRadiation.java @@ -9,7 +9,7 @@ import com.hbm.util.BobMathUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/interfaces/ICustomWarhead.java b/src/main/java/com/hbm/interfaces/ICustomWarhead.java index 479ad891c..3cf52791e 100644 --- a/src/main/java/com/hbm/interfaces/ICustomWarhead.java +++ b/src/main/java/com/hbm/interfaces/ICustomWarhead.java @@ -12,7 +12,7 @@ import com.google.common.annotations.Beta; import com.hbm.hazard.HazardRegistry; import com.hbm.main.MainRegistry; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 6f01bf1f0..93c9e565a 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -15,7 +15,7 @@ import com.hbm.lib.RefStrings; import com.hbm.render.util.EnumSymbol; import com.hbm.uninos.INetworkProvider; import com.hbm.uninos.networkproviders.FluidNetProvider; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.fluidmk2.FluidNetMK2; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index fe814219e..748459014 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -10,8 +10,8 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.ArmorRegistry.HazardClass; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.potion.PotionEffect; diff --git a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java index 250b9711f..106d30c74 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java +++ b/src/main/java/com/hbm/inventory/gui/GUIArmorTable.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.handler.ArmorModHandler; import com.hbm.inventory.container.ContainerArmorTable; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index dc628427a..c25ef32ad 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -6,7 +6,7 @@ import java.util.List; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java index 8a27e27cf..a17ee5155 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java +++ b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java @@ -11,7 +11,7 @@ import com.hbm.module.ModulePatternMatcher; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTorchCounter; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUICrucible.java b/src/main/java/com/hbm/inventory/gui/GUICrucible.java index a41ef4288..b63e4af4f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrucible.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrucible.java @@ -14,7 +14,7 @@ import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityCrucible; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.OpenGlHelper; diff --git a/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java b/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java index 5794c5382..f94527ed6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCrystallizer; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java index 670acabb0..7a02e66b5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java @@ -11,7 +11,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityElectrolyser; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIHadron.java b/src/main/java/com/hbm/inventory/gui/GUIHadron.java index 92d97a872..0cae2f176 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHadron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHadron.java @@ -12,7 +12,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntityHadron; import com.hbm.tileentity.machine.TileEntityHadron.EnumHadronState; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java index ebcbe6365..a4d3824cc 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java +++ b/src/main/java/com/hbm/inventory/gui/GUILaunchPadLarge.java @@ -14,7 +14,7 @@ import com.hbm.items.weapon.ItemMissile; import com.hbm.lib.RefStrings; import com.hbm.render.item.ItemRenderMissileGeneric; import com.hbm.tileentity.bomb.TileEntityLaunchPadBase; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderHelper; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java b/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java index 7e50956a2..5c8f9e55c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineArcFurnaceLarge.java @@ -14,7 +14,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineArcFurnaceLarge; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java index 795d8882b..8f0be9228 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java @@ -6,7 +6,7 @@ import com.hbm.inventory.container.ContainerMachineAssembler; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java index 2fa8c4bbe..b82ed39d4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java @@ -18,7 +18,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; public class GUIMachineBattery extends GuiInfoContainer { diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java index fc03ff008..9eb22f102 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemplant.java @@ -6,7 +6,7 @@ import com.hbm.inventory.container.ContainerMachineChemplant; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineChemplant; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java index 5f5cfc339..29cf1d2a1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineCyclotron; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineCyclotron; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java b/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java index 36606b0f4..ffd99b533 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java @@ -10,7 +10,7 @@ import com.hbm.inventory.container.ContainerMachineDiFurnaceRTG; import com.hbm.items.machine.ItemRTGPellet; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityDiFurnaceRTG; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java b/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java index 1f97b7216..bfb80de4b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java @@ -11,7 +11,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerElectricFurnace; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; public class GUIMachineElectricFurnace extends GuiInfoContainer { diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java index fe81cccba..2fb7c9065 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java @@ -7,7 +7,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineExcavator; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java index 0b81a0bd8..9213bfaf2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineGasCent; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineGasCent; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java index eca4887c6..addb10a33 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java @@ -8,7 +8,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineOilWell.java b/src/main/java/com/hbm/inventory/gui/GUIMachineOilWell.java index faa229824..91e00e52d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineOilWell.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineOilWell.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineOilWell; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.oil.TileEntityOilDrillBase; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java index 22fa883f6..90ca0759b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java @@ -8,7 +8,7 @@ import com.hbm.inventory.container.ContainerMachineRTG; import com.hbm.items.machine.ItemRTGPellet; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineRTG; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java index 43fd1ba61..d2c1d4b7f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -9,7 +9,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.entity.RadarEntry; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java index 2c9338326..4f4fc4987 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java @@ -8,7 +8,7 @@ import com.hbm.inventory.container.ContainerMachineRadarNT; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java index 22ceb1949..01e5acf9f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRotaryFurnace.java @@ -10,7 +10,7 @@ import com.hbm.inventory.container.ContainerMachineRotaryFurnace; import com.hbm.inventory.material.Mats; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineRotaryFurnace; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.OpenGlHelper; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java index f30b6d7a1..1037d1fa8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineStrandCaster.java @@ -4,7 +4,8 @@ import com.hbm.inventory.container.ContainerMachineStrandCaster; import com.hbm.inventory.material.Mats; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineStrandCaster; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java index fe6ecbdea..eee3c7fad 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java @@ -14,7 +14,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java b/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java index b89cff524..3d2170bbc 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java @@ -6,7 +6,7 @@ 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 com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java b/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java index ad0d4c8ef..ee1979ebf 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java @@ -10,7 +10,7 @@ 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; +import com.hbm.util.i18n.I18nUtil; public class GUINukeGadget extends GuiInfoContainer { diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeMan.java b/src/main/java/com/hbm/inventory/gui/GUINukeMan.java index b89d2b043..79268b460 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeMan.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeMan.java @@ -10,7 +10,7 @@ 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; +import com.hbm.util.i18n.I18nUtil; public class GUINukeMan extends GuiInfoContainer { diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeMike.java b/src/main/java/com/hbm/inventory/gui/GUINukeMike.java index b42539226..1c8c3abfd 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeMike.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeMike.java @@ -6,7 +6,7 @@ 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 com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java index 4d22cde31..eada61893 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java @@ -11,7 +11,7 @@ import com.hbm.inventory.container.ContainerNukeTsar; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeTsar; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; public class GUINukeTsar extends GuiInfoContainer { diff --git a/src/main/java/com/hbm/inventory/gui/GUIPASource.java b/src/main/java/com/hbm/inventory/gui/GUIPASource.java index 67852bd7e..ada0eb595 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPASource.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPASource.java @@ -11,7 +11,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.albion.TileEntityPASource; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 4bbbed6d9..0ec74cd29 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -16,7 +16,7 @@ import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.RBMKColumn; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java b/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java index c1fb2b367..7c3184bc4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRadioRec.java @@ -9,7 +9,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityRadioRec; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java b/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java index 2b25ba85a..26e6ad7d0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRadiolysis.java @@ -8,7 +8,7 @@ import com.hbm.inventory.container.ContainerRadiolysis; import com.hbm.items.machine.ItemRTGPellet; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineRadiolysis; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java b/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java index be0312a00..25072180d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java @@ -7,7 +7,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityReactorZirnox; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUISILEX.java b/src/main/java/com/hbm/inventory/gui/GUISILEX.java index b36c07fcd..c0c66e971 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISILEX.java +++ b/src/main/java/com/hbm/inventory/gui/GUISILEX.java @@ -13,7 +13,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.machine.TileEntitySILEX; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenGuide.java b/src/main/java/com/hbm/inventory/gui/GUIScreenGuide.java index ae65041af..72a044a2d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenGuide.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenGuide.java @@ -11,7 +11,7 @@ import com.hbm.items.tool.ItemGuideBook.GuideImage; import com.hbm.items.tool.ItemGuideBook.GuidePage; import com.hbm.items.tool.ItemGuideBook.GuideText; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenHolotape.java b/src/main/java/com/hbm/inventory/gui/GUIScreenHolotape.java index 2f9779576..3cdc323b2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenHolotape.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenHolotape.java @@ -7,7 +7,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.ModItems; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java index 1f879d0a7..cfd090b59 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java @@ -10,7 +10,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTorchBase; import com.hbm.tileentity.network.TileEntityRadioTorchSender; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchController.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchController.java index b598d5b9e..55ca21e15 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchController.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchController.java @@ -12,7 +12,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTorchController; import com.hbm.util.Compat; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.redstoneoverradio.IRORInfo; import api.hbm.redstoneoverradio.IRORValueProvider; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java index 11b38f125..565d86110 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchLogic.java @@ -10,7 +10,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTorchLogic; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchReader.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchReader.java index 9a6a2ce7a..5e241a318 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchReader.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorchReader.java @@ -12,7 +12,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.network.TileEntityRadioTorchReader; import com.hbm.util.Compat; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.redstoneoverradio.IRORValueProvider; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java b/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java index 03021464e..ef877a21c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenSnowglobe.java @@ -5,7 +5,7 @@ import java.util.List; import org.lwjgl.opengl.GL11; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java index 04b188f14..03a69a9b3 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java @@ -5,7 +5,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.turret.TileEntityTurretArty; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java index c5964c108..997af0011 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretBase.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretBase.java @@ -12,7 +12,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java b/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java index 2ca5524f1..9baa21939 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretHIMARS.java @@ -5,7 +5,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.AuxButtonPacket; import com.hbm.tileentity.turret.TileEntityTurretBaseNT; import com.hbm.tileentity.turret.TileEntityTurretHIMARS; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index 58075788b..ea8e989b5 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -19,7 +19,7 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.RefStrings; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index fc4ac638a..6e810bbcc 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -13,8 +13,8 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemScraps; -import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index c352c085d..3e019e110 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -11,7 +11,7 @@ import com.hbm.inventory.fluid.FluidType; 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.i18n.I18nUtil; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/items/ItemCustomLore.java b/src/main/java/com/hbm/items/ItemCustomLore.java index f5ea42970..97a9b2c83 100644 --- a/src/main/java/com/hbm/items/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/ItemCustomLore.java @@ -6,7 +6,7 @@ import java.util.Random; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java index 920ad06ed..e9e134585 100644 --- a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java +++ b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java @@ -7,7 +7,7 @@ import com.hbm.handler.threading.PacketThreading; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.model.ModelArmorBJ; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index 1d2c6f7e4..73617c0be 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -11,13 +11,12 @@ import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.render.model.ModelArmorDNT; import com.hbm.util.ArmorUtil; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; 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.client.resources.I18n; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -180,7 +179,7 @@ public class ArmorDNT extends ArmorFSBPowered { if(!effects.isEmpty()) { for(PotionEffect effect : effects) { - list.add(EnumChatFormatting.AQUA + " " + I18n.format(Potion.potionTypes[effect.getPotionID()].getName())); + list.add(EnumChatFormatting.AQUA + " " + I18nUtil.format(Potion.potionTypes[effect.getPotionID()].getName())); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index cf83bf1be..d87dc2e2f 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -12,7 +12,7 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.items.ModItems; import com.hbm.util.ContaminationUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.relauncher.ReflectionHelper; @@ -24,7 +24,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -162,7 +161,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { if(!effects.isEmpty()) { List potionList = new ArrayList(); for(PotionEffect effect : effects) { - potionList.add(I18n.format(Potion.potionTypes[effect.getPotionID()].getName())); + potionList.add(I18nUtil.format(Potion.potionTypes[effect.getPotionID()].getName())); } toAdd.add(EnumChatFormatting.AQUA + String.join(", ", potionList)); diff --git a/src/main/java/com/hbm/items/armor/ArmorGasMask.java b/src/main/java/com/hbm/items/armor/ArmorGasMask.java index 1359848e8..d763ff5a2 100644 --- a/src/main/java/com/hbm/items/armor/ArmorGasMask.java +++ b/src/main/java/com/hbm/items/armor/ArmorGasMask.java @@ -11,8 +11,8 @@ import com.hbm.lib.RefStrings; import com.hbm.render.model.ModelGasMask; import com.hbm.render.model.ModelM65; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.ArmorRegistry.HazardClass; +import com.hbm.util.i18n.I18nUtil; import api.hbm.item.IGasMask; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java index c5a9e03fc..c716e18e9 100644 --- a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -6,7 +6,7 @@ import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; import com.hbm.render.model.ModelArmorTrenchmaster; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/armor/ItemArmorMod.java b/src/main/java/com/hbm/items/armor/ItemArmorMod.java index cc6666e4f..a91cbdf54 100644 --- a/src/main/java/com/hbm/items/armor/ItemArmorMod.java +++ b/src/main/java/com/hbm/items/armor/ItemArmorMod.java @@ -5,7 +5,7 @@ import java.util.List; import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.main.MainRegistry; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java index cacecfc27..681caa195 100644 --- a/src/main/java/com/hbm/items/armor/ItemModGasmask.java +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -9,8 +9,8 @@ import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.render.model.ModelM65; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.ArmorRegistry.HazardClass; +import com.hbm.util.i18n.I18nUtil; import api.hbm.item.IGasMask; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/armor/ItemModNightVision.java b/src/main/java/com/hbm/items/armor/ItemModNightVision.java index 305819aaf..7ae5f3507 100644 --- a/src/main/java/com/hbm/items/armor/ItemModNightVision.java +++ b/src/main/java/com/hbm/items/armor/ItemModNightVision.java @@ -2,7 +2,8 @@ package com.hbm.items.armor; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; -import net.minecraft.client.resources.I18n; +import com.hbm.util.i18n.I18nUtil; + import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -22,14 +23,14 @@ public class ItemModNightVision extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.AQUA + I18n.format("item.night_vision.description.item")); + list.add(EnumChatFormatting.AQUA + I18nUtil.format("item.night_vision.description.item")); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); + list.add(EnumChatFormatting.YELLOW + I18nUtil.format("item.night_vision.description.in_armor", stack.getDisplayName())); } @Override diff --git a/src/main/java/com/hbm/items/food/ItemConserve.java b/src/main/java/com/hbm/items/food/ItemConserve.java index 9b45540e6..592b2eae6 100644 --- a/src/main/java/com/hbm/items/food/ItemConserve.java +++ b/src/main/java/com/hbm/items/food/ItemConserve.java @@ -7,7 +7,7 @@ import com.hbm.entity.effect.EntityVortex; import com.hbm.items.ItemEnumMulti; import com.hbm.items.ModItems; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/food/ItemPill.java b/src/main/java/com/hbm/items/food/ItemPill.java index 3c7508e47..02207c79f 100644 --- a/src/main/java/com/hbm/items/food/ItemPill.java +++ b/src/main/java/com/hbm/items/food/ItemPill.java @@ -9,7 +9,7 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.potion.HbmPotion; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemFood; diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index 3c4c8f51a..7a1c26a0b 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -9,7 +9,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.inventory.recipes.AssemblerRecipes.AssemblerRecipe; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemCassette.java b/src/main/java/com/hbm/items/machine/ItemCassette.java index 2809ead79..9a0dc6a55 100644 --- a/src/main/java/com/hbm/items/machine/ItemCassette.java +++ b/src/main/java/com/hbm/items/machine/ItemCassette.java @@ -3,7 +3,7 @@ package com.hbm.items.machine; import java.util.List; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index b063ce516..d644a4515 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.inventory.recipes.ChemplantRecipes; import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemCrucibleTemplate.java b/src/main/java/com/hbm/items/machine/ItemCrucibleTemplate.java index 38cc57570..878cac22c 100644 --- a/src/main/java/com/hbm/items/machine/ItemCrucibleTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemCrucibleTemplate.java @@ -8,7 +8,7 @@ import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.inventory.recipes.CrucibleRecipes.CrucibleRecipe; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java b/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java index fe839a410..5ffb16617 100644 --- a/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java @@ -3,7 +3,7 @@ package com.hbm.items.machine; import java.util.List; import com.hbm.items.special.ItemNuclearWaste; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemFELCrystal.java b/src/main/java/com/hbm/items/machine/ItemFELCrystal.java index 0a105cb2b..850aa4b30 100644 --- a/src/main/java/com/hbm/items/machine/ItemFELCrystal.java +++ b/src/main/java/com/hbm/items/machine/ItemFELCrystal.java @@ -3,7 +3,7 @@ package com.hbm.items.machine; import java.util.List; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java index 85af4ab67..a0ea666ba 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java @@ -11,7 +11,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.tileentity.IGUIProvider; import com.hbm.util.ChatBuilder; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java index 5abea5f30..b2068040b 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemICFPellet.java b/src/main/java/com/hbm/items/machine/ItemICFPellet.java index 5cbc88ff0..7f115adb2 100644 --- a/src/main/java/com/hbm/items/machine/ItemICFPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemICFPellet.java @@ -12,7 +12,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.util.BobMathUtil; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemMold.java b/src/main/java/com/hbm/items/machine/ItemMold.java index b92c60640..25b273d4f 100644 --- a/src/main/java/com/hbm/items/machine/ItemMold.java +++ b/src/main/java/com/hbm/items/machine/ItemMold.java @@ -12,7 +12,7 @@ import com.hbm.inventory.material.NTMMaterial; import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemPileRod.java b/src/main/java/com/hbm/items/machine/ItemPileRod.java index 103e68494..91735dcea 100644 --- a/src/main/java/com/hbm/items/machine/ItemPileRod.java +++ b/src/main/java/com/hbm/items/machine/ItemPileRod.java @@ -2,7 +2,7 @@ package com.hbm.items.machine; import java.util.List; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 59635dcdd..1ab86f42d 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -9,8 +9,8 @@ import java.util.function.Function; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.rbmk.IRBMKFluxReceiver.NType; +import com.hbm.util.i18n.I18nUtil; import com.hbm.tileentity.machine.rbmk.RBMKDials; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; diff --git a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java index 151a27f34..0533003d2 100644 --- a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java @@ -11,7 +11,7 @@ import com.hbm.config.VersatileConfig; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; diff --git a/src/main/java/com/hbm/items/machine/ItemScraps.java b/src/main/java/com/hbm/items/machine/ItemScraps.java index 5c3436148..72788e5ac 100644 --- a/src/main/java/com/hbm/items/machine/ItemScraps.java +++ b/src/main/java/com/hbm/items/machine/ItemScraps.java @@ -10,7 +10,7 @@ import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.items.ModItems; import com.hbm.items.special.ItemAutogen; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; diff --git a/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java b/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java index be0883149..36b771381 100644 --- a/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java +++ b/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java @@ -7,7 +7,7 @@ import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java index d2a50f20d..8ca22d57e 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java @@ -6,7 +6,7 @@ import java.util.Locale; import com.hbm.items.ItemEnumMulti; import com.hbm.util.BobMathUtil; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java index 6729b027f..a61fc2efd 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java @@ -8,7 +8,7 @@ import java.util.Locale; import com.hbm.items.ModItems; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index 7c4b63446..dcedb72ba 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -7,7 +7,8 @@ import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; diff --git a/src/main/java/com/hbm/items/special/ItemDemonCore.java b/src/main/java/com/hbm/items/special/ItemDemonCore.java index 549ad61ed..97115f80b 100644 --- a/src/main/java/com/hbm/items/special/ItemDemonCore.java +++ b/src/main/java/com/hbm/items/special/ItemDemonCore.java @@ -3,7 +3,7 @@ package com.hbm.items.special; import java.util.List; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/items/special/ItemDigamma.java b/src/main/java/com/hbm/items/special/ItemDigamma.java index 1783971e8..a3555434f 100644 --- a/src/main/java/com/hbm/items/special/ItemDigamma.java +++ b/src/main/java/com/hbm/items/special/ItemDigamma.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.config.WeaponConfig; import com.hbm.entity.effect.EntityQuasar; import com.hbm.util.ContaminationUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; diff --git a/src/main/java/com/hbm/items/special/ItemDrop.java b/src/main/java/com/hbm/items/special/ItemDrop.java index 14e921edc..154785cf5 100644 --- a/src/main/java/com/hbm/items/special/ItemDrop.java +++ b/src/main/java/com/hbm/items/special/ItemDrop.java @@ -17,7 +17,7 @@ import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/items/tool/ItemConveyorWand.java b/src/main/java/com/hbm/items/tool/ItemConveyorWand.java index b393d59f5..1c33446d6 100644 --- a/src/main/java/com/hbm/items/tool/ItemConveyorWand.java +++ b/src/main/java/com/hbm/items/tool/ItemConveyorWand.java @@ -13,7 +13,7 @@ import com.hbm.blocks.network.BlockConveyorBendable; import com.hbm.blocks.network.BlockCraneBase; import com.hbm.main.MainRegistry; import com.hbm.render.util.RenderOverhead; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.WorldInAJar; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/tool/ItemDrone.java b/src/main/java/com/hbm/items/tool/ItemDrone.java index f63f44fd6..c4d0e8214 100644 --- a/src/main/java/com/hbm/items/tool/ItemDrone.java +++ b/src/main/java/com/hbm/items/tool/ItemDrone.java @@ -7,7 +7,7 @@ import org.lwjgl.input.Keyboard; import com.hbm.entity.item.EntityDeliveryDrone; import com.hbm.items.ItemEnumMulti; import com.hbm.main.MainRegistry; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/items/tool/ItemGuideBook.java b/src/main/java/com/hbm/items/tool/ItemGuideBook.java index 920344cab..87f40c907 100644 --- a/src/main/java/com/hbm/items/tool/ItemGuideBook.java +++ b/src/main/java/com/hbm/items/tool/ItemGuideBook.java @@ -7,7 +7,7 @@ import com.hbm.inventory.gui.GUIScreenGuide; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/items/tool/ItemMirrorTool.java b/src/main/java/com/hbm/items/tool/ItemMirrorTool.java index 61db24d6e..5387a1a82 100644 --- a/src/main/java/com/hbm/items/tool/ItemMirrorTool.java +++ b/src/main/java/com/hbm/items/tool/ItemMirrorTool.java @@ -6,7 +6,7 @@ import com.google.common.collect.Multimap; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.machine.TileEntitySolarMirror; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.SharedMonsterAttributes; diff --git a/src/main/java/com/hbm/items/tool/ItemOilDetector.java b/src/main/java/com/hbm/items/tool/ItemOilDetector.java index 3b9cf86b7..bf89565d2 100644 --- a/src/main/java/com/hbm/items/tool/ItemOilDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemOilDetector.java @@ -7,8 +7,8 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; +import com.hbm.util.i18n.I18nUtil; -import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.Item; @@ -19,10 +19,9 @@ import net.minecraft.world.World; public class ItemOilDetector extends Item { @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add(I18n.format(this.getUnlocalizedName() + ".desc1")); - list.add(I18n.format(this.getUnlocalizedName() + ".desc2")); + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(I18nUtil.format(this.getUnlocalizedName() + ".desc1")); + list.add(I18nUtil.format(this.getUnlocalizedName() + ".desc2")); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemPipette.java b/src/main/java/com/hbm/items/tool/ItemPipette.java index 97602afa1..6486efec1 100644 --- a/src/main/java/com/hbm/items/tool/ItemPipette.java +++ b/src/main/java/com/hbm/items/tool/ItemPipette.java @@ -3,7 +3,7 @@ package com.hbm.items.tool; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.fluidmk2.IFillableItem; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/tool/ItemRBMKTool.java b/src/main/java/com/hbm/items/tool/ItemRBMKTool.java index 34f5ef405..def28215e 100644 --- a/src/main/java/com/hbm/items/tool/ItemRBMKTool.java +++ b/src/main/java/com/hbm/items/tool/ItemRBMKTool.java @@ -8,7 +8,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.rbmk.RBMKBase; import com.hbm.tileentity.machine.rbmk.TileEntityCraneConsole; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.SharedMonsterAttributes; diff --git a/src/main/java/com/hbm/items/tool/ItemSettingsTool.java b/src/main/java/com/hbm/items/tool/ItemSettingsTool.java index e6636d0f2..33f74af82 100644 --- a/src/main/java/com/hbm/items/tool/ItemSettingsTool.java +++ b/src/main/java/com/hbm/items/tool/ItemSettingsTool.java @@ -7,7 +7,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.PlayerInformPacket; import com.hbm.util.ChatBuilder; import com.hbm.util.Either; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.Entity; diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index a887e20b8..24776babc 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -10,7 +10,7 @@ import com.hbm.items.ItemAmmoEnums.IAmmoItemEnum; import com.hbm.items.ItemEnumMulti; import com.hbm.lib.RefStrings; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 167435ed1..4511c9fc8 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -88,6 +88,8 @@ import com.hbm.tileentity.turret.*; import com.hbm.util.BobMathUtil; import com.hbm.util.ColorUtil; import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.i18n.I18nClient; +import com.hbm.util.i18n.ITranslate; import com.hbm.wiaj.cannery.Jars; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -131,8 +133,12 @@ import java.util.*; import java.util.Map.Entry; public class ClientProxy extends ServerProxy { + + private static final I18nClient I18N = new I18nClient(); public RenderInfoSystem theInfoSystem = new RenderInfoSystem(); + + public ITranslate getI18n() { return I18N; } /** Runs just before item an block init */ @Override diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index d54588f8a..a2ee8b962 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -57,6 +57,7 @@ import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry; import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType; import com.hbm.util.*; import com.hbm.util.ArmorRegistry.HazardClass; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 98f09fbb7..4e9d7704d 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -3,6 +3,9 @@ package com.hbm.main; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.saveddata.TomSaveData; import com.hbm.sound.AudioWrapper; +import com.hbm.util.i18n.I18nServer; +import com.hbm.util.i18n.ITranslate; + import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -13,6 +16,8 @@ import java.util.ArrayList; import java.util.List; public class ServerProxy { + + private static final I18nServer I18N = new I18nServer(); //sort by estimated time of display. longer lasting ones should be sorted at the top. public static final int ID_DUCK = 0; @@ -28,6 +33,8 @@ public class ServerProxy { public static final int ID_TOOLABILITY = 10; public static final int ID_GUN_MODE = 11; public static final int ID_GAS_HAZARD = 12; + + public ITranslate getI18n() { return I18N; } public void registerPreRenderInfo() { } public void registerRenderInfo() { } diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java index c149f2089..2e0933a12 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKConsole.java @@ -8,7 +8,7 @@ import com.hbm.main.ResourceManager; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.RBMKColumn; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.RBMKScreen; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; diff --git a/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java b/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java index 5f737b6e8..4c340f332 100644 --- a/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java +++ b/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java @@ -9,7 +9,7 @@ import javax.annotation.Nonnull; import com.hbm.config.VersatileConfig; import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/tileentity/IRepairable.java b/src/main/java/com/hbm/tileentity/IRepairable.java index 27f3f2974..029d7871b 100644 --- a/src/main/java/com/hbm/tileentity/IRepairable.java +++ b/src/main/java/com/hbm/tileentity/IRepairable.java @@ -7,8 +7,8 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.items.tool.ItemBlowtorch; -import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java index 3471a589a..001ae77b3 100644 --- a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java +++ b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java @@ -4,7 +4,7 @@ import java.util.HashMap; import java.util.List; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import net.minecraft.block.Block; import net.minecraft.util.EnumChatFormatting; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 69a79c1dc..084aa7859 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -29,8 +29,8 @@ import com.hbm.tileentity.*; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.BobMathUtil; import com.hbm.util.CrucibleUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 76cb76189..ecabdf827 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -14,7 +14,7 @@ import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java index c9c23b3eb..6c9be1f71 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java @@ -29,8 +29,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CrucibleUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index 9db6921c8..257fc33af 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -19,9 +19,9 @@ import com.hbm.lib.Library; import com.hbm.tileentity.*; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index fd7d1b822..53b47d04b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -15,8 +15,8 @@ import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IBatteryItem; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 9919ffec1..61e8d0a92 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -16,8 +16,8 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index aeb067770..07c5ea852 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -21,7 +21,7 @@ import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; import com.hbm.util.CompatEnergyControl; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.tile.IInfoProviderEC; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index b6b6310ac..2d6ff9a14 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -18,8 +18,8 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index df70317d6..a482e7e20 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -22,9 +22,9 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressorBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressorBase.java index 3f1987112..74e7ccadf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressorBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressorBase.java @@ -19,9 +19,9 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluidmk2.IFluidStandardTransceiverMK2; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 8b4cbe76c..a72d1996e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -18,8 +18,8 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.*; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IBatteryItem; import api.hbm.energymk2.IEnergyReceiverMK2; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index b254d0fdf..434dc4f70 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -19,9 +19,9 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.*; import com.hbm.util.CompatEnergyControl; -import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index 0462f77f7..b2afe4309 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -16,7 +16,7 @@ import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BufferUtil; import com.hbm.util.CompatEnergyControl; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.tile.IInfoProviderEC; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 3f8223d23..84c1fd378 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -15,7 +15,7 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IBatteryItem; import api.hbm.energymk2.IEnergyReceiverMK2; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index c8dccffe8..28b4e49f7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -27,11 +27,11 @@ import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Compat; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.conveyor.IConveyorBelt; import api.hbm.energymk2.IEnergyReceiverMK2; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java index 77ac2635a..06ad4379f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -15,8 +15,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 6dff13040..2d82a79ff 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -23,8 +23,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; +import com.hbm.util.i18n.I18nUtil; import api.hbm.block.IDrillInteraction; import api.hbm.block.IMiningDrill; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index b3b14eacd..ad0c284e9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -16,8 +16,8 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.*; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java index 0c04b8f33..167490875 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java @@ -25,8 +25,8 @@ import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java index b8cfe0333..6f058d12a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolderingStation.java @@ -23,8 +23,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 250875829..6b804feaa 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -27,8 +27,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.CompatEnergyControl; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardTransceiver; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 3f1d1b7e8..5ec2fdf88 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -15,8 +15,8 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import com.hbm.world.feature.OilSpot; import cpw.mods.fml.relauncher.Side; 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 49eba901b..ae6d26e38 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -23,9 +23,9 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; -import com.hbm.util.I18nUtil; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyProviderMK2; import api.hbm.fluid.IFluidStandardReceiver; 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 072acadcf..69cfd4533 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -18,8 +18,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardSender; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java index 942a10788..bd43227dd 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -13,8 +13,8 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index 1dfee2567..82840391f 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -13,8 +13,8 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePyroOven.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePyroOven.java index 146a4629b..35a510752 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePyroOven.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePyroOven.java @@ -23,8 +23,8 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardTransceiver; 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 67cc1e661..5cf61f101 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -17,9 +17,9 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CompatEnergyControl; -import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; +import com.hbm.util.i18n.I18nUtil; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluid.IFluidStandardReceiver; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 4be8b8847..219838228 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -18,8 +18,9 @@ import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.util.BobMathUtil; import com.hbm.util.Compat; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.i18n.I18nUtil; + import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index ddb38c3bf..bdb21f97c 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -17,7 +17,7 @@ import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; import com.hbm.util.BufferUtil; import com.hbm.util.Compat; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java index bd2bd5c92..0a19dd833 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java @@ -15,7 +15,7 @@ import com.hbm.potion.HbmPotion; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; import com.hbm.util.EntityDamageUtil; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/util/DamageResistanceHandler.java b/src/main/java/com/hbm/util/DamageResistanceHandler.java index ff7f99b19..559d6a578 100644 --- a/src/main/java/com/hbm/util/DamageResistanceHandler.java +++ b/src/main/java/com/hbm/util/DamageResistanceHandler.java @@ -18,6 +18,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.util.Tuple.Quartet; +import com.hbm.util.i18n.I18nUtil; import api.hbm.entity.IResistanceProvider; import cpw.mods.fml.common.eventhandler.SubscribeEvent; diff --git a/src/main/java/com/hbm/util/I18nUtil.java b/src/main/java/com/hbm/util/i18n/I18nClient.java similarity index 59% rename from src/main/java/com/hbm/util/I18nUtil.java rename to src/main/java/com/hbm/util/i18n/I18nClient.java index 13d4a2d36..bd444196c 100644 --- a/src/main/java/com/hbm/util/I18nUtil.java +++ b/src/main/java/com/hbm/util/i18n/I18nClient.java @@ -1,47 +1,31 @@ -package com.hbm.util; +package com.hbm.util.i18n; + +import java.util.ArrayList; +import java.util.List; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.resources.I18n; -import java.util.ArrayList; -import java.util.List; - @SideOnly(Side.CLIENT) -public class I18nUtil { +public class I18nClient implements ITranslate { - /** - * Simple wrapper for I18n, for consistency - * @param s - * @param args - * @return - */ + @Override @SideOnly(Side.CLIENT) - public static String resolveKey(String s, Object... args) { + public String resolveKey(String s, Object... args) { return I18n.format(s, args); } - /** - * Wrapper for I18n but cuts up the result using NTM's line break character ($) - * @param s - * @param args - * @return - */ + @Override @SideOnly(Side.CLIENT) - public static String[] resolveKeyArray(String s, Object... args) { + public String[] resolveKeyArray(String s, Object... args) { return resolveKey(s, args).split("\\$"); } - /** - * The same as autoBreak, but it also respects NTM's break character ($) for manual line breaking in addition to the automatic ones - * @param fontRenderer - * @param text - * @param width - * @return - */ + @Override @SideOnly(Side.CLIENT) - public static List autoBreakWithParagraphs(FontRenderer fontRenderer, String text, int width) { + public List autoBreakWithParagraphs(Object fontRenderer, String text, int width) { String[] paragraphs = text.split("\\$"); List lines = new ArrayList(); @@ -53,16 +37,11 @@ public class I18nUtil { return lines; } - /** - * Turns one string into a list of strings, cutting sentences up to fit within the defined width if they were rendered in a GUI - * @param fontRenderer - * @param text - * @param width - * @return - */ + @Override @SideOnly(Side.CLIENT) - public static List autoBreak(FontRenderer fontRenderer, String text, int width) { + public List autoBreak(Object o, String text, int width) { + FontRenderer fontRenderer = (FontRenderer) o; List lines = new ArrayList(); //split the text by all spaces String[] words = text.split(" "); diff --git a/src/main/java/com/hbm/util/i18n/I18nServer.java b/src/main/java/com/hbm/util/i18n/I18nServer.java new file mode 100644 index 000000000..9840354a1 --- /dev/null +++ b/src/main/java/com/hbm/util/i18n/I18nServer.java @@ -0,0 +1,33 @@ +package com.hbm.util.i18n; + +import java.util.ArrayList; +import java.util.List; + +public class I18nServer implements ITranslate { + + public static String SARCASTIC_MESSAGE = "I18N CALL SERVERSIDE - GREAT JOB"; + + @Override + public String resolveKey(String s, Object... args) { + return SARCASTIC_MESSAGE; + } + + @Override + public String[] resolveKeyArray(String s, Object... args) { + return new String[] { SARCASTIC_MESSAGE }; + } + + @Override + public List autoBreakWithParagraphs(Object fontRenderer, String text, int width) { + List list = new ArrayList(); + list.add(SARCASTIC_MESSAGE); + return list; + } + + @Override + public List autoBreak(Object fontRenderer, String text, int width) { + List list = new ArrayList(); + list.add(SARCASTIC_MESSAGE); + return list; + } +} diff --git a/src/main/java/com/hbm/util/i18n/I18nUtil.java b/src/main/java/com/hbm/util/i18n/I18nUtil.java new file mode 100644 index 000000000..92bd9e769 --- /dev/null +++ b/src/main/java/com/hbm/util/i18n/I18nUtil.java @@ -0,0 +1,50 @@ +package com.hbm.util.i18n; + +import java.util.List; + +import com.hbm.main.MainRegistry; + +public class I18nUtil { + + + /** + * Simple wrapper for I18n, for consistency + * @param s + * @param args + * @return + */ + public static String resolveKey(String s, Object... args) { return MainRegistry.proxy.getI18n().resolveKey(s, args); } + public static String format(String s, Object... args) { return MainRegistry.proxy.getI18n().resolveKey(s, args); } //alias + + /** + * Wrapper for I18n but cuts up the result using NTM's line break character ($) + * @param s + * @param args + * @return + */ + public static String[] resolveKeyArray(String s, Object... args) { + return MainRegistry.proxy.getI18n().resolveKeyArray(s, args); + } + + /** + * The same as autoBreak, but it also respects NTM's break character ($) for manual line breaking in addition to the automatic ones + * @param fontRenderer + * @param text + * @param width + * @return + */ + public static List autoBreakWithParagraphs(Object fontRenderer, String text, int width) { + return MainRegistry.proxy.getI18n().autoBreakWithParagraphs(fontRenderer, text, width); + } + + /** + * Turns one string into a list of strings, cutting sentences up to fit within the defined width if they were rendered in a GUI + * @param fontRenderer + * @param text + * @param width + * @return + */ + public static List autoBreak(Object fontRenderer, String text, int width) { + return MainRegistry.proxy.getI18n().autoBreak(fontRenderer, text, width); + } +} diff --git a/src/main/java/com/hbm/util/i18n/ITranslate.java b/src/main/java/com/hbm/util/i18n/ITranslate.java new file mode 100644 index 000000000..d1b2eec22 --- /dev/null +++ b/src/main/java/com/hbm/util/i18n/ITranslate.java @@ -0,0 +1,34 @@ +package com.hbm.util.i18n; + +import java.util.List; + +public interface ITranslate { + + public String resolveKey(String s, Object... args); + + /** + * Wrapper for I18n but cuts up the result using NTM's line break character ($) + * @param s + * @param args + * @return + */ + public String[] resolveKeyArray(String s, Object... args); + + /** + * The same as autoBreak, but it also respects NTM's break character ($) for manual line breaking in addition to the automatic ones + * @param fontRenderer + * @param text + * @param width + * @return + */ + public List autoBreakWithParagraphs(Object fontRenderer, String text, int width); + + /** + * Turns one string into a list of strings, cutting sentences up to fit within the defined width if they were rendered in a GUI + * @param fontRenderer + * @param text + * @param width + * @return + */ + public List autoBreak(Object fontRenderer, String text, int width); +} diff --git a/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java b/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java index ac8fea198..8ad557e97 100644 --- a/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java +++ b/src/main/java/com/hbm/wiaj/GuiWorldInAJar.java @@ -10,7 +10,7 @@ import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.actors.ActorFancyPanel; import com.hbm.wiaj.actors.ISpecialActor; import com.hbm.wiaj.actors.ActorFancyPanel.Orientation; diff --git a/src/main/java/com/hbm/wiaj/actors/ActorFancyPanel.java b/src/main/java/com/hbm/wiaj/actors/ActorFancyPanel.java index f40436d6c..4fea246da 100644 --- a/src/main/java/com/hbm/wiaj/actors/ActorFancyPanel.java +++ b/src/main/java/com/hbm/wiaj/actors/ActorFancyPanel.java @@ -7,7 +7,7 @@ import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryCentrifuge.java b/src/main/java/com/hbm/wiaj/cannery/CanneryCentrifuge.java index fffdfadca..6a2074b20 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryCentrifuge.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryCentrifuge.java @@ -7,7 +7,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import com.hbm.tileentity.network.TileEntityPipeBaseNT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryCrucible.java b/src/main/java/com/hbm/wiaj/cannery/CanneryCrucible.java index 0e0b7f5ca..b4de49265 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryCrucible.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryCrucible.java @@ -10,7 +10,7 @@ import com.hbm.render.tileentity.RenderCrucible; import com.hbm.render.tileentity.RenderFoundry; import com.hbm.tileentity.machine.TileEntityCrucible; import com.hbm.tileentity.machine.TileEntityFoundryBasin; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryFEnSU.java b/src/main/java/com/hbm/wiaj/cannery/CanneryFEnSU.java index dcd1e22ee..57136b8de 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryFEnSU.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryFEnSU.java @@ -2,7 +2,7 @@ package com.hbm.wiaj.cannery; import com.hbm.blocks.ModBlocks; import com.hbm.render.tileentity.RenderFENSU; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryFirebox.java b/src/main/java/com/hbm/wiaj/cannery/CanneryFirebox.java index 1cde66431..2cbaae53a 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryFirebox.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryFirebox.java @@ -6,7 +6,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import com.hbm.render.tileentity.RenderStirling; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryFoundryChannel.java b/src/main/java/com/hbm/wiaj/cannery/CanneryFoundryChannel.java index 29c8a3462..3392bff72 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryFoundryChannel.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryFoundryChannel.java @@ -12,7 +12,7 @@ import com.hbm.tileentity.machine.TileEntityFoundryChannel; import com.hbm.tileentity.machine.TileEntityFoundryMold; import com.hbm.tileentity.machine.TileEntityFoundryOutlet; import com.hbm.tileentity.machine.TileEntityFoundryTank; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java index 90089afc6..38438a9bc 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryHadron.java @@ -1,7 +1,7 @@ package com.hbm.wiaj.cannery; import com.hbm.blocks.ModBlocks; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CannerySILEX.java b/src/main/java/com/hbm/wiaj/cannery/CannerySILEX.java index 5d6900f75..1595527d5 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CannerySILEX.java +++ b/src/main/java/com/hbm/wiaj/cannery/CannerySILEX.java @@ -13,7 +13,7 @@ import com.hbm.render.util.BeamPronter; import com.hbm.render.util.BeamPronter.EnumBeamType; import com.hbm.render.util.BeamPronter.EnumWaveType; import com.hbm.tileentity.network.TileEntityPipeBaseNT; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java b/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java index e7d956e53..caaabcac2 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java +++ b/src/main/java/com/hbm/wiaj/cannery/CannerySchottky.java @@ -3,7 +3,7 @@ package com.hbm.wiaj.cannery; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityHadronDiode; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryStirling.java b/src/main/java/com/hbm/wiaj/cannery/CanneryStirling.java index ea5eb2520..e7ee9b4a3 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryStirling.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryStirling.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; import com.hbm.render.tileentity.RenderStirling; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; diff --git a/src/main/java/com/hbm/wiaj/cannery/CanneryWillow.java b/src/main/java/com/hbm/wiaj/cannery/CanneryWillow.java index 11c9c4b6e..b14d84796 100644 --- a/src/main/java/com/hbm/wiaj/cannery/CanneryWillow.java +++ b/src/main/java/com/hbm/wiaj/cannery/CanneryWillow.java @@ -6,7 +6,7 @@ import com.hbm.blocks.generic.BlockTallPlant.EnumTallFlower; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumPlantType; -import com.hbm.util.I18nUtil; +import com.hbm.util.i18n.I18nUtil; import com.hbm.wiaj.JarScene; import com.hbm.wiaj.JarScript; import com.hbm.wiaj.WorldInAJar; From 00c73d63c06801533d3863ee8bd9ceca0b77559f Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 26 May 2025 11:58:28 +0300 Subject: [PATCH 092/181] Fix #2177 The original hotfix is no longer necessary, as all remaning calls to getFullName are fully client-side --- .../com/hbm/handler/ability/IBaseAbility.java | 6 +-- .../com/hbm/handler/ability/ToolPreset.java | 38 +++++++++++-------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/hbm/handler/ability/IBaseAbility.java b/src/main/java/com/hbm/handler/ability/IBaseAbility.java index 8960c0e3f..3ba941022 100644 --- a/src/main/java/com/hbm/handler/ability/IBaseAbility.java +++ b/src/main/java/com/hbm/handler/ability/IBaseAbility.java @@ -1,6 +1,6 @@ package com.hbm.handler.ability; -import com.hbm.util.i18n.I18nUtil; +import net.minecraft.client.resources.I18n; public interface IBaseAbility extends Comparable { public String getName(); @@ -9,9 +9,9 @@ public interface IBaseAbility extends Comparable { return ""; } + // Note: only usable client-side. Server-side, use ChatComponentTranslation manually instead public default String getFullName(int level) { - //bandaid fix so it doesn't crash servers instantly, TODO: use ChatComponentTranslation - return I18nUtil.format(getName()) + getExtension(level); + return I18n.format(getName()) + getExtension(level); } public default boolean isAllowed() { diff --git a/src/main/java/com/hbm/handler/ability/ToolPreset.java b/src/main/java/com/hbm/handler/ability/ToolPreset.java index e705b23a9..7cc065478 100644 --- a/src/main/java/com/hbm/handler/ability/ToolPreset.java +++ b/src/main/java/com/hbm/handler/ability/ToolPreset.java @@ -27,26 +27,32 @@ public class ToolPreset { this.harvestAbilityLevel = harvestAbilityLevel; } - public ChatComponentText getMessage() { - if(isNone()) - return ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(); + public ChatComponentText getMessage() { + if (isNone()) { + return ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(); + } - String areaPart = areaAbility.getFullName(areaAbilityLevel); - String harvestPart = harvestAbility.getFullName(harvestAbilityLevel); + boolean hasArea = areaAbility != IToolAreaAbility.NONE; + boolean hasHarvest = harvestAbility != IToolHarvestAbility.NONE; + + ChatBuilder builder = ChatBuilder.start("[Enabled "); - ChatBuilder builder = ChatBuilder.start("[Enabled "); + if (hasArea) { + builder.nextTranslation(areaAbility.getName()); + builder.next(areaAbility.getExtension(areaAbilityLevel)); + } - if(!areaPart.isEmpty()) - builder.next(areaPart); + if (hasArea && hasHarvest) { + builder.next(" + "); + } - if(!areaPart.isEmpty() && !harvestPart.isEmpty()) - builder.next(" + "); - - if(!harvestPart.isEmpty()) - builder.next(harvestPart); - - return builder.colorAll(EnumChatFormatting.YELLOW).flush(); - } + if (hasHarvest) { + builder.nextTranslation(harvestAbility.getName()); + builder.next(harvestAbility.getExtension(harvestAbilityLevel)); + } + + return builder.colorAll(EnumChatFormatting.YELLOW).flush(); + } public boolean isNone() { return areaAbility == IToolAreaAbility.NONE && harvestAbility == IToolHarvestAbility.NONE; From 8f2a858f52e7febc85e4b66327bcb4bd094df35e Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 26 May 2025 14:51:11 +0300 Subject: [PATCH 093/181] Geiger counter comparator output --- .../com/hbm/blocks/machine/GeigerCounter.java | 18 ++++++++++++++++++ .../tileentity/machine/TileEntityGeiger.java | 1 + 2 files changed, 19 insertions(+) diff --git a/src/main/java/com/hbm/blocks/machine/GeigerCounter.java b/src/main/java/com/hbm/blocks/machine/GeigerCounter.java index b9d3e933c..bd07ad6d0 100644 --- a/src/main/java/com/hbm/blocks/machine/GeigerCounter.java +++ b/src/main/java/com/hbm/blocks/machine/GeigerCounter.java @@ -131,4 +131,22 @@ public class GeigerCounter extends BlockContainer { return false; } } + + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + TileEntityGeiger te = (TileEntityGeiger)world.getTileEntity(x, y, z); + if (te == null) return 0; + + float rad = te.check(); + + // 0 at exactly 0 rads/sec + // +1 per 5 rads/sec + // 15 at 75+ rads/sec + return Math.min((int)Math.ceil(rad / 5f), 15); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index 98719f542..ddd26d465 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -65,6 +65,7 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent, IIn public float check() { return ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord); } + @Override @Optional.Method(modid = "OpenComputers") public String getComponentName() { From ac46cdf1ad6d6444c329ee52ae6ec50535d36276 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 26 May 2025 15:13:57 +0300 Subject: [PATCH 094/181] Fix comparator output --- src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index ddd26d465..806756011 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -35,6 +35,9 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent, IIn if(timer == 10) { timer = 0; ticker = check(); + + // To update the adjacent comparators + worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord, this.zCoord, this.getBlockType()); } if(timer % 5 == 0) { From acbea88eca6c1485c4ba6a9079330dd6407ed762 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 26 May 2025 16:21:59 +0200 Subject: [PATCH 095/181] now we're thinking with portals --- CONTRIBUTING.md | 1 + changelog | 4 +- src/main/java/com/hbm/blocks/ModBlocks.java | 7 +- .../blocks/machine/MachineChemicalPlant.java | 22 ++++ .../hbm/blocks/machine/MachineChemplant.java | 1 + .../com/hbm/handler/ability/IBaseAbility.java | 4 +- .../recipes/loader/GenericRecipes.java | 121 ++++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + 9 files changed, 157 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java create mode 100644 src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8e1acbedf..c47daea75 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,7 @@ Things you should also avoid include: * unused or half finished util functions (for obvious reasons) * half finished or obviously broken features (à la "bob will fix it, i'm sure of it", please don't do that) * updating the changelog (you're guaranteed to cause a merge conflict with that) +* any use of `I18n`, use `I18nUtil` instead ## Test your code diff --git a/changelog b/changelog index d354db2a9..45c3f8101 100644 --- a/changelog +++ b/changelog @@ -24,4 +24,6 @@ * Fixed strand caster fluid gauges going out of bounds * Fixed arc welder and soldering station not changing buffer size based on upgrade, preventing use of higher overdrive tiers * Fixed non-standard template folder recipes not using the correct icon -* Fixed jetpack flight time not resetting when equipped like armor, causing kicks on servers that don't have flying cheats allowed \ No newline at end of file +* Fixed jetpack flight time not resetting when equipped like armor, causing kicks on servers that don't have flying cheats allowed +* Fixed missing energy damage category localization +* Fixed server crash caused by tool abilities \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index e857521bb..b3e81b36b 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1008,7 +1008,8 @@ public class ModBlocks { public static Block machine_soldering_station; public static Block machine_arc_furnace; - public static Block machine_chemplant; + @Deprecated public static Block machine_chemplant; + public static Block machine_chemical_plant; public static Block machine_chemfac; public static Block machine_mixer; @@ -2230,6 +2231,7 @@ public class ModBlocks { machine_arc_welder = new MachineArcWelder(Material.iron).setBlockName("machine_arc_welder").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_soldering_station = new MachineSolderingStation(Material.iron).setBlockName("machine_soldering_station").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_chemical_plant = new MachineChemicalPlant(Material.iron).setBlockName("machine_chemical_plant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemfac = new MachineChemfac(Material.iron).setBlockName("machine_chemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_mixer = new MachineMixer(Material.iron).setBlockName("machine_mixer").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_fluidtank = new MachineFluidTank(Material.iron).setBlockName("machine_fluidtank").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fluidtank"); @@ -3272,7 +3274,8 @@ public class ModBlocks { GameRegistry.registerBlock(machine_assembler, machine_assembler.getUnlocalizedName()); GameRegistry.registerBlock(machine_assemfac, machine_assemfac.getUnlocalizedName()); GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName()); - GameRegistry.registerBlock(machine_chemfac, machine_chemfac.getUnlocalizedName()); + register(machine_chemical_plant); + register(machine_chemfac); register(machine_arc_welder); register(machine_soldering_station); register(machine_arc_furnace); diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java new file mode 100644 index 000000000..58fd028c6 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java @@ -0,0 +1,22 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineChemicalPlant extends BlockDummyable { + + public MachineChemicalPlant(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override public int[] getDimensions() { return new int[] {2, 0, 1, 1, 1, 1}; } + @Override public int getOffset() { return 1; } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemplant.java b/src/main/java/com/hbm/blocks/machine/MachineChemplant.java index cfe87c0b5..fdf17898f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemplant.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemplant.java @@ -11,6 +11,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +@Deprecated public class MachineChemplant extends BlockDummyable { public MachineChemplant(Material p_i45386_1_) { diff --git a/src/main/java/com/hbm/handler/ability/IBaseAbility.java b/src/main/java/com/hbm/handler/ability/IBaseAbility.java index 3ba941022..8918a2511 100644 --- a/src/main/java/com/hbm/handler/ability/IBaseAbility.java +++ b/src/main/java/com/hbm/handler/ability/IBaseAbility.java @@ -1,6 +1,6 @@ package com.hbm.handler.ability; -import net.minecraft.client.resources.I18n; +import com.hbm.util.i18n.I18nUtil; public interface IBaseAbility extends Comparable { public String getName(); @@ -11,7 +11,7 @@ public interface IBaseAbility extends Comparable { // Note: only usable client-side. Server-side, use ChatComponentTranslation manually instead public default String getFullName(int level) { - return I18n.format(getName()) + getExtension(level); + return I18nUtil.format(getName()) + getExtension(level); } public default boolean isAllowed() { diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java new file mode 100644 index 000000000..5ddbcecbc --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -0,0 +1,121 @@ +package com.hbm.inventory.recipes.loader; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Random; + +import com.google.gson.JsonElement; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandom; + +/** + * Fully genericized recipes. + * Features: + * * Fluid in and output + * * AStack intput + * * Chance-based outputs, for selecting items and for selecting items are produced in the first place + * * Duration + * * Tags for identification + * + * @author hbm + */ +public abstract class GenericRecipes extends SerializableRecipe { + + public static final Random RNG = new Random(); + + public List recipeOrderedList = new ArrayList(); + public HashMap recipeNameMap = new HashMap(); + + public abstract int inputItemLimit(); + public abstract int inputFluidLimit(); + public abstract int outputItemLimit(); + public abstract int outputFluidLimit(); + + @Override + public Object getRecipeObject() { + return this.recipeOrderedList; + } + + @Override + public void deleteRecipes() { + this.recipeOrderedList.clear(); + this.recipeNameMap.clear(); + } + + public void register(GenericRecipe recipe) { + this.recipeOrderedList.add(recipe); + this.recipeNameMap.put(recipe.name, recipe); + } + + @Override + public void readRecipe(JsonElement recipe) { + + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + + } + + /////////////// + /// CLASSES /// + /////////////// + + public static class GenericRecipe { + + public String name; + public AStack[] inputItem; + public FluidStack[] inputFluid; + public IOutput[] outputItem; + public FluidStack[] outputFluid; + public int duration; + + public GenericRecipe(String name, int duration) { + this.name = name; + this.duration = duration; + } + } + + public static interface IOutput { + public boolean possibleMultiOutput(); + public ItemStack collapse(); + } + + /** A chance output, produces either an ItemStack or null */ + public static class ChanceOutput extends WeightedRandom.Item implements IOutput { + + public ItemStack stack; + public float chance; + + public ChanceOutput(ItemStack stack) { this(stack, 1F, 1); } + public ChanceOutput(ItemStack stack, int weight) { this(stack, 1F, weight); } + public ChanceOutput(ItemStack stack, float chance, int weight) { + super(weight); + this.stack = stack; + this.chance = chance; + } + + @Override + public ItemStack collapse() { + if(this.chance >= 1F) return this.stack; + return RNG.nextFloat() <= chance ? this.stack : null; + } + + @Override public boolean possibleMultiOutput() { return false; } + } + + /** Multiple choice chance output, produces a ChanceOutput chosen randomly by weight */ + public static class ChanceOutputMulti implements IOutput { + + public List pool = new ArrayList(); + + @Override public ItemStack collapse() { return ((ChanceOutput) WeightedRandom.getRandomItem(RNG, pool)).collapse(); } + @Override public boolean possibleMultiOutput() { return pool.size() > 1; } + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 9b657d0d5..984ab6040 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -489,6 +489,7 @@ crucible.tcalloy=Herstellung - Technetiumstahl damage.inset=Resistenz wenn in Set getragen: damage.item=Resistenz wenn getragen: +damage.category.EN=Energie damage.category.EXPL=Explosion damage.category.FIRE=Feuer damage.category.PROJ=Projektil diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 8b3529fe0..df2d909a3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -905,6 +905,7 @@ crucible.tcalloy=Technetium Steel Production damage.inset=Resistances when worn in set: damage.item=Resistances when worn: +damage.category.EN=Energy damage.category.EXPL=Explosion damage.category.FIRE=Fire damage.category.PROJ=Projectile From 60f64f33f2aa2de73971fdbb38f2090d493cb46d Mon Sep 17 00:00:00 2001 From: arantirnecrolord Date: Wed, 28 May 2025 00:28:06 +0300 Subject: [PATCH 096/181] add translation --- src/main/resources/assets/hbm/lang/uk_UA.lang | 6198 +++++++++++++++++ 1 file changed, 6198 insertions(+) create mode 100644 src/main/resources/assets/hbm/lang/uk_UA.lang diff --git a/src/main/resources/assets/hbm/lang/uk_UA.lang b/src/main/resources/assets/hbm/lang/uk_UA.lang new file mode 100644 index 000000000..b85e72460 --- /dev/null +++ b/src/main/resources/assets/hbm/lang/uk_UA.lang @@ -0,0 +1,6198 @@ +achievement.acidizer.desc=уфф ай Ð¼Ð¾Ñ ÑˆÐºÑ–Ñ€Ð° +achievement.acidizer=КиÑлюка +achievement.assembly.desc=Зачекайте, вже година ночі? +achievement.assembly=Завод розширÑєтьÑÑ +achievement.FOEQ.desc=Відправте ретранÑлÑтор на марÑінÑьку... Ñ Ð¼Ð°ÑŽ на увазі дюніанÑьку орбіту. +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=ÐавалÑти великому хлопчику. +achievement.bossMaskman=6 міÑÑців Ñтрокової Ñлужби Ñ– вÑе, що Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð², - це паршива футболка +achievement.bossMeltdown.desc=Скоріше жахливо, ніж чудово, але Ñ Ð¿Ñ€Ð¸Ð¹Ð¼Ñƒ те що можу отримати. +achievement.bossMeltdown=3.6 Рентген +achievement.bossWorm.desc=ФабÑтафф. ÐœÐ¾Ñ Ð´ÑƒÐ¿Ð°. Рти рахуй. +achievement.bossWorm=Ð Ð¾Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð‘Ð°Ð»Ð»Ñ-О-Трон +achievement.bossUFO.desc=Йо, що у Ð½Ð°Ñ Ñ‚ÑƒÑ‚? Величазний коÑмічний корабель наближаєтьÑÑ Ð´Ð¾ блок-кораблÑ? +achievement.bossUFO=Ðй Лмао +achievement.burnerPress.desc=ТиÑк тиÑне Ñ– на мене, Ñ– на тебе +achievement.burnerPress=Під тиÑком +achievement.c20_5.desc=??? +achievement.c20_5=Розділ [ДВÐДЦЯТЬ_ПУÐКТ_П'ЯТИЙ] +achievement.c44.desc=Гальванізований! Я маю на увазі, цинк! +achievement.c44=Розділ 44 +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=Ð’Ñе жахливо, оÑÑŒ трохи гарÑчого шоколаду. +achievement.digammaKauaiMoho=СПІВÐЙ, СПІВÐЙ МЕÐІ ПІСÐЮ ÐЛÐКÐЙСЬКОГО МОГО +achievement.digammaKnow.desc=того, що ÑвлÑÑ” Ñобою цей Ñвіт. +achievement.digammaKnow=ЖÐÐ¥ УСВІДОМЛЕÐÐЯ +achievement.digammaSee.desc=Трохи темно, візьміть з Ñобою ліхтарик. +achievement.digammaSee=Ð’ БЕЗОДÐЮ +achievement.digammaUpOnTop.desc=МилуйÑÑ Ð¼Ð¾Ñ—Ð¼ Ñином,він мій клон. +achievement.digammaUpOnTop=МИЛУЙСЯ МÐОЮ, МИЛУЙСЯ МОЇМ ДОМОМ +achievement.fiend.desc=Будь жорÑтоким. +achievement.fiend2.desc=Будь жорÑтокішим. +achievement.fiend2=Правопорушник 2: Delinquent Harder +achievement.fiend=Правопорушник +achievement.freytag.desc=Herold's life guards +achievement.freytag=Фрейтаг +achievement.fusion.desc=Танець дейтронів, тритонів та енергії. +achievement.fusion=Синтез +achievement.gasCent.desc=Ðезбагачений уран ненавидить його! +achievement.gasCent=Стиль БлиÑкавки +achievement.goFish.desc=МорÑьке розп'ÑÑ‚Ñ‚Ñ +achievement.goFish=Іди порибач +achievement.hidden.desc=Убийте зараженого кріпера падаючим товарним вагоном. +achievement.hidden=Прихований каталог +achievement.horizonsBonus.desc=чеÑне Ñлово що вбіÑа з тобою не так +achievement.horizonsBonus=Слем-данк Ð´Ñ–Ð°Ñ€ÐµÑ +achievement.horizonsEnd.desc=Відправте Тома додому. +achievement.horizonsEnd=Горизонти +achievement.horizonsStart.desc=ВІдправте парубка на міÑÑць. +achievement.horizonsStart=Ðпогей +achievement.impossible.desc=Ти не можеш отримати це доÑÑгненнÑ. +achievement.impossible=Буквально неможливо +achievement.inferno.desc="Перетворіть його на попіл! Цього недоÑтатньо! Скидайте ще бомби!" +achievement.inferno=ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ ÐšÐ°Ð½Ñ–Ð±Ð°Ð» +achievement.manhattan.desc=8:15; 6 ÑерпнÑ, 1945 рік +achievement.manhattan=МанхеттенÑький проект +achievement.meltdown.desc=Ти зайшов так далеко, Ñк ти міг вÑе зіпÑувати? +achievement.meltdown=Швидке позапланове Ñ€Ð¾Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ +achievement.no9.desc="СподіваюÑÑ, Ñвинець, Ñкий Ñ Ð²Ð¸Ð´Ð¾Ð±ÑƒÐ²Ð°ÑŽ, буде викориÑтаний у вашій фарбі" +achievement.no9=Старий номер дев'Ñть +achievement.omega12.desc=Вирішіть проблему Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ð¶Ð¸Ñ‚Ñ‚Ñ Ð½Ð° цій нещаÑній планеті. +achievement.omega12=ПриÑкорювач чаÑтинок Омега-12 +achievement.polymer.desc=Смачний, Ñмачний мікроплаÑтик +achievement.polymer=Тефлон +achievement.potato.desc=Ðгх! Птах! Птах! Вбий його! Це зло! +achievement.potato=ПовÑÑ‚Ð°Ð½Ð½Ñ Ð¼Ð°ÑˆÐ¸Ð½ +achievement.radDeath.desc=ÐœÐ°Ñ€Ñ–Ñ ÐšÑŽÑ€Ñ– винайшла теорію радіоактивноÑті, Ð»Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð°Ð´Ñ–Ð¾Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñті та Ñмерть від радіоактивноÑті. +achievement.radDeath=Ðуч, РадіаціÑ! +achievement.radium.desc=ТЕБЕ ЗВІЛЬÐЕÐО ЗРТЕ ЩО ТИ ВИЛИВ РÐДІЙ У МОЮ КÐВУ! +achievement.radium=МІСТЕР ÐЕЙМОВІРÐИЙ +achievement.radPoison.desc=Зазнайте наÑлідків радіаційного отруєннÑ. +achievement.radPoison=Ура, радіаціÑ! +achievement.RBMKBoom.desc=Яка ціна брехні? +achievement.RBMKBoom=15,000. +achievement.RBMK.desc=Він марить, відправте його в лазарет. +achievement.RBMK=3.6 Рентген? +achievement.redBalloons.desc="Це те, на що ми чекали. Це воно, хлопці, це війна" +achievement.redBalloons=99 Luftballons +achievement.redRoom.desc=? +achievement.redRoom=Інша Ñторона +achievement.sacrifice.desc=ЗуÑтріньÑÑ Ð¾Ð±Ð»Ð¸Ñ‡Ñ‡Ñм до Ð¾Ð±Ð»Ð¸Ñ‡Ñ‡Ñ Ð· вогнем Ñ– виживи. +achievement.sacrifice=СеÑтровбивÑтво +achievement.schrab.desc=Як би там не було, Ñ Ð± не дививÑÑ Ð½Ð° це надто довго. +achievement.schrab=ОÑтрів ÑтабільноÑті +achievement.selenium.desc=О, так! +achievement.selenium=XVIII The Moon +achievement.SILEX.desc=Це крутіше, ніж звучить, Ñ Ð¾Ð±Ñ–Ñ†ÑÑŽ. +achievement.SILEX=Лазерне Ñ€Ð¾Ð·Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ñ–Ð·Ð¾Ñ‚Ð¾Ð¿Ñ–Ð² +achievement.slimeball.desc= +achievement.slimeball=Я повинен занурити Ñвої ÑÐ¹Ñ†Ñ Ð² Ñірчану киÑлоту. +achievement.stratum.desc=ТиÑни на гальма, МіттÑ. +achievement.stratum=ПлаÑÑ‚ +achievement.someWounds.desc=ПриготуватиÑÑ +achievement.someWounds=ДеÑкі рани ніколи не гоÑтьÑÑ +achievement.soyuz.desc=Станьте хруÑткими. +achievement.soyuz=Запечена ÐºÐ°Ñ€Ñ‚Ð¾Ð¿Ð»Ñ +achievement.space.desc=ПровалиÑÑŒ Ñк тільки можна та розтратьте 90 мільйонів доларів в пуÑту +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=Поле Фолькванґа також приÑутні. +achievement.watz=Сила Елемента-126 +achievement.witchtaunter.desc=Ці безглузді Ñ–Ñтоти нічого тобі не зроблÑть! +achievement.witchtaunter=ÐаÑміхальник над відьмами +achievement.ZIRNOXBoom.desc=кипіти погано +achievement.ZIRNOXBoom=ЧІРÐОКС + +analyze.basic1======Компонент NTM===== +analyze.basic2=Додаткову Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ Ð¼Ð¾Ð¶Ð½Ð° знайти на вікі. +analyze.basic3====Додаткова інформаціÑ=== +analyze.dummy=Тип: Блок пуÑтишка +analyze.error=СуміÑніÑть цього блоку не вÑтановлено належним чином, про це Ñлід повідомити Ñк про помилку! +analyze.name=Ðазва: %s +analyze.noInfo=Ðемає інформації. + +armor.blastProtection=Модифікатор шкоди %s від вибухів +armor.cap=Hard damage cap of %s +armor.damageModifier=Модифікатор шкоди of %s проти %s +armor.dash=Дає %s ривка +armor.electricJetpack=Іонний реактивний ранець +armor.explosionImmune=Ðе може отримати жодної шкоди, окрім вибухів +armor.fasterReload=Швидка перезарÑдка +armor.fastFall=Швидке Ð¿Ð°Ð´Ñ–Ð½Ð½Ñ +armor.fireproof=ВогнеÑтійкіÑть +armor.fullSetBonus=Ð‘Ð¾Ð½ÑƒÑ Ð·Ð° повний набір: +armor.geigerHUD=Вбудований діÑплей лічильника Гейгера +armor.geigerSound=Звуковий лічильник Гейгера +armor.glider=Shift щоб планувати +armor.gravity=Модифікатор гравітації %s +armor.hardLanding=ЖорÑтка поÑадка +armor.ignoreLimit=Опір не залежить від ліміту опору +armor.modifier=Загальний модифікатор шкоди %s +armor.moreAmmo=Більше боєприпаÑів +armor.nullDamage=Ð‘Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñієї шкоди від %s +armor.projectileProtection=Модифікатор шкоди %s від ÑнарÑдів +armor.rocketBoots=Ракетні чоботи +armor.sprintBoost=ПриÑкорений біг +armor.stepSize=Розмір кроку: %s +armor.thermal=Тепловий приціл +armor.threshold=Поріг шкоди %s +armor.vats=Детектор ворогів +armor.yield=ЗахиÑÑ‚ заÑтоÑовуєтьÑÑ Ð´Ð¾ шкоди <%s + +armorMod.all=До вÑього +armorMod.applicableTo=ЗаÑтоÑовуєтьÑÑ Ð´Ð¾: +armorMod.boots=Чобот +armorMod.chestplates=Ðагрудника +armorMod.helmets=Шолома +armorMod.insertHere=Ð’Ñтавте броню, щоб модифікувати Ñ—Ñ—... +armorMod.leggings=Ðаголінників +armorMod.type.battery=ÐкумулÑтор +armorMod.type.boots=Чоботи +armorMod.type.chestplate=Ðагрудник +armorMod.type.cladding=Обшивка +armorMod.type.helmet=Шолом +armorMod.type.insert=Ð’Ñтавка +armorMod.type.leggings=Ðаголінники +armorMod.type.servo=Сервоприводи +armorMod.type.special=Спеціальне + +battery.mode.buffer=Буферний режим +battery.mode.input=ЗарÑдка +battery.mode.off=Вимкнено +battery.mode.output=РозрÑдка +battery.priority.high=Пріорітет зарÑдки: ВиÑокий +battery.priority.high.desc=Ðварійні буфери, Ñкі $завжди мають бути повними +battery.priority.low=Пріорітет зарÑдки: Ðизький +battery.priority.low.desc=БільшіÑть випадків викориÑтаннÑ, коли$необхідно зберігати надлишкову енергію$не впливаючи на продуктивніÑть машин +battery.priority.normal=Пріорітет зарÑдки: Звичайний +battery.priority.normal.desc=Ðевеликі енергомережі$де пріорітет не має Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ +battery.priority.recommended=РекомендуєтьÑÑ Ð´Ð»Ñ: +battery.redstone.off=РедÑтоун вимкнений +battery.redstone.on=РедÑтоун ввімкнений + +bomb.detonated=УÑпішно підірвано! +bomb.incompatible=ПриÑтрій не може бути запущений! +bomb.launched=УÑпішно запущено! +bomb.missingComponent=Бракує компонента! +bomb.nobomb=Пов’Ñзана Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ Ð½ÐµÑуміÑна або не прогружена! +bomb.triggered=УÑпішно активовано! + +book.test.cover=ЯК СЕКСÐТИСЬ +book.test.page1=Test Page 1 + +book.error.cover=Ðдронний колайдер:$УÑÑƒÐ½ÐµÐ½Ð½Ñ Ð½ÐµÑправноÑтей +book.error.title1=Error 0x01 [NC] +book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.title2=Error 0x02 [NA] +book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.title3=Error 0x03 [OC] +book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.title4=Error 0x04 [EC] +book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.title5=Error 0x05 [MS] +book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.title6=Error 0x06 [ATL] +book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.title7=Error 0x07 [ATS] +book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.title8=Error 0x08 [DC] +book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.title9=Error 0x09 [BT] +book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. + +book.rbmk.cover=Мій перший РБМК:$ОÑнови$будівництва$реактора +book.rbmk.title1=Introduction +book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. +book.rbmk.title2=Heat +book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. +book.rbmk.title3=Fuel Rod +book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. +book.rbmk.title4=Regulating Rod +book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. +book.rbmk.title5=Regulating Rods - Usage +book.rbmk.title5.scale=0.9 +book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. +book.rbmk.title6=Automatic Control Rods +book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. +book.rbmk.title7=Steam Channel +book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. +book.rbmk.title8=Neutron Reflector +book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. +book.rbmk.title9=Neutron Absorber +book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. +book.rbmk.title10=Graphite Retarder +book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. +book.rbmk.title11=Structural Column +book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. +book.rbmk.title12=Console +book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. +book.rbmk.title13=Using the console +book.rbmk.page13=Clicking on parts will select and deselect them. With the colored buttons, you can quickly select all the control rods in that color group. Button "A" will select all control rods, "X" will deselect all. +book.rbmk.page14=Entering a number between 0 and 100 in green box and then pressing button next to it will set all selected control rods to that position. Button "AZ-5" will lead to full insertion of all control rods. +book.rbmk.title15=Fuel +book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. +book.rbmk.title16=Melting +book.rbmk.page16=§4§lAVOID. + +book.starter.cover=ПоÑібник промиÑловцÑ$з відновленнÑ$ÑуÑпільÑтва +book.starter.title1=Introduction +book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. +book.starter.title2=Coal & Mustard Gas +book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. +book.starter.title3=Anvils & Presses +book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. +book.starter.title4=Templates +book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. +book.starter.title5=Scavenging +book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... +book.starter.title6=Early Machinery +book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. +book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. +book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. +book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. +book.starter.title8=Black Gold +book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. +book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. +book.starter.title9=Petrochemicals +book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. +book.starter.title10=Advanced Machinery +book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. +book.starter.title11=Strata +book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. +book.starter.title12=Radiation +book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. +book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.title13=Uranium Enrichment +book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. +book.starter.title14=The Chicago Pile +book.starter.page14=Alternatively, you can breed §lРеакторний Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.title15=ZIRNOX GCR +book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. +book.starter.title16=Conclusion +book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! +book.starter.title18=About the Author +book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. + +#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_lore.author=By %s +book_lore.test.name=this book doesn't work... +book_lore.test.author=me i trolled you hehe :3c +book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual +book_lore.test.page.1=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ +book_lore.test.page.2=3 +book_lore.test.page.3=4 +book_lore.test.page.4=5 + +book_lore.book_iodine.name=Ðотатки +book_lore.book_iodine.author=Дейв +book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.1=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.2=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d + +book_lore.book_phosphorous.name=Ðотатки +book_lore.book_phosphorous.author=Дейв +book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be mixed into slot %d + +book_lore.book_dust.name=Ðотатки +book_lore.book_dust.author=Дейв +book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction "MKU" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d + +book_lore.book_mercury.name=Ðотатки +book_lore.book_mercury.author=Дейв +book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.1=replicated by the body? whatever, the mercury goes into slot %d + +book_lore.book_flower.name=Ðотатки +book_lore.book_flower.author=Дейв +book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.1=it does not work with other flowers. the morning glory goes into slot %d + +book_lore.book_syringe.name=Ðотатки +book_lore.book_syringe.author=Дейв +book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.1=syringe goes into slot %d + +book_lore.resignation_note.name=Letter of Resignation +book_lore.resignation_note.author=Kosma +book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and +book_lore.resignation_note.page.1=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. +book_lore.resignation_note.page.2=I'm not coming back on Friday. Just send the paycheck. + +book_lore.memo_stocks.name=Intracorporate Memorandum +book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. + +book_lore.memo_schrab_gsa.name=Internal Memorandum +book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum +book_lore.memo_schrab_gsa.page.1=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. + +book_lore.memo_schrab_rd.name=Internal Memorandum +book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. +book_lore.memo_schrab_rd.page.1=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely +book_lore.memo_schrab_rd.page.2=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. +book_lore.memo_schrab_rd.page.3=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. + +book_lore.memo_schrab_nuke.name=Research Report +book_lore.memo_schrab_nuke.author=Doctor Schrabauer +book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. +book_lore.memo_schrab_nuke.page.1=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. +book_lore.memo_schrab_nuke.page.2=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. + +book_lore.bf_bomb_1.name=ОÑобиÑті нотатки +book_lore.bf_bomb_1.author=M. Porter +book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. +book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: +book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, +book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. + +book_lore.bf_bomb_2.name=ОÑобиÑті нотатки +book_lore.bf_bomb_2.author=M. Porter +book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. +book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. +book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. +book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy +book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. + +book_lore.bf_bomb_3.name=ОÑобиÑті нотатки +book_lore.bf_bomb_3.author=M. Porter +book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze +book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some +book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through +book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... + +book_lore.bf_bomb_4.name=ОÑобиÑті нотатки +book_lore.bf_bomb_4.author=M. Porter +book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? +book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the +book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV +book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. +book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. + +book_lore.bf_bomb_5.name=ОÑобиÑті нотатки +book_lore.bf_bomb_5.author=M. Porter +book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. +book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, +book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe +book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! +book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother +book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. +book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! +book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back +book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... + +book_lore.beacon.name=Signal Beacon Instruction Booklet +book_lore.beacon.author=Flim Flam Industries +book_lore.beacon.page.0=Thank you for your purchase of a Mk.2 Illuminated Signal Beacon (rev. 1.3)! This small booklet will provide a short introduction in the operation of the beacon, as well as its inner workings. +book_lore.beacon.page.1=Chapter 1: Architecture $ Each unit is composed of four main parts: The control circuit, a lantern, a fog horn and the casing which houses the other parts. For a detailed explanation of the main circuit, please +book_lore.beacon.page.2=refer to the circuit diagram found on the inside of the maintenance lid of the casing. The lantern is made up of a polycarbonate case containing a dual-color 250 Watt halogen bulb with a standard 200mm socket, replacements +book_lore.beacon.page.3=for the bulb can be ordered from our stores. Third party bulbs are not recommended, as we cannot ensure safe operation. The case is made from a specialized zinc-coated stainless steel and is resistant to weathering. +book_lore.beacon.page.4=Chapter 2: Lantern $ The lantern's primary uses are providing light for ease of maintenance in harsh weather conditions as well as a status indicator. Should the power-on self test (POST) fail, the lantern will +book_lore.beacon.page.5=light up red, otherwise it will light up green. Note that colors can vary depending on the replacement bulb. +book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) communication as well as for message broadcasting. +book_lore.beacon.page.7=Chapter 4: Peer-to-Peer $ For details on communication, refer to the communications handbook. A short rundown of establishing a P2P connection follows: First, the beacon has to give the "START CONNECTION" signal, +book_lore.beacon.page.8=being a single long tone. All available peers should respond with a single long tone as well (order specified by proximity, as well as the communication guidelines outlined in the handbook, section "Responding to a Connection") +book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respond with two long tones. All communication afterwards has to happen using pre-negotiated signals, most commonly +book_lore.beacon.page.10=using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". +book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] + +cannery.f1=[ ÐатиÑніть F1 Ð´Ð»Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸ ] + +cannery.centrifuge=Газова центрифуга +cannery.centrifuge.0=Газові центрифуги можуть поÑтачатиÑÑ Ñ€Ñ–Ð´Ð¸Ð½Ð¾ÑŽ за допомогою звичайних трубопроводів Ð´Ð»Ñ Ñ€Ñ–Ð´Ð¸Ð½Ð¸. +cannery.centrifuge.1=Ð”Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾Ñті рецептів потрібно кілька центрифуг. Проміжні продукти не можуть транÑпортуватиÑÑ Ñ‚Ñ€ÑƒÐ±Ð¾Ð¿Ñ€Ð¾Ð²Ð¾Ð´Ð°Ð¼Ð¸. +cannery.centrifuge.2=Ð¦Ñ Ñторона передає проміжний продукт в наÑтупну центрифугу. +cannery.centrifuge.3=ГекÑафторид урану можна перероблÑти за допомогою двох центрифуг, але ви отримаєте лише Уранове паливо та Уран-238. +cannery.centrifuge.4=Ð”Ð»Ñ Ð¿Ð¾Ð²Ð½Ð¾Ð³Ð¾ Ð²Ñ–Ð´Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð£Ñ€Ð°Ð½Ñƒ-235 від Урану-238 потрібно чотири центрифуги. +cannery.centrifuge.5=ДеÑкі рецепти також вимагають Ð¿Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Розгін газової центрифуги". + +cannery.crucible=Ð›Ð¸Ð²Ð°Ñ€Ð½Ñ +cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic items for alloying and to cast them into different shapes. +cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. +cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. +cannery.crucible.3=The crucible has two storage buffers for material: +cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. +cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. +cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. +cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. +cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. +cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. +cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. +cannery.crucible.11=As with all foundry blocks, a shovel can be used to remove all material from the crucible. + +cannery.fensu=FEnSU +cannery.fensu.0=The FEnSU is capable of storing absurd amounts of energy, over 9EHE (that's a nine followed by 18 zeros). +cannery.fensu.1=There is only one energy connector which can be found on the bottom. +cannery.fensu.2=This is also the only place where the FEnSU can receive a redstone signal. + +cannery.firebox=Firebox +cannery.firebox.0=The firebox burns flammable items to generate heat. +cannery.firebox.1=It can burn any flammable item, although higher quality fuels such as coal, coke and solid fuel burn longer and hotter. +cannery.firebox.2=Heat is given off by the copper contact at the top of the firebox. Machines with an identical contact on the bottom can receive heat by being placed on top of the firebox. +cannery.firebox.3=If heat isn't being used up and the heat buffer becomes full, the firebox will shut off to prevent wasting of fuel. +cannery.firebox.4=One such machine is the stirling engine, which will turn heat directly into energy. + +cannery.foundryChannel=Foundry Channel +cannery.foundryChannel.0=Foundry channels are used to transport molten material from a crucible or storage tank into molds. +cannery.foundryChannel.1=Channels can receive material either by pouring from the top - via an outlet or directly from a crucible - or from the side from other channels. +cannery.foundryChannel.2=When transporting materials, channels will prioritize blocks like outlets and shallow molds. +cannery.foundryChannel.3=When it cannot supply an outlet or a mold, the material will then flow into a neighboring channel. +cannery.foundryChannel.4=Leftover material can be removed by using a shovel. + +cannery.silex=Лазер на вільних електронах (FEL) та Камера лазерного Ñ€Ð¾Ð·Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ñ–Ð·Ð¾Ñ‚Ð¾Ð¿Ñ–Ð² (SILEX) +cannery.silex.0=The Free Electron Laser (FEL) uses energy and a laser crystal to create a powerful laser beam. +cannery.silex.1=Be careful, as the laser will burn/melt through weaker blocks... +cannery.silex.2=...but not blast-proof ones. +cannery.silex.3=The FEL is used to power the Laser Isotope Separation Chamber (SILEX). The FEL and SILEX have to be at least two blocks apart. +cannery.silex.4=The laser has to enter through the glass openings of the SILEX. Aiming it wrong could destroy it. +cannery.silex.5=The openings on the sides can be used to connect fluid ducts to the SILEX. +cannery.silex.6=In addition to the two connectors on the sides, there is a third hidden connector at the bottom from which items can be extracted. +cannery.silex.7=Each recipe requires a specific laser type. Using a stronger type than required will process items faster. +cannery.silex.8=One FEL can supply up to 5 SILEX. Each SILEX has to be one block apart from one another. + +cannery.stirling=Stirling Engine +cannery.stirling.0=The Stirling engine uses heat energy from external sources to create power. +cannery.stirling.1=It needs to be placed on top of a heat-producing machine, such as the firebox. +cannery.stirling.2=The amount of heat it can utilize however is limited, overspinning can lead to catastrophic malfunction. +cannery.stirling.3=The upgraded version can take significantly more heat without breaking. + +cannery.willow=Гірчична верба +cannery.willow.0=The mustard willow is a plant that allows cadmium metal to be harvested. +cannery.willow.1=Willows can be placed on dirt, grass or even dead/oily dirt, but they require water to grow. +cannery.willow.2=Willows can be fertilized with bone meal or industrial fertilizer. They do not need light to grow. +cannery.willow.3=After the second stage of growth, they will need an extra block of space above them to grow further. +cannery.willow.4=After the fourth stage of growth, they require dead or oily dirt below them. +cannery.willow.5=This can be done either by manually planting willows on dead/oily dirt, or by having a hydraulic fracking tower nearby which continuously contaminates the ground. +cannery.willow.6=After reaching the final stage, the willow will remove contamination from the ground, reverting the dead/oily dirt back into regular dirt. +cannery.willow.7=Now the willow's leaves can be harvested. Breaking the top block will drop a small willow plant, 3-6 leaves and keep the bottom part of the plant intact. +cannery.willow.8=Soon the plant will start growing again, yielding more leaves if the dirt is replaced with oily dirt. The leaves can be processed into cadmium powder using an ore acidizer. +cannery.willow.9=Harvesting willow leaves can be automated using the automatic buzzsaw, it will only break plants that are ready for harvest. + +cannery.hadron=ПриÑкорювач чаÑтинок +cannery.hadron.0=A Particle Accelerator consists of three main parts: A Core, an Analysis Chamber, and a set of Superconducting Coils +cannery.hadron.1=This is the Particle Accelerator Core Component, which fires particles at relativistic speeds down the coils towards the Analysis Chamber +cannery.hadron.2=Particles are ejected from here +cannery.hadron.3=And in circular accelerators, return to here +cannery.hadron.4=A coil segment is constructed by using 8 Dense Coils with nothing (or the core) in the middle +cannery.hadron.5=This coil segment must itself also be enclosed within Particle Accelerator Plating +cannery.hadron.6=To access the Core Component, you'll need to add one or more Access Terminals +cannery.hadron.7=The Core Component will also require power to operate, add a power plug on an edge +cannery.hadron.8=The Accelerator will require enough Power Plugs to supply at least 10KHE of electricity per unit of Coil Strength +cannery.hadron.9=Note that the coil segment that wraps around the Core Component is not factored into the Coil Strength calculation +cannery.hadron.10=Nor is this coil segment required for purely linear accelerators +cannery.hadron.11=For circular accelerators, you will need to add corners to change the direction of the particle +cannery.hadron.12=The outside corner coils can be omitted entirely +cannery.hadron.13=The final part of our Accelerator is the Analysis Chamber, which is a 3x3x3 empty chamber surrounded by Analysis Chamber blocks +cannery.hadron.14=Your completed Particle Accelerator should look something like this! + +cannery.hadron.math.0=Сила неодимової котушки: 50 +cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE +cannery.hadron.math.2=Сила котушки з зіркового металу: 1,000 +cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE + +cannery.schottky=Schottky Particle Diode +cannery.schottky.0=This is a Schottky Particle Diode. It can allow for more complex particle accelerator designs and save on electricity +cannery.schottky.1=By default it blocks all particles and must be configured with a Screwdriver +cannery.schottky.2=This face will now accept entering particles +cannery.schottky.3=And this face will eject particles that enter +cannery.schottky.4=The diode now has two exits, and will now behave in a quantum manner, creating virtual particles for each exit +cannery.schottky.5=Once all the virtual particles have reached an Analysis Chamber, the particle with the lowest momentum required for the current recipe is chosen +cannery.schottky.6=The chosen particle undergoes a wavefunction collapse and is made real, consuming only the power that the collapsing particle requires +cannery.schottky.7=If any virtual particles encounter any malformed segments, all virtual particles will be discarded and the erroring particle will be collapsed instead +cannery.schottky.8=Note that virtual particles will never use the same Diode exit twice. Infinite loops will fail, but re-entering a Diode is otherwise fine +cannery.schottky.9=Your Schottky Particle Diode should be properly enclosed, with free paths for each intersection exit + +chem.ARSENIC=ЕкÑÑ‚Ñ€Ð°ÐºÑ†Ñ–Ñ Ð¼Ð¸Ñˆ'Ñку +chem.ASPHALT=Виробництво аÑфальту +chem.BAKELITE=Виробництво карболіту +chem.BALEFIRE=Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð°ÐºÐµÑ‚Ð½Ð¾Ð³Ð¾ BF палива +chem.BP_BIOFUEL=ТранÑеÑÑ‚ÐµÑ€Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð±Ñ–Ð¾Ð¿Ð°Ð»Ð¸Ð²Ð° +chem.BP_BIOGAS=Виробництво біогазу +chem.C4=Синтез C-4 +chem.CC_CENTRIFUGE=Ð’Ñ–Ð´Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ñ…Ð»Ð¾Ñ€Ð¾ÐºÐ°Ð»ÑŒÑ†Ð¸Ñ‚Ñƒ +chem.CC_ELECTROLYSIS=Електроліз хлориду кальцію +chem.CC_HEATING=УдоÑконалене ÑÐºÑ€Ð°Ð¿Ð»ÐµÐ½Ð½Ñ Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ +chem.CC_HEAVY=Базове ÑÐºÑ€Ð°Ð¿Ð»ÐµÐ½Ð½Ñ Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ +chem.CC_I=Покращене ÑÐºÑ€Ð°Ð¿Ð»ÐµÐ½Ð½Ñ Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ +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=Виробництво Пандемоніум(III)танталу +chem.CONCRETE=Виробництво бетону +chem.CONCRETE_ASBESTOS=Виробництво азбеÑтобетону +chem.COOLANT=Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñ…Ð¾Ð»Ð¾Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— рідини +chem.CORDITE=Виробництво кордиту +chem.CRYOGEL=Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑ€Ñ–Ð¾Ð³ÐµÐ»ÑŽ +chem.DESH=Виробництво Деш +chem.DEUTERIUM=ЕкÑÑ‚Ñ€Ð°ÐºÑ†Ñ–Ñ Ð´ÐµÐ¹Ñ‚ÐµÑ€Ñ–ÑŽ +chem.DUCRETE=Виробництво уранобетону +chem.DYN_DNT=ДиноÑинтез динейтронію +chem.DYN_EUPH=ДиноÑинтез юхимію +chem.DYN_SCHRAB=ДиноÑинтез шрабідію +chem.DYNAMITE=Синтез динаміту +chem.ELECTROLYSIS=Кріоелектроліз +chem.EPEARL=Синтез перлини Енду +chem.ETHANOL=Виробництво етанолу +chem.FC_BITUMEN=Крекінг бітуму +chem.FC_DIESEL_KEROSENE=Крекінг дизелю +chem.FC_GAS_PETROLEUM=Крекінг природного газу +chem.FC_I_NAPHTHA=Крекінг промиÑлової оливи +chem.FC_KEROSENE_PETROLEUM=Крекінг гаÑу +chem.FP_HEAVYOIL=Переробка важкої нафти +chem.FP_LIGHTOIL=Переробка легкої нафти +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.LAMINATE=Виробництво багатошарового Ñкла +chem.LPG=Ð¡ÐºÑ€Ð°Ð¿Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ñ„Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ газу +chem.LUBRICANT=Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñтила +chem.METH=Синтез метамфетаміну +chem.MEAT_PROCESSING=ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¼Ñ–Ð½ÐµÑ€Ð°Ð»Ñ–Ð² з м'ÑÑа гліфідів +chem.NITAN=Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñуперпалива NITAN +chem.NITRIC_ACID=Виробництво азотної киÑлоти +chem.OIL_SAND=Переробка бітумінозного піÑку +chem.OSMIRIDIUM_DEATH=Виробництво розчину оÑмиÑтого іридію +chem.PC=Синтез полікарбонату +chem.PC_ELECTROLYSIS=Електроліз хлориду калію +chem.PEROXIDE=Виробництво перекиÑу водню +chem.PET=Синтез ПЕТ +chem.PETROIL_LEADED=Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÑ‚Ñ€Ð°ÐµÑ‚Ð¸Ð»Ñвинцю з бензином +chem.POLYMER=Синтез полімерів +chem.PUF6=Виробництво гекÑафториду плутонію +chem.PVC=Синтез полівінілхлориду +chem.RUBBER=Виробництво гуми +chem.SAS3=Виробництво триÑульфіду шрабідію +chem.SATURN=Виробництво Ñатурніту +chem.SCHRABIDATE=Виробництво ферошрабідату +chem.SCHRABIDIC=Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÑ€Ð°Ð±Ñ–Ð´Ñ–Ñ”Ð²Ð¾Ñ— киÑлоти +chem.SF_BIOFUEL=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð±Ñ–Ð¾Ð¿Ð°Ð»Ð¸Ð²Ð° +chem.SF_BIOGAS=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð±Ñ–Ð¾Ð³Ð°Ð·Ñƒ +chem.SF_DIESEL=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð´Ð¸Ð·ÐµÐ»Ñ +chem.SF_GAS=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñ€Ð¾Ð´Ð½Ð¾Ð³Ð¾ газу +chem.SF_HEATINGOIL=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð¼Ð°Ð·ÑƒÑ‚Ñƒ +chem.SF_HEAVYOIL=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð²Ð°Ð¶ÐºÐ¾Ñ— нафти +chem.SF_KEROSENE=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð³Ð°Ñу +chem.SF_LIGHTOIL=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð»ÐµÐ³ÐºÐ¾Ñ— нафти +chem.SF_LUBRICANT=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð¾Ð»Ð¸Ð²Ð¸ +chem.SF_NAPHTHA=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð»Ñ–Ð³Ñ€Ð¾Ñ—Ð½Ñƒ +chem.SF_OIL=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ñирої нафти +chem.SF_PETROIL=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð±ÐµÐ½Ð·Ð¸Ð½Ñƒ +chem.SF_PETROLEUM=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð½Ð°Ñ„Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ газу +chem.SF_RECLAIMED=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð¾Ñ— оливи +chem.SF_SMEAR=Ð—Ð°Ñ‚Ð²ÐµÑ€Ð´Ñ–Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼Ð¸Ñлової оливи +chem.SHELL_CHLORINE=Виробництво артилерійÑьких ÑнарÑдів з хлором +chem.SHELL_MUSTARD=Виробництво артилерійÑьких ÑнарÑдів з іпритом +chem.SHELL_PHOSGENE=Виробництво артилерійÑьких ÑнарÑдів з фоÑгеном +chem.SOLID_FUEL=Виробництво твердого ракетного палива +chem.SOLVENT=Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñ€Ð³Ð°Ð½Ñ–Ñ‡Ð½Ð¸Ñ… розчинників +chem.STEAM=Кип'ÑÑ‚Ñ–Ð½Ð½Ñ Ð²Ð¾Ð´Ð¸ +chem.SULFURIC_ACID=Виробництво Ñірчаної киÑлоти +chem.TATB=Синтез тріамінотрінітробензолу +chem.TEL=Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÑ‚Ñ€Ð°ÐµÑ‚Ð¸Ð»Ñвинцю +chem.TEST=Test +chem.THORIUM_SALT=Ð—Ð±Ð°Ð³Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ€Ñ–Ñ”Ð²Ð¾Ñ— Ñолі +chem.TNT=Синтез тринітротолуолу +chem.UF6=Виробництво гекÑафториду урану +chem.VIT_GAS=ОÑÐºÐ»ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð°Ð·Ð¾Ð¿Ð¾Ð´Ñ–Ð±Ð½Ð¸Ñ… Ñдерних відходів +chem.VIT_LIQUID=ОÑÐºÐ»ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñ–Ð´ÐºÐ¸Ñ… Ñдерних відходів +chem.XENON=КÑеноновий цикл Лінде +chem.XENON_OXY=Покращений кÑеноновий цикл Лінде +chem.YELLOWCAKE=Виробництво єлоукейка + +commands.satellite.no_active_satellites=Ðктивних Ñупутників не знайдено! +commands.satellite.no_satellite=Супутників, що викориÑтовують цю чаÑтоту, не знайдено! +commands.satellite.not_a_satellite=Утримуваний предмет не Ñ” Ñупутником! +commands.satellite.satellite_descended=Супутник уÑпішно ÑпуÑтивÑÑ. +commands.satellite.satellite_orbited=Супутник запущено. +commands.satellite.should_be_run_as_player=Цю команду має виконати гравець! + +container.ammoBag=Сумка Ð´Ð»Ñ Ð±Ð¾Ñ”Ð¿Ñ€Ð¸Ð¿Ð°Ñів +container.amsBase=AMS Base (Deco) +container.amsEmitter=AMS Emitter (Deco) +container.amsLimiter=AMS Stabilizer (Deco) +container.anvil=Ковадло %s Ñ€Ñ–Ð²Ð½Ñ +container.arcFurnace=Дугова піч +container.armorTable=Стіл модифікації броні +container.ashpit=Зольник +container.assembler=Збиральна машина +container.autocrafter=Ðвтоматичний верÑтак +container.barrel=Бочка +container.bat9000=Big-Ass циÑтерна 9000 +container.battery=Ðакопичувач енергії +container.bombMulti=Багатоцільова бомба +container.casingBag=Сумка Ð´Ð»Ñ Ð³Ñ–Ð»ÑŒÐ· +container.catalyticReformer=Каталітичний риформер +container.centrifuge=Центрифуга +container.chemplant=Хімічний завод +container.compactLauncher=Компактний Ñтартовий майданчик +container.craneBoxer=Конвеєрний пакувальник +container.craneExtractor=Конвеєрний витÑгувач +container.craneGrabber=Конвеєрний збирач +container.craneInserter=Конвеєрний вÑтавник +container.craneRouter=Конвеєрний Ñортувальник +container.craneUnboxer=Конвеєрний розпакувальник +container.crateDesh=Деш Ñщик +container.crateIron=Залізний Ñщик +container.crateSteel=Сталевий Ñщик +container.crateTemplate=Ящик шаблонів +container.crateTungsten=Вольфрамовий Ñщик +container.crystallizer=Рудний окиÑлювач +container.cyclotron=Циклотрон +container.dfcCore=Реактор темного Ñинтезу +container.dfcEmitter=DFC Emitter +container.dfcInjector=DFC Fuel Injector +container.dfcReceiver=DFC Receiver +container.dfcStabilizer=DFC Stabilizer +container.diFurnace=Доменна піч +container.diFurnaceRTG=Ядерна доменна піч +container.droneCrate=Ящик Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ñпортних дронів +container.droneDock=Дрон-ÑÑ‚Ð°Ð½Ñ†Ñ–Ñ +container.droneProvider=ПоÑтачальник дронів +container.droneRequester=Запитувач дронів +container.electricFurnace=Електрична піч +container.epress=Електричний Ð¿Ñ€ÐµÑ +container.exposureChamber=Камера Ð¾Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñтинками +container.factoryAdvanced=Розширена фабрика +container.factoryTitanium=Базова фабрика +container.fluidtank=ЦиÑтерна +container.fileCabinet=Картотечна шафа +container.forceField=Випромінювач Ñилового Ð¿Ð¾Ð»Ñ +container.frackingTower=Вежа гідророзриву плаÑта +container.furnaceBrick=ЦеглÑна піч +container.furnaceCombination=КокÑова піч +container.furnaceIron=Залізна піч +container.furnaceSteel=Сталева піч +container.fusionMultiblock=Великий термоÑдерний реактор +container.fusionaryWatzPlant=Реактор Ватцз електроÑтанції +container.gasCentrifuge=Газова центрифуга +container.gasFlare=Факельна Ð»Ñ–Ð½Ñ–Ñ +container.generator=Ядерний реактор +container.hadron=ПриÑкорювач чаÑтинок +container.heaterFirebox=Ðагрівальна топка +container.heaterHeatex=Теплообмінник +container.heaterOilburner=Спалювач рідини +container.heaterOven=Ðагрівальна піч +container.hydrotreater=ГідроочиÑник +container.iGenerator=ПромиÑловий генератор +container.keyForge=Стіл замочника +container.launchPad=Стартовий майданчик +container.launchPadRusted=Стартовий майданчик +container.launchTable=Великий Ñтартовий майданіще +container.leadBox=Свинцевий Ñщик +container.machineAmmoPress=ÐŸÑ€ÐµÑ Ð´Ð»Ñ Ð±Ð¾Ñ”Ð¿Ñ€Ð¸Ð¿Ð°Ñів +container.machineArcWelder=Дуговий зварювальник +container.machineArcFurnaceLarge=Дугова піч +container.machineBoiler=Ðагрівач нафти +container.machineCMB=CMB Steel Furnace +container.machineCoal=Твердопаливний генератор +container.machineCoker=КокÑова уÑтановка +container.machineCompressor=КомпреÑор +container.machineCrucible=Ð›Ð¸Ð²Ð°Ñ€Ð½Ñ +container.machineDiesel=Дизельний генератор +container.machineElectricBoiler=Електричний нагрівач нафти +container.machineElectrolyser=Електролізер +container.machineFEL=FEL +container.machineFunnel=Комбінаторна воронка +container.machineICF=ICF +container.machineICFPress=Виробник паливних гранул ICF +container.machineITER=ТермоÑдерний реактор +container.machineLargeTurbine=ПромиÑлова парова турбіна +container.machineLiquefactor=Скраплювач +container.machineMixer=ПромиÑловий змішувач +container.machineOreSlopper=Переробник корінної руди +container.machinePyroOven=Піролізна піч +container.machineRefinery=Ðафтопереробний завод +container.machineRotaryFurnace=Роторна піч +container.machineSelenium=Радіальний двигун +container.machineShredder=Подрібнювач +container.machineSILEX=SILEX +container.machineSolderingStation=ПаÑльна ÑÑ‚Ð°Ð½Ñ†Ñ–Ñ +container.machineSolidifier=Затверджувач +container.machineStrandCaster=УÑтановка безперервного Ð»Ð¸Ñ‚Ñ‚Ñ +container.machineTurbine=Парова турбіна +container.machineTurbofan=ТурбовентилÑтор +container.machineWoodBurner=Дров'Ñна піч +container.machine_schrabidium_transmutator=ПриÑтрій Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ñмутації шрабідію +container.massStorage=Сховище +container.microwave=Мікрохвильова піч +container.miningDrill=Ðвтоматичний гірничий бур +container.miningLaser=ШахтарÑький лазер +container.missileAssembly=Ð¡Ñ‚Ð°Ð½Ñ†Ñ–Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸ ракет +container.nukeBoy=Малюк +container.nukeCustom=КаÑтомна бомба +container.nukeFleija=F.L.E.I.J.A. +container.nukeFstbmb=BF бомба +container.nukeFurnace=Ядерна піч +container.nukeGadget=Гаджет +container.nukeMan=ТовÑтун +container.nukeMike=Ðйві Майк +container.nukeN2=N² Міна +container.nukeN45=МорÑька міна N45 +container.nukePrototype=Прототип +container.nukeSolinium=Солінієвий Ñтерилізатор +container.nukeTsar=Цар-бомба +container.oilWell=Ðафтова вежа +container.orbus=Важка магнітна циÑтерна +container.paDetector=Детектор +container.paDipole=Диполь +container.paQuadrupole=Квадруполь +container.paSource=Джерело чаÑтинок +container.plasmaHeater=Ðагрівач плазми +container.pneumoTube=Пневматична труба +container.press=Твердопаливний Ð¿Ñ€ÐµÑ +container.puf6_tank=ЦиÑтерна гекÑафториду плутонію +container.pumpjack=ВерÑтат-гойдалка +container.radGen=Радіаційний двигун +container.radar=Радар +container.radiobox=FM-передавач +container.radiolysis=РІТЕГ та радіолізна камера +container.radiorec=FM радіо +container.rbmkBoiler=Паровий канал РБМК +container.rbmkControl=Регулюючий Ñтрижень РБМК +container.rbmkControlAuto=Ðвтоматичний регулюючий Ñтрижень РБМК +container.rbmkHeater=Ðагрівач рідини РБМК +container.rbmkOutgasser=Канал Ð¾Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ð Ð‘ÐœÐš +container.rbmkReaSim=Паливний Ñтрижень РБМК (ReaSim) +container.rbmkRod=Паливний Ñтрижень РБМК +container.rbmkStorage=Колона Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð Ð‘ÐœÐš +container.reactorBreeding=Реактор-розмножувач +container.reactorControl=Блок диÑтанційного ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ°ÐºÑ‚Ð¾Ñ€Ð¾Ð¼ +container.reactorLarge=Великий Ñдерний реактор +container.reactorResearch=ДоÑлідницький реактор +container.reix=Rei-X Mainframe +container.rtg=РІТЕГ +container.rtgFurnace=РІТЕГ піч +container.rttyController=РедÑтоун-радіо контролер +container.rttyCounter=РедÑтоун-радіо лічильник предметів +container.rttyLogic=РедÑтоун-радіо логічний приймач +container.rttyReader=РедÑтоун-радіо зчитувач +container.rttyReceiver=РедÑтоун-радіо приймач +container.rttySender=РедÑтоун-радіо передавач +container.safe=Сейф +container.satDock=Вантажний поÑадковий майданчик +container.satLinker=SatLink Device +container.siren=Сирена +container.soyuzCapsule=Вантажна поÑадкова капÑула +container.soyuzLauncher=Стартовий майданчик "Союза" +container.storageDrum=Бочка Ð´Ð»Ñ Ð·Ð°Ñ…Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð½Ñ Ñдерних відходів +container.teleLinker=TelLink Device +container.teleporter=Телепорт +container.toolBox=Ящик Ð´Ð»Ñ Ñ–Ð½Ñтрументів +container.trainTram=Трамвай з платформою +container.turbinegas=Газова турбіна комбінованого циклу +container.turretArty=Грег +container.turretChekhov=КоÑторіз +container.turretFriendly=МіÑтер Дружній +container.turretFritz=Фріц +container.turretHIMARS=Генрі +container.turretHoward=Говард +container.turretJeremy=Джеремі +container.turretMaxwell=МакÑвелл +container.turretRichard=Річард +container.turretSentry=Браун +container.turretTauon=Тауон +container.uf6_tank=ЦиÑтерна гекÑафториду урану +container.vacuumDistill=Вакуумний нафтопереробний завод +container.wasteDrum=Контейнер Ð¾Ñ…Ð¾Ð»Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ñ†ÑŒÐ¾Ð²Ð°Ð½Ð¾Ð³Ð¾ палива +container.watzPowerplant=Ватцз електроÑÑ‚Ð°Ð½Ñ†Ñ–Ñ +container.weaponsTable=Стіл модифікації зброї +container.zirnox=Ядерний реактор ЦИРÐОКС + +copytool.filter=Фільтр +copytool.invertRedstone=Інвертований редÑтоун +copytool.invertFilter=Інвертований фільтр +copytool.orientation=ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ +copytool.pattern0=Червона Ñторона +copytool.pattern1=Помаранчева Ñторона +copytool.pattern2=Жовта Ñторона +copytool.pattern3=Зелена Ñторона +copytool.pattern4=Блакитна Ñторона +copytool.pattern5=Фіолетова Ñторона + +crucible.aa=Виробництво удоÑконаленого Ñплаву +crucible.abronze=Виробництво миш'Ñкової бронзи +crucible.bbronze=Виробництво віÑмутової бронзи +crucible.bscco=Виробництво віÑмут Ñтронцій кальцій мідь окÑиду (BSCCO) +crucible.cdalloy=Виробництво кадмієвої Ñталі +crucible.cmb=Виробництво Ñталі комбайнів +crucible.ferro=Виробництво фероурану +crucible.hematite=Виробництво заліза з гематиту +crucible.hss=Виробництво швидкорізальної Ñталі +crucible.malachite=Виробництво міді з малахіту +crucible.magtung=Виробництво намагніченого вольфраму +crucible.redcopper=Виробництво червоної міді +crucible.steel=Виробництво Ñталі +crucible.steelMeteoric=Виробництво Ñталі з метеоритного заліза +crucible.steelPig=Steel Виробництво Ñталі з чавуну +crucible.steelWrought=Виробництво Ñталі з кованого заліза +crucible.tcalloy=Виробництво технецієвої Ñталі + +damage.inset=Опір при повному комплекті: +damage.item=Опір до: +damage.category.EXPL=Вибухів +damage.category.FIRE=Вогню +damage.category.PROJ=СнарÑдів +damage.exact.drown=Ð£Ñ‚Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ +damage.exact.fall=ÐŸÐ°Ð´Ñ–Ð½Ð½Ñ +damage.exact.LASER=Лазерів +damage.exact.onFire=Ð“Ð¾Ñ€Ñ–Ð½Ð½Ñ +damage.other=Інше + +death.attack.acid=%1$s впав у киÑлоту. +death.attack.acidPlayer=%1$s був розчинений %2$s. +death.attack.ams=%1$s був наповнений ÑмертоноÑними чаÑтинками, Ñким людÑтво ще не дало назви. +death.attack.amsCore=%1$s випарувавÑÑ Ñƒ вогні ÑингулÑрноÑті. +death.attack.asbestos=%1$s тепер має право на фінанÑову компенÑацію. +death.attack.bang=%1$s розірвано на куÑочки. +death.attack.blackhole=%1$s перетворивÑÑ Ð½Ð° Ñпагеті. +death.attack.blacklung=%1$s помер від антракозу легень. +death.attack.blender=%1$s перетворивÑÑ Ð½Ð° фарш. +death.attack.boat=%1$s був збитий човном. +death.attack.boil=%1$s був зварений живцем %2$s. +death.attack.boxcar=%1$s розчавлений падаючим вагоном. Ох ну. +death.attack.broadcast=У %1$s розтопивÑÑ Ð¼Ð¾Ð·Ð¾Ðº. +death.attack.building=%1$s розчавлений будівлею. +death.attack.cheater=Кишки %1$s перетворилиÑÑ Ð½Ð° овеÑ. (???) +death.attack.chopperBullet=%1$s was rekt by %2$s. +death.attack.cloud=%1$s розтанув, Ñк морозиво на Ñонці. +death.attack.cmb=%1$s was fizzeled by %2$s. +death.attack.digamma=%1$s Ñтупив у безодню. +death.attack.electricity=%1$s був вбитий електричним Ñтрумом. +death.attack.electrified=%1$s був вбитий електричним Ñтрумом %2$s. +death.attack.euthanized=%1$s евтанізований %2$s. +death.attack.euthanizedSelf2=%1$s отримує премію Дарвіна. +death.attack.euthanizedSelf=%1$s зробив Ñобі евтаназію, Ñкий придурок. +death.attack.exhaust=%1$s перетворений на шашлик взлітаючою ракетою. +death.attack.flamethrower=%1$s був кремований %2$s. +death.attack.flamethrower.item=%1$s був кремований %2$s за допомогою %3$s. +death.attack.ice=%2$s перетворив %1$s на морозиво. +death.attack.laser=%2$s перетворив на попіл %1$s. +death.attack.laser.item=%2$s перетворив %1$s на попіл за допомогою %3$s. +death.attack.lead=%1$s помер від Ð¾Ñ‚Ñ€ÑƒÑ”Ð½Ð½Ñ Ñвинцем. +death.attack.lunar=%1$s забув зарÑдити Ñвої життєво важливі органи. +death.attack.meteorite=%1$s поÑтраждав від Ð¿Ð°Ð´Ñ–Ð½Ð½Ñ ÐºÐ°Ð¼ÐµÐ½ÑŽ з коÑмоÑу. +death.attack.microwave=%1$s вибухнув під дією мікрохвильового випромінюваннÑ. +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 помер від радіаційного отруєннÑ. +death.attack.revolverBullet=%1$s отримав поÑтріл у голову від %2$s. +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's atoms have been destroyed by %2$s. +death.attack.subAtomic2=%1$s was QPU-misaligned because %2$s tampered with their de facto speed. +death.attack.subAtomic3=%1$s's divergence dropped below 1 percent because of %2$s. +death.attack.subAtomic4=%1$s was divided by zero by %2$s. +death.attack.subAtomic5=%1$s was nullified by %2$s. +death.attack.suicide=%1$s Ñ€Ð¾Ð·Ð½Ñ–Ñ Ñобі голову. +death.attack.taint=%1$s died from flux tumors. +death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. +death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. +death.attack.teleporter=%1$s телепортувавÑÑ Ð² небуттÑ. + +death.sedna.electric=%1$s was fried. +death.sedna.electric.attacker=%1$s was fried by %2$s. +death.sedna.explosive=%1$s was blown up. +death.sedna.explosive.attacker=%1$s was blown up by %2$s. +death.sedna.fire=%1$s was incinerated. +death.sedna.fire.attacker=%1$s was incinerated by %2$s. +death.sedna.laser=%1$s was pulverized. +death.sedna.laser.attacker=%1$s was pulverized by %2$s. +death.sedna.microwave=%1$s was microwaved. +death.sedna.microwave.attacker=%1$s was microwaved by %2$s. +death.sedna.subatomic=%1$s was atomized. +death.sedna.subatomic.attacker=%1$s was atomized by %2$s. +death.sedna.other=%1$s was killed. +death.sedna.other.attacker=%1$s was killed by %2$s. +death.sedna.physical=%1$s was shot. +death.sedna.physical.attacker=%1$s was shot by %2$s. + +desc.gui.assembler.warning=§cПомилка:§r Ð”Ð»Ñ Ñ†Ñ–Ñ”Ñ— машини потрібен шаблон Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸! +desc.gui.chemplant.warning=§cПомилка:§r Ð”Ð»Ñ Ñ†Ñ–Ñ”Ñ— машини потрібен хімічний шаблон! +desc.gui.gasCent.enrichment=§2Збагаченнѧr$Ð—Ð±Ð°Ð³Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÑ€Ð°Ð½Ñƒ вимагає каÑкадів.$Двоцентрифужні каÑкади даватимуть$уранове паливо, чотирицентрифужні каÑкади$забезпечать повне розділеннÑ. +desc.gui.gasCent.output=§6ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ñ–Ð´Ð¸Ð½Ð¸Â§r$Рідину можна передавати в іншу центрифугу$через вихідний отвір Ð´Ð»Ñ Ð¿Ð¾Ð´Ð°Ð»ÑŒÑˆÐ¾Ñ— обробки. +desc.gui.nukeBoy.desc=§1Вимагає:§r$ * Ðейтронний щит$ * СнарÑд U235$ * Субкритична ціль U235$ * Кордитний зарÑд$ * Запальник бомби +desc.gui.nukeGadget.desc=§1Вимагає:§r$ * 4 МаÑиви вибухових лінз$ Першого поколіннÑ$ * Велике плутонієве Ñдро$ * Проводка +desc.gui.nukeMan.desc=§1Вимагає:§r$ * 4 МаÑиви вибухових лінз$ Першого поколіннÑ$ * Плутонієве Ñдро$ * Блок детонатор +desc.gui.nukeMike.desc=§1Вимагає:§r$ * 4 МаÑиви вибухових лінз$ * Плутонієве Ñдро$ * Deuterium Cooling Unit$ * Уранове Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÐ¹Ñ‚ÐµÑ€Ñ–Ñ”Ð²Ð¾Ð³Ð¾ баку$ * Дейтерієвий бак +desc.gui.nukeTsar.desc=§1Вимагає:§r$ * 4 МаÑиви вибухових лінз$ * Плутонієве Ñдро$§9Опціонально:§r$ * Ядро Цар-бомби +desc.gui.rttyLogic.cond0=Сигнал §6МЕÐШЕ§r КонÑтанти +desc.gui.rttyLogic.cond1=Сигнал §6МЕÐШЕ ÐБО ДОРІВÐЮЄ§r КонÑтанті +desc.gui.rttyLogic.cond2=Сигнал §6БІЛЬШЕ ÐБО ДОРІВÐЮЄ§r КонÑтанті +desc.gui.rttyLogic.cond3=Сигнал §6БІЛЬШЕ§r КонÑтанти +desc.gui.rttyLogic.cond4=Сигнал §6ДОРІВÐЮЄ§r КонÑтанті +desc.gui.rttyLogic.cond5=Сигнал §6ÐЕ ДОРІВÐЮЄ§r КонÑтанті +desc.gui.rttyLogic.cond6=Сигнал §6ВІДПОВІДÐЄ§r РÑдку +desc.gui.rttyLogic.cond7=Сигнал §6ÐЕ ВІДПОВІДÐЄ§r РÑдку +desc.gui.rttyLogic.cond8=Сигнал §6МІСТИТЬ§r РÑдок +desc.gui.rttyLogic.cond9=Сигнал §6ÐЕ МІСТИТЬ§r РÑдок +desc.gui.radiolysis.desc=§9Опиѧr$Цей РІТЕГ ефективніший за інші та$обладнаний камерою радіолізу длÑ$крекінгу та Ñтерилізації. +desc.gui.rtgBFurnace.desc=Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ потрібно принаймні 15 тепла$Чим більше тепла, тим швидше він працює$ÐагріваннÑ, що перевищує макÑимальну швидкіÑть, не матиме жодного ефекту$Короткоживучі пелети можуть розкладатиÑÑ +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.turbinegas.automode=§2Режим автоматичного дроÑÐµÐ»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚ÑƒÑ€Ð±Ñ–Ð½Ð¸Â§r$ÐатиÑнувши кнопку "AUTO", турбіна$втоматично відрегулює виробництво електроенергії$на оÑнові необхідної енергії в мережі +desc.gui.turbinegas.fuels=§6ДопуÑтимі види палива:§r +desc.gui.turbinegas.warning=§cÐизький рівень палива або маÑтила!§r +desc.gui.zirnox.coolant=§3Охолодженнѧr$CO2 передає тепло від реактора до води.$Це Ñкип'Ñтить Ñ—Ñ— до надзвичайно гарÑчу пару$ЕфективніÑть Ð¾Ñ…Ð¾Ð»Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° виробництва пари$залежить від тиÑку. +desc.gui.zirnox.pressure=§6ТиÑк§r$ТиÑк можна зменшити, випуÑтивши CO2.$Однак занадто низький тиÑк призведе до зниженнÑ$ефективноÑті Ð¾Ñ…Ð¾Ð»Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° виробництва пари.$ОÑтерігайтеÑÑ Ñ€Ð¾Ð·Ð¿Ð»Ð°Ð²Ð»ÐµÐ½Ð½Ñ! +desc.gui.zirnox.warning1=§cПомилка:§r Ð”Ð»Ñ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¾Ñ— роботи$реактора потрібна вода! +desc.gui.zirnox.warning2=§cПомилка:§r Ð”Ð»Ñ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¾Ñ— роботи$реактора потрібен CO2! + +desc.item.ammo.con_accuracy2=- Сильно знижена точніÑть +desc.item.ammo.con_damage=- Сильно зменшена шкода +desc.item.ammo.con_heavy_wear=- Сильно підвищений Ð·Ð½Ð¾Ñ +desc.item.ammo.con_ling_fire=- Ðемає затÑжного вогню +desc.item.ammo.con_nn=- Ðавіть не Ñдерка +desc.item.ammo.con_no_damage=- No damage +desc.item.ammo.con_no_explode1=- Non-explosive +desc.item.ammo.con_no_explode2=- No block damage +desc.item.ammo.con_no_explode3=- No splash damage +desc.item.ammo.con_no_fire=- Not incendiary +desc.item.ammo.con_no_mirv=- Not recommended for the Proto MIRV +desc.item.ammo.con_no_projectile=- No projectile +desc.item.ammo.con_penetration=- Not penetrating +desc.item.ammo.con_radius=- Decreased blast radius +desc.item.ammo.con_range2=- Highly decreased range +desc.item.ammo.con_sing_projectile=- Single projectile +desc.item.ammo.con_speed=- Decreased projectile speed +desc.item.ammo.con_super_wear=- Very highly increased wear +desc.item.ammo.con_wear=- Increased wear +desc.item.ammo.neu_40mm=* It's a 40mm grenade that we squeezed to fit the barrel! +desc.item.ammo.neu_blank=* It's a blank +desc.item.ammo.neu_boat=* Boat +desc.item.ammo.neu_boxcar=* Boxcar +desc.item.ammo.neu_building=* Building +desc.item.ammo.neu_chlorophyte=* Chlorophyte +desc.item.ammo.neu_eraser=* For removing big mistakes +desc.item.ammo.neu_fun=* Fun for the whole family! +desc.item.ammo.neu_heavy_metal=* Heavy Metal +desc.item.ammo.neu_homing=* Homing +desc.item.ammo.neu_jolt=* Jolt +desc.item.ammo.neu_leadburster=* Attaches to surfaces and sprays bullets +desc.item.ammo.neu_less_bouncy=* Less bouncy +desc.item.ammo.neu_maskman_flechette=* Fires a tracer which summons a storm of DU-flechettes +desc.item.ammo.neu_maskman_meteorite=* Fires a high-damage round that summons a small meteorite +desc.item.ammo.neu_more_bouncy=* Extra bouncy +desc.item.ammo.neu_no_bounce=* Not bouncy +desc.item.ammo.neu_no_con=* No drawbacks lole +desc.item.ammo.neu_starmetal=* Starmetal +desc.item.ammo.neu_tracer=* Tracer +desc.item.ammo.neu_uhh=* Uhhh +desc.item.ammo.neu_warcrime1=* Technically a warcrime +desc.item.ammo.neu_warcrime2=* Twice the warcrime in a single round! +desc.item.ammo.pro_accurate1=+ Increased accuracy +desc.item.ammo.pro_accurate2=+ Near-perfect accuracy +desc.item.ammo.pro_balefire=+ Balefire +desc.item.ammo.pro_bomb_count=+ Increased bomb count +desc.item.ammo.pro_caustic=+ Caustic +desc.item.ammo.pro_chainsaw=+ Chainsaw +desc.item.ammo.pro_chlorine=+ Chlorine gas +desc.item.ammo.pro_damage=+ Increased damage +desc.item.ammo.pro_damage_slight=+ Above average damage +desc.item.ammo.pro_emp=+ EMP +desc.item.ammo.pro_explosive=+ Explosive +desc.item.ammo.pro_fallout=+ Fallout +desc.item.ammo.pro_fit_357=+ Fits every .357 model +desc.item.ammo.pro_flames=+ Increased flame count +desc.item.ammo.pro_gravity=+ Decreased gravity +desc.item.ammo.pro_heavy_damage=+ Highly increased damage +desc.item.ammo.pro_incendiary=+ Incendiary +desc.item.ammo.pro_lunatic=+ Lunatic +desc.item.ammo.pro_marauder=+ Instantly removes annoying and unbalanced enemies +desc.item.ammo.pro_mining=+ Explosion drops all blocks +desc.item.ammo.pro_no_gravity=+ Not affected by gravity +desc.item.ammo.pro_nuclear=+ Nuclear +desc.item.ammo.pro_penetration=+ Penetrating +desc.item.ammo.pro_percussion=+ Percussive blast +desc.item.ammo.pro_phosphorus=+ Induces phosphorus burns +desc.item.ammo.pro_phosphorus_splash=+ Phosphorus splash +desc.item.ammo.pro_poison_gas=+ Poison splash +desc.item.ammo.pro_radius=+ Increased blast radius +desc.item.ammo.pro_radius_high=+ Highly increased blast radius +desc.item.ammo.pro_range=+ Increased range +desc.item.ammo.pro_rocket=+ Rocket +desc.item.ammo.pro_rocket_propelled=+ Rocket Propelled +desc.item.ammo.pro_shrapnel=+ Shrapnel +desc.item.ammo.pro_speed=+ Increased projectile speed +desc.item.ammo.pro_stunning=+ Stunning +desc.item.ammo.pro_toxic=+ Toxic +desc.item.ammo.pro_wear=+ Decreased wear +desc.item.ammo.pro_withering=+ Withering +desc.item.armorMod.display=відобразити вÑтановлені модифікації броні +desc.item.battery.charge=ЗарÑд: %s / %sHE +desc.item.battery.chargePerc=ЗарÑд: %s%% +desc.item.battery.chargeRate=ШвидкіÑть зарÑджаннÑ: %sHE/тік +desc.item.battery.dischargeRate=ШвидкіÑть розрÑджаннÑ: %sHE/тік +desc.item.durability=МіцніÑть: %s +desc.item.grenade.fuse=Затримка: %s +desc.item.grenade.fuseImpact=Ð—Ñ–Ñ‚ÐºÐ½ÐµÐ½Ð½Ñ +desc.item.grenade.fuseInstant=Миттєво +desc.item.gun.ammo=БоєприпаÑи %s +desc.item.gun.ammoBelt=Стрічка +desc.item.gun.ammoEnergy=ЕнергіÑ; %sHE за поÑтріл +desc.item.gun.ammoEnergyAlt=%sHE за альтернативний поÑтріл +desc.item.gun.ammoMag=%s / %s +desc.item.gun.ammoType=Тип боєприпаÑів: %s +desc.item.gun.ammoTypeAlt=Вторинні боєприпаÑи: %s +desc.item.gun.damage=Шкода: %s - %s +desc.item.gun.damageAlt=Шкода: %s +desc.item.gun.lore=щоб переглÑнути більш глибокий лор +desc.item.gun.loreFunc=щоб переглÑнути більш детальний функціонал +desc.item.gun.manufacturer=Виробник: %s +desc.item.gun.name=Ðазва: %s +desc.item.gun.pellets=СнарÑди: %s - %s +desc.item.gun.penetration=Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð¸Ñ‚Ñ‚Ñ Ð±Ñ€Ð¾Ð½Ñ–: %s +desc.item.kitArmor=Ð‘Ñ€Ð¾Ð½Ñ Ð±ÑƒÐ´Ðµ замінена новим комплектом. +desc.item.kitHaz=Ð‘Ñ€Ð¾Ð½Ñ Ð±ÑƒÐ´Ðµ замінена захиÑним коÑтюмом. +desc.item.kitPack=Яка вигідна угода! +desc.item.kitPool=Будь лаÑка, звільніть інвентар перед відкриттÑм! +desc.item.pileRod=§eВикориÑтовуйте на проÑвердленому графіті Ð´Ð»Ñ Ð²Ñтавки$§eВикориÑтовуйте викрутку, щоб вийнÑти$ +desc.item.pipette.corrosive=Може впоратиÑÑ Ð· корозійними рідинами. +desc.item.pipette.laboratory=Тепер із 50-кратною точніÑтю! +desc.item.pipette.noCorrosive=§eÐе може впоратиÑÑ Ð· корозійними рідинами. +desc.item.pipette.noEmpty=§eПіпетка не порожнÑ! +desc.item.rtgDecay=РозпадаєтьÑÑ Ð½Ð°: %s +desc.item.rtgHeat=Рівень потужноÑті: %s +desc.item.storage.capacity=ЄмніÑть %s%%s +desc.item.storage.proscons=щоб переглÑнути ÑпиÑок плюÑів Ñ– мінуÑів +desc.misc.357=.357 Magnum +desc.misc.556=.223 Remington +desc.misc.762=.308 Winchester +desc.misc.func=§n-- Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ -- +desc.misc.lanthanum="Лантан" +desc.misc.lctrl=§8Утримуйте <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Лор -- +desc.misc.lshift=§8Утримуйте <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Точка плавленнÑ: §c%s +desc.misc.noPos=ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð½Ðµ вÑтановлена! +desc.misc.pos=ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð²Ñтановлена на: %s, %s, %s +desc.misc.posSet=ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð²Ñтановлена! +desc.item.wasteCooling=Охолодити в Контейнері Ð¾Ñ…Ð¾Ð»Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ñ†ÑŒÐ¾Ð²Ð°Ð½Ð¾Ð³Ð¾ палива +desc.item.zirnoxBreedingRod=§2[Розмножувальний Ñтрижень ЦИРÐОКС]$§eРозміÑтіть поруч паливні Ñтрижні Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¼Ð½Ð¾Ð¶ÐµÐ½Ð½Ñ$§eТриваліÑть роботи %d тіків +desc.item.zirnoxRod=§a[Паливний Ñтрижень ЦИРÐОКС]$§eГенерує %1$d тепла за тік$§eТриваліÑть роботи %2$d тіків + +digamma.playerDigamma=Digamma exposure: +digamma.playerHealth=Digamma influence: +digamma.playerRes=Digamma resistance: +digamma.title=DIGAMMA DIAGNOSTIC + +entity.entity_cyber_crab.name=Кіберкраб +entity.entity_elder_one.name=КрÑÐºÐ¾Ñ Ð¡Ñ‚Ð°Ñ€ÑˆÐ¸Ð¹ +entity.entity_fucc_a_ducc.name=Качка +entity.entity_glyphid.name=Гліфід +entity.entity_glyphid_behemoth.name=Гліфід Бегемот +entity.entity_glyphid_blaster.name=Гліфід БлаÑтер +entity.entity_glyphid_bombardier.name=Гліфід Бомбардир +entity.entity_glyphid_brawler.name=Гліфід Боєць +entity.entity_glyphid_brenda.name=Бренда +entity.entity_glyphid_digger.name=Гліфід Копач +entity.entity_glyphid_nuclear.name=Великий ДжонÑон +entity.entity_glyphid_scout.name=Гліфід Розвідник +entity.entity_ntm_fbi.name=Ðгент ФБР +entity.entity_ntm_fbi_drone.name=Дрон ФБР +entity.entity_ntm_radiation_blaze.name=Елементаль Ð Ð¾Ð·Ð¿Ð»Ð°Ð²Ð»ÐµÐ½Ð½Ñ +entity.hbm.entity_ntm_ufo.name=МарÑіанький корабель ÐЛО +entity.entity_mob_hunter_chopper.name=Гвинтокрил МиÑлиивець +entity.entity_mob_mask_man.name=МаÑкмен +entity.entity_mob_gold_creeper.name=Золотий Кріпер +entity.entity_mob_nuclear_creeper.name=Ядерний Кріпер +entity.entity_mob_phosgene_creeper.name=ФоÑгений Кріпер +entity.entity_mob_tainted_creeper.name=Інфікований Кріпер +entity.entity_mob_volatile_creeper.name=Шлаковий Кріпер +entity.entity_parasite_maggot.name=Паразитична личинка +entity.entity_pigeon.name=Голуб +entity.entity_plastic_bag.name=ПлаÑтиковий пакет +entity.entity_taint_crab.name=Інфікований Краб +entity.entity_tesla_crab.name=ТеÑла Краб +entity.hbm.entity_balls_o_tron.name=БаллÑ-О-Трон Прайм +entity.hbm.entity_balls_o_tron_seg.name=БаллÑ-О-Трон Сегмент +entity.hbm.entity_bullet.name=ÐšÑƒÐ»Ñ +entity.hbm.entity_rocket.name=Ракета +entity.hbm.entity_schrabnel.name=Шрапнель + +excavator.crusher=Перемикач подрібнювача +excavator.drill=перемикач бура +excavator.silktouch=Перемикач шовкового дотику +excavator.veinminer=Перемикач жилкового майнера +excavator.walling=Перемикач будівництва Ñтін + +flare.ignition=Ð—Ð°Ð¿Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ +flare.valve=ПерепуÑкний клапан + +fluid.acid_fluid=КиÑлота +fluid.corium_fluid=Коріум +fluid.mud_fluid=ТокÑичні відходи +fluid.rad_lava_fluid=Радіоактивна вулканічна лава +fluid.schrabidic_fluid=Шрабідієва киÑлота +fluid.toxic_fluid=Стереотипний зелений Ñлиз +fluid.volcanic_lava_fluid=Вулканічна лава + +foundry.filter=Фільтр %s +foundry.inverted=РедÑтоун інвертований +foundry.invertFilter=Фільтр інвертований +foundry.noCast=Форма не вÑтановлена! + +geiger.chunkRad=Поточний рівень радіації в чанку: +geiger.envRad=Загальний рівень радіації довкіллÑ: +geiger.playerRad=Рівень Ð¾Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ð³Ñ€Ð°Ð²Ñ†Ñ: +geiger.playerRes=Рівень захищеноÑті гравцÑ: +geiger.title=ЛІЧИЛЬÐИК ГЕЙГЕРР+geiger.title.dosimeter=ДОЗИМЕТР + +gun.make.ARMALITE=Armalite +gun.make.AUTO_ORDINANCE=Auto-Ordnance Corporation +gun.make.BAE=BAE Systems plc +gun.make.BENELLI=Benelli Armi SpA +gun.make.BLACK_MESA=Black Mesa Research Facility +gun.make.CERIX=Cerix Magnus +gun.make.COLT=Colt's Manufacturing Company +gun.make.COMBINE=The Universal Union +gun.make.CUBE=Cube 2: Sauerbraten +gun.make.DRG=Deep Rock Galactic +gun.make.ENZINGER=Enzinger Union +gun.make.EQUESTRIA=Equestria Missile Systems +gun.make.FLIMFLAM=FlimFlam Industries +gun.make.F_STRONG=Fort Strong +gun.make.GLORIA=Gloria GmbH +gun.make.HASBRO=Hasbro +gun.make.H_AND_K=Heckler & Koch +gun.make.H_AND_R=Harrington & Richardson +gun.make.IF=Ironshod Firearms +gun.make.IMI=Israel Military Industries +gun.make.IMI_BIGMT=IMI / Big MT +gun.make.LANGFORD=Langford Research Laboratories +gun.make.LUNA=Lunar Defense Corp +gun.make.MAGNUM_R_IMI=Magnum Research / Israel Military Industries +gun.make.MANN=Open Mann Co. +gun.make.MAXIM=Hiram Maxim +gun.make.METRO=Metro Gunsmiths +gun.make.MWT=MWT Prototype Labs +gun.make.NAWS=Kayarm Industries +gun.make.ERFURT=Erfurter Maschinenfabrik Geipel +gun.make.NONE=- +gun.make.RAYTHEON=Raytheon Missile Systems +gun.make.REMINGTON=Remington Arms +gun.make.ROCKWELL=Rockwell International Corporation +gun.make.ROCKWELL_U=Rockwell International Corporation? +gun.make.RYAN=Ryan Industries +gun.make.SAAB=Saab Bofors Dynamics +gun.make.SACO=Saco Defense / US Ordnance +gun.make.TULSKY=Tulsky Oruzheiny Zavod +gun.make.UAC=Union Aerospace Corporation +gun.make.UNKNOWN=??? +gun.make.WESTTEK=WestTek +gun.make.WGW=Wilhelm-Gustloff-Werke +gun.make.WINCHESTER=Winchester Repeating Arms Company +gun.make.WINCHESTER_BIGMT=Winchester Repeating Arms Company / Big MT + +gun.name.ar15_50=AR-15 .50 BMG Mod +gun.name.baeAR=Britannian Standard Issue Assault Rifle +gun.name.bel=Balefire Egg Launcher +gun.name.benelli=Benelli M4 Super 90 +gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) +gun.name.bio=RI No. 2 Mark 1 +gun.name.bolter=Manticora Pattern Boltgun +gun.name.congoLake=Congo Lake Pump-Action Grenade Launcher +gun.name.cPython=Colt Python +gun.name.cz53=CZ53 Personal Minigun +gun.name.cz57=CZ57 Avenger Minigun +gun.name.dart=Needle Gun +gun.name.deagle=IMI Desert Eagle +gun.name.emp=EMP Orb Projector +gun.name.extinguisher=PROTEX Fire Exinguisher 6kg +gun.name.ffiV=FFI Viper +gun.name.ffiVInox=FFI Viper Inox +gun.name.ffiVLead=FFI Viper Lead +gun.name.ffiVN1=FFI Viper N1 +gun.name.ffiVN2=FFI Viper N2 +gun.name.ffiVUltra=FFI Viper Ultra +gun.name.ffivBling=FFI Viper Bling +gun.name.ffivSatur=FFI Viper D-25A +gun.name.g36=Heckler & Koch Gewehr 36 +gun.name.gPistol=Granatpistole HK69 +gun.name.gustav=Carl Gustav Recoilless Rifle M1 +gun.name.ifHorseshoe=IF-18 Horseshoe +gun.name.ifPit=IF-18 Horseshoe Bottomless Pit +gun.name.ifScope=IF-18 Horseshoe Scoped +gun.name.ifStorm=IF-18 Horseshoe Silver Storm +gun.name.ifVanity=IF-18 Horseshoe Vanity +gun.name.karl=M1 Karl-Gerät +gun.name.ks23=KS-23 +gun.name.lacunae=Auntie Lacunae +gun.name.lasetDet=Hopeville Laser Detonator +gun.name.lunaAR=1986 Bishamonten type Assault Rifle +gun.name.lunaGun=1978 RÄhula type Standard Issue Sidearm (Revision 2) +gun.name.lunaHLR=1944 Chang'e type Light Machine Gun +gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) +gun.name.lunaSMG=1956 Ä€nanda type Submachine Gun +gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle +gun.name.lunaTWR=Time Warp Rifle +gun.name.m2=Browning machine gun, cal. .50, M2, HB +gun.name.m42=M-42 Tactical Nuclear Catapult +gun.name.m42MIRV=M-42 Experimental MIRV +gun.name.m60=Machine Gun, Caliber 7.62 mm, M60 +gun.name.maxim=Maxim gun +gun.name.maximDouble=Double Maxim gun +gun.name.mg3=Universal-Maschinengewehr Modell 3 +gun.name.mp40=Maschinenpistole 40 +gun.name.nerf=NERF blaster of unknown design +gun.name.osipr=Overwatch Standard Issue Pulse Rifle +gun.name.panz=Raketenpanzerbüchse 54 +gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher +gun.name.remington870=Remington 870 +gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun +gun.name.sauer=Sauer Shotgun +gun.name.spas12=Franchi SPAS-12 +gun.name.spiw=H&R SPIW +gun.name.stinger=FIM-92 Stinger man-portable air-defense system +gun.name.stingerOneSky=The One Sky Stinger +gun.name.supershotty=Double-Barreled Combat Shotgun +gun.name.tau=XVL1456 Tau Cannon +gun.name.tommy9=M1A1 Submachine Gun 9mm Mod +gun.name.tommy=M1A1 Submachine Gun +gun.name.topaz=Heavy Duty Flamer +gun.name.uacCarbine=UAC-41 Carbine +gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag +gun.name.uacDMR=UAC-30 Designated Marksman Rifle +gun.name.uacLMG=UAC-49 Light Machine Gun +gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun +gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun +gun.name.uboinik=Uboinik Revolving Shotgun +gun.name.uzi=IMI Uzi +gun.name.uziSatur=IMI Uzi D-25A +gun.name.win1887=Winchester Model 1887 +gun.name.win1887Inox=Winchester Model 1887 Inox +gun.name.win20Inox=Winchester Model 20 Inox +gun.name.win20Poly=Winchester Model 20 Polymer +gun.name.win20Satur=Winchester Model 20 D-25A +gun.name.zomg=EMC101 Prismatic Negative Energy Cannon + +hadron.analysis=Ðналіз... +hadron.buttonOn=Ðналітична камера (Ñкщо Ñ”) УВІМКÐЕÐÐ +hadron.buttonOff=Ðналітична камера ВИМКÐЕÐÐ +hadron.error_generic=Помилка! +hadron.error_no_charge=Error 0x01 [NC] +hadron.error_no_analysis=Error 0x02 [NA] +hadron.error_obstructed_channel=Error 0x03 [OC] +hadron.error_expected_coil=Error 0x04 [EC] +hadron.error_malformed_segment=Error 0x05 [MS] +hadron.error_analysis_too_long=Error 0x06 [ATL] +hadron.error_analysis_too_short=Error 0x07 [ATS] +hadron.error_diode_collision=Error 0x08 [DC] +hadron.error_branching_turn=Error 0x09 [BT] +hadron.hopper0=§eNormal Mode:$All items will be used. +hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper2=§eSingle Mode:$Only allows one item per slot. +hadron.idle=Idle +hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. +hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. +hadron.noresult=No Result. +hadron.noresult_too_slow=Insuff. momentum! +hadron.noresult_wrong_ingredient=Invalid recipe! +hadron.noresult_wrong_mode=Wrong mode! +hadron.progress=In Progress... +hadron.stats=Previous results: +hadron.stats_coord=Erroring position: %s / %s / %s +hadron.stats_momentum=Momentum: %s +hadron.success=Completed! + +hazard.prot=Захищає від небезпек: +hazard.noprot=Ðе захищає від: +hazard.bacteria=Бактерій / Ðерозолів +hazard.corrosive=Їдких випаровувань +hazard.gasChlorine=Хімічних газів +hazard.gasInert=Інертних газів / Задушливих речовин +hazard.gasMonoxide=Чадного газу +hazard.light=ЯÑкравих Ñпалахів +hazard.nerveAgent=Ðервово-паралітичних бойових отруйних речовин +hazard.neverProtects=Ðіколи не захищає від: +hazard.particleCoarse=ЧаÑтинок в повітрі +hazard.particleFine=Твердих чаÑток +hazard.sand=Подразників очей + +hbm.key=NTM Hotkeys +hbm.key.calculator=Calculator +hbm.key.copyToolAlt=Copy Tool: Switch Paste +hbm.key.copyToolCtrl=Copy Tool: Paste to Pipes +hbm.key.craneLoad=Load/Unload Crane +hbm.key.craneMoveDown=Move Crane Backward +hbm.key.craneMoveLeft=Move Crane Left +hbm.key.craneMoveRight=Move Crane Right +hbm.key.craneMoveUp=Move Crane Forward +hbm.key.dash=Dash +hbm.key.gunPrimary=Primary Fire +hbm.key.gunSecondary=Secondary Fire +hbm.key.gunTertitary=Gun Sights +hbm.key.toggleBack=Toggle Jetpack +hbm.key.toggleHUD=Toggle HUD +hbm.key.trainInv=Train Inventory +hbm.key.reload=Reload + +hbmfluid.air=СтиÑнене Ð¿Ð¾Ð²Ñ–Ñ‚Ñ€Ñ +hbmfluid.alumina=ОкÑид алюмінію +hbmfluid.amat=ÐÐ½Ñ‚Ð¸Ð¼Ð°Ñ‚ÐµÑ€Ñ–Ñ +hbmfluid.aromatics=Ðроматичні вуглеводні +hbmfluid.aschrab=Ðнтишрабідій +hbmfluid.balefire=Ракетне BF паливо +hbmfluid.bauxite_solution=Розчин бокÑиту +hbmfluid.biofuel=Біопаливо +hbmfluid.biogas=Біогаз +hbmfluid.bitumen=Бітум +hbmfluid.blood=Кров +hbmfluid.blood_hot=ГарÑча кров +hbmfluid.calcium_chloride=Розчин хлориду кальцію +hbmfluid.calcium_solution=Розчин кальцію +hbmfluid.carbondioxide=ВуглекиÑлий газ +hbmfluid.chlorine=Хлорний газ +hbmfluid.chlorocalcite_cleaned=Очищений розчин хлорокальциту +hbmfluid.chlorocalcite_mix=Змішаний розчин хлорокальциту +hbmfluid.chlorocalcite_solution=Розчин хлорокальциту +hbmfluid.cholesterol=Розчин холеÑтерину +hbmfluid.coalcreosote=Креозот з вугільної Ñмоли +hbmfluid.coalgas=Вугільний бензин +hbmfluid.coalgas_leaded=Етильований вугільний бензин +hbmfluid.coaloil=Скраплене Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ +hbmfluid.colloid=Колоїд +hbmfluid.coolant=Охолоджувальна рідина +hbmfluid.coolant_hot=ГарÑча охолоджувальна рідина +hbmfluid.crackoil=Крекінгова нафта +hbmfluid.crackoil_ds=ДеÑульфурована крекінгова нафта +hbmfluid.cryogel=Кріогель +hbmfluid.death=Розчин оÑмиÑтого іридію +hbmfluid.deuterium=Дейтерій +hbmfluid.diesel=Дизель +hbmfluid.diesel_crack=Крекінговий дизель +hbmfluid.diesel_crack_reform=ВиÑокооктановий крекінговий дизель +hbmfluid.diesel_reform=ВиÑокооктановий дизель +hbmfluid.egg=Розчинене Ñйце +hbmfluid.estradiol=Розчин еÑтрадіолу +hbmfluid.ethanol=Етанол +hbmfluid.enderjuice=Енд Сік +hbmfluid.fishoil=Риб'Ñчий жир +hbmfluid.fracksol=Розчин Ð´Ð»Ñ Ð³Ñ–Ð´Ñ€Ð¾Ñ€Ð¾Ð·Ñ€Ð¸Ð²Ñƒ плаÑта +hbmfluid.fullerene=Розчин фулерену +hbmfluid.gas=Природний газ +hbmfluid.gas_coker=КокÑовий газ +hbmfluid.gasoline=Газолін +hbmfluid.gasoline_leaded=Етильований газолін +hbmfluid.heatingoil=Мазут +hbmfluid.heatingoil_vacuum=Важкий мазут +hbmfluid.heavyoil=Важка нафта +hbmfluid.heavyoil_vacuum=Вакуумна важка нафта +hbmfluid.heavywater=Важка вода +hbmfluid.heavywater_hot=ГарÑча важка вода +hbmfluid.helium3=Гелій-3 +hbmfluid.helium4=Гелій-4 +hbmfluid.hotcrackoil=ГарÑча крекінгова нафта +hbmfluid.hotcrackoil_ds=ДеÑульфурована гарÑча крекінгова нафта +hbmfluid.hotoil=ГарÑча Ñира нафта +hbmfluid.hotoil_ds=ДеÑульфурована гарÑча Ñира нафта +hbmfluid.hotsteam=ГарÑча пара +hbmfluid.hydrogen=Рідкий водень +hbmfluid.iongel=Іонний гель +hbmfluid.kerosene=Ð“Ð°Ñ +hbmfluid.kerosene_reform=Реактивне паливо +hbmfluid.lava=Лава +hbmfluid.lead=Рідкий Ñвинець +hbmfluid.lead_hot=ГарÑчий рідкий Ñвинець +hbmfluid.lightoil=Легка нафта +hbmfluid.lightoil_crack=Крекінгова легка нафта +hbmfluid.lightoil_ds=ДеÑульфурована легка нафта +hbmfluid.lightoil_vacuum=Вакуумна легка нафта +hbmfluid.lpg=Скраплений нафтовий газ (СÐГ) +hbmfluid.lubricant=Машинна олива +hbmfluid.lye=Луг +hbmfluid.mercury=Ртуть +hbmfluid.mug=Пиво "Кухоль кореневого" +hbmfluid.mug_hot=ГарÑче пиво "Кухоль кореневого"" +hbmfluid.mustardgas=Іприт +hbmfluid.naphtha=Лігроїн +hbmfluid.naphtha_coker=КокÑовий лігроїн +hbmfluid.naphtha_crack=Крекінговий лігроїн +hbmfluid.naphtha_ds=ДеÑульфурований лігроїн +hbmfluid.nitan=NITAN© 100-октанове Ñуперпаливо +hbmfluid.nitric_acid=Ðзотна киÑлота +hbmfluid.nitroglycerin=Ðітрогліцерин +hbmfluid.none=Ðічого +hbmfluid.oil=Сира нафта +hbmfluid.oil_coker=КокÑова нафта +hbmfluid.oil_ds=ДеÑульфурована Ñира нафта +hbmfluid.oxygen=Рідкий киÑень +hbmfluid.oxyhydrogen=Гримучий газ +hbmfluid.pain=Розчин Пандемоніум(III)танталу +hbmfluid.perfluoromethyl=Перфторметил +hbmfluid.perfluoromethyl_cold=Холодний перфторметил +hbmfluid.perfluoromethyl_hot=ГарÑчий перфторметил +hbmfluid.peroxide=ÐŸÐµÑ€ÐµÐºÐ¸Ñ Ð²Ð¾Ð´Ð½ÑŽ +hbmfluid.petroil=Бензин +hbmfluid.petroil_leaded=Етильований бензин +hbmfluid.petroleum=Ðафтовий газ +hbmfluid.pheromone=Феромон-буÑтер +hbmfluid.pheromone_m=Модифікований феромон-буÑтер +hbmfluid.phosgene=ФоÑген +hbmfluid.plasma_bf=BF плазма +hbmfluid.plasma_dh3=Дейтерій-гелій-3 плазма +hbmfluid.plasma_dt=Дейтерій-тритієва плазма +hbmfluid.plasma_hd=Воднево-дейтерієва плазма +hbmfluid.plasma_ht=Воднево-тритієва плазма +hbmfluid.plasma_xm=Гелій-4-киÑнева плазма +hbmfluid.potassium_chloride=Розчин хлориду калію +hbmfluid.puf6=ГекÑафторид плутонію PuF6 +hbmfluid.radiosolvent=ВиÑокоефективний розчинник +hbmfluid.reclaimed=Очищена промиÑлова олива +hbmfluid.redmud=Червоний шлам +hbmfluid.reformate=Реформоване паливо +hbmfluid.reformgas=Реформований газ +hbmfluid.salient=Зелений Ñалієнт +hbmfluid.sas3=ТриÑульфід шрабідію +hbmfluid.schrabidic=Шрабідієва киÑлота +hbmfluid.seedslurry=ПоÑівна ÑуÑÐ¿ÐµÐ½Ð·Ñ–Ñ +hbmfluid.slop=Рудний шлам +hbmfluid.smear=ПромиÑлова олива +hbmfluid.smoke=Дим +hbmfluid.smoke_leaded=Свинцевий дим +hbmfluid.smoke_poison=Отруйний дим +hbmfluid.sodium=Рідкий натрій +hbmfluid.sodium_hot=ГарÑчий рідкий натрій +hbmfluid.sodium_aluminate=Ðлюмінат натрію +hbmfluid.solvent=Розчинник +hbmfluid.sourgas=Сірководень +hbmfluid.spentsteam=Пара низького тиÑку +hbmfluid.steam=Пара +hbmfluid.stellar_flux=ЗорÑний Ñ„Ð»ÑŽÑ +hbmfluid.sulfuric_acid=Сірчана киÑлота +hbmfluid.sunfloweroil=СонÑшникова Ð¾Ð»Ñ–Ñ +hbmfluid.superhotsteam=Ðадзвичайно гарÑча пара +hbmfluid.syngas=Вугільний Ñінтгаз +hbmfluid.thorium_salt=Рідка торієва Ñіль +hbmfluid.thorium_salt_depleted=Збіднена рідка торієва Ñіль +hbmfluid.thorium_salt_hot=ГарÑча рідка торієва Ñіль +hbmfluid.tritium=Тритій +hbmfluid.uf6=ГекÑафторид урану UF6 +hbmfluid.ultrahotsteam=Розпечена пара +hbmfluid.unsaturateds=ÐенаÑичені вуглеводні +hbmfluid.vitriol=ÐšÑƒÐ¿Ð¾Ñ€Ð¾Ñ +hbmfluid.wastefluid=Рідкі Ñдерні відходи +hbmfluid.wastegas=Газоподібні Ñдерні відходи +hbmfluid.water=Вода +hbmfluid.watz=ТокÑичні відходи +hbmfluid.woodoil=Деревна Ñмола +hbmfluid.xenon=КÑеноновий газ +hbmfluid.xpjuice=Сік доÑвіду +hbmfluid.xylene=Ðлкілбензени (Бензен-Толуен-КÑилен BTX) + +hbmpseudofluid.none=Порожньо +hbmpseudofluid.heuf6=ВиÑокозбагачений UF6 +hbmpseudofluid.meuf6=Середньозбагачений UF6 +hbmpseudofluid.leuf6=Ðизькозбагачений UF6 +hbmpseudofluid.nuf6=Ðатуральний UF6 +hbmpseudofluid.pf6=ГекÑафторид плутонію PuF6 +hbmpseudofluid.mud_heavy=Ð¤Ñ€Ð°ÐºÑ†Ñ–Ñ Ð²Ð°Ð¶ÐºÐ¾Ð³Ð¾ шламу +hbmpseudofluid.mud=Отруйний шламовий газ + +hbmmat.actinium227=Ðктиній-227 +hbmmat.advancedalloy=УдоÑконалений Ñплав +hbmmat.aluminum=Ðлюміній +hbmmat.americiumrg=Реакторний Ðмерицій +hbmmat.americium241=Ðмерицій-241 +hbmmat.americium242=Ðмерицій-242 +hbmmat.arsenic=Миш'Ñк +hbmmat.arsenicbronze=Миш'Ñкова бронза +hbmmat.asbestos=ÐзбеÑÑ‚ +hbmmat.bakelite=Карболіт +hbmmat.bauxite=БокÑит +hbmmat.beryllium=Берилій +hbmmat.bismuth=Ð’Ñ–Ñмут +hbmmat.bismuthbronze=Ð’Ñ–Ñмутова бронза +hbmmat.bone=Слонова кіÑтка +hbmmat.borax=Бура +hbmmat.boron=Бор +hbmmat.bscco=Ð’Ñ–Ñмут Ñтронцій кальцій мідь окÑид (BSCCO) +hbmmat.cadmium=Кадмій +hbmmat.calcium=Кальцій +hbmmat.carbon=Вуглець +hbmmat.cdalloy=Кадмієва Ñталь +hbmmat.chlorocalcite=Хлорокальцит +hbmmat.cinnabar=Кіновар +hbmmat.cmbsteel=Сталь комбайнів +hbmmat.coal=Ð’ÑƒÐ³Ñ–Ð»Ð»Ñ +hbmmat.coalcoke=Вугільний ÐºÐ¾ÐºÑ +hbmmat.cobalt=Кобальт +hbmmat.cobalt60=Кобальт-60 +hbmmat.coltan=Колтан +hbmmat.copper=Мідь +hbmmat.cryolite=Кріоліт +hbmmat.desh=Деш +hbmmat.diamond=Ðлмаз +hbmmat.dineutronium=Динейтроній +hbmmat.durasteel=Швидкорізальна Ñталь +hbmmat.emerald=Смарагд +hbmmat.euphemium=Юхимій +hbmmat.ferrouranium=Фероуран +hbmmat.fiberglass=Скловолокно +hbmmat.fluorite=Флюорит +hbmmat.flux=Ð¤Ð»ÑŽÑ +hbmmat.ghiorsium336=ÒіорÑій-336 +hbmmat.gold=Золото +hbmmat.gold198=Золото-198 +hbmmat.graphene=Графен +hbmmat.graphite=Графіт +hbmmat.gunmetal=Гарматної бронзи +hbmmat.hematite=Гематит +hbmmat.iron=Залізо +hbmmat.lanthanum=Лантан +hbmmat.lapis=Лазурит +hbmmat.lead=Свинець +hbmmat.lead209=Свинець-209 +hbmmat.lignitecoke=Буровугільний ÐºÐ¾ÐºÑ +hbmmat.lignite=Буре Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ +hbmmat.lithium=Літій +hbmmat.magnetizedtungsten=Ðамагнічений вольфрам +hbmmat.malachite=Малахіт +hbmmat.meteoriciron=Метеоритне залізо +hbmmat.mingrade=Червона мідь +hbmmat.molysite=Трихлорид заліза +hbmmat.neodymium=Ðеодим +hbmmat.neptunium237=Ðептуній-237 +hbmmat.niobium=Ðіобій +hbmmat.obsidian=ОбÑидіан +hbmmat.osmiridium=ОÑмиÑтий іридій +hbmmat.petcoke=Ðафтовий ÐºÐ¾ÐºÑ +hbmmat.pigiron=Чавун +hbmmat.plutonium=Плутоній +hbmmat.plutonium238=Плутоній-238 +hbmmat.plutonium239=Плутоній-239 +hbmmat.plutonium240=Плутоній-240 +hbmmat.plutonium241=Плутоній-241 +hbmmat.plutoniumrg=Реакторний Плутоній +hbmmat.polonium210=Полоній-210 +hbmmat.polycarbonate=Твердий плаÑтик +hbmmat.polymer=Полімер +hbmmat.pvc=Полівінілхлорид +hbmmat.radium226=Радій-226 +hbmmat.rareearth=Рідкоземельні +hbmmat.redphosphorus=Червоний фоÑфор +hbmmat.redstone=РедÑтоун +hbmmat.rubber=Гума +hbmmat.saltpeter=Ðітрат калію +hbmmat.saturnite=Сатурніт +hbmmat.schrabidate=Ферошрабідат +hbmmat.schrabidium=Шрабідій +hbmmat.schraranium=Шрараній +hbmmat.silicon=Кремній +hbmmat.slag=Шлак +hbmmat.sodalite=Содаліт +hbmmat.sodium=Ðатрій +hbmmat.solinium=Соліній +hbmmat.starmetal=Зірковий метал +hbmmat.steel=Сталь +hbmmat.stone=Камінь +hbmmat.strontium=Стронцій +hbmmat.sulfur=Сірка +hbmmat.tantalum=Тантал +hbmmat.tcalloy=Технецієва Ñталь +hbmmat.technetium99=Технецій-99 +hbmmat.titanium=Титан +hbmmat.thorium232=Торій-232 +hbmmat.tungsten=Вольфрам +hbmmat.uranium=Уран +hbmmat.uranium233=Уран-233 +hbmmat.uranium235=Уран-235 +hbmmat.uranium238=Уран-238 +hbmmat.watzmud=ТокÑичні відходи +hbmmat.weaponsteel=Збройова Ñталь +hbmmat.whitephosphorus=Білий фоÑфор +hbmmat.wood=Дерево +hbmmat.workersalloy=Деш +hbmmat.wroughtiron=Коване залізо +hbmmat.zirconium=Цирконій + +matshape.block=%s Блок +matshape.blocks=%s Блоки +matshape.ingot=%s Зливок +matshape.ingots=%s Зливки +matshape.nugget=%s Самородок +matshape.nuggets=%s Самородки +matshape.quantum=%s Квант +matshape.quanta=%s Кванта + +icffuel.beryllium=Берилій +icffuel.boron=Бор +icffuel.carbon=Вуглець +icffuel.calcium=Кальцій +icffuel.chlorine=Хлор +icffuel.deuterium=Дейтерій +icffuel.helium3=Гелій-3 +icffuel.helium4=Гелій-4 +icffuel.hydrogen=Водень +icffuel.lithium=Літій +icffuel.oxygen=КиÑень +icffuel.sodium=Ðатрій +icffuel.tritium=Тритій + +info.asbestos=Мої легені горÑть. +info.coaldust=Тут важко дихати. +info.coil=Сила котушки +info.templatefolder=Створено за допомогою %s +info.template_in=Ввід: +info.template_in_p=Вводи: +info.template_out=Вивід: +info.template_out_p=Виводи: +info.template_seconds=Ñекунд +info.template_time=Ð§Ð°Ñ Ð²Ð¸Ñ€Ð¾Ð±Ð½Ð¸Ñ†Ñ‚Ð²Ð°: + +item.acetylene_torch.name=Ðцетиленовий зварювальний пальник +item.ajr_boots.name= Чоботи Стальних Ренджерів +item.ajr_helmet.name=Шолом Стальних Ренджерів +item.ajr_legs.name=Ðаголінники Стальних Ренджерів +item.ajr_plate.name=Ðагрудник Стальних Ренджерів +item.ajro_boots.name=Чоботи Ренджерів Еплджек +item.ajro_helmet.name=Шолом Ренджерів Еплджек +item.ajro_legs.name=Ðаголінники Ренджерів Еплджек +item.ajro_plate.name=Ðагрудник Ренджерів Еплджек +item.alloy_axe.name=Сокира з удоÑконаленого Ñплаву +item.alloy_boots.name=Чоботи з удоÑконаленого Ñплаву +item.alloy_helmet.name=Шолом з удоÑконаленого Ñплаву +item.alloy_hoe.name=Мотика з удоÑконаленого Ñплаву +item.alloy_legs.name=Ðаголінники з удоÑконаленого Ñплаву +item.alloy_pickaxe.name=Кайло з удоÑконаленого Ñплаву +item.alloy_plate.name=Ðагрудник з удоÑконаленого Ñплаву +item.alloy_shovel.name=Лопата з удоÑконаленого Ñплаву +item.alloy_sword.name=Меч з удоÑконаленого Ñплаву +item.ammo_arty.name=16" артилерійÑький ÑнарÑд +item.ammo_arty_cargo.name=16" артилерійÑький ÑнарÑд екÑпреÑ-доÑтавки +item.ammo_arty_chlorine.name=16" хлорний артилерійÑький ÑнарÑд +item.ammo_arty_classic.name=16" артилерійÑький ÑнарÑд (The Factorio Special) +item.ammo_arty_he.name=16" фугаÑний артилерійÑький ÑнарÑд +item.ammo_arty_mini_nuke.name=16" мікроÑдерний артилерійÑький ÑнарÑд +item.ammo_arty_mini_nuke_multi.name=16" мульти мікроÑдерний артилерійÑький ÑнарÑд +item.ammo_arty_mustard_gas.name=16" іпритний артилерійÑький ÑнарÑд +item.ammo_arty_nuke.name=16" Ñдерний артилерійÑький ÑнарÑд +item.ammo_arty_phosgene.name=16" фоÑгеновий артилерійÑький ÑнарÑд +item.ammo_arty_phosphorus.name=16" фоÑфорний артилерійÑький ÑнарÑд +item.ammo_arty_phosphorus_multi.name=16" мульти фоÑфорний артилерійÑький ÑнарÑд +item.ammo_bag.name=Сумка Ð´Ð»Ñ Ð±Ð¾Ñ”Ð¿Ñ€Ð¸Ð¿Ð°Ñів +item.ammo_bag_infinite.name=ÐеÑкінченна Ñумка Ð´Ð»Ñ Ð±Ð¾Ñ”Ð¿Ñ€Ð¸Ð¿Ð°Ñів +item.ammo_container.name=Контейнер Ð´Ð»Ñ Ð±Ð¾Ñ”Ð¿Ñ€Ð¸Ð¿Ð°Ñів +item.ammo_dgk.name=Стрічка на 200 набоїв здвоєного ЗÐК Голкіпер +item.ammo_fireext.name=Бак з водою Ð´Ð»Ñ Ð²Ð¾Ð³Ð½ÐµÐ³Ð°Ñника +item.ammo_fireext_foam.name=Бак з піною Ð´Ð»Ñ Ð²Ð¾Ð³Ð½ÐµÐ³Ð°Ñника +item.ammo_fireext_sand.name=Бак з піÑком Ð´Ð»Ñ Ð²Ð¾Ð³Ð½ÐµÐ³Ð°Ñника +item.ammo_himars_standard.name=227-мм керований артилерійÑький ракетний блок +item.ammo_himars_standard_he.name=227-мм керований артилерійÑький ракетний блок (ФугаÑний) +item.ammo_himars_standard_lava.name=227-мм керований артилерійÑький ракетний блок (Лава) +item.ammo_himars_standard_mini_nuke.name=227-мм керований артилерійÑький ракетний блок (МікроÑдерний) +item.ammo_himars_standard_tb.name=227-мм керований артилерійÑький ракетний блок (Термобаричний) +item.ammo_himars_standard_wp.name=227-мм керований артилерійÑький ракетний блок (Білий фоÑфор) +item.ammo_himars_single.name=610-мм керований артилерійÑький ракетний блок +item.ammo_himars_single_tb.name=610-мм керований артилерійÑький ракетний блок (Термобаричний) +item.ammo_shell.name=240-мм ÑнарÑд +item.ammo_shell_apfsds_du.name=240-мм БОПС-ЗУ +item.ammo_shell_apfsds_t.name=240-мм БОПС-Ð’ +item.ammo_shell_explosive.name=240-мм фугаÑний ÑнарÑд +item.ammo_shell_w9.name=240-мм Ñдерний ÑнарÑд W9 +item.ammo_secret.bmg50_equestrian.name=.50 BMG Винищувач +item.ammo_secret.bmg50_black.name=.50 BMG обхідний набій +item.ammo_secret.folly_nuke.name=Срібна кулÑ, Ñдерна +item.ammo_secret.folly_sm.name=Срібна ÐºÑƒÐ»Ñ +item.ammo_secret.g12_equestrian.name=Флешетний ÑнарÑд з залізничними цвÑхами 12-го калібру +item.ammo_secret.m44_equestrian.name=.44 Magnum Череполом +item.ammo_secret.p35_800.name=.35-800 V9 +item.ammo_standard.b75.name=Болт .75 +item.ammo_standard.b75_exp.name=Болт .75 (Розривний) +item.ammo_standard.b75_inc.name=Болт .75 (Запальний) +item.ammo_standard.bmg50_ap.name=Ðабій .50 BMG (Бронебійний) +item.ammo_standard.bmg50_du.name=Ðабій .50 BMG (Збіднений уран) +item.ammo_standard.bmg50_he.name=Ðабій .50 BMG (ФугаÑний) +item.ammo_standard.bmg50_fmj.name=Ðабій .50 BMG (Суцільнометалева оболонка) +item.ammo_standard.bmg50_jhp.name=Ðабій .50 BMG (ЕкÑпанÑивний) +item.ammo_standard.bmg50_sm.name=Ðабій .50 BMG (Зірковий метал) +item.ammo_standard.bmg50_sp.name=Ðабій .50 BMG (Ðапівоболонковй) +item.ammo_standard.capacitor.name=КонденÑатор (Стандартний) +item.ammo_standard.capacitor_ir.name=КонденÑатор (Ðизька довжина хвилі) +item.ammo_standard.capacitor_overcharge.name=КонденÑатор (Перевантажений) +item.ammo_standard.coil_ferrouranium.name=Феруранова ÐºÑƒÐ»Ñ Ð“Ð°Ñ€Ð¼Ð°Ñ‚Ð¸ ГауÑÑа +item.ammo_standard.coil_tungsten.name=Вольфрамова ÐºÑƒÐ»Ñ Ð“Ð°Ñ€Ð¼Ð°Ñ‚Ð¸ ГауÑÑа +item.ammo_standard.ct_hook.name=Захоплюючий гак +item.ammo_standard.ct_mortar.name=Ðищівний зарÑд +item.ammo_standard.ct_mortar_charge.name=Важкий нищівний зарÑд +item.ammo_standard.flame_balefire.name=Паливо вогнемету, BF +item.ammo_standard.flame_diesel.name=Паливо вогнемету, Дизель +item.ammo_standard.flame_gas.name=Паливо вогнемету, Природний газ +item.ammo_standard.flame_napalm.name=Паливо вогнемету, Ðапалм +item.ammo_standard.g10.name=Картеч 10-го калібру +item.ammo_standard.g10_du.name=Уранова картеч 10-го калібру +item.ammo_standard.g10_explosive.name=Вибухова картеч 10-го калібру +item.ammo_standard.g10_shrapnel.name=Шрапнельна картеч 10-го калібру +item.ammo_standard.g10_slug.name=Жекан 10-го калібру +item.ammo_standard.g12.name=Картеч 12-го калібру +item.ammo_standard.g12_anthrax.name=СнарÑд ÑибірÑької Ñзви 12-го калібру +item.ammo_standard.g12_bp.name=Картеч з чорним порохом 12-го калібру +item.ammo_standard.g12_bp_magnum.name=Картеч Magnum з чорним порохом 12-го калібру +item.ammo_standard.g12_bp_slug.name=Жекан з чорним порохом 12-го калібру +item.ammo_standard.g12_explosive.name=Розривний ÑнарÑд 12-го калібру +item.ammo_standard.g12_flechette.name=Флешетний ÑнарÑд 12-го калібру +item.ammo_standard.g12_magnum.name=Картеч Magnum 12-го калібру +item.ammo_standard.g12_phosphorus.name=ФоÑфорний ÑнарÑд 12-го калібру +item.ammo_standard.g12_slug.name=Жекан 12-го калібру +item.ammo_standard.g26_flare.name=26мм Ñигнальний флаєр +item.ammo_standard.g26_flare_supply.name=26мм Ñигнальний флаєр (Запит припаÑів) +item.ammo_standard.g26_flare_weapon.name=26мм Ñигнальний флаєр (Запит зброї) +item.ammo_standard.g40_demo.name=40-мм гранатометна граната, Руйнівна +item.ammo_standard.g40_he.name=40-мм гранатометна граната, ФугаÑна +item.ammo_standard.g40_heat.name=40-мм гранатометна граната, КумулÑтивна +item.ammo_standard.g40_inc.name=40-мм гранатометна граната, Запальна +item.ammo_standard.g40_phosphorus.name=40-мм гранатометна граната, Білий фоÑфор +item.ammo_standard.m357_ap.name=Ðабій .357 Magnum (Бронебійний) +item.ammo_standard.m357_bp.name=Ðабій .357 Magnum (Чорний порох) +item.ammo_standard.m357_express.name=Ðабій .357 Magnum (Суцільнометалевий бронебійний) +item.ammo_standard.m357_fmj.name=Ðабій .357 Magnum (Суцільнометалева оболонка) +item.ammo_standard.m357_jhp.name=.Ðабій .357 Magnum (ЕкÑпанÑивний) +item.ammo_standard.m357_sp.name=Ðабій .357 Magnum (Ðапівоболонковй) +item.ammo_standard.m44_ap.name=Ðабій .44 Magnum (Бронебійний) +item.ammo_standard.m44_bp.name=Ðабій .44 Magnum (Чорний порох) +item.ammo_standard.m44_express.name=Ðабій .44 Magnum (Суцільнометалевий бронебійний) +item.ammo_standard.m44_fmj.name=Ðабій .44 Magnum (Суцільнометалева оболонка) +item.ammo_standard.m44_jhp.name=Ðабій .44 Magnum (ЕкÑпанÑивний) +item.ammo_standard.m44_sp.name=Ðабій .44 Magnum (Ðапівоболонковй) +item.ammo_standard.nuke_balefire.name=Ядерний мінізарÑд, BF Ñйце +item.ammo_standard.nuke_demo.name=Ядерний мінізарÑд, Руйнівний +item.ammo_standard.nuke_high.name=Ядерний мінізарÑд, Потужний +item.ammo_standard.nuke_hive.name=Ракетний рій +item.ammo_standard.nuke_standard.name=Ядерний мінізарÑд +item.ammo_standard.nuke_tots.name=Ядерний мінізарÑд, Малютки +item.ammo_standard.p22_ap.name=Ðабій .22 LR (Бронебійний) +item.ammo_standard.p22_fmj.name=Ðабій .22 LR (Суцільнометалева оболонка) +item.ammo_standard.p22_jhp.name=Ðабій .22 LR (ЕкÑпанÑивний) +item.ammo_standard.p22_sp.name=Ðабій .22 LR (Ðапівоболонковй) +item.ammo_standard.p45_ap.name=Ðабій .45 (Бронебійний) +item.ammo_standard.p45_du.name=Ðабій .45 (Збіднений уран) +item.ammo_standard.p45_fmj.name=Ðабій .45 (Суцільнометалева оболонка) +item.ammo_standard.p45_jhp.name=Ðабій .45 (ЕкÑпанÑивний) +item.ammo_standard.p45_sp.name=Ðабій .45 (Ðапівоболонковй) +item.ammo_standard.p9_ap.name=Ðабій 9-мм (Бронебійний) +item.ammo_standard.p9_fmj.name=Ðабій 9-мм (Суцільнометалева оболонка) +item.ammo_standard.p9_jhp.name=Ðабій 9-мм (ЕкÑпанÑивний) +item.ammo_standard.p9_sp.name=Ðабій 9-мм (Ðапівоболонковй) +item.ammo_standard.r556_ap.name=Ðабій 5.56-мм (Бронебійний) +item.ammo_standard.r556_fmj.name=Ðабій 5.56-мм (Суцільнометалева оболонка) +item.ammo_standard.r556_jhp.name=Ðабій 5.56-мм (ЕкÑпанÑивний) +item.ammo_standard.r556_sp.name=Ðабій 5.56-мм (Ðапівоболонковй) +item.ammo_standard.r762_ap.name=Ðабій 7.62-мм (Бронебійний) +item.ammo_standard.r762_du.name=Ðабій 7.62-мм (Збіднений уран) +item.ammo_standard.r762_fmj.name=Ðабій 7.62-мм (Суцільнометалева оболонка) +item.ammo_standard.r762_he.name=Ðабій 7.62-мм (ФугаÑний) +item.ammo_standard.r762_jhp.name=Ðабій 7.62-мм (ЕкÑпанÑивний) +item.ammo_standard.r762_sp.name=Ðабій 7.62-мм (Ðапівоболонковй) +item.ammo_standard.rocket_demo.name=Ракета, Руйнівна +item.ammo_standard.rocket_he.name=Ракета, ФугаÑна +item.ammo_standard.rocket_heat.name=Ракета, КумулÑтивна +item.ammo_standard.rocket_inc.name=Ракета, Запальна +item.ammo_standard.rocket_phosphorus.name=Ракета, Білий фоÑфор +item.ammo_standard.stone.name=ÐšÑƒÐ»Ñ Ñ‚Ð° порох +item.ammo_standard.stone_ap.name=Кремінь та порох +item.ammo_standard.stone_iron.name=Залізна ÐºÑƒÐ»Ñ Ñ‚Ð° порох +item.ammo_standard.stone_shot.name=Дріб та порох +item.ammo_standard.tau_uranium.name=Коробка із збідненим ураном-235 +item.ams_catalyst_aluminium.name=Ðлюмінієвий каталізатор реакції +item.ams_catalyst_beryllium.name=Берилієвий каталізатор реакції +item.ams_catalyst_blank.name=Порожній каталізатор реакції +item.ams_catalyst_caesium.name=Цезеєвий каталізатор реакції +item.ams_catalyst_cerium.name=Церієвий каталізатор реакції +item.ams_catalyst_cobalt.name=Кобальтовий каталізатор реакції +item.ams_catalyst_copper.name=Мідний каталізатор реакції +item.ams_catalyst_dineutronium.name=Динейтронієвий каталізатор реакції +item.ams_catalyst_euphemium.name=Юхимієвий каталізатор реакції +item.ams_catalyst_iron.name=Залізний каталізатор реакції +item.ams_catalyst_lithium.name=Літієвий каталізатор реакції +item.ams_catalyst_niobium.name=Ðіобієвий каталізатор реакції +item.ams_catalyst_schrabidium.name=Шрабідієвий каталізатор реакції +item.ams_catalyst_strontium.name=Стронцієвий каталізатор реакції +item.ams_catalyst_thorium.name=Торієвий каталізатор реакції +item.ams_catalyst_tungsten.name=Вольфрамовий каталізатор реакції +item.ams_core_eyeofharmony.name=Око Гармонії (Ядро ÐМС/РТС) +item.ams_core_sing.name=Вібруюча ÑингулÑрніÑть (Ядро ÐМС/РТС) +item.ams_core_thingy.name=ЯкаÑÑŒ Ñ„Ñ–Ð³Ð½Ñ (Ядро ÐМС/РТС) +item.ams_core_wormhole.name=Маленька червоточина (Ядро ÐМС/РТС) +item.ams_focus_blank.name=Blank Stabilizer Focus +item.ams_focus_booster.name=Boosting Stabilizer Focus +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=Стабілізуюча лінза +item.ams_muzzle.name=Ray-Emission Muzzle +item.ams_muzzle.desc=...it emits an energy-beam thingy. +item.analysis_tool.name=ІнÑтрумент аналізу +item.analyzer.name=Ðналізатор +item.anchor_remote.name=ПриÑтрій Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ +item.apple_euphemium.name=Юхимієве Ñблуко +item.apple_lead.name=Свинцеве Ñблуко +item.apple_schrabidium.name=Шрабідієве Ñблуко +item.arc_electrode.name=Графітовий електрод +item.arc_electrode.desh.name=Деш електрод +item.arc_electrode.graphite.name=Графітовий електрод +item.arc_electrode.lanthanium.name=Лантановий електрод +item.arc_electrode.saturnite.name=Сатурнітовий електрод +item.arc_electrode_burnt.name=Розплавлений електрод +item.arc_electrode_burnt.desh.name=Розплавлений деш електрод +item.arc_electrode_burnt.graphite.name=Розплавлений графітовий електрод +item.arc_electrode_burnt.lanthanium.name=Розплавлений лантановий електрод +item.arc_electrode_burnt.saturnite.name=Розплавлений Ñатурнітовий електрод +item.arc_electrode_desh.name=Деш електрод +item.armor_battery.name=ÐкумулÑторний блок Ñилової броні +item.armor_battery_mk2.name=ÐкумулÑторний блок Ñилової броні тип â„–2 +item.armor_battery_mk3.name=ÐкумулÑторний блок Ñилової броні тип â„–3 +item.armor_polish.name=Поліроль Ð´Ð»Ñ Ð±Ñ€Ð¾Ð½Ñ– ShiningArmorâ„¢ +item.asbestos_boots.name=ТеплозахиÑні чоботи +item.asbestos_cloth.name=ТеплозахиÑна тканина +item.asbestos_helmet.name=ТеплозахиÑний шолом +item.asbestos_legs.name=ТеплозахиÑні штанці +item.asbestos_plate.name=ТеплозахиÑна куртка +item.ashglasses.name=ПопелÑÑті окулÑри +item.assembly_45.name=.45 ACP Assembly +item.assembly_556.name=5.56mm Assembly +item.assembly_762.name=7.62mm Assembly +item.assembly_actionexpress.name=.50 AE Assembly +item.assembly_calamity.name=.50 BMG Assembly +item.assembly_desh.name=Desh Bullet Assembly +item.assembly_gold.name=Gold Bullet Assembly +item.assembly_iron.name=Iron Bullet Assembly +item.assembly_lacunae.name=.5mm Assembly +item.assembly_lead.name=Glass Bullet Assembly +item.assembly_luna.name=Lunatic Sniper Bullet Assembly +item.assembly_nightmare.name=Nightmare Bullet Assembly +item.assembly_nopip.name=.44 Magnum Assembly +item.assembly_nuke.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ Ñдерного мінізарÑду +item.assembly_pip.name=Tainted Bullet Assembly +item.assembly_schrabidium.name=Schrabidium Bullet Assembly +item.assembly_smg.name=9mm Assembly +item.assembly_steel.name=Lead Bullet Assembly +item.assembly_template.name=Збиральний шаблон: +item.assembly_uzi.name=.22 LR Assembly +item.attachment_mask.name=Прикріплюваний протигаз +item.attachment_mask_mono.name=Прикріплювана напівмаÑка +item.australium_iii.name=Подовжувач Ð¶Ð¸Ñ‚Ñ‚Ñ Ñ‚Ð¸Ð¿ â„–3 +item.australium_iv.name=Подовжувач Ð¶Ð¸Ñ‚Ñ‚Ñ Ñ‚Ð¸Ð¿ â„–4 +item.australium_v.name=Подовжувач Ð¶Ð¸Ñ‚Ñ‚Ñ Ñ‚Ð¸Ð¿ â„–5 +item.back_tesla.name=Ранцева котушка ТеÑли +item.balefire_and_ham.name=Стейк та BF ÑÑ”Ñ‡Ð½Ñ +item.balefire_and_steel.name=BF та Ñталь +item.balefire_scrambled.name=BF ÑÑ”Ñ‡Ð½Ñ +item.ball_dynamite.name=Динаміт +item.ball_fireclay.name=Шамотна глина +item.ball_resin.name=Ð›Ð°Ñ‚ÐµÐºÑ +item.ball_tatb.name=Тріамінотрінітробензол (TATB) +item.ball_tnt.name=Тринітротолуол (TNT) +item.ballistic_gauntlet.name=БаліÑтична Ñ€ÑƒÐºÐ°Ð²Ð¸Ñ†Ñ +item.ballistite.name=БаліÑтит +item.bandaid.name=ОкÑамитовий плаÑтир +item.bathwater.name=ТокÑична мильна вода +item.bathwater_mk2.name=ТокÑична мильна вода (КінÑький аромат) +item.battery_advanced.name=УдоÑконалена батарейка +item.battery_advanced_cell.name=УдоÑконалений акумулÑторний елемент +item.battery_advanced_cell_12.name=УдоÑконалена акумулÑторна Ð±Ð°Ñ‚Ð°Ñ€ÐµÑ Ð· 12 елементів +item.battery_advanced_cell_4.name=УдоÑконалена акумулÑторна Ð±Ð°Ñ‚Ð°Ñ€ÐµÑ Ð· 4 елементів +item.battery_creative.name=ÐеÑкінченна батарейка +item.battery_generic.name=Батарейка +item.battery_lithium.name=Літій-іонна батарейка +item.battery_lithium_cell.name=Літій-іонний акумулÑторний елемент +item.battery_lithium_cell_3.name=Літій-іонна акумулÑторна Ð±Ð°Ñ‚Ð°Ñ€ÐµÑ Ð· 3 елементів +item.battery_lithium_cell_6.name=Літій-іонна акумулÑторна Ð±Ð°Ñ‚Ð°Ñ€ÐµÑ Ð· 6 елементів +item.battery_potato.name=КартоплÑна батарейка +item.battery_potatos.name=PotatOS +item.battery_red_cell.name=РедÑтоуновий акумулÑторний елемент +item.battery_red_cell_24.name=РедÑтоунова акумулÑторна Ð±Ð°Ñ‚Ð°Ñ€ÐµÑ Ð· 24 елементів +item.battery_red_cell_6.name=РедÑтоунова акумулÑторна Ð±Ð°Ñ‚Ð°Ñ€ÐµÑ Ð· 6 елементів +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=СамозарÑдна Технецій-99 батарейка +item.battery_sc_uranium.name=СамозарÑдна Уран-238 батарейка +item.battery_schrabidium.name=Шрабідієва батарейка +item.battery_schrabidium_cell.name=Шрабідієвий акумулÑторний елемент +item.battery_schrabidium_cell_2.name=Шрабідієва акумулÑторна Ð±Ð°Ñ‚Ð°Ñ€ÐµÑ Ð· 2 елементів +item.battery_schrabidium_cell_4.name=Шрабідієва акумулÑторна Ð±Ð°Ñ‚Ð°Ñ€ÐµÑ Ð· 4 елементів +item.battery_spark.name=Спарк батарейка +item.battery_spark_cell_100.name=Спарк таємничий акумулÑторний маÑив +item.battery_spark_cell_1000.name=Спарк таємнича порожнеча маÑи-енергії +item.battery_spark_cell_10000.name=Спарк твердий криÑтал проÑтору-чаÑу +item.battery_spark_cell_25.name=Спарк таємничий автомобільний акумулÑтор +item.battery_spark_cell_2500.name=Спарк таємниче море Дірака +item.battery_spark_cell_6.name=Спарк акумулÑторний елемент +item.battery_spark_cell_power.name=Спарк абÑурдний накопичувач енергії, що кидає виклик законам фізики +item.battery_steam.name=Steam Powered Energy Storage Tank +item.battery_steam_large.name=Large Steam Powered Energy Storage Tank +item.battery_su.name=SU-Battery +item.battery_su_l.name=Large SU-Battery +item.battery_trixite.name=Пальона Спарк батарейка +item.bdcl.name=BDCL +item.bedrock_ore.grade.base.name=%s корінна руда +item.bedrock_ore.grade.base_roasted.name=ОбÑмажена %s корінна руда +item.bedrock_ore.grade.base_washed.name=Промита %s корінна руда +item.bedrock_ore.grade.primary.name=%s корінна руда, первинна Ñ„Ñ€Ð°ÐºÑ†Ñ–Ñ +item.bedrock_ore.grade.primary_roasted.name=%s корінна руда, ОбÑмажена первинна Ñ„Ñ€Ð°ÐºÑ†Ñ–Ñ +item.bedrock_ore.grade.primary_sulfuric.name=%s корінна руда, Сірчана первинна Ñ„Ñ€Ð°ÐºÑ†Ñ–Ñ +item.bedrock_ore.grade.primary_nosulfuric.name=%s корінна руда, Відокремлена Сірчана первинна Ñ„Ñ€Ð°ÐºÑ†Ñ–Ñ +item.bedrock_ore.grade.primary_solvent.name=%s корінна руда, Розчинена первинна Ñ„Ñ€Ð°ÐºÑ†Ñ–Ñ +item.bedrock_ore.grade.primary_nosolvent.name=%s корінна руда, Відокремлена Розчинена первинна Ñ„Ñ€Ð°ÐºÑ†Ñ–Ñ +item.bedrock_ore.grade.primary_rad.name=%s корінна руда, Очищена первинна Ñ„Ñ€Ð°ÐºÑ†Ñ–Ñ +item.bedrock_ore.grade.primary_norad.name=%s корінна руда, Відокремлена Очищена первинна Ñ„Ñ€Ð°ÐºÑ†Ñ–Ñ +item.bedrock_ore.grade.primary_first.name=%s корінна руда, первинна фракціÑ, важка +item.bedrock_ore.grade.primary_second.name=%s корінна руда, первинна фракціÑ, легка +item.bedrock_ore.grade.crumbs.name=%s корінна руда, крихти +item.bedrock_ore.grade.sulfuric_byproduct.name=%s корінна руда, Сірчана побічний продукт +item.bedrock_ore.grade.sulfuric_roasted.name=%s корінна руда, ОбÑмажена Сірчана побічний продукт +item.bedrock_ore.grade.sulfuric_arc.name=%s корінна руда, Випалена Сірчана побічний продукт +item.bedrock_ore.grade.sulfuric_washed.name=%s корінна руда, Промита Сірчана побічний продукт +item.bedrock_ore.grade.solvent_byproduct.name=%s корінна руда, Розчинена побічний продукт +item.bedrock_ore.grade.solvent_roasted.name=%s корінна руда, ОбÑмажена Розчинена побічний продукт +item.bedrock_ore.grade.solvent_arc.name=%s корінна руда, Випалена Розчинена побічний продукт +item.bedrock_ore.grade.solvent_washed.name=%s корінна руда, Промита Розчинена побічний продукт +item.bedrock_ore.grade.rad_byproduct.name=%s корінна руда, Очищена побічний продукт +item.bedrock_ore.grade.rad_roasted.name=%s корінна руда, ОбÑмажена Очищена побічний продукт +item.bedrock_ore.grade.rad_arc.name=%s корінна руда, Випалена Очищена побічний продукт +item.bedrock_ore.grade.rad_washed.name=%s корінна руда, Промита Очищена побічний продукт +item.bedrock_ore.trait.arc=§6Дугова виплавка +item.bedrock_ore.trait.centrifuged=§9Центрифугована +item.bedrock_ore.trait.rad=§aОброблено виÑокоефективним розчинником +item.bedrock_ore.trait.roasted=§eОбÑмажено в кокÑовій пічці +item.bedrock_ore.trait.solvent=§fОброблено розчинником +item.bedrock_ore.trait.sulfuric=§6Оброблено Ñірчаною киÑлотою +item.bedrock_ore.trait.washed=§bПромито +item.bedrock_ore.type.actinide.name=Ðктиноїдна +item.bedrock_ore.type.crystal.name=КриÑтальна +item.bedrock_ore.type.heavy.name=Важкометальна +item.bedrock_ore.type.light.name=Легкометальна +item.bedrock_ore.type.nonmetal.name=Ðеметалева +item.bedrock_ore.type.rare.name=Рідкоземельна +item.bedrock_ore_base.name=Сира корінна руда +item.bedrock_ore_fragment.name=%s корінна руда фрагмент +item.beta.name=Бета фіча +item.big_sword.name=Великий меч +item.billet_actinium.name=Заготовка актинію-227 +item.billet_am_mix.name=Заготовка реакторного америцію +item.billet_am241.name=Заготовка америцію-241 +item.billet_am242.name=Заготовка америцію-242 +item.billet_americium_fuel.name=Заготовка америцієвого палива +item.billet_au198.name=Заготовка золота-198 +item.billet_australium.name=Заготовка авÑтралію +item.billet_australium_greater.name=Заготовка виÑокозбагаченого авÑтралію +item.billet_australium_lesser.name=Заготовка низькозбагаченого авÑтралію +item.billet_balefire_gold.name=Заготовка флешголду +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=Заготовка ґіорÑÑ–ÑŽ-336 +item.billet_gh336.desc=Колега Сіборгіума. +item.billet_hes.name=Заготовка виÑокозбагаченого шрабідієвого палива +item.billet_les.name=Заготовка низькозбагаченого шрабідієвого палива +item.billet_mox_fuel.name=Заготовка МОКС-палива +item.billet_mox_fuel.desc=Кишеньковий МокÑÑ–! +item.billet_neptunium.name=Заготовка нептунію-237 +item.billet_neptunium_fuel.name=Заготовка нептунієвого палива +item.billet_nuclear_waste.name=Заготовка Ñдерних відходів +item.billet_pb209.name=Заготовка Ñвинцю-209 +item.billet_po210be.name=Заготовка полоній-210 берилію +item.billet_polonium.name=Заготовка полонію-210 +item.billet_pu_mix.name=Заготовка реакторного полонію +item.billet_pu238.name=Заготовка плутонію-238 +item.billet_pu238be.name=Заготовка плутоній-238 берилію +item.billet_pu239.name=Заготовка плутонію-239 +item.billet_pu240.name=Заготовка плутонію-240 +item.billet_pu241.name=Заготовка плутонію-241 +item.billet_plutonium.name=Заготовка плутонію +item.billet_plutonium_fuel.name=Заготовка плутонієвого палива +item.billet_ra226.name=Заготовка радію-226 +item.billet_ra226be.name=Заготовка радій-226 берилію +item.billet_schrabidium.name=Заготовка шрабідію-326 +item.billet_schrabidium_fuel.name=Заготовка шрабідієвого палива +item.billet_silicon.name=Кремнієва плаÑтина +item.billet_solinium.name=Заготовка Ñолінію +item.billet_sr90.name=Заготовка Ñтронцію-90 +item.billet_technetium.name=Заготовка технецію-99 +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_uranium.name=Заготовка урану +item.billet_uranium_fuel.name=Заготовка уранового палива +item.billet_yharonite.name=Заготовка Ñроніту +item.billet_zfb_am_mix.name=Заготовка цирконієвого швидкого розмножувача реакторного америцію +item.billet_zfb_bismuth.name=Заготовка цирконієвого швидкого розмножувача віÑмута +item.billet_zfb_pu241.name=Заготовка цирконієвого швидкого розмножувача плутонію-241 +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_axe.name=Ð’Ñ–Ñмутова Ñокира +item.bismuth_pickaxe.name=Ð’Ñ–Ñмутове кайло +item.bismuth_plate.name=Ð’Ñ–Ñмутові наплічники, намиÑто та пов'Ñзка на Ñтегнах +item.bismuth_tool.name=Магнітний екÑтрактор +item.bj_boots.name=МіÑÑчні шиповані чоботи +item.bj_helmet.name=Пов'Ñзка на око з термодатчиком +item.bj_legs.name=МіÑÑчні кібернетичні протези ніг +item.bj_plate.name=МіÑÑчна кібернетична обшивка +item.bj_plate_jetpack.name=МіÑÑчна кібернетична обшивка(Крилата) +item.black_diamond.name=Чорний алмаз +item.black_hole.name=Мініатюрна чорна діра +item.blade_meteorite.name=Метеоритне лезо +item.blade_titanium.name=Титанова лопать +item.blade_tungsten.name=Вольфрамова поÑилена лопать +item.blades_advanced_alloy.name=УдоÑконалені леза подрібнювача +item.blades_desh.name=Деш леза подрібнювача +item.blades_steel.name=Стальні леза подрібнювача +item.blades_titanium.name=Титанові леза подрібнювача +item.blowtorch.name=ПаÑльна лампа +item.board_copper.name=Мідна панель +item.boat_rubber.name=Гумовий човен +item.bobmazon.name=Бобмазон +item.bobmazon_hidden.name=Прихований каталог +item.bobmazon_machines.name=Бобмазон: Блоки та машини +item.bobmazon_materials.name=Бобмазон: Матеріали +item.bobmazon_tools.name=Бобмазон: ІнÑтрументи +item.bobmazon_weapons.name=Бобмазон: Ð—Ð±Ñ€Ð¾Ñ Ñ‚Ð° вибухівка +item.boltntm.name=Стрижень %s +item.bolt_compound.name=Reinforced Turbine Shaft +item.bolt_spike.name=Залізничний цвÑÑ… +item.bolt_spike.desc=Випромінює загрозливу ауру, ÑкимоÑÑŒ чином +item.boltgun.name=Пневматичний заклепочник +item.bomb_caller.name=Позначник авіаудару +item.bomb_waffle.name=Ð’Ð°Ñ„Ð»Ñ Ð¼Ð°Ñового Ð·Ð½Ð¸Ñ‰ÐµÐ½Ð½Ñ +item.book_guide.name=ПоÑібник +item.book_of_.name=Книга вагонів +item.book_lemegeton.name=Лемеґетон +item.book_secret.name=3-596-50802-9 +item.bottle2_empty.name=ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð¿Ð»Ñшка +item.bottle2_fritz.name=Фріц-Кола +item.bottle2_fritz_special.name=Перша Фріц-Кола +item.bottle2_korl.name=Корл +item.bottle2_korl_special.name=Перший Корл +item.bottle2_sunset.name=СанÑет СарÑапарілла +item.bottle_cherry.name=ПлÑшка Ядер-Вишні +item.bottle_empty.name=ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð¿Ð»Ñшка у формі бомби +item.bottle_mercury.name=Колба з ртуттю +item.bottle_nuka.name=ПлÑшка Ядер-Коли +item.bottle_opener.name=Відкривашка плÑшок влаÑного виробництва Hbm +item.bottle_quantum.name=ПлÑшка Квантової Ядер-Коли +item.bottle_rad.name=ПлÑшка С~Коли РÐД +item.bottle_sparkle.name=ПлÑшка С~Коли +item.bottled_cloud.name=Хмара у плÑшці +item.boy_bullet.name=СнарÑд U235 +item.boy_igniter.name=Запальник бомби +item.boy_kit.name=Комплект Малюка +item.boy_propellant.name=Кордитний зарÑд +item.boy_shielding.name=Ðейтронний щит +item.boy_target.name=Субкритична ціль U235 +item.briquette.coal.name=Вугільний брикет +item.briquette.lignite.name=Буровугільний брикет +item.briquette.wood.name=ТирÑовий брикет +item.bucket_acid.name=Відро киÑлоти +item.bucket_mud.name=Відро токÑичних відходів +item.bucket_schrabidic_acid.name=Відро шрабідієвої киÑлоти +item.bucket_sulfuric_acid.name=Відро Ñірчаної киÑлоти +item.bucket_toxic.name=Відро Ñтереотипного зеленого Ñлизу +item.burnt_bark.name=Burnt Bark +item.burnt_bark.desc=A piece of bark from an exploded golden oak tree. +item.can_bepis.name=БрепÑÑ– +item.can_breen.name=ОÑобиÑтий резерв доктора Бріна +item.can_creature.name=Енергетичний напій 'ІÑтота' +item.can_empty.name=ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð±Ð°Ð½ÐºÐ° +item.can_key.name=Відкривашка +item.can_luna.name=Чорна Меза Луна - Темна Кола +item.can_mrsugar.name=Безалкогольний напій 'Доктор Цукор' +item.can_mug.name=КУХОЛЬ Кореневого пива +item.can_overcharge.name=Overcharge Delirium XT +item.can_redbomb.name=Енергетичний напій 'Червона бомба' +item.can_smart.name=Енергетичний напі 'Розумник' +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_biofuel.name=Biofuel Canister (LEGACY) +item.canister_bitumen.name=Bitumen Canister (LEGACY) +item.canister_canola.name=Engine Lubricant (LEGACY) +item.canister_empty.name=ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ ÐºÐ°Ð½Ñ–Ñтра +item.canister_ethanol.name=Ethanol Canister (LEGACY) +item.canister_fracksol.name=Fracking Solution Canister (LEGACY) +item.canister_fuel.name=Diesel Canister (LEGACY) +item.canister_fuel.desc=All hail the spout! +item.canister_full.name=КаніÑтра: +item.canister_gasoline.name=Leaded Gasoline Canister (LEGACY) +item.canister_gasoline.desc=lead is friend$let friend into your blood stream$*cocks gun* do it now. +item.canister_heatingoil.name=Heating Oil Canister (LEGACY) +item.canister_heavyoil.name=Heavy Oil Canister (LEGACY) +item.canister_kerosene.name=Kerosene Canister (LEGACY) +item.canister_lightoil.name=Light Oil Canister (LEGACY) +item.canister_napalm.name=Ðапалм-B +item.canister_naphtha.name=Naphtha Canister (LEGACY) +item.canister_oil.name=Crude Oil Canister (LEGACY) +item.canister_petroil.name=Petroil Canister (LEGACY) +item.canister_reoil.name=Canister of Reclaimed Industrial Oil (LEGACY) +item.canister_smear.name=Industrial Oil Canister (LEGACY) +item.canned_asbestos.name=КонÑервований азбеÑÑ‚ +item.canned_asbestos.desc=СКУШТУЙ азбеÑту! +item.canned_ass.name=КонÑервована дупа +item.canned_ass.desc=100% ÑкіÑне оÑлÑче м'ÑÑо!* +item.canned_bark.name=КонÑервована в'Ñлена ÑоÑнова кора +item.canned_bark.desc=ЕкÑтра хруÑткий! +item.canned_beef.name=КонÑервована Ñловичина +item.canned_beef.desc=Кілька Ñтоліть тому корова померла заради цього. +item.canned_bhole.name=КонÑервована чорна діра +item.canned_bhole.desc=СингулÑрніÑть це нÑм-нÑм у моєму тум-тум! +item.canned_cheese.name=КонÑервований плавлений Ñир +item.canned_cheese.desc=Це Ñир? Це гумовий цемент? Хто знає, кому Ñке діло. +item.canned_chinese.name=КонÑервована китайÑька їжа +item.canned_chinese.desc=У Китаї китайÑьку їжу називають проÑто їжею. +item.canned_diesel.name=КонÑервований дизель +item.canned_diesel.desc=У мене потроху закінчуютьÑÑ Ð¶Ð°Ñ€Ñ‚Ð¸ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾. +item.canned_fist.name=КонÑервований кулак +item.canned_fist.desc=ЙовÑер! +item.canned_fried.name=КонÑервована Ñмажена курка +item.canned_fried.desc=Ðавіть банка Ñмажена у фритюрі! +item.canned_hotdogs.name=КонÑервовані хот-доги +item.canned_hotdogs.desc=Ðе плутати з краÑкотами. +item.canned_jizz.name=КонÑервоване молоко Ð¶ÐµÑ€ÐµÐ±Ñ†Ñ FlimFlam Industriesâ„¢ +item.canned_jizz.desc=Зачекайте, що- +item.canned_kerosene.name=КонÑервований Ð³Ð°Ñ +item.canned_kerosene.desc=ПроÑто уÑвіть Ñобі дотепний текÑÑ‚ тут. +item.canned_leftovers.name=Залишки конÑерв +item.canned_leftovers.desc=ти повільний +item.canned_milk.name=КонÑервоване згущене молоко +item.canned_milk.desc=Молоко 2: Ще твердіше, ніж будь-коли раніше! +item.canned_mystery.name=КонÑервоване таємниче м'ÑÑо +item.canned_mystery.desc=Що вÑередині? Тільки один ÑпоÑіб дізнатиÑÑ! +item.canned_napalm.name=КонÑервований напалм +item.canned_napalm.desc=Люблю запах Ñтарих мемів вранці! +item.canned_oil.name=КонÑервоване моторне маÑло +item.canned_oil.desc=Воно змушує мотор рухатиÑÑŒ, то чому б не людей? +item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=уÑлуги перевода недоÑтупны! +item.canned_pizza.name=КонÑервована піца пепероні +item.canned_pizza.desc=Злочин проти людÑтва. +item.canned_recursion.name=КонÑервована рекурÑÑ–Ñ +item.canned_recursion.desc=КонÑервована рекурÑÑ–Ñ +item.canned_spam.name=КонÑервований Ñпам +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word "Spam" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_stew.name=КонÑервоване "Грибне рагу" +item.canned_stew.desc=... +item.canned_tomato.name=КонÑервований томатний Ñуп +item.canned_tomato.desc=Хто хоче гуÑтої червоної паÑти? +item.canned_tube.name=КоÑмічний тюбик з їжею +item.canned_tube.desc=Смачна каша. +item.canned_tuna.name=КонÑервований тунець +item.canned_tuna.desc=Я не можу Ñказати, чи це Ñправді тунець, чи Ñушений цемент. +item.canned_yogurt.name=КонÑервований йогурт +item.canned_yogurt.desc=Мабуть, зіпÑований, але що поробиш. +item.canteen_13.name=ФлÑга Сховища 13 +item.canteen_fab.name=Чудова горілка +item.canteen_vodka.name=Стильна флÑга +item.cap_fritz.name=Кришка від плÑшки Фріц-Коли +item.cap_korl.name=Кришка від плÑшки Корлу +item.cap_nuka.name=Кришка від плÑшки Ядер-Коли +item.cap_quantum.name=Кришка від плÑшки Квантової Ядер-Коли +item.cap_rad.name=Кришка від плÑшки С~Коли РÐД +item.cap_sparkle.name=Кришка від плÑшки С~Коли +item.cap_star.name=Кришка СанÑет СарÑапарілли з зіркою +item.cap_sunset.name=Кришка від плÑшки СанÑет СарÑапарілли +item.cape_ayy.name=Ayy's плащ +item.cape_codered_.name=codered_'s плащ +item.cape_dafnik.name=Dafnik's плащ +item.cape_gasmask.name=Плащ (Протигаз) +item.cape_hbm.name=Hbm's плащ +item.cape_hidden.name=Прихований плащ +item.cape_lpkukin.name=LPkukin's плащ +item.cape_nostalgia.name=DrNostalgia's плащ +item.cape_radiation.name=Плащ (РадіаціÑ) +item.cape_schrabidium.name=Плащ (Шрабідій) +item.cape_vertice.name=Lord Vertice's плащ +item.card_aos.name=Туз пік +item.card_qos.name=Дама пік +item.cart.crate.name=Вігонетка з Ñщиком +item.cart.destroyer.name=Вагонетка Ð´Ð»Ñ Ð·Ð½Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±Ñ€ÑƒÑ…Ñ‚Ñƒ +item.cart.empty.name=Вагонетка +item.cart.powder.name=Вагонетка з порохом +item.cart.semtex.name=Вагонетка з СемтекÑом +item.casing_357.name=Гільзи .357 Magnum +item.casing_44.name=Гільзи .44 Magnum +item.casing_50.name=Гільзи великого калібру +item.casing_9.name=Гільзи малого калібру +item.casing_bag.name=Сумка Ð´Ð»Ñ Ð³Ñ–Ð»ÑŒÐ· +item.casing_buckshot.name=Гільза картечі +item.casing.small.name=Мала бронзова гільза +item.casing.small_steel.name=Мала Ñталева гільза +item.casing.large.name=Велика бронзова гільза +item.casing.large_steel.name=Велика Ñталева гільза +item.casing.shotshell.name=Гільза Ð´Ð»Ñ Ð½Ð°Ð±Ð¾Ñ—Ð² з чорним порохом +item.casing.buckshot.name=ПлаÑтикова дробова гільза +item.casing.buckshot_advanced.name=УдоÑконалена дробова гільза +item.catalyst_clay.name=ГлинÑний каталізатор +item.catalytic_converter.name=Каталітичний нейтралізатор +item.cbt_device.name=ПриÑтрій тортур пеніÑа та Ñєчок +item.cell_anti_schrabidium.name=Пробірка з антишрабідієм +item.cell_antimatter.name=Пробірка з антиматерією +item.cell_balefire.name=Пробірка з газоподібним BF +item.cell_deuterium.name=Пробірка з дейтерієм +item.cell_empty.name=ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð¿Ñ€Ð¾Ð±Ñ–Ñ€ÐºÐ° +item.cell_puf6.name=Пробірка з гекÑафторидом плутонію +item.cell_sas3.name=Пробірка з триÑульфідом шрабідію +item.cell_tritium.name=Пробірка з трітієм +item.cell_uf6.name=Пробірка з гекÑафторидом урану +item.centri_stick.name=Центрифуга на паличці +item.centrifuge_element.name=Центрифужний елемент +item.centrifuge_tower.name=Центрифужна вежа +item.chainsaw.name=Бензопила +item.cheese.name=Сир +item.cheese_quesadilla.name=Сирна кеÑÐ°Ð´Ð¸Ð»ÑŒÑ +item.chemical_dye.black.name=Хімічний барвник (Чорний) +item.chemical_dye.blue.name=Хімічний барвник (Синій) +item.chemical_dye.brown.name=Хімічний барвник (Коричневий) +item.chemical_dye.cyan.name=Хімічний барвник (Бірюзовий) +item.chemical_dye.gray.name=Хімічний барвник (Сірий) +item.chemical_dye.green.name=Хімічний барвник (Зелений) +item.chemical_dye.lightblue.name=Хімічний барвник (Блакитний) +item.chemical_dye.lime.name=Хімічний барвник (Світло-зелений) +item.chemical_dye.magenta.name=Хімічний барвник (Пурпуровий) +item.chemical_dye.orange.name=Хімічний барвник (Помаранчевий) +item.chemical_dye.pink.name=Хімічний барвник (Рожевий) +item.chemical_dye.purple.name=Хімічний барвник(Фіолетовий) +item.chemical_dye.red.name=Хімічний барвник (Червоний) +item.chemical_dye.silver.name=Хімічний барвник (Світло-Ñірий) +item.chemical_dye.white.name=Хімічний барвник (Білий) +item.chemical_dye.yellow.name=Хімічний барвник (Жовтий) +item.chemistry_set.name=Лабораторний поÑуд +item.chemistry_set_boron.name=Лабораторний поÑуд (борне Ñкло) +item.chemistry_template.name=Хімічний шаблон: +item.chernobylsign.name=Бойова Ñокира з ЧорнобильÑького попереджувального знаку +item.chlorine_pinwheel.name=Хлорна вертушка +item.chlorophyte_axe.name=Хлорофітова Ñокира +item.chlorophyte_pickaxe.name=Хлорофітове кайло +item.chocolate.name=Панцершоколад +item.chocolate.desc=Танковий шоколад? Впевнений, що це проÑто мет. +item.chocolate_milk.name=Шоколадне молоко +item.chopper.name=Гвинтокрил МиÑлиивець +item.chopper_blades.name=Лопать Гвинтокрила МиÑÐ»Ð¸Ð²Ñ†Ñ +item.chopper_gun.name=ІмпульÑна гармата +item.chopper_head.name=Кокпіт Гвинтокрила МиÑÐ»Ð¸Ð²Ñ†Ñ +item.chopper_tail.name=ХвіÑÑ‚ Гвинтокрила МиÑÐ»Ð¸Ð²Ñ†Ñ +item.chopper_torso.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ Ð“Ð²Ð¸Ð½Ñ‚Ð¾ÐºÑ€Ð¸Ð»Ð° МиÑÐ»Ð¸Ð²Ñ†Ñ +item.chopper_wing.name=Крило Гвинтокрила МиÑÐ»Ð¸Ð²Ñ†Ñ +item.chunk_ore.malachite.name=Шматок малахіту +item.chunk_ore.rare.name=Шматок рідкоземельної руди +item.chunk_ore.cryolite.name=Шматок кріоліту +item.cigarette.name=Сигарети торгової марки FFI +item.cinnebar.name=Кіновар +item.circuit.advanced.name=ВійÑькова друкована плата +item.circuit.analog.name=Ðналогова друкована плата +item.circuit.atomic_clock.name=Ðтомний годинник +item.circuit.basic.name=Інтегральна друкована плата +item.circuit.bismoid.name=УніверÑальна друкована плата +item.circuit.capacitor.name=КонденÑатор +item.circuit.capacitor_board.name=КонденÑаторна плата +item.circuit.capacitor_tantalium.name=Танталовий конденÑатор +item.circuit.chip.name=Мікрочіп +item.circuit.chip_bismoid.name=УніверÑальний інтегральний чіп +item.circuit.chip_quantum.name=Твердотільний квантовий процеÑор +item.circuit.controller.name=Блок ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ +item.circuit.controller_advanced.name=УдоÑконалений блок ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ +item.circuit.controller_chassis.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ Ð±Ð»Ð¾ÐºÑƒ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ +item.circuit.controller_quantum.name=Квантовий комп'ютер +item.circuit.pcb.name=Друкована плата +item.circuit.quantum.name=Квантовий обчиÑлювальний блок +item.circuit.silicon.name=Друкована кремнієва плаÑтина +item.circuit.vacuum_tube.name=Вакуумна трубка +item.circuit_aluminium.name=Базова Ñхема +item.circuit_arsenic.name=Ðдаптивна Ñхема +item.circuit_arsenic_raw.name=Adaptable Circuit Assembly +item.circuit_bismuth.name=УніверÑальний чіпÑет +item.circuit_bismuth_raw.name=Versatile Chipset Assembly +item.circuit_copper.name=Покращена Ñхема +item.circuit_gold.name=Розігнана Ñхема +item.circuit_raw.name=Basic Circuit Assembly +item.circuit_red_copper.name=УдоÑконалена Ñхема +item.circuit_schrabidium.name=ВиÑокопродуктивна Ñхема +item.circuit_star.name=StarControl Circuit Board +item.circuit_star.desc=Ðа даний момент не викориÑтовуєтьÑÑ, оÑкільки не має операційної ÑиÑтеми. +item.circuit_star_component.card.name=StarControl Extension Card +item.circuit_star_component.chipset.name=StarControl Chipset +item.circuit_star_component.cpu.name=StarControl CPU +item.circuit_star_component.ram.name=StarControl RAM +item.circuit_star_piece.board_blank.name=SC - Printed Circuit Board +item.circuit_star_piece.board_converter.name=SC - Voltage Converter +item.circuit_star_piece.board_transistor.name=SC - Transistors +item.circuit_star_piece.bridge_bios.name=SC- BIOS Chip +item.circuit_star_piece.bridge_bus.name=SC - BUS +item.circuit_star_piece.bridge_chipset.name=SC - Chipset +item.circuit_star_piece.bridge_cmos.name=SC - CMOS RAM +item.circuit_star_piece.bridge_io.name=SC - IO Chip +item.circuit_star_piece.bridge_north.name=SC - North Bridge +item.circuit_star_piece.bridge_south.name=SC - South Bridge +item.circuit_star_piece.card_board.name=SC - Extension Card Board +item.circuit_star_piece.card_processor.name=SC - Extension Card Processor +item.circuit_star_piece.cpu_cache.name=SC - CPU Cache +item.circuit_star_piece.cpu_clock.name=SC - CPU Clock +item.circuit_star_piece.cpu_ext.name=SC - Arsenic Semi Conductor Extension +item.circuit_star_piece.cpu_logic.name=SC - Arithmetic Logic Unit +item.circuit_star_piece.cpu_register.name=SC - CPU Register +item.circuit_star_piece.cpu_socket.name=SC - CPU Socket +item.circuit_star_piece.mem_socket.name=SC - Memory Socket +item.circuit_star_piece.mem_16k_a.name=SC - 16k Memory Stick Slot A +item.circuit_star_piece.mem_16k_b.name=SC - 16k Memory Stick Slot B +item.circuit_star_piece.mem_16k_c.name=SC - 16k Memory Stick Slot C +item.circuit_star_piece.mem_16k_d.name=SC - 16k Memory Stick Slot D +item.circuit_tantalium.name=КонденÑаторна плата +item.circuit_tantalium_raw.name=Capacitor Board Assembly +item.circuit_targeting_tier1.name=ВійÑькова друкована плата (Tier 1) +item.circuit_targeting_tier2.name=ВійÑькова друкована плата (Tier 2) +item.circuit_targeting_tier3.name=ВійÑькова друкована плата (Tier 3) +item.circuit_targeting_tier4.name=ВійÑькова друкована плата (Tier 4) +item.circuit_targeting_tier5.name=ВійÑькова друкована плата (Tier 5) +item.circuit_targeting_tier6.name=ВійÑькова друкована плата (Tier 6) +item.cladding_desh.name=Деш обшивка +item.cladding_ghiorsium.name=ÒіорÑієва обшивка +item.cladding_iron.name=Залізна обшивка +item.cladding_lead.name=Свинцева обшивка +item.cladding_obsidian.name=ОбÑидіанова шкіра +item.cladding_paint.name=Свинцева фарба +item.cladding_rubber.name=Гумова обшивка +item.clay_tablet.name=ГлинÑна табличка +item.clip_bf.name=BF-Shell Double Pack +item.clip_bolt_action.name=Box of 12x74 Slugs +item.clip_cryolator.name=Tank of Cryolator Fuel +item.clip_defabricator.name=Belt with Defabricator Energy Cells +item.clip_emp.name=Small Pack of Energy Cells +item.clip_euthanasia.name=Last Aid Kit +item.clip_fatman.name=Six Pack of Mini Nukes +item.clip_hp.name=Ink Tanks +item.clip_immolator.name=Tank of Immolator Fuel +item.clip_jack.name=Box of Quadruple 12x70 Buckshot Rounds +item.clip_lever_action.name=Box of 12x74 Buckshot Rounds +item.clip_mirv.name=Three-In-One Pack of Mini MIRVs +item.clip_mp.name=Britannia Military Standard Issue Assault Rifle Magazine +item.clip_mp40.name=9mm SMG Magazine +item.clip_osipr.name=AR2 Magazine +item.clip_revolver.name=Box of .357 Rounds +item.clip_revolver_cursed.name=Britannia Military Standard Issue Pistol Magazine +item.clip_revolver_gold.name=Small Coffer of Golden Bullets +item.clip_revolver_iron.name=Box of Iron Rounds +item.clip_revolver_lead.name=Box of Nuclear Bullets +item.clip_revolver_nightmare.name=Bag of Bullets +item.clip_revolver_nightmare2.name=Belt with Laser Buckshot +item.clip_revolver_nopip.name=Box of .44 Rounds +item.clip_revolver_pip.name=Speedloader with Tainted Bullets +item.clip_revolver_schrabidium.name=Schrabidium Ammo Container +item.clip_rpg.name=Rocket Container +item.clip_spark.name=Large Electromagnetic Cartridge +item.clip_stinger.name=Pack of Stinger Rockets +item.clip_uboinik.name=Box of 12x70 Buckshot Rounds +item.clip_uzi.name=32rnd .22 LR Magazine +item.clip_xvl1456.name=Large Isotope Box +item.cmb_axe.name=Сокира зі Ñталі комбайнів +item.cmb_boots.name=Чоботи зі Ñталі комбайнів +item.cmb_helmet.name=Шолом зі Ñталі комбайнів +item.cmb_hoe.name=Мотика зі Ñталі комбайнів +item.cmb_legs.name=Ðаголінники зі Ñталі комбайнів +item.cmb_pickaxe.name=Кайло зі Ñталі комбайнів +item.cmb_plate.name=Ðагрудник зі Ñталі комбайнів +item.cmb_shovel.name=Лопата зі Ñталі комбайнів +item.cmb_sword.name=Меч зі Ñталі комбайнів +item.coal_infernal.name=Пекельне Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ +item.cobalt_axe.name=Кобальтова Ñокира +item.cobalt_boots.name=Кобальтові чоботи +item.cobalt_decorated_axe.name=Прикрашена кобальтова Ñокира +item.cobalt_decorated_hoe.name=Прикрашена кобальтова мотика +item.cobalt_decorated_pickaxe.name=Прикрашене кобальтове кайло +item.cobalt_decorated_shovel.name=Прикрашена кобальтова лопата +item.cobalt_decorated_sword.name=Прикрашений кобальтовий меч +item.cobalt_helmet.name=Кобальтовий шолом +item.cobalt_hoe.name=Кобальтова мотика +item.cobalt_legs.name=Кобальтові наголінники +item.cobalt_pickaxe.name=Кобальтове кайло +item.cobalt_plate.name=Кобальтовий нагрудник +item.cobalt_shovel.name=Кобальтова лопата +item.cobalt_sword.name=Кобальтовий меч +item.coffee.name=Кава +item.coffee_radium.name=Кава з радієм +item.coil_advanced_alloy.name=Ðадпровідна котушка +item.coil_advanced_torus.name=Ðадпровідна кільцева котушка +item.coil_copper.name=Мідна котушка +item.coil_copper_torus.name=Кільцева котушка +item.coil_gold.name=Золота котушка +item.coil_gold_torus.name=Золота кільцева котушка +item.coil_magnetized_tungsten.name=4000K виÑокотемпературна надпровідна котушка +item.coil_tungsten.name=Ðагрівальна Ñпіраль +item.coin_creeper.name=Монета Ñдерного кріпера +item.coin_maskman.name=Монета маÑкмена +item.coin_radiation.name=Монета радіації +item.coin_siege.name=Монета облоги +item.coin_ufo.name=Монета ÐЛО +item.coin_worm.name=Монета БаллÑ-О-Трона +item.coke.coal.name=Вугільний ÐºÐ¾ÐºÑ +item.coke.lignite.name=Буровугільний ÐºÐ¾ÐºÑ +item.coke.petroleum.name=Ðафтовий ÐºÐ¾ÐºÑ +item.coltan_tool.name=ÐšÐ¾Ð»Ñ‚Ð°Ñ +item.combine_scrap.name=Металобрухт комбайнів +item.component_emitter.name=Компонент випромінювача +item.component_limiter.name=Компонент Ñтабілізатора +item.containment_box.name=Свинцевий Ñщик +item.conveyor_wand.regular.name=Конвеєрна Ñтрічка +item.conveyor_wand.express.name=ШвидкіÑна конвеєрна Ñтрічка +item.conveyor_wand.double.name=ДвоÑмугова конвеєрна Ñтрічка +item.conveyor_wand.triple.name=ТриÑмугова конвеєрна Ñтрічка +item.conveyor_wand.desc=Переміщує предмети, що потраплÑють на нього$Оберіть дві точки, щоб Ñтворити конвеєр$Клацніть приÑівши, щоб розміÑтити вручну$Клацніть викруткою, щоб повернути$Клацніть приÑівши з викруткою, щоб змінити тип. +item.conveyor_wand.vertical.desc=Здатний приймати форму ліфтів та жолобів Ð´Ð»Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€ÐµÐ´Ð¼ÐµÑ‚Ñ–Ð² +item.cordite.name=Кордит +item.cotton_candy.name=Радіоактивна цукрова вата +item.crackpipe.name=Труба здоров'Ñ +item.crate_caller.name=Замовник доÑтавки +item.crayon.black.name=Чорний олівець +item.crayon.blue.name=Синій олівець +item.crayon.brown.name=Коричневий олівець +item.crayon.cyan.name=Бірюзовий олівець +item.crayon.gray.name=Сірий олівець +item.crayon.green.name=Зелений олівець +item.crayon.lightblue.name=Блакитний олівець +item.crayon.lime.name=Світло-зелениц олівець +item.crayon.magenta.name=Пурпуровий олівець +item.crayon.orange.name=Помаранчевий олівець +item.crayon.pink.name=Рожевий олівець +item.crayon.purple.name=Фіолетовий олівець +item.crayon.red.name=Червоний олівець +item.crayon.silver.name=Світло-Ñірий олівець +item.crayon.white.name=Білий олівець +item.crayon.yellow.name=Жовтий олівець +item.crowbar.name=ПриÑтрій Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ñщиків тип â„–5 "Лом" +item.crucible.name=Горнило +item.crucible_template.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=КриÑтал міді +item.crystal_cinnebar.name=КриÑтал кіноварі +item.crystal_diamond.name=КриÑтал алмазу +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_phosphorus.name=КриÑтал фоÑфору +item.crystal_plutonium.name=КриÑтал плутонію +item.crystal_rare.name=КриÑтал рідкоземельних елементів +item.crystal_redstone.name=КриÑтал редÑтоуну +item.crystal_schrabidium.name=КриÑтал шрабідію +item.crystal_schraranium.name=КриÑтал шраранію +item.crystal_starmetal.name=КриÑтал Зіркового металу +item.crystal_sulfur.name=КриÑтал Ñірки +item.crystal_thorium.name=КриÑтал торію +item.crystal_titanium.name=КриÑтал титану +item.crystal_trixite.name=КриÑтал трікÑиту +item.crystal_tungsten.name=КриÑтал вольфраму +item.crystal_uranium.name=КриÑтал урану +item.crystal_xen.name=Штучний криÑтал Зену +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=Ядерний зарÑд КаÑтомної бомби +item.custom_schrab.name=Шрабідієвий зарÑд КаÑтомної бомби +item.custom_tnt.name=Вибуховий зарÑд КаÑтомної бомби +item.cyclotron_tower.name=Cyclotron Tower +item.debris_concrete.name=Розбитий бетон +item.debris_element.name=Розбитий паливний елемент ЦИРÐОКС +item.debris_exchanger.name=Шматок теплообмінника +item.debris_fuel.name=Шматок паливного ÑÑ‚Ñ€Ð¸Ð¶Ð½Ñ Ð Ð‘ÐœÐš +item.debris_graphite.name=Шматок гарÑчого графіту +item.debris_metal.name=Понівечений металевий Ñтрижень +item.debris_shrapnel.name=Обломки підмоÑтків +item.definitelyfood.name=Індивідуальний раціон Ñ…Ð°Ñ€Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ (ІРХ) +item.defuser.name=ВиÑокотехнологічний приÑтрій Ð´Ð»Ñ Ð·Ð½ÐµÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð±Ð¾Ð¼Ð± +item.defuser_gold.name=Золоті бокорізи +item.demon_core_closed.name=Закрите Ядро-демон +item.demon_core_open.name=Привідкрите Ядро-демон +item.desh_axe.name=Сокрира з робітничого Ñплаву +item.desh_hoe.name=Мотика з робітничого Ñплаву +item.desh_pickaxe.name=Кайло з робітничого Ñплаву +item.desh_shovel.name=Лопата з робітничого Ñплаву +item.desh_sword.name=Меч з робітничого Ñплаву +item.designator.name=Цілевказівник малої дальноÑті +item.designator_arty_range.name=ДиÑтанційний навідник артилерії великої дальноÑті +item.designator_manual.name=Ручний цілевказівник +item.designator_range.name=Цілевказівник великої дальноÑті +item.detonator.name=Детонатор +item.detonator_de.name=Вибухівка Ð¼ÐµÑ€Ñ†Ñ +item.detonator_deadman.name=Детонатор Ð¼ÐµÑ€Ñ†Ñ +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=ДіагноÑтик Дігамми +item.disperser_canister.name= РозÑіювальна каніÑтра: +item.disperser_canister_empty.name= РозÑіювальна каніÑтра +item.dns_boots.name=Чоботи ДÐТ Ðано коÑтюму +item.dns_legs.name=Ðаголінники ДÐТ Ðано коÑтюму +item.dns_helmet.name=Шолом ДÐТ Ðано коÑтюму +item.dns_plate.name=Ðагрудник ДÐТ Ðано коÑтюму +item.dnt_boots.name=дієнаутронієві чоботи +item.dnt_legs.name=дінейтерієвиі ноги +item.dnt_helmet.name=дінотроніумоувий шолом +item.dnt_plate.name=дінейтромовий нагрудник +item.dnt_sword.name=динуатуремовий меч +item.door_bunker.name=Бункерні двері +item.door_metal.name=Металеві двері +item.door_office.name=ОфіÑні двері +item.door_red.name=Червоні двері +item.dosimeter.name=Дозиметр +item.drax.name=Терра бур +item.drax_mk2.name=Загартований Терра бур +item.drax_mk3.name=Шрабідовий Терра бур +item.drillbit_desh.name=Деш бурильна головка +item.drillbit_desh_diamond.name=Деш бурильна головка (з алмазним покриттÑм) +item.drillbit_ferro.name=Фероуранова бурильна головка +item.drillbit_ferro_diamond.name=Фероуранова бурильна головка (з алмазним покриттÑм) +item.drillbit_hss.name=Бурильна головка зі швидкорізальної Ñталі +item.drillbit_hss_diamond.name=Бурильна головка зі швидкорізальної Ñталі (з алмазним покриттÑм) +item.drillbit_steel.name=Сталева бурильна головка +item.drillbit_steel_diamond.name=Сталева бурильна головка (з алмазним покриттÑм) +item.drillbit_tcalloy.name=Бурильна головка з технецієвої Ñталі +item.drillbit_tcalloy_diamond.name=Бурильна головка з технецієвої Ñталі (з алмазним покриттÑм) +item.drill_titanium.name=Титановий бур +item.drone.patrol.name=ТранÑпортний дрон +item.drone.patrol.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place. +item.drone.patrol_chunkloading.name=ТранÑпортний дрон Прогрузщик чанків +item.drone.patrol_chunkloading.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place.$Loads chunks! +item.drone.patrol_express.name=ШвидкіÑний транÑпортний дрон +item.drone.patrol_express.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place. +item.drone.patrol_express_chunkloading.name=ШвидкіÑний транÑпортний дрон Прогрузщик чанків +item.drone.patrol_express_chunkloading.desc=Follows a route of waypoints$Tries to load/unload every time it reaches a drone crate$Right click on top of a drone crate to place.$Loads chunks! +item.drone.request.name=ЛогіÑтичний дрон +item.drone.request.desc=Used by logistics drone docks to spawn logistics drones$Drones will follow logistics drone waypoints$After completing a request, the drone will return to the dock. +item.drone_linker.name=Лінкер транÑпортних дронів +item.ducttape.name=Скотч +item.dust.name=Пил +item.dust.desc=Я ненавиджу пил! +item.dust.desc.P11=Ще один зваливÑÑ Ð·Ð°Ð¼ÐµÑ€Ñ‚Ð²Ð¾! (Another one bites the dust!) +item.dust_tiny.name=Крихітна купка пилу +item.dwarven_pickaxe.name=Кайло дворфів +item.dynosphere_base.name=Blank Dynosphere +item.dynosphere_desh.name=Desh Dynosphere +item.dynosphere_desh_charged.name=Desh Dynosphere (Charged) +item.dynosphere_dineutronium.name=Dineutronium Dynosphere +item.dynosphere_dineutronium_charged.name=Dineutronium Dynosphere (Charged) +item.dynosphere_euphemium.name=Euphemium Dynosphere +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=Ðефункціональний Ñдерний реактор +item.early_explosive_lenses.name=МаÑив вибухових лінз Першого Ð¿Ð¾ÐºÐ¾Ð»Ñ–Ð½Ð½Ñ +item.early_explosive_lenses.desc=Збірка 8 вибухових лінз з алюмінієвим$штовхачем, дюралюмінієвим щитом, та дротÑномоÑтовим детонатором. +item.egg_balefire.name=BF Ñйце +item.egg_balefire.desc=Який птах відкладає радіоактивні ÑйцÑ? +item.egg_balefire_shard.name=BF оÑколок +item.egg_glyphid.name=Яйце гліфіду +item.elec_axe.name=Електрична бензопила +item.elec_pickaxe.name=Ударний бур +item.elec_shovel.name=Спіральний бур +item.elec_sword.name=Електрошокер +item.energy_core.name=Імпровізоване енергетичне Ñдро +item.entanglement_kit.name=Комплект квантовової ÑплутаноÑті +item.entanglement_kit.desc=Предмет Ð´Ð»Ñ ÐºÑ€Ð°Ñ„Ñ‚Ð° телепорту.$ДозволÑÑ” змінювати виміри за допомогою$Ñканера реÑурÑів, покращеного берилієм. +item.envsuit_boots.name=Чоботи захиÑного коÑтюма М1ТТІ +item.envsuit_helmet.name=Шолом захиÑного коÑтюма М1ТТІ +item.envsuit_legs.name=Ðаголінники захиÑного коÑтюма М1ТТІ +item.envsuit_plate.name=Ðагрудник захиÑного коÑтюма М1ТТІ +item.euphemium_boots.name=Юхимієві чоботи +item.euphemium_capacitor.name=Юхимієвий конденÑатор +item.euphemium_capacitor.desc=ДозволÑÑ” паÑивне розÑÑ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‡ÐµÐ½Ð¾Ñ— позитивної енергії. +item.euphemium_helmet.name=Юхимієвий шолом +item.euphemium_kit.name=Юхимієвий набір +item.euphemium_legs.name=Юхимієві наголінники +item.euphemium_plate.name=Юхимієвий нагрудник +item.euphemium_stopper.name=Стопор +item.explosive_lenses.name=МаÑив вибухових лінз +item.explosive_lenses.desc=Збірка 8 плаÑтичних вибухових лінз з тонким$алюмінієвим штовхачем, дюралюмінієвим щитом, та$мініатюрними дротÑномоÑтовим детонатором. +item.fabsols_vodka.name=Горілка ФабÑол +item.factory_core_advanced.name=Advanced Factory Energy Cluster +item.factory_core_titanium.name=Basic Factory Energy Cluster +item.fallout.name=Купка радіоактивних опадів +item.fau_boots.name=Фау чоботи +item.fau_helmet.name=Фау шолом +item.fau_legs.name=Фау наголінники +item.fau_plate.name=Фау нагрудник +item.filter_coal.name=Фільтр з активованого Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ +item.fins_big_steel.name=Великий Ñталевий хвоÑтовий Ñтабілізатор +item.fins_flat.name=ПлоÑкий Ñталевий кожух +item.fins_quad_titanium.name=Мале титанове Ð¾Ð¿ÐµÑ€ÐµÐ½Ð½Ñ +item.fins_small_steel.name=Малий Ñталевий хвоÑтовий Ñтабілізатор +item.fins_tri_steel.name=Велике Ñталеве Ð¾Ð¿ÐµÑ€ÐµÐ½Ð½Ñ +item.five_htp.name=Таблетки ентераміну +item.five_htp.desc=Прибирає вÑе дігамма Ð¾Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ð· гравцÑ, та захиÑÑ‚ від нього на 10 хвилин +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.flame_pony.desc=Жовтий кінь перемагає Ñинього конÑ, це доведений факт! +item.flask_infusion.shield.name=ÐаÑтоÑнка щита +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=Шрабідієвий зарÑд +item.fluid_barrel_empty.name=ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð±Ð¾Ñ‡ÐºÐ° Ð´Ð»Ñ Ñ€Ñ–Ð´Ð¸Ð½Ð¸ +item.fluid_barrel_full.name=Бочка Ð´Ð»Ñ Ñ€Ñ–Ð´Ð¸Ð½Ð¸: +item.fluid_barrel_infinite.name=ÐеÑкінченна бочка Ð´Ð»Ñ Ñ€Ñ–Ð´Ð¸Ð½Ð¸ +item.fluid_duct.name=Трубопровід: +item.fluid_identifier.name=Ідентифікатор рідини +item.fluid_identifier.info=УніверÑальний ідентифікатор рідини длÑ: +item.fluid_identifier.usage0=Клацніть правою кнопкою миші по трубопроводу, щоб вÑтановити їхній тип рідини. +item.fluid_identifier.usage1=Клацніть правою кнопкою з шифтом, щоб вÑтановити тип Ð´Ð»Ñ Ñуміжних +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=Порожній резервуар Ð´Ð»Ñ Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¸Ñ… матеріалів +item.fluid_tank_lead_full.name=Резервуар Ð´Ð»Ñ Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¸Ñ… матеріалів: +item.fluorite.name=Флюорит +item.flywheel_beryllium.name=Берилієвий маховик +item.fmn.name=Таблетка флунітразепаму +item.fmn.desc=Прибирає вÑе дігамма Ð¾Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ð· гравцÑ, до 2,000mDRX +item.folly_bullet.name=12.8cm Starmetal High-Energy Shell +item.folly_bullet_du.name=12.8cm DU-Shell +item.folly_bullet_nuclear.name=12.8cm Nuclear Shell +item.folly_shell.name=Silver Bullet Casing +item.fooditem.name=харчовий продукт +item.fragment_actinium.name=Фрагмент актинію-227 +item.fragment_boron.name=Фрагмент бору +item.fragment_cerium.name=Фрагмент церію +item.fragment_cobalt.name=Фрагмент кобальту +item.fragment_coltan.name=Колтан +item.fragment_lanthanium.name=Фрагмент лантану +item.fragment_meteorite.name=Фрагмент метеорита +item.fragment_neodymium.name=Фрагмент неодиму +item.fragment_niobium.name=Фрагмент ніобію +item.fuel_additive.antiknock.name=ТетраетилÑвинцева антидетонувальна приÑадка +item.fuel_additive.deicer.name=Стекломой +item.fuel_tank_large.name=Великий паливний бак +item.fuel_tank_medium.name=Середній паливний бак +item.fuel_tank_small.name=Малий паливний бак +item.fuse.name=Запобіжник +item.fusion_core.name=Ядерний блок +item.fusion_core_infinite.name=ÐеÑкінченний Ñдерний блок +item.fusion_shield_chlorophyte.name=Хлорофітове Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÐµÑ€Ð¼Ð¾Ñдерного реактора +item.fusion_shield_desh.name=Деш Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÐµÑ€Ð¼Ð¾Ñдерного реактора +item.fusion_shield_tungsten.name=Вольфрамове Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÐµÑ€Ð¼Ð¾Ñдерного реактора +item.fusion_shield_vaporwave.name=V A P O R W A V E Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÐµÑ€Ð¼Ð¾Ñдерного реактора +item.gadget_core.name=Велике плутонієве Ñдро +item.gadget_explosive.name=Вибухові лінзи першого Ð¿Ð¾ÐºÐ¾Ð»Ñ–Ð½Ð½Ñ +item.gadget_kit.name=Комплект Гаджета +item.gadget_wireing.name=Проводка +item.gas_biogas.name=Biogas Tank +item.gas_empty.name=Порожній газовий балон +item.gas_full.name=Газовий балон: +item.gas_lpg.name=LPG Tank +item.gas_mask.name=Протигаз +item.gas_mask_filter.name=Фільтр протигаза +item.gas_mask_filter_combo.name=Комбінований фільтр протигаза +item.gas_mask_filter_mono.name=Каталітичний маÑковий фільтр +item.gas_mask_filter_piss.name=УдоÑконалений Ñаморобний фільтр протигаза +item.gas_mask_filter_rag.name=Саморобний фільтр протигаза +item.gas_mask_m65.name=Протигаз M65-Z +item.gas_mask_mono.name=ÐапівмаÑка +item.gas_mask_olde.name=ШкірÑний протигаз +item.gas_petroleum.name=Petroleum Gas Tank +item.gas_tester.name=Газовий датчик +item.gear_large.name=Велика шеÑÑ‚ÐµÑ€Ð½Ñ +item.gear_large_steel.name=Велика Ñтальна шеÑÑ‚ÐµÑ€Ð½Ñ +item.geiger_counter.name=Ручний лічильник Гейгера +item.gem_alexandrite.name=ÐлекÑандрит +item.gem_rad.name=Радіоактивний Ñамоцвіт +item.gem_sodalite.name=Содаліт +item.gem_tantalium.name=ПолікриÑтал танталу +item.gem_tantalium.desc='Танталій' +item.gem_tantalium.desc.P11=AKA Танталій. +item.gem_volcanic.name=Вулканічний Ñамоцвіт +item.generator_front.name=Generator Front +item.generator_steel.name=Generator Body +item.glitch.name=Глюк +item.glowing_stew.name=СÑюче грибне рагу +item.glyphid_meat.name=М'ÑÑо гліфідів +item.glyphid_meat_grilled.name=Смажене м'ÑÑо гліфідів +item.goggles.name=ЗахиÑні окулÑри +item.grenade_aschrab.name=Метальна пробірка з антишрабідієм +item.grenade_black_hole.name=Граната з чорною дірою +item.grenade_breach.name=Пробійна граната +item.grenade_burst.name=Копальна граната +item.grenate_cats.name=Grenade of Cats +item.grenade_cloud.name=Банка з їдкими випарами +item.grenade_cluster.name=КаÑетна бомба +item.grenade_electric.name=Електрична бомба +item.grenade_fire.name=ВогнÑна оÑколкова граната +item.grenade_flare.name=Сигнальний флаєр +item.grenade_frag.name=ОÑколкова граната +item.grenade_gas.name=Газова граната +item.grenade_gascan.name=Метальна паливна каніÑтра +item.grenade_generic.name=Граната +item.grenade_if_bouncy.name=IF - Стрибуча граната +item.grenade_if_brimstone.name=IF -Метальна Сірчана шахта +item.grenade_if_concussion.name=IF - Контузійна граната +item.grenade_if_generic.name=IF - Граната +item.grenade_if_he.name=IF - ФугаÑна граната +item.grenade_if_hopwire.name=IF - Vortex Hopwire +item.grenade_if_impact.name=IF - Контактна граната +item.grenade_if_incendiary.name=IF - Запалювальна граната +item.grenade_if_mystery.name=IF - M.-граната +item.grenade_if_null.name=IF - Ðульова граната +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=The Kyiv Special +item.grenade_lemon.name=Горючий лимон +item.grenade_mirv.name=ОÑколкова граната MIRV +item.grenade_mk2.name=Граната тип â„–2 "ÐмбаÑадор ананаÑа" +item.grenade_nuclear.name=Ядерна граната +item.grenade_nuke.name=Бурова граната тип â„–6 +item.grenade_pink_cloud.name=Банка рожевої хмари +item.grenade_plasma.name=Плазмова граната +item.grenade_poison.name=Отруйна граната +item.grenade_pulse.name=ІмпульÑна граната +item.grenade_schrabidium.name=Шрабідієва граната +item.grenade_shrapnel.name=Шрапнельна граната +item.grenade_smart.name=Розумна граната +item.grenade_strong.name=Покращена граната +item.grenade_tau.name=Тау граната +item.grenade_zomg.name=Ðегативно енергетична пара анігілÑційна граната +item.glyphid_gland.name= Залоза +item.glyphid_gland_empty.name= Гліфідова рідинна залоза +item.gun_aberrator.name=Ðбератор +item.gun_aberrator_eott.name=Очі Бурі +item.gun_am180.name=ПіÑтолет-кулемет калібру .22 +item.gun_am180_silenced.name=ПіÑтолет-кулемет калібру .22 з глушником +item.gun_amat.name=Ðнтиматерієва гвинтівка +item.gun_amat_penance.name=ПокаÑÐ½Ð½Ñ +item.gun_amat_subtlety.name=ВитонченіÑть +item.gun_autoshotgun.name=Ðвтоматичний дробовик +item.gun_autoshotgun_sexy.name=СекÑÑ– +item.gun_autoshotgun_shredder.name=Шредер +item.gun_b92.name=§9B92 Енергетичний піÑтолет§r +item.gun_b92_ammo.name=§9B92 Енергетичний елемент§r +item.gun_bolter.name=Болтер +item.gun_carbine.name=Карабін +item.gun_charge_thrower.name=ЗарÑдомет +item.gun_chemthrower.name=Хімомет +item.gun_coilgun.name=Гармата ГауÑÑа +item.gun_congolake.name=Конго Лейк +item.gun_cryocannon.name=Кріо гармата +item.gun_cryolator_ammo.name=Кріо зарÑд +item.gun_detonator.name=Лазерний детонатор +item.gun_double_barrel.name=Стара клаÑика +item.gun_double_barrel_sacred_dragon.name=СвÑщенний Дракон +item.gun_fatman.name=ТовÑтун +item.gun_fireext.name=ВогнегаÑник +item.gun_flamer.name=Вогнемет +item.gun_flamer_daybreaker.name=Дейбрейкер +item.gun_flamer_topaz.name=Пан Топаз +item.gun_flaregun.name=Сигнальний піÑтолет +item.gun_folly.name=Ð‘ÐµÐ·Ð³Ð»ÑƒÐ·Ð´Ñ +item.gun_g3.name=Штурмова гвинтівка +item.gun_g3_a3.name=G3A3 +item.gun_g3_infiltrator.name=Інфільтратор +item.gun_g3_zebra.name=Зеброва гвинтівка +item.gun_greasegun.name=МаÑлÑнка +item.gun_greasegun_m3.name=M3 +item.gun_hangman.name=Кат +item.gun_heavy_revolver.name=Важкий револьвер +item.gun_heavy_revolver_lilmac.name=Маленький Макінтош +item.gun_heavy_revolver_protege.name=Протеже +item.gun_heavy_revolver_scoped.name=Магнум калібру .44 з прицілом +item.gun_henry.name=Гвинтівка важільної дії +item.gun_henry_lincoln.name=Гвинтівка Лінкольна +item.gun_kit_1.name=Збройова олива +item.gun_kit_2.name=Ремонтний комплект зброї +item.gun_lag.name=Комічно довгий піÑтолет +item.gun_laser_pistol.name=Лазерний піÑтолет +item.gun_laser_pistol_morning_glory.name=Ранкове ÑÑйво +item.gun_laser_pistol_pew_pew.name=Піу піу +item.gun_lasrifle.name=Лазерна гвинтівка +item.gun_liberator.name=Визволитель +item.gun_light_revolver.name=Револьвер з переламним затвором +item.gun_light_revolver_atlas.name=ÐÑ‚Ð»Ð°Ñ +item.gun_light_revolver_dani.name=День Ñ– ніч +item.gun_m2.name=Ma Deuce +item.gun_maresleg.name=Дробовик важільної дії +item.gun_maresleg_akimbo.name=Дробовики важільної дії +item.gun_maresleg_broken.name=Зламаний +item.gun_maresleg_short.name=КобилÑча нога +item.gun_mas36.name=Південна зірка +item.gun_minigun.name=Мініган +item.gun_minigun_dual.name=Подвійні мінігани +item.gun_minigun_lacunae.name=Lacunae +item.gun_missile_launcher.name=Ракетна пуÑкова уÑтановка +item.gun_pepperbox.name=ÐŸÐµÑ€ÐµÑ‡Ð½Ð¸Ñ†Ñ +item.gun_panzerschreck.name=Панцершрек +item.gun_quadro.name=Четверна ракетна пуÑкова уÑтановка +item.gun_spas12.name=SPAS-12 +item.gun_stg77.name=StG 77 +item.gun_stinger.name=FIM-92 Стінгер +item.gun_tau.name=Тау гармата +item.gun_tesla_cannon.name=Гармата "ТеÑла" +item.gun_uzi.name=Узі +item.gun_uzi_richter.name=Ріхтер +item.gun_uzi_akimbo.name=Дві Узі +item.hand_drill.name=Ручне Ñвердло +item.hand_drill_desh.name=Ручне деш Ñвердло +item.hazmat_boots.name=ЗахиÑні черевики +item.hazmat_boots_grey.name=ВиÑокоÑкіÑні захиÑні черевики +item.hazmat_boots_red.name=УдоÑконалені захиÑні черевики +item.hazmat_cloth.name=ЗахиÑна тканина +item.hazmat_cloth_grey.name=ЗахиÑна тканина з Ñвинцевим покриттÑм +item.hazmat_cloth_red.name=УдоÑконалена захиÑна тканина +item.hazmat_grey_kit.name=ВиÑокоÑкіÑний захиÑний комплект +item.hazmat_helmet.name=ЗахиÑна шапка +item.hazmat_helmet_grey.name=ВиÑокоÑкіÑна захиÑна шапка +item.hazmat_helmet_red.name=УдоÑконалена захиÑна шапка +item.hazmat_kit.name=ЗахиÑний комплект +item.hazmat_legs.name=ЗахиÑні штанці +item.hazmat_legs_grey.name=ВиÑокоÑкіÑні захиÑні штанці +item.hazmat_legs_red.name=УдоÑконалені захиÑні штанці +item.hazmat_paa_boots.name=Чоботи бойового захиÑного коÑтюма PaA +item.hazmat_paa_helmet.name=Шолом бойового захиÑного коÑтюма PaA +item.hazmat_paa_legs.name=Ðаголінники бойового захиÑного коÑтюма PaA +item.hazmat_paa_plate.name=Ðагрудник бойового захиÑного коÑтюма PaA +item.hazmat_plate.name=ЗахиÑна куртка +item.hazmat_plate_grey.name=ВиÑокоÑкіÑна захиÑна куртка +item.hazmat_plate_red.name=УдоÑконалена захиÑна куртка +item.hazmat_red_kit.name=УдоÑконалений захиÑний комплект +item.heart_booster.name=Серце підÑилювач +item.heart_container.name=Ціле Ñерце +item.heart_fab.name=Чудове Ñерце +item.heart_piece.name=ЧаÑтинка ÑÐµÑ€Ñ†Ñ +item.heavy_component.name=Важкий компонент: %s +item.hev_battery.name=Ð‘Ð°Ñ‚Ð°Ñ€ÐµÑ ÐºÐ¾Ñтюма +item.hev_boots.name=Чоботи H.E.V. тип â„–4 +item.hev_plate.name=Ðагрудник H.E.V. тип â„–4 +item.hev_helmet.name=Шолом H.E.V. тип â„–4 +item.hev_legs.name=Ðаголінники H.E.V. тип â„–4 +item.holotape_damaged.name=Пошкоджений голодиÑк +item.holotape_image.name=ГолодиÑк +item.horseshoe_magnet.name=Магніт підкова +item.hull_big_aluminium.name=Big Aluminium Shell +item.hull_big_steel.name=Big Steel Shell +item.hull_big_titanium.name=Big Titanium Shell +item.hull_small_aluminium.name=Small Aluminium Shell +item.hull_small_aluminium.desc=Can be inserted into drilled graphite +item.hull_small_steel.name=Small Steel Shell +item.icf_pellet.name=Паливна гранула ICF +item.icf_pellet_depleted.name=Збіднена паливна гранула ICF +item.icf_pellet_empty.name=ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð¿Ð°Ð»Ð¸Ð²Ð½Ð° гранула ICF +item.igniter.name=Запальник +item.igniter.desc=(ВикориÑтовуєтьÑÑ ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñм правою кнопкою миші на Прототипі)$Це зелена металева ручка з$ÑÑкраво-червоною кнопкою та маленькою кришкою.$Aнизу вигравірувані ініціали N.E. Ким би не був N.E., він мав$чудовий Ñмак у відтінках зеленого. +item.industrial_magnet.name=ПромиÑловий магніт +item.inf_antimatter.name=Infinite Antimatter Tank +item.inf_antischrabidium.name=Infinite Antischrabidium Tank +item.inf_coolant.name=Infinite Coolant Tank +item.inf_deuterium.name=Infinite Deuterium Tank +item.inf_diesel.name=Infinite Diesel Tank +item.inf_sulfur.name=Infinite Sulfur Tank +item.inf_tritium.name=Infinite Tritium Tank +item.inf_water.name=ÐеÑкінченний резервуар Ð´Ð»Ñ Ð²Ð¾Ð´Ð¸ +item.inf_water_mk2.name=ÐеÑкінченний резервуар Ð´Ð»Ñ Ð²Ð¾Ð´Ð¸ тип â„–2 +item.ingot_actinium.name=Зливок актинію-227 +item.ingot_advanced_alloy.name=Зливок удоÑконаленого Ñплаву +item.ingot_aluminium.name=Ðлюмінієвий зливок +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_arsenic_bronze.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_biorubber.name=БруÑок латекÑу +item.ingot_bismuth.name=Ð’Ñ–Ñмутовий зливок +item.ingot_bismuth_bronze.name=Зливок віÑмутової бронзи +item.ingot_boron.name=Борний зливок +item.ingot_bscco.name=Зливок віÑмут Ñтронцій кальцій мідь окÑиду (BSCCO) +item.ingot_c4.name=БруÑок C-4 +item.ingot_cadmium.name=Кадмієвий зливок +item.ingot_calcium.name=Кальцієвий зливок +item.ingot_cdalloy.name=Зливок кадмієвої Ñталі +item.ingot_cft.name=КриÑталічний фулерит +item.ingot_chainsteel.name=Важка ланцюгова Ñталь +item.ingot_co60.name=Зливок кобальту-60 +item.ingot_cobalt.name=Кобальтовий зливок +item.ingot_combine_steel.name=Зливок Ñталі комбайнів +item.ingot_combine_steel.desc=*вÑтавити Ñ€ÐµÑ„ÐµÑ€ÐµÐ½Ñ Ð½Ð° ГражданÑкую Оборону тут* +item.ingot_copper.name=Зливок промиÑлової міді +item.ingot_daffergon.name=Daffergon Ingot +item.ingot_desh.name=Зливок деш +item.ingot_dineutronium.name=Динейтронієвий зливок +item.ingot_dura_steel.name=Зливок швидкорізальної Ñталі +item.ingot_electronium.name=Електронієвий зливок +item.ingot_euphemium.name=Юхимієвий зливок +item.ingot_euphemium.desc=Дуже оÑобливий Ñ– Ð²Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ Ð´Ð¸Ð²Ð½Ð¸Ð¹ елемент. +item.ingot_ferrouranium.name=Фероурановий зливок +item.ingot_fiberglass.name=ЛиÑÑ‚ ÑклоплаÑтику +item.ingot_fiberglass.desc=Багатий на клітковину, багатий на Ñкло. Ð’Ñе, що потрібно організму. +item.ingot_firebrick.name=Вогнетривка цегла +item.ingot_gh336.name=Зливок ÒіорÑÑ–ÑŽ-336 +item.ingot_gh336.desc=Колега Сіборгіума. +item.ingot_graphite.name=Графітовий зливок +item.ingot_gunmetal.name=Зливок гарматної бронзи +item.ingot_hes.name=Зливок виÑокозбагаченого шрабідієвого палива +item.ingot_lanthanium.name=ÐапівÑтабільний лантановий зливок +item.ingot_lanthanium.desc='Лантаній' +item.ingot_lanthanium.desc.P11=ÐаÑправді лантаній, але Ñк би там не було. +item.ingot_lead.name=Свинцевий зливок +item.ingot_les.name=Зливок низькозбагаченого шрабідієвого палива +item.ingot_magnetized_tungsten.name=Ðамагнічений вольфрамовий зливок +item.ingot_metal.name=Металевий зливок +item.ingot_metal.bar.name=Металевий бруÑок +item.ingot_metal.beacon.name=Radio Homing Beacon +item.ingot_metal.casing.name=Металева гільза +item.ingot_metal.clockwork.name=Clockwork +item.ingot_metal.counter.name=Counter +item.ingot_metal.detector.name=Detector +item.ingot_metal.ingot.name=Metal Ingot +item.ingot_metal.key.name=Metal Key +item.ingot_meteorite.name=Метеоритний зливок +item.ingot_meteorite_forged.name=Кований метеоритний зливок +item.ingot_mox_fuel.name=Зливок МОКС-палива +item.ingot_mud.name=Брикет токÑичних відходів +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_pb209.name=Зливок Ñвинцю-209 +item.ingot_pc.name=БруÑок полікарбонату +item.ingot_pet.name=Aluminium-Metallized PET Bar +item.ingot_phosphorus.name=БруÑок білого фоÑфору +item.ingot_plutonium.name=Плутонієвий зливок +item.ingot_plutonium_fuel.name=Зливок плутонієвого палива +item.ingot_polonium.name=Зливок полонію-210 +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_pu241.name=Зливок плутонію-241 +item.ingot_pvc.name=БруÑок полівінілхлориду +item.ingot_ra226.name=Зливок радію-226 +item.ingot_raw.name=Зливок %s +item.ingot_red_copper.name=Зливок червоної міді +item.ingot_reiium.name=Reiium Ingot +item.ingot_rubber.name=БруÑок гуми +item.ingot_saturnite.name=Сатурнітовий зливок +item.ingot_schrabidate.name=Ферошрабідатовий зливок +item.ingot_schrabidium.name=Шрабідієвий зливок +item.ingot_schrabidium_fuel.name=Зливок шрабідієвого палива +item.ingot_schraranium.name=Шраранієвий зливок +item.ingot_schraranium.desc=Виготовлено з урану в шрабідієвому транÑмутаторі +item.ingot_semtex.name=БруÑок СемтекÑу +item.ingot_silicon.name=Кремнієва Ð±ÑƒÐ»Ñ +item.ingot_smore.name=Зливок Смору +item.ingot_solinium.name=Солінієвий зливок +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=AKA Танталій. +item.ingot_tcalloy.name=Зливок технецієвої Ñталі +item.ingot_technetium.name=Зливок технецію-99 +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_u238m2.name=Зливок метаÑтабільного урану-238М2 +item.ingot_unobtainium.name=Unobtainium Ingot +item.ingot_uranium.name=Урановий зливок +item.ingot_uranium_fuel.name=Зливок уранового палива +item.ingot_verticium.name=Verticium Ingot +item.ingot_weaponsteel.name=Зливок збройової Ñталі +item.ingot_weidanium.name=Weidanium Ingot +item.ingot_zirconium.name=Цирконієвий зливок +item.injector_5htp.name=Шприц-ручка 5-гідрокÑитриптофану +item.injector_knife.name=Шприц-ручка 8-дюймового леза +item.ink.name=æž— чорнила +item.insert_doxium.name=Ð’Ñтавка докÑÑ–ÑŽ легована аÑтольфієм +item.insert_du.name=Ð’Ñтавка збідненого урану +item.insert_era.name=Ð’Ñтавка Контакту-1 +item.insert_esapi.name=УдоÑконалена протикульна броневÑтавка +item.insert_ghiorsium.name=ÒіорÑієва вÑтавка +item.insert_kevlar.name=Кевларова вÑтавка +item.insert_sapi.name=Протикульна броневÑтавка +item.insert_polonium.name=Полонієва вÑтавка +item.insert_steel.name=Важка Ñталева вÑтавка +item.insert_xsapi.name=ТвердоÑплавна протикульна броневÑтавка +item.insert_yharonite.name=Яронітова вÑтавка +item.item_secret.aberrator.name=ЧаÑтина Ðбератора +item.item_secret.canister.name=Композит SB-26 +item.item_secret.controller.name=Пропрієтарний блок ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ +item.item_secret.folly.name=ЧаÑтина Ð‘ÐµÐ·Ð³Ð»ÑƒÐ·Ð´Ñ +item.item_secret.selenium_steel.name=Селенова Ñталь +item.iv_blood.name=Мішок конÑервованої донорÑької крові +item.iv_empty.name=Мішок Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŒÐ¾Ð²ÐµÐ½Ð½Ð¾Ð³Ð¾ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ +item.iv_xp.name=ÐšÑ€Ð°Ð¿ÐµÐ»ÑŒÐ½Ð¸Ñ†Ñ Ð´Ð¾Ñвіду +item.iv_xp_empty.name=ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ ÐºÑ€Ð°Ð¿ÐµÐ»ÑŒÐ½Ð¸Ñ†Ñ Ð´Ð¾Ñвіду +item.jackt.name=До біÑа Ñтильна баліÑтична куртка +item.jackt2.name=До біÑа Ñтильна баліÑтична куртка 2: ТокійÑький дрифт +item.jetpack_boost.name=BF ранець +item.jetpack_break.name=Реактивний ранець будівельника +item.jetpack_fly.name=Реактивний ранець +item.jetpack_tank.name=ЗапаÑний паливний бак Ð´Ð»Ñ Ñ€ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ Ñ€Ð°Ð½Ñ†Ñ +item.jetpack_vector.name=Векторний реактивний ранець +item.journal_bj.name=Облитий віÑкі нотатник +item.journal_pip.name=Щоденник виживальника +item.journal_silver.name=Замітки підрÑдника +item.key.name=Ключ +item.key_fake.name=Підроблений ключ +item.key_kit.name=Комплект Ð´Ð»Ñ Ñ–Ð¼Ñ–Ñ‚Ð°Ñ†Ñ–Ñ— ключів +item.key_red.name=Червоний ключ +item.key_red.desc=ДоÑлідіть іншу Ñторону. +item.key_red.desc.P11=§4е§r +item.key_red_cracked.name=Зламаний ключ +item.key_red_cracked.desc=??? +item.key_red.key_red_cracked.P11=§4???§r +item.laser_crystal_bismuth.desc=Ð’Ñ–Ñмуто-Ñамарієво-ураново-торієва криÑталічна Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ñ +item.laser_crystal_bismuth.name=BiSmUTh лазерний криÑтал +item.laser_crystal_cmb.desc=Ðнтишрабідій Ñкований в решітці зі комбайноферошрабідатового Ñплаву +item.laser_crystal_cmb.name=Комбайноферошрабідатовий антиматерієвий лазерний криÑтал +item.laser_crystal_co2.desc=ВуглекиÑлий газ упакований в криÑталічний деш +item.laser_crystal_co2.name=CO2-деш лазерний криÑтал +item.laser_crystal_digamma.name=Дігамма лазерний криÑтал +item.laser_crystal_dnt.desc=СуперкриÑтал динейтронієвого Ñпарк ферміону +item.laser_crystal_dnt.name=Спарк лазерний криÑтал +item.launch_code.name=Код запуÑку Ñудного Ð´Ð½Ñ +item.launch_code_piece.name=ЧаÑтина коду запуÑку Ñудного Ð´Ð½Ñ +item.launch_key.name=Ключ запуÑку Ñудного Ð´Ð½Ñ +item.lead_gavel.name=Свинцевий молот +item.lemon.name="Лимон" +item.letter.name=ШвидкіÑна пошта +item.levitation_unit.name=Гравітаційний маніпулÑтор +item.lignite.name=Буре Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ +item.limiter.name=Generator Limiter +item.linker.name=Телелінкер +item.liquidator_boots.name=Черевики ліквідатора +item.liquidator_helmet.name=Шапка ліквідатора +item.liquidator_legs.name=Штанці ліквідатора +item.liquidator_plate.name=Куртка ліквідатора +item.lithium.name=Літієвий куб +item.lodestone.name=Магніт +item.loop_stew.name=Сніданок айтішніка +item.loops.name=Lööps +item.loot_10.name=Ящик з ракетою 10 розміру +item.loot_15.name=Ящик з ракетою 15 розміру +item.loot_misc.name=Ящик з будь-Ñкою ракетою +item.magnet_circular.name=ПлоÑкий магніт +item.magnet_dee.name=Dee Magnets +item.magnetron.name=Магнетрон +item.man_core.name=Плутонієве Ñдро +item.man_explosive.name=Вибухові лінзи +item.man_igniter.name=Блок детонатор +item.man_kit.name=Комплект ТовÑтуна +item.marshmallow.name=Зефір на паличці +item.mask_of_infamy.name=МаÑка ганьби +item.mask_piss.name=Траншейна пов'Ñзка +item.mask_rag.name=Імпровізована захиÑна пов'Ñзка +item.matchstick.name=Сірник +item.mech_key.name=Великий Ñрібний ключ +item.mech_key.desc=Він пульÑує з потужніÑтю. +item.mechanism_launcher_1.name=Launcher Mechanism +item.mechanism_launcher_2.name=Advanced Launcher Mechanism +item.mechanism_revolver_1.name=Revolver Mechanism +item.mechanism_revolver_2.name=Advanced Revolver Mechanism +item.mechanism_rifle_1.name=Rifle Mechanism +item.mechanism_rifle_2.name=Advanced Rifle Mechanism +item.mechanism_special.name=High-Tech Weapon Mechanism +item.med_bag.name=Ðптечка першої допомоги +item.med_ipecac.name=Сироп іпекаку +item.med_ptsd.name=Ліки від ПТСР +item.med_schiziphrenia.name=Ліки від шизофренії +item.medal_liquidator.name=Відзнака "За учаÑть у ліквідації наÑлідків аварії на ÐЕС" +item.meltdown_tool.name=Ðплікатор миттєвого Ñ€Ð¾Ð·Ð¿Ð»Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð”Ñтлова +item.memespoon.name=§eМагазинний Ñадівник (Маркет Гарденер) +item.memory.name=item.null.name +item.mese_gavel.name=МеÑе молот +item.mese_axe.name=МеÑе Ñокира +item.mese_pickaxe.name=МеÑе кайло +item.meteor_charm.name=Метеоровий оберіг +item.meteor_remote.name=Метеоритний пульт +item.meteorite_sword.name=Метеоритний меч +item.meteorite_sword_seared.name=Метеоритний меч (Обпалений) +item.meteorite_sword_reforged.name=Метеоритний меч (Перекований) +item.meteorite_sword_hardened.name=Метеоритний меч (Загартований +item.meteorite_sword_alloyed.name=Метеоритний меч (Легований) +item.meteorite_sword_machined.name=Метеоритний меч (Механічно оброблений) +item.meteorite_sword_treated.name=Метеоритний меч (Оброблений) +item.meteorite_sword_etched.name=Метеоритний меч (Гравірований) +item.meteorite_sword_bred.name=Метеоритний меч (Розмножений) +item.meteorite_sword_irradiated.name=Метеоритний меч (Опромінений) +item.meteorite_sword_fused.name=Метеоритний меч (Зплавлений) +item.meteorite_sword_baleful.name=Метеоритний меч (ЗловіÑний) +item.mike_cooling_unit.name=Охолоджувальний блок дейтерію +item.mike_core.name=Уранове Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÐµÐ¹Ñ‚ÐµÑ€Ñ–Ñ”Ð²Ð¾Ð³Ð¾ баку +item.mike_deut.name=Дейтерієвий бак +item.mike_kit.name=Комплект Ðйві Майку +item.mirror_tool.name=ІнÑтрумент Ð´Ð»Ñ Ñ€ÐµÐ³ÑƒÐ»ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð·ÐµÑ€ÐºÐ°Ð» +item.mirror_tool.linked=ÐŸÐ¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ð´Ð·ÐµÑ€ÐºÐ°Ð»Ð° вÑтановлено! +item.mirror_tool.desc=Клацніть правою кнопкою миші по бойлеру, щоб запам'Ñтати його положеннÑ.$Клацніть по дзеркалах, щоб повернути Ñ—Ñ… до бойлера. +item.missile_anti_ballistic.name=ПротибаліÑтична ракета +item.missile_assembly.name=Збірка малої ракети +item.missile_bhole.name=ракета з чорною дірою +item.missile_burst.name=ЗапаÑна ракета +item.missile_buster.name=Бетонобійно-фугаÑна ракета +item.missile_buster_strong.name=Покращена бетонобійно-фугаÑна ракета +item.missile_carrier.name=HTR-01 Carrier Rocket +item.missile_cluster.name=КаÑетна ракета +item.missile_cluster_strong.name=Потужна каÑетна ракета +item.missile_custom.name=КаÑтомна ракета +item.missile_decoy.name=Ракета-приманка +item.missile_doomsday.name=Ракета Судного Ð´Ð½Ñ +item.missile_doomsday_rusted.name=Пошкоджена ракета Судного Ð´Ð½Ñ +item.missile_drill.name=Бункер крекер +item.missile_emp.name=Електромагнітна імпульÑна ракета +item.missile_emp_strong.name=Потужна електромагнітна імпульÑна ракета +item.missile_endo.name=Ендотермічна ракета +item.missile_exo.name=Екзотермічна ракета +item.missile_generic.name=V-2 +item.missile_incendiary.name=Запалювальна ракета +item.missile_incendiary_strong.name=Потужна запалювальна ракета +item.missile_inferno.name=Ракета "Інферно" тип â„–2 +item.missile_kit.name=Комплект ракет +item.missile_micro.name=МікроÑдерна ракета +item.missile_nuclear.name=Ядерна ракета +item.missile_nuclear_cluster.name=ТермоÑдерна ракета +item.missile_rain.name=Бомбовий дощ +item.missile_schrabidium.name=Шрабідієва ракета +item.missile_shuttle.name=КоÑмічний корабель "Ðадійний Робін" +item.missile_soyuz.name=Ракета-ноÑій "Союз" +item.missile_soyuz_lander.name=Орбітальний модуль +item.missile_soyuz_lander.desc=Також Ñ” жахливим поÑадковим модулем! +item.missile_stealth.name=Ракета-невидимка +item.missile_strong.name=Потужна фугаÑна ракета +item.missile_taint.name=Ракета з біологічною зброєю +item.missile_volcano.name=Тектонічна ракета +item.missile_volcano.desc=ВикориÑтовуючи Ñилу Ñдерного вибуху, ми можемо викликати вулкан! +item.mold_base.name=Заготовка ливарної формочки +item.mold.name=Ливарна формочка +item.morning_glory.name=Ранкове ÑÑйво +item.motor.name=Мотор +item.motor_bismuth.name=Ð’Ñ–Ñмутовий мотор +item.motor_desh.name=Деш мотор +item.mp_c_1.name=Схема Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€Ð°ÐºÐµÑ‚ 1-го Ñ€Ñ–Ð²Ð½Ñ +item.mp_c_2.name=Схема Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€Ð°ÐºÐµÑ‚ 2-го Ñ€Ñ–Ð²Ð½Ñ +item.mp_c_3.name=Схема Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€Ð°ÐºÐµÑ‚ 3-го Ñ€Ñ–Ð²Ð½Ñ +item.mp_c_4.name=Схема Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€Ð°ÐºÐµÑ‚ 4-го Ñ€Ñ–Ð²Ð½Ñ +item.mp_c_5.name=Схема Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€Ð°ÐºÐµÑ‚ 5-го Ñ€Ñ–Ð²Ð½Ñ +item.mp_fuselage_10_15_balefire.name=BF фюзелÑж 10/15 розміру +item.mp_fuselage_10_15_hydrogen.name=Водневий фюзелÑж 10/15 розміру +item.mp_fuselage_10_15_kerosene.name=ГаÑовий фюзелÑж 10/15 розміру +item.mp_fuselage_10_15_solid.name=Твердопаливний фюзелÑж 10/15 розміру +item.mp_fuselage_10_kerosene.name=ГаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_kerosene_camo.name=ГаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_kerosene_desert.name=ГаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_kerosene_flames.name=ГаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_kerosene_insulation.name=ГаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_kerosene_metal.name=ГаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_kerosene_sky.name=ГаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_kerosene_sleek.name=ГаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_kerosene_taint.name=ГаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_camo.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_dash.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_desert.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_flames.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_insulation.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_metal.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_sky.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_sleek.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_taint.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_kerosene_vap.name=Довгий гаÑовий фюзелÑж 10 розміру +item.mp_fuselage_10_long_solid.name=Довгий твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_long_solid_bullet.name=Довгий твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_long_solid_flames.name=Довгий твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_long_solid_insulation.name=Довгий твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_long_solid_silvermoonlight.name=Довгий твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_long_solid_sleek.name=Довгий твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_long_solid_soviet_glory.name=Довгий твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_solid.name=Твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_solid_battery.name=Твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_solid_cathedral.name=Твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_solid_duracell.name=Твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_solid_flames.name=Твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_solid_insulation.name=Твердопаливний фюзелÑж 10 розміру +item.mp_fuselage_10_solid_moonlit.name=Твердопаливний фюзелÑж 10 розміру +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_balefire.name=BF фюзелÑж 15 розміру +item.mp_fuselage_15_hydrogen.name=Водневий фюзелÑж 15 розміру +item.mp_fuselage_15_hydrogen_cathedral.name=Водневий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_blackjack.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_camo.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_decorated.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_desert.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_insulation.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_lambda.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_metal.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_minuteman.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_pip.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_polite.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_sky.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_steampunk.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_taint.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_kerosene_yuck.name=ГаÑовий фюзелÑж 15 розміру +item.mp_fuselage_15_solid.name=Твердопаливний фюзелÑж 15 розміру +item.mp_fuselage_15_solid_desh.name=Твердопаливний фюзелÑж 15 розміру +item.mp_fuselage_15_solid_faust.name=Твердопаливний фюзелÑж 15 розміру +item.mp_fuselage_15_solid_insulation.name=Твердопаливний фюзелÑж 15 розміру +item.mp_fuselage_15_solid_mimi.name=Твердопаливне тіло Мімі-чан 15 розміру +item.mp_fuselage_15_solid_panorama.name=Твердопаливний фюзелÑж 15 розміру +item.mp_fuselage_15_solid_roses.name=Твердопаливний фюзелÑж 15 розміру +item.mp_fuselage_15_solid_silvermoonlight.name=Твердопаливний фюзелÑж 15 розміру +item.mp_fuselage_15_solid_snowy.name=Твердопаливний фюзелÑж 15 розміру +item.mp_fuselage_15_solid_soviet_glory.name=Твердопаливний фюзелÑж 15 розміру +item.mp_fuselage_15_solid_soviet_stank.name=Твердопаливний фюзелÑж 15 розміру +item.mp_stability_10_cruise.name=Круїзні Ñтабілізатори 10 розміру +item.mp_stability_10_flat.name=ПлоÑкі Ñтабілізатори 10 розміру +item.mp_stability_10_space.name=КоÑмічні Ñтабілізатори 10 розміру +item.mp_stability_15_flat.name=ПлоÑкі Ñтабілізатори 15 розміру +item.mp_stability_15_soyuz.name=ГоÑтрі Ñтабілізатори 15 розміру +item.mp_stability_15_thin.name=Тонкі Ñтабілізатори 15 розміру +item.mp_thruster_10_kerosene.name=Рідкопаливний двигун 10 розміру +item.mp_thruster_10_solid.name=Твердопаливний двигун 10 розміру +item.mp_thruster_10_xenon.name=Іонний двигун 10 розміру +item.mp_thruster_15_balefire.name=BF двигун з Ñдерним підігрівачем 15 розміру +item.mp_thruster_15_balefire_large.name=BF двигун з Ñдерним підігрівачем 15 розміру (ÐаÑадка Ð´Ð»Ñ Ð²Ð°Ð¶ÐºÐ¸Ñ… умов екÑплуатації) +item.mp_thruster_15_balefire_large_rad.name=BF двигун з Ñдерним підігрівачем 15 розміру (ÐаÑадка Ð´Ð»Ñ Ð²Ð°Ð¶ÐºÐ¸Ñ… умов екÑплуатації) +item.mp_thruster_15_balefire_short.name=BF двигун з Ñдерним підігрівачем 15 розміру (Укорочений) +item.mp_thruster_15_hydrogen.name=Водневий двигун 15 розміру +item.mp_thruster_15_hydrogen_dual.name=Водневий здвоєний двигун 15 розміру +item.mp_thruster_15_kerosene.name=Рідкопаливний двигун 15 розміру +item.mp_thruster_15_kerosene_dual.name=Рідкопаливний здвоєний двигун 15 розміру +item.mp_thruster_15_kerosene_triple.name=Рідкопаливний зтроєний двигун 15 розміру +item.mp_thruster_15_solid.name=Твердопаливний двигун 15 розміру +item.mp_thruster_15_solid_hexdecuple.name=Твердопаливний шіÑтнадцÑтикратний двигун 15 розміру +item.mp_thruster_20_kerosene.name=Рідкопаливний двигун 20 розміру +item.mp_thruster_20_kerosene_dual.name=Рідкопаливний здвоєний двигун 20 розміру +item.mp_thruster_20_kerosene_triple.name=Рідкопаливний зтроєний двигун 20 розміру +item.mp_thruster_20_solid.name=Твердопаливний двигун 20 розміру +item.mp_thruster_20_solid_multi.name=Твердопаливний 30-кратний двигун 20 розміру +item.mp_thruster_20_solid_multier.name=Твердопаливний 47-кратний двигун 20 розміру +item.mp_warhead_10_buster.name=Бетонобійна боєголовка 10 розміру +item.mp_warhead_10_cloud.name=Боєголовка з рожевою хмарою 10 розміру +item.mp_warhead_10_he.name=ФугаÑна боєголовка 10 розміру +item.mp_warhead_10_incendiary.name=Запалювальна боєголовка 10 розміру +item.mp_warhead_10_nuclear.name=МікроÑдерна боєголовка 10 розміру +item.mp_warhead_10_nuclear_large.name=Ядерна боєголовка 10 розміру +item.mp_warhead_10_taint.name=Боєголовка з порчею 10 розміру +item.mp_warhead_15_balefire.name=BF боєголовка 15 розміру +item.mp_warhead_15_boxcar.name=Вантажний вагон 15 розміру? +item.mp_warhead_15_he.name=ФугаÑна боєголовка 15 розміру +item.mp_warhead_15_incendiary.name=Запалювальна боєголовка 15 розміру +item.mp_warhead_15_n2.name=N² Міна 15 розміру +item.mp_warhead_15_nuclear.name=Ядерна боєголовка 15 розміру +item.mp_warhead_15_nuclear_mimi.name=Голова Мімі-чан 15 розміру +item.mp_warhead_15_nuclear_shark.name=Ядерна боєголовка 15 розміру +item.mp_warhead_15_turbine.name=Реактивний двигун 15 розміру +item.mucho_mango.name=ÐріЗона Мучо Манго +item.multi_kit.name=Комплект багатолільової бомби +item.multitool_beam.name=Силова рукавичка (Підпалювач) +item.multitool_decon.name=Силова рукавичка (Спеціальний обробник) +item.multitool_dig.name=Силова рукавичка (Риючий кіготь) +item.multitool_ext.name=Силова рукавичка (ЕкÑтрактор руди) +item.multitool_hit.name=Силова рукавичка (Кулак) +item.multitool_joule.name=Силова рукавичка (Гігаджоуль) +item.multitool_mega.name=Силова рукавичка (Супер удар) +item.multitool_miner.name=Силова рукавичка (Гірничий лазер) +item.multitool_silk.name=Силова рукавичка (Кіготь шовкового дотику) +item.multitool_sky.name=Силова рукавичка (Громовержець) +item.mysteryshovel.name=Крихка лопата +item.n2_charge.name=Великий вибуховий зарÑд +item.neutrino_lens.name=Ðейтрино лінза +item.neutron_reflector.name=Відбивач нейтронів +item.night_vision.name=ОкулÑри нічного Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ +item.night_vision.description.item=Ðадає нічне Ð±Ð°Ñ‡ÐµÐ½Ð½Ñ (потрібен повний комплект електроброні) +item.night_vision.description.in_armor=%s (надає нічне баченнÑ) +item.niter.name=Ðітрат калію +item.nitra.name=Ðітра +item.nitra_small.name=Крихітна купка Ðітри +item.no9.name=ШахтарÑький шолом +item.nossy_hat.name=Чудовий капелюх +item.nothing.name=Ðічого +item.nuclear_waste.name=Ядерні відходи +item.nuclear_waste_pearl.name=Перлина Ñдерних відходів +item.nuclear_waste_tiny.name=Крихітна купка Ñдерних відходів +item.nuclear_waste_long.name=Довгоживучі Ñдерні відходи +item.nuclear_waste_long_tiny.name=Крихітна купка довгоживучих Ñдерних відходів +item.nuclear_waste_long_depleted.name=Розкладені довгоживучі Ñдерні відходи +item.nuclear_waste_long_depleted_tiny.name=Крихітна купка розкладених довгоживучих Ñдерних відходів +item.nuclear_waste_short.name=Короткоживучі Ñдерні відходи +item.nuclear_waste_short_tiny.name=Крихітна купка короткоживучих Ñдерних відходів +item.nuclear_waste_short_depleted.name=Розкладені короткоживучі Ñдерні відходи +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=Самородок виÑокозбагаченого авÑтралію +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=Daffergon Nugget +item.nugget_desh.name=Самородок деш +item.nugget_dineutronium.name=Динейтронієвий Ñамородок +item.nugget_euphemium.name=Юхимієвий Ñамородок +item.nugget_euphemium.desc=Ðевеликий шматочок рожевого металу.$Його влаÑтивоÑті доÑÑ– невідомі,$ПОВОДЬСЯ З ÐИМ обережно. +item.nugget_gh336.name=Самородок ÒіорÑÑ–ÑŽ-336 +item.nugget_gh336.desc=Колега Сіборгіума. +item.nugget_hes.name=Самородок виÑокозбагаченого шрабідієвого палива +item.nugget_lead.name=Свинцевий Ñамородок +item.nugget_les.name=Самородок низькозбагаченого шрабідієвого палива +item.nugget_mercury_tiny.name=Крихітна ÐºÑ€Ð°Ð¿Ð»Ñ Ñ€Ñ‚ÑƒÑ‚Ñ– +item.nugget_mercury.name=ÐšÑ€Ð°Ð¿Ð»Ñ Ñ€Ñ‚ÑƒÑ‚Ñ– +item.nugget_mox_fuel.name=Самородок МОКС-палива +item.nugget_mox_fuel.desc=МокÑÑ– каже: §lУХИЛЕÐÐЯ ВІД СПЛÐТИ ПОДÐТКІВ.§r +item.nugget_neptunium.name=Ðептунієвий Ñамородок +item.nugget_neptunium_fuel.name=Самородок нептунієвого палива +item.nugget_niobium.name=Ðіобієвий Ñамородок +item.nugget_osmiridium.name=Самородок оÑмиÑтого іридію +item.nugget_pb209.name=Самородок Ñвинцю-209 +item.nugget_plutonium.name=Плутонієвий Ñамородок +item.nugget_plutonium_fuel.name=Самородок плутонієвого палива +item.nugget_polonium.name=Самородок полонію-210 +item.nugget_pu_mix.name=Самородок реакторного плутонію +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=Reiium Nugget +item.nugget_schrabidium.name=Шрабідієвий Ñамородок +item.nugget_schrabidium_fuel.name=Самородок шрабідієвого палива +item.nugget_silicon.name=Кремнієвий Ñамородок +item.nugget_solinium.name=Солінієвий Ñамородок +item.nugget_sr90.name=Самородок Ñтронцію-90 +item.nugget_tantalium.name=Танталовий Ñамородок +item.nugget_tantalium.desc='Танталій' +item.nugget_tantalium.desc.P11=AKA Танталій. +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_unobtainium.name=Unobtainium Nugget +item.nugget_uranium.name=Урановий Ñамородок +item.nugget_uranium_fuel.name=Самородок уранового палива +item.nugget_verticium.name=Verticium Nugget +item.nugget_weidanium.name=Weidanium Nugget +item.nugget_zirconium.name=Цирконієвий оÑколок +item.nuke_advanced_kit.name=Розширений комплект атомних доÑліджень +item.nuke_commercially_kit.name=Комплект атомних доÑліджень Ð´Ð»Ñ ÐºÐ¾Ð¼ÐµÑ€Ñ†Ñ–Ð¹Ð½Ð¾Ð³Ð¾ викориÑÑ‚Ð°Ð½Ð½Ñ +item.nuke_electric_kit.name=Комплект інженера-електрика +item.nuke_starter_kit.name=Стартовий комплект атомних доÑліджень +item.oil_canola.name=Raw Canola Oil +item.oil_detector.name=Детектор нафтових родовищ +item.oil_detector.desc1=Клацніть правою кнопкою миші, щоб проÑканувати на наÑвніÑть нафти. +item.oil_detector.desc2=Детектор виÑвлÑÑ” лише великі відкладеннÑ. +item.oil_detector.bullseye=Ðафтове родовище прÑмо під вами! +item.oil_detector.detected=Поруч виÑвлено нафту. +item.oil_detector.noOil=Ðафти не виÑвлено. +item.oil_tar.coal.name=Вугільний дьоготь +item.oil_tar.crude.name=Ðафтовий дьоготь +item.oil_tar.crack.name=Дьоготь з крекінгової нафти +item.oil_tar.paraffin.name=Парафіновий віÑк +item.oil_tar.wax.name=Хлорований парафін +item.oil_tar.wood.name=Деревний дьоготь +item.ore.asbestos=ÐзбеÑтова +item.ore.borax=Бура +item.ore.chlorocalcite=Хлорокальцитова +item.ore.copper=Мідна +item.ore.fluorite=Флюоритова +item.ore.gold=Золота +item.ore.hematite=Гематитова +item.ore.iron=Залізна +item.ore.malachite=Малахітова +item.ore.neodymium=Ðеодимова +item.ore.niobium=Ðіобієва +item.ore.titanium=Титанова +item.ore.tungsten=Вольфрамова +item.ore.thorium232=Торієва +item.ore.uranium=Уранова +item.ore_bedrock.name=%s корінна руда +item.ore_byproduct.b_aluminium.name=КриÑталічний алюмінієвий фрагмент +item.ore_byproduct.b_bismuth.name=КриÑталічний віÑмутовий фрагмент +item.ore_byproduct.b_calcium.name=КриÑталічний кальцієвий фрагмент +item.ore_byproduct.b_copper.name=КриÑталічний мідний фрагмент +item.ore_byproduct.b_iron.name=КриÑталічний залізний фрагмент +item.ore_byproduct.b_lead.name=КриÑталічний Ñвинцевий фрагмент +item.ore_byproduct.b_lithium.name=КриÑталічний літієвий фрагмент +item.ore_byproduct.b_polonium.name=КриÑталічний полонієвий фрагмент +item.ore_byproduct.b_radium.name=КриÑталічний радієвий фрагмент +item.ore_byproduct.b_silicon.name=КриÑталічний кремнієвий фрагмент +item.ore_byproduct.b_sulfur.name=КриÑталічний Ñірчаний фрагмент +item.ore_byproduct.b_technetium.name=КриÑталічний технецієвий фрагмент +item.ore_byproduct.b_titanium.name=КриÑталічний титановий фрагмент +item.ore_byproduct.b_uranium.name=КриÑталічний урановий фрагмент +item.ore_centrifuged.name=Центріфугована %s руда +item.ore_cleaned.name=Очищена %s руда +item.ore_deepcleaned.name=Глибоко очищена %s руда +item.ore_density_scanner.name=Сканер щільноÑті корінної руди +item.ore_density_scanner.excellent=Відмінна +item.ore_density_scanner.high=ВиÑока +item.ore_density_scanner.low=Ðизька +item.ore_density_scanner.moderate=Помірна +item.ore_density_scanner.poor=Бідна +item.ore_density_scanner.veryhigh=Дуже виÑока +item.ore_density_scanner.verypoor=Дуже бідна +item.ore_enriched.name=Збагачена %s руда +item.ore_nitrated.name=Ðітрована %s руда +item.ore_nitrocrystalline.name=ÐітрокриÑталічна %s руда +item.ore_purified.name=Очищена Ñірчаною киÑлотою %s руда +item.ore_radcleaned.name=Очищена радіацією %s руда +item.ore_seared.name=Обпалена %s руда +item.ore_separated.name=Відокремлена %s руда +item.overfuse.name=Викрутка ÑингулÑрноÑті +item.overfuse.desc=Say what? +item.oxy_mask.name=КиÑнева маÑка +item.pa_coil.bscco.name=Велика віÑмут Ñтронцій кальцій мідь окÑидова (BSCCO) котушка +item.pa_coil.chlorophyte.name=Велика хлорофітова котушка +item.pa_coil.gold.name=Велика золота котушка +item.pa_coil.niobium.name=Велика ніобієво-титанова котушка +item.paa_boots.name="Ñтарі добрі черевики" PaA +item.paa_legs.name=ПоÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð½Ñ–Ð³ PaA +item.paa_plate.name=ЗахиÑна плаÑтина Ð´Ð»Ñ Ð³Ñ€ÑƒÐ´ÐµÐ¹ PaA +item.padlock.name=Замок +item.padlock_reinforced.name=ПоÑилений замок +item.padlock_rusty.name=Іржавий замок +item.padlock_unbreakable.name=Ðезламний замок +item.pads_rubber.name=Гумові уÑтілки +item.pads_slime.name=Слизові уÑтілки +item.pads_static.name=Статичні уÑтілки +item.page_of_.page1.name=Сторінка 1 +item.page_of_.page2.name=Сторінка 2 +item.page_of_.page3.name=Сторінка 3 +item.page_of_.page4.name=Сторінка 4 +item.page_of_.page5.name=Сторінка 5 +item.page_of_.page6.name=Сторінка 6 +item.page_of_.page7.name=Сторінка 7 +item.page_of_.page8.name=Сторінка 8 +item.pancake.name=Млинець з металобрухту, цвÑхів та пилу дорогоцінного ÐºÐ°Ð¼Ñ–Ð½Ð½Ñ +item.part_barrel_heavy.name=Важкий Ñтвол %s +item.part_barrel_light.name=Легкий Ñтвол %s +item.part_beryllium.name=Коробка з берилієвим пилом +item.part_carbon.name=Коробка з вугільним пилом +item.part_copper.name=Коробка з мідним пилом +item.part_generic.hde.name=Елемент Ð´Ð»Ñ Ð²Ð°Ð¶ÐºÐ¸Ñ… умов екÑплуатації +item.part_generic.lde.name=Елемент низької щільноÑті +item.part_generic.piston_electric.name=Електричний поршень +item.part_generic.piston_hydraulic.name=Гідравлічний поршень +item.part_generic.piston_pneumatic.name=Пневматичний поршень +item.part_grip.name=РукоÑтка %s +item.part_lithium.name=Коробка з літієвим пилом +item.part_mechanism.name=Механізм %s +item.part_plutonium.name=Коробка з плутонієвим пилом +item.part_receiver_heavy.name=Важкий реÑивер %s +item.part_receiver_light.name=Легкий реÑивер %s +item.part_stock.name=Приклад %s +item.particle_aelectron.name=КапÑула з позитронами +item.particle_amat.name=КапÑула з антиматерією +item.particle_aproton.name=КапÑула з антипротонами +item.particle_aschrab.name=КапÑула з антишрабідієм +item.particle_copper.name=КапÑула з іонами міді +item.particle_dark.name=КапÑула з темною матерією +item.particle_digamma.name=§cЧаÑтинка Дігамма§r +item.particle_empty.name=ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ ÐºÐ°Ð¿Ñула Ð´Ð»Ñ Ñ‡Ð°Ñтинок +item.particle_higgs.name=КапÑула з бозоном ХіггÑа +item.particle_hydrogen.name=КапÑула з іонами водню +item.particle_lead.name=КапÑула з іонами Ñвинцю +item.particle_lutece.name=КапÑула з КвазічаÑтинкою Ð›ÑŽÑ‚ÐµÑ +item.particle_muon.name=КапÑула з мюоном +item.particle_sparkticle.name=КапÑула з ÑпаркчаÑтинкою +item.particle_strange.name=КапÑула з дивним кварком +item.particle_tachyon.name=КапÑула з тахіоном +item.parts_legendary.name=Легендарні деталі +item.peas.name=Горох +item.pedestal_steel.name=Сталевий п'єдеÑтал +item.pellet_advanced.name=Advanced Watz Performance Improver +item.pellet_antimatter.name=КаÑета антиматерії +item.pellet_beryllium.name=Beryllium Moderator Pellet +item.pellet_buckshot.name=Свинцева шрапнель +item.pellet_canister.name=Canister Shot +item.pellet_charged.name=Іонізовані чаÑтинки +item.pellet_chlorophyte.name=Chlorophyte Rounds +item.pellet_claws.name=Sharp Metal Claws +item.pellet_cluster.name=Вибухова шрапнель +item.pellet_cluster.desc=ВикориÑтовуєтьÑÑ Ð² багатоцільових бомбах:$Додає екÑтра вибух! +item.pellet_coal.name=Dense Coal Cluster +item.pellet_coolant.name=Coolant Cluster +item.pellet_flechette.name=Флешети +item.pellet_gas.name=Балончик з отруйним газом +item.pellet_gas.desc=ВикориÑтовуєтьÑÑ Ð² багатоцільових бомбах: $*кхе-кхе* Допоможіть, будь лаÑка! +item.pellet_hes.name=Ватцз гранула виÑокозбагаченого шрабідіуму +item.pellet_lead.name=Lead Reflector Pellet +item.pellet_les.name=Ватцз гранула низькозбагаченого шрабідіуму +item.pellet_mercury.name=Mercury Rounds +item.pellet_mes.name=Шрабідієва Ватцз гранула +item.pellet_meteorite.name=Meteorite Rounds +item.pellet_neptunium.name=Ðептунієва Ватцз гранула +item.pellet_rtg.name=РІТЕГ гранула плутонію-238 +item.pellet_rtg.desc=Паливна гранула РІТЕГ Ð´Ð»Ñ Ð½ÐµÑкінченної енергії! (майже) +item.pellet_rtg_actinium.name=РІТЕГ гранула актинію-227 +item.pellet_rtg_actinium.desc=СÑйво блакитного Ñвітла та бета-променів. +item.pellet_rtg_americium.name=РІТЕГ гранула америцію-241 +item.pellet_rtg_americium.desc=РідкіÑний та надійний, Ñтарий добрий америцій! +item.pellet_rtg_berkelium.name=Berkelium RTG Pellet +item.pellet_rtg_berkelium.desc= +item.pellet_rtg_cobalt.name=РІТЕГ гранула кобальту-60 +item.pellet_rtg_cobalt.desc=Ðе найкращий Ñк РІТЕГ, але чудовий Ð´Ð»Ñ Ð³Ð°Ð¼Ð¼Ð°-випромінюваннÑ! +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=Потужніша РІТЕГ гранула, виготовлена з найкращого полонію! +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=Pure Schrabidium Watz Pellet +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_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.pill_iodine.desc=УÑуває негативні ефекти +item.pill_herbal.name=Трав'Ñна паÑта +item.pill_herbal.desc=Ефективне Ð»Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ñ…Ð²Ð¾Ñ€ÑŽÐ²Ð°Ð½ÑŒ легень та легкого радіаційного отруєннÑ.$CМає побічні ефекти +item.pill_red.name=Червона пігулка +item.pin.name=Шпилька +item.pin.desc=Стандартний рівень уÑпішноÑті злому звичайного замка Ñтановить ~10%%. +item.pipentm.name=Труба %s +item.pipes_steel.name=Сталеві труби +item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. +item.piston_selenium.name=Поршень двигуна внутрішнього згорÑÐ½Ð½Ñ +item.piston_set_desh.name=Комплект поршнів з деш +item.piston_set_dura.name=Комплект поршнів з швидкорізальної Ñталі +item.piston_set_starmetal.name=Комплект поршнів з зіркового металу +item.piston_set_steel.name=Комплект поршнів зі Ñталі +item.plan_c.name=План С +item.plan_c.desc=Смертельний +item.plant_item.mustardwillow.name=ЛиÑÑ‚Ñ Ð³Ñ–Ñ€Ñ‡Ð¸Ñ‡Ð½Ð¾Ñ— верби +item.plant_item.rope.name=Мотузка +item.plant_item.tobacco.name=Тютюн +item.plastic_bag.name=ПлаÑтиковий пакет +item.plate_advanced_alloy.name=ПлаÑтина з удоÑконаленого Ñплаву +item.plate_aluminium.name=Ðлюмінієва плаÑтина +item.plate_armor_ajr.name=Залізна кована обшивка броні +item.plate_armor_dnt.name=ДÐТ обшивка броні +item.plate_armor_fau.name=Фау обшивка броні +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_cast.name=Лита плаÑтина %s +item.plate_combine_steel.name=ПлаÑтина зі Ñталі комбайнів +item.plate_copper.name=Мідна плаÑтина +item.plate_dalekanium.name=Злий метал +item.plate_desh.name=Деш комбінована плаÑтина +item.plate_dineutronium.name=Динейтронієва комбінована плаÑтина +item.plate_dura_steel.name=ПлаÑтина зі швидкорізальної Ñталі +item.plate_euphemium.name=Юхимієва комбінована плаÑтина +item.plate_fuel_mox.name=МОКС-паливна плаÑтина +item.plate_fuel_pu238be.name=Плутоній-238 берилієва паливна плаÑтина +item.plate_fuel_pu239.name=Паливна плаÑтина виÑокозбагаченого плутонію-239 +item.plate_fuel_ra226be.name=Радій-226 берилієва паливна плаÑтина +item.plate_fuel_sa326.name=Паливна плаÑтина виÑокозбагаченого шрабідію-326 +item.plate_fuel_u233.name=Паливна плаÑтина виÑокозбагаченого урану-233 +item.plate_fuel_u235.name=Паливна плаÑтина виÑокозбагаченого урану-235 +item.plate_gold.name=Золота плаÑтина +item.plate_gunmetal.name=ПлаÑтина з гарматної бронзи +item.plate_iron.name=Залізна плаÑтина +item.plate_kevlar.name=Кевлар-керамічний компаунд +item.plate_lead.name=Свинцева плаÑтина +item.plate_mixed.name=Комбінована плаÑтина +item.plate_paa.name=ПлаÑтина зі Ñплаву PaA +item.plate_polymer.name=ІзолÑтор +item.plate_saturnite.name=Сатурнітова плаÑтина +item.plate_schrabidium.name=Шрабідієва плаÑтина +item.plate_steel.name=Стальна плаÑтина +item.plate_titanium.name=Титанова плаÑтина +item.plate_weaponsteel.name=ПлаÑтина зі збройової Ñталі +item.plate_welded.name=Зварена плаÑтина %s +item.polaroid.name=Полароїд +item.pollution_detector.name=Детектор Ð·Ð°Ð±Ñ€ÑƒÐ´Ð½ÐµÐ½Ð½Ñ +item.powder_actinium.name=Порошок актинію +item.powder_actinium_tiny.name=Крихітна купка актинієвого порошка +item.powder_advanced_alloy.name=Порошок удоÑконаленого Ñплаву +item.powder_aluminium.name=Ðлюмінієвий порошок +item.powder_asbestos.name=ÐзбеÑтовий порошок +item.powder_asbestos.desc=§o"ÐÑŽÑ…Ñ…Ñ…Ñ…Ñ…Ñ…Ñ…Ñ…- МХХХХХХМХХХХХХХХ"§r +item.powder_ash.coal.name=Вугільна зола +item.powder_ash.fly.name=Летюча зола +item.powder_ash.fullerene.name=Фулерен +item.powder_ash.misc.name=Попіл +item.powder_ash.soot.name=Дрібна Ñажа +item.powder_ash.wood.name=Деревна зола +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_bismuth.name=Ð’Ñ–Ñмутовий порошок +item.powder_borax.name=Бура +item.powder_boron.name=Борний порошок +item.powder_boron_tiny.name=Крихітна купка борного порошку +item.powder_bromine.name=Бромний порошок +item.powder_cadmium.name=Кадмієвий порошок +item.powder_caesium.name=Порошок цезію +item.powder_calcium.name=Кальцієвий порошок +item.powder_cement.name=Цемент +item.powder_cerium.name=Церієвий порошок +item.powder_cerium_tiny.name=Крихітна купка порошку церію +item.powder_chlorocalcite.name=Хлорокальцит +item.powder_chlorophyte.name=Хлорофітовий порошок +item.powder_cloud.name=Cloud Residue +item.powder_co60.name=Порошок кобальту-60 +item.powder_coal.name=Вугільний порошок +item.powder_coal_tiny.name=Крихітна купка вугільного порошку +item.powder_cobalt.name=Кобальтовий порошок +item.powder_cobalt_tiny.name=Крихітна купка кобальтового порошку +item.powder_coltan.name=Очищений танталіт +item.powder_coltan_ore.name=Подрібнений колтан +item.powder_combine_steel.name=Порошок Ñталі комбайнів +item.powder_copper.name=Мідний порошок +item.powder_cs137.name=Порошок цезію-137 +item.powder_cs137_tiny.name=Крихітна купа порошку цезію-137 +item.powder_daffergon.name=Daffergon Powder +item.powder_desh.name=Деш порошок +item.powder_desh_mix.name=Деш Ñуміш +item.powder_desh_ready.name=DeshReadyâ„¢ Ñуміш +item.powder_diamond.name=Ðлмазний порошок +item.powder_dineutronium.name=Динейтронієвий порошок +item.powder_dura_steel.name=Порошок швидкорізальної Ñталі +item.powder_emerald.name=Смарагдовий порошок +item.powder_euphemium.name=Юхимієвий порошок +item.powder_euphemium.desc=Подрібнений рожевий.$Ðа Ñмак Ñк полуницÑ. +item.powder_fertilizer.name=ПромиÑлове добриво +item.powder_fire.name=Червоний фоÑфор +item.powder_fire.desc=ВикориÑтовуєтьÑÑ Ð² багатоцільових бомбах:$Запалювальні бомби — це веÑело! +item.powder_flux.name=Ð¤Ð»ÑŽÑ +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_iodine.name=Йодний порошок +item.powder_iron.name=Залізний порошок +item.powder_lanthanium.name=Лантановий порошок +item.powder_lanthanium_tiny.name=Крихітна купка лантанового порошку +item.powder_lapis.name=Лазуритовий порошок +item.powder_lead.name=Свинцевий порошок +item.powder_lignite.name=Порошок бурого Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ +item.powder_limestone.name=ВапнÑковий порошок +item.powder_lithium.name=Літієвий порошок +item.powder_lithium_tiny.name=Крихітна купка літієвого порошку +item.powder_magic.name=Подрібнене Ð·Ð°Ñ‡Ð°Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ +item.powder_magnetized_tungsten.name=Ðамагнічений вольфрамовий порошок +item.powder_meteorite.name=Метеоритний порошок +item.powder_meteorite_tiny.name=Крихітна купка метеоритного порошку +item.powder_molysite.name=Трихлорид заліза +item.powder_neodymium.name=Ðеодимовий порошок +item.powder_neodymium_tiny.name=Крихітна купка неодимового порошку +item.powder_neptunium.name=Ðептунієвий порошок +item.powder_niobium.name=Ðіобієвий порошок +item.powder_niobium_tiny.name=Крихітна купка ніобієвого порошку +item.powder_nitan_mix.name=Ðітанієва Ñуміш +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=Порошок полонію-210 +item.powder_polymer.name=МікроплаÑтик +item.powder_power.name=Енергетичний порошок +item.powder_quartz.name=Кварцовий порошок +item.powder_ra226.name=Порошок радію-226 +item.powder_red_copper.name=Порошок червоної міді +item.powder_reiium.name=Reiium Powder +item.powder_sawdust.name=ТирÑа +item.powder_schrabidate.name=Ферошрабідатовий порошок +item.powder_schrabidium.name=Шрабідієвий порошок +item.powder_semtex_mix.name=Суміш СемтекÑу +item.powder_sodium.name=Ðатрій +item.powder_spark_mix.name=Спарк Ñуміш +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=AKA Танталій. +item.powder_tcalloy.name=Порошок технеціієвої Ñталі +item.powder_tektite.name=Тектитовий порошок +item.powder_tennessine.name=ТеннеÑÑиновий порошок +item.powder_thermite.name=Терміт +item.powder_thorium.name=Торієвий порошок +item.powder_titanium.name=Титановий порошок +item.powder_tungsten.name=Вольфрамовий порошок +item.powder_unobtainium.name=Unobtainium Powder +item.powder_uranium.name=Урановий порошок +item.powder_verticium.name=Verticium Powder +item.powder_weidanium.name=Weidanium Powder +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.pipette.name=Піпетка +item.pipette_boron.name=Борна піпетка +item.pipette_laboratory.name=Піпетка лабораторного клаÑу +item.primer_357.name=.357 Magnum Primer (x24) +item.primer_44.name=.44 Magnum Primer (x24) +item.primer_50.name=Large Caliber Primer (x12) +item.primer_9.name=Small Caliber Primer (x32) +item.primer_buckshot.name=Buckshot Primer (x12) +item.protection_charm.name=Оберіг захиÑту +item.prototype_kit.name=Комплект Прототипу +item.pudding.name=Пудинг +item.pwr_fuel.bfb_am_mix.name=Стрижень ВВЕР віÑмутового швидкого розмножувача реакторного америцію +item.pwr_fuel.bfb_pu241.name=Стрижень ВВЕР віÑмутового швидкого розмножувача плутонію-241 +item.pwr_fuel.hea242.name=Паливний Ñтрижень ВВЕР виÑокозбагаченого америцію-242 +item.pwr_fuel.hen237.name=Паливний Ñтрижень ВВЕР виÑокозбагаченого нептунію-237 +item.pwr_fuel.hep239.name=Паливний Ñтрижень ВВЕР виÑокозбагаченого плутонію-239 +item.pwr_fuel.hep241.name=Паливний Ñтрижень ВВЕР виÑокозбагаченого плутонію-241 +item.pwr_fuel.hes326.name=Паливний Ñтрижень ВВЕР виÑокозбагаченого шрабідію-326 +item.pwr_fuel.hes327.name=Паливний Ñтрижень ВВЕР виÑокозбагаченого Ñолінію-327 +item.pwr_fuel.heu233.name=Паливний Ñтрижень ВВЕР виÑокозбагаченого урану-233 +item.pwr_fuel.heu235.name=Паливний Ñтрижень ВВЕР виÑокозбагаченого урану-235 +item.pwr_fuel.mea.name=Паливний Ñтрижень ВВЕР Ñередньозбагаченого америцію +item.pwr_fuel.men.name=Паливний Ñтрижень ВВЕР Ñередньозбагаченого нептунію +item.pwr_fuel.mep.name=Паливний Ñтрижень ВВЕР Ñередньозбагаченого плутонію +item.pwr_fuel.meu.name=Паливний Ñтрижень ВВЕР Ñередньозбагаченого урану +item.pwr_fuel.mox.name=Паливний Ñтрижень ВВЕР МОКС-палива +item.pwr_fuel_depleted.bfb_am_mix.name= Збіднений Ñтрижень ВВЕР віÑмутового швидкого розмножувача реакторного америцію +item.pwr_fuel_depleted.bfb_pu241.name=Збіднений Ñтрижень ВВЕР віÑмутового швидкого розмножувача плутонію-241 +item.pwr_fuel_depleted.hea242.name=Збіднений Ñтрижень ВВЕР виÑокозбагаченого америцію-242 +item.pwr_fuel_depleted.hen237.name=Збіднений Ñтрижень ВВЕР виÑокозбагаченого нептунію-237 +item.pwr_fuel_depleted.hep239.name=Збіднений Ñтрижень ВВЕР виÑокозбагаченого плутонію-239 +item.pwr_fuel_depleted.hep241.name=Збіднений Ñтрижень ВВЕР виÑокозбагаченого плутонію-241 +item.pwr_fuel_depleted.hes326.name=Збіднений Ñтрижень ВВЕР виÑокозбагаченого шрабідію-326 +item.pwr_fuel_depleted.hes327.name=Збіднений Ñтрижень ВВЕР виÑокозбагаченого Ñолінію-327 +item.pwr_fuel_depleted.heu233.name=Збіднений Ñтрижень ВВЕР виÑокозбагаченого урану-233 +item.pwr_fuel_depleted.heu235.name=Збіднений Ñтрижень ВВЕР виÑокозбагаченого урану-235 +item.pwr_fuel_depleted.mea.name=Збіднений Ñтрижень ВВЕР Ñередньозбагаченого америцію +item.pwr_fuel_depleted.men.name=Збіднений Ñтрижень ВВЕР Ñередньозбагаченого нептунію +item.pwr_fuel_depleted.mep.name=Збіднений Ñтрижень ВВЕР Ñередньозбагаченого плутонію +item.pwr_fuel_depleted.meu.name=Збіднений Ñтрижень ВВЕР Ñередньозбагаченого урану +item.pwr_fuel_depleted.mox.name=Збіднений Ñтрижень ВВЕР МОКС-палива +item.pwr_fuel_hot.bfb_am_mix.name=ГарÑчий Ñтрижень ВВЕР віÑмутового швидкого розмножувача реакторного америцію +item.pwr_fuel_hot.bfb_pu241.name=ГарÑчий Ñтрижень ВВЕР віÑмутового швидкого розмножувача плутонію-241 +item.pwr_fuel_hot.hea242.name= ГарÑчий паливний Ñтрижень ВВЕР виÑокозбагаченого америцію-242 +item.pwr_fuel_hot.hen237.name=ГарÑчий паливний Ñтрижень ВВЕР виÑокозбагаченого нептунію-237 +item.pwr_fuel_hot.hep239.name=ГарÑчий паливний Ñтрижень ВВЕР виÑокозбагаченого плутонію-239 +item.pwr_fuel_hot.hep241.name=ГарÑчий паливний Ñтрижень ВВЕР виÑокозбагаченого плутонію-241 +item.pwr_fuel_hot.hes326.name=ГарÑчий паливний Ñтрижень ВВЕР виÑокозбагаченого шрабідію-326 +item.pwr_fuel_hot.hes327.name=ГарÑчий паливний Ñтрижень ВВЕР виÑокозбагаченого Ñолінію-327 +item.pwr_fuel_hot.heu233.name=ГарÑчий паливний Ñтрижень ВВЕР виÑокозбагаченого урану-233 +item.pwr_fuel_hot.heu235.name=ГарÑчий паливний Ñтрижень ВВЕР виÑокозбагаченого урану-235 +item.pwr_fuel_hot.mea.name=ГарÑчий паливний Ñтрижень ВВЕР Ñередньозбагаченого америцію +item.pwr_fuel_hot.men.name=ГарÑчий паливний Ñтрижень ВВЕР Ñередньозбагаченого нептунію +item.pwr_fuel_hot.mep.name=ГарÑчий паливний Ñтрижень ВВЕР Ñередньозбагаченого плутонію +item.pwr_fuel_hot.meu.name=ГарÑчий паливний Ñтрижень ВВЕР Ñередньозбагаченого урану +item.pwr_fuel_hot.mox.name=ГарÑчий паливний Ñтрижень ВВЕР МОКС-палива +item.quartz_plutonium.name=Плутонічний кварц +item.radar_linker.name=Радарний лінкер +item.radaway.name=Ðнтирадин +item.radaway_flush.name=Елітний Ðнтирадин +item.radaway_strong.name=Потужний Ðнтирадин +item.radx.name=Рад-X +item.radx.desc=Збільшує ÑтійкіÑть до радіації на 0.2 (37%%) протÑгом 3 хвилин +item.rag.name=Тканина +item.rag_damp.name=Волога тканина +item.rag_piss.name=ПроÑочена Ñечею ганчірка +item.rbmk_fuel_balefire.name=Паливний Ñтрижень РБМК BF +item.rbmk_fuel_balefire_gold.name=Паливний Ñтрижень РБМК флешголду +item.rbmk_fuel_drx.name=§cПаливний Ñтрижень РБМК Дігамма§r +item.rbmk_fuel_empty.name=Порожній паливний Ñтрижень РБМК +item.rbmk_fuel_flashlead.name=Паливний Ñтрижень РБМК флешліду +item.rbmk_fuel_hea241.name=Паливний Ñтрижень РБМК виÑокозбагаченого америцію-241 +item.rbmk_fuel_hea242.name=Паливний Ñтрижень РБМК виÑокозбагаченого америцію-242 +item.rbmk_fuel_heaus.name=Паливний Ñтрижень РБМК виÑокозбагаченого авÑтралію +item.rbmk_fuel_hen.name=Паливний Ñтрижень РБМК виÑокозбагаченого нептунію-237 +item.rbmk_fuel_hes.name=Паливний Ñтрижень РБМК виÑокозбагаченого шрабідію-326 +item.rbmk_fuel_hep.name=Паливний Ñтрижень РБМК виÑокозбагаченого плутонію-239 +item.rbmk_fuel_hep241.name=Паливний Ñтрижень РБМК виÑокозбагаченого плутонію-241 +item.rbmk_fuel_heu233.name=Паливний Ñтрижень РБМК виÑокозбагаченого урану-233 +item.rbmk_fuel_heu235.name=Паливний Ñтрижень РБМК виÑокозбагаченого урану-235 +item.rbmk_fuel_lea.name=Паливний Ñтрижень РБМК низькозбагаченого америцію +item.rbmk_fuel_leaus.name=Паливний Ñтрижень РБМК низькозбагаченого авÑтралію +item.rbmk_fuel_lep.name=Паливний Ñтрижень РБМК низькозбагаченого плутонію-239 +item.rbmk_fuel_les.name=Паливний Ñтрижень РБМК низькозбагаченого шрабідію-326 +item.rbmk_fuel_mea.name=Паливний Ñтрижень РБМК Ñередньозбагаченого америцію-242 +item.rbmk_fuel_men.name=Паливний Ñтрижень РБМК Ñередньозбагаченого нептунію-237 +item.rbmk_fuel_mep.name=Паливний Ñтрижень РБМК Ñередньозбагаченого плутонію-239 +item.rbmk_fuel_mes.name=Паливний Ñтрижень РБМК Ñередньозбагаченого шрабідію-326 +item.rbmk_fuel_meu.name=Паливний Ñтрижень РБМК Ñередньозбагаченого урану-235 +item.rbmk_fuel_mox.name=Паливний Ñтрижень РБМК МОКС-палива +item.rbmk_fuel_po210be.name=Полоній-210 берилієве джерело нейтронів РБМК +item.rbmk_fuel_pu238be.name=Плутоній-238 берилієве джерело нейтронів РБМК +item.rbmk_fuel_ra226be.name=Радій-226 берилієве джерело нейтронів РБМК +item.rbmk_fuel_thmeu.name=Паливний Ñтрижень РБМК торію з урановим джерелом нейтронів +item.rbmk_fuel_ueu.name=Паливний Ñтрижень РБМК незбагаченого урану +item.rbmk_fuel_zfb_am_mix.name=Стрижень РБМК цирконієвого швидкого розмножувача реакторного америцію +item.rbmk_fuel_zfb_bismuth.name=Стрижень РБМК цирконієвого швидкого розмножувача віÑмута +item.rbmk_fuel_zfb_pu241.name=Стрижень РБМК цирконієвого швидкого розмножувача плутонію-241 +item.rbmk_lid.name=Покриваюча панель РБМК +item.rbmk_lid_glass.name=СклÑна покриваюча панель РБМК +item.rbmk_pellet_balefire.name=Паливна гранула BF +item.rbmk_pellet_balefire_gold.name=Паливна гранула флешголду +item.rbmk_pellet_drx.name=§cПаливна гранула Дігамма§r +item.rbmk_pellet_flashlead.name=Паливна гранула флешліду +item.rbmk_pellet_hea241.name=Паливна гранула виÑокозбагаченого америцію-241 +item.rbmk_pellet_hea242.name=Паливна гранулавиÑокозбагаченого америцію-242 +item.rbmk_pellet_heaus.name=Паливна гранула виÑокозбагаченого авÑтралію +item.rbmk_pellet_hen.name=Паливна гранула виÑокозбагаченого нептунію-237 +item.rbmk_pellet_hep239.name=Паливна гранула виÑокозбагаченого плутонію-239 +item.rbmk_pellet_hep241.name=Паливна гранула виÑокозбагаченого плутонію-241 +item.rbmk_pellet_heu233.name=Паливна гранула виÑокозбагаченого урану-233 +item.rbmk_pellet_heu235.name=Паливна гранула виÑокозбагаченого урану-235 +item.rbmk_pellet_hes.name=Паливна гранула виÑокозбагаченого шрабідію-326 +item.rbmk_pellet_lea.name=Паливна гранула низькозбагаченого америцію +item.rbmk_pellet_leaus.name=Паливна гранула низькозбагаченого авÑтралію +item.rbmk_pellet_lep.name=Паливна гранула низькозбагаченого плутонію-239 +item.rbmk_pellet_les.name=Паливна гранула низькозбагаченого шрабідію-326 +item.rbmk_pellet_mea.name=Паливна гранула Ñередньозбагаченого америцію-242 +item.rbmk_pellet_men.name=Паливна гранула Ñередньозбагаченого нептунію-237 +item.rbmk_pellet_mep.name=Паливна гранула Ñередньозбагаченого плутонію-239 +item.rbmk_pellet_mes.name=Паливна гранула Ñередньозбагаченого шрабідію-326 +item.rbmk_pellet_meu.name=Паливна гранула Ñередньозбагаченого урану-235 +item.rbmk_pellet_mox.name=Гранула МОКС-палива +item.rbmk_pellet_po210be.name=Гранула полоній-210 берилієвого джерела нейтронів +item.rbmk_pellet_pu238be.name=Гранула плутоній-238 берилієвого джерела нейтронів +item.rbmk_pellet_ra226be.name=Гранула радій-226 берилієвого джерела нейтронів +item.rbmk_pellet_thmeu.name=Паливна гранула торію з урановим джерелом нейтронів +item.rbmk_pellet_ueu.name=Паливна гранула незбагаченого урану +item.rbmk_pellet_zfb_am_mix.name=Гранула цирконієвого швидкого розмножувача реакторного америцію +item.rbmk_pellet_zfb_bismuth.name=Гранула цирконієвого швидкого розмножувача віÑмута +item.rbmk_pellet_zfb_pu241.name=Гранула цирконієвого швидкого розмножувача плутонію-241 +item.rbmk_tool.name=ЛІнкер конÑолі РБМК +item.rbmk_tool.desc=Клацніть правою кнопкою миші з шифтом на РБМК, щоб зберегти позицію,$клацніть правою кнопкою миші з шифтом на конÑоль Ð´Ð»Ñ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ! +item.rbmk_tool.linked=ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ð²Ñтановлена! +item.rbmk_tool.set=РБМК підключено! +item.reacher.name=Вольфрамовий ухват +item.reactor_core.name=Ðктивна зона реактора розмножувача +item.reactor_sensor.name=ДиÑтанційний датчик реактора +item.record.glass.desc=? ? ? +item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core +item.record.ss.desc=Valve - Sector Sweep +item.record.vc.desc=Valve - Vortal Combat +item.redcoil_capacitor.name=Червонокатушковий конденÑатор +item.redstone_depleted.name=Desaturated Redstone Dust +item.redstone_sword.name=РедÑтоун меч +item.reer_graar.name=The Reer Graar +item.remote.name=Зламаний пульт диÑтанційного ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ +item.ring_pull.name=Відкривашка +item.ring_starmetal.name=§9Кільце з зіркового металу§r +item.robes_boots.name=Польові черевики +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=Australium Rod +item.rod_balefire.name=Balefire Rod +item.rod_balefire_blazing.name=Blazing Balefire Rod +item.rod_coolant.name=Coolant Cell +item.rod_daffergon.name=Daffergon Rod +item.rod_dual_balefire.name=Balefire Dual Rod +item.rod_dual_balefire_blazing.name=Blazing Balefire Dual Rod +item.rod_dual_coolant.name=Dual Coolant Cell +item.rod_dual_lead.name=Lead Dual Rod +item.rod_dual_lithium.name=Dual Lithium Rod +item.rod_dual_mox_fuel.name=MOX Dual Fuel Rod +item.rod_dual_mox_fuel_depleted.name=Depleted MOX Dual Fuel Rod +item.rod_dual_neptunium.name=Neptunium Dual Rod +item.rod_dual_plutonium.name=Plutonium Dual Rod +item.rod_dual_plutonium_fuel.name=Plutonium Dual Fuel Rod +item.rod_dual_plutonium_fuel_depleted.name=Depleted Plutonium Dual Fuel Rod +item.rod_dual_polonium.name=Polonium-210 Dual Rod +item.rod_dual_pu238.name=Plutonium-238 Dual Rod +item.rod_dual_pu239.name=Plutonium-239 Dual Rod +item.rod_dual_pu240.name=Plutonium-240 Dual Rod +item.rod_dual_schrabidium.name=Schrabidium-326 Dual Rod +item.rod_dual_schrabidium_fuel.name=Schrabidium Dual Fuel Rod +item.rod_dual_schrabidium_fuel_depleted.name=Depleted Schrabidium Dual Fuel Rod +item.rod_dual_solinium.name=Schrabidium-327 Dual Rod +item.rod_dual_th232.name=Thorium-232 Dual Rod +item.rod_dual_thorium_fuel.name=Thorium Dual Fuel Rod +item.rod_dual_thorium_fuel_depleted.name=Depleted Thorium Dual Fuel Rod +item.rod_dual_tritium.name=Dual Tritium Cell +item.rod_dual_u233.name=Uranium-233 Dual Rod +item.rod_dual_u235.name=Uranium-235 Dual Rod +item.rod_dual_u238.name=Uranium-238 Dual Rod +item.rod_dual_uranium.name=Uranium Dual Rod +item.rod_dual_uranium_fuel.name=Uranium Dual Fuel Rod +item.rod_dual_uranium_fuel_depleted.name=Depleted Uranium Dual Fuel Rod +item.rod_dual_waste.name=Nuclear Waste Dual Rod +item.rod_dual_water.name=Dual Water Cell +item.rod_euphemium.name=Euphemium Rod +item.rod_lead.name=Lead Rod +item.rod_lithium.name=Lithium Rod +item.rod_mox_fuel.name=MOX Fuel Rod +item.rod_mox_fuel_depleted.name=Depleted MOX Fuel Rod +item.rod_neptunium.name=Neptunium Rod +item.rod_of_discord.name=Жезл розбрату +item.rod_plutonium.name=Plutonium Rod +item.rod_plutonium_fuel.name=Plutonium Fuel Rod +item.rod_plutonium_fuel_depleted.name=Depleted Plutonium Fuel Rod +item.rod_polonium.name=Polonium-210 Rod +item.rod_pu238.name=Plutonium-238 Rod +item.rod_pu239.name=Plutonium-239 Rod +item.rod_pu240.name=Plutonium-240 Rod +item.rod_quad_balefire.name=Balefire Quad Rod +item.rod_quad_balefire_blazing.name=Blazing Balefire Quad Rod +item.rod_quad_coolant.name=Quad Coolant Cell +item.rod_quad_euphemium.name=Burned Out Quad Schrabidium Rod +item.rod_quad_lead.name=Lead Quad Rod +item.rod_quad_lithium.name=Quad Lithium Rod +item.rod_quad_mox_fuel.name=MOX Quad Fuel Rod +item.rod_quad_mox_fuel_depleted.name=Depleted MOX Quad Fuel Rod +item.rod_quad_neptunium.name=Neptunium Quad Rod +item.rod_quad_plutonium.name=Plutonium Quad Rod +item.rod_quad_plutonium_fuel.name=Plutonium Quad Fuel Rod +item.rod_quad_plutonium_fuel_depleted.name=Depleted Plutonium Quad Fuel Rod +item.rod_quad_polonium.name=Polonium-210 Quad Rod +item.rod_quad_pu238.name=Plutonium-238 Quad Rod +item.rod_quad_pu239.name=Plutonium-239 Quad Rod +item.rod_quad_pu240.name=Plutonium-240 Quad Rod +item.rod_quad_schrabidium.name=Schrabidium-326 Quad Rod +item.rod_quad_schrabidium_fuel.name=Schrabidium Quad Fuel Rod +item.rod_quad_schrabidium_fuel_depleted.name=Depleted Schrabidium Quad Fuel Rod +item.rod_quad_solinium.name=Schrabidium-327 Quad Rod +item.rod_quad_th232.name=Thorium-232 Quad Rod +item.rod_quad_thorium_fuel.name=Thorium Quad Fuel Rod +item.rod_quad_thorium_fuel_depleted.name=Depleted Thorium Quad Fuel Rod +item.rod_quad_tritium.name=Quad Tritium Cell +item.rod_quad_u233.name=Uranium-233 Quad Rod +item.rod_quad_u235.name=Uranium-235 Quad Rod +item.rod_quad_u238.name=Uranium-238 Quad Rod +item.rod_quad_uranium.name=Uranium Quad Rod +item.rod_quad_uranium_fuel.name=Uranium Quad Fuel Rod +item.rod_quad_uranium_fuel_depleted.name=Depleted Uranium Quad Fuel Rod +item.rod_quad_waste.name=Nuclear Waste Quad Rod +item.rod_quad_water.name=Quad Water Cell +item.rod_reiium.name=Reiium Rod +item.rod_schrabidium.name=Schrabidium-326 Rod +item.rod_schrabidium_fuel.name=Schrabidium Fuel Rod +item.rod_schrabidium_fuel_depleted.name=Depleted Schrabidium Fuel Rod +item.rod_solinium.name=Schrabidium-327 Rod +item.rod_th232.name=Thorium-232 Rod +item.rod_thorium_fuel.name=Thorium Fuel Rod +item.rod_thorium_fuel_depleted.name=Depleted Thorium Fuel Rod +item.rod_tritium.name=Tritium Cell +item.rod_u233.name=Uranium-233 Rod +item.rod_u235.name=Uranium-235 Rod +item.rod_u238.name=Uranium-238 Rod +item.rod_unobtainium.name=Unobtainium Rod +item.rod_uranium.name=Uranium Rod +item.rod_uranium_fuel.name=Uranium Fuel Rod +item.rod_uranium_fuel_depleted.name=Depleted Uranium Fuel Rod +item.rod_verticium.name=Verticium Rod +item.rod_waste.name=Nuclear Waste Rod +item.rod_water.name=Water Cell +item.rod_weidanium.name=Weidanium Rod +item.rod_zirnox_empty.name=Порожній Ñтрижень ЦИРÐОКС +item.rod_zirnox_natural_uranium_fuel.name=Паливний Ñтрижень ЦИРÐОКС природного урану +item.rod_zirnox_uranium_fuel.name=Паливний Ñтрижень ЦИРÐОКС уранового палива +item.rod_zirnox_th232.name=Стрижень ЦИРÐОКС торію-232 +item.rod_zirnox_thorium_fuel.name=Паливний Ñтрижень ЦИРÐОКС торієвого палива +item.rod_zirnox_mox_fuel.name=Паливний Ñтрижень ЦИРÐОКС МОКС-палива +item.rod_zirnox_plutonium_fuel.name=Паливний Ñтрижень ЦИРÐОКС плутонієвого палива +item.rod_zirnox_u233_fuel.name=Паливний Ñтрижень ЦИРÐОКС урану-233 +item.rod_zirnox_u235_fuel.name=Паливний Ñтрижень ЦИРÐОКС урану-235 +item.rod_zirnox_les_fuel.name=Паливний Ñтрижень ЦИРÐОКС низькозбагаченого шрабідію +item.rod_zirnox_lithium.name=Стрижень ЦИРÐОКС літію +item.rod_zirnox_tritium.name=Стрижень ЦИРÐОКС тритію +item.rod_zirnox_zfb_mox.name=Паливний Ñтрижень ЦИРÐОКС цирконієвого швидкого розмножувача МОКС-палива +item.rod_zirnox_natural_uranium_fuel_depleted.name=Збіднений Ñтрижень ЦИРÐОКС природного урану +item.rod_zirnox_uranium_fuel_depleted.name=Збіднений Ñтрижень ЦИРÐОКС уранового палива +item.rod_zirnox_thorium_fuel_depleted.name=Збіднений Ñтрижень ЦИРÐОКС торієвого палива +item.rod_zirnox_mox_fuel_depleted.name=Збіднений Ñтрижень ЦИРÐОКС МОКС-палива +item.rod_zirnox_plutonium_fuel_depleted.name=Збіднений Ñтрижень ЦИРÐОКС плутонієвого палива +item.rod_zirnox_u233_fuel_depleted.name=Збіднений Ñтрижень ЦИРÐОКС урану-233 +item.rod_zirnox_u235_fuel_depleted.name=Збіднений Ñтрижень ЦИРÐОКС урану-235 +item.rod_zirnox_les_fuel_depleted.name=Збіднений Ñтрижень ЦИРÐОКС низькозбагаченого шрабідію +item.rod_zirnox_zfb_mox_depleted.name=Збіднений Ñтрижень ЦИРÐОКС цирконієвого швидкого розмножувача МОКС-палива +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=Thick Rubber Gloves +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=Цілевказівник Ñупутника +item.sat_designator.name=Лазерний цілевказівник Ñупутника +item.sat_relay.name=Супутниковий радарний передачик +item.sat_foeq.name=PEAF - Mk.I FOEQ Duna з екÑпериментальним Ñдерним двигуном +item.sat_gerald.name=Геральд, Будівельний Ðндроїд +item.sat_head_laser.name=Промінь Ñмерті +item.sat_head_mapper.name=Оптична камера з виÑоким коефіцієнтом поÑÐ¸Ð»ÐµÐ½Ð½Ñ +item.sat_head_radar.name=Радарна тарілка +item.sat_head_resonator.name=КÑенієвий резонатор +item.sat_head_scanner.name=Геодезичний Ñканер M700 +item.sat_interface.name=Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñупутниками +item.sat_laser.name=Орбітальний промінь Ñмерті +item.sat_lunar_miner.name=МіÑÑчний гірничодобувний корабель +item.sat_mapper.name=Супутник ÐºÐ°Ñ€Ñ‚Ð¾Ð³Ñ€Ð°Ñ„ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ñ– +item.sat_miner.name=Корабель Ð´Ð»Ñ Ð²Ð¸Ð´Ð¾Ð±ÑƒÑ‚ÐºÑƒ аÑтероїдів +item.sat_radar.name=Супутник радіолокаційного доÑÐ»Ñ–Ð´Ð¶ÐµÐ½Ð½Ñ +item.sat_resonator.name=Супутник кÑенієвий резонатор +item.sat_scanner.name=Супутник з модулем глибинного ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів +item.sawblade.name=Лезо пилорами +item.schnitzel_vegan.name=ВеганÑький шніцель +item.schrabidium_axe.name=Шрабідієва Ñокира +item.schrabidium_boots.name=Шрабідієві чоботи +item.schrabidium_hammer.name=Шрабідієвий молот +item.schrabidium_helmet.name=Шрабідієвий шолом +item.schrabidium_hoe.name=Шрабідієва мотика +item.schrabidium_legs.name=Шрабідієві наголінники +item.schrabidium_pickaxe.name=Шрабідієве кайло +item.schrabidium_plate.name=Шрабідієвий нагрудник +item.schrabidium_shovel.name=Шрабідієва лопата +item.schrabidium_sword.name=Шрабідієвий меч +item.scrap.name=Брухт +item.scrap_nuclear.name=Радіоактивне ÑÐ¼Ñ–Ñ‚Ñ‚Ñ +item.scrap_oil.name=Ðафтові відходи +item.scrap_plastic.name=Подрібнений плаÑтик +item.scraps.name=Ливарний шлак +item.screwdriver.name=Викрутка +item.screwdriver.desc=Можна викориÑтовувати заміÑть запобіжника... +item.screwdriver_desh.name=Деш викрутка +item.scrumpy.name=ПлÑшка Скрампі +item.security_boots.name=Черевики Ð¾Ñ…Ð¾Ñ€Ð¾Ð½Ñ†Ñ +item.security_helmet.name=Шолом Ð¾Ñ…Ð¾Ñ€Ð¾Ð½Ñ†Ñ +item.security_legs.name=Штани Ð¾Ñ…Ð¾Ñ€Ð¾Ð½Ñ†Ñ +item.security_plate.name=Куртка Ð¾Ñ…Ð¾Ñ€Ð¾Ð½Ñ†Ñ +item.seg_10.name=Розмір 10 з'єднувач +item.seg_15.name=Розмір 15 з'єднувач +item.seg_20.name=Розмір 20 з'єднувач +item.serum.name=Сироватка +item.servo_set.name=Комплект Ñервоприводів +item.servo_set_desh.name=Деш комплект Ñервоприводів +item.settings_tool.name=ІнÑтрумент Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ +item.shackles.name=Кайдани +item.shellntm.name=Оболонка %s +item.shimmer_axe.name=Чудова Ñокира +item.shimmer_axe_head.name=Важка головка Ñокири +item.shimmer_handle.name=ПоÑилена полімерна ручка +item.shimmer_head.name=Важка головка молота +item.shimmer_sledge.name=Чудова кувалда +item.singularity.name=СингулÑрніÑть +item.singularity_counter_resonant.name=Скована контррезонанÑна ÑингулÑрніÑть +item.singularity_micro.name=МікроÑингулÑрніÑть +item.singularity_spark.name=Спарк ÑингулÑрніÑть +item.singularity_super_heated.name=Перегріта резонуюча ÑингулÑрніÑть +item.siox.name=Ліки від раку SiOX +item.siox.desc=ПозбавлÑÑ” від мезотеліоми Ñилою азбеÑту! +item.siphon.name=Сифон +item.siren_track.name=Трек Ñирени +item.sliding_blast_door_skin.0.name=Скін розÑувних захиÑних дверей: Стандартний +item.sliding_blast_door_skin.1.name=Скін розÑувних захиÑних дверей: Варіант 1 +item.sliding_blast_door_skin.2.name=Скін розÑувних захиÑних дверей: Варіант 2 +item.smashing_hammer.name=Ðищівний молот +item.solid_fuel.name=Тверде паливо +item.solid_fuel_bf.name=Тверде паливо (BF) +item.solid_fuel_presto.name=ПреÑоване тверде паливо +item.solid_fuel_presto_bf.name=ПреÑоване тверде паливо (BF) +item.solid_fuel_presto_triplet.name=Потужне преÑоване тверде паливо +item.solid_fuel_presto_triplet_bf.name=Потужне преÑоване тверде паливо (BF) +item.solinium_core.name=ÐапівÑтабільне Ñолінієве Ñдро +item.solinium_igniter.name=Солінієвий імпульÑний запальник +item.solinium_kit.name=Комплект Солінію +item.solinium_propellant.name=Солінієвий ÑтиÑкаючий зарÑд +item.sopsign.name=Бойова Ñокира зі знаку СОП +item.spawn_duck.name=Золоте Ñйце +item.spawn_ufo.name=МарÑіанÑький корабель Ð²Ñ‚Ð¾Ñ€Ð³Ð½ÐµÐ½Ð½Ñ +item.spawn_worm.name=БаллÑ-О-Трон Прайм +item.sphere_steel.name=Сталева Ñфера +item.spider_milk.name=ПлÑшка павукового молока +item.spongebob_macaroni.name=Макарони Губка Боб +item.stamp_357.name=.357 Magnum штамп +item.stamp_44.name=.44 Magnum штамп +item.stamp_50.name=Штамп великого калібру +item.stamp_9.name=Штамп малого калібру +item.stamp_book.printing1.name=ДрукарÑький штамп (Сторінка 1) +item.stamp_book.printing2.name=ДрукарÑький штамп (Сторінка 2) +item.stamp_book.printing3.name=ДрукарÑький штамп (Сторінка 3) +item.stamp_book.printing4.name=ДрукарÑький штамп (Сторінка 4) +item.stamp_book.printing5.name=ДрукарÑький штамп (Сторінка 5) +item.stamp_book.printing6.name=ДрукарÑький штамп (Сторінка 6) +item.stamp_book.printing7.name=ДрукарÑький штамп (Сторінка 7) +item.stamp_book.printing8.name=ДрукарÑький штамп (Сторінка 8) +item.stamp_desh_circuit.name=Штамп Ñхеми (Деш) +item.stamp_desh_flat.name=ПлоÑкий штамп (Деш) +item.stamp_desh_plate.name=Штамп плаÑтини (Деш) +item.stamp_desh_wire.name=Штамп дроту (Деш) +item.stamp_desh_357.name=.357 Magnum штамп (Деш) +item.stamp_desh_44.name=.44 Magnum штамп (Деш) +item.stamp_desh_50.name=Штамп великого калібру (Деш) +item.stamp_desh_9.name=Штамп малого калібру (Деш) +item.stamp_iron_circuit.name=Штамп Ñхеми (Залізо) +item.stamp_iron_flat.name=ПлоÑкий штамп (Залізо) +item.stamp_iron_plate.name=Штамп плаÑтини (Залізо) +item.stamp_iron_wire.name=Штамп дроту (Залізо) +item.stamp_obsidian_circuit.name=Штамп Ñхеми (ОбÑидіан) +item.stamp_obsidian_flat.name=ПлоÑкий штамп (ОбÑидіан) +item.stamp_obsidian_plate.name=Штамп плаÑтини (ОбÑидіан) +item.stamp_obsidian_wire.name=Штамп дроту (ОбÑидіан) +item.stamp_steel_circuit.name=Штамп Ñхеми (Сталь) +item.stamp_steel_flat.name=ПлоÑкий штамп (Сталь) +item.stamp_steel_plate.name=Штамп плаÑтини (Сталь) +item.stamp_steel_wire.name=Штамп дроту (Сталь) +item.stamp_stone_circuit.name=Штамп Ñхеми (Камінь) +item.stamp_stone_flat.name=ПлоÑкий штамп (Камінь) +item.stamp_stone_plate.name=Штамп плаÑтини (Камінь) +item.stamp_stone_wire.name=Штамп дроту (Камінь) +item.stamp_titanium_circuit.name=Штамп Ñхеми (Титан) +item.stamp_titanium_flat.name=ПлоÑкий штамп (Титан) +item.stamp_titanium_plate.name=Штамп плаÑтини (Титан) +item.stamp_titanium_wire.name=Штамп дроту (Титан) +item.starmetal_axe.name=Сокира з зіркового металу +item.starmetal_boots.name=Чоботи з зіркового металу +item.starmetal_helmet.name=Шолом з зіркового металу +item.starmetal_hoe.name=Мотика з зіркового металу +item.starmetal_legs.name=Ðаголінники з зіркового металу +item.starmetal_pickaxe.name=Кайло з зіркового металу +item.starmetal_plate.name=Ðагрудник з зіркового металу +item.starmetal_shovel.name=Лопата з зіркового металу +item.starmetal_sword.name=Меч з зіркового металу +item.static_sandwich.name=Сендвіч, прикрашений телевізійним шумом +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=Сталевий шолом +item.steel_hoe.name=Сталева мотика +item.steel_legs.name=Сталеві наголінники +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_dynamite_fishing.name=Шашка рибальÑького динаміту +item.stick_semtex.name=Шашка СемтекÑу +item.stick_tnt.name=Шашка тринітротолуолу (TNT) +item.stopsign.name=Бойова Ñокира зі знаку СТОП +item.sulfur.name=Сірка +item.survey_scanner.name=ДоÑлідницький Ñканер +item.syringe_antidote.name=Ðнтидот +item.syringe_awesome.name=ЧУДОВО +item.syringe_empty.name=Порожній шприц +item.syringe_metal_empty.name=Металевий шприц +item.syringe_metal_medx.name=Мед-X +item.syringe_metal_psycho.name=ПÑихо +item.syringe_metal_stimpak.name=СтимулÑтор +item.syringe_metal_super.name=СуперÑтимулÑтор +item.syringe_mkunicorn.name=MKUNICORN +item.syringe_poison.name=Отруйна ін'Ñ”ÐºÑ†Ñ–Ñ +item.syringe_taint.name=Ін'Ñ”ÐºÑ†Ñ–Ñ Ð²Ð¾Ð´ÑниÑтої порчі +item.t45_boots.name=Чоботи Ñилової броні T-45 +item.t45_helmet.name=Шолом Ñилової броні T-45 +item.t45_kit.name=Комплект Ñилової броні T-45 +item.t45_legs.name=Ðаголінники Ñилової броні T-45 +item.t45_plate.name=Ðагрудник Ñилової броні T-45 +item.tank_steel.name=Сталевий бак +item.taurun_boots.name=Taurun Boots +item.taurun_helmet.name=Taurun Helmet +item.taurun_legs.name=Taurun Leggings +item.taurun_plate.name=Taurun Chestplate +item.telepad.name=Telepad +item.tem_flakes.name=ПлаÑтівці Тем +item.template_folder.name=Папка шаблонів машин +item.template_folder.desc=Шаблони машин: папір + барвник$Ідентифікатор рідини: залізна плаÑтина + барвник$Штампи преÑу: плоÑкий штамп$Трек Ñирениs: ізолÑтор + Ñталева плаÑтина +item.test_nuke_igniter.name=Запальник +item.test_nuke_propellant.name=Кордитний зарÑд +item.test_nuke_tier1_bullet.name=СнарÑд U235 (Tier 1) +item.test_nuke_tier1_shielding.name=Відбивач нейтронів (Tier 1) +item.test_nuke_tier1_target.name=Субкритична ціль U235 (Tier 1) +item.test_nuke_tier2_bullet.name=MOX Projectile (Tier 2) +item.test_nuke_tier2_shielding.name=Neutron Reflector (Tier 2) +item.test_nuke_tier2_target.name=Subcritical MOX Target (Tier 2) +item.thermo_element.name=Термоелектричний елемент +item.thermo_unit_empty.name=Thermic Distribution Unit +item.thermo_unit_endo.name=Coldness Distribution Unit +item.thermo_unit_exo.name=Heat Distribution Unit +item.thruster_large.name=Великий ракетний двигун +item.thruster_medium.name=Середній ракетний двигун +item.thruster_nuclear.name=Ядерний ракетний двигун LV-N +item.thruster_small.name=Малий ракетний двигун +item.titanium_axe.name=Титанова Ñокира +item.titanium_boots.name=Титанові чоботи +item.titanium_filter.name=Титановий фільтр +item.titanium_helmet.name=Титановий шолом +item.titanium_hoe.name=Титанова мотика +item.titanium_legs.name=Титанові наголінники +item.titanium_pickaxe.name=Титанове кайло +item.titanium_plate.name=Титановий нагрудник +item.titanium_shovel.name=Титанова лопата +item.titanium_sword.name=Титановий меч +item.toolbox.name=Ящик Ð´Ð»Ñ Ñ–Ð½Ñтрументів +item.toolbox_legacy.name=Ящик Ð´Ð»Ñ Ñ–Ð½Ñтрументів (LEGACY) +item.toothpicks.name=ЗубочиÑтки +item.train.cargo_tram.name=Електричний трамвай з плоÑкою платформою +item.trenchmaster_boots.name=Trenchmaster's Boots +item.trenchmaster_helmet.name=Trenchmaster's Helmet +item.trenchmaster_legs.name=Trenchmaster's Leggings +item.trenchmaster_plate.name=Trenchmaster's Chestplate +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=Титанова парова турбіна +item.turbine_tungsten.name=ПоÑилена турбіна турбовентилÑтора +item.turret_biometry.name=Turret Telemetry Card +item.turret_cheapo_ammo.name=6x24 Cheapo Turret Ammunition +item.turret_chip.name=ШІ-чіп турелі +item.turret_control.name=Turret Controller +item.turret_cwis_ammo.name=CIWS 20mm Ammo Drum +item.turret_flamer_ammo.name=Flamer Turret Fuel Tanks +item.turret_heavy_ammo.name=Heavy MG Turret Ammunition +item.turret_light_ammo.name=Light MG Turret Ammo Box +item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition +item.turret_spitfire_ammo.name=AA-Shell +item.turret_tau_ammo.name=Tau Turret Uranium Ammo +item.twinkie.name=Твінкі +item.ullapool_caber.name=ÐлапульÑька колода +item.undefined.name=Ðевизначено +item.upgrade_5g.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Випромінювач 5G радіації" +item.upgrade_afterburn_1.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ФорÑаж" тип â„–1 +item.upgrade_afterburn_2.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ФорÑаж" тип â„–2 +item.upgrade_afterburn_3.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ФорÑаж" тип â„–3 +item.upgrade_centrifuge.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Центрифуга" +item.upgrade_crystallizer.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "КриÑталізатор" +item.upgrade_effect_1.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ЕфективніÑть" тип â„–1 +item.upgrade_effect_2.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ЕфективніÑть" тип â„–2 +item.upgrade_effect_3.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ЕфективніÑть" тип â„–3 +item.upgrade_ejector_1.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ñ‚Ñгувача "ШвидкіÑть" тип â„–1 +item.upgrade_ejector_2.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ñ‚Ñгувача "ШвидкіÑть" тип â„–2 +item.upgrade_ejector_3.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ñ‚Ñгувача "ШвидкіÑть" тип â„–3 +item.upgrade_fortune_1.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Вдача" тип â„–1 +item.upgrade_fortune_2.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Вдача" тип â„–2 +item.upgrade_fortune_3.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Вдача" тип â„–3 +item.upgrade_gc_speed.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Розгін газової центрифуги" +item.upgrade_health.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÑŽÐ²Ð°Ñ‡Ð° "ЗахиÑÑ‚" +item.upgrade_muffler.name=Глушник +item.upgrade_nullifier.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Знищувач ÑміттÑ" +item.upgrade_overdrive_1.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ПеревантаженнÑ" тип â„–1 +item.upgrade_overdrive_2.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ПеревантаженнÑ" тип â„–2 +item.upgrade_overdrive_3.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ПеревантаженнÑ" тип â„–3 +item.upgrade_power_1.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ЕнергозбереженнÑ" тип â„–1 +item.upgrade_power_2.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ЕнергозбереженнÑ" тип â„–2 +item.upgrade_power_3.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ЕнергозбереженнÑ" тип â„–3 +item.upgrade_radius.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÑŽÐ²Ð°Ñ‡Ð° "РадіуÑ" +item.upgrade_screm.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Кричущий вчений" +item.upgrade_shredder.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Подрібнювач" +item.upgrade_smelter.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "Переплавка" +item.upgrade_speed_1.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ШвидкіÑть" тип â„–1 +item.upgrade_speed_2.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ШвидкіÑть" тип â„–2 +item.upgrade_speed_3.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ "ШвидкіÑть" тип â„–3 +item.upgrade_stack_1.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ñ‚Ñгувача "Стек" тип â„–1 +item.upgrade_stack_2.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ñ‚Ñгувача "Стек" тип â„–2 +item.upgrade_stack_3.name=ÐŸÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ñ‚Ñгувача "Стек" тип â„–3 +item.upgrade_template.name=Шаблон Ð¿Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð¸ +item.volcanic_axe.name=Розплавлена ​​Ñокира +item.volcanic_pickaxe.name=Розплавлене кайло +item.wand_d.name=Ðалагоджувальна паличка +item.wand_k.name=Будівельна паличка +item.wand_s.name=Структурна паличка +item.structure_custommachine.name=Custom Machine Structure Output Wand +item.warhead_buster_large.name=Велика бетонобійно-фугаÑна боєголовка +item.warhead_buster_medium.name=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð±ÐµÑ‚Ð¾Ð½Ð¾Ð±Ñ–Ð¹Ð½Ð¾-фугаÑна боєголовка +item.warhead_buster_small.name=Мала бетонобійно-фугаÑна боєголовка +item.warhead_cluster_large.name=Велика каÑетна боєголовка +item.warhead_cluster_medium.name=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÐ»Ð°Ñтерна боєголовка +item.warhead_cluster_small.name=Мала каÑетна боєголовка +item.warhead_generic_large.name=Велика боєголовка +item.warhead_generic_medium.name=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð±Ð¾Ñ”Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° +item.warhead_generic_small.name=Мала боєголовка +item.warhead_incendiary_large.name=Велика запальбвальна боєголовка +item.warhead_incendiary_medium.name=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð·Ð°Ð¿Ð°Ð»ÑŒÐ±Ð²Ð°Ð»ÑŒÐ½Ð° боєголовка +item.warhead_incendiary_small.name=Мала запальбвальна боєголовка +item.warhead_mirv.name=ТермоÑдерна боєголовка +item.warhead_mirvlet.name=MIRV +item.warhead_nuclear.name=Ядерна боєголовка +item.warhead_thermo_endo.name=Ендотермічна боєголовка +item.warhead_thermo_exo.name=Екзотермічна боєголовка +item.warhead_volcano.name=Тектонічна боєголовка +item.waste_mox.name=Збіднене МОКС-паливо +item.waste_natural_uranium.name=Збіднене природне уранове паливо +item.waste_plate_mox.name=Збіднена МОКС-паливна плаÑтина +item.waste_plate_pu238be.name=Збіднена плутоній-238 берилієва плаÑтина +item.waste_plate_pu239.name=Збіднена паливна плаÑтина виÑокозбагаченого плутонію-239 +item.waste_plate_ra226be.name=Збіднена радій-226 берилієва плаÑтина +item.waste_plate_sa326.name=Збіднена паливна плаÑтина виÑокозбагаченого шрабідію-326 +item.waste_plate_u233.name=Збіднена паливна плаÑтина виÑокозбагаченого урану-233 +item.waste_plate_u235.name=Збіднена паливна плаÑтина виÑокозбагаченого урану-235 +item.waste_plutonium.name=Збіднене плутонієве паливо +item.waste_schrabidium.name=Збіднене шрабідієве паливо +item.waste_thorium.name=Збіднене торієве паливо +item.waste_u235.name=Збіднене паливо урану-235 +item.waste_u233.name=Збіднене паливо урану-233 +item.waste_uranium.name=Збіднене уранове паливо +item.waste_zfb_mox.name=Збіднений цирконієвий швидкий розмножувач МОКС-палива +item.watch.name=Зламаний кишеньковий годинник +item.watch.desc=Маленький Ñиній кишеньковий годинник.$Ðа його Ñклі Ñ” кілька тріщин,$Ñ– бракує деÑких оÑколків.$Він переÑтав цокати о 2:34. +item.watz_pellet.boron.name=Борна поглинаюча гранула +item.watz_pellet.du.name=Поглинаюча гранула зі збідненого урану +item.watz_pellet.hes.name=Ватцз гранула виÑокозбагаченого шрабідію +item.watz_pellet.lead.name=Свинцева поглинаюча гранула +item.watz_pellet.les.name=Ватцз гранула низькозбагаченого шрабідію +item.watz_pellet.mes.name=Ватцз гранула Ñередньозбагаченого шрабідію +item.watz_pellet.mep.name=Ватцз гранула Ñередньозбагаченого плутонію +item.watz_pellet.meu.name=Ватцз гранула Ñередньозбагаченого урану +item.watz_pellet.nqd.name=Enriched Naquadah Watz Pellet +item.watz_pellet.nqr.name=Naquadria Watz Pellet +item.watz_pellet.hen.name=Ватцз гранула виÑокозбагаченого нептунію +item.watz_pellet.schrabidium.name=Ватцз гранула шрабідію +item.watz_pellet_depleted.boron.name=Борна поглинаюча гранула (Збіднена) +item.watz_pellet_depleted.du.name=Поглинаюча гранула зі збідненого урану (Збіднена) +item.watz_pellet_depleted.hes.name=Ватцз гранула виÑокозбагаченого шрабідію (Збіднена) +item.watz_pellet_depleted.lead.name=Свинцева поглинаюча гранула (Збіднена) +item.watz_pellet_depleted.les.name=Ватцз гранула низькозбагаченого шрабідію (Збіднена) +item.watz_pellet_depleted.mes.name=Ватцз гранула Ñередньозбагаченого шрабідію (Збіднена) +item.watz_pellet_depleted.mep.name=Ватцз гранула Ñередньозбагаченого плутонію (Збіднена) +item.watz_pellet_depleted.meu.name=Ватцз гранула Ñередньозбагаченого урану (Збіднена) +item.watz_pellet_depleted.nqd.name=Enriched Naquadah Watz Pellet (Depleted) +item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) +item.watz_pellet_depleted.hen.name=Ватцз гранула виÑокозбагаченого нептунію (Збіднена) +item.watz_pellet_depleted.schrabidium.name=Ватцз гранула шрабідію (Збіднена) +item.wd40.name=VT-40 +item.weapon_bat.name=Стандарт Річарда +item.weapon_bat_nail.name=Кліше +item.weapon_golf_club.name=Клуб роÑійÑьких мафіозі +item.weapon_mod_caliber.bmg50.name=.50 BMG Комплект Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ +item.weapon_mod_caliber.m357.name=.357 Magnum Комплект Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ +item.weapon_mod_caliber.m44.name=.44 Magnum Комплект Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ +item.weapon_mod_caliber.p22.name=.22 LR Комплект Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ +item.weapon_mod_caliber.p45.name=.45 Комплект Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ +item.weapon_mod_caliber.p9.name=9mm Комплект Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ +item.weapon_mod_caliber.r556.name=5.56mm Комплект Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ +item.weapon_mod_caliber.r762.name=7.62mm Комплект Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ +item.weapon_mod_generic.bigmt_damage.name=Оптимізований Ñатурнітовий реÑивер +item.weapon_mod_generic.bigmt_dura.name=ВиÑокоміцні Ñатурнітові деталі +item.weapon_mod_generic.bronze_damage.name=Оптимізований бронзовий реÑивер +item.weapon_mod_generic.bronze_dura.name=ВиÑокоміцні бронзові деталі +item.weapon_mod_generic.desh_damage.name=Оптимізований деш реÑивер +item.weapon_mod_generic.desh_dura.name=ВиÑокоміцні деш деталі +item.weapon_mod_generic.dura_damage.name=Оптимізований реÑивер зі швидкорізальної Ñталі +item.weapon_mod_generic.dura_dura.name=ВиÑокоміцні деталізі швидкорізальної Ñталі +item.weapon_mod_generic.ferro_damage.name=Оптимізований фероурановий реÑивер +item.weapon_mod_generic.ferro_dura.name=ВиÑокоміцні фероуранові деталі +item.weapon_mod_generic.iron_damage.name=Оптимізований залізний реÑивер +item.weapon_mod_generic.iron_dura.name=ВиÑокоміцні залізні деталі +item.weapon_mod_generic.steel_damage.name=Оптимізований Ñталевий реÑивер +item.weapon_mod_generic.steel_dura.name=ВиÑокоміцні Ñталеві деталі +item.weapon_mod_generic.tcalloy_damage.name=Оптимізований реÑивер зі Ñтійкого Ñплаву +item.weapon_mod_generic.tcalloy_dura.name=ВиÑокоміцні деталі зі Ñтійкого Ñплаву +item.weapon_mod_generic.wsteel_damage.name=Оптимізований реÑивер зі збройової Ñталі +item.weapon_mod_generic.wsteel_dura.name=ВиÑокоміцні деталі зі збройової Ñталі +item.weapon_mod_special.bayonet.name=Багнет +item.weapon_mod_special.choke.name=Чок +item.weapon_mod_special.furniture_black.name=Полімерне Ð¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ (Чорне) +item.weapon_mod_special.furniture_green.name=Полімерне Ð¾Ð±Ð»Ð°Ð´Ð½Ð°Ð½Ð½Ñ (Зелене) +item.weapon_mod_special.greasegun.name=Комплект модернізації МаÑлÑнки +item.weapon_mod_special.las_auto.name=Ðвтоматичний реÑивер лазерної гвинтівки +item.weapon_mod_special.las_capacitor.name=Розширений конденÑатор лазерної гвинтівки +item.weapon_mod_special.las_shotgun.name=Розділювач Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ð»Ð°Ð·ÐµÑ€Ð½Ð¾Ñ— гвинтівки +item.weapon_mod_special.saw.name=Ðожівка +item.weapon_mod_special.scope.name=Приціл +item.weapon_mod_special.silencer.name=Глушник +item.weapon_mod_special.skin_saturnite.name=Сатурнітовий Ñкін +item.weapon_mod_special.slowdown.name=ЗубчаÑта передача +item.weapon_mod_special.speedloader.name=Швидкий зарÑджувач +item.weapon_mod_special.speedup.name=Допоміжний електричний двигун +item.weapon_mod_special.stack_mag.name=Подвійний магазин +item.weapon_mod_test.damage.name=DAMAGE UPGRADE +item.weapon_mod_test.firerate.name=FIRE RATE UPGRADE +item.weapon_mod_test.multi.name=MULTI SHOT UPGRADE +item.weapon_mod_test.override_2_5.name=DAMAGE OVERRIDE (2.5) +item.weapon_mod_test.override_5.name=DAMAGE OVERRIDE (5) +item.weapon_mod_test.override_7_5.name=DAMAGE OVERRIDE (7.5) +item.weapon_mod_test.override_10.name=DAMAGE OVERRIDE (10) +item.weapon_mod_test.override_12_5.name=DAMAGE OVERRIDE (12.5) +item.weapon_mod_test.override_15.name=DAMAGE OVERRIDE (15) +item.weapon_mod_test.override_20.name=DAMAGE OVERRIDE (20) +item.weapon_pipe_lead.name=Ручне ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ +item.weapon_pipe_rusty.name=Коректор поведінки +item.weapon_saw.name=ВбивÑтво за ÑприÑÐ½Ð½Ñ Ð»Ñ–ÐºÐ°Ñ€Ñ +item.weaponized_starblaster_cell.name=§cЕнергетичний елемент ЗорÑного блаÑтера§r +item.wild_p.name=Сухий віÑкі "Вайлд ПегаÑ" +item.wings_limp.name=МлÑві крила +item.wings_murk.name=Похмурі крила +item.wire_advanced_alloy.name=Ðадпровідник +item.wire_aluminium.name=Ðлюмінієвий дріт +item.wire_copper.name=Мідний дріт +item.wire_dense.name=Щільний дріт %s +item.wire_fine.name=Дріт %s +item.wire_gold.name=Золотий дріт +item.wire_magnetized_tungsten.name=4000K виÑокотемпературний надпровідник +item.wire_red_copper.name=Червономідний дріт +item.wire_schrabidium.name=Шрабідієвий дріт +item.wire_tungsten.name=Вольфрамовий дріт +item.wiring_red_copper.name=Кабельна котушка +item.wood_gavel.name=Дерев'Ñний молоток +item.wrench.name=Трубний ключ +item.wrench_archineer.name=Гайковий ключ арчінера +item.wrench_flipped.name=Лезо на гайковому ключі +item.xanax.name=КÑÐ°Ð½Ð°ÐºÑ Ð¿Ñ€ÐµÐ¿Ð°Ñ€Ð°Ñ‚ від дігамми +item.xanax.desc=Прибирає 500mDRX дігамма Ð¾Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ +item.zirconium_legs.name=Цирконієві штани + +itemGroup.tabBlocks=NTM Руди та блоки +itemGroup.tabConsumable=NTM Витратні матеріали та ÑпорÑÐ´Ð¶ÐµÐ½Ð½Ñ +itemGroup.tabControl=NTM Елементи машин та паливо +itemGroup.tabMachine=NTM Машини +itemGroup.tabMissile=NTM Ракети та Ñупутники +itemGroup.tabNuke=NTM Бомби +itemGroup.tabParts=NTM РеÑурÑи та запчаÑтини +itemGroup.tabTemplate=NTM Шаблони +itemGroup.tabTest=Nuclear Tech Mod Test Tab +itemGroup.tabWeapon=NTM Ð—Ð±Ñ€Ð¾Ñ Ñ‚Ð° турелі + +pa.idle=ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ +pa.idle.descÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ +pa.running=Запущений +pa.running.desc=Запущений +pa.success=Завершено +pa.success.desc=Завершено +pa.pause_unloaded=Призупинений +pa.pause_unloaded.desc=ЧаÑтинка потрапила до$вивантаженого чанка. Операцію призупинено$доки не будуть завантажені$Ñк чаÑтинка, так Ñ– джерело чаÑтинок. +pa.crash_defocus=РозфокуÑуваннÑ! +pa.crash_defocus.desc=ЧаÑтинка втратила фокуÑ.$ПереконайтеÑÑ, що приÑкорювач має доÑтатню кількіÑть квадрупольних магнітів. +pa.crash_derail=Схід з рейок! +pa.crash_derail.desc=ЧаÑтинка покинула приÑкорювач.$ПереконайтеÑÑ, що вÑÑ– деталі на міÑці,$Ñ– що диполі налаштовані правильно. +pa.crash_cannot_enter=Відмовлено! +pa.crash_cannot_enter.desc=ЧаÑтинка намагалаÑÑ Ð¿Ð¾Ñ‚Ñ€Ð°Ð¿Ð¸Ñ‚Ð¸$в деталь приÑкорювача, але не змогла.$ПереконайтеÑÑ, що вÑÑ– деталі орієнтовані правильно. +pa.crash_nocool=ВідÑутнє охолодженнÑ! +pa.crash_nocool.desc=ЧаÑтинка потрапила в неохолоджувану$деталь приÑкорювача. ПереконайтеÑÑ, що вÑÑ– охолоджувані$деталі з'єднані та заповнені$холодним перфторметилом. +pa.crash_nopower=ВідÑутнє живленнÑ! +pa.crash_nopower.desc=ЧаÑтинка потрапила в знеÑтрумлену$деталь приÑкорювача. ПереконайтеÑÑ, що вÑÑ– деталі$отримують живленнÑ, Ñ– що джерело$Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ñтатнє. +pa.crash_nocoil=ВідÑутні катушки! +pa.crash_nocoil.desc=ЧаÑтинка потрапила в диполь$або квадруполь, у Ñкому відÑутні котушки.$Ð’Ñтановіть котушки, щоб Ñ†Ñ Ð´ÐµÑ‚Ð°Ð»ÑŒ працювала. +pa.crash_overspeed=ÐŸÐµÑ€ÐµÐ²Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ñті! +pa.crash_overspeed.desc=ЧаÑтинка увійшла в диполь$або квадруполь, а Ñ—Ñ— швидкіÑть перевищила$номінальну потужніÑть котушки. Ð’Ñтановіть котушки$вищого Ñ€Ñ–Ð²Ð½Ñ Ð°Ð±Ð¾ налаштуйте диполі$так, щоб вони швидше залишали кільце приÑкорювача. +pa.crash_norecipe=ВідÑутній рецепт! +pa.crash_norecipe.desc=ЧаÑтинка потрапила до детектора$з недійÑним набором вхідних даних.$ПереконайтеÑÑ, що вхідні дані джерела чаÑтинок$відповідають дійÑному рецепту. +pa.crash_underspeed=ÐедоÑÑ‚Ð°Ñ‚Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÑ–Ñть! +pa.crash_underspeed.desc=ЧаÑтинка потрапила в детектор$з недоÑтатньою швидкіÑтю длÑ$Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ рецепту. ПереконайтеÑÑ, що$приÑкорювач налаштовано$правильно Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ рецепту. + +potion.hbm_bang=! ! ! +potion.hbm_death=ÐÑÑ‚Ð¾Ð»ÑŒÑ„Ñ–Ð·Ð°Ñ†Ñ–Ñ +potion.hbm_lead=ÐžÑ‚Ñ€ÑƒÑ”Ð½Ð½Ñ Ñвинцем +potion.hbm_mutation=Отруєнне порчею Ñердце +potion.hbm_phosphorus=ФоÑфорні опіки +potion.hbm_potionsickness=СлабкіÑть піÑÐ»Ñ Ð»Ñ–ÐºÑ–Ð² +potion.hbm_radaway=Ðнтирадін +potion.hbm_radiation=ÐžÐ¿Ñ€Ð¾Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ +potion.hbm_radx=Рад-X +potion.hbm_stability=СтабільніÑть +potion.hbm_taint=ÐžÑ‚Ñ€ÑƒÑ”Ð½Ð½Ñ Ð¿Ð¾Ñ€Ñ‡ÐµÑŽ +potion.hbm_telekinesis=! ! ! + +radar.clearMap=ОчиÑтити карту +radar.detectMissiles=ВиÑвлÑти ракети +radar.detectPlayers=ВиÑвлÑти гравців +radar.detectShells=ВиÑвлÑти ÑнарÑди +radar.redMode=РедÑтоун режим$Ввімк: Вихідний редÑтоун Ñигнал залежить від дальноÑті$Вимк: Вихідний редÑтоун Ñигнал залежить від Ñ€Ñ–Ð²Ð½Ñ +radar.showMap=Відобразити карту +radar.smartMode=Розумний режим$Вихідний редÑтоун Ñигнал ігнорує виÑхідні ракети +radar.toggleGui=Переключити режим + +radar.target.abm=ПротибаліÑтична ракета +radar.target.custom10=Ракета 10-го розміру +radar.target.custom1015=Ракета 10/15 розміру +radar.target.custom15=Ракета 15-го розміру +radar.target.custom1520=Ракета 15/20 розміру +radar.target.custom20=Ракета 20-го розміру +radar.target.doomsday=Ракета Судного Ð´Ð½Ñ +radar.target.shuttle=КоÑмічний корабель "Ðадійний Робін" +radar.target.tier0=Ракета 0-го Ñ€Ñ–Ð²Ð½Ñ +radar.target.tier1=Ракета 1-го Ñ€Ñ–Ð²Ð½Ñ +radar.target.tier2=Ракета 2-го Ñ€Ñ–Ð²Ð½Ñ +radar.target.tier3=Ракета 3-го Ñ€Ñ–Ð²Ð½Ñ +radar.target.tier4=Ракета 4-го Ñ€Ñ–Ð²Ð½Ñ + +rbmk.heat=Температура каналу: %s +rbmk.boiler.water=Вода: %s / %s +rbmk.boiler.steam=Пара: %s / %s +rbmk.boiler.type=СтиÑненнÑ: %s +rbmk.console.assign=Призначити обрані канали до екрану #%s +rbmk.console.none=Вимк. +rbmk.console.col_temp=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ñ‚ÐµÐ¼Ð¿ÐµÑ€Ð°Ñ‚ÑƒÑ€Ð° каналів +rbmk.console.rod_extraction=Середній вихід керуючих Ñтрижнів +rbmk.console.fuel_depletion=Середнє Ð·Ð±Ñ–Ð´Ð½ÐµÐ½Ð½Ñ Ð¿Ð°Ð»Ð¸Ð²Ð° +rbmk.console.fuel_poison=Середнє кÑенонове Ð¾Ñ‚Ñ€ÑƒÑ”Ð½Ð½Ñ +rbmk.console.fuel_temp=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ñ‚ÐµÐ¼Ð¿ÐµÑ€Ð°Ñ‚ÑƒÑ€Ð° палива +rbmk.control.level=%s +rbmk.control.red=§cЧервона група +rbmk.control.yellow=§eЖовта група +rbmk.control.green=§aЗелена група +rbmk.control.blue=§1Ð¡Ð¸Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð° +rbmk.control.purple=§5Фіолетова група +rbmk.moderated=Сповільнено +rbmk.rod.depletion=ЗбідненнÑ: %s +rbmk.rod.xenon=КÑенонове отруєннÑ: %s +rbmk.rod.coreTemp=Температура ÑтрижнÑ: %s +rbmk.rod.skinTemp=Температура оболонки ÑтрижнÑ: %s / %s +rbmk.screen.core=Ядро: %s +rbmk.screen.depletion=Збідн: %s +rbmk.screen.rod=Контроль: %s +rbmk.screen.temp=Темп: %s +rbmk.screen.xenon=КÑенон: %s + +shape.barrelHeavy=Важкий Ñтвол +shape.barrelLight=Легкий Ñтвол +shape.billet=Заготовка +shape.blade=Лопать +shape.blades=Леза подрібнювача +shape.block=Блок +shape.c9=Гільза малого калібру +shape.c50=Гільза великого калібру +shape.dust=Порошок +shape.dusttiny=Купка пилу +shape.grip=РукоÑтка +shape.gunMechanism=Механізм +shape.hull_big=Велика оболонка +shape.hull_small=Мала оболонка +shape.ingot=Зливок +shape.nugget=Самородок +shape.quantum=Квант +shape.quart=Четвертина блоку +shape.receiverHeavy=Важкий реÑивер +shape.receiverLight=Легкий реÑивер +shape.ntmpipe=Труба +shape.plate=ПлаÑтина +shape.plateTriple=Лита плаÑтина +shape.shell=Оболонка +shape.stamp=Штамп преÑу +shape.stock=Приклад +shape.wireFine=Дроти +shape.wireDense=Щільний дріт +shape.wiresDense=Щільні дроти + +soundCategory.ntmMachines=NTM Machines + +stat.ntmBullets=Випущено набоїв +stat.ntmLegendary=Створено легендарних предметів +stat.ntmMines=Підривів на мінах + +tile.absorber.name=Поглинач радіації +tile.absorber_green.name=УдоÑконалений поглинач радіації +tile.absorber_pink.name=Елітний поглинач радіації +tile.absorber_red.name=Покращений поглинач радіації +tile.acid_block.name=КиÑлота +tile.ams_base.name=AMS Base (Deco) +tile.ams_emitter.name=AMS Emitter (Deco) +tile.ams_limiter.name=AMS Stabilizer (Deco) +tile.ancient_scrap.name=Стародавній металобрухт +tile.anvil_arsenic_bronze.name=Ковадло з миш'Ñкової бронзи +tile.anvil_bismuth.name=Ð’Ñ–Ñмутове ковадло +tile.anvil_bismuth_bronze.name=Ковадло з віÑмутової бронзи +tile.anvil_desh.name=Деш ковадло +tile.anvil_dnt.name=Динейтронієве ковадло +tile.anvil_ferrouranium.name=Фероуранове ковадло +tile.anvil_iron.name=Залізне ковадло +tile.anvil_lead.name=Свинцеве ковадло +tile.anvil_meteorite.name=Метеоритне ковадло +tile.anvil_murky.name=Похмуре ковадло +tile.anvil_osmiridium.name=Ковадло з ÑÑмиÑтого іридію +tile.anvil_saturnite.name=Сатурнітове ковадло +tile.anvil_schrabidate.name=Ферошрабідатове ковадло +tile.anvil_starmetal.name=Ковадло з зіркового металу +tile.anvil_steel.name=Сталеве ковадло +tile.ash_digamma.name=Попіл +tile.asphalt.name=ÐÑфальт +tile.asphalt_stairs.name=ÐÑфальтові Ñходи +tile.asphalt_light.name=СвітлоаÑфальт +tile.barbed_wire.name=Колючий дріт +tile.barbed_wire_acid.name=Їдкий колючий дріт +tile.barbed_wire_fire.name=Підпалюючий колючий дріт +tile.barbed_wire_poison.name=Отруєний колючий дріт +tile.barbed_wire_ultradeath.name=Радіоактивний колючий дріт +tile.barbed_wire_wither.name=ВиÑушуючий колючий дріт +tile.barrel_antimatter.name=Магнітний контейнер Ð´Ð»Ñ Ð°Ð½Ñ‚Ð¸Ð¼Ð°Ñ‚ÐµÑ€Ñ–Ñ— +tile.barrel_corroded.name=Проржавіла бочка +tile.barrel_iron.name=Залізна бочка +tile.barrel_plastic.name=Безпечна бочка™ +tile.barrel_steel.name=Сталева бочка +tile.barrel_tcalloy.name=Бочка з технецієвої Ñталі +tile.barricade.name=Мішки з піÑком +tile.basalt.name=Базальт +tile.basalt_brick.name=Базальтова цегла +tile.basalt_polished.name=Полірований базальт +tile.basalt_smooth.name=Гладкий базальт +tile.basalt_tiles.name=Базальтові кахлі +tile.blast_door.name=РозÑувні захиÑні двері +tile.block_actinium.name=Блок актинію +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_cadmium.name=Блок кадмію +tile.block_cap_fritz.name=Блок кришок від плÑшок Фріц-Коли +tile.block_cap_korl.name=Блок кришок від плÑшок Корлу +tile.block_cap_nuka.name=Блок кришок від плÑшок Ядер-Коли +tile.block_cap_quantum.name=Блок кришок від плÑшок Квантової Ядер-Коли +tile.block_cap_rad.name=Блок кришок від плÑшок С~Коли РÐД +tile.block_cap_sparkle.name=Блок кришок від плÑшок С~Коли +tile.block_cap_star.name=Block of Sunset Sarsaparilla Star Caps +tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps +tile.block_cdalloy.name=Блок кадмієвої Ñталі +tile.block_cobalt.name=Блок кобальту +tile.block_coke.coal.name=Блок вугільного кокÑу +tile.block_coke.lignite.name=Блок буровугільного кокÑу +tile.block_coke.petroleum.name=Блок нафтового кокÑу +tile.block_coltan.name=Блок колтану +tile.block_combine_steel.name=Блок Ñталі комбайнів +tile.block_copper.name=Блок міді +tile.block_corium.name=Коріум +tile.block_corium_cobble.name=ЯдрÑк xd +tile.block_daffergon.name=Block of Daffergon +tile.block_desh.name=ПоÑилений блок деш +tile.block_dineutronium.name=Блок динейтронію +tile.block_dura_steel.name=ПоÑилений блок швидкорізальної Ñталі +tile.block_electrical_scrap.name=Блок зламаної електротехніки +tile.block_euphemium.name=Блок юхимію +tile.block_euphemium_cluster.name=КлаÑтер шрабідію, витравленого юхимієм +tile.block_fallout.name=Блок радіоактивних опадів +tile.block_fiberglass.name=Рулон ÑклоплаÑтику +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=Блок літію +tile.block_magnetized_tungsten.name=Блок намагніченого вольфраму +tile.block_meteor.name=Метеоритний блок +tile.block_meteor_broken.name=Розбитий метеоритний блок +tile.block_meteor_cobble.name=Метеоритний круглÑк +tile.block_meteor_molten.name=ГарÑчий метеоритний круглÑк +tile.block_meteor_treasure.name=Блок метеоритних Ñкарбів +tile.block_mox_fuel.name=Блок МОКС-палива +tile.block_neptunium.name=Блок нептунію +tile.block_niter.name=Блок нітрату калію +tile.block_niter_reinforced.name=Reinforced Block of Niter +tile.block_niobium.name=Блок ніобію +tile.block_plutonium.name=Блок плутонію +tile.block_plutonium_fuel.name=Блок плутонієвого палива +tile.block_polonium.name=Блок плутонію-210 +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_ra226.name=Блок радію-226 +tile.block_red_copper.name=Блок червоної міді +tile.block_red_phosphorus.name=Блок червоного фоÑфору +tile.block_reiium.name=Block of Reiium +tile.block_rubber.name=Блок гуми +tile.block_schrabidate.name=Блок ферошрабідату +tile.block_schrabidium.name=Блок шрабідію +tile.block_schrabidium_cluster.name=КлаÑтер шрабідію +tile.block_schrabidium_fuel.name=Блок шрабідієвого палива +tile.block_schraranium.name=Блок шраранію +tile.block_scrap.name=Блок брухту +tile.block_semtex.name=Блок СемтекÑу +tile.block_slag.name=Блок шлаку +tile.block_smore.name=Блок Смору +tile.block_solinium.name=Блок Ñолінію +tile.block_starmetal.name=§9Блок зіркового металу§r +tile.block_steel.name=Блок Ñталі +tile.block_sulfur.name=Блок Ñірки +tile.block_tantalium.name=Блок танталу +tile.block_tcalloy.name=Блок технецієвої Ñталі +tile.block_thorium.name=Блок торію-232 +tile.block_thorium_fuel.name=Блок торієвого палива +tile.block_titanium.name=Блок титану +tile.block_trinitite.name=Блок тринітиту +tile.block_tritium.name=Блок трітієвих пробірок +tile.block_tungsten.name=Блок вольфраму +tile.block_u233.name=Блок урану-233 +tile.block_u235.name=Блок урану-235 +tile.block_u238.name=Блок урану-238 +tile.block_unobtainium.name=Block of Unobtainium +tile.block_uranium.name=Блок урану +tile.block_uranium_fuel.name=Блок уранового палива +tile.block_verticium.name=Block of Verticium +tile.block_waste.name=Блок Ñдерних відходів +tile.block_waste_painted.name=Пофарбований блок Ñдерних відходів +tile.block_waste_vitrified.name=ЗаÑклований блок Ñдерних відходів +tile.block_weidanium.name=Block of Weidanium +tile.block_white_phosphorus.name=Блок білого фоÑфору +tile.block_yellowcake.name=Блок Єлоукейку +tile.block_zirconium.name=Блок цирконію +tile.boat.name=Човен +tile.bobblehead.name=Хитайголова +tile.bomb_multi.name=Багатоцільова бомба +tile.bomber.name=Crashed Bomber +tile.book_guide.name=Hbm's Nuclear Tech Mod Manual [LEGACY] +tile.boxcar.name=Вантажний вагон +tile.brick_asbestos.name=ÐзбеÑтова цегла +tile.brick_asbestos_stairs.name=Сходи з азбеÑтової цегли +tile.brick_compound.name=Комбінована Ñітка +tile.brick_compound_stairs.name=Сходи з комбінованої Ñітки +tile.brick_concrete.name=Бетонна цегла +tile.brick_concrete_stairs.name=Сходи з бетонної цегли +tile.brick_concrete_broken.name=Розбита бетонна цегла +tile.brick_concrete_broken_stairs.name=Сходи з розбитої бетонної цегли +tile.brick_concrete_cracked.name=ТріÑнута бетонна цегла +tile.brick_concrete_cracked_stairs.name=Сходи з тріÑнутої бетонної цегли +tile.brick_concrete_marked.name=ПопиÑана бетонна цегла +tile.brick_concrete_mossy.name=Бетонна цегла з мохом +tile.brick_concrete_mossy_stairs.name=Сходи з моховитої бетонної цегли +tile.brick_ducrete.name=Уранобетонна цегла +tile.brick_ducrete_stairs.name=Сходи з уранобетонної цегли +tile.brick_dungeon.name=Berzelianite Bricks +tile.brick_dungeon_circle.name=Berzelianite Cirlce +tile.brick_dungeon_flat.name=Berzelianite Block +tile.brick_dungeon_tile.name=Berzelianite Tile +tile.brick_fire.name=Вогнетривка цегла +tile.brick_fire_stairs.name=Сходи з вогнетривкої цегли +tile.brick_jungle.name=Енаргітова цегла +tile.brick_jungle_circle.name=Коло МеханіÑта +tile.brick_jungle_cracked.name=ТріÑнута енаргітова цегла +tile.brick_jungle_fragile.name=Крихка енаргітова цегла +tile.brick_jungle_glyph.name=Енаргітова цегла з гліфом +tile.brick_jungle_lava.name=Магматична енаргітова цегла +tile.brick_jungle_mystic.name=Таємнича енаргітова цегла +tile.brick_jungle_ooze.name=Радіоактивна енаргітова цегла +tile.brick_jungle_trap.name=Енаргітова цегла з паÑткою +tile.brick_light.name=Світла цегла +tile.brick_light_stairs.name=Сходи зі Ñвітлої цегли +tile.brick_obsidian.name=ОбÑидіанова цегла +tile.brick_obsidian_stairs.name=Сходи з обÑидіанової цегли +tile.brick_red.name=Цегла червоної кімнати +tile.brick_slab.brick_asbestos.name=Плита з азбеÑтової цегли +tile.brick_slab.brick_compound.name=Плита з комбінованої Ñітки +tile.brick_slab.brick_fire.name=Плита з вогнетривкої цегли +tile.brick_slab.brick_light.name=Плита зі Ñвітлої цегли +tile.brick_slab.brick_obsidian.name=Плита з обÑидіанової цегли +tile.brick_slab.reinforced_brick.name=Плита з армованого каменю +tile.brick_slab.reinforced_stone.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.capacitor_bus.name=КонденÑаторна шина +tile.capacitor_bus.desc=Вихідний блок Ð´Ð»Ñ ÐºÐ¾Ð½Ð´ÐµÐ½Ñаторів$Можна з'єднати у прÑму лінію +tile.capacitor_copper.name=Мідний конденÑатор +tile.capacitor_gold.name=Золотий конденÑатор +tile.capacitor_niobium.name=Ðіобієвий конденÑатор +tile.capacitor_schrabidate.name=Шрабідатовий конденÑатор +tile.capacitor_tantalium.name=Танталовий конденÑатор +tile.capacitor.desc=Вхід: Згори$Вихід: знизу, через конденÑаторну шину +tile.charge_c4.name=ЗарÑд С-4 +tile.charge_dynamite.name=Бомба уповільненої дії +tile.charge_miner.name=ШахтарÑький зарÑд уповільненої дії +tile.charge_semtex.name=Ð¡ÐµÐ¼Ñ‚ÐµÐºÑ Ð·Ð°Ñ€Ñд уповільненої дії +tile.charger.name=ЗарÑдна ÑÑ‚Ð°Ð½Ñ†Ñ–Ñ +tile.cheater_virus.name=Gelid Euphemium +tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block +tile.chimney_brick.name=Димова труба +tile.chimney_brick.desc=ПідключаєтьÑÑ Ð´Ð¾ забруднюючих машин$ за допомогою вихлопних труб$Зменшує викиди забруднюючих речовин на 75%% +tile.chimney_industrial.name=ПромиÑлова димова труба +tile.chimney_industrial.desc=ПідключаєтьÑÑ Ð´Ð¾ забруднюючих машин$ за допомогою вихлопних труб$Зменшує викиди забруднюючих речовин на 90%% +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=Глибинний клаÑтер вольфрамової руди +tile.cluster_iron.name=КлаÑтер залізної руди +tile.cluster_titanium.name=КлаÑтер титанової руди +tile.custom_machine_anchor.name=Якір Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñтрукції каÑтомної машини +tile.cm_block.alloy.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ Ð¼Ð°ÑˆÐ¸Ð½Ð¸ з удоÑконаленого Ñплаву (CM) +tile.cm_block.desh.name=Деш ÐºÐ¾Ñ€Ð¿ÑƒÑ Ð¼Ð°ÑˆÐ¸Ð½Ð¸ (CM) +tile.cm_block.steel.name=Сталевий ÐºÐ¾Ñ€Ð¿ÑƒÑ Ð¼Ð°ÑˆÐ¸Ð½Ð¸ (CM) +tile.cm_block.tcalloy.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ Ð¼Ð°ÑˆÐ¸Ð½Ð¸ з технецієвої Ñталі (CM) +tile.cm_circuit.aluminium.name=Блок Ñхема 1 Ñ€Ñ–Ð²Ð½Ñ (CM) +tile.cm_circuit.copper.name=Блок Ñхема 2 Ñ€Ñ–Ð²Ð½Ñ (CM) +tile.cm_circuit.gold.name=Блок Ñхема 4 Ñ€Ñ–Ð²Ð½Ñ (CM) +tile.cm_circuit.red_copper.name=Блок Ñхема 3 Ñ€Ñ–Ð²Ð½Ñ (CM) +tile.cm_circuit.schrabidium.name=Блок Ñхема 5 Ñ€Ñ–Ð²Ð½Ñ (CM) +tile.cm_engine.bismuth.name=Ð’Ñ–Ñмутовий моторний блок (CM) +tile.cm_engine.desh.name=Деш моторний блок (CM) +tile.cm_engine.standard.name=Моторний блок (CM) +tile.cm_flux.name=Приймач потоку нейтронів (CM) +tile.cm_heat.name=Теплоприймач (CM) +tile.cm_port.alloy.name=Порт з удоÑконаленого Ñплаву (CM) +tile.cm_port.desh.name=Деш порт (CM) +tile.cm_port.steel.name=Сталевий порт (CM) +tile.cm_port.tcalloy.name=Порт з технецієвої Ñталі (CM) +tile.cm_sheet.alloy.name=ЛиÑÑ‚ з удоÑконаленого Ñплаву (CM) +tile.cm_sheet.desh.name=Деш лиÑÑ‚ (CM) +tile.cm_sheet.steel.name=Сталевий лиÑÑ‚ (CM) +tile.cm_sheet.tcalloy.name=ЛиÑÑ‚ з технецієвої Ñталі (CM) +tile.cm_tank.alloy.name=Бак з удоÑконаленого Ñплаву (CM) +tile.cm_tank.desh.name=Деш бак (CM) +tile.cm_tank.steel.name=Сталевий бак (CM) +tile.cm_tank.tcalloy.name=Бак з технецієвої Ñталі (CM) +tile.cmb_brick.name=Плитка зі Ñталі комбайнів +tile.cmb_brick_reinforced.name=Ðрмована цегла комбайнів +tile.compact_launcher.name=Компактний Ñтартовий майданчик +tile.concrete.name=Бетонна плитка +tile.concrete_asbestos.name=ÐзбеÑтобетон +tile.concrete_asbestos_stairs.name=Сходи з азбеÑтобетону +tile.concrete_brick_slab.brick_concrete.name=Плита з бетонної цегли +tile.concrete_brick_slab.brick_concrete_broken.name=Плита з розбитої бетонної цегли +tile.concrete_brick_slab.brick_concrete_cracked.name=Плита з тріÑнутої бетонної цегли +tile.concrete_brick_slab.brick_concrete_mossy.name=Плита з моховитої бетонної цегли +tile.concrete_brick_slab.brick_ducrete.name=Плита з уранобетонової цегли +tile.concrete_colored.black.name=Чорний бетон +tile.concrete_colored.blue.name=Синій бетон +tile.concrete_colored.brown.name=Коричневий бетон +tile.concrete_colored.cyan.name=Бірюзовий бетон +tile.concrete_colored.gray.name=Сірий бетон +tile.concrete_colored.green.name=Зелений бетон +tile.concrete_colored.lightBlue.name=Блакитний бетон +tile.concrete_colored.lime.name=Світло-зелений бетон +tile.concrete_colored.magenta.name=Пурпуровий бетон +tile.concrete_colored.orange.name=Помаранчевий бетон +tile.concrete_colored.pink.name=Рожевий бетон +tile.concrete_colored.purple.name=Фіолетовий бетон +tile.concrete_colored.red.name=Червоний бетон +tile.concrete_colored.silver.name=Світло-Ñірий бетон +tile.concrete_colored.white.name=Білий бетон +tile.concrete_colored.yellow.name=Жовтий бетон +tile.concrete_colored_ext.bronze.name=Бетон "Вибір будівельника" - Бронзове Ð¿Ð¾ÐºÑ€Ð¸Ñ‚Ñ‚Ñ +tile.concrete_colored_ext.hazard.name=Бетон "Вибір будівельника" - Смуги небезпеки +tile.concrete_colored_ext.indigo.name=Бетон "Вибір будівельника" - Глибокий індиго +tile.concrete_colored_ext.machine.name=Бетон "Вибір будівельника" - ПромиÑловий відтінок +tile.concrete_colored_ext.machine_stripe.name=Бетон "Вибір будівельника" - ПромиÑлова Ñмуга +tile.concrete_colored_ext.pink.name=Бетон "Вибір будівельника" - Мужній рожевий +tile.concrete_colored_ext.purple.name=Бетон "Вибір будівельника" - Таємничий фіолетовий +tile.concrete_colored_ext.sand.name=Бетон "Вибір будівельника" - Ð‘ÑƒÑ€Ñ Ð² пуÑтелі +tile.concrete_pillar.name=Ðрмована залізобетонна колона +tile.concrete_slab.asphalt.name=Плита з аÑфальту +tile.concrete_slab.concrete.name=Плита з бетонної плитки +tile.concrete_slab.concrete_asbestos.name=Плита з азбеÑтобетону +tile.concrete_slab.concrete_smooth.name=Плита з бетону +tile.concrete_slab.ducrete.name=Плита з уранобетонної плитки +tile.concrete_slab.ducrete_smooth.name=Плита з уранобетону +tile.concrete_smooth.name=Бетон +tile.concrete_smooth_stairs.name=Сходи з бетону +tile.concrete_stairs.name=Сходи з бетонної плитки +tile.concrete_super.name=Убербетон +tile.concrete_super_broken.name=ЗапліÑнÑвілі уламки +tile.conveyor.name=Conveyor Belt +tile.conveyor.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_chute.name=Conveyor Chute +tile.conveyor_chute.desc=Moves items down$The bottom-most chute will act like a regular conveyor belt +tile.conveyor_double.name=Double-Lane Conveyor Belt +tile.conveyor_double.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_express.name=Express Conveyor Belt +tile.conveyor_express.desc=Moves items dropped on it very fast$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_lift.name=Conveyor Chain Lift +tile.conveyor_lift.desc=Moves items up$Requires at least two blocks on top of each other to work properly +tile.conveyor_triple.name=Triple-Lane Conveyor Belt +tile.conveyor_triple.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.corium_block.name=Коріум +tile.crane_boxer.name=Конвеєрний пакувальник +tile.crane_boxer.desc=Пакує налаштовану кількіÑть Ñтаків у коробки та розміщує Ñ—Ñ… на конвеєрних Ñтрічках$Клацніть правою кнопкою миші за допомогою викрутки, щоб вÑтановити Ñторону введеннÑ$Клацніть з шифтом за допомогою викрутки, щоб вÑтановити Ñторону виведеннÑ$Клацніть двічі, щоб вÑтановити протилежну Ñторону +tile.crane_extractor.name=Конвеєрний витÑгувач +tile.crane_extractor.desc=Бере предмети з контейнеру та розміщує Ñ—Ñ… на конвеєрних Ñтрічках$Має до 9 Ñлотів Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ñ–Ð² з чорним та білим ÑпиÑками$Клацніть правою кнопкою миші за допомогою викрутки, щоб вÑтановити Ñторону виведеннÑ$Клацніть з шифтом за допомогою викрутки, щоб вÑтановити Ñторону введеннÑ$Клацніть двічі, щоб вÑтановити протилежну Ñторону +tile.crane_grabber.name=Конвеєрний збирач +tile.crane_grabber.desc=Збирає предмети з конвеєрів що проходÑть та розміщує Ñ—Ñ… у контейнер$Буде брати предмети лише з найближчої Ñтрічки$Має до 9 Ñлотів Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ñ–Ð² з чорним та білим ÑпиÑками$Клацніть правою кнопкою миші за допомогою викрутки, щоб вÑтановити Ñторону введеннÑ$Клацніть з шифтом за допомогою викрутки, щоб вÑтановити Ñторону виведеннÑ$Клацніть двічі, щоб вÑтановити протилежну Ñторону +tile.crane_inserter.name=Конвеєрний вÑтавник +tile.crane_inserter.desc=Приймає предмети з конвеєру та розміщує Ñ—Ñ… у контейнеру$Клацніть правою кнопкою миші за допомогою викрутки, щоб вÑтановити Ñторону введеннÑ$Клацніть з шифтом за допомогою викрутки, щоб вÑтановити Ñторону виведеннÑ$Клацніть двічі, щоб вÑтановити протилежну Ñторону +tile.crane_partitioner.name=Розділювач входу окиÑлювача +tile.crane_partitioner.desc=Receives and stores up to nine Ore Acidizer inputs$and releases them if they match the required input size.$Invalid items are also saved, and need to be extracted from the side. $ Ñ Ð½Ðµ їбу що це +tile.crane_router.name=Конвеєрний Ñортувальник +tile.crane_router.desc=Сортує предмети на оÑнові визначених критеріїв$Сторони можна визначити Ñк чорний ÑпиÑок, білий ÑпиÑок або вÑе інше$Сторона з уÑім іншим обираєтьÑÑ Ð»Ð¸ÑˆÐµ тоді коли нема збігів у фільтрах +tile.crane_splitter.name=Конвеєрний роздільник +tile.crane_splitter.desc=РозділÑÑ” предмети та рівномірно Ñкладає Ñ—Ñ… на дві конвеєрні Ñтрічки$Є конвеєрною Ñтрічкою, тому може безпоÑередньо з'єднуватиÑÑŒ з вÑтавником або Ñортувальником$Ð¡Ð¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° налаштувати за допомогою викрутки +tile.crane_unboxer.name=Конвеєрний розпакувальник +tile.crane_unboxer.desc=Приймає коробки та витÑгує Ñ—Ñ… вміÑÑ‚$Клацніть правою кнопкою миші за допомогою викрутки, щоб вÑтановити Ñторону виведеннÑ$Клацніть з шифтом за допомогою викрутки, щоб вÑтановити Ñторону введеннÑ$Клацніть двічі, щоб вÑтановити протилежну Ñторону +tile.crashed_bomb.name=Ðевибухнувша бомба +tile.crate.name=Ящик з припаÑами +tile.crate_ammo.name=Ящик з зорÑного металу +tile.crate_can.name=Ящик з конÑервами +tile.crate_desh.name=Деш Ñщик +tile.crate_iron.name=Залізний Ñщик +tile.crate_jungle.name=Енаргітовий Ñщик +tile.crate_lead.name=Ящик з небезпечними матеріалами +tile.crate_metal.name=Ящик з механізмами +tile.crate_red.name=Червоний Ñщик +tile.crate_steel.name=Сталевий Ñщик +tile.crate_supply.name=Ящик з припаÑами +tile.crate_template.name=Ящик з шаблонами +tile.crate_tungsten.name=Вольфрамовий Ñщик +tile.crate_weapon.name=Ящик зі зброєю +tile.crystal_hardened.name=Загартований темний криÑтал +tile.crystal_pulsar.name=ПульÑуючий криÑтал +tile.crystal_virus.name=Темний криÑтал +tile.deco_aluminium.name=Ðлюмінієвий декоративний блок +tile.deco_asbestos.name=ÐзбеÑтоцементний шифер +tile.deco_beryllium.name=Берилієвий декоративний блок +tile.deco_computer.ibm_300pl.name=ПерÑональний комп'ютер IBM PC 300PL +tile.deco_crt.name=Старий ЕПТ екран +tile.deco_emitter.name=Декоративний випромінювач Ñвітла +tile.deco_lead.name=Свинцевий декоративний блок +tile.deco_loot.name=Купа Ñкарбів +tile.deco_rbmk.name=Декоративний блок РБМК +tile.deco_rbmk_smooth.name=Гладкий декоративний блок РБМК +tile.deco_red_copper.name=Червономідний декоративний блок +tile.deco_pipe.name=Сталева труба +tile.deco_pipe_rusted.name=Іржава Ñталева труба +tile.deco_pipe_green.name=Зелена Ñталева труба +tile.deco_pipe_green_rusted.name=Іржава зелена Ñталева труба +tile.deco_pipe_red.name=Червона Ñталева труба +tile.deco_pipe_marked.name=Газова труба +tile.deco_pipe_framed.name=Сталева труба (КаркаÑна) +tile.deco_pipe_framed_rusted.name=Іржава Ñталева труба (КаркаÑна) +tile.deco_pipe_framed_green.name=Зелена Ñталева труба (КаркаÑна) +tile.deco_pipe_framed_green_rusted.name=Іржава зелена Ñталева труба (КаркаÑна) +tile.deco_pipe_framed_red.name=Червона Ñталева труба (КаркаÑна) +tile.deco_pipe_framed_marked.name=Газова труба (КаркаÑна) +tile.deco_pipe_quad.name=Сталеві труби +tile.deco_pipe_quad_rusted.name=Іржаві Ñталеві труби +tile.deco_pipe_quad_green.name=Зелені Ñталеві труби +tile.deco_pipe_quad_green_rusted.name=Іржаві зелені Ñталеві труби +tile.deco_pipe_quad_red.name=Червоні Ñталеві труби +tile.deco_pipe_quad_marked.name=Газові труби +tile.deco_pipe_rim.name=Сталева труба (Обрамлена) +tile.deco_pipe_rim_rusted.name=Іржава Ñталева труба (Обрамлена) +tile.deco_pipe_rim_green.name=Зелена Ñталева труба (Обрамлена) +tile.deco_pipe_rim_green_rusted.name=Іржава зелена Ñталева труба (Обрамлена) +tile.deco_pipe_rim_red.name=Червона Ñталева труба (Обрамлена) +tile.deco_pipe_rim_marked.name=Газова труба (Обрамлена) +tile.deco_steel.name=Сталевий декоративний блок +tile.deco_rusty_steel.name=Іржавий Ñталевий декоративний блок +tile.deco_titanium.name=Титановий декоративний блок +tile.deco_toaster.name=Зламаний тоÑтер +tile.deco_tungsten.name=Вольфрамовий декоративний блок +tile.decon.name=Знезаражувач Ð³Ñ€Ð°Ð²Ñ†Ñ +tile.depth_brick.name=Глибинна цегла +tile.depth_dnt.name=ПоÑилена динейтронієм глибинна цегла +tile.depth_nether_brick.name=Пекельна глибинна цегла +tile.depth_nether_tiles.name=Пекельна глибинна плитка +tile.depth_tiles.name=Глибинна плитка +tile.det_charge.name=Вибуховий зарÑд +tile.det_cord.name=Детонуючий шнур +tile.det_miner.name=ШахтарÑький зарÑд +tile.det_nuke.name=Ядерний зарÑд +tile.dfc_core.name=Ядро реактору темного Ñинтезу +tile.dfc_emitter.name=Випромінювач рекатору темного Ñинтезу +tile.dfc_injector.name=Паливний інжектор рекатору темного Ñинтезу +tile.dfc_receiver.name=Приймач рекатору темного Ñинтезу +tile.dfc_stabilizer.name=Стабілізатор рекатору темного Ñинтезу +tile.dirt_dead.name=Мертвий ґрунт +tile.dirt_oily.name=Ðафтовий ґрунт +tile.drill_pipe.name=Бурильна труба +tile.drone_crate.name=Ящик Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ñпортних дронів +tile.drone_crate.desc=Пункт Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° Ñ€Ð¾Ð·Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚Ñ€Ð°Ð½Ñпортних дронів.$Діє Ñк маршрутна точка, має бути пов’Ñзана з лінкером дронів.$Дрони повинні підлітати під великим кутом, інакше вони заÑтрÑгнуть. +tile.drone_crate_provider.name=Ящик логіÑтичний поÑтачальник +tile.drone_crate_provider.desc=Пропонує предмети логіÑтичній мережі.$ЛогіÑтичні дрони намагатимутьÑÑ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÑƒÐ²Ð°Ñ‚Ð¸ предмети від поÑтачальників до Ñщиків замовників. +tile.drone_crate_requester.name=Ящик логічÑтичний замовник +tile.drone_crate_requester.desc=Запитує предмети з логіÑтичної мережі.$Предмети, додані до фільтра, будуть замовлені, Ñкщо Ñ—Ñ… немає в інвентарі. +tile.drone_dock.name=Док логіÑтичних дронів +tile.drone_dock.desc=Точка поÑви логіÑтичних дронів.$Може виÑвлÑти лише поÑтачальників та запитувачів у радіуÑÑ– 5 чанків.$Дрони відÑтежуватимуть лише до 10 маршрутних точок за з'єднаннÑ. +tile.drone_waypoint.name=Точка маршруту транÑпортних дронів +tile.drone_waypoint.desc=Точка маршруту Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ñпортних дронів$ВикориÑтовуйте лінкер транÑпортних дронів, щоб вÑтановити шлÑÑ…$Клацніть кожну маршрутну точку та Ñщик поÑлідовно, щоб Ñтворити шлÑÑ…,$потім клацніть з шифтом, щоб очиÑтити збережену позицію$Клацніть правою кнопкою миші або з шифтом по маршрутній точці, щоб змінити Ñ—Ñ— Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ +tile.drone_waypoint_request.name=Точка маршруту логіÑтичних дронів +tile.door_bunker.name=Бункерні двері +tile.door_metal.name=Металеві двері +tile.door_office.name=ОфіÑні двері +tile.door_red.name=Червоні двері +tile.ducrete.name=Уранобетонна плитка +tile.ducrete_stairs.name=Сходи з уранобетонної плитки +tile.ducrete_smooth.name=Уранобетон +tile.ducrete_smooth_stairs.name=Сходи з уранобетону +tile.dummy_block.name=Dummy Block +tile.dummy_port.name=Dummy Block (Electricity Port) +tile.dungeon_chain.name=Металевий ланцюг +tile.dynamite.name=Динаміт +tile.emp_bomb.name=ПриÑтрій електромагнітного іпульÑу +tile.factory_advanced_conductor.name=Advanced Factory Electricity Port +tile.factory_advanced_core.name=Advanced Factory Core Component +tile.factory_advanced_furnace.name=Advanced Factory Access Hatch +tile.factory_advanced_hull.name=ЗаводÑький блок +tile.factory_titanium_conductor.name=Basic Factory Electricity Port +tile.factory_titanium_core.name=Basic Factory Core Component +tile.factory_titanium_furnace.name=Basic Factory Access Hatch +tile.factory_titanium_hull.name=ЗаводÑький блок +tile.fallout.name=Радіоактивні опади +tile.fan.name=ВентилÑтор +tile.fan.desc=ÐктивуєтьÑÑ Ð·Ð° допомогою редÑтоуну$Піднімає об'єкти на 10 блоків$Клацніть правою кнопкою миші викруткою, щоб перевернути +tile.fence_metal.name=Огорожа Ñ€Ð°Ð±Ð¸Ñ†Ñ +tile.fence_metal_post.name=Огорожа Ñ€Ð°Ð±Ð¸Ñ†Ñ Ñтовп +tile.field_disturber.name=Заглушник виÑокоенергетичного Ð¿Ð¾Ð»Ñ +tile.filing_cabinet.green.name=Запилена картотечна шафа +tile.filing_cabinet.steel.name=Сталева картотечна шафа +tile.fire_digamma.name=ЗатÑжна Дігамма +tile.fire_door.name=Протипожежні двері +tile.fireworks.name=Ð‘Ð°Ñ‚Ð°Ñ€ÐµÑ Ñ„ÐµÑ”Ñ€Ð²ÐµÑ€ÐºÑ–Ð² +tile.fireworks.charges=Завантажено зарÑдів: %s +tile.fireworks.message=ПовідомленнÑ: %s +tile.fireworks.color=Колір: %s +tile.fissure_bomb.name=Бомба фіÑура +tile.flame_war.name=Полум'Ñна війна в коробці +tile.float_bomb.name=Левітаційна бомба +tile.floodlight.name=Потужний прожектор +tile.fluid_duct.name=УніверÑальний рідинний трубопровід (ЗаÑтаріло) +tile.fluid_duct_box.name=УніверÑальний рідинний трубопровід (Boxduct) +tile.fluid_duct_exhaust.name=Вихлопна труба +tile.fluid_duct_gauge.name=Вимірювальна труба +tile.fluid_duct_gauge.desc=Труба, що показує, Ñкільки рідини$переміщуєтьÑÑ Ð² мережі за один тік.$Розділені мережі, з'єднані бочками$або циÑтернами, вважаютьÑÑ Ð¾Ð´Ð½Ñ–Ñ”ÑŽ Ñпільною мережею. +tile.fluid_duct_neo.name=УніверÑальний рідинний трубопровід +tile.fluid_duct_paintable.name=УніверÑальний рідинний трубопровід з покриттÑм +tile.fluid_duct_solid.name=УніверÑальний рідинний трубопровід з покриттÑм (ЗаÑтаріло) +tile.fluid_pump.name=ÐаÑÐ¾Ñ Ñ€ÐµÐ³ÑƒÐ»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ +tile.fluid_switch.name=РедÑтоун рідинний клапан +tile.fluid_valve.name=Рідинний клапан +tile.foam_layer.name=Шар піни +tile.foundry_basin.name=Ливарний баÑейн +tile.foundry_channel.name=Ливарний канал +tile.foundry_tank.name=Ливарний зберігальний баÑейн +tile.foundry_mold.name=Малий ливарний баÑейн +tile.foundry_outlet.name=Ливарний вихід +tile.foundry_slagtap.name=Ливарний вихід Ð´Ð»Ñ ÑˆÐ»Ð°ÐºÑƒ +tile.fraction_spacer.name=Розділювач ректифікаційної колони +tile.frozen_dirt.name=Замерзлий ґрунт +tile.frozen_grass.name=Замерзла трава +tile.frozen_log.name=Замерзле дерево +tile.frozen_planks.name=Замерзлі дошки +tile.machine_furnace_brick_off.name=ЦеглÑна піч +tile.machine_furnace_brick_on.name=ЦеглÑна піч +tile.furnace_combination.name=КокÑова піч +tile.furnace_combination.desc=Велика піч, Ñка може вироблÑти деревне Ð²ÑƒÐ³Ñ–Ð»Ð»Ñ Ñ‚Ð° вугільний кокÑ.$ВироблÑÑ” рідкі побічні продукти.$ШвидкіÑть теплопередачі: ΔT*0.25 TU/t +tile.furnace_iron.name=Залізна піч +tile.furnace_iron.desc=Більша та ефективніша піч,$не витрачає паливо, коли не працює. +tile.furnace_steel.name=Сталева піч +tile.furnace_steel.desc=Дуже велика піч, Ñка може давати бонуÑні предмети$під Ñ‡Ð°Ñ Ð¿Ð»Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñ€ÑƒÐ´. Потрібне зовнішнє джерело тепла.$ШвидкіÑть теплопередачі: ΔT*0.05 TU/t$(Δ означає різницю, а T означає температуру) +tile.fusion_center.name=Центральний магнітний елемент +tile.fusion_conductor.name=Ðадпровідний магніт +tile.fusion_conductor_welded.name=Ðадпровідний магніт (Зварений) +tile.fusion_core.name=Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ñ‚ÐµÑ€Ð¼Ð¾Ñдерним реактором +tile.fusion_hatch.name=Декоративний люк +tile.fusion_heater.name=Компонент нагрівача плазми +tile.fusion_motor.name=Елемент магнітного двигуна +tile.fwatz_computer.name=Fusionary Watz Reactor Calculation Matrix +tile.fwatz_conductor.name=4000K Superconducting Magnet +tile.fwatz_cooler.name=Regenerative Coolant Fluid Tank Shell +tile.fwatz_core.name=Fusionary Watz Reactor Control +tile.fwatz_hatch.name=Fusionary Watz Plant Access Hatch +tile.fwatz_plasma.name=Destabilized Antischrabidium Plasma +tile.fwatz_scaffold.name=Fusionary Watz Plant Structural Support +tile.fwatz_tank.name=Regenerative Coolant Fluid Tank +tile.gas_asbestos.name=ЧаÑтинки азбеÑту в повітрі +tile.gas_coal.name=Вугільний пил в повітрі +tile.gas_duct.name=Газова труба +tile.gas_duct_solid.name=Газова труба з покриттÑм +tile.gas_explosive.name=Вибухонебезпечний газ +tile.gas_flammable.name=ЛегкозаймиÑтий газ +tile.gas_meltdown.name=РозплавлÑючий газ +tile.gas_monoxide.name=Чадний газ +tile.gas_radon.name=Радон +tile.gas_radon_dense.name=Щільний радон +tile.gas_radon_tomb.name=Могильний газ +tile.geiger.name=Лічильник Гейгера +tile.glass_ash.name=ПопелÑÑте Ñкло +tile.glass_boron.name=Борне Ñкло +tile.glass_lead.name=Свинцеве Ñкло +tile.glass_polonium.name=Полонієве Ñкло +tile.glass_quartz.name=Кварцове Ñкло +tile.glass_trinitite.name=Тринітитове Ñкло +tile.glass_uranium.name=Уранове Ñкло +tile.glyphid_base.name=Блок вулика гліфідів +tile.glyphid_spawner.name=Спавнер вулика гліфідів +tile.gneiss_brick.name=Сланцева цегла +tile.gneiss_chiseled.name=Точений Ñланець +tile.gneiss_tile.name=Сланцева плитка +tile.gravel_diamond.name=Ðлмазний гравій +tile.gravel_obsidian.name=Подрібнений обÑидіан +tile.hadron_access.name=Термінал доÑтупу до приÑкорювача чаÑтинок +tile.hadron_analysis.name=Стінка камери аналізу приÑкорювача чаÑтинок +tile.hadron_analysis_glass.name=Вікно камери аналізу приÑкорювача чаÑтинок +tile.hadron_coil_alloy.name=Щільна надпровідна котушка +tile.hadron_coil_chlorophyte.name=Щільна хлорофітова котушка +tile.hadron_coil_gold.name=Щільна золота котушка +tile.hadron_coil_magtung.name=Щільна 4000K надпровідна котушка +tile.hadron_coil_mese.name=Щільна меÑе котушка +tile.hadron_coil_neodymium.name=Щільна неодимова котушка +tile.hadron_coil_schrabidate.name=Щільна шрабідатова котушка +tile.hadron_coil_schrabidium.name=Щільна шрабідієва котушка +tile.hadron_coil_starmetal.name=Щільна котушка з зіркового металу +tile.hadron_cooler.name=Блок Ð¾Ñ…Ð¾Ð»Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ñкорювача чаÑтинок +tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% +tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special +tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% +tile.hadron_core.name=Particle Accelerator Core Component +tile.hadron_diode.name=Schottky Particle Diode +tile.hadron_plating.name=Particle Accelerator Plating +tile.hadron_plating_black.name=Particle Accelerator Plating (Black) +tile.hadron_plating_blue.name=Particle Accelerator Plating (Blue) +tile.hadron_plating_glass.name=Particle Accelerator Plating (Window) +tile.hadron_plating_striped.name=Particle Accelerator Plating (Cool Hazard Stripes) +tile.hadron_plating_voltz.name=Particle Accelerator Plating (VOLTZ) +tile.hadron_plating_yellow.name=Particle Accelerator Plating (YelloDye) +tile.hadron_power.name=Particle Accelerator Power Plug (1MHE) +tile.hadron_power_10m.name=Particle Accelerator Power Plug (10MHE) +tile.hadron_power_100m.name=Particle Accelerator Power Plug (100MHE) +tile.hadron_power_1g.name=Particle Accelerator Power Plug (1GHE) +tile.hadron_power_10g.name=Particle Accelerator Power Plug (10GHE) +tile.hazmat.name=Hazmat Cloth Block +tile.heater_electric.name=Електричний нагрівач +tile.heater_electric.desc=ВикориÑтовує енергію Ð´Ð»Ñ Ð²Ð¸Ñ€Ð¾Ð±Ð½Ð¸Ñ†Ñ‚Ð²Ð° тепла.$Приймає тепло знизу з ефективніÑтю 85%%.$Можна налаштувати за допомогою викрутки. +tile.heater_firebox.name=Ðагрівальна топка +tile.heater_firebox.desc=Спалює тверде паливо Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ‚ÐµÐ¿Ð»Ð°. +tile.heater_heatex.name=Теплообмінний нагрівач +tile.heater_heatex.desc=ВироблÑÑ” тепло з гарÑчих рідин. +tile.heater_oilburner.name=Спалювач рідини +tile.heater_oilburner.desc=Спалює рідини Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ‚ÐµÐ¿Ð»Ð°.$Можна налаштувати за допомогою викрутки. +tile.heater_oven.name=Ðагрівальна піч +tile.heater_oven.desc=Спалює тверде паливо Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ‚ÐµÐ¿Ð»Ð°.$Приймає тепло знизу з ефективніÑтю 50%%. +tile.hev_battery.name=Ð‘Ð°Ñ‚Ð°Ñ€ÐµÑ ÐºÐ¾Ñтюма +tile.machine_hydrotreater.name=ГідроочиÑник +tile.impact_dirt.name=Випалений ґрунт +tile.icf.name=ТермоÑдерний реактор з інерційним утриманнÑм плазми (ICF) +tile.icf_block.name=Лазер ICF +tile.icf_component.name=Стабілізуючий елемент ICF +tile.icf_component.structure.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ ICF +tile.icf_component.structure_bolted.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ ICF (Заклепаний) +tile.icf_component.vessel.name=Стіна захиÑної оболонки ICF +tile.icf_component.vessel_welded.name=Стіна захиÑної оболонки ICF (Зварена) +tile.icf_controller.name=Контролер лазера ICF +tile.icf_laser_component.capacitor.name=КонденÑатор лазера ICF +tile.icf_laser_component.casing.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ Ð»Ð°Ð·ÐµÑ€Ð° ICF +tile.icf_laser_component.cell.name=Комірка лазера ICF +tile.icf_laser_component.emitter.name=Труба випромінювача лазера ICF +tile.icf_laser_component.port.name=Порт лазера ICF +tile.icf_laser_component.turbo.name=ТурбопідÑилювач лазера ICF +tile.iter.name=ТермоÑдерний реактор +tile.ladder_aluminium.name=Ðлюмінієва драбина +tile.ladder_cobalt.name=Кобальтова драбина +tile.ladder_copper.name=Мадна драбина +tile.ladder_gold.name=Золота драбина +tile.ladder_iron.name=Залізна драбина +tile.ladder_lead.name=Свинцева драбина +tile.ladder_steel.name=Сталева драбина +tile.ladder_sturdy.name=Міцна дерев'Ñна драбина +tile.ladder_titanium.name=Титанова драбина +tile.ladder_tungsten.name=Вольфрамова драбина +tile.lamp_demon.name=Ядро-демон лампа +tile.lamp_tritium_blue_off.name=Ð¡Ð¸Ð½Ñ Ñ‚Ñ€Ð¸Ñ‚Ñ–Ñ”Ð²Ð° лампа +tile.lamp_tritium_blue_on.name=Ð¡Ð¸Ð½Ñ Ñ‚Ñ€Ð¸Ñ‚Ñ–Ñ”Ð²Ð° лампа +tile.lamp_tritium_green_off.name=Зелена тритієва лампа +tile.lamp_tritium_green_on.name=Зелена тритієва лампа +tile.lantern.name=Ліхтар +tile.lantern_behemoth.name=Старий ліхтар +tile.launch_pad.name=Бункерний Ñтартовий майданчик +tile.launch_pad_large.name=Стартовий майданчик +tile.launch_pad_rusted.name=Старий Ñтартовий майданчик +tile.launch_table.name=Великий Ñтартовий майданчик +tile.leaves_layer.name=Опале лиÑÑ‚Ñ +tile.lightstone.unrefined.name=Ðеоброблений Ñвітлий камінь +tile.lightstone.tile.name=Світлокам'Ñна плитка +tile.lightstone.bricks.name=Світлокам'Ñна цегла +tile.lightstone.bricks_chiseled.name=Точена Ñвітлокам'Ñна цегла +tile.lightstone.chiseled.name=Точений Ñвітлий камінь +tile.lightstone_tile_stairs.name=Сходи з Ñвітлокам'Ñної плитки +tile.lightstone_bricks_stairs.name=Сходи з Ñвітлокам'Ñної цегли +tile.lox_barrel.name=Бочка рідкого киÑню +tile.machine_amgen.name=Ambience Radiation Generator +tile.machine_ammo_press.name=ÐŸÑ€ÐµÑ Ð´Ð»Ñ Ð±Ð¾Ñ”Ð¿Ñ€Ð¸Ð¿Ð°Ñів +tile.machine_arc_furnace.name=Електрична дугова піч +tile.machine_arc_furnace_off.name=Дугова піч +tile.machine_arc_furnace_on.name=Дугова піч +tile.machine_arc_welder.name=Дуговий зварювальник +tile.machine_armor_table.name=Стіл модифікації броні +tile.machine_ashpit.name=Зольник +tile.machine_ashpit.desc=Збирає попіл з топок та нагрівальних печей +tile.machine_assembler.name=Збиральна машина +tile.machine_assemfac.name=Збиральна фабрика +tile.machine_autocrafter.name=Ðвтоматичний верÑтак +tile.machine_autosaw.name=Ðвтоматична пила +tile.machine_autosaw.desc=Вирубує роÑлини поруч, заново виÑажує дерева$Приймає:$-Деревну Ñмолу$-Етанол$-Риб'Ñчий жир$-Важку нафту +tile.machine_bat9000.name=Big-Ass циÑтерна 9000 +tile.machine_battery.name=Блок накопичувач енергії +tile.machine_battery_potato.name=Блок картоплÑних батарейок +tile.machine_boiler.name=Бойлер +tile.machine_boiler.desc=Великий бойлер, Ñкий може кип'Ñтити воду або нагрівати нафту.$Потрібне зовнішнє джерело тепла.$ШвидкіÑть теплопередачі: ΔT*0.01 TU/t +tile.machine_boiler_electric_off.name=Electric Oil Heater +tile.machine_boiler_electric_on.name=Electric Oil Heater +tile.machine_boiler_off.name=Старий бойлер +tile.machine_catalytic_cracker.name=Вежа каталітичного крекінгу +tile.machine_catalytic_reformer.name=Каталітичний риформер +tile.machine_centrifuge.name=Центрифуга +tile.machine_chemfac.name=Хімічна фабрика +tile.machine_chemplant.name=Хімічний завод +tile.machine_chungus.name=Парова турбіна "Левіафан" +tile.machine_chungus.desc=ЕфективніÑть: 85%% +tile.machine_coal_off.name=Combustion Generator +tile.machine_coal_on.name=Combustion Generator +tile.machine_coker.name=КокÑова уÑтановка +tile.machine_coker.desc=КокÑує нафту, Ñтворюючи рідкі побічні продукти.$Потрібне зовнішнє джерело тепла.$ШвидкіÑть теплопередачі: ΔT*0.025 TU/t +tile.machine_combine_factory.name=CMB Steel Furnace +tile.machine_combustion_engine.name=ПромиÑловий двигун внутрішнього згорÑÐ½Ð½Ñ +tile.machine_compressor.name=КомпреÑор +tile.machine_compressor_compact.name=Компактний компреÑор +tile.machine_condenser.name=КонденÑатор пару +tile.machine_condenser_powered.name=Потужний конденÑатор пару +tile.machine_controller.name=Блок диÑтанційного ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ°ÐºÑ‚Ð¾Ñ€Ð¾Ð¼ +tile.machine_converter_he_rf.name=HE to RF конвертер +tile.machine_converter_rf_he.name=RF to HE конвертер +tile.machine_conveyor_press.name=Конвеєрний Ð¿Ñ€ÐµÑ +tile.machine_conveyor_press.desc=Конвеєр рухаєтьÑÑ Ð·Ð»Ñ–Ð²Ð° направо$Клацніть правою кнопкою миші штампом щоб вÑтановити його$ВикориÑтовуйте викрутку, щоб вилучити штамп +tile.machine_crucible.name=Ð›Ð¸Ð²Ð°Ñ€Ð½Ñ +tile.machine_crystallizer.name=Рудний окиÑлювач +tile.machine_cyclotron.name=Циклотрон +tile.machine_detector.name=Детектор Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñ +tile.machine_deuterium_extractor.name=ЕкÑтрактор дейтерію +tile.machine_deuterium_tower.name=Вежа видобутку дейтерію +tile.machine_diesel.name=Дизельний генератор +tile.machine_difurnace_extension.name=Ð Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð´Ð¾Ð¼ÐµÐ½Ð½Ð¾Ñ— печі +tile.machine_difurnace_off.name=Доменна піч +tile.machine_difurnace_on.name=Доменна піч +tile.machine_difurnace_rtg_off.name=Ядерна доменна піч +tile.machine_difurnace_rtg_on.name=Ядерна доменна піч +tile.machine_dineutronium_battery.name=Спарк блок накопичувач енергії +tile.machine_drain.name=Стічна труба +tile.machine_drill.name=Ðвтоматичний гірничий бур +tile.machine_electric_furnace_off.name=Електрична піч +tile.machine_electric_furnace_on.name=Електрична піч +tile.machine_electrolyser.name=Електролізер +tile.machine_epress.name=Електричний Ð¿Ñ€ÐµÑ +tile.machine_excavator.name=Великий гірничий бур +tile.machine_exposure_chamber.name=Камера Ð¾Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñтинками +tile.machine_fel.name=Лазер на вільних електронах (FEL) +tile.machine_fensu.name=FEnSU +tile.machine_flare.name=Факельна Ð»Ñ–Ð½Ñ–Ñ +tile.machine_fluidtank.name=ЦиÑтерна +tile.machine_forcefield.name=Випромінювач Ñилового Ð¿Ð¾Ð»Ñ +tile.machine_fraction_tower.name=Ректифікаційна колона +tile.machine_fracking_tower.name=Вежа гідророзриву плаÑта +tile.machine_funnel.name=Комбінаторна воронки +tile.machine_funnel.desc=Ðвтоматично ÑтиÑкає предмети в Ñітці крафту 2x2 або 3x3$Вгорі: Вхід$Внизу: Вихід$Бічна Ñторона: Вихід Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ–Ð½Ð³Ñ€ÐµÐ´Ñ–Ñ”Ð½Ñ‚Ñ–Ð² +tile.machine_gascent.name=Газова центріфуга +tile.machine_generator.name=Nuclear Reactor (Old) +tile.machine_geo.name=Geothermal Electric Generator +tile.machine_hephaestus.name=Геотермальний теплообмінник +tile.machine_icf_press.name=Виробник паливних гранул ICF +tile.machine_icf_press.desc=Заповнює паливні гранули ICF$Лівий паливний отвір вÑтановлюєтьÑÑ Ð·Ð²ÐµÑ€Ñ…Ñƒ/знизу, правий - з боків$Мюони та гранули можуть подаватиÑÑ Ð· будь-Ñкого боку +tile.machine_industrial_boiler.name=ПромиÑловий бойлер +tile.machine_industrial_boiler.desc=Великий бойлер, Ñкий може кип'Ñтити воду або нагрівати нафту.$Потрібне зовнішнє джерело тепла.$ШвидкіÑть теплопередачі: ΔT*0.01 TU/t$Ðе може вибухнути +tile.machine_industrial_generator.name=Industrial Generator +tile.machine_intake.name=Забірник Ð¿Ð¾Ð²Ñ–Ñ‚Ñ€Ñ +tile.machine_keyforge.name=Сліл замочника +tile.machine_large_turbine.name=Парова промиÑлова турбіна +tile.machine_large_turbine.desc=ЕфективніÑть: 100%% +tile.machine_liquefactor.name=ПромиÑловий Ñкраплювач +tile.machine_liquefactor.desc=Потужна універÑальна машина Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€ÐµÐ´Ð¼ÐµÑ‚Ñ–Ð² на рідини.$ПоÑтавлÑєтьÑÑ Ð· універÑальними каталітичними компонентами, нагрівальними елементами$та вбудованим гідратором Ð´Ð»Ñ Ð½Ð°Ñ„Ñ‚Ð¾Ñ…Ñ–Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ зрідженнÑ. +tile.machine_lithium_battery.name=Літій-іонний блок накопичувач енергії +tile.machine_microwave.name=Мікрохвильова піч +tile.machine_mining_laser.name=ШахтарÑький лазер +tile.machine_minirtg.name=Радіоізотопна комірка +tile.machine_missile_assembly.name=Ð¡Ñ‚Ð°Ð½Ñ†Ñ–Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸ ракет +tile.machine_mixer.name=ПромиÑловий змішувач +tile.machine_nuke_furnace_off.name=Ядерна піч +tile.machine_nuke_furnace_on.name=Ядерна піч +tile.machine_orbus.name=Важка магнітна циÑтерна +tile.machine_ore_slopper.name=Переробник корінної руди +tile.machine_powerrtg.name=Полоній-теннеÑÑинова ізотопна комірка +tile.machine_press.name=Твердопаливний Ð¿Ñ€ÐµÑ +tile.machine_puf6_tank.name=ЦиÑтерна гекÑафториду плутонію +tile.machine_pumpjack.name=ВерÑтат-гойдалка +tile.machine_pyrooven.name=Піролізна піч +tile.machine_radar.name=Радар +tile.machine_radar_large.name=Великий радар +tile.machine_radgen.name=Радіаційний двигун +tile.machine_radiolysis.name=РІТЕГ та радіолізна камера +tile.machine_reactor.name=Реактор розмножувач +tile.machine_reactor_small.name=ДоÑлідницький реактор +tile.machine_refinery.name=Ðафтопереробний завод +tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) +tile.machine_rotary_furnace.name=Роторна піч +tile.machine_rtg_blue.name=Convection Generator +tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) +tile.machine_rtg_furnace_off.name=РІТЕГ піч +tile.machine_rtg_furnace_on.name=РІТЕГ піч +tile.machine_rtg_green.name=Verticium Wealth Generator +tile.machine_rtg_grey.name=РІТЕГ +tile.machine_rtg_orange.name=Strong RT Generator +tile.machine_rtg_purple.name=Antimatter Annihilation Generator +tile.machine_rtg_red.name=Fulmination Generator +tile.machine_rtg_yellow.name=Australium Superfuel Reactor +tile.machine_satlinker.name=Супутниковий ID менеджер +tile.machine_sawmill.name=ЛіÑопилка Стірлінга +tile.machine_sawmill.desc=Потрібне зовнішнє джерело тепла.$ШвидкіÑть теплопередачі: T*0.1 TU/t$Мінімальне ÑпоживаннÑ: 100 TU/t, МакÑимальне ÑпоживаннÑ: 300 TU/t +tile.machine_schrabidium_battery.name=Шрабідієвий блок накопичувач енергії +tile.machine_schrabidium_transmutator.name=ПриÑтрій Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ñмутації шрабідію +tile.machine_selenium.name=Radial Performance Engine +tile.machine_shredder.name=Подрібнювач +tile.machine_silex.name=Камера лазерного Ñ€Ð¾Ð·Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ñ–Ð·Ð¾Ñ‚Ð¾Ð¿Ñ–Ð² (SILEX) +tile.machine_siren.name=Сирена +tile.machine_solar_boiler.name=Бойлер ÑонÑчної вежі +tile.machine_soldering_station.name=ПаÑльна ÑÑ‚Ð°Ð½Ñ†Ñ–Ñ +tile.machine_solidifier.name=ПромиÑловий затверджувач +tile.machine_solidifier.desc=УніверÑальна машина, оÑнащена ÑиÑтемами Ð¾Ñ…Ð¾Ð»Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° іншими$універÑальними інÑтрументами Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ñ–Ð´Ð¸Ð½ у тверді речовини за допомогою$різних процеÑів, таких Ñк Ð·Ð°Ð¼Ð¾Ñ€Ð¾Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° нафтохімічна полімеризаціÑ. +tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom) +tile.machine_spp_top.name=ZPE Potential Generator (Top) +tile.machine_steam_engine.name=Паровий двигун +tile.machine_steam_engine.desc=ЕфективніÑть: 85%% +tile.machine_stirling.name=Двигун Стірлінга +tile.machine_stirling.desc=Перетворює тепло на енергію. Потрібне зовнішнє джерело тепла.$ШвидкіÑть теплопередачі: T*0.1 TU/t$МакÑимальне ÑпоживаннÑ: 300 TU/t$ЕфективніÑть: 50%% +tile.machine_stirling_creative.name=Творчій двигун Стірлінга +tile.machine_stirling_creative.desc=Перетворює тепло на енергію. Потрібне зовнішнє джерело тепла.$ШвидкіÑть теплопередачі: T*0.1 TU/t$ÐеÑкінченне ÑпоживаннÑ/t$ЕфективніÑть: 100%% +tile.machine_stirling_steel.name=Важкий двигун Стірлінга +tile.machine_stirling_steel.desc=Перетворює тепло на енергію.. Потрібне зовнішнє джерело тепла.$ВикориÑтовує набагато важчу шеÑтерню Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ вищих температур.$ШвидкіÑть теплопередачі: T*0.1 TU/t$МакÑимальне ÑпоживаннÑ: 1500 TU/t$ЕфективніÑть: 50%% +tile.machine_storage_drum.name=Бочка Ð´Ð»Ñ Ð·Ð°Ñ…Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð½Ñ Ñдерних відходів +tile.machine_strand_caster.name=УÑтановка безперервного Ð»Ð¸Ñ‚Ñ‚Ñ +tile.machine_telelinker.name=Turret Telemetry Linker +tile.machine_teleporter.name=Телепорт +tile.machine_tower_large.name=Ð“Ñ€Ð°Ð´Ð¸Ñ€Ð½Ñ +tile.machine_tower_small.name=Допоміжна Ð³Ñ€Ð°Ð´Ð¸Ñ€Ð½Ñ +tile.machine_transformer.name=10k-20Hz транÑформатор +tile.machine_transformer_20.name=10k-1Hz транÑформатор +tile.machine_transformer_dnt.name=DNT-20Hz транÑформатор +tile.machine_transformer_dnt_20.name=DNT-1Hz транÑформатор +tile.machine_turbine.name=Парова турбіна +tile.machine_turbine.desc=ЕфективніÑть: 85%% +tile.machine_turbinegas.name=Газова турбіна комбіноваого циклу +tile.machine_turbofan.name=ТурбовентилÑтор +tile.machine_uf6_tank.name=ЦиÑтерна гекÑафториду урану +tile.machine_vacuum_distill.name=Вакуумний нафтопереробний завод +tile.machine_waste_drum.name=Контейнер Ð¾Ñ…Ð¾Ð»Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ñ†ÑŒÐ¾Ð²Ð°Ð½Ð¾Ð³Ð¾ палива +tile.machine_weapon_table.name=Стіл модифікації зброї +tile.machine_wood_burner.name=Дров'Ñна піч +tile.machine_wood_burner.desc=Генерує 100HE/t при Ñпалюванні предметів$Збирає попіл$Може Ñпалювати рідини з ефективніÑтю 50%% зі швидкіÑтю 40mB/s +tile.machine_well.name=Ðафтова вежа +tile.machine_zirnox.name=Ядерний реактор ЦИРÐОКС +tile.marker_structure.name=Multiblock Structure Marker +tile.mass_storage.name=МаÑивне Ñховище +tile.meteor_battery.name=Генератор Ñтатичної електрики з зіркового металу +tile.meteor_brick.name=Метеоритна цегла +tile.meteor_brick_chiseled.name=Точена метеоритна цегла +tile.meteor_brick_cracked.name=ТріÑнута метеоритна цегла +tile.meteor_brick_mossy.name=Метеоритна цегла з мохом +tile.meteor_pillar.name=Метеоритна колона +tile.meteor_polished.name=Полірований метеоритний блок +tile.meteor_spawner.name=Збірник Кіберкрабів +tile.mine_ap.name=Протипіхотна міна +tile.mine_fat.name=Міна товÑтун +tile.mine_naval.name=МорÑька міна +tile.mine_he.name=Протитанкова міна +tile.mine_shrap.name=Шрапнельна міна +tile.moon_turf.name=МіÑÑчний ґрунт +tile.mud_block.name=ТокÑичні відходи +tile.muffler.name=Muffler +tile.mush.name=СÑючий гриб +tile.ntm_dirt.name=Òрунт +tile.nuke_boy.name=Малюк +tile.nuke_custom.name=КаÑтомна бомба +tile.nuke_fleija.name=F.L.E.I.J.A. +tile.nuke_fstbmb.name=BF бомба +tile.nuke_gadget.name=Гаджет +tile.nuke_man.name=ТовÑтун +tile.nuke_mike.name=Ðйві Майк +tile.nuke_n2.name=N² Міна +tile.nuke_n45.name=N45 Naval Mine +tile.nuke_prototype.name=Прототип +tile.nuke_solinium.name=Солінієвий Ñтерилізатор +tile.nuke_tsar.name=Цар-бомба +tile.oil_duct.name=Oil Pipe +tile.oil_duct_solid.name=Coated Oil Pipe +tile.oil_pipe.name=Труба Ð´Ð»Ñ Ð²Ð¸Ð´Ð¾Ð±ÑƒÑ‚ÐºÑƒ Ñирої нафти +tile.oil_spill.name=Розлив нафти +tile.ore_alexandrite.name=ÐлекÑандритова руда +tile.ore_aluminium.name=Ðлюмінієва руда +tile.ore_asbestos.name=ÐзбеÑтова руда +tile.ore_australium.name=ÐвÑтралієва руда +tile.ore_basalt_asbestos.name=Багатий азбеÑтом базальт +tile.ore_basalt_fluorite.name=Багатий флюоритом базальт +tile.ore_basalt_gem.name=Багатий на Ñамоцвіти базальт +tile.ore_basalt_molysite.name=Багатий на трихлорид заліза базальт +tile.ore_basalt_sulfur.name=Багатий Ñіркою базальт +tile.ore_bedrock.name=Корінна руда +tile.ore_bedrock_coltan.name=Корінна колтанова руда +tile.ore_bedrock_oil.name=Корінне нафтове родовище +tile.ore_beryllium.name=Берилієва руда +tile.ore_cinnebar.name=Кіноварна руда +tile.ore_coal_oil.name=МаÑлÑниÑта вугільна руда +tile.ore_coal_oil_burning.name=Палаюча маÑлÑниÑта вугільна руда +tile.ore_cobalt.name=Кобальтова руда +tile.ore_coltan.name=Колтанова руда +tile.ore_copper.name=Мідна руда +tile.ore_daffergon.name=Dellite +tile.ore_depth_borax.name=Глибинна бурова руда +tile.ore_depth_cinnebar.name=Глибинна кіноварна руда +tile.ore_depth_nether_neodymium.name=Пекельна глибинна неодимова руда +tile.ore_depth_zirconium.name=Глибинна цирконієва руда +tile.ore_fluorite.name=Флюоритова руда +tile.ore_gneiss_asbestos.name=Сланцева азбеÑтова руда +tile.ore_gneiss_copper.name=Сланцева мідна руда +tile.ore_gneiss_gas.name=Сланцевий газ +tile.ore_gneiss_gold.name=Сланцева золота руда +tile.ore_gneiss_iron.name=Сланцева залізна руда +tile.ore_gneiss_lithium.name=Сланцева літієва руда +tile.ore_gneiss_rare.name=Сланцева рідкоземельна руда +tile.ore_gneiss_schrabidium.name=Сланцева шрабідієва руда +tile.ore_gneiss_uranium.name=Сланцева уранова руда +tile.ore_gneiss_uranium_scorched.name=Випалена Ñланцева уранова руда +tile.ore_lead.name=Свинцева руда +tile.ore_lignite.name=Буровугільна руда +tile.ore_meteor.aluminium.name=Метеоритна алюмінієва руда +tile.ore_meteor.cobalt.name=Метеоритна кобальтова руда +tile.ore_meteor.copper.name=Метеоритна мідна руда +tile.ore_meteor.iron.name=Метеоритна залізна руда +tile.ore_meteor.rareearth.name=Метеоритна рідкоземельна руда +tile.ore_meteor_aluminium.name=Метеоритна алюмінієва руда +tile.ore_meteor_copper.name=Метеоритна мідна руда +tile.ore_meteor_lead.name=Метеоритна Ñвинцева руда +tile.ore_meteor_lithium.name=Метеоритна літієва руда +tile.ore_meteor_starmetal.name=Метеоритна руда зіркового металу +tile.ore_meteor_sulfur.name=Метеоритна Ñірчана руда +tile.ore_meteor_thorium.name=Метеоритна торієва руда +tile.ore_meteor_titanium.name=Метеоритна титанова руда +tile.ore_meteor_tungsten.name=Метеоритна вольфрамова руда +tile.ore_meteor_uranium.name=Метеоритна уранова руда +tile.ore_nether_coal.name=Палаюча пекельна вугільна руда +tile.ore_nether_cobalt.name=Пекельна кобальтова руда +tile.ore_nether_fire.name=Пекельна фоÑфорна руда +tile.ore_nether_plutonium.name=Пекельна плутонієва руда +tile.ore_nether_schrabidium.name=Пекельна шрабідієва руда +tile.ore_nether_smoldering.name=Тліючий пекельний камінь +tile.ore_nether_sulfur.name=Пекельна Ñірчана руда +tile.ore_nether_tungsten.name=Пекельна вольфрамова руда +tile.ore_nether_uranium.name=Пекельна уранова руда +tile.ore_nether_uranium_scorched.name=Випалена пекельна уранова руда +tile.ore_niter.name=Руда нітрату калію +tile.ore_oil.name=Ðафтове родовище +tile.ore_oil_empty.name=Порожнє нафтове родовище +tile.ore_oil_sand.name=Бітумінозний піÑок +tile.ore_random.name=%s руда +tile.ore_rare.name=Рідкоземельна руда +tile.ore_reiium.name=Reiite +tile.ore_schrabidium.name=Шрабідієва руда +tile.ore_sellafield_diamond.name=Селлафітова алмазна руда +tile.ore_sellafield_emerald.name=Селлафітова Ñмарагдова руда +tile.ore_sellafield_radgem.name=Селлафітова руда радіоактивного Ñамоцвіту +tile.ore_sellafield_schrabidium.name=Селлафітова шрабідієва руда +tile.ore_sellafield_uranium_scorched.name=Випалена Ñеллафітова уранова руда +tile.ore_sulfur.name=Сірчана руда +tile.ore_tektite_osmiridium.name=ПроÑочений оÑмиÑтим іридієм тектит +tile.ore_thorium.name=Торієва руда +tile.ore_tikite.name=ТрікÑит +tile.ore_titanium.name=Титанова руда +tile.ore_tungsten.name=Вольфрамова руда +tile.ore_unobtainium.name=Brightblende Ore +tile.ore_uranium.name=Уранова руда +tile.ore_uranium_scorched.name=Випалена уранова руда +tile.ore_verticium.name=Dollar Green Mineral +tile.ore_volcano.name=Геотермальне джерело +tile.ore_weidanium.name=Weidite +tile.pa_beamline.name=Ð›Ñ–Ð½Ñ–Ñ Ð¿ÑƒÑ‡ÐºÐ° +tile.pa_beamline.desc=Додаткова чаÑтина, з’єднує різні чаÑтини приÑкорювача.$Також дозволÑÑ” недорого збільшити розмір кільцÑ,$щоб задовольнити вимоги дипольної котушки щодо розміру. +tile.pa_detector.name=Детектор чаÑтинок +tile.pa_detector.desc=Потрібне охолодженнÑ!$Приймає чаÑтинки та виконує рецепт.$Рецепти можуть потребувати контейнерів (капÑул Ð´Ð»Ñ Ñ‡Ð°Ñтинок).$Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¹Ð½ÑÑ‚Ñ‚Ñ Ñ‡Ð°Ñтинки потрібне нульове розфокуÑуванÑ. +tile.pa_dipole.name=Дипольні магніти +tile.pa_dipole.desc=Потрібне охолодженнÑ!$ПеренаправлÑÑ” чаÑтинки на оÑнові магнітного полÑ.$Має виходи Ð´Ð»Ñ Ð½Ð¸Ð¶Ñ‡Ðµ порогу,$вище порогу та вище порогу$із заÑтоÑуваннÑм редÑтоуну.$Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ потрібні великі котушки. +tile.pa_quadrupole.name=Квадрупольна лінза +tile.pa_quadrupole.desc=Потрібне охолодженнÑ!$Зменшує розфокуÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñтинок на 100 одиниць.$Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ потрібні великі котушки. +tile.pa_rfc.name=РадіочаÑтотний резонатор +tile.pa_rfc.desc=Потрібне охолодженнÑ!$ПриÑкорює чаÑтинки на 100 одиниць,$та додає 100 одиниць розфокуÑуваннÑ.$ЧаÑтинка розіб’єтьÑÑ, коли доÑÑгне 1000 одиниць розфокуÑуваннÑ. +tile.pa_source.name=Джерело чаÑтинок +tile.pa_source.desc=Потрібне охолодженнÑ!$ВикориÑтовує два предмети Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‡Ð°Ñтинки. +tile.part_emitter.name=Декоративний випромінювач чаÑтинок +tile.pedestal.name=П'єдеÑтал +tile.pink_barrel.name=Бочка з гаÑом +tile.pink_log.name=Pink Log +tile.pink_planks.name=Pink Wood Planks +tile.pink_slab.name=Pink Wood Slab +tile.pink_stairs.name=Pink Wood Stairs +tile.piston_inserter.name=Ð’Ñтавник +tile.piston_inserter.desc=Приймає один предмет автоматично$ВикориÑтовуючи редÑтоун, вÑтавлÑÑ” предмет у проÑвердлений графіт$УÑÑ– предмети в ланцюжку проÑвердленого графіту будуть проштовхнуті на один блок$Потрібен один блок Ð¿Ð¾Ð²Ñ–Ñ‚Ñ€Ñ Ð¼Ñ–Ð¶ графітом +tile.plant_dead.name=Мертва роÑлина +tile.plant_flower.cd0.name=Гірчична верба +tile.plant_flower.cd1.name=Гірчична верба +tile.plant_flower.foxglove.name=ÐаперÑÑ‚Ñнка +tile.plant_flower.nightshade.name=Беладона +tile.plant_flower.tobacco.name=Тютюн +tile.plant_flower.weed.name=ÐšÐ¾Ð½Ð¾Ð¿Ð»Ñ +tile.plant_reeds.name=Очерет +tile.plant_tall.cd2.name=Гірчична верба +tile.plant_tall.cd3.name=Гірчична верба +tile.plant_tall.cd4.name=Гірчична верба (Зріла) +tile.plant_tall.weed.name=ÐšÐ¾Ð½Ð¾Ð¿Ð»Ñ +tile.plasma.name=Плазма +tile.plasma_heater.name=Ðагрівач плазми +tile.plushie.name=%s плюшка +tile.pneumatic_tube.name=Пневматична труба +tile.pneumatic_tube.desc=ÐадÑилає предмети за допомогою ÑтиÑненого повітрÑ.$Клацніть правою кнопкою миші викруткою, щоб перемкнути вхід.$Клацніть правою кнопкою миші з шифтом та викруткою, щоб перемкнути вихід.$Входи можна налаштувати та підключити до ÑтиÑненого повітрÑ.$ÐадÑилає один Ñтак чотири рази на Ñекунду. +tile.pole_satellite_receiver.name=Супутникова тарілка +tile.pole_top.name=Верхівка антени +tile.press_preheater.name=Burner Press Preheater +tile.pribris.name=Уламки РБМК +tile.pribris_burning.name=Палаючі уламки РБМК +tile.pribris_digamma.name=Почорнілі уламки РБМК +tile.pribris_radiating.name=Тліючі уламки РБМК +tile.pump_electric.name=Електричний наÑÐ¾Ñ Ò‘Ñ€ÑƒÐ½Ñ‚Ð¾Ð²Ð¸Ñ… вод +tile.pump_electric.desc=ВикориÑтовує електроенергію Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÐ°Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ò‘Ñ€ÑƒÐ½Ñ‚Ð¾Ð²Ð¸Ñ… вод$Генерує до 10,000mB/t$Повинен бути розміщений нижче Y:70 +tile.pump_steam.name=Паровий наÑÐ¾Ñ Ò‘Ñ€ÑƒÐ½Ñ‚Ð¾Ð²Ð¸Ñ… вод +tile.pump_steam.desc=ВикориÑтовує пару Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÐ°Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ò‘Ñ€ÑƒÐ½Ñ‚Ð¾Ð²Ð¸Ñ… вод$Генерує до 1,000mB/t$Повинен бути розміщений нижче Y:70 +tile.pwr_block.name=ВВЕР +tile.pwr_casing.name=ÐšÐ¾Ñ€Ð¿ÑƒÑ Ñ€ÐµÐºÐ°Ñ‚Ð¾Ñ€Ð° ВВЕР +tile.pwr_casing.desc=Потрібно покрити вÑÑ– внутрішні чаÑтини реактора Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ$РозміщеннÑ: ÐšÐ¾Ñ€Ð¿ÑƒÑ +tile.pwr_channel.name=Канал теплоноÑÑ–Ñ Ð’Ð’Ð•Ð  +tile.pwr_channel.desc=ВикориÑтовує тепло корпуÑу Ð´Ð»Ñ Ð½Ð°Ð³Ñ€Ñ–Ð²Ð°Ð½Ð½Ñ Ð¾Ñ…Ð¾Ð»Ð¾Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— рідини$РозміщеннÑ: Будь-Ñке +tile.pwr_control.name=Регулюючий Ñтрижень ВВЕР +tile.pwr_control.desc=ДозволÑÑ” керувати паливними ÑтрижнÑми$РозміщеннÑ: Сіткою, між паливними ÑтрижнÑми +tile.pwr_controller.name=Контролер ВВЕР +tile.pwr_controller.desc=Термінал доÑтупу ВВЕР$РозміщеннÑ: КорпуÑ, лише один на реактор. Клацніть правою кнопкою миші, щоб зібрати реактор. +tile.pwr_fuel.name=Паливний Ñтрижень ВВЕР +tile.pwr_fuel.desc=Збільшує ємніÑть палива ВВЕР$РозміщеннÑ: Сіткою, Ð´Ð»Ñ Ð¿Ñ–Ð´Ð²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ€ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñті. +tile.pwr_heatex.name=Теплообмінник ВВЕР +tile.pwr_heatex.desc=ПереноÑить тепло Ñдра до корпуÑу$РозміщеннÑ: Будь-Ñке +tile.pwr_heatsink.name=Радіатор ВВЕР +tile.pwr_heatsink.desc=Збільшує теплоємніÑть Ñдра на 5%%$Зробить канали теплоноÑÑ–Ñ Ñ‚Ð° теплообмінники трохи менш ефективними$РозміщеннÑ: Будь-Ñке +tile.pwr_neutron_source.name=Джерело нейтронів ВВЕР +tile.pwr_neutron_source.desc=Додає 20 одиниць потіку до Ñдра$РозміщеннÑ: Будь-Ñке$Потік доÑÑгає паливних Ñтрижнів лише Ñкщо між ними нічого немає +tile.pwr_port.name=Порт доÑтупу ВВЕР +tile.pwr_port.desc=Ввод-вивід рідин та предметів$РозміщеннÑ: ÐšÐ¾Ñ€Ð¿ÑƒÑ +tile.pwr_reflector.name=Відбивач нейтронів ВВЕР +tile.pwr_reflector.desc=Відбиває нейтрони назад до паливних Ñтрижнів$РозміщеннÑ: Сіткою, Ð´Ð»Ñ Ð¿Ñ–Ð´Ð²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ€ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñті.$Може бути обшивкою +tile.rad_lava_block.name=Вулканічна лава +tile.radar_screen.name=Екран радара +tile.radio_telex.name=Ð¢ÐµÐ»ÐµÐºÑ +tile.radio_torch_controller.name=РедÑтоун-радіо контролер +tile.radio_torch_controller.desc=Може приймати командні Ñигнали та$передавати Ñ—Ñ… на підключену машину +tile.radio_torch_counter.name=РедÑтоун-радіо лічильник предметів +tile.radio_torch_counter.desc=РозміщуєтьÑÑ Ð½Ð° плоÑких поверхнÑÑ… або блоках, ÑуміÑних із компаратором$Базує Ñигнал на кількоÑті відповідних предметів +tile.radio_torch_logic.name=РедÑтоун-радіо логічний приймач +tile.radio_torch_logic.desc=РозміщуєтьÑÑ Ð½Ð° плоÑких поверхнÑÑ… або блоках, ÑуміÑних із компаратором$ЗіÑтавлÑÑ” Ñигнали редÑтоуну з умовами, оціненими у вÑтановленому порÑдку$ЧиÑлові або Ñ€Ñдкові вхідні дані порівнюютьÑÑ Ð· конÑтантою +tile.radio_torch_reader.name=РедÑтоун-радіо зчитувач +tile.radio_torch_reader.desc=Зчитує Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· підключених блоків,$а потім надÑилає Ñ—Ñ… через вказану чаÑтоту +tile.radio_torch_receiver.name=РедÑтоун-радіо приймач +tile.radio_torch_receiver.desc=РозміщуєтьÑÑ Ð½Ð° плоÑких поверхнÑÑ… або блоках, ÑуміÑних із компаратором +tile.radio_torch_sender.name=РедÑтоун-радіо передавач +tile.radio_torch_sender.desc=РозміщуєтьÑÑ Ð½Ð° плоÑких поверхнÑÑ… або блоках, ÑуміÑних із компаратором$Зчитує Ñигнали редÑтоуна або вхід компаратора +tile.radiobox.name=Коробка боротьби з шкідниками Розенберга +tile.radiorec.name=FM-радіо +tile.rail_booster.name=ШвидкіÑні приÑкорювальні рейки +tile.rail_highspeed.name=ШвидкіÑні рейки +tile.rail_large_buffer.name=Стандартний вловлювальний тупик (5м) +tile.rail_large_curve.name=Стандартна крива залізнична ÐºÐ¾Ð»Ñ–Ñ (5м) +tile.rail_large_curve_7.name=Стандартна крива залізнична ÐºÐ¾Ð»Ñ–Ñ (7м) +tile.rail_large_curve_9.name=Стандартна крива залізнична ÐºÐ¾Ð»Ñ–Ñ (9м) +tile.rail_large_ramp.name=Стандартний підом залізничної колії (5м) +tile.rail_large_straight.name=Стандартна залізнична ÐºÐ¾Ð»Ñ–Ñ (5м) +tile.rail_large_straight_short.name=Стандартна залізнична ÐºÐ¾Ð»Ñ–Ñ (1м) +tile.rail_large_switch.name=Стандартний залізничний Ñтрілочний перевід (15м, Left) +tile.rail_large_switch_flipped.name=Стандартний залізничний Ñтрілочний перевід (15м, Right) +tile.rail_narrow.name=Вузькоколійні рейки +tile.rail_wood.name=Дерев'Ñні рейки +tile.rbmk_absorber.name=Борний поглинач нейтронів РБМК +tile.rbmk_blank.name=Структурна колона РБМК +tile.rbmk_boiler.name=Паровий канал РБМК +tile.rbmk_console.name=КонÑоль РБМК +tile.rbmk_cooler.name=Охолоджувач РБМК +tile.rbmk_control.name=Регулюючий Ñтрижень РБМК +tile.rbmk_control_auto.name=Ðвтоматичний регулюючий Ñтрижень РБМК +tile.rbmk_control_mod.name=Сповільнюючий регулюючий Ñтрижень РБМК +tile.rbmk_crane_console.name=КонÑоль крана РБМК +tile.rbmk_heater.name=Ðагрівач рідини РБМК +tile.rbmk_heatex.name=RBMK Heat Exchanger +tile.rbmk_loader.name=Паровий конектор РБМК +tile.rbmk_loader.desc=ДозволÑÑ” мати Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ð¾Ð´Ð¸ та пари в нижній чаÑтині реакторів РБМК$РозміÑтіть одну водопровідну трубу під колоною РБМК, потім з'єднувач,$а потім підключіть паропровід до з'єднувача. +tile.rbmk_moderator.name=Графітовий Ñповільнювач РБМК +tile.rbmk_outgasser.name=Канал Ð¾Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ Ð Ð‘ÐœÐš +tile.rbmk_reflector.name=Карбід вольфрамовий відбивач нейтронів РБМК +tile.rbmk_rod.name=Паливний Ñтрижень РБМК +tile.rbmk_rod_mod.name=Сповільнюючий паливний Ñтрижень РБМК +tile.rbmk_rod_reasim.name=Паливний Ñтрижень РБМК (РеаСім) +tile.rbmk_rod_reasim_mod.name=Сповільнюючий паливний Ñтрижень РБМК (РеаСім) +tile.rbmk_steam_inlet.name=РеаСім вхід води РБМК +tile.rbmk_steam_inlet.desc=Вводить воду в колони РБМК, Ñкщо бойлери РеаСім увімкнені$З'єднуєтьÑÑ Ð· колонами РБМК збоку +tile.rbmk_steam_outlet.name=РеаСім вихід пари РБМК +tile.rbmk_steam_outlet.desc=Виводить пару з колон РБМК, Ñкщо бойлери РеаСім увімкнені$З'єднуєтьÑÑ Ð· колонами РБМК збоку +tile.rbmk_storage.name=Колона Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð Ð‘ÐœÐš +tile.reactor_computer.name=Reactor Control +tile.reactor_conductor.name=Reactor Boiler +tile.reactor_control.name=Control Rods +tile.reactor_ejector.name=Reactor Waste Ejector +tile.reactor_element.name=Reactor Chamber +tile.reactor_hatch.name=Reactor Access Hatch +tile.reactor_inserter.name=Reactor Fuel Inserter +tile.red_barrel.name=Вибухова бочка +tile.red_cable.name=Червономідний кабель +tile.red_cable_classic.name=Червономідний кабель (КлаÑичний) +tile.red_cable_gauge.name=Датчик потужноÑті +tile.red_cable_gauge.desc=Кабель, Ñкий показує, Ñкільки енергії$переміщуєтьÑÑ Ð² мережі за один тік.$Розділені мережі, з’єднані блоками$Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‡ÐµÐ½Ð½Ñ ÐµÐ½ÐµÑ€Ð³Ñ–Ñ—, вважаютьÑÑ Ð¾Ð´Ð½Ñ–Ñ”ÑŽ Ñпільною мережею. +tile.red_cable_paintable.name=Червономідний кабель, Ñкий можна фарбувати +tile.red_connector.name=Конектор електропередач +tile.red_pylon.name=Опора лінії електропередач +tile.red_pylon_large.name=Велика опора лінії електропередач +tile.red_pylon_medium_steel.name=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ñталева опора лінії електропередач +tile.red_pylon_medium_steel_transformer.name=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ñталева опора лінії електропередач з транÑформатором +tile.red_pylon_medium_wood.name=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð´ÐµÑ€ÐµÐ²'Ñна опора лінії електропередач +tile.red_pylon_medium_wood_transformer.name=Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ð´ÐµÑ€ÐµÐ²'Ñна опора лінії електропередач з транÑформатором +tile.red_wire_coated.name=Покритий червономідний кабель +tile.refueler.name=Заправна ÑÑ‚Ð°Ð½Ñ†Ñ–Ñ +tile.reinforced_brick.name=Ðрмований камінь +tile.reinforced_brick_stairs.name=Сходи з армованого каменю +tile.reinforced_ducrete.name=Ðрмований уранобетон +tile.reinforced_glass.name=Ðрмоване Ñкло +tile.reinforced_glass_pane.name=Ðрмована ÑклÑна панель +tile.reinforced_lamp_off.name=Ðрмована лампа +tile.reinforced_lamp_on.name=Ðрмована лампа +tile.reinforced_light.name=Ðрмований Ñвітлокамінь +tile.reinforced_sand.name=Ðрмований піÑковик +tile.reinforced_stone.name=Щільний камінь +tile.reinforced_stone_stairs.name=Сходи з щільного каменю +tile.reinforced_laminate.name=Багатошарове Ñкло +tile.reinforced_laminate_pane.name=Багатошарова ÑклÑна панель +tile.rejuvinator.name=Rejuvination Device +tile.residue.name=Cloud Residue +tile.safe.name=Сейф +tile.sand_boron.name=Борний піÑок +tile.sand_boron_layer.name=Шар борного піÑку +tile.sand_dirty.name=Ðафтовий піÑок +tile.sand_dirty_red.name=Червоний нафтовий піÑок +tile.sand_gold.name=Золотий піÑок +tile.sand_gold198.name=ПіÑок золота-198 +tile.sand_lead.name=Свинцевий піÑок +tile.sand_polonium.name=Полонієвий піÑок +tile.sand_quartz.name=Кварцовий піÑок +tile.sand_uranium.name=Урановий піÑок +tile.sandbags.name=Мішки з піÑком +tile.sat_dock.name=Вантажний поÑадковий майданчик +tile.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe з екÑпериментальним Ñдерним двигуном (Декоративний блок) +tile.sat_laser.name=Орбітальний промінь Ñмерті (Декоративний блок) +tile.sat_mapper.name=Супутник ÐºÐ°Ñ€Ñ‚Ð¾Ð³Ñ€Ð°Ñ„ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ñ– (Декоративний блок) +tile.sat_radar.name=Супутник радіолокаційного доÑÐ»Ñ–Ð´Ð¶ÐµÐ½Ð½Ñ (Декоративний блок) +tile.sat_resonator.name=Супутник кÑенієвий резонатор (Декоративний блок) +tile.sat_scanner.name=Супутник з модулем глибинного ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів (Декоративний блок) +tile.schrabidic_block.name=Шрабідієва киÑлота +tile.seal_controller.name=Відкривач люка пуÑкової шахти +tile.seal_frame.name=Рама люка пуÑкової шахти +tile.seal_hatch.name=Люк пуÑкової шахти +tile.sellafield.0.name=Селлафіт +tile.sellafield.1.name=ГарÑчий Ñеллафіт +tile.sellafield.2.name=КиплÑчий Ñеллафіт +tile.sellafield.3.name=Палаючий Ñеллафіт +tile.sellafield.4.name=Пекельний Ñеллафіт +tile.sellafield.5.name=Селлафіт-коріум +tile.sellafield_bedrock.name=Корінний Ñеллафіт +tile.sellafield_slaked.name=Погашений Ñеллафіт +tile.semtex.name=Ð¡ÐµÐ¼Ñ‚ÐµÐºÑ +tile.silo_hatch.name=Люк пуÑкової шахти +tile.silo_hatch_large.name=Великий люк пуÑкової шахти +tile.skeleton_holder.name=О, це мертвий хлопець +tile.sliding_blast_door.name=РозÑувні захиÑні двері +tile.solar_mirror.name=Дзеркало геліоÑтату +tile.soyuz_capsule.name=Вантажна поÑадкова капÑула +tile.soyuz_launcher.name=Стартова площадка "Союза" +tile.spikes.name=Шипи +tile.snowglobe.name=Снігова ÐºÑƒÐ»Ñ +tile.spotlight_incandescent.name=Лампа в клітці +tile.spotlight_fluoro.name=ФлуореÑцентна лампа +tile.spotlight_halogen.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=Сталева решітка +tile.steel_grate_wide.name=Предметна решітка +tile.steel_grate_wide.desc=ДозволÑÑ” випаÑти предметам та доÑвіду +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_keyhole.name=Дивний камінь +tile.stone_keyhole_meta.name=Дивна цегла червоної кімнати +tile.stone_porous.name=ПориÑтий камінь +tile.stone_resource.asbestos.name=Хризотил +tile.stone_resource.bauxite.name=БокÑит +tile.stone_resource.hematite.name=Гематит +tile.stone_resource.limestone.name=ВапнÑк +tile.stone_resource.malachite.name=Малахіт +tile.stone_resource.sulfur.name=Сірчаний камінь +tile.stones_slab.lightstone.1.name=Плита зі Ñвітлокам'Ñної плитки +tile.stones_slab.lightstone.2.name=Плита зі Ñвітлокам'Ñної цегли +tile.struct_icf_core.name=ОÑновний компонент термоÑдерного реактора з інерційним утриманнÑм плазми +tile.struct_iter_core.name=ОÑновний компонент термоÑдерного реактора +tile.struct_launcher.name=Компонентний блок Ñтартового майданчика +tile.struct_launcher_core.name=ОÑновний компонент компактного Ñтартового майданчика +tile.struct_launcher_core_large.name=ОÑновний компонент великого Ñтартового майданчика +tile.struct_plasma_core.name=ОÑновний компонент нагрівача плазми +tile.struct_scaffold.name=Блок Ñ€Ð¸ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñтартового майданчика +tile.struct_soyuz_core.name=ОÑновний компонент Ñтартової площадки "Союза" +tile.struct_watz_core.name=ОÑновний компонент Ватцз електроÑтанції +tile.substation.name=ПідÑÑ‚Ð°Ð½Ñ†Ñ–Ñ +tile.sulfuric_acid_block.name=Сірчана киÑлота +tile.taint.name=Порча +tile.taint_barrel.name=Бочка з залишками IMP +tile.tape_recorder.name=Магнітофон +tile.tektite.name=Тектит +tile.teleanchor.name=Якір телепортації +tile.tesla.name=Котушка ТеÑли +tile.test_nuke.name=Test Nuke +tile.therm_endo.name=Ендотермічна бомба +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_arty.name=ÐртилерійÑька турель "Грег" +tile.turret_cheapo.name=Cheapo Gatling Sentry +tile.turret_chekhov.name=Великокаліберна кулеметна турель "КоÑторіз" +tile.turret_cwis.name=Phalanx Mk-15 CIWS +tile.turret_flamer.name=Flamethrower Turret +tile.turret_friendly.name=Ðвтоматична турель "МіÑтер Дружній" +tile.turret_fritz.name=Важка вогнеметна турель "Фріц" +tile.turret_heavy.name=Heavy Machine Gun Turret +tile.turret_himars.name=Реактивна артилерійÑька турель "Генрі" +tile.turret_howard.name=Здвоєний автоматичний ЗÐК Голкіпер "Говард" +tile.turret_howard_damaged.name=Здвоєний автоматичний ЗÐК Голкіпер "МафуÑаїл" +tile.turret_jeremy.name=Ðвтоматична гармата "Джеремі" +tile.turret_light.name=Light Machine Gun Turret +tile.turret_maxwell.name=ВиÑокоенергетична МÐЗЕР турель "МакÑвелл" +tile.turret_rocket.name=Rocket Turret +tile.turret_richard.name=РСЗВ турель "Річард" +tile.turret_spitfire.name=Turret I have no name for right now [WIP] +tile.turret_sentry.name=Вартова турель "Браун" +tile.turret_sentry_damaged.name=Вартова турель "Едвін" +tile.turret_tau.name=Tauon Turret +tile.turret_tauon.name=Прототипна турель XVL1456 "Тауон" +tile.vacuum.name=Вакуум +tile.vault_door.name=Двері Ñховища Волт-Тек +tile.vent_chlorine.name=ВипуÑкач хлору +tile.vent_chlorine_seal.name=Хлорний ущильнювач +tile.vent_cloud.name=ВипуÑкач хмари +tile.vent_pink_cloud.name=ВипуÑкач рожевої хмари +tile.vine_phosphor.large.name=Phosphor Vines +tile.vinyl_tile.large.name=Велика вінілова плитка +tile.vinyl_tile.small.name=Маленькі вінілові плитки +tile.vitrified_barrel.name=Бочка заÑклованих Ñдерних відходів +tile.volcanic_lava_block.name=Вулканічна лава +tile.volcano_core.name=Вулканічне Ñдро +tile.volcano_rad_core.name=Радіоактивне вулканічне Ñдро +tile.wand_air.name=Structure Wand Block (Air) +tile.wand_loot.name=Structure Wand Block (Lootable) +tile.wand_jigsaw.name=Structure Wand Block (Jigsaw) +tile.waste_earth.name=Мертва трава +tile.waste_leaves.name=Мертве лиÑÑ‚Ñ +tile.waste_log.name=Обвуглене дерево +tile.waste_mycelium.name=СÑючий міцелій +tile.waste_planks.name=Обвуглені дерев'Ñні дошки +tile.waste_trinitite.name=Тринітитова руда +tile.waste_trinitite_red.name=Червона тринітитова руда +tile.watz.name=Ватцз електроÑÑ‚Ð°Ð½Ñ†Ñ–Ñ +tile.watz_conductor.name=Watz Electricity Port +tile.watz_control.name=Reinforced Control Rods +tile.watz_cooler.name=Суперохолоджувач Ватцз реактора +tile.watz_core.name=Watz Reactor Control +tile.watz_element.name=Реакційна камера Ватцз +tile.watz_end.name=Стабілізаційний елемент Ватцз реактора +tile.watz_end_bolted.name=Стабілізаційний елемент Ватцз реактора (Заклепаний) +tile.watz_hatch.name=Watz Reactor Access Hatch +tile.watz_pump.name=Ðагнітаючий наÑÐ¾Ñ Ð’Ð°Ñ‚Ñ†Ð· +tile.wood_barrier.name=Дерев'Ñний бар'єр +tile.wood_structure.ceiling.name=Дерев'Ñна ÑÑ‚ÐµÐ»Ñ +tile.wood_structure.roof.name=Дерев'Ñний дах +tile.wood_structure.scaffold.name=Дерев'Ñні Ñ€Ð¸ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ +tile.yellow_barrel.name=Радіоактивна бочка +tile.zirnox_destroyed.name=Знищений ЦИРÐОКС + +tile.large_vehicle_door.name=Великі двері Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ñпортного заÑобу +tile.water_door.name=Герметичні двері +tile.qe_containment.name=QE Стримуючі двері +tile.qe_sliding_door.name=QE РозÑувні двері +tile.round_airlock_door.name=Круглі двері гідрошлюзу +tile.secure_access_door.name=Двері доÑтупу перÑоналу +tile.sliding_seal_door.name=РозÑувні герметичні двері + +trait.asbestos=ÐзбеÑÑ‚ +trait.blinding=ЗаÑÐ»Ñ–Ð¿Ð»ÐµÐ½Ð½Ñ +trait.coal=Вугільний пил +trait.digamma=Дігамма-Ð²Ð¸Ð¿Ñ€Ð¾Ð¼Ñ–Ð½ÐµÐ½Ð½Ñ +trait.drop=Ðебезпечно викидувати +trait.explosive=Вогненебезпечно / Вибухонебезпечно +trait.furnace=Дає %s операцій в Ñдерній пічі +trait.heat=Забезпечує %s тепла +trait.hlParticle=Період напіврозпаду чаÑтинки: %s +trait.hlPlayer=Період напіврозпаду гравцÑ: %s +trait.hot=Пірофорний / ГарÑчий +trait.hydro=Гідрореактивний +trait.radioactive=Радіоактивний +trait.radResistance=СтійкіÑть до випромініненнÑ: %s + +trait.rbmk.coreTemp=Температура ÑтрижнÑ: %s +trait.rbmk.depletion=ЗбідненнÑ: %s +trait.rbmk.diffusion=РозÑіюваннÑ: %s +trait.rbmk.fluxFunc=Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ: %s +trait.rbmk.funcType=Тип функції: %s +trait.rbmk.heat=Тепло на потік: %s +trait.rbmk.melt=Температура плавленнÑ: %s +trait.rbmk.neutron.any=Ð’ÑÑ– нейтрони +trait.rbmk.neutron.fast=Швидкі нейтрони +trait.rbmk.neutron.slow=Повільні нейтрони +trait.rbmk.skinTemp=Температура оболонки: %s +trait.rbmk.source=СамозаймаєтьÑÑ +trait.rbmk.splitsInto=РозпадаєтьÑÑ Ð½Ð°: %s +trait.rbmk.splitsWith=РозпадаєтьÑÑ Ð²Ñ–Ð´: %s +trait.rbmk.xenon=КÑенонове отруєннÑ: %s +trait.rbmk.xenonBurn=Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ Ð²Ð¸Ð³Ð¾Ñ€Ð°Ð½Ð½Ñ ÐºÑенону: %s +trait.rbmk.xenonGen=Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‡ÐµÐ½Ð½Ñ ÐºÑенону: %s + +trait.rbmx.coreTemp=Ð•Ð½Ñ‚Ñ€Ð¾Ð¿Ñ–Ñ ÑтрижнÑ: %s +trait.rbmx.depletion=ХруÑткіÑть: %s +trait.rbmx.diffusion=Потік: %s +trait.rbmx.fluxFunc=Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¿Ñ€Ð¸Ñ€ÐµÑ‡ÐµÐ½Ð¾Ñті: %s +trait.rbmx.funcType=Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ—: %s +trait.rbmx.heat=Скоринка на тік на повну потужніÑть: %s +trait.rbmx.melt=Глибина розчавленнÑ: %s +trait.rbmk.neutron.any.x=УÑÑ– неевклідові форми +trait.rbmk.neutron.fast.x=Еліптичні неевклідні форми +trait.rbmk.neutron.slow.x=Гіперболічні неевклідні форми +trait.rbmx.skinTemp=Ð•Ð½Ñ‚Ñ€Ð¾Ð¿Ñ–Ñ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ¸: %s +trait.rbmx.source=СамоÑпалюєтьÑÑ +trait.rbmx.splitsInto=ВідправлÑєтьÑÑ Ð´Ð¾: %s +trait.rbmx.splitsWith=Прибуває з: %s +trait.rbmx.xenon=Свинцеве отруєннÑ: %s +trait.rbmx.xenonBurn=Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ Ñ€ÑƒÐ¹Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñвинцю: %s +trait.rbmx.xenonGen=Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñвинцю: %s + +trait.tile.cluster=Випадає лише тоді, коли зламав гравець +trait.tile.depth=Можна зламати тільки вибухом + +tool.ability.centrifuge=Ðвтоцентріфуга +tool.ability.crystallizer=ÐвтокриÑталізатор +tool.ability.explosion=Вибух +tool.ability.hammer=Зона дії +tool.ability.luck=Вдача +tool.ability.mercury=Ртутний дотик +tool.ability.midas=Дотик МідаÑа +tool.ability.recursion=Жилковий майнер +tool.ability.shredder=Ðвтоподрібнювач +tool.ability.silktouch=Шовковий дотик +tool.ability.smelter=Ðвтопереплавка + +turret.animals=ЦілитиÑÑŒ по нейтральним: %s +turret.arty.artillery=§eÐртилерійÑький режим$Мін радіуÑ: 250m$ÐœÐ°ÐºÑ Ñ€Ð°Ð´Ñ–ÑƒÑ: 3,000m +turret.arty.cannon=§eГарматний режим$Мін радіу: 32m$ÐœÐ°ÐºÑ Ñ€Ð°Ð´Ñ–ÑƒÑ: 250m +turret.arty.manual=§eРучний режим$Range: 3,000m +turret.machines=ЦілитиÑÑŒ по машинам: %s +turret.mobs=ЦілитиÑÑŒ по мобам: %s +turret.none=None +turret.off=ВИМК +turret.on=ВВІМК +turret.players=ЦілитиÑÑŒ по гравцÑм: %s + +upgrade.acid=Ðеобхідна киÑлота %s +upgrade.burn=Burn %smb/t for %sHE +upgrade.consumption=Ð¡Ð¿Ð¾Ð¶Ð¸Ð²Ð°Ð½Ð½Ñ %s +upgrade.coolantConsumption=Витрата охолоджувальної рідини %s +upgrade.delay=ШвидкіÑть роботи %s +upgrade.efficiency=ЕфективніÑть %s +upgrade.fortune=Вдача %s +upgrade.overheatChance=ЙмовірніÑть перегріву %s +upgrade.productivity=ПродуктивніÑть %s +upgrade.range=Ð Ð°Ð´Ñ–ÑƒÑ %s + +upgrade.gui.title=§lДопуÑтимі покращеннÑ:§r +upgrade.gui.afterburner= * §dФорÑаж§r: СкладаєтьÑÑ Ð´Ð¾ %s рівнів +upgrade.gui.effectiveness= * §aЕфективніÑть§r: СкладаєтьÑÑ Ð´Ð¾ %s рівнів +upgrade.gui.overdrive= * §7Перевантаженнѧr: СкладаєтьÑÑ Ð´Ð¾ %s рівнів +upgrade.gui.power= * §9Енергозбереженнѧr: СкладаєтьÑÑ Ð´Ð¾ %s рівнів +upgrade.gui.speed= * §4ШвидкіÑть§r: СкладаєтьÑÑ Ð´Ð¾ %s рівнів + +wavelengths.name.ir=Інфрачервоний +wavelengths.name.visible=Видиме Ñвітло +wavelengths.name.uv=Ультрафіолет +wavelengths.name.gamma=Гамма +wavelengths.name.drx=Дігамма +wavelengths.waveRange.ir=780нм-1мм +wavelengths.waveRange.visible=400нм-780нм +wavelengths.waveRange.uv=100нм-400нм +wavelengths.waveRange.gamma=<100пм +wavelengths.waveRange.drx=1916169 планківÑької довжини + +weapon.ability.beheader=Обезголовлювач +weapon.ability.bobble=Вдача колекціонера +# Should rhyme with the translation for "chainsaw" +weapon.ability.chainsaw=Болепила +weapon.ability.fire=Ð“Ð¾Ñ€Ñ–Ð½Ð½Ñ +weapon.ability.radiation=Радіоактивне лезо +weapon.ability.phosphorus=ФоÑфорний дотик +weapon.ability.stun=ÐŸÑ€Ð¸Ð³Ð¾Ð»Ð¾Ð¼ÑˆÐµÐ½Ð½Ñ +weapon.ability.vampire=Вампір +weapon.elecGun.modeChange=Режим Ñтрільби змінено на: +weapon.elecGun.glass_cannon.radio=Радіохвилі +weapon.elecGun.glass_cannon.micro=Мікрохвилі +weapon.elecGun.glass_cannon.ir=Інфрачервоне Ñвітло +weapon.elecGun.glass_cannon.visible=Видиме Ñвітло +weapon.elecGun.glass_cannon.uv=Ультрафіолет +weapon.elecGun.glass_cannon.xray=Ренген +weapon.elecGun.glass_cannon.gamma=Гамма промінь + +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 рівнів \ No newline at end of file From 30be3d5fa7d46d9fe9bdac7a067901fd408a74cc Mon Sep 17 00:00:00 2001 From: arantirnecrolord Date: Wed, 28 May 2025 15:45:28 +0300 Subject: [PATCH 097/181] Add files via upload --- src/main/resources/assets/hbm/lang/uk_UA.lang | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/uk_UA.lang b/src/main/resources/assets/hbm/lang/uk_UA.lang index b85e72460..b3b66d3c5 100644 --- a/src/main/resources/assets/hbm/lang/uk_UA.lang +++ b/src/main/resources/assets/hbm/lang/uk_UA.lang @@ -1793,7 +1793,7 @@ item.ammo_standard.bmg50_he.name=Ðабій .50 BMG (ФугаÑний) item.ammo_standard.bmg50_fmj.name=Ðабій .50 BMG (Суцільнометалева оболонка) item.ammo_standard.bmg50_jhp.name=Ðабій .50 BMG (ЕкÑпанÑивний) item.ammo_standard.bmg50_sm.name=Ðабій .50 BMG (Зірковий метал) -item.ammo_standard.bmg50_sp.name=Ðабій .50 BMG (Ðапівоболонковй) +item.ammo_standard.bmg50_sp.name=Ðабій .50 BMG (Ðапівоболонковий) item.ammo_standard.capacitor.name=КонденÑатор (Стандартний) item.ammo_standard.capacitor_ir.name=КонденÑатор (Ðизька довжина хвилі) item.ammo_standard.capacitor_overcharge.name=КонденÑатор (Перевантажений) @@ -1834,13 +1834,13 @@ item.ammo_standard.m357_bp.name=Ðабій .357 Magnum (Чорний порох) item.ammo_standard.m357_express.name=Ðабій .357 Magnum (Суцільнометалевий бронебійний) item.ammo_standard.m357_fmj.name=Ðабій .357 Magnum (Суцільнометалева оболонка) item.ammo_standard.m357_jhp.name=.Ðабій .357 Magnum (ЕкÑпанÑивний) -item.ammo_standard.m357_sp.name=Ðабій .357 Magnum (Ðапівоболонковй) +item.ammo_standard.m357_sp.name=Ðабій .357 Magnum (Ðапівоболонковий) item.ammo_standard.m44_ap.name=Ðабій .44 Magnum (Бронебійний) item.ammo_standard.m44_bp.name=Ðабій .44 Magnum (Чорний порох) item.ammo_standard.m44_express.name=Ðабій .44 Magnum (Суцільнометалевий бронебійний) item.ammo_standard.m44_fmj.name=Ðабій .44 Magnum (Суцільнометалева оболонка) item.ammo_standard.m44_jhp.name=Ðабій .44 Magnum (ЕкÑпанÑивний) -item.ammo_standard.m44_sp.name=Ðабій .44 Magnum (Ðапівоболонковй) +item.ammo_standard.m44_sp.name=Ðабій .44 Magnum (Ðапівоболонковий) item.ammo_standard.nuke_balefire.name=Ядерний мінізарÑд, BF Ñйце item.ammo_standard.nuke_demo.name=Ядерний мінізарÑд, Руйнівний item.ammo_standard.nuke_high.name=Ядерний мінізарÑд, Потужний @@ -1850,26 +1850,26 @@ item.ammo_standard.nuke_tots.name=Ядерний мінізарÑд, Малют item.ammo_standard.p22_ap.name=Ðабій .22 LR (Бронебійний) item.ammo_standard.p22_fmj.name=Ðабій .22 LR (Суцільнометалева оболонка) item.ammo_standard.p22_jhp.name=Ðабій .22 LR (ЕкÑпанÑивний) -item.ammo_standard.p22_sp.name=Ðабій .22 LR (Ðапівоболонковй) +item.ammo_standard.p22_sp.name=Ðабій .22 LR (Ðапівоболонковий) item.ammo_standard.p45_ap.name=Ðабій .45 (Бронебійний) item.ammo_standard.p45_du.name=Ðабій .45 (Збіднений уран) item.ammo_standard.p45_fmj.name=Ðабій .45 (Суцільнометалева оболонка) item.ammo_standard.p45_jhp.name=Ðабій .45 (ЕкÑпанÑивний) -item.ammo_standard.p45_sp.name=Ðабій .45 (Ðапівоболонковй) +item.ammo_standard.p45_sp.name=Ðабій .45 (Ðапівоболонковий) item.ammo_standard.p9_ap.name=Ðабій 9-мм (Бронебійний) item.ammo_standard.p9_fmj.name=Ðабій 9-мм (Суцільнометалева оболонка) item.ammo_standard.p9_jhp.name=Ðабій 9-мм (ЕкÑпанÑивний) -item.ammo_standard.p9_sp.name=Ðабій 9-мм (Ðапівоболонковй) +item.ammo_standard.p9_sp.name=Ðабій 9-мм (Ðапівоболонковий) item.ammo_standard.r556_ap.name=Ðабій 5.56-мм (Бронебійний) item.ammo_standard.r556_fmj.name=Ðабій 5.56-мм (Суцільнометалева оболонка) item.ammo_standard.r556_jhp.name=Ðабій 5.56-мм (ЕкÑпанÑивний) -item.ammo_standard.r556_sp.name=Ðабій 5.56-мм (Ðапівоболонковй) +item.ammo_standard.r556_sp.name=Ðабій 5.56-мм (Ðапівоболонковий) item.ammo_standard.r762_ap.name=Ðабій 7.62-мм (Бронебійний) item.ammo_standard.r762_du.name=Ðабій 7.62-мм (Збіднений уран) item.ammo_standard.r762_fmj.name=Ðабій 7.62-мм (Суцільнометалева оболонка) item.ammo_standard.r762_he.name=Ðабій 7.62-мм (ФугаÑний) item.ammo_standard.r762_jhp.name=Ðабій 7.62-мм (ЕкÑпанÑивний) -item.ammo_standard.r762_sp.name=Ðабій 7.62-мм (Ðапівоболонковй) +item.ammo_standard.r762_sp.name=Ðабій 7.62-мм (Ðапівоболонковий) item.ammo_standard.rocket_demo.name=Ракета, Руйнівна item.ammo_standard.rocket_he.name=Ракета, ФугаÑна item.ammo_standard.rocket_heat.name=Ракета, КумулÑтивна @@ -2361,7 +2361,7 @@ item.chlorophyte_pickaxe.name=Хлорофітове кайло item.chocolate.name=Панцершоколад item.chocolate.desc=Танковий шоколад? Впевнений, що це проÑто мет. item.chocolate_milk.name=Шоколадне молоко -item.chopper.name=Гвинтокрил МиÑлиивець +item.chopper.name=Гвинтокрил МиÑливець item.chopper_blades.name=Лопать Гвинтокрила МиÑÐ»Ð¸Ð²Ñ†Ñ item.chopper_gun.name=ІмпульÑна гармата item.chopper_head.name=Кокпіт Гвинтокрила МиÑÐ»Ð¸Ð²Ñ†Ñ @@ -2572,7 +2572,7 @@ item.crystal_horn.name=КриÑтальний ріг item.crystal_horn.desc=Ðе Ñправжній ріг. item.crystal_horn.desc.P11=Справжній ріг. item.crystal_iron.name=КриÑтал заліза -item.crystal_lead.name=КриÑтал Ñввинцю +item.crystal_lead.name=КриÑтал Ñвинцю item.crystal_lapis.name=КриÑтал лазуриту item.crystal_lithium.name=КриÑтал літію item.crystal_niter.name=КриÑтал нітрату калію @@ -2978,7 +2978,7 @@ item.hazmat_plate_red.name=УдоÑконалена захиÑна куртка item.hazmat_red_kit.name=УдоÑконалений захиÑний комплект item.heart_booster.name=Серце підÑилювач item.heart_container.name=Ціле Ñерце -item.heart_fab.name=Чудове Ñерце +item.heart_fab.name=Серце темрÑви item.heart_piece.name=ЧаÑтинка ÑÐµÑ€Ñ†Ñ item.heavy_component.name=Важкий компонент: %s item.hev_battery.name=Ð‘Ð°Ñ‚Ð°Ñ€ÐµÑ ÐºÐ¾Ñтюма @@ -5228,10 +5228,10 @@ tile.det_cord.name=Детонуючий шнур tile.det_miner.name=ШахтарÑький зарÑд tile.det_nuke.name=Ядерний зарÑд tile.dfc_core.name=Ядро реактору темного Ñинтезу -tile.dfc_emitter.name=Випромінювач рекатору темного Ñинтезу -tile.dfc_injector.name=Паливний інжектор рекатору темного Ñинтезу -tile.dfc_receiver.name=Приймач рекатору темного Ñинтезу -tile.dfc_stabilizer.name=Стабілізатор рекатору темного Ñинтезу +tile.dfc_emitter.name=Випромінювач реактору темного Ñинтезу +tile.dfc_injector.name=Паливний інжектор реактору темного Ñинтезу +tile.dfc_receiver.name=Приймач реактору темного Ñинтезу +tile.dfc_stabilizer.name=Стабілізатор реактору темного Ñинтезу tile.dirt_dead.name=Мертвий ґрунт tile.dirt_oily.name=Ðафтовий ґрунт tile.drill_pipe.name=Бурильна труба From 381febd64eeeac839054371801b72322edc35ab4 Mon Sep 17 00:00:00 2001 From: arantirnecrolord Date: Wed, 28 May 2025 16:00:43 +0300 Subject: [PATCH 098/181] Update UA --- src/main/resources/assets/hbm/lang/uk_UA.lang | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/uk_UA.lang b/src/main/resources/assets/hbm/lang/uk_UA.lang index b3b66d3c5..38cc3b361 100644 --- a/src/main/resources/assets/hbm/lang/uk_UA.lang +++ b/src/main/resources/assets/hbm/lang/uk_UA.lang @@ -16,7 +16,7 @@ achievement.bossMaskman.desc=ÐавалÑти великому хлопчику. achievement.bossMaskman=6 міÑÑців Ñтрокової Ñлужби Ñ– вÑе, що Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð², - це паршива футболка achievement.bossMeltdown.desc=Скоріше жахливо, ніж чудово, але Ñ Ð¿Ñ€Ð¸Ð¹Ð¼Ñƒ те що можу отримати. achievement.bossMeltdown=3.6 Рентген -achievement.bossWorm.desc=ФабÑтафф. ÐœÐ¾Ñ Ð´ÑƒÐ¿Ð°. Рти рахуй. +achievement.bossWorm.desc=ПроÑто маленький металевий хробак. achievement.bossWorm=Ð Ð¾Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð‘Ð°Ð»Ð»Ñ-О-Трон achievement.bossUFO.desc=Йо, що у Ð½Ð°Ñ Ñ‚ÑƒÑ‚? Величазний коÑмічний корабель наближаєтьÑÑ Ð´Ð¾ блок-кораблÑ? achievement.bossUFO=Ðй Лмао @@ -905,6 +905,7 @@ crucible.tcalloy=Виробництво технецієвої Ñталі damage.inset=Опір при повному комплекті: damage.item=Опір до: +damage.category.EN=Енергії damage.category.EXPL=Вибухів damage.category.FIRE=Вогню damage.category.PROJ=СнарÑдів @@ -2275,8 +2276,6 @@ item.canned_tuna.name=КонÑервований тунець item.canned_tuna.desc=Я не можу Ñказати, чи це Ñправді тунець, чи Ñушений цемент. item.canned_yogurt.name=КонÑервований йогурт item.canned_yogurt.desc=Мабуть, зіпÑований, але що поробиш. -item.canteen_13.name=ФлÑга Сховища 13 -item.canteen_fab.name=Чудова горілка item.canteen_vodka.name=Стильна флÑга item.cap_fritz.name=Кришка від плÑшки Фріц-Коли item.cap_korl.name=Кришка від плÑшки Корлу @@ -2720,7 +2719,6 @@ item.euphemium_plate.name=Юхимієвий нагрудник item.euphemium_stopper.name=Стопор item.explosive_lenses.name=МаÑив вибухових лінз item.explosive_lenses.desc=Збірка 8 плаÑтичних вибухових лінз з тонким$алюмінієвим штовхачем, дюралюмінієвим щитом, та$мініатюрними дротÑномоÑтовим детонатором. -item.fabsols_vodka.name=Горілка ФабÑол item.factory_core_advanced.name=Advanced Factory Energy Cluster item.factory_core_titanium.name=Basic Factory Energy Cluster item.fallout.name=Купка радіоактивних опадів From 9ff55acccf6bf15a3ea6d698178437c443686a21 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 28 May 2025 16:56:21 +0200 Subject: [PATCH 099/181] destroy tickets when we aren't using them --- changelog | 4 +- .../blocks/machine/MachineChemicalPlant.java | 2 + .../hbm/entity/item/EntityDeliveryDrone.java | 4 +- .../logic/EntityExplosionChunkloading.java | 2 +- .../com/hbm/entity/logic/EntityPlaneBase.java | 2 +- .../missile/EntityMissileAntiBallistic.java | 5 +- .../entity/missile/EntityMissileBaseNT.java | 4 +- .../projectile/EntityArtilleryRocket.java | 4 +- .../projectile/EntityArtilleryShell.java | 4 +- .../projectile/EntityBulletBaseMK4CL.java | 4 +- .../com/hbm/items/tool/ItemToolAbility.java | 10 ---- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../tileentity/RenderChemicalPlant.java | 55 ++++++++++++++++++ .../render/tileentity/RenderChemplant.java | 1 + .../TileEntityMachineChemicalPlant.java | 34 +++++++++++ .../machine/TileEntityMachineChemplant.java | 1 + .../{chemplant.obj => chemical_plant.obj} | 0 .../{chemplant.png => chemical_plant.png} | Bin ...ant_fluid.png => chemical_plant_fluid.png} | Bin 20 files changed, 107 insertions(+), 32 deletions(-) create mode 100644 src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java rename src/main/resources/assets/hbm/models/machines/{chemplant.obj => chemical_plant.obj} (100%) rename src/main/resources/assets/hbm/textures/models/machines/{chemplant.png => chemical_plant.png} (100%) rename src/main/resources/assets/hbm/textures/models/machines/{chemplant_fluid.png => chemical_plant_fluid.png} (100%) diff --git a/changelog b/changelog index 45c3f8101..cf105af6d 100644 --- a/changelog +++ b/changelog @@ -26,4 +26,6 @@ * Fixed non-standard template folder recipes not using the correct icon * Fixed jetpack flight time not resetting when equipped like armor, causing kicks on servers that don't have flying cheats allowed * Fixed missing energy damage category localization -* Fixed server crash caused by tool abilities \ No newline at end of file +* Fixed server crash caused by tool abilities +* Fixed chunkloading entities not releasing their loading tickets properly +* Potentially fixed a dupe issue related to tool abilities \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java index 58fd028c6..6e9669efe 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; @@ -14,6 +15,7 @@ public class MachineChemicalPlant extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineChemicalPlant(); return null; } diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java index 951fae761..ac480e2e3 100644 --- a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -209,9 +209,7 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loaderTicket.getChunkList()) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } + ForgeChunkManager.releaseTicket(loaderTicket); } } diff --git a/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java index ca2ad6f6f..6d5611950 100644 --- a/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java +++ b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java @@ -45,7 +45,7 @@ public abstract class EntityExplosionChunkloading extends Entity implements IChu public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null && loadedChunk != null) { - ForgeChunkManager.unforceChunk(loaderTicket, loadedChunk); + ForgeChunkManager.releaseTicket(loaderTicket); } } } diff --git a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java index ebb1accb2..1a9910df7 100644 --- a/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java +++ b/src/main/java/com/hbm/entity/logic/EntityPlaneBase.java @@ -187,7 +187,7 @@ public abstract class EntityPlaneBase extends Entity implements IChunkLoader { public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) ForgeChunkManager.unforceChunk(loaderTicket, chunk); + ForgeChunkManager.releaseTicket(loaderTicket); } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index 8cd806ca0..b4e296fe0 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -74,7 +74,6 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements if(prevTracking == null && this.tracking != null) { ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 24, 3F); } - if(this.tracking != null && !this.tracking.isDead) { this.aimAtTarget(); } else { @@ -222,9 +221,7 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } + ForgeChunkManager.releaseTicket(loaderTicket); } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index c0e51f619..610341732 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -348,9 +348,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } + ForgeChunkManager.releaseTicket(loaderTicket); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java index 2c1773df7..9167c33a7 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java @@ -178,9 +178,7 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } + ForgeChunkManager.releaseTicket(loaderTicket); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index e608b49d5..9258e5a7d 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -213,9 +213,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } + ForgeChunkManager.releaseTicket(loaderTicket); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java index 42591af80..9e551c8e6 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseMK4CL.java @@ -60,9 +60,7 @@ public class EntityBulletBaseMK4CL extends EntityBulletBaseMK4 implements IChunk public void clearChunkLoader() { if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } + ForgeChunkManager.releaseTicket(loaderTicket); } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index b23fe62d8..bd3fc6ddb 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -31,7 +31,6 @@ 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.Minecraft; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; @@ -47,7 +46,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.play.client.C07PacketPlayerDigging; import net.minecraft.network.play.server.S23PacketBlockChange; import net.minecraft.stats.StatList; import net.minecraft.util.EnumChatFormatting; @@ -370,14 +368,6 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro player.destroyCurrentEquippedItem(); } } - - // TODO: Missing from other method, may be unneeded - if(flag && flag1) { - block.harvestBlock(world, player, x, y, z, l); - } - - // TODO: Added from other method, may be unneeded - Minecraft.getMinecraft().getNetHandler().addToSendQueue(new C07PacketPlayerDigging(2, x, y, z, Minecraft.getMinecraft().objectMouseOver.sideHit)); } // Why was this commented out? diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 4511c9fc8..294781953 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -268,6 +268,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssemfac.class, new RenderAssemfac()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.class, new RenderChemplant()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemicalPlant.class, new RenderChemicalPlant()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemfac.class, new RenderChemfac()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineBAT9000.class, new RenderBAT9000()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 9d0008cff..8e7b9f6b3 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -148,6 +148,7 @@ public class ResourceManager { public static final IModelCustom chemplant_piston = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_piston.obj")); public static final IModelCustom chemplant_fluid = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_fluid.hmf")); public static final IModelCustom chemplant_fluidcap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_fluidcap.hmf")); + public static final IModelCustom chemical_plant = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemical_plant.obj")); public static final IModelCustom chemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemfac.obj")); //Mixer @@ -579,6 +580,7 @@ public class ResourceManager { public static final ResourceLocation chemplant_spinner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_spinner_new.png"); public static final ResourceLocation chemplant_piston_tex = new ResourceLocation(RefStrings.MODID, "textures/models/chemplant_piston_new.png"); public static final ResourceLocation chemplant_fluid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/lavabase_small.png"); + public static final ResourceLocation chemical_plant_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemical_plant.png"); public static final ResourceLocation chemfac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemfac.png"); //Mixer diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java b/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java new file mode 100644 index 000000000..591571c57 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderChemicalPlant.java @@ -0,0 +1,55 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderChemicalPlant extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glRotated(90, 0, 1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + + bindTexture(ResourceManager.chemical_plant_tex); + ResourceManager.chemical_plant.renderPart("Base"); + ResourceManager.chemical_plant.renderPart("Slider"); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_chemical_plant); + } + + @Override + public IItemRenderer getRenderer() { + + return new ItemRenderBase() { + + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(3.5, 3.5, 3.5); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chemical_plant_tex); + ResourceManager.chemical_plant.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java index 58f90eff9..298c358d0 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java +++ b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java @@ -12,6 +12,7 @@ import com.hbm.tileentity.machine.TileEntityMachineChemplant; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; +@Deprecated public class RenderChemplant extends TileEntitySpecialRenderer { public RenderChemplant() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java new file mode 100644 index 000000000..c214b7e79 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -0,0 +1,34 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.tileentity.TileEntityMachineBase; + +public class TileEntityMachineChemicalPlant extends TileEntityMachineBase { + + public FluidTank[] inputTanks; + public FluidTank[] outputTanks; + + public long power; + public long maxPower = 1_000_000; + + public TileEntityMachineChemicalPlant() { + super(22); + this.inputTanks = new FluidTank[3]; + this.outputTanks = new FluidTank[3]; + for(int i = 0; i < 3; i++) { + this.inputTanks[i] = new FluidTank(Fluids.NONE, 24_000); + this.outputTanks[i] = new FluidTank(Fluids.NONE, 24_000); + } + } + + @Override + public String getName() { + return "container.machineChemicalPlant"; + } + + @Override + public void updateEntity() { + + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index a482e7e20..cec95fb09 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -43,6 +43,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +@Deprecated public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider { public long power; diff --git a/src/main/resources/assets/hbm/models/machines/chemplant.obj b/src/main/resources/assets/hbm/models/machines/chemical_plant.obj similarity index 100% rename from src/main/resources/assets/hbm/models/machines/chemplant.obj rename to src/main/resources/assets/hbm/models/machines/chemical_plant.obj diff --git a/src/main/resources/assets/hbm/textures/models/machines/chemplant.png b/src/main/resources/assets/hbm/textures/models/machines/chemical_plant.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/machines/chemplant.png rename to src/main/resources/assets/hbm/textures/models/machines/chemical_plant.png diff --git a/src/main/resources/assets/hbm/textures/models/machines/chemplant_fluid.png b/src/main/resources/assets/hbm/textures/models/machines/chemical_plant_fluid.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/machines/chemplant_fluid.png rename to src/main/resources/assets/hbm/textures/models/machines/chemical_plant_fluid.png From 087be46083d4193641417948f3babf2269883a37 Mon Sep 17 00:00:00 2001 From: Kirby7871 <123486466+Kirby7871@users.noreply.github.com> Date: Thu, 29 May 2025 02:01:39 +0200 Subject: [PATCH 100/181] Update TileEntityLaunchPadBase.java Added another OC (OpenComputers) function, getPos(). It returns the position of the launch pad. (x,y,z) --- .../hbm/tileentity/bomb/TileEntityLaunchPadBase.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java index 051e69092..623f78370 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPadBase.java @@ -528,6 +528,12 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl return new Object[] {false}; } + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPos(Context context, Arguments args) { + return new Object[] {xCoord, yCoord, zCoord}; + } + @Override @Optional.Method(modid = "OpenComputers") public String[] methods() { @@ -536,7 +542,8 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl "getFluid", "canLaunch", "getTier", - "launch" + "launch", + "getPos" }; } @@ -554,6 +561,8 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl return getTier(context, args); case ("launch"): return launch(context, args); + case ("getPos"): + return getPos(context, args); } throw new NoSuchMethodException(); } From 65f1866e8c9d4324dc5c61564925691fdf5b27e9 Mon Sep 17 00:00:00 2001 From: Kirby7871 <123486466+Kirby7871@users.noreply.github.com> Date: Thu, 29 May 2025 02:06:40 +0200 Subject: [PATCH 101/181] Update TileEntityTurretBaseNT.java Added an OpenComputers function, getPos(). It returns the (x,y,z) coordinates of the turret in question --- .../hbm/tileentity/turret/TileEntityTurretBaseNT.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 18b960f67..8c7c15646 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -995,6 +995,12 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple return new Object[] {this.aligned}; } + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPos(Context context, Arguments args) { + return new Object[] {xCoord, yCoord, zCoord}; + } + @Override @Optional.Method(modid = "OpenComputers") public boolean canConnectNode(ForgeDirection side) { @@ -1016,6 +1022,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple "hasTarget", "getAngle", "isAligned" + "getPos" }; } @@ -1045,6 +1052,8 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple return getAngle(context, args); case "isAligned": return isAligned(context, args); + case "getPos": + return getPos(context, args); } throw new NoSuchMethodException(); } From 3a8e0048a3567e0543d4d67ed840e99210e334f8 Mon Sep 17 00:00:00 2001 From: Kirby7871 <123486466+Kirby7871@users.noreply.github.com> Date: Thu, 29 May 2025 02:12:39 +0200 Subject: [PATCH 102/181] Update TileEntityMachineRadarNT.java Added an OpenComputers function, getPos(). It retuns the position of this radar. --- .../hbm/tileentity/machine/TileEntityMachineRadarNT.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 5e4cae3c7..7006399c0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -694,6 +694,12 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I return new Object[]{false, e.posX, e.posY, e.posZ, type}; } + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPos(Context context, Arguments args) { + return new Object[] {xCoord, yCoord, zCoord}; + } + @Override @Optional.Method(modid = "OpenComputers") public String[] methods() { @@ -707,6 +713,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I "isIndexPlayer", "getIndexType", "getEntityAtIndex" + "getPos" }; } @@ -732,6 +739,8 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I return getIndexType(context, args); case ("getEntityAtIndex"): return getEntityAtIndex(context, args); + case("getPos"): + return getPos(context, args); } throw new NoSuchMethodException(); } From d01f54d1bac85c072293a8f21ca3c07f7e14d5cd Mon Sep 17 00:00:00 2001 From: Kirby7871 <123486466+Kirby7871@users.noreply.github.com> Date: Thu, 29 May 2025 02:36:36 +0200 Subject: [PATCH 103/181] Update TileEntityMachineRadarNT.java Fixed a comma typo --- .../com/hbm/tileentity/machine/TileEntityMachineRadarNT.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 7006399c0..9e3c6e6fc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -712,7 +712,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I "getAmount", "isIndexPlayer", "getIndexType", - "getEntityAtIndex" + "getEntityAtIndex", "getPos" }; } From 4f975293a5ca51373887bfff9a42fe9c8b9dbd32 Mon Sep 17 00:00:00 2001 From: Kirby7871 <123486466+Kirby7871@users.noreply.github.com> Date: Thu, 29 May 2025 02:37:27 +0200 Subject: [PATCH 104/181] Update TileEntityTurretBaseNT.java Fixed Comma typo --- .../java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 8c7c15646..67455333e 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -1021,7 +1021,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple "getTargeting", "hasTarget", "getAngle", - "isAligned" + "isAligned", "getPos" }; } From a57e5384791fe79db7ba6bc693ad91d2dedad18b Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 29 May 2025 18:09:00 +0200 Subject: [PATCH 105/181] go go gadget: 5 cups of coffee --- .../com/hbm/inventory/SlotNonRetarded.java | 2 +- .../com/hbm/inventory/UpgradeManagerNT.java | 9 +- .../inventory/container/ContainerBase.java | 22 ++++ .../ContainerMachineChemicalPlant.java | 79 ++++++++++++ .../gui/GUIMachineChemicalPlant.java | 66 ++++++++++ .../recipes/loader/GenericRecipes.java | 121 +++++++++++++++++- src/main/java/com/hbm/items/ModItems.java | 28 ---- .../com/hbm/items/tool/ItemToolAbility.java | 12 +- src/main/java/com/hbm/main/MainRegistry.java | 8 ++ .../TileEntityMachineChemicalPlant.java | 103 ++++++++++++++- .../textures/gui/processing/gui_chemplant.png | Bin 4015 -> 4029 bytes .../gui/processing/gui_recipe_selector.png | Bin 0 -> 1778 bytes 12 files changed, 413 insertions(+), 37 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineChemicalPlant.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_recipe_selector.png diff --git a/src/main/java/com/hbm/inventory/SlotNonRetarded.java b/src/main/java/com/hbm/inventory/SlotNonRetarded.java index 41af31292..66d4fed74 100644 --- a/src/main/java/com/hbm/inventory/SlotNonRetarded.java +++ b/src/main/java/com/hbm/inventory/SlotNonRetarded.java @@ -7,7 +7,7 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; /** - * Because vanilla slots have severe mental disabilities that prevent them from working as expected. + * Because vanilla slots have shit idiot brain fungus that prevent them from working as expected. * @author hbm */ @NotableComments diff --git a/src/main/java/com/hbm/inventory/UpgradeManagerNT.java b/src/main/java/com/hbm/inventory/UpgradeManagerNT.java index 55422fb8d..3ae55ae72 100644 --- a/src/main/java/com/hbm/inventory/UpgradeManagerNT.java +++ b/src/main/java/com/hbm/inventory/UpgradeManagerNT.java @@ -22,12 +22,19 @@ import java.util.HashMap; */ public class UpgradeManagerNT { + public TileEntity owner; public ItemStack[] cachedSlots; private UpgradeType mutexType; public HashMap upgrades = new HashMap<>(); - public void checkSlots(TileEntity te, ItemStack[] slots, int start, int end) { + public UpgradeManagerNT(TileEntity te) { this.owner = te; } + @Deprecated public UpgradeManagerNT() { } + + public void checkSlots(ItemStack[] slots, int start, int end) { checkSlots(owner, slots, start, end); } + @Deprecated public void checkSlots(TileEntity te, ItemStack[] slots, int start, int end) { checkSlotsInternal(te, slots, start, end); } + + private void checkSlotsInternal(TileEntity te, ItemStack[] slots, int start, int end) { if(!(te instanceof IUpgradeInfoProvider) || slots == null) return; diff --git a/src/main/java/com/hbm/inventory/container/ContainerBase.java b/src/main/java/com/hbm/inventory/container/ContainerBase.java index bafd2442e..665d3d275 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerBase.java +++ b/src/main/java/com/hbm/inventory/container/ContainerBase.java @@ -1,6 +1,9 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotCraftingOutput; import com.hbm.inventory.SlotNonRetarded; +import com.hbm.inventory.SlotTakeOnly; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -57,6 +60,11 @@ public class ContainerBase extends Container { return slotOriginal; } + + /** Standard player inventory with default hotbar offset */ + public void playerInv(InventoryPlayer invPlayer, int playerInvX, int playerInvY) { + playerInv(invPlayer, playerInvX, playerInvY, playerInvY + 58); + } /** Used to quickly set up the player inventory */ public void playerInv(InventoryPlayer invPlayer, int playerInvX, int playerInvY, int playerHotbarY) { @@ -88,4 +96,18 @@ public class ContainerBase extends Container { } } } + + public void addOutputSlots(EntityPlayer player, IInventory inv, int from, int x, int y, int rows, int cols) { + int slotSize = 18; + for(int row = 0; row < rows; row++) for(int col = 0; col < cols; col++) { + this.addSlotToContainer(new SlotCraftingOutput(player, inv, col + row * cols + from, x + col * slotSize, y + row * slotSize)); + } + } + + public void addTakeOnlySlots(IInventory inv, int from, int x, int y, int rows, int cols) { + int slotSize = 18; + for(int row = 0; row < rows; row++) for(int col = 0; col < cols; col++) { + this.addSlotToContainer(new SlotTakeOnly(inv, col + row * cols + from, x + col * slotSize, y + row * slotSize)); + } + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalPlant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalPlant.java new file mode 100644 index 000000000..dd453f93c --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemicalPlant.java @@ -0,0 +1,79 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemChemistryTemplate; +import com.hbm.items.machine.ItemMachineUpgrade; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineChemicalPlant extends ContainerBase { + + public ContainerMachineChemicalPlant(InventoryPlayer invPlayer, IInventory chemicalPlant) { + super(invPlayer, chemicalPlant); + + // Battery + this.addSlotToContainer(new SlotNonRetarded(chemicalPlant, 0, 152, 81)); + // Schematic + this.addSlotToContainer(new SlotNonRetarded(chemicalPlant, 1, 35, 126)); + // Upgrades + this.addSlots(chemicalPlant, 2, 152, 108, 2, 1); + // Solid Input + this.addSlots(chemicalPlant, 4, 8, 99, 1, 3); + // Solid Output + this.addOutputSlots(invPlayer.player, chemicalPlant, 7, 80, 99, 1, 3); + // Fluid Input + this.addSlots( chemicalPlant, 10, 8, 54, 1, 3); + this.addTakeOnlySlots( chemicalPlant, 13, 8, 72, 1, 3); + // Fluid Output + this.addSlots( chemicalPlant, 16, 80, 54, 1, 3); + this.addTakeOnlySlots( chemicalPlant, 19, 80, 72, 1, 3); + + this.playerInv(invPlayer, 8, 174); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack slotOriginal = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack slotStack = slot.getStack(); + slotOriginal = slotStack.copy(); + + if(index <= tile.getSizeInventory() - 1) { + SlotCraftingOutput.checkAchievements(player, slotStack); + if(!this.mergeItemStack(slotStack, tile.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(slotOriginal.getItem() instanceof IBatteryItem || slotOriginal.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(slotStack, 0, 1, false)) return null; + } else if(slotOriginal.getItem() instanceof ItemChemistryTemplate) { + if(!this.mergeItemStack(slotStack, 1, 2, false)) return null; + } else if(slotOriginal.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(slotStack, 2, 4, false)) return null; + } else { + if(!this.mergeItemStack(slotStack, 4, 7, false)) return null; + } + } + + if(slotStack.stackSize == 0) { + slot.putStack(null); + } else { + slot.onSlotChanged(); + } + + slot.onPickupFromSlot(player, slotStack); + } + + return slotOriginal; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java new file mode 100644 index 000000000..df47af6aa --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java @@ -0,0 +1,66 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineChemicalPlant; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineChemicalPlant extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_chemplant.png"); + private TileEntityMachineChemicalPlant chemplant; + + public GUIMachineChemicalPlant(InventoryPlayer invPlayer, TileEntityMachineChemicalPlant tedf) { + super(new ContainerMachineChemicalPlant(invPlayer, tedf)); + chemplant = tedf; + + this.xSize = 176; + this.ySize = 256; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + for(int i = 0; i < 3; i++) { + chemplant.inputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 8 + i * 18, guiTop + 18, 16, 34); + chemplant.outputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 80 + i * 18, guiTop + 18, 16, 34); + } + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 61, chemplant.power, chemplant.maxPower); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.chemplant.hasCustomInventoryName() ? this.chemplant.getInventoryName() : I18n.format(this.chemplant.getInventoryName()); + + this.fontRendererObj.drawString(name, 70 - 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 p = (int) (chemplant.power * 61 / chemplant.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 79 - p, 176, 61 - p, 16, p); + + if(chemplant.maxProgress > 0) { + int j = chemplant.progress * 70 / chemplant.maxProgress; + drawTexturedModalRect(guiLeft + 62, guiTop + 126, 176, 61, j, 16); + } + + for(int i = 0; i < 3; i++) { + chemplant.inputTanks[i].renderTank(guiLeft + 8, guiTop + 52, this.zLevel, 16, 34); + chemplant.outputTanks[i].renderTank(guiLeft + 80, guiTop + 52, this.zLevel, 16, 34); + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index 5ddbcecbc..a415c92f1 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -6,10 +6,14 @@ import java.util.HashMap; import java.util.List; import java.util.Random; +import com.google.gson.JsonArray; import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandom; @@ -54,14 +58,54 @@ public abstract class GenericRecipes extends SerializableRecipe { } @Override - public void readRecipe(JsonElement recipe) { + public void readRecipe(JsonElement element) { + JsonObject obj = (JsonObject) element; + GenericRecipe recipe = instantiateRecipe(obj.get("name").getAsString(), obj.get("duration").getAsInt()); + + if(this.inputItemLimit() > 0) recipe.inputItem = this.readAStackArray(obj.get("inputItem").getAsJsonArray()); + if(this.inputFluidLimit() > 0) recipe.inputFluid = this.readFluidArray(obj.get("inputFluid").getAsJsonArray()); + if(this.outputItemLimit() > 0) recipe.outputItem = this.readOutputArray(obj.get("outputItem").getAsJsonArray()); + if(this.outputFluidLimit() > 0) recipe.outputFluid = this.readFluidArray(obj.get("outputFluid").getAsJsonArray()); + + readExtraData(element, recipe); + + register(recipe); } + public GenericRecipe instantiateRecipe(String name, int duration) { return new GenericRecipe(name, duration); } + public void readExtraData(JsonElement element, GenericRecipe recipe) { } + @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { } + + public void writeExtraData(Object recipe, JsonWriter writer) { } + + public IOutput[] readOutputArray(JsonArray array) { + IOutput[] output = new IOutput[array.size()]; + int index = 0; + + for(JsonElement element : array) { + JsonArray arrayElement = element.getAsJsonArray(); + String type = arrayElement.get(0).getAsString(); + if("single".equals(type)) { + ChanceOutput co = new ChanceOutput(); + co.deserialize(arrayElement); + output[index] = co; + } else if("multi".equals(type)) { + ChanceOutputMulti com = new ChanceOutputMulti(); + com.deserialize(arrayElement); + output[index] = com; + } else { + throw new IllegalArgumentException("Invalid IOutput type '" + type + "', expected 'single' or 'multi' for recipe " + array.toString()); + } + index++; + } + + return output; + } /////////////// /// CLASSES /// @@ -75,25 +119,53 @@ public abstract class GenericRecipes extends SerializableRecipe { public IOutput[] outputItem; public FluidStack[] outputFluid; public int duration; + public ItemStack icon; public GenericRecipe(String name, int duration) { this.name = name; this.duration = duration; } + + public GenericRecipe setIcon(ItemStack icon) { + this.icon = icon; + return this; + } + + public ItemStack getIcon() { + + if(icon == null) { + if(outputItem != null) { + if(outputItem[0] instanceof ChanceOutput) icon = ((ChanceOutput) outputItem[0]).stack.copy(); + if(outputItem[0] instanceof ChanceOutputMulti) icon = ((ChanceOutputMulti) outputItem[0]).pool.get(0).stack.copy(); + return icon; + } + if(outputFluid != null) { + icon = ItemFluidIcon.make(outputFluid[0]); + } + } + + if(icon == null) icon = new ItemStack(ModItems.nothing); + return icon; + } } public static interface IOutput { public boolean possibleMultiOutput(); public ItemStack collapse(); + public void serialize(JsonWriter writer) throws IOException; + public void deserialize(JsonArray array); } /** A chance output, produces either an ItemStack or null */ public static class ChanceOutput extends WeightedRandom.Item implements IOutput { + // a weight of 0 means this output is not part of a weighted output + public ItemStack stack; public float chance; - public ChanceOutput(ItemStack stack) { this(stack, 1F, 1); } + public ChanceOutput() { super(0); } // for deserialization + public ChanceOutput(ItemStack stack) { this(stack, 1F, 0); } public ChanceOutput(ItemStack stack, int weight) { this(stack, 1F, weight); } public ChanceOutput(ItemStack stack, float chance, int weight) { super(weight); @@ -108,6 +180,34 @@ public abstract class GenericRecipes extends SerializableRecipe { } @Override public boolean possibleMultiOutput() { return false; } + + @Override + public void serialize(JsonWriter writer) throws IOException { + boolean standardStack = chance >= 1 && itemWeight == 0; + if(!standardStack) writer.beginArray(); + + if(itemWeight == 0) writer.value("single"); + SerializableRecipe.writeItemStack(stack, writer); + + if(!standardStack) { + writer.value(chance); + if(itemWeight > 0) writer.value(itemWeight); + writer.endArray(); + } + } + + @Override + public void deserialize(JsonArray array) { + + if(array.get(0).isJsonPrimitive()) { // "single" tag, don't apply weight + this.stack = SerializableRecipe.readItemStack(array.get(1).getAsJsonArray()); + if(array.size() > 2) this.chance = array.get(2).getAsFloat(); + } else { // hopefully an array, therefore a weighted result + this.stack = SerializableRecipe.readItemStack(array.get(0).getAsJsonArray()); + if(array.size() > 1) this.chance = array.get(1).getAsFloat(); + if(array.size() > 2) this.itemWeight = array.get(2).getAsInt(); + } + } } /** Multiple choice chance output, produces a ChanceOutput chosen randomly by weight */ @@ -117,5 +217,22 @@ public abstract class GenericRecipes extends SerializableRecipe { @Override public ItemStack collapse() { return ((ChanceOutput) WeightedRandom.getRandomItem(RNG, pool)).collapse(); } @Override public boolean possibleMultiOutput() { return pool.size() > 1; } + + @Override + public void serialize(JsonWriter writer) throws IOException { + writer.beginArray(); + writer.value("multi"); + for(ChanceOutput output : pool) output.serialize(writer); + writer.endArray(); + } + + @Override + public void deserialize(JsonArray array) { + for(JsonElement element : array) { + ChanceOutput output = new ChanceOutput(); + output.deserialize(element.getAsJsonArray()); + pool.add(output); + } + } } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e268f4d4b..b27e20e3e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1152,15 +1152,6 @@ public class ModItems { public static Item ammo_bag_infinite; public static Item casing_bag; - public static Item test_nuke_igniter; - public static Item test_nuke_propellant; - public static Item test_nuke_tier1_shielding; - public static Item test_nuke_tier2_shielding; - public static Item test_nuke_tier1_bullet; - public static Item test_nuke_tier2_bullet; - public static Item test_nuke_tier1_target; - public static Item test_nuke_tier2_target; - public static Item cordite; public static Item ballistite; public static Item ball_dynamite; @@ -2258,15 +2249,6 @@ public class ModItems { redstone_sword = new RedstoneSword(ToolMaterial.STONE).setUnlocalizedName("redstone_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":redstone_sword"); big_sword = new BigSword(ToolMaterial.EMERALD).setUnlocalizedName("big_sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(RefStrings.MODID + ":big_sword"); - test_nuke_igniter = new Item().setUnlocalizedName("test_nuke_igniter").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_igniter"); - test_nuke_propellant = new Item().setUnlocalizedName("test_nuke_propellant").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_propellant"); - test_nuke_tier1_shielding = new Item().setUnlocalizedName("test_nuke_tier1_shielding").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_shielding"); - test_nuke_tier2_shielding = new Item().setUnlocalizedName("test_nuke_tier2_shielding").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_shielding"); - test_nuke_tier1_bullet = new Item().setUnlocalizedName("test_nuke_tier1_bullet").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_bullet"); - test_nuke_tier2_bullet = new Item().setUnlocalizedName("test_nuke_tier2_bullet").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_bullet"); - test_nuke_tier1_target = new Item().setUnlocalizedName("test_nuke_tier1_target").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier1_target"); - test_nuke_tier2_target = new Item().setUnlocalizedName("test_nuke_tier2_target").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":test_nuke_tier2_target"); - ingot_th232 = new Item().setUnlocalizedName("ingot_th232").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_th232"); ingot_uranium = new Item().setUnlocalizedName("ingot_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_uranium"); ingot_u233 = new Item().setUnlocalizedName("ingot_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_u233"); @@ -4998,16 +4980,6 @@ public class ModItems { GameRegistry.registerItem(redstone_sword, redstone_sword.getUnlocalizedName()); GameRegistry.registerItem(big_sword, big_sword.getUnlocalizedName()); - //Test Nuke - GameRegistry.registerItem(test_nuke_igniter, test_nuke_igniter.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_propellant, test_nuke_propellant.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier1_shielding, test_nuke_tier1_shielding.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier2_shielding, test_nuke_tier2_shielding.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier1_bullet, test_nuke_tier1_bullet.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier2_bullet, test_nuke_tier2_bullet.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier1_target, test_nuke_tier1_target.getUnlocalizedName()); - GameRegistry.registerItem(test_nuke_tier2_target, test_nuke_tier2_target.getUnlocalizedName()); - //Ingots GameRegistry.registerItem(ingot_uranium, ingot_uranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_u233, ingot_u233.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index bd3fc6ddb..aa8ce2268 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -350,16 +350,16 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro Block block = world.getBlock(x, y, z); int l = world.getBlockMetadata(x, y, z); world.playAuxSFXAtEntity(player, 2001, x, y, z, Block.getIdFromBlock(block) + (world.getBlockMetadata(x, y, z) << 12)); - boolean flag = false; + boolean removedByPlayer = false; if(player.capabilities.isCreativeMode) { - flag = removeBlock(world, x, y, z, false, player); + removedByPlayer = removeBlock(world, x, y, z, false, player); player.playerNetServerHandler.sendPacket(new S23PacketBlockChange(x, y, z, world)); } else { ItemStack itemstack = player.getCurrentEquippedItem(); - boolean flag1 = block.canHarvestBlock(player, l); + boolean canHarvest = block.canHarvestBlock(player, l); - flag = removeBlock(world, x, y, z, flag1, player); + removedByPlayer = removeBlock(world, x, y, z, canHarvest, player); if(itemstack != null) { itemstack.func_150999_a(world, block, x, y, z, player); @@ -368,6 +368,10 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro player.destroyCurrentEquippedItem(); } } + + if(removedByPlayer && canHarvest) { + block.harvestBlock(world, player, x, y, z, l); + } } // Why was this commented out? diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index bb5882cc8..1a455e86b 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1682,6 +1682,14 @@ public class MainRegistry { ignoreMappings.add("hbm:item.gun_cryolator_ammo"); ignoreMappings.add("hbm:item.canteen_fab"); ignoreMappings.add("hbm:item.fabsols_vodka"); + ignoreMappings.add("hbm:item.test_nuke_igniter"); + ignoreMappings.add("hbm:item.test_nuke_propellant"); + ignoreMappings.add("hbm:item.test_nuke_tier1_shielding"); + ignoreMappings.add("hbm:item.test_nuke_tier2_shielding"); + ignoreMappings.add("hbm:item.test_nuke_tier1_bullet"); + ignoreMappings.add("hbm:item.test_nuke_tier2_bullet"); + ignoreMappings.add("hbm:item.test_nuke_tier1_target"); + ignoreMappings.add("hbm:item.test_nuke_tier2_target"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index c214b7e79..c9bac3663 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -1,19 +1,47 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManagerNT; +import com.hbm.inventory.container.ContainerMachineChemicalPlant; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineChemicalPlant; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.i18n.I18nUtil; -public class TileEntityMachineChemicalPlant extends TileEntityMachineBase { +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.fluidmk2.IFluidStandardTransceiverMK2; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiverMK2, IUpgradeInfoProvider, IGUIProvider { public FluidTank[] inputTanks; public FluidTank[] outputTanks; public long power; public long maxPower = 1_000_000; + public int progress; + public int maxProgress; + + public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this); public TileEntityMachineChemicalPlant() { super(22); + this.inputTanks = new FluidTank[3]; this.outputTanks = new FluidTank[3]; for(int i = 0; i < 3; i++) { @@ -30,5 +58,78 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase { @Override public void updateEntity() { + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); + upgradeManager.checkSlots(slots, 2, 3); + + this.networkPackNT(100); + + } else { + + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + for(FluidTank tank : inputTanks) tank.serialize(buf); + for(FluidTank tank : outputTanks) tank.serialize(buf); + buf.writeLong(power); + buf.writeLong(maxPower); + buf.writeInt(progress); + buf.writeInt(maxProgress); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + for(FluidTank tank : inputTanks) tank.deserialize(buf); + for(FluidTank tank : outputTanks) tank.deserialize(buf); + this.power = buf.readLong(); + this.maxPower = buf.readLong(); + this.progress = buf.readInt(); + this.maxProgress = buf.readInt(); + } + + @Override public long getPower() { return power; } + @Override public void setPower(long power) { this.power = power; } + @Override public long getMaxPower() { return maxPower; } + + @Override public FluidTank[] getReceivingTanks() { return inputTanks; } + @Override public FluidTank[] getSendingTanks() { return outputTanks; } + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {inputTanks[0], inputTanks[1], inputTanks[2], outputTanks[0], outputTanks[1], outputTanks[2]}; } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineChemicalPlant(player.inventory, this); } + @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineChemicalPlant(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemical_plant)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public HashMap getValidUpgrades() { + HashMap upgrades = new HashMap<>(); + upgrades.put(UpgradeType.SPEED, 3); + upgrades.put(UpgradeType.POWER, 3); + upgrades.put(UpgradeType.OVERDRIVE, 6); + return upgrades; } } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_chemplant.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_chemplant.png index 824dd1ce99ffdf47214b6494f3055d833c8bcd01..ef8c8fc45a752b63dd48f4d63e53efc915476d80 100644 GIT binary patch literal 4029 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 literal 0 HcmV?d00001 From 87a1c01fe72538b478b1830c97bd1966299ed228 Mon Sep 17 00:00:00 2001 From: George Paton Date: Fri, 30 May 2025 09:53:46 +1000 Subject: [PATCH 106/181] disable recipe sync by default, can be enabled by server operators --- src/main/java/com/hbm/config/GeneralConfig.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index ed0f1af67..09900f007 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -38,7 +38,7 @@ public class GeneralConfig { public static boolean enableGuideBook = true; public static boolean enableSoundExtension = true; public static boolean enableMekanismChanges = true; - public static boolean enableServerRecipeSync = true; + public static boolean enableServerRecipeSync = false; public static int normalSoundChannels = 200; public static boolean enableExpensiveMode = false; @@ -82,7 +82,7 @@ public class GeneralConfig { packetThreadingMaxCount = config.get(CATEGORY_GENERAL, "0.03_packetThreadingMaxCount", 1, "Maximum number of threads to create for packet threading. Must be greater than or equal to 0.02_packetThreadingCoreCount.").getInt(1); packetThreadingErrorBypass = config.get(CATEGORY_GENERAL, "0.04_packetThreadingErrorBypass", false, "Forces the bypassing of most packet threading errors, only enable this if directed to or if you know what you're doing.").getBoolean(false); - enableServerRecipeSync = config.get(CATEGORY_GENERAL, "0.05_enableServerRecipeSync", true, "Syncs any recipes customised via JSON to clients connecting to the server.").getBoolean(true); + enableServerRecipeSync = config.get(CATEGORY_GENERAL, "0.05_enableServerRecipeSync", false, "Syncs any recipes customised via JSON to clients connecting to the server.").getBoolean(false); enableDebugMode = config.get(CATEGORY_GENERAL, "1.00_enableDebugMode", false, "Enable debugging mode").getBoolean(false); enableMycelium = config.get(CATEGORY_GENERAL, "1.01_enableMyceliumSpread", false, "Allows glowing mycelium to spread").getBoolean(false); From e6b84bd6d361ed890e4b786c56794a2530babe2f Mon Sep 17 00:00:00 2001 From: George Paton Date: Fri, 30 May 2025 09:54:39 +1000 Subject: [PATCH 107/181] fix guard on checkNBT --- src/main/java/com/hbm/items/ItemInventory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/items/ItemInventory.java b/src/main/java/com/hbm/items/ItemInventory.java index 63c5083a7..dd897a66e 100644 --- a/src/main/java/com/hbm/items/ItemInventory.java +++ b/src/main/java/com/hbm/items/ItemInventory.java @@ -38,7 +38,7 @@ public abstract class ItemInventory implements IInventory { } public NBTTagCompound checkNBT(NBTTagCompound nbt) { - if(nbt == null || !nbt.hasNoTags()) { + if(nbt != null && !nbt.hasNoTags()) { Random random = new Random(); try { From 70cd3d40713836eb9f6de52960a90d63cfd88a92 Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Sat, 31 May 2025 03:13:00 +0800 Subject: [PATCH 108/181] DDA cleanup --- src/main/java/com/hbm/config/BombConfig.java | 8 +- .../entity/logic/EntityNukeExplosionMK5.java | 27 ++- .../ExplosionNukeRayParallelized.java | 182 +++--------------- .../com/hbm/interfaces/IExplosionRay.java | 28 ++- src/main/java/com/hbm/util/ChunkKey.java | 32 +++ .../java/com/hbm/util/ConcurrentBitSet.java | 70 +++++++ .../java/com/hbm/util/SubChunkSnapshot.java | 120 ++++++++++++ 7 files changed, 287 insertions(+), 180 deletions(-) create mode 100644 src/main/java/com/hbm/util/ChunkKey.java create mode 100644 src/main/java/com/hbm/util/ConcurrentBitSet.java create mode 100644 src/main/java/com/hbm/util/SubChunkSnapshot.java diff --git a/src/main/java/com/hbm/config/BombConfig.java b/src/main/java/com/hbm/config/BombConfig.java index 64ee42417..7db3c427c 100644 --- a/src/main/java/com/hbm/config/BombConfig.java +++ b/src/main/java/com/hbm/config/BombConfig.java @@ -26,8 +26,7 @@ public class BombConfig { public static int fDelay = 4; public static int limitExplosionLifespan = 0; public static boolean chunkloading = true; - public static boolean parallelization = true; - public static boolean accumulatedDestruction = true; + public static int explosionAlgorithm = 2; public static void loadFromConfig(Configuration config) { @@ -95,8 +94,7 @@ public class BombConfig { falloutDelayProp.comment = "How many ticks to wait for the next fallout chunk computation"; fDelay = falloutDelayProp.getInt(); - chunkloading = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableChunkLoading", "Allows all types of procedural explosions to keep the central chunk loaded.", true); - parallelization = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableParallelization", "Allows explosions to use multiple threads.", true); - accumulatedDestruction = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableAccumulatedDestruction", "Enables the accumulated destruction model for explosions. Blocks accumulate damage and are only destroyed once their resistance is exceeded.\nMore physically accurate, slightly slower. Requires enableParallelization = true.", true); + chunkloading = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.05_enableChunkLoading", "Allows all types of procedural explosions to keep the central chunk loaded.", true); + explosionAlgorithm = CommonConfig.createConfigInt(config, CATEGORY_NUKE, "6.06_explosionAlgorithm", "Configures the algorithm of mk5 explosion. \n0 = Legacy, 1 = Threaded DDA, 2 = Threaded DDA with damage accumulation.", 2); } } diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index 95965c95c..dac30b1db 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -70,7 +70,7 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { if(explosion == null) { explosionStart = System.currentTimeMillis(); - if (BombConfig.parallelization) { + if (BombConfig.explosionAlgorithm == 1 || BombConfig.explosionAlgorithm == 2) { explosion = new ExplosionNukeRayParallelized(worldObj, posX, posY, posZ, strength, speed, length); } else { @@ -82,20 +82,17 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { if(!explosion.isComplete()) { explosion.cacheChunksTick(BombConfig.mk5); explosion.destructionTick(BombConfig.mk5); - } else if(fallout) { - if(GeneralConfig.enableExtendedLogging && explosionStart != 0) - MainRegistry.logger.log(Level.INFO, "[NUKE] Explosion complete. Time elapsed: " + (System.currentTimeMillis() - explosionStart) + "ms"); - EntityFalloutRain fallout = new EntityFalloutRain(this.worldObj); - fallout.posX = this.posX; - fallout.posY = this.posY; - fallout.posZ = this.posZ; - fallout.setScale((int)(this.length * 2.5 + falloutAdd) * BombConfig.falloutRange / 100); - - this.worldObj.spawnEntityInWorld(fallout); - - this.clearChunkLoader(); - this.setDead(); } else { + if(GeneralConfig.enableExtendedLogging && explosionStart != 0) + MainRegistry.logger.log(Level.INFO, "[NUKE] Explosion complete. Time elapsed: {}ms", (System.currentTimeMillis() - explosionStart)); + if(fallout) { + EntityFalloutRain fallout = new EntityFalloutRain(this.worldObj); + fallout.posX = this.posX; + fallout.posY = this.posY; + fallout.posZ = this.posZ; + fallout.setScale((int)(this.length * 2.5 + falloutAdd) * BombConfig.falloutRange / 100); + this.worldObj.spawnEntityInWorld(fallout); + } this.clearChunkLoader(); this.setDead(); } @@ -153,7 +150,7 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { public static EntityNukeExplosionMK5 statFac(World world, int r, double x, double y, double z) { if(GeneralConfig.enableExtendedLogging && !world.isRemote) - MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized explosion at " + x + " / " + y + " / " + z + " with strength " + r + "!"); + MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized explosion at {} / {} / {} with strength {}!", x, y, z, r); if(r == 0) r = 25; diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index 6cab5a01c..08c322adf 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -3,6 +3,9 @@ package com.hbm.explosion; import com.hbm.config.BombConfig; import com.hbm.interfaces.IExplosionRay; import com.hbm.main.MainRegistry; +import com.hbm.util.ChunkKey; +import com.hbm.util.ConcurrentBitSet; +import com.hbm.util.SubChunkSnapshot; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.util.Vec3; @@ -15,14 +18,14 @@ import org.apache.logging.log4j.Level; import java.util.*; import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicLongArray; import java.util.concurrent.atomic.DoubleAdder; +import static com.hbm.util.SubChunkSnapshot.getSnapshot; + public class ExplosionNukeRayParallelized implements IExplosionRay { private static final int WORLD_HEIGHT = 256; private static final int BITSET_SIZE = 16 * WORLD_HEIGHT * 16; - private static final int WORDS_PER_SET = BITSET_SIZE >>> 6; // (16*256*16)/64 protected final World world; private final double explosionX, explosionY, explosionZ; @@ -85,7 +88,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { Thread.currentThread().interrupt(); } finally { collectFinished = true; - if (BombConfig.accumulatedDestruction) { + if (BombConfig.explosionAlgorithm == 2) { pool.submit(this::runConsolidation); } else { consolidationFinished = true; @@ -112,7 +115,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { ChunkKey ck = cacheQueue.poll(); if (ck == null) break; snapshots.computeIfAbsent(ck, key -> { - SubChunkSnapshot snap = createSubChunk(key.pos, key.subY); + SubChunkSnapshot snap = getSnapshot(this.world, key.pos, key.subY); return snap == null ? SubChunkSnapshot.EMPTY : snap; }); } @@ -146,37 +149,33 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { ExtendedBlockStorage storage = storages[subY]; if (storage == null) continue; - int yPrimeMin = 255 - ((subY << 4) + 15); - int startBit = yPrimeMin << 8; - int yPrimeMax = 255 - (subY << 4); - int endBit = (yPrimeMax << 8) | 0xFF; + int startBit = (WORLD_HEIGHT - 1 - ((subY << 4) + 15)) << 8; + int endBit = ((WORLD_HEIGHT - 1 - (subY << 4)) << 8) | 0xFF; int bit = bs.nextSetBit(startBit); - if (bit < 0 || bit > endBit) continue; while (bit >= 0 && bit <= endBit && System.nanoTime() < deadline) { - int yGlobal = 255 - (bit >>> 8); + int yGlobal = WORLD_HEIGHT - 1 - (bit >>> 8); int xGlobal = (cp.chunkXPos << 4) | ((bit >>> 4) & 0xF); int zGlobal = (cp.chunkZPos << 4) | (bit & 0xF); - - if (world.getTileEntity(xGlobal, yGlobal, zGlobal) != null) { - chunk.removeTileEntity(xGlobal & 0xF, yGlobal, zGlobal & 0xF); // world Y - world.removeTileEntity(xGlobal, yGlobal, zGlobal); - } - int xLocal = xGlobal & 0xF; int yLocal = yGlobal & 0xF; int zLocal = zGlobal & 0xF; - storage.func_150818_a(xLocal, yLocal, zLocal, Blocks.air); - storage.setExtBlockMetadata(xLocal, yLocal, zLocal, 0); - chunkModified = true; + if (storage.getBlockByExtId(xLocal, yLocal, zLocal) != Blocks.air) { + if (world.getTileEntity(xGlobal, yGlobal, zGlobal) != null) { + world.removeTileEntity(xGlobal, yGlobal, zGlobal); + } - world.notifyBlocksOfNeighborChange(xGlobal, yGlobal, zGlobal, Blocks.air); - world.markBlockForUpdate(xGlobal, yGlobal, zGlobal); + storage.func_150818_a(xLocal, yLocal, zLocal, Blocks.air); + storage.setExtBlockMetadata(xLocal, yLocal, zLocal, 0); + chunkModified = true; - world.updateLightByType(EnumSkyBlock.Sky, xGlobal, yGlobal, zGlobal); - world.updateLightByType(EnumSkyBlock.Block, xGlobal, yGlobal, zGlobal); + world.notifyBlocksOfNeighborChange(xGlobal, yGlobal, zGlobal, Blocks.air); + world.markBlockForUpdate(xGlobal, yGlobal, zGlobal); + world.updateLightByType(EnumSkyBlock.Sky, xGlobal, yGlobal, zGlobal); + world.updateLightByType(EnumSkyBlock.Block, xGlobal, yGlobal, zGlobal); + } bs.clear(bit); bit = bs.nextSetBit(bit + 1); } @@ -186,7 +185,6 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { chunk.setChunkModified(); world.markBlockRangeForRenderUpdate(cp.chunkXPos << 4, 0, cp.chunkZPos << 4, (cp.chunkXPos << 4) | 15, WORLD_HEIGHT - 1, (cp.chunkZPos << 4) | 15); } - if (bs.isEmpty()) { destructionMap.remove(cp); for (int sy = 0; sy < (WORLD_HEIGHT >> 4); sy++) { @@ -244,49 +242,6 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { if (this.orderedChunks != null) this.orderedChunks.clear(); } - private SubChunkSnapshot createSubChunk(ChunkCoordIntPair cpos, int subY) { - if (!world.getChunkProvider().chunkExists(cpos.chunkXPos, cpos.chunkZPos)) { - return SubChunkSnapshot.EMPTY; - } - Chunk chunk = world.getChunkFromChunkCoords(cpos.chunkXPos, cpos.chunkZPos); - ExtendedBlockStorage ebs = chunk.getBlockStorageArray()[subY]; - if (ebs == null || ebs.isEmpty()) { - return SubChunkSnapshot.EMPTY; - } - - short[] data = new short[16 * 16 * 16]; - List palette = new ArrayList<>(); - palette.add(Blocks.air); - Map idxMap = new HashMap<>(); - idxMap.put(Blocks.air, (short) 0); - boolean allAir = true; - - for (int ly = 0; ly < 16; ly++) { - for (int lz = 0; lz < 16; lz++) { - for (int lx = 0; lx < 16; lx++) { - Block block = ebs.getBlockByExtId(lx, ly, lz); - int idx; - if (block == Blocks.air) { - idx = 0; - } else { - allAir = false; - Short e = idxMap.get(block); - if (e == null) { - idxMap.put(block, (short) palette.size()); - palette.add(block); - idx = palette.size() - 1; - } else { - idx = e; - } - } - data[(ly << 8) | (lz << 4) | lx] = (short) idx; - } - } - } - if (allAir) return SubChunkSnapshot.EMPTY; - return new SubChunkSnapshot(palette.toArray(new Block[0]), data); - } - private List generateSphereRays(int count) { List list = new ArrayList<>(count); if (count <= 0) return list; @@ -316,7 +271,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { continue; } - ConcurrentBitSet chunkDestructionBitSet = destructionMap.computeIfAbsent(cp, k -> new ConcurrentBitSet()); + ConcurrentBitSet chunkDestructionBitSet = destructionMap.computeIfAbsent(cp, k -> new ConcurrentBitSet(BITSET_SIZE)); Iterator> damageEntryIterator = accumulator.entrySet().iterator(); while (damageEntryIterator.hasNext()) { @@ -330,7 +285,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { continue; } - int yGlobal = 255 - (bitIndex >>> 8); + int yGlobal = WORLD_HEIGHT - 1 - (bitIndex >>> 8); int subY = yGlobal >> 4; if (subY < 0) { @@ -370,91 +325,6 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { consolidationFinished = true; } - private static class ChunkKey { - final ChunkCoordIntPair pos; - final int subY; - - ChunkKey(int cx, int cz, int sy) { - this.pos = new ChunkCoordIntPair(cx, cz); - this.subY = sy; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof ChunkKey)) return false; - ChunkKey k = (ChunkKey) o; - return subY == k.subY && pos.equals(k.pos); - } - - @Override - public int hashCode() { - return Objects.hash(pos.chunkXPos, pos.chunkZPos, subY); - } - } - - private static class SubChunkSnapshot { - private static final SubChunkSnapshot EMPTY = new SubChunkSnapshot(new Block[]{Blocks.air}, null); - private final Block[] palette; - private final short[] data; - - SubChunkSnapshot(Block[] p, short[] d) { - this.palette = p; - this.data = d; - } - - Block getBlock(int x, int y, int z) { - if (this == EMPTY || data == null) return Blocks.air; - short idx = data[(y << 8) | (z << 4) | x]; - return (idx >= 0 && idx < palette.length) ? palette[idx] : Blocks.air; - } - } - - private static final class ConcurrentBitSet { - private final AtomicLongArray words = new AtomicLongArray(WORDS_PER_SET); - - void set(int bit) { - if (bit < 0 || bit >= BITSET_SIZE) return; - int wd = bit >>> 6; - long m = 1L << (bit & 63); - while (true) { - long o = words.get(wd); - long u = o | m; - if (o == u || words.compareAndSet(wd, o, u)) return; - } - } - - void clear(int bit) { - if (bit < 0 || bit >= BITSET_SIZE) return; - int wd = bit >>> 6; - long m = ~(1L << (bit & 63)); - while (true) { - long oldWord = words.get(wd); - long newWord = oldWord & m; - if (oldWord == newWord || words.compareAndSet(wd, oldWord, newWord)) { - return; - } - } - } - - int nextSetBit(int from) { - if (from < 0) from = 0; - int wd = from >>> 6; - if (wd >= WORDS_PER_SET) return -1; - long w = words.get(wd) & (~0L << (from & 63)); - while (true) { - if (w != 0) return (wd << 6) + Long.numberOfTrailingZeros(w); - if (++wd == WORDS_PER_SET) return -1; - w = words.get(wd); - } - } - - boolean isEmpty() { - for (int i = 0; i < WORDS_PER_SET; i++) if (words.get(i) != 0) return false; - return true; - } - } - private static class ChunkDamageAccumulator { // key = bitIndex, value = total accumulated damage private final ConcurrentHashMap damageMap = new ConcurrentHashMap<>(); @@ -602,7 +472,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { energy -= damageDealt; if (damageDealt > 0) { int bitIndex = ((WORLD_HEIGHT - 1 - y) << 8) | ((x & 0xF) << 4) | (z & 0xF); - if (BombConfig.accumulatedDestruction) { + if (BombConfig.explosionAlgorithm == 2) { ChunkCoordIntPair chunkPos = ck.pos; ChunkDamageAccumulator chunkAccumulator = accumulatedDamageMap.computeIfAbsent(chunkPos, k -> new ChunkDamageAccumulator()); @@ -611,7 +481,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { if (energy > 0) { ConcurrentBitSet bs = destructionMap.computeIfAbsent( ck.pos, - posKey -> new ConcurrentBitSet() + posKey -> new ConcurrentBitSet(BITSET_SIZE) ); bs.set(bitIndex); } diff --git a/src/main/java/com/hbm/interfaces/IExplosionRay.java b/src/main/java/com/hbm/interfaces/IExplosionRay.java index d164b6b27..5c883c82e 100644 --- a/src/main/java/com/hbm/interfaces/IExplosionRay.java +++ b/src/main/java/com/hbm/interfaces/IExplosionRay.java @@ -1,11 +1,31 @@ package com.hbm.interfaces; +/** + * Interface for procedural explosions. + * @author mlbv + */ public interface IExplosionRay { - boolean isComplete(); + /** + * Called every tick. Caches the chunks affected by the explosion. + * All heavy calculations are recommended to be done off the main thread. + * @param processTimeMs maximum time to process in this tick + */ + void cacheChunksTick(int processTimeMs); - void cacheChunksTick(int processTime); - - void destructionTick(int processTime); + /** + * Called every tick to apply block destruction to the affected chunks. + * @param processTimeMs maximum time to process in this tick + */ + void destructionTick(int processTimeMs); + /** + * Immediately cancels the explosion. + */ void cancel(); + + + /** + * @return true if the explosion is finished or cancelled. + */ + boolean isComplete(); } diff --git a/src/main/java/com/hbm/util/ChunkKey.java b/src/main/java/com/hbm/util/ChunkKey.java new file mode 100644 index 000000000..62c2f7c9a --- /dev/null +++ b/src/main/java/com/hbm/util/ChunkKey.java @@ -0,0 +1,32 @@ +package com.hbm.util; + +import net.minecraft.world.ChunkCoordIntPair; + +import java.util.Objects; + +/** + * Unique identifier for sub-chunks. + * @Author mlbv + */ +public class ChunkKey { + public final ChunkCoordIntPair pos; + public final int subY; + + public ChunkKey(int cx, int cz, int sy) { + this.pos = new ChunkCoordIntPair(cx, cz); + this.subY = sy; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ChunkKey)) return false; + ChunkKey k = (ChunkKey) o; + return subY == k.subY && pos.equals(k.pos); + } + + @Override + public int hashCode() { + return Objects.hash(pos.chunkXPos, pos.chunkZPos, subY); + } +} diff --git a/src/main/java/com/hbm/util/ConcurrentBitSet.java b/src/main/java/com/hbm/util/ConcurrentBitSet.java new file mode 100644 index 000000000..531c851ae --- /dev/null +++ b/src/main/java/com/hbm/util/ConcurrentBitSet.java @@ -0,0 +1,70 @@ +package com.hbm.util; + +import java.util.concurrent.atomic.AtomicLongArray; +import java.util.concurrent.atomic.LongAdder; + +public class ConcurrentBitSet { + private final AtomicLongArray words; + private final int size; + private final LongAdder bitCount = new LongAdder(); + + public ConcurrentBitSet(int size) { + this.size = size; + int wordCount = (size + 63) >>> 6; + this.words = new AtomicLongArray(wordCount); + } + + public void set(int bit) { + if (bit < 0 || bit >= size) return; + int wordIndex = bit >>> 6; + long mask = 1L << (bit & 63); + while (true) { + long oldWord = words.get(wordIndex); + long newWord = oldWord | mask; + if (oldWord == newWord) return; + if (words.compareAndSet(wordIndex, oldWord, newWord)) { + bitCount.increment(); + return; + } + } + } + + public void clear(int bit) { + if (bit < 0 || bit >= size) return; + int wordIndex = bit >>> 6; + long mask = ~(1L << (bit & 63)); + while (true) { + long oldWord = words.get(wordIndex); + long newWord = oldWord & mask; + if (oldWord == newWord) return; + if (words.compareAndSet(wordIndex, oldWord, newWord)) { + bitCount.decrement(); + return; + } + } + } + + public int nextSetBit(int from) { + if (from < 0) from = 0; + int wordIndex = from >>> 6; + if (wordIndex >= words.length()) return -1; + long word = words.get(wordIndex) & (~0L << (from & 63)); + while (true) { + if (word != 0) { + int idx = (wordIndex << 6) + Long.numberOfTrailingZeros(word); + return (idx < size) ? idx : -1; + } + wordIndex++; + if (wordIndex >= words.length()) return -1; + word = words.get(wordIndex); + } + } + + public boolean isEmpty() { + return bitCount.sum() == 0; + } + + public long cardinality() { + return bitCount.sum(); + } +} diff --git a/src/main/java/com/hbm/util/SubChunkSnapshot.java b/src/main/java/com/hbm/util/SubChunkSnapshot.java new file mode 100644 index 000000000..6e7b99cc0 --- /dev/null +++ b/src/main/java/com/hbm/util/SubChunkSnapshot.java @@ -0,0 +1,120 @@ +package com.hbm.util; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.storage.ExtendedBlockStorage; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * A snapshot of a 16×16×16 sub-chunk. + * @Author mlbv + */ +public class SubChunkSnapshot { + /** + * A sub-chunk that contains only air. + */ + public static final SubChunkSnapshot EMPTY = new SubChunkSnapshot(new Block[]{Blocks.air}, null); + private final Block[] palette; + private final short[] data; + + private SubChunkSnapshot(Block[] p, short[] d) { + this.palette = p; + this.data = d; + } + + /** + * Creates a SubChunkSnapshot from a loaded chunk. + * + * @param world + * The World instance from which to retrieve the chunk. + * @param cpos + * The ChunkCoordIntPair identifying the chunk coordinates (x, z). + * @param subY + * The vertical sub-chunk index (0–15) within the chunk. + * @return + * A SubChunkSnapshot containing the palette and block data for the sub-chunk, + * or SubChunkSnapshot.EMPTY if the region is unloaded or contains only air. + */ + public static SubChunkSnapshot getSnapshot(World world, ChunkCoordIntPair cpos, int subY) { + if (!world.getChunkProvider().chunkExists(cpos.chunkXPos, cpos.chunkZPos)) { + return SubChunkSnapshot.EMPTY; + } + return getOrLoadSnapshot(world, cpos, subY); + } + + /** + * Creates a SubChunkSnapshot. + * + * @param world + * The World instance from which to retrieve the chunk. + * @param cpos + * The ChunkCoordIntPair identifying the chunk coordinates (x, z). + * @param subY + * The vertical sub-chunk index (0–15) within the chunk. + * @return + * A SubChunkSnapshot containing the palette and block data for the sub-chunk, + * or SubChunkSnapshot.EMPTY if the region contains only air. + */ + public static SubChunkSnapshot getOrLoadSnapshot(World world, ChunkCoordIntPair cpos, int subY){ + Chunk chunk = world.getChunkFromChunkCoords(cpos.chunkXPos, cpos.chunkZPos); + ExtendedBlockStorage ebs = chunk.getBlockStorageArray()[subY]; + if (ebs == null || ebs.isEmpty()) return SubChunkSnapshot.EMPTY; + + short[] data = new short[16 * 16 * 16]; + List palette = new ArrayList<>(); + palette.add(Blocks.air); + Map idxMap = new HashMap<>(); + idxMap.put(Blocks.air, (short) 0); + boolean allAir = true; + + for (int ly = 0; ly < 16; ly++) { + for (int lz = 0; lz < 16; lz++) { + for (int lx = 0; lx < 16; lx++) { + Block block = ebs.getBlockByExtId(lx, ly, lz); + int idx; + if (block == Blocks.air) { + idx = 0; + } else { + allAir = false; + Short e = idxMap.get(block); + if (e == null) { + idxMap.put(block, (short) palette.size()); + palette.add(block); + idx = palette.size() - 1; + } else { + idx = e; + } + } + data[(ly << 8) | (lz << 4) | lx] = (short) idx; + } + } + } + if (allAir) return SubChunkSnapshot.EMPTY; + return new SubChunkSnapshot(palette.toArray(new Block[0]), data); + } + + /** + * Retrieves the Block at the specified local coordinates within this sub-chunk snapshot. + * + * @param x + * The local x-coordinate within the sub-chunk (0–15). + * @param y + * The local y-coordinate within the sub-chunk (0–15). + * @param z + * The local z-coordinate within the sub-chunk (0–15). + * @return + * The Block instance at the given position. + */ + public Block getBlock(int x, int y, int z) { + if (this == EMPTY || data == null) return Blocks.air; + short idx = data[(y << 8) | (z << 4) | x]; + return (idx >= 0 && idx < palette.length) ? palette[idx] : Blocks.air; + } +} From 0be198d21f9d10be9c19fb520feb3973459d8dcf Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 31 May 2025 18:04:16 +0200 Subject: [PATCH 109/181] in a rush --- .../java/com/hbm/inventory/FluidStack.java | 2 +- .../recipes/ChemicalPlantRecipes.java | 42 +++++++ .../recipes/loader/GenericRecipe.java | 69 +++++++++++ .../recipes/loader/GenericRecipes.java | 117 +++++++++--------- .../recipes/loader/SerializableRecipe.java | 3 + 5 files changed, 176 insertions(+), 57 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java create mode 100644 src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java diff --git a/src/main/java/com/hbm/inventory/FluidStack.java b/src/main/java/com/hbm/inventory/FluidStack.java index 03b001ef4..32c3d5e9b 100644 --- a/src/main/java/com/hbm/inventory/FluidStack.java +++ b/src/main/java/com/hbm/inventory/FluidStack.java @@ -8,7 +8,7 @@ public class FluidStack { public int fill; public int pressure; - public FluidStack(int fill, FluidType type) { + @Deprecated public FluidStack(int fill, FluidType type) { // weird ass format this.fill = fill; this.type = type; } diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java new file mode 100644 index 000000000..f67f6579a --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.recipes; + +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.inventory.recipes.loader.GenericRecipes; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; + +public class ChemicalPlantRecipes extends GenericRecipes { + + @Override public int inputItemLimit() { return 3; } + @Override public int inputFluidLimit() { return 3; } + @Override public int outputItemLimit() { return 3; } + @Override public int outputFluidLimit() { return 3; } + + @Override public String getFileName() { return "hbmChemicalPlant.json"; } + @Override public GenericRecipe instantiateRecipe(String name) { return new GenericRecipe(name); } + + @Override + public void registerDefaults() { + + this.register(new GenericRecipe("chem.biogas").setup(60, 100).setIcon(ModItems.gas_full, Fluids.BIOGAS.getID()) + .setInputItems(new ComparableStack(ModItems.biomass, 16)) + .setInputFluids(new FluidStack(Fluids.AIR, 4000)) + .setOutputFluids(new FluidStack(Fluids.BIOGAS, 2000))); + + this.register(new GenericRecipe("chem.test").setup(60, 100) + .setInputItems(new ComparableStack(ModItems.biomass, 16)) + .setInputFluids(new FluidStack(Fluids.AIR, 4000)) + .setOutputItems( + new ChanceOutput(new ItemStack(ModItems.glyphid_meat, 16)), + new ChanceOutput(new ItemStack(ModItems.ingot_asbestos, 1), 0.5F, 0), + new ChanceOutputMulti() {{ + pool.add(new ChanceOutput(new ItemStack(ModItems.billet_co60), 1)); + pool.add(new ChanceOutput(new ItemStack(ModItems.billet_cobalt), 5)); + }}) + .setOutputFluids(new FluidStack(Fluids.BIOGAS, 2000))); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java new file mode 100644 index 000000000..324f1ce4b --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java @@ -0,0 +1,69 @@ +package com.hbm.inventory.recipes.loader; + +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.loader.GenericRecipes.ChanceOutput; +import com.hbm.inventory.recipes.loader.GenericRecipes.ChanceOutputMulti; +import com.hbm.inventory.recipes.loader.GenericRecipes.IOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.util.i18n.I18nUtil; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class GenericRecipe { + + public String name; + public AStack[] inputItem; + public FluidStack[] inputFluid; + public IOutput[] outputItem; + public FluidStack[] outputFluid; + public int duration; + public long power; + public ItemStack icon; + public boolean writeIcon = false; + public boolean customLocalization = false; + + public GenericRecipe(String name) { + this.name = name; + } + + public GenericRecipe setDuration(int duration) { this.duration = duration; return this; } + public GenericRecipe setPower(long power) { this.power = power; return this; } + public GenericRecipe setup(int duration, long power) { return this.setDuration(duration).setPower(power); } + public GenericRecipe setIcon(ItemStack icon) { this.icon = icon; this.writeIcon = true; return this; } + public GenericRecipe setIcon(Item item, int meta) { return this.setIcon(new ItemStack(item, 1, meta)); } + public GenericRecipe setIcon(Item item) { return this.setIcon(new ItemStack(item)); } + public GenericRecipe setNamed() { this.customLocalization = true; return this; } + + public GenericRecipe setInputItems(AStack... input) { this.inputItem = input; return this; } + public GenericRecipe setInputFluids(FluidStack... input) { this.inputFluid = input; return this; } + public GenericRecipe setOutputItems(IOutput... output) { this.outputItem = output; return this; } + public GenericRecipe setOutputFluids(FluidStack... output) { this.outputFluid = output; return this; } + + public ItemStack getIcon() { + + if(icon == null) { + if(outputItem != null) { + if(outputItem[0] instanceof ChanceOutput) icon = ((ChanceOutput) outputItem[0]).stack.copy(); + if(outputItem[0] instanceof ChanceOutputMulti) icon = ((ChanceOutputMulti) outputItem[0]).pool.get(0).stack.copy(); + return icon; + } + if(outputFluid != null) { + icon = ItemFluidIcon.make(outputFluid[0]); + } + } + + if(icon == null) icon = new ItemStack(ModItems.nothing); + return icon; + } + + public String getName() { + if(customLocalization) { + return I18nUtil.resolveKey(name); + } + + return this.getIcon().getDisplayName(); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index a415c92f1..2c9ce4596 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -12,8 +12,6 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; -import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemFluidIcon; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandom; @@ -29,17 +27,19 @@ import net.minecraft.util.WeightedRandom; * * @author hbm */ -public abstract class GenericRecipes extends SerializableRecipe { +public abstract class GenericRecipes extends SerializableRecipe { public static final Random RNG = new Random(); - public List recipeOrderedList = new ArrayList(); - public HashMap recipeNameMap = new HashMap(); + public List recipeOrderedList = new ArrayList(); + public HashMap recipeNameMap = new HashMap(); public abstract int inputItemLimit(); public abstract int inputFluidLimit(); public abstract int outputItemLimit(); public abstract int outputFluidLimit(); + public boolean hasDuration() { return true; } + public boolean hasPower() { return true; } @Override public Object getRecipeObject() { @@ -52,7 +52,7 @@ public abstract class GenericRecipes extends SerializableRecipe { this.recipeNameMap.clear(); } - public void register(GenericRecipe recipe) { + public void register(T recipe) { this.recipeOrderedList.add(recipe); this.recipeNameMap.put(recipe.name, recipe); } @@ -60,28 +60,67 @@ public abstract class GenericRecipes extends SerializableRecipe { @Override public void readRecipe(JsonElement element) { JsonObject obj = (JsonObject) element; - GenericRecipe recipe = instantiateRecipe(obj.get("name").getAsString(), obj.get("duration").getAsInt()); + T recipe = instantiateRecipe(obj.get("name").getAsString()); - if(this.inputItemLimit() > 0) recipe.inputItem = this.readAStackArray(obj.get("inputItem").getAsJsonArray()); - if(this.inputFluidLimit() > 0) recipe.inputFluid = this.readFluidArray(obj.get("inputFluid").getAsJsonArray()); + if(this.inputItemLimit() > 0 && obj.has("inputItem")) recipe.inputItem = this.readAStackArray(obj.get("inputItem").getAsJsonArray()); + if(this.inputFluidLimit() > 0 && obj.has("inputFluid")) recipe.inputFluid = this.readFluidArray(obj.get("inputFluid").getAsJsonArray()); - if(this.outputItemLimit() > 0) recipe.outputItem = this.readOutputArray(obj.get("outputItem").getAsJsonArray()); - if(this.outputFluidLimit() > 0) recipe.outputFluid = this.readFluidArray(obj.get("outputFluid").getAsJsonArray()); + if(this.outputItemLimit() > 0 && obj.has("outputItem")) recipe.outputItem = this.readOutputArray(obj.get("outputItem").getAsJsonArray()); + if(this.outputFluidLimit() > 0 && obj.has("outputFluid")) recipe.outputFluid = this.readFluidArray(obj.get("outputFluid").getAsJsonArray()); + + if(this.hasDuration()) recipe.setDuration(obj.get("duration").getAsInt()); + if(this.hasPower()) recipe.setPower(obj.get("power").getAsLong()); + + if(obj.has("icon")) recipe.setIcon(this.readItemStack(obj.get("icon").getAsJsonArray())); readExtraData(element, recipe); register(recipe); } - public GenericRecipe instantiateRecipe(String name, int duration) { return new GenericRecipe(name, duration); } - public void readExtraData(JsonElement element, GenericRecipe recipe) { } + public abstract T instantiateRecipe(String name); + public void readExtraData(JsonElement element, T recipe) { } @Override - public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + public void writeRecipe(Object recipeObject, JsonWriter writer) throws IOException { + T recipe = (T) recipeObject; + if(this.inputItemLimit() > 0 && recipe.inputItem != null) { + writer.name("inputItem").beginArray(); + for(AStack stack : recipe.inputItem) this.writeAStack(stack, writer); + writer.endArray(); + } + + if(this.inputFluidLimit() > 0 && recipe.inputFluid != null) { + writer.name("inputFluid").beginArray(); + for(FluidStack stack : recipe.inputFluid) this.writeFluidStack(stack, writer); + writer.endArray(); + } + + if(this.outputItemLimit() > 0 && recipe.outputItem != null) { + writer.name("outputItem").beginArray(); + for(IOutput stack : recipe.outputItem) stack.serialize(writer); + writer.endArray(); + } + + if(this.outputFluidLimit() > 0 && recipe.outputFluid != null) { + writer.name("outputFluid").beginArray(); + for(FluidStack stack : recipe.outputFluid) this.writeFluidStack(stack, writer); + writer.endArray(); + } + + if(this.hasDuration()) writer.name("duration").value(recipe.duration); + if(this.hasPower()) writer.name("power").value(recipe.power); + + if(recipe.writeIcon) { + writer.name("icon"); + this.writeItemStack(recipe.icon, writer); + } + + writeExtraData(recipe, writer); } - public void writeExtraData(Object recipe, JsonWriter writer) { } + public void writeExtraData(T recipe, JsonWriter writer) { } public IOutput[] readOutputArray(JsonArray array) { IOutput[] output = new IOutput[array.size()]; @@ -110,45 +149,6 @@ public abstract class GenericRecipes extends SerializableRecipe { /////////////// /// CLASSES /// /////////////// - - public static class GenericRecipe { - - public String name; - public AStack[] inputItem; - public FluidStack[] inputFluid; - public IOutput[] outputItem; - public FluidStack[] outputFluid; - public int duration; - public ItemStack icon; - - public GenericRecipe(String name, int duration) { - this.name = name; - this.duration = duration; - } - - public GenericRecipe setIcon(ItemStack icon) { - this.icon = icon; - return this; - } - - public ItemStack getIcon() { - - if(icon == null) { - if(outputItem != null) { - if(outputItem[0] instanceof ChanceOutput) icon = ((ChanceOutput) outputItem[0]).stack.copy(); - if(outputItem[0] instanceof ChanceOutputMulti) icon = ((ChanceOutputMulti) outputItem[0]).pool.get(0).stack.copy(); - return icon; - } - if(outputFluid != null) { - icon = ItemFluidIcon.make(outputFluid[0]); - } - } - - if(icon == null) icon = new ItemStack(ModItems.nothing); - return icon; - } - } - public static interface IOutput { public boolean possibleMultiOutput(); public ItemStack collapse(); @@ -184,16 +184,21 @@ public abstract class GenericRecipes extends SerializableRecipe { @Override public void serialize(JsonWriter writer) throws IOException { boolean standardStack = chance >= 1 && itemWeight == 0; - if(!standardStack) writer.beginArray(); + + writer.beginArray(); + writer.setIndent(""); if(itemWeight == 0) writer.value("single"); SerializableRecipe.writeItemStack(stack, writer); + writer.setIndent(""); if(!standardStack) { writer.value(chance); if(itemWeight > 0) writer.value(itemWeight); - writer.endArray(); } + + writer.endArray(); + writer.setIndent(" "); } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 8247bff1a..1ea45adca 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -81,6 +81,9 @@ public abstract class SerializableRecipe { //AFTER Assembler recipeHandlers.add(new AnvilRecipes()); recipeHandlers.add(new PedestalRecipes()); + + //GENERIC + recipeHandlers.add(new ChemicalPlantRecipes()); recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); From 0a1822ff1087457502927728159a6ea84d471afb Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 1 Jun 2025 16:45:19 +0200 Subject: [PATCH 110/181] my balls are heavy --- .../blocks/machine/MachineChemicalPlant.java | 6 ++ .../gui/GUIMachineChemicalPlant.java | 8 +++ .../gui/GUIScreenRecipeSelector.java | 67 ++++++++++++++++++ .../recipes/ChemicalPlantRecipes.java | 2 + .../recipes/loader/SerializableRecipe.java | 2 +- .../hbm/module/ModuleMachineChemplant.java | 55 ++++++++++++++ .../item/weapon/sedna/ItemRenderAmat.java | 2 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../TileEntityMachineChemicalPlant.java | 53 +++++++++++++- .../gui/processing/gui_recipe_selector.png | Bin 1778 -> 1802 bytes 10 files changed, 193 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java create mode 100644 src/main/java/com/hbm/module/ModuleMachineChemplant.java diff --git a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java index 6e9669efe..f26e1e3d6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChemicalPlant.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -18,6 +19,11 @@ public class MachineChemicalPlant extends BlockDummyable { if(meta >= 12) return new TileEntityMachineChemicalPlant(); return null; } + + @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[] {2, 0, 1, 1, 1, 1}; } @Override public int getOffset() { return 1; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java index df47af6aa..5bc4c5a93 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java @@ -3,6 +3,7 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineChemicalPlant; +import com.hbm.inventory.recipes.ChemicalPlantRecipes; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineChemicalPlant; @@ -35,6 +36,13 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 61, chemplant.power, chemplant.maxPower); } + + @Override + protected void mouseClicked(int x, int y, int button) { + super.mouseClicked(x, y, button); + + if(this.checkClick(x, y, 7, 125, 18, 18)) GUIScreenRecipeSelector.openSelector(ChemicalPlantRecipes.INSTANCE, chemplant, "", 0, this); + } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java new file mode 100644 index 000000000..ecb69ba16 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java @@ -0,0 +1,67 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.recipes.loader.GenericRecipes; +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.common.FMLCommonHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenRecipeSelector extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_recipe_selector.png"); + + protected int xSize = 176; + protected int ySize = 132; + protected int guiLeft; + protected int guiTop; + + protected GuiScreen previousScreen; + + public static void openSelector(GenericRecipes recipeSet, IControlReceiver tile, String selection, int index, GuiScreen previousScreen) { + FMLCommonHandler.instance().showGuiScreen(new GUIScreenRecipeSelector(recipeSet, tile, selection, index, previousScreen)); + } + + public GUIScreenRecipeSelector(GenericRecipes recipeSet, IControlReceiver tile, String selection, int index, GuiScreen previousScreen) { + this.previousScreen = previousScreen; + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + private void drawGuiContainerForegroundLayer(int x, int y) { + + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + + @Override + protected void keyTyped(char typedChar, int keyCode) { + if(keyCode == 1 || keyCode == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + FMLCommonHandler.instance().showGuiScreen(previousScreen); + } + } + + @Override public boolean doesGuiPauseGame() { return false; } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java index f67f6579a..6aaf0e3cd 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -10,6 +10,8 @@ import com.hbm.items.ModItems; import net.minecraft.item.ItemStack; public class ChemicalPlantRecipes extends GenericRecipes { + + public static final ChemicalPlantRecipes INSTANCE = new ChemicalPlantRecipes(); @Override public int inputItemLimit() { return 3; } @Override public int inputFluidLimit() { return 3; } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 1ea45adca..46f9aa47c 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -83,7 +83,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new PedestalRecipes()); //GENERIC - recipeHandlers.add(new ChemicalPlantRecipes()); + recipeHandlers.add(ChemicalPlantRecipes.INSTANCE); recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); diff --git a/src/main/java/com/hbm/module/ModuleMachineChemplant.java b/src/main/java/com/hbm/module/ModuleMachineChemplant.java new file mode 100644 index 000000000..9775ab26a --- /dev/null +++ b/src/main/java/com/hbm/module/ModuleMachineChemplant.java @@ -0,0 +1,55 @@ +package com.hbm.module; + +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.recipes.ChemicalPlantRecipes; +import com.hbm.inventory.recipes.loader.GenericRecipe; + +import api.hbm.energymk2.IEnergyHandlerMK2; +import net.minecraft.item.ItemStack; + +/** + * Option 1: Make a base class with weird arbitrary overrides to define shit like slots for multi machines like the chemfac + * Option 2: Make an easy to define module which can be used by whatever needs it, hypothetically allowing a mixed recipe machine. + * In the hudson bay, you know how we do it. + * @author hbm + */ +public class ModuleMachineChemplant { + + public int index; + public IEnergyHandlerMK2 battery; + public ItemStack[] slots; + public int[] inputSlots = new int[3]; + public int[] outputSlots = new int[3]; + public FluidTank[] inputTanks = new FluidTank[3]; + public FluidTank[] outputTanks = new FluidTank[3]; + + public String recipe; + public float progress; + + public ModuleMachineChemplant(int index, IEnergyHandlerMK2 battery, ItemStack[] slots) { + this.index = index; + this.battery = battery; + this.slots = slots; + } + + public boolean canProcess() { + GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(this.recipe); + if(recipe == null) return false; + if(battery.getPower() < recipe.power) return false; + + //TBI + + return true; + } + + public void resetProgress() { this.progress = 0F; } + + public void update() { + + } + + public ModuleMachineChemplant iInput(int a, int b, int c) { inputSlots[0] = a; inputSlots[1] = b; inputSlots[2] = c; return this; } + public ModuleMachineChemplant iOutput(int a, int b, int c) { outputSlots[0] = a; outputSlots[1] = b; outputSlots[2] = c; return this; } + public ModuleMachineChemplant fInput(FluidTank a, FluidTank b, FluidTank c) { inputTanks[0] = a; inputTanks[1] = b; inputTanks[2] = c; return this; } + public ModuleMachineChemplant fOutput(FluidTank a, FluidTank b, FluidTank c) { outputTanks[0] = a; outputTanks[1] = b; outputTanks[2] = c; return this; } +} diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java index b66f0e893..9bb17c62b 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderAmat.java @@ -149,7 +149,7 @@ public class ItemRenderAmat extends ItemRenderWeaponBase { @Override public void setupThirdPerson(ItemStack stack) { super.setupThirdPerson(stack); - double scale = 1.5D; + double scale = 1.25D; GL11.glScaled(scale, scale, scale); GL11.glTranslated(0, 0.5, 6.75); } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 375a89662..9a125268a 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -341,6 +341,7 @@ public class TileMappings { put(TileEntityMachineAssembler.class, "tileentity_assembly_machine"); put(TileEntityMachineAssemfac.class, "tileentity_assemfac"); put(TileEntityMachineChemplant.class, "tileentity_chemical_plant"); + put(TileEntityMachineChemicalPlant.class, "tileentity_chemicalplant"); put(TileEntityMachineChemfac.class, "tileentity_chemfac"); put(TileEntityMachineOilWell.class, "tileentity_derrick"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java index c9bac3663..d0579ad9a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemicalPlant.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManagerNT; import com.hbm.inventory.container.ContainerMachineChemicalPlant; import com.hbm.inventory.fluid.Fluids; @@ -11,6 +12,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineChemicalPlant; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.module.ModuleMachineChemplant; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -24,10 +26,12 @@ import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiverMK2, IUpgradeInfoProvider, IGUIProvider { +public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiverMK2, IUpgradeInfoProvider, IControlReceiver, IGUIProvider { public FluidTank[] inputTanks; public FluidTank[] outputTanks; @@ -37,6 +41,7 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem public int progress; public int maxProgress; + public ModuleMachineChemplant chemplantModule; public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this); public TileEntityMachineChemicalPlant() { @@ -48,6 +53,9 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem this.inputTanks[i] = new FluidTank(Fluids.NONE, 24_000); this.outputTanks[i] = new FluidTank(Fluids.NONE, 24_000); } + + this.chemplantModule = new ModuleMachineChemplant(0, this, slots) + .iInput(4, 5, 6).iOutput(7, 8, 9); } @Override @@ -91,6 +99,28 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem this.progress = buf.readInt(); this.maxProgress = buf.readInt(); } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + for(int i = 0; i < 3; i++) { + this.inputTanks[i].readFromNBT(nbt, "i" + i); + this.outputTanks[i].readFromNBT(nbt, "o" + i); + } + + this.chemplantModule.fInput(inputTanks[0], inputTanks[1], inputTanks[2]).fOutput(outputTanks[0], outputTanks[1], outputTanks[2]); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + for(int i = 0; i < 3; i++) { + this.inputTanks[i].writeToNBT(nbt, "i" + i); + this.outputTanks[i].writeToNBT(nbt, "o" + i); + } + } @Override public long getPower() { return power; } @Override public void setPower(long power) { this.power = power; } @@ -103,6 +133,27 @@ public class TileEntityMachineChemicalPlant extends TileEntityMachineBase implem @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineChemicalPlant(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineChemicalPlant(player.inventory, this); } + @Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); } + + @Override + public void receiveControl(NBTTagCompound data) { + + } + + 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; + } + @Override public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_recipe_selector.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_recipe_selector.png index 73529c346c4794a0fab294fc3300041e9c2549e6..0da6d7d30bae3c87cee891582b9f9df354e71d4d 100644 GIT binary patch delta 1552 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 From 169e9c087901767280fbcdd76794f2369e17f598 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 1 Jun 2025 17:10:57 +0200 Subject: [PATCH 111/181] lost in the sauce --- changelog | 2 ++ .../inventory/recipes/AssemblerRecipes.java | 3 ++- .../weapon/sedna/factory/XFactory50.java | 11 ++++++++--- .../weapon/sedna/factory/XFactory556mm.java | 6 +++--- .../weapon/sedna/factory/XFactoryTool.java | 4 ++++ .../weapon/sedna/mods/WeaponModScope.java | 11 ++++++++++- .../com/hbm/render/util/RenderOverhead.java | 2 ++ .../assets/hbm/textures/misc/scope_44.png | Bin 15186 -> 8198 bytes .../misc/{scope_luna.png => scope_amat.png} | Bin .../hbm/textures/misc/scope_penance.png | Bin 0 -> 16280 bytes .../assets/hbm/textures/misc/scope_tool.png | Bin 0 -> 8448 bytes 11 files changed, 31 insertions(+), 8 deletions(-) rename src/main/resources/assets/hbm/textures/misc/{scope_luna.png => scope_amat.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/misc/scope_penance.png create mode 100644 src/main/resources/assets/hbm/textures/misc/scope_tool.png diff --git a/changelog b/changelog index cf105af6d..2eb34f29f 100644 --- a/changelog +++ b/changelog @@ -18,6 +18,8 @@ * Water extinguishers can now wash away foam blocks * Obliterated Fabsol's vodka * Tier 4 heart piece is now called "heart of darkness" +* Thermal sights now render dead mobs in black +* Guns now have unique scope overlays instead of reusing the .44 scope for everything ## Fixed * Conveyor ejectors should now correctly place items onto the back of splitters instead of on the output belts diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 82fc9d8f4..b66a700c7 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -29,6 +29,7 @@ import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumCasingType; +import com.hbm.items.ItemEnums.EnumSecretType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; @@ -803,7 +804,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModItems.ammo_secret, 12, EnumAmmoSecret.BMG50_BLACK), new AStack[] { new ComparableStack(ModItems.casing, 2, EnumCasingType.LARGE_STEEL), new OreDictStack(ANY_SMOKELESS.dust(), 24), - new OreDictStack(WEAPONSTEEL.ingot(), 8), + new ComparableStack(ModItems.item_secret, 1, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.black_diamond), }, 1200, ModItems.journal_silver); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java index a73db227c..9a0c0fcae 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -18,6 +18,7 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret; import com.hbm.items.weapon.sedna.mags.MagazineBelt; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.lib.RefStrings; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.anim.BusAnimation; @@ -27,9 +28,13 @@ import com.hbm.render.anim.HbmAnimations.AnimType; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.ResourceLocation; public class XFactory50 { + public static final ResourceLocation scope = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_amat.png"); + public static final ResourceLocation scope_thermal = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_penance.png"); + public static BulletConfig bmg50_sp; public static BulletConfig bmg50_fmj; public static BulletConfig bmg50_jhp; @@ -76,7 +81,7 @@ public class XFactory50 { .setCasing(casing50.clone().setColor(SpentCasing.COLOR_CASE_EQUESTRIAN).register("bmg50equestrian")); ModItems.gun_amat = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(350).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(XFactory44.scope_lilmac).smoke(LAMBDA_SMOKE) + .dura(350).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) .dmg(30F).delay(25).dry(25).spreadHipfire(0.05F).reload(51).jam(43).sound("hbm:weapon.fire.amat", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he)) @@ -86,7 +91,7 @@ public class XFactory50 { .anim(LAMBDA_AMAT_ANIMS).orchestra(Orchestras.ORCHESTRA_AMAT) ).setUnlocalizedName("gun_amat"); ModItems.gun_amat_subtlety = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() - .dura(1_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(XFactory44.scope_lilmac).smoke(LAMBDA_SMOKE) + .dura(1_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) .dmg(50F).delay(25).dry(25).spreadHipfire(0.05F).reload(51).jam(43).sound("hbm:weapon.fire.amat", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 7).addConfigs(bmg50_equestrian, bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he)) @@ -96,7 +101,7 @@ public class XFactory50 { .anim(LAMBDA_AMAT_ANIMS).orchestra(Orchestras.ORCHESTRA_AMAT) ).setUnlocalizedName("gun_amat_subtlety"); ModItems.gun_amat_penance = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() - .dura(5_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(XFactory44.scope_lilmac).thermalSights(true).smoke(LAMBDA_SMOKE) + .dura(5_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope_thermal).thermalSights(true).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) .dmg(45F).delay(25).dry(25).spreadHipfire(0F).reload(51).jam(43).sound("hbm:weapon.silencerShoot", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he, bmg50_black)) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java index 6165e3b37..c37d6c78a 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java @@ -37,7 +37,7 @@ import net.minecraft.util.ResourceLocation; public class XFactory556mm { - public static final ResourceLocation scope_lilmac = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_44.png"); + public static final ResourceLocation scope = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_bolt.png"); public static BulletConfig r556_sp; public static BulletConfig r556_fmj; @@ -83,7 +83,7 @@ public class XFactory556mm { .anim(LAMBDA_G3_ANIMS).orchestra(Orchestras.ORCHESTRA_G3) ).setNameMutator(LAMBDA_NAME_G3).setUnlocalizedName("gun_g3"); ModItems.gun_g3_zebra = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig() - .dura(6_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE).scopeTexture(XFactory44.scope_lilmac) + .dura(6_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE).scopeTexture(scope) .rec(new Receiver(0) .dmg(7.5F).delay(2).auto(true).dry(15).spreadHipfire(0.01F).reload(50).jam(47).sound("hbm:weapon.fire.silenced", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 30).addConfigs(r556_inc_sp, r556_inc_fmj, r556_inc_jhp, r556_inc_ap)) @@ -94,7 +94,7 @@ public class XFactory556mm { ).setNameMutator(LAMBDA_NAME_G3).setUnlocalizedName("gun_g3_zebra"); ModItems.gun_stg77 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(3_000).draw(10).inspect(125).crosshair(Crosshair.CIRCLE).scopeTexture(scope_lilmac).smoke(LAMBDA_SMOKE) + .dura(3_000).draw(10).inspect(125).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) .dmg(10F).delay(2).dry(15).auto(true).reload(46).jam(0).sound("hbm:weapon.fire.assault", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 30).addConfigs(r556_sp, r556_fmj, r556_jhp, r556_ap)) diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java index 9f3179947..91cb0f688 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTool.java @@ -25,6 +25,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower; import com.hbm.items.weapon.sedna.mags.MagazineFullReload; +import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.particle.helper.ExplosionCreator; import com.hbm.render.anim.BusAnimation; @@ -45,9 +46,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; public class XFactoryTool { + + public static final ResourceLocation scope = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_tool.png"); public static BulletConfig fext_water; public static BulletConfig fext_foam; diff --git a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModScope.java b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModScope.java index 862ea4c0b..7b595d151 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModScope.java +++ b/src/main/java/com/hbm/items/weapon/sedna/mods/WeaponModScope.java @@ -1,7 +1,12 @@ package com.hbm.items.weapon.sedna.mods; +import com.hbm.items.ModItems; import com.hbm.items.weapon.sedna.GunConfig; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality; import com.hbm.items.weapon.sedna.factory.XFactory44; +import com.hbm.items.weapon.sedna.factory.XFactory556mm; +import com.hbm.items.weapon.sedna.factory.XFactoryTool; import net.minecraft.item.ItemStack; @@ -14,7 +19,11 @@ public class WeaponModScope extends WeaponModBase { @Override public T eval(T base, ItemStack gun, String key, Object parent) { - if(key == GunConfig.O_SCOPETEXTURE) return (T) XFactory44.scope_lilmac; + if(key == GunConfig.O_SCOPETEXTURE) { + if(gun.getItem() == ModItems.gun_heavy_revolver) return (T) XFactory44.scope_lilmac; + if(((ItemGunBaseNT) gun.getItem()).quality == WeaponQuality.UTILITY) return (T) XFactoryTool.scope; + return (T) XFactory556mm.scope; + } if(key == GunConfig.B_HIDECROSSHAIR) return cast(true, base); // just in case return base; diff --git a/src/main/java/com/hbm/render/util/RenderOverhead.java b/src/main/java/com/hbm/render/util/RenderOverhead.java index 8e942ed3f..f5270532f 100644 --- a/src/main/java/com/hbm/render/util/RenderOverhead.java +++ b/src/main/java/com/hbm/render/util/RenderOverhead.java @@ -159,6 +159,8 @@ public class RenderOverhead { tess.setColorOpaque_F(0.5F, 1F, 0.5F); } else continue; + + if(ent instanceof EntityLivingBase && ((EntityLivingBase) ent).getHealth() <= 0) tess.setColorOpaque_F(0F, 0F, 0F); AxisAlignedBB bb = ent.boundingBox; tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z); diff --git a/src/main/resources/assets/hbm/textures/misc/scope_44.png b/src/main/resources/assets/hbm/textures/misc/scope_44.png index dc53998bb917cdad3b78e1f4e9f7d50170262c99..038868a0f17395f2fbd3f372bef1f9e04bcaf0d6 100644 GIT binary patch literal 8198 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 literal 15186 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 SaRFSlM^cnildY0A3;92S&3QWj literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/misc/scope_tool.png b/src/main/resources/assets/hbm/textures/misc/scope_tool.png new file mode 100644 index 0000000000000000000000000000000000000000..b99d8db414e3079e8223eae682a65d347f1264b9 GIT binary patch literal 8448 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 Date: Sun, 1 Jun 2025 18:09:57 +0300 Subject: [PATCH 112/181] Make wooden scaffold climbable --- .../blocks/generic/BlockWoodStructure.java | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockWoodStructure.java b/src/main/java/com/hbm/blocks/generic/BlockWoodStructure.java index b094874ac..74fdb220a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockWoodStructure.java +++ b/src/main/java/com/hbm/blocks/generic/BlockWoodStructure.java @@ -5,6 +5,7 @@ import java.util.List; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockEnumMulti; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.render.block.ISBRHUniversal; import com.hbm.render.util.RenderBlocksNT; import com.hbm.util.EnumUtil; @@ -16,6 +17,7 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -53,7 +55,7 @@ public class BlockWoodStructure extends BlockEnumMulti implements ISBRHUniversal EnumWoodStructure type = EnumUtil.grabEnumSafely(EnumWoodStructure.class, world.getBlockMetadata(x, y, z)); setBlockBounds(0, 0, 0, 1, 1, 1); if(type == type.ROOF) setBlockBounds(0F, 0F, 0F, 1F, 0.1875F, 1F); - if(type == type.SCAFFOLD) setBlockBounds(0F, 0F, 0F, 1F, 1F, 1F); + if(type == type.SCAFFOLD) setBlockBounds(0.0625F, 0F, 0.0625F, 1F - 0.0625F, 1F, 1F - 0.0625F); if(type == type.CEILING) setBlockBounds(0F, 0.875F, 0F, 1F, 1F, 1F); } @@ -62,6 +64,21 @@ public class BlockWoodStructure extends BlockEnumMulti implements ISBRHUniversal setBlockBoundsBasedOnState(world, x, y, z); super.addCollisionBoxesToList(world, x, y, z, aabb, list, collider); } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + setBlockBoundsBasedOnState(world, x, y, z); + return super.getCollisionBoundingBoxFromPool(world, x, y, z); + } + + public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int i, int j, int k) { + int meta = world.getBlockMetadata(i, j, k); + EnumWoodStructure type = EnumUtil.grabEnumSafely(EnumWoodStructure.class, meta); + + if (type == type.SCAFFOLD) return AxisAlignedBB.getBoundingBox(i, j, k, i + 1, j + 1, k + 1); + + return super.getSelectedBoundingBoxFromPool(world, i, j, k); + } @Override public void renderInventoryBlock(Block block, int meta, int modelId, Object renderBlocks) { @@ -149,4 +166,18 @@ public class BlockWoodStructure extends BlockEnumMulti implements ISBRHUniversal return true; } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + if (entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) entity; + + int meta = world.getBlockMetadata(x, y, z); + EnumWoodStructure type = EnumUtil.grabEnumSafely(EnumWoodStructure.class,meta); + if (type != type.SCAFFOLD) return; + + HbmPlayerProps props = HbmPlayerProps.getData(player); + props.isOnLadder = true; + } + } } From 8d7664f728f9101e7c0bfaddd13db3bdb8b422c6 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Sun, 1 Jun 2025 19:29:01 +0300 Subject: [PATCH 113/181] Integrate stack size logic directly into SlotPattern --- src/main/java/com/hbm/inventory/SlotPattern.java | 10 ++++++++++ .../hbm/inventory/container/ContainerAutocrafter.java | 8 +------- .../inventory/container/ContainerCartDestroyer.java | 8 +------- .../hbm/inventory/container/ContainerCounterTorch.java | 8 +------- .../inventory/container/ContainerCraneExtractor.java | 8 +------- .../hbm/inventory/container/ContainerCraneGrabber.java | 8 +------- .../hbm/inventory/container/ContainerCraneRouter.java | 8 +------- .../inventory/container/ContainerDroneRequester.java | 8 +------- .../inventory/container/ContainerMachineCustom.java | 8 +------- .../hbm/inventory/container/ContainerMassStorage.java | 8 +------- .../hbm/inventory/container/ContainerPneumoTube.java | 4 +--- 11 files changed, 20 insertions(+), 66 deletions(-) diff --git a/src/main/java/com/hbm/inventory/SlotPattern.java b/src/main/java/com/hbm/inventory/SlotPattern.java index c40b92091..550fae5b6 100644 --- a/src/main/java/com/hbm/inventory/SlotPattern.java +++ b/src/main/java/com/hbm/inventory/SlotPattern.java @@ -5,6 +5,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; public class SlotPattern extends Slot { @@ -24,6 +25,15 @@ public class SlotPattern extends Slot { return 1; } + @Override + public void putStack(ItemStack stack) { + if (stack != null) { + stack = stack.copy(); + stack.stackSize = 1; + } + super.putStack(stack); + } + public SlotPattern disableHover() { this.canHover = false; return this; diff --git a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java index 0c5c3ff51..f18f83c9f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java @@ -74,13 +74,7 @@ public class ContainerAutocrafter extends ContainerBase { } else { - slot.putStack(held != null ? held.copy() : null); - - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; - } - - slot.onSlotChanged(); + slot.putStack(held); autocrafter.matcher.initPatternSmart(autocrafter.getWorldObj(), slot.getStack(), index); autocrafter.updateTemplateGrid(); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCartDestroyer.java b/src/main/java/com/hbm/inventory/container/ContainerCartDestroyer.java index 356a97d92..cff9ae430 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCartDestroyer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCartDestroyer.java @@ -66,13 +66,7 @@ public class ContainerCartDestroyer extends Container { if(slot.getHasStack()) ret = slot.getStack().copy(); - slot.putStack(held != null ? held.copy() : null); - - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; - } - - slot.onSlotChanged(); + slot.putStack(held); return ret; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java b/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java index 925b3d7e1..c50c6014f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java @@ -48,13 +48,7 @@ public class ContainerCounterTorch extends ContainerBase { return ret; } else { - slot.putStack(held != null ? held.copy() : null); - - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; - } - - slot.onSlotChanged(); + slot.putStack(held); radio.matcher.initPatternStandard(radio.getWorldObj(), slot.getStack(), index); return ret; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java index 9c0abe3a6..1da5825e1 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java @@ -105,13 +105,7 @@ public class ContainerCraneExtractor extends ContainerBase { return ret; } else { - slot.putStack(held != null ? held.copy() : null); - - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; - } - - slot.onSlotChanged(); + slot.putStack(held); extractor.matcher.initPatternStandard(extractor.getWorldObj(), slot.getStack(), index); return ret; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneGrabber.java b/src/main/java/com/hbm/inventory/container/ContainerCraneGrabber.java index 7b35961ee..17de36f86 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneGrabber.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneGrabber.java @@ -100,13 +100,7 @@ public class ContainerCraneGrabber extends ContainerBase { return ret; } else { - slot.putStack(held != null ? held.copy() : null); - - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; - } - - slot.onSlotChanged(); + slot.putStack(held); grabber.matcher.initPatternStandard(grabber.getWorldObj(), slot.getStack(), index); return ret; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneRouter.java b/src/main/java/com/hbm/inventory/container/ContainerCraneRouter.java index d30d8c8ae..79de2466f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneRouter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneRouter.java @@ -52,13 +52,7 @@ public class ContainerCraneRouter extends ContainerBase { } else { - slot.putStack(held != null ? held.copy() : null); - - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; - } - - slot.onSlotChanged(); + slot.putStack(held); router.initPattern(slot.getStack(), index); return ret; diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java index bdc788c44..13a8bbb0e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java @@ -85,13 +85,7 @@ public class ContainerDroneRequester extends ContainerCrateBase { return ret; } else { - slot.putStack(held != null ? held.copy() : null); - - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; - } - - slot.onSlotChanged(); + slot.putStack(held); requester.matcher.initPatternStandard(requester.getWorldObj(), slot.getStack(), index); return ret; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java index d85a2953f..2e988f28a 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java @@ -94,13 +94,7 @@ public class ContainerMachineCustom extends Container { } else { - slot.putStack(held != null ? held.copy() : null); - - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; - } - - slot.onSlotChanged(); + slot.putStack(held); custom.matcher.initPatternSmart(player.worldObj, slot.getStack(), index - 10); return ret; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java index 899cbc3f2..f8a760816 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java @@ -79,13 +79,7 @@ public class ContainerMassStorage extends ContainerBase { if(storage.getStockpile() > 0) return ret; - slot.putStack(held != null ? held.copy() : null); - - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; - } - - slot.onSlotChanged(); + slot.putStack(held); return ret; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerPneumoTube.java b/src/main/java/com/hbm/inventory/container/ContainerPneumoTube.java index 9796028ea..91eaab7f3 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerPneumoTube.java +++ b/src/main/java/com/hbm/inventory/container/ContainerPneumoTube.java @@ -39,9 +39,7 @@ public class ContainerPneumoTube extends ContainerBase { tube.nextMode(index); return ret; } else { - slot.putStack(held != null ? held.copy() : null); - if(slot.getHasStack()) slot.getStack().stackSize = 1; - slot.onSlotChanged(); + slot.putStack(held); tube.initPattern(slot.getStack(), index); return ret; } From afa0418104e817e972f8062f80410a7bfb1c573a Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 00:11:28 +0300 Subject: [PATCH 114/181] Make strand caster timeout refresh on pour Previously, if a caster has been idle for a while, the first time something is poured into it, it would spew out a partial load almost immediately. The original intention behind the timeout was instead to make the strand caster perform incomplete operations if no new material has been poured for a while. This change makes the behaviour closer to intended. Most of the time, persistent use of the caster would consistently reach full fill, and incomplete fill will only be processed at the end. --- .../machine/TileEntityMachineStrandCaster.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java index 9ca467285..a3a8b3ded 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineStrandCaster.java @@ -32,7 +32,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase public FluidTank water; public FluidTank steam; - private long lastCastTick = 0; + private long lastProgressTick = 0; public String getName() { return "container.machineStrandCaster"; @@ -77,7 +77,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase int moldsToCast = maxProcessable(); // Makes it flush the buffers after 10 seconds of inactivity, or when they're full - if (moldsToCast > 0 && (moldsToCast >= 9 || worldObj.getWorldTime() >= lastCastTick + 200)) { + if (moldsToCast > 0 && (moldsToCast >= 9 || worldObj.getWorldTime() >= lastProgressTick + 200)) { ItemMold.Mold mold = this.getInstalledMold(); @@ -108,7 +108,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase water.setFill(water.getFill() - getWaterRequired() * moldsToCast); steam.setFill(steam.getFill() + getWaterRequired() * moldsToCast); - lastCastTick = worldObj.getWorldTime(); + lastProgressTick = worldObj.getWorldTime(); } networkPackNT(150); @@ -226,6 +226,8 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase stack.amount -= required; + lastProgressTick = world.getWorldTime(); + return stack; } @@ -272,7 +274,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase super.writeToNBT(nbt); water.writeToNBT(nbt, "w"); steam.writeToNBT(nbt, "s"); - nbt.setLong("t", lastCastTick); + nbt.setLong("t", lastProgressTick); } @Override @@ -280,7 +282,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase super.readFromNBT(nbt); water.readFromNBT(nbt, "w"); steam.readFromNBT(nbt, "s"); - lastCastTick = nbt.getLong("t"); + lastProgressTick = nbt.getLong("t"); } @Override From 2d33e90f931770c218cf833b28d93a236e213389 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 00:59:22 +0300 Subject: [PATCH 115/181] Allow climbing freestanding chains and vines using spacebar --- .../com/hbm/main/ModEventHandlerClient.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index a2ee8b962..fc9d0041f 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -68,6 +68,7 @@ import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent; +import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; @@ -86,6 +87,7 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.client.settings.GameSettings; import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -1098,6 +1100,28 @@ public class ModEventHandlerClient { } } + @SideOnly(Side.CLIENT) + @SubscribeEvent + public void onPlayerTick(TickEvent.PlayerTickEvent event) { + EntityPlayer player = event.player; + + int x = MathHelper.floor_double(player.posX); + int y = MathHelper.floor_double(player.posY); + int z = MathHelper.floor_double(player.posZ); + Block b = player.worldObj.getBlock(x, y, z); + + // Support climbing freestanding vines and chains using spacebar + if ( + b.isLadder(player.worldObj, x, y, z, player) && + b.getCollisionBoundingBoxFromPool(player.worldObj, x, y, z) == null && + !player.capabilities.isFlying && + GameSettings.isKeyDown(Minecraft.getMinecraft().gameSettings.keyBindJump) && + player.motionY < 0.15 + ) { + player.motionY = 0.15; + } + } + @SideOnly(Side.CLIENT) @SubscribeEvent(priority = EventPriority.LOW) public void onMouseClicked(InputEvent.MouseInputEvent event) { From 4a931a4be1799750deae585bbe877a1f1021bc78 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 01:04:21 +0300 Subject: [PATCH 116/181] Remove angry metal drop Considerting it is no longer used anywhere (Eye of Harmony doesn't count since the AMS is long deprecated), it felt weird to still get it 10% of the time --- src/main/java/com/hbm/blocks/generic/BlockOre.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 36cd4e00c..eda698874 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -68,9 +68,6 @@ public class BlockOre extends Block { if(this == ModBlocks.ore_nether_fire) { return rand.nextInt(10) == 0 ? ModItems.ingot_phosphorus : ModItems.powder_fire; } - if(this == ModBlocks.block_meteor) { - return rand.nextInt(10) == 0 ? ModItems.plate_dalekanium : Item.getItemFromBlock(ModBlocks.block_meteor); - } if(this == ModBlocks.block_meteor_cobble) { return ModItems.fragment_meteorite; } From 5501380d1528cce3fb189ba622a08f7c52fe97ac Mon Sep 17 00:00:00 2001 From: George Paton Date: Mon, 2 Jun 2025 10:15:39 +1000 Subject: [PATCH 117/181] fix interaction max distance preventing interacting with detailed BlockDummyable hitboxes --- .../java/com/hbm/blocks/BlockDummyable.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/blocks/BlockDummyable.java b/src/main/java/com/hbm/blocks/BlockDummyable.java index fa604e66e..9508350b5 100644 --- a/src/main/java/com/hbm/blocks/BlockDummyable.java +++ b/src/main/java/com/hbm/blocks/BlockDummyable.java @@ -443,8 +443,10 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl y = pos[1]; z = pos[2]; - for(AxisAlignedBB aabb :this.bounding) { - AxisAlignedBB boxlet = getAABBRotationOffset(aabb, x + 0.5, y, z + 0.5, ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - offset).getRotation(ForgeDirection.UP)); + ForgeDirection rot = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - offset).getRotation(ForgeDirection.UP); + + for(AxisAlignedBB aabb : this.bounding) { + AxisAlignedBB boxlet = getAABBRotationOffset(aabb, x + 0.5, y, z + 0.5, rot); if(entityBounding.intersectsWith(boxlet)) { list.add(boxlet); @@ -469,6 +471,7 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl return AxisAlignedBB.getBoundingBox(aabb.minX, aabb.minY, aabb.minZ, aabb.maxX, aabb.maxY, aabb.maxZ).offset(x + 0.5, y + 0.5, z + 0.5); } + // Don't mutate the xyz parameters, or the interaction max distance will bite you @Override public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) { if(!this.useDetailedHitbox()) { @@ -480,12 +483,10 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl if(pos == null) return super.collisionRayTrace(world, x, y, z, startVec, endVec); - x = pos[0]; - y = pos[1]; - z = pos[2]; + ForgeDirection rot = ForgeDirection.getOrientation(world.getBlockMetadata(pos[0], pos[1], pos[2]) - offset).getRotation(ForgeDirection.UP); - for(AxisAlignedBB aabb :this.bounding) { - AxisAlignedBB boxlet = getAABBRotationOffset(aabb, x + 0.5, y, z + 0.5, ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - offset).getRotation(ForgeDirection.UP)); + for(AxisAlignedBB aabb : this.bounding) { + AxisAlignedBB boxlet = getAABBRotationOffset(aabb, pos[0] + 0.5, pos[1], pos[2] + 0.5, rot); MovingObjectPosition intercept = boxlet.calculateIntercept(startVec, endVec); if(intercept != null) { @@ -529,10 +530,10 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; float exp = 0.002F; - int meta = world.getBlockMetadata(x, y, z); + ForgeDirection rot = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - offset).getRotation(ForgeDirection.UP); ICustomBlockHighlight.setup(); - for(AxisAlignedBB aabb : this.bounding) RenderGlobal.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(meta - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1); + for(AxisAlignedBB aabb : this.bounding) RenderGlobal.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, rot).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1); ICustomBlockHighlight.cleanup(); } From 5d7fc996e591a313d22d16991bea01d7ce23d80e Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 14:32:00 +0300 Subject: [PATCH 118/181] Make autosaw replant crops It doesn't seem too far-fetched to suggest the seeds that fall to the ground are replanted in a natural way. I had to replace the old ray-tracing approach with a more straightforward iteration over all possibly affected blocks (under 400, most of them skipped). In terms of performance this seems on par with the original solution (the raytrace function alone did 200 iterations). --- .../machine/TileEntityMachineAutosaw.java | 106 ++++++++++++++---- 1 file changed, 85 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java index af5d11cf7..d7bddd3a1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -22,14 +23,20 @@ import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.block.BlockLeaves; +import net.minecraft.block.IGrowable; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; 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; +import net.minecraftforge.common.IPlantable; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardReceiver, IFluidCopiable { @@ -119,29 +126,40 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB this.rotationYaw -= 360; } - Vec3 grace = Vec3.createVectorHelper(0, 0, -3.5); - grace.rotateAroundY(-(float) Math.toRadians(rotationYaw)); - grace.xCoord += pivot.xCoord; - grace.yCoord += pivot.yCoord; - grace.zCoord += pivot.zCoord; + final double CUT_ANGLE = Math.toRadians(5); + double rotationYawRads = Math.toRadians((rotationYaw + 270) % 360); - Vec3 detector = Vec3.createVectorHelper(0, 0, -9); - detector.rotateAroundY(-(float) Math.toRadians(rotationYaw)); - detector.xCoord += pivot.xCoord; - detector.yCoord += pivot.yCoord; - detector.zCoord += pivot.zCoord; - MovingObjectPosition pos = worldObj.func_147447_a(grace, detector, false, false, false); + outer: + for(int dx = -9; dx <= 9; dx++) { + for(int dz = -9; dz <= 9; dz++) { + int sqrDst = dx * dx + dz * dz; - if(pos != null && pos.typeOfHit == pos.typeOfHit.BLOCK) { + if(sqrDst <= 4 || sqrDst > 81) + continue; + + double angle = Math.atan2(dz, dx); + double relAngle = Math.abs(angle - rotationYawRads); + relAngle = Math.abs((relAngle + Math.PI) % (2 * Math.PI) - Math.PI); - Block b = worldObj.getBlock(pos.blockX, pos.blockY, pos.blockZ); + if(relAngle > CUT_ANGLE) + continue; - if(b.getMaterial() == Material.wood || b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { + int x = xCoord + dx; + int y = yCoord + 1; + int z = zCoord + dz; - int meta = worldObj.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ); - if(!shouldIgnore(b, meta)) { - state = 1; - } + Block b = worldObj.getBlock(x, y, z); + if(!(b.getMaterial() == Material.wood || b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants)) + continue; + + int meta = worldObj.getBlockMetadata(x, y, z); + if(shouldIgnore(worldObj, x, y, z, b, meta)) + continue; + + // com.hbm.main.MainRegistry.logger.info("[Abel] found target at " + x + ", " + y + ", " + z + ", angle=" + rotationYaw); + + state = 1; + break outer; } } } @@ -212,11 +230,15 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB } /** Anything additionally that the detector nor the blades should pick up on, like non-mature willows */ - public static boolean shouldIgnore(Block b, int meta) { + public static boolean shouldIgnore(World world, int x, int y, int z, Block b, int meta) { if(b == ModBlocks.plant_tall) { return meta == EnumTallFlower.CD2.ordinal() + 8 || meta == EnumTallFlower.CD3.ordinal() + 8; } + if((b instanceof IGrowable)) { + return ((IGrowable) b).func_149851_a(world, x, y, z, world.isRemote); + } + return false; } @@ -225,12 +247,12 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB Block b = worldObj.getBlock(x, y, z); int meta = worldObj.getBlockMetadata(x, y, z); - if(shouldIgnore(b, meta)) { + if(shouldIgnore(worldObj, x, y, z, b, meta)) { return; } if(b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { - worldObj.func_147480_a(x, y, z, true); + cutCrop(x, y, z); return; } @@ -242,6 +264,48 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IB } } + protected void cutCrop(int x, int y, int z) { + + Block soil = worldObj.getBlock(x, y - 1, z); + + Block b = worldObj.getBlock(x, y, z); + int meta = worldObj.getBlockMetadata(x, y, z); + + worldObj.playAuxSFX(2001, x, y, z, Block.getIdFromBlock(b) + (meta << 12)); + + Block replacementBlock = Blocks.air; + int replacementMeta = 0; + + if (!worldObj.isRemote && !worldObj.restoringBlockSnapshots) { + ArrayList drops = b.getDrops(worldObj, x, y, z, meta, 0); + boolean replanted = false; + + for (ItemStack drop : drops) { + if (!replanted && drop.getItem() instanceof IPlantable) { + IPlantable seed = (IPlantable) drop.getItem(); + + if(soil.canSustainPlant(worldObj, x, y - 1, z, ForgeDirection.UP, seed)) { + replacementBlock = seed.getPlant(worldObj, x, y, z); + replacementMeta = seed.getPlantMetadata(worldObj, x, y, z); + replanted = true; + drop.stackSize -= 1; + } + } + + float delta = 0.7F; + double dx = (double)(worldObj.rand.nextFloat() * delta) + (double)(1.0F - delta) * 0.5D; + double dy = (double)(worldObj.rand.nextFloat() * delta) + (double)(1.0F - delta) * 0.5D; + double dz = (double)(worldObj.rand.nextFloat() * delta) + (double)(1.0F - delta) * 0.5D; + + EntityItem entityItem = new EntityItem(worldObj, x + dx, y + dy, z + dz, drop); + entityItem.delayBeforeCanPickup = 10; + worldObj.spawnEntityInWorld(entityItem); + } + } + + worldObj.setBlock(x, y, z, replacementBlock, replacementMeta, 3); + } + protected void fellTree(int x, int y, int z) { if(worldObj.getBlock(x, y - 1, z).getMaterial() == Material.wood) { From 0c9bea70911d9acc299a31c986f0dc5a544f0e17 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 2 Jun 2025 16:58:59 +0200 Subject: [PATCH 119/181] the selection --- .../gui/GUIMachineChemicalPlant.java | 2 +- .../gui/GUIScreenRecipeSelector.java | 112 +++++++++++++++++- .../recipes/ChemicalPlantRecipes.java | 10 ++ .../recipes/loader/GenericRecipe.java | 14 ++- .../recipes/loader/GenericRecipes.java | 3 + 5 files changed, 134 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java index 5bc4c5a93..d2812ab1f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineChemicalPlant.java @@ -41,7 +41,7 @@ public class GUIMachineChemicalPlant extends GuiInfoContainer { protected void mouseClicked(int x, int y, int button) { super.mouseClicked(x, y, button); - if(this.checkClick(x, y, 7, 125, 18, 18)) GUIScreenRecipeSelector.openSelector(ChemicalPlantRecipes.INSTANCE, chemplant, "", 0, this); + if(this.checkClick(x, y, 7, 125, 18, 18)) GUIScreenRecipeSelector.openSelector(ChemicalPlantRecipes.INSTANCE, chemplant, chemplant.chemplantModule.recipe, 0, this); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java index ecb69ba16..9fedd4ef0 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRecipeSelector.java @@ -1,25 +1,45 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.lib.RefStrings; import cpw.mods.fml.common.FMLCommonHandler; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.util.ResourceLocation; public class GUIScreenRecipeSelector extends GuiScreen { protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_recipe_selector.png"); + //basic GUI setup protected int xSize = 176; protected int ySize = 132; protected int guiLeft; protected int guiTop; - + // search crap + protected GenericRecipes recipeSet; + protected List recipes = new ArrayList(); + protected GuiTextField search; + protected int pageIndex; + protected int size; + protected String selection; + // callback + protected int index; + protected IControlReceiver tile; protected GuiScreen previousScreen; public static void openSelector(GenericRecipes recipeSet, IControlReceiver tile, String selection, int index, GuiScreen previousScreen) { @@ -27,7 +47,13 @@ public class GUIScreenRecipeSelector extends GuiScreen { } public GUIScreenRecipeSelector(GenericRecipes recipeSet, IControlReceiver tile, String selection, int index, GuiScreen previousScreen) { + this.recipeSet = recipeSet; + this.tile = tile; + this.selection = selection; + this.index = index; this.previousScreen = previousScreen; + + regenerateRecipes(); } @Override @@ -35,6 +61,41 @@ public class GUIScreenRecipeSelector extends GuiScreen { super.initGui(); this.guiLeft = (this.width - this.xSize) / 2; this.guiTop = (this.height - this.ySize) / 2; + + Keyboard.enableRepeatEvents(true); + this.search = new GuiTextField(this.fontRendererObj, guiLeft + 28, guiTop + 111, 102, 12); + this.search.setTextColor(-1); + this.search.setDisabledTextColour(-1); + this.search.setEnableBackgroundDrawing(false); + this.search.setMaxStringLength(32); + } + + private void regenerateRecipes() { + + this.recipes.clear(); + this.recipes.addAll(recipeSet.recipeOrderedList); + + resetPaging(); + } + + private void search(String search) { + this.recipes.clear(); + + if(search.isEmpty()) { + this.recipes.addAll(recipeSet.recipeOrderedList); + } else { + for(Object o : recipeSet.recipeOrderedList) { + GenericRecipe recipe = (GenericRecipe) o; + if(recipe.matchesSearch(search)) this.recipes.add(recipe); + } + } + + resetPaging(); + } + + private void resetPaging() { + this.pageIndex = 0; + this.size = Math.max(0, (int)Math.ceil((this.recipes.size() - 40) / 8D)); } @Override @@ -44,6 +105,16 @@ public class GUIScreenRecipeSelector extends GuiScreen { GL11.glDisable(GL11.GL_LIGHTING); this.drawGuiContainerForegroundLayer(mouseX, mouseY); GL11.glEnable(GL11.GL_LIGHTING); + this.handleScroll(); + } + + protected void handleScroll() { + + if(!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && Mouse.next()) { + int scroll = Mouse.getEventDWheel(); + if(scroll > 0 && this.pageIndex > 0) this.pageIndex--; + if(scroll < 0 && this.pageIndex < this.size) this.pageIndex++; + } } private void drawGuiContainerForegroundLayer(int x, int y) { @@ -54,14 +125,53 @@ public class GUIScreenRecipeSelector extends GuiScreen { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + for(int i = pageIndex * 8; i < pageIndex * 8 + 40; i++) { + if(i >= recipes.size()) break; + + int ind = i - pageIndex * 8; + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.enableGUIStandardItemLighting(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + GenericRecipe recipe = recipes.get(i); + + FontRenderer font = recipe.getIcon().getItem().getFontRenderer(recipe.getIcon()); + if(font == null) font = fontRendererObj; + + itemRender.zLevel = 100.0F; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), recipe.getIcon(), guiLeft + 8 + 18 * (ind % 8), guiTop + 18 + 18 * (ind / 8)); + + itemRender.zLevel = 0.0F; + + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_LIGHTING); + this.mc.getTextureManager().bindTexture(texture); + + if(recipe.name.equals(this.selection)) + this.drawTexturedModalRect(guiLeft + 7 + 18 * (ind % 8), guiTop + 17 + 18 * (ind / 8), 192, 0, 18, 18); + } } @Override protected void keyTyped(char typedChar, int keyCode) { + + if(this.search.textboxKeyTyped(typedChar, keyCode)) { + search(this.search.getText()); + return; + } + if(keyCode == 1 || keyCode == this.mc.gameSettings.keyBindInventory.getKeyCode()) { FMLCommonHandler.instance().showGuiScreen(previousScreen); } } + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + } + @Override public boolean doesGuiPauseGame() { return false; } } diff --git a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java index 6aaf0e3cd..95f029458 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemicalPlantRecipes.java @@ -3,6 +3,9 @@ package com.hbm.inventory.recipes; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.items.ModItems; @@ -40,5 +43,12 @@ public class ChemicalPlantRecipes extends GenericRecipes { pool.add(new ChanceOutput(new ItemStack(ModItems.billet_cobalt), 5)); }}) .setOutputFluids(new FluidStack(Fluids.BIOGAS, 2000))); + + for(NTMMaterial mat : Mats.orderedList) { + if(mat.autogen.contains(MaterialShapes.CASTPLATE)) this.register(new GenericRecipe(mat.getUnlocalizedName() + ".plate").setup(60, 100).setOutputItems(new ChanceOutput(new ItemStack(ModItems.plate_cast, 1, mat.id)))); + if(mat.autogen.contains(MaterialShapes.WELDEDPLATE)) this.register(new GenericRecipe(mat.getUnlocalizedName() + ".weld").setup(60, 100).setOutputItems(new ChanceOutput(new ItemStack(ModItems.plate_welded, 1, mat.id)))); + if(mat.autogen.contains(MaterialShapes.DENSEWIRE)) this.register(new GenericRecipe(mat.getUnlocalizedName() + ".wire").setup(60, 100).setOutputItems(new ChanceOutput(new ItemStack(ModItems.wire_dense, 1, mat.id)))); + if(mat.autogen.contains(MaterialShapes.MECHANISM)) this.register(new GenericRecipe(mat.getUnlocalizedName() + ".mechanism").setup(60, 100).setOutputItems(new ChanceOutput(new ItemStack(ModItems.part_mechanism, 1, mat.id)))); + } } } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java index 324f1ce4b..9199580d1 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java @@ -1,5 +1,7 @@ package com.hbm.inventory.recipes.loader; +import java.util.Locale; + import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.recipes.loader.GenericRecipes.ChanceOutput; @@ -21,7 +23,7 @@ public class GenericRecipe { public FluidStack[] outputFluid; public int duration; public long power; - public ItemStack icon; + protected ItemStack icon; public boolean writeIcon = false; public boolean customLocalization = false; @@ -32,6 +34,7 @@ public class GenericRecipe { public GenericRecipe setDuration(int duration) { this.duration = duration; return this; } public GenericRecipe setPower(long power) { this.power = power; return this; } public GenericRecipe setup(int duration, long power) { return this.setDuration(duration).setPower(power); } + public GenericRecipe setupNamed(int duration, long power) { return this.setDuration(duration).setPower(power).setNamed(); } public GenericRecipe setIcon(ItemStack icon) { this.icon = icon; this.writeIcon = true; return this; } public GenericRecipe setIcon(Item item, int meta) { return this.setIcon(new ItemStack(item, 1, meta)); } public GenericRecipe setIcon(Item item) { return this.setIcon(new ItemStack(item)); } @@ -60,10 +63,11 @@ public class GenericRecipe { } public String getName() { - if(customLocalization) { - return I18nUtil.resolveKey(name); - } - + if(customLocalization) return I18nUtil.resolveKey(name); return this.getIcon().getDisplayName(); } + + public boolean matchesSearch(String substring) { + return getName().toLowerCase(Locale.US).contains(substring.toLowerCase(Locale.US)); + } } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index 2c9ce4596..5c33d09d4 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -72,6 +72,7 @@ public abstract class GenericRecipes extends Serializab if(this.hasPower()) recipe.setPower(obj.get("power").getAsLong()); if(obj.has("icon")) recipe.setIcon(this.readItemStack(obj.get("icon").getAsJsonArray())); + if(obj.has("named") && obj.get("named").getAsBoolean()) recipe.setNamed(); readExtraData(element, recipe); @@ -117,6 +118,8 @@ public abstract class GenericRecipes extends Serializab this.writeItemStack(recipe.icon, writer); } + if(recipe.customLocalization) writer.name("named").value(true); + writeExtraData(recipe, writer); } From 4ae675aebc3cab064b0d83db78fcca683910e834 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 18:30:35 +0300 Subject: [PATCH 120/181] Fix autocrafter output slot This is the only case I found where a SlotPattern was supposed to support a stack size different from 1, but if there's any more, just add a `, true` to the end of the corresponsing slot constructor --- src/main/java/com/hbm/inventory/SlotPattern.java | 11 ++++++++++- .../hbm/inventory/container/ContainerAutocrafter.java | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/inventory/SlotPattern.java b/src/main/java/com/hbm/inventory/SlotPattern.java index 550fae5b6..a6957c7ac 100644 --- a/src/main/java/com/hbm/inventory/SlotPattern.java +++ b/src/main/java/com/hbm/inventory/SlotPattern.java @@ -10,10 +10,17 @@ import net.minecraft.item.ItemStack; public class SlotPattern extends Slot { protected boolean canHover = true; + + protected boolean allowStackSize = false; public SlotPattern(IInventory inv, int index, int x, int y) { super(inv, index, x, y); } + + public SlotPattern(IInventory inv, int index, int x, int y, boolean allowStackSize) { + super(inv, index, x, y); + this.allowStackSize = allowStackSize; + } @Override public boolean canTakeStack(EntityPlayer player) { @@ -29,7 +36,9 @@ public class SlotPattern extends Slot { public void putStack(ItemStack stack) { if (stack != null) { stack = stack.copy(); - stack.stackSize = 1; + + if (!allowStackSize) + stack.stackSize = 1; } super.putStack(stack); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java index f18f83c9f..2c8b0438b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java @@ -24,7 +24,7 @@ public class ContainerAutocrafter extends ContainerBase { this.addSlotToContainer(new SlotPattern(tedf, j + i * 3, 44 + j * 18, 22 + i * 18)); } } - this.addSlotToContainer(new SlotPattern(tedf, 9, 116, 40)); + this.addSlotToContainer(new SlotPattern(tedf, 9, 116, 40, true)); /* RECIPE */ addSlots(tedf,10, 44, 86, 3, 3); From 4b3430f9b188d3cf5fe74d975796e54449a78e3a Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 18:49:49 +0300 Subject: [PATCH 121/181] Scrollwheel support for template folder --- .../gui/GUIScreenTemplateFolder.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index a91652ef0..398f4e1fb 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Locale; import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; @@ -153,6 +154,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { return (int) Math.ceil((stacks.size() - 1) / (5 * 7)); } + @Override public void updateScreen() { if(currentPage < 0) currentPage = 0; @@ -160,6 +162,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { currentPage = getPageCount(); } + @Override public void drawScreen(int mouseX, int mouseY, float f) { this.drawDefaultBackground(); this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); @@ -168,6 +171,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { GL11.glEnable(GL11.GL_LIGHTING); } + @Override public void initGui() { super.initGui(); this.guiLeft = (this.width - this.xSize) / 2; @@ -204,6 +208,26 @@ public class GUIScreenTemplateFolder extends GuiScreen { buttons.add(new FolderButton(guiLeft + 25 + (27 * 4) + 18, guiTop + 26 + (27 * 3), 2, "Next")); } + @Override + public void handleMouseInput() { + super.handleMouseInput(); + + if(Mouse.getEventButton() == -1) { + int scroll = Mouse.getEventDWheel(); + + if(scroll < 0) { + if(currentPage > 0) + currentPage--; + updateButtons(); + } else if(scroll > 0) { + if(currentPage < getPageCount()) + currentPage++; + updateButtons(); + } + } + } + + @Override protected void mouseClicked(int i, int j, int k) { if(i >= guiLeft + 45 && i < guiLeft + 117 && j >= guiTop + 211 && j < guiTop + 223) { @@ -251,6 +275,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { search.drawTextBox(); } + @Override protected void keyTyped(char p_73869_1_, int p_73869_2_) { if (this.search.textboxKeyTyped(p_73869_1_, p_73869_2_)) { From a6740a35e9cd6b2c1d87e1fd6449e75560b8cd70 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 19:35:06 +0300 Subject: [PATCH 122/181] Make mass storage process input instantly This allows to shift-click an entire inventory-load into a mass storage. Previously this was bottlenecked by the network latency and the tile entity tickrate. Taking stuff out is unaffected for now, I'll see what I can do --- .../container/ContainerMassStorage.java | 37 ++++++++++--------- .../storage/TileEntityMassStorage.java | 24 +++++++++++- 2 files changed, 42 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java index f8a760816..d0ffae2ee 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java @@ -27,32 +27,35 @@ public class ContainerMassStorage extends ContainerBase { } @Override - public ItemStack transferStackInSlot(EntityPlayer player, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack result = null; + Slot slot = (Slot) this.inventorySlots.get(index); - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); + if(slot != null && slot.getHasStack()) { + ItemStack initial = slot.getStack(); + result = initial.copy(); - if(par2 == 0 || par2 == 2) { - if(!this.mergeItemStack(var5, storage.getSizeInventory(), this.inventorySlots.size(), true)) { + if(index == 0 || index == 2) { + if(!this.mergeItemStack(initial, 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(); + // Try to insert instantly, then fall back to regular slot behavior + if(!storage.insert(initial) && !this.mergeItemStack(initial, 0, 1, false)) { + return null; + } } - var4.onPickupFromSlot(player, var5); + if(initial.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + + slot.onPickupFromSlot(player, initial); } - return var3; + return result; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index d283b8269..fe6f15414 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -62,7 +62,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPa if(this.getType() == null) this.stack = 0; - if(getType() != null && getStockpile() < getCapacity() && slots[0] != null && slots[0].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[0], getType())) { + if(canInsert(slots[0])) { int remaining = getCapacity() - getStockpile(); int toRemove = Math.min(remaining, slots[0].stackSize); @@ -95,6 +95,26 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPa } } + public boolean canInsert(ItemStack stack) { + return getType() != null && getStockpile() < getCapacity() && stack != null && stack.isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(stack, getType()); + } + + public boolean insert(ItemStack stack) { + if (!canInsert(stack)) + return false; + + int remaining = getCapacity() - getStockpile(); + + if (remaining < stack.stackSize) + return false; + + this.stack += stack.stackSize; + stack.stackSize = 0; + this.markDirty(); + + return true; + } + @Override public void serialize(ByteBuf buf) { buf.writeInt(this.stack); @@ -196,9 +216,9 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPa if(data.hasKey("toggle")) { this.output = !output; } + if(data.hasKey("slot") && this.getStockpile() <= 0){ setFilterContents(data); - if(slots[1] != null) slots[1].stackSize = 1; } } From 7ef016ccced5897d680009977334df7eac41f57b Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 20:09:13 +0300 Subject: [PATCH 123/181] Make mass storage process output instantly Same deal as previously, this bypasses the bottleneck of tile entity ticking and network latency. This change is less relevant than the previous one, because there shift-dragging or shift-double-clicking were possible with mods, while here it only really affects autoclickers. Still, it can't hurt --- .../container/ContainerMassStorage.java | 7 ++++++- .../storage/TileEntityMassStorage.java | 20 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java index d0ffae2ee..fae68ad3a 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java @@ -31,6 +31,11 @@ public class ContainerMassStorage extends ContainerBase { ItemStack result = null; Slot slot = (Slot) this.inventorySlots.get(index); + // Refill instantly if needed, then do regular slot behavior + if(index == 2 && slot != null && !slot.getHasStack()) { + slot.putStack(storage.quickExtract()); + } + if(slot != null && slot.getHasStack()) { ItemStack initial = slot.getStack(); result = initial.copy(); @@ -41,7 +46,7 @@ public class ContainerMassStorage extends ContainerBase { } } else { // Try to insert instantly, then fall back to regular slot behavior - if(!storage.insert(initial) && !this.mergeItemStack(initial, 0, 1, false)) { + if(!storage.quickInsert(initial) && !this.mergeItemStack(initial, 0, 1, false)) { return null; } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index fe6f15414..0618a1643 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -99,7 +99,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPa return getType() != null && getStockpile() < getCapacity() && stack != null && stack.isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(stack, getType()); } - public boolean insert(ItemStack stack) { + public boolean quickInsert(ItemStack stack) { if (!canInsert(stack)) return false; @@ -115,6 +115,24 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements IBufPa return true; } + public ItemStack quickExtract() { + if (!output) { + return null; + } + + int amount = getType().getMaxStackSize(); + + if (getStockpile() < amount) + return null; + + ItemStack result = slots[1].copy(); + result.stackSize = amount; + this.stack -= amount; + this.markDirty(); + + return result; + } + @Override public void serialize(ByteBuf buf) { buf.writeInt(this.stack); From 169f1666e733f48e69277f3c28181274b288b83e Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 20:39:44 +0300 Subject: [PATCH 124/181] Retain names for storage crates --- .../hbm/blocks/generic/BlockStorageCrate.java | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 5e4a5937f..fa0258417 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -157,19 +157,26 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti, IT if(!nbt.hasNoTags()) { drop.stackTagCompound = nbt; - - try { - byte[] abyte = CompressedStreamTools.compress(nbt); - - if(abyte.length > 6000) { - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Warning: Container NBT exceeds 6kB, contents will be ejected!")); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(this))); - return world.setBlockToAir(x, y, z); - } - - } catch(IOException e) { } } + if(inv instanceof TileEntityCrateBase) { + TileEntityCrateBase crate = (TileEntityCrateBase) inv; + if (crate.hasCustomInventoryName()) { + drop.setStackDisplayName(crate.getInventoryName()); + } + } + + try { + byte[] abyte = CompressedStreamTools.compress(drop.stackTagCompound); + + if(abyte.length > 6000) { + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Warning: Container NBT exceeds 6kB, contents will be ejected!")); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(this))); + return world.setBlockToAir(x, y, z); + } + + } catch(IOException e) { } + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, drop)); } @@ -220,8 +227,14 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti, IT lockable.lock(); } } + if(inv instanceof TileEntityCrateBase) { - ((TileEntityCrateBase) inv).hasSpiders = stack.stackTagCompound.getBoolean("spiders"); + TileEntityCrateBase crate = (TileEntityCrateBase) inv; + crate.hasSpiders = stack.stackTagCompound.getBoolean("spiders"); + + if (stack.hasDisplayName()) { + crate.setCustomName(stack.getDisplayName()); + } } } From 0f7c8b49f311739f91923a0672b1ca4210e7427b Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 20:54:14 +0300 Subject: [PATCH 125/181] Fix crate NBT inconsistency in crates Apparently, a mined crate used to differ from a freshly crafted one because the former didn't have any spiders in it. The latter? Neither. --- .../java/com/hbm/blocks/generic/BlockStorageCrate.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index fa0258417..cd088bd22 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -152,8 +152,13 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti, IT } } - if(inv instanceof TileEntityCrateBase) - nbt.setBoolean("spiders", ((TileEntityCrateBase) inv).hasSpiders); + if(inv instanceof TileEntityCrateBase) { + TileEntityCrateBase crate = (TileEntityCrateBase) inv; + // Saves memory and ensures consistency between crafted crates and mined ones + if (crate.hasSpiders) { + nbt.setBoolean("spiders", true); + } + } if(!nbt.hasNoTags()) { drop.stackTagCompound = nbt; From 4bc07d9cbf16e31e3da762ec01a80461ff5f2fe9 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 21:05:15 +0300 Subject: [PATCH 126/181] Add missing check --- .../hbm/blocks/generic/BlockStorageCrate.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index cd088bd22..02784843f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -171,16 +171,18 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti, IT } } - try { - byte[] abyte = CompressedStreamTools.compress(drop.stackTagCompound); + if (drop.hasTagCompound()) { + try { + byte[] abyte = CompressedStreamTools.compress(drop.stackTagCompound); - if(abyte.length > 6000) { - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Warning: Container NBT exceeds 6kB, contents will be ejected!")); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(this))); - return world.setBlockToAir(x, y, z); - } + if(abyte.length > 6000) { + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Warning: Container NBT exceeds 6kB, contents will be ejected!")); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(this))); + return world.setBlockToAir(x, y, z); + } - } catch(IOException e) { } + } catch(IOException e) { } + } world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, drop)); } From 6fb0b647fd02cce5f3385416263cb3a93270de3d Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 21:34:48 +0300 Subject: [PATCH 127/181] Disable repair cost increment on rename Effectively a backport of a 1.8 feature. Relevant because otherwise a renamed crate is nbt-incompatible with itself after being placed and broken --- src/main/java/com/hbm/main/ModEventHandler.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index d587ebe4b..e9c5b35f8 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -107,6 +107,7 @@ import net.minecraftforge.event.entity.item.ItemTossEvent; import net.minecraftforge.event.entity.living.*; import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.player.AnvilRepairEvent; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; @@ -1248,6 +1249,15 @@ public class ModEventHandler { } } + @SubscribeEvent + public void onAnvilRepair(AnvilRepairEvent event) { + + // Anvil renaming no longer increments the repair cost + if(event.left != null && event.right == null && event.output != null) { + event.output.setRepairCost(event.left.getRepairCost()); + } + } + @SubscribeEvent public void onClickSign(PlayerInteractEvent event) { From 8970878e6b9cd59e13ae35271ca18c3a2682b78a Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 21:47:16 +0300 Subject: [PATCH 128/181] Add look overlay to named crates I think this is better than signs for a crate-based stockpile. Only shows the name for now, but a contents summary might be included too. --- .../hbm/blocks/generic/BlockStorageCrate.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 02784843f..5f0261791 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.IBlockMulti; +import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.config.ServerConfig; @@ -39,8 +40,9 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; -public class BlockStorageCrate extends BlockContainer implements IBlockMulti, ITooltipProvider { +public class BlockStorageCrate extends BlockContainer implements IBlockMulti, ILookOverlay, ITooltipProvider { @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -374,4 +376,20 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti, IT } } } + + @Override + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if (!(te instanceof IInventory)) + return; + + IInventory inv = (IInventory) te; + + if (!inv.hasCustomInventoryName()) + return; + + ILookOverlay.printGeneric(event, inv.getInventoryName(), 0xffff00, 0x404000, new ArrayList(0)); + } } From cf26eac2c999a22deff1a64bae257c63efc134fd Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 22:41:58 +0300 Subject: [PATCH 129/181] Fix renaming hook --- src/main/java/com/hbm/main/ModEventHandler.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index e9c5b35f8..f1be76394 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -98,6 +98,7 @@ import net.minecraft.util.*; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.event.AnvilUpdateEvent; import net.minecraftforge.event.CommandEvent; import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.event.entity.EntityEvent; @@ -1251,10 +1252,10 @@ public class ModEventHandler { @SubscribeEvent public void onAnvilRepair(AnvilRepairEvent event) { - + // Anvil renaming no longer increments the repair cost - if(event.left != null && event.right == null && event.output != null) { - event.output.setRepairCost(event.left.getRepairCost()); + if(event.left == null && event.right != null && event.output != null) { + event.output.setRepairCost(event.right.getRepairCost()); } } From 5fe26d5647106ab5843c8c4c1e32fe1eab10f588 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 23:12:38 +0300 Subject: [PATCH 130/181] Fix renaming hook again Turns out, there's a bug in Forge and the stacks are misassigned for that particular event --- src/main/java/com/hbm/main/ModEventHandler.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index f1be76394..ce0d124cb 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1252,10 +1252,11 @@ public class ModEventHandler { @SubscribeEvent public void onAnvilRepair(AnvilRepairEvent event) { - + // Anvil renaming no longer increments the repair cost + // Note: Forge has a bug, the names are wrong. Right is output, output is left, left is right if(event.left == null && event.right != null && event.output != null) { - event.output.setRepairCost(event.right.getRepairCost()); + event.right.setRepairCost(event.output.getRepairCost()); } } From 997fb201297c35c7adfddea7791baed4daf4d7dc Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 23:34:49 +0300 Subject: [PATCH 131/181] This time for sure --- src/main/java/com/hbm/main/ModEventHandler.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index ce0d124cb..29682d1b8 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1256,7 +1256,17 @@ public class ModEventHandler { // Anvil renaming no longer increments the repair cost // Note: Forge has a bug, the names are wrong. Right is output, output is left, left is right if(event.left == null && event.right != null && event.output != null) { - event.right.setRepairCost(event.output.getRepairCost()); + int oldRepairCost = event.output.getRepairCost(); + + if (oldRepairCost > 0) { + event.right.setRepairCost(oldRepairCost); + } else if (event.right.hasTagCompound()) { + NBTTagCompound nbt = event.right.getTagCompound(); + nbt.removeTag("RepairCost"); + if (nbt.hasNoTags()) { + event.right.setTagCompound(null); + } + } } } From 8a7934d2743c8342bfca589b7915cfce4f577410 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Mon, 2 Jun 2025 23:41:13 +0300 Subject: [PATCH 132/181] Fix custom name for crates opened from hand --- .../java/com/hbm/items/block/ItemBlockStorageCrate.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java index cf24e36c3..620ca918c 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java +++ b/src/main/java/com/hbm/items/block/ItemBlockStorageCrate.java @@ -122,7 +122,11 @@ public class ItemBlockStorageCrate extends ItemBlockBase implements IGUIProvider @Override public String getInventoryName() { - return findCrateType(target.getItem()).getInventoryName(); + TileEntityCrateBase tile = findCrateType(target.getItem()); + if (hasCustomInventoryName()) { + tile.setCustomName(target.getDisplayName()); + } + return tile.getInventoryName(); } @Override From 61acb3db45bae8f7755ecd33f95c05d49359b616 Mon Sep 17 00:00:00 2001 From: abel1502 Date: Tue, 3 Jun 2025 12:46:21 +0300 Subject: [PATCH 133/181] I turned myself into a bobblehead --- .../java/com/hbm/blocks/generic/BlockBobble.java | 7 ++++--- .../com/hbm/render/tileentity/RenderBobble.java | 6 ++++++ .../assets/hbm/textures/models/trinkets/abel.png | Bin 0 -> 2123 bytes 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/abel.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index da175541c..067363c2d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -198,7 +198,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider, INBTTra INTELLIGENCE( "Intelligence", "Intelligence", null, "It takes the smartest individuals to realize$there's always more to learn.", false, ScrapType.BRIDGE_BUS), AGILITY( "Agility", "Agility", null, "Never be afraid to dodge the sensitive issues.", false, ScrapType.BRIDGE_CHIPSET), LUCK( "Luck", "Luck", null, "There's only one way to give 110%.", false, ScrapType.BRIDGE_CMOS), - BOB( "Robert \"The Bobcat\" Katzinsky", "HbMinecraft", "Hbm's Nuclear Tech Mod", "I know where you live, " + System.getProperty("user.name"), false, ScrapType.CPU_SOCKET), + BOB( "Robert \"The Bobcat\" Katzinsky", "HbMinecraft", "Hbm's Nuclear Tech Mod", "I know where you live, " + System.getProperty("user.name"), false, ScrapType.CPU_SOCKET), FRIZZLE( "Frooz", "Frooz", "Weapon models", "BLOOD IS FUEL", true, ScrapType.CPU_CLOCK), PU238( "Pu-238", "Pu-238", "Improved Tom impact mechanics", null, false, ScrapType.CPU_REGISTER), VT( "VT-6/24", "VT-6/24", "Balefire warhead model and general texturework", "You cannot unfuck a horse.", true, ScrapType.CPU_EXT), @@ -211,9 +211,10 @@ public class BlockBobble extends BlockContainer implements IGUIProvider, INBTTra NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), - MICROWAVE( "Microwave", "Microwave", "OC Compatibility and massive RBMK/packet optimizations", "they call me the food heater$john optimization", true, ScrapType.BOARD_CONVERTER), + MICROWAVE( "Microwave", "Microwave", "OC Compatibility and massive RBMK/packet optimizations", "they call me the food heater$john optimization", true, ScrapType.BOARD_CONVERTER), PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CARD_BOARD), - MELLOW( "MELLOWARPEGGIATION", "Mellow", "NBT Structures, industrial lighting, animation tools", "Make something cool now, ask for permission later.", true, ScrapType.CARD_PROCESSOR); + MELLOW( "MELLOWARPEGGIATION", "Mellow", "NBT Structures, industrial lighting, animation tools", "Make something cool now, ask for permission later.", true, ScrapType.CARD_PROCESSOR), + ABEL( "Abel1502", "Abel1502", "Abilities GUI, optimizations and many QoL improvements", "NANTO SUBARASHII!", true, ScrapType.CPU_REGISTER); public String name; //the title of the tooltip public String label; //the name engraved in the socket diff --git a/src/main/java/com/hbm/render/tileentity/RenderBobble.java b/src/main/java/com/hbm/render/tileentity/RenderBobble.java index 08dfa1283..979da575a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBobble.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBobble.java @@ -50,6 +50,7 @@ public class RenderBobble extends TileEntitySpecialRenderer { public static final ResourceLocation bobble_peep = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/peep.png"); public static final ResourceLocation bobble_mellow = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/mellowrpg8.png"); public static final ResourceLocation bobble_mellow_glow = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/mellowrpg8_glow.png"); + public static final ResourceLocation bobble_abel = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/abel.png"); private long time; @@ -106,6 +107,7 @@ public class RenderBobble extends TileEntitySpecialRenderer { case MICROWAVE: bindTexture(bobble_microwave); break; case PEEP: bindTexture(bobble_peep); break; case MELLOW: bindTexture(bobble_mellow); break; + case ABEL: bindTexture(bobble_abel); break; default: bindTexture(ResourceManager.universal); } @@ -220,6 +222,10 @@ public class RenderBobble extends TileEntitySpecialRenderer { rotLeftLeg = new double[]{3, 5, 2}; rotRightLeg = new double[]{-3, -5, 0}; break; + case ABEL: + rotLeftArm = new double[]{0, 15, 80}; + rotRightArm = new double[]{0, 15, 80}; + break; } } diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/abel.png b/src/main/resources/assets/hbm/textures/models/trinkets/abel.png new file mode 100644 index 0000000000000000000000000000000000000000..3e436bd03ac465d7788d3bda9d961789cea9f526 GIT binary patch literal 2123 zcmV-R2(4lZU+Y3#ukeOiaAl8W0Qy`4S-ENm>FS7K?2FV1_`}+km%z39Kh0 zc=F^)z8tS!y=rN^?RpkVLaDgHr%#{q@9x;KL;ZfbmcWSpkBMviA5lygo8A!hdD^1p2V7y|1s&auP`B{QP`QZgzH-5g2I! zz|7Cv0l;j$2#)ARX&+$+0L(bNO(+!NVAa>xD_*ZREg-nejGV{gQ2~}|06L70j`Cfi z(LMp~Vw>nj0YYzYucZb+V2l$15TBiBfvc&hNde1jdUFGu&tkt1wya8L!) z@AtDickZz2>S|LP@ZiA%=~xT|QzE!{CjuOeMmhaWn>O*^qM{-;K0eOM%gcEk!ub7u z1??grb8~ax*9Fj?KYz}(u&k_%p^k!fDzaq;`^N#m!KR_1f%W(ItAi>lD_K`p7Yhc1 zrT~P)Vd+@d1}b!TqGxK0#bT-k(5@4LcXf4f;n2UkyPFS#!1x6q_^qp}Q)j%Pp@9Q| z5)Ow|n&iguUOdd<89cc>9uFsW^ypEpqF@XSn5EmdZ`%SuHddA1q+-WS!U#gsqR}W9 ztfHbqfo7(|6Q}^lc(kJdb_A96u>%0c!d68h5l$u$2xx4Flkcyvz+`cWXeboY(>Jx+ zjg5`Uix)3gVPPS|FACMgcQU5Q(#zWQ{5=^P)2R07*qEhP5ot>SAbUVU2!m_`Abv;> z%4z`sz~b1!fdLJv=tY5);2vJHA0 zg1!dJ(bE1|X_O0y$^;`7#aE!F=w~Lp-r%JIfRQAk5q<3d!0*y7km_~-C@s!o6O;4I zw`&*c>%Y(Cs;aDEBV%KX+C*V7)7W*=W{29a$-&N)Y=;p5M)dSRu1W(Su)Y8cBLE